淘先锋技术网

首页 1 2 3 4 5 6 7

    对于网络工作者,wireshark有着瑞士军刀的美誉。在前期的使用过程中,使用最多的情景:看数据有没有丢失。这里记录Wireshark的深入学习

tcp三握手wireshark数据:


Tcp数据中的Seq(数据包序列号),Ack(确认号),Len(数据包长度)关系:

当前包Seq = 上一包Seq + 上一包Len

ACK中的确认号,是发送这一个ACK的一端所期待的另一端数据包序列号Seq。


数据包从117.136.81.219 发送到 115.28.150.86

包序号:37137  seq = 1, len = 1460

包序号:37138的seq = 37137 的 seq + 37137 的 len = 1461

同理可以知道包序号 37142,37143都是正确的


数据包从115.28.150.86 发送到117.136.81.219

包序号:37139  seq = 1, len = 0

包序号:37144的seq = 37139 的 seq + 37139 的 len = 0

同理可以知道包序号 37195,37200都是正确的

以包序号37139的 ack=2921,它表示希望下一包从117.136.81.219发送给115.28.150.85的数据的序列号seq=2921

而包序号37142的序列号正好是2921

tcp 四挥手

下面列举连个异常关闭的例子:

这里可以发现只发现了tcp层的挥手数据,这就意味着只有117.136.81.177端调用了close,而115.25.150.86却无挥手数据,有可能是它没有调用close接口函数。

这里可以看到115.28.150.86存在挥手数据,而117.136.81.177没有挥手数据,却发现多了一条RST(复位数据),这里可能是117.136.81.177在使用close时,其socket的接收缓存存在数据未接收完,导致发送了RST报文,详细可参考Tcp RST指令。