TCP报文之-tcp dup ack 、tcp Out-of-Order

时间:2024-05-18 15:45:25

使用WireShark抓包,选择TCP报文,TCP是一种安全的协议,在网络出现状况时也能安全稳定的传输数据,但是在网络出现问题时tcp报文中会有很多中情况导致报文重传或者是重组。现在就在报文中遇到的几个问题来详细说明一下。
WireShark出现的常见提示:
TCP Out_of_Order的原因分析:
一般来说是网络拥塞,导致顺序包抵达时间不同,延时太长,或者包丢失,需要重新组合数据单元,因为他们可能是由不同的路径到达你的电脑上面。
TCP Retransmission原因分析:
很明显是上面的超时引发的数据重传。
TCP dup ack XXX#X原因分析:
就是重复应答#前的表示报文到哪个序号丢失,#后面的是表示第几次丢失。
tcp previous segment not captured原因分析
意思就是报文没有捕捉到,出现报文的丢失。
下面就详细的报文进行分析:

TCP报文之-tcp dup ack 、tcp Out-of-Order

1221:seq:8321,ack:18292,len:0,
所以下一条报文的应该是seq:18292,ack:8321,但是在1230报文段出现报文丢失,该报文seq:27392,ack:8321,所以出现了报文的丢失,
所以在1232到1238都是为了补全seq从18292到27392的报文段。

TCP报文之-tcp dup ack 、tcp Out-of-Order

1439显示报文丢失seq:53800,ack:9765
1438 seq:51200,:ack:9765,len:1300
所以1439的seq应该是51200+1300=52500,但是1439直接到了53800所以出现丢包情况,在1440重新发送52500到53800的数据包。

TCP报文之-tcp dup ack 、tcp Out-of-Order

1587的意思是出现丢包了,未收到之前的数据包,也要进行重传或者重组,1586的ack=211249,也就是要求server端下次发送seq=211249的包,结果 1587发送的数据包seq=212261.说明server端收到过client端发送的数据包ack=212261,则判断之前的一个数据包未收到。
————————————————
版权声明:本文为****博主「月月鸟要好好学习安卓」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.****.net/chenfengdejuanlian/article/details/53761004