查看原文
其他

如何定位解决网络中的重传

Panabit 北京派网Panabit
2024-08-06

我们在接触网络时都学过,TCP是一种可靠的协议,但数据在传输过程中时常会出现一些意外情况,诸如数据损坏、丢包、重复等问题。为保障传输的可靠性,TCP加入了例如确认应答、滑动窗口、拥塞控制等机制,而重传就是其中一种重要的方式。


当数据包丢失或对数据包的确认应答丢失时,TCP就会通过重传(Retransmission),不断重复发送TCP片段,直到数据被正确接收。


重传本身是TCP的正常机制,在网络传输中,数据包丢失是极为常见的事情,因此少量的重传是正常的;但如果发现了大量的TCP重传,则往往表示网络中存在异常。造成大量重传的原因可能是网络链路不稳定,也有可能是服务器压力过大等主机故障导致。


大量重传造成的影响排查起来较为困难,很多情况下明明ping或telnet都OK,但仍然会出现访问卡顿的问题,只有抓包看到大量[TCP Retransmission]连接才能发现。


另一方面,大量重传的情况存在偶发性,重传并不是时刻都有的,所以需要进行数据的持续采集才能够及时发现与回溯。


那么,如何快速发现异常重传的问题呢?基于上面的两点,通过部署持续的抓包溯源系统是一个不错的选择。


NTM

一款全新的、基于元数据的全流量分析溯源产品,具备网络全流量态势分析、异常流量监测、攻击流量溯源、安全事件分析等功能,能够满足用户对网络故障定位、网络未知威胁发现、原始数据包溯源等全方位需求,赋予用户最细粒度的可视能力。


下面我们将使用NTM,通过一个分析示例来进行说明。


在NTM的【协议质量】-【协议重传】中,以卡片的形式实时展示了各应用协议的重传率情况,我们以【火山小视频】为例。

Tips:可以点击卡片右上角的星星关注该应用,这个应用就会被置顶显示。


点击【火山小视频】的卡片,可以进入针对该应用协议的分析页面。查看【重传趋势】,我们可以发现该应用协议的重传率存在一个峰值,在10:45时重传率达到了70%。


长按鼠标左键直接拖动选中重传率折线图的时间范围,即可跳转至详细的分析页面。我们发现,v5-a.huoshanvod.com这个域名的重传数最高。

Tips:NTM中的大多数折线图都是可以用鼠标拖动选中后跳转分析的,小伙伴们可以试试哦。


点击该域名,在新的页面中可以查看访问这个域名的详细会话信息,精准定位到重传的源目的地址。我们选取其中的某个会话,对其数据包做详细分析。


在【报文解析】页面中,还可以通过输入tcp.analysis.retransmission进行过滤,精确发现重传数据包,最终锁定原因。


一般而言,导致重传的原因如下:

  1. 数据报文丢失:发送端的数据在传输过程中被中间链路或设备丢弃;

  2. 接收端未响应ACK发送端的数据已经到达接收端,但接收端由于自身原因没有回复ACK确认报文;

  3. 接收端的ACK确认报文丢失:发送端的数据已经到达接收端,接收端也回复了ACK确认报文,但这个ACK报文被中间链路或设备丢弃。


其中,1和3需要排查中间链路或中间设备是否稳定、负载过高或是否存在访问控制;2则需要排查接收端本身是否存在问题。


总结


1

重传本身是TCP的正常机制,但大量的重传意味着网络中存在问题;

2

异常重传的排查过程较为困难,需要使用持续的抓包溯源系统,NTM就是其中的一种;

3

NTM提供了专门的重传分析模块,实时发现异常的重传现象;

4

NTM拥有极强的下钻能力,可以通过层层分析,精准定位造成重传的源目的IP,并精确呈现重传数据包,锁定原因。



更多精彩:

在笔记本虚拟机中安装持续抓包溯源系统

有奖征集 | 免费版Panabit的应用

3月-4月公开课合集

你的网络全流量从来都不「全」

继续滑动看下一个
北京派网Panabit
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存