TCP报文之-tcp dup ack 、tcp Out-of-Order
原文链接:https://blog.csdn.net/chenfengdejuanlian/article/details/53761004
使用WireShark抓包,选择TCP报文,TCP是一种安全的协议,在网络出现状况时也能安全稳定的传输数据,但是在网络出现问题时tcp报文中会有很多中情况导致报文重传或者是重组。现在就在报文中遇到的几个问题来详细说明一下。
WireShark出现的常见提示
TCP Out_of_Order的原因分析:
一般来说是网络拥塞,导致顺序包抵达时间不同,延时太长,或者包丢失,需要重新组合数据单元,因为他们可能是由不同的路径到达你的电脑上面。
TCP Retransmission原因分析:
很明显是上面的超时引发的数据重传。
TCP dup ack XXX#X原因分析:
就是重复应答#前的表示报文到哪个序号丢失,#后面的是表示第几次丢失。
tcp previous segment not captured原因分析
意思就是报文没有捕捉到,出现报文的丢失。
下面就详细的报文进行分析:
1221:seq:8321,ack:18292,len:0,
所有下一条报文的应该是seq:18292,ack:8321,但是在1230报文段出现报文丢失,该报文seq:27392,ack:8321,所以出现了报文的丢失,
所有在1232到1238都是为了补全seq从18292到27392的报文段。
1439显示报文丢失seq:53800,ack:9765
1438 seq:51200,:ack:9765,len:1300
所以1439的seq应该是51200+1300=52500,但是1439直接到了53800所以出现丢包情况,在1440重新发送52500到53800的数据包。
1587的意思是出现丢包了,未收到之前的数据包,也要进行重传或者重组,1586的ack=211249,也就是要求server端下次发送seq=211249的包,结果 1587发送的数据包seq=212261.说明server端收到过client端发送的数据包ack=212261,则判断之前的一个数据包未收到。