运维开发网

重看tcp seq和ack

运维开发网 https://www.qedev.com 2020-09-01 10:17 出处:51CTO 作者:沉浸于
重看tcp seq和ack

最近网络监控中某个会话出现严重丢包,就把该会话的所有数据包给保存下来,想试着人工分析下tcp数据包交互的情况,顺便巩固下tcp的丢包重传知识。当重新关注到seq和ack这两个tcp重要字段,然后有新的心得体会

tcp是基于字节流。 seq和ack来保证传输可靠性。此前本人再网上看到讨论tcp传输数据的文章,大多画图举例都是单方向。比如C和S通信,假如C传了个包,seq 1200 ,len 100,然后S就会回个ack 1300的数据包。

那问题来,S的ack包需要确认嘛?确认S的ack包需要确认嘛?确认确认S的ack包需要确认嘛?

一直套娃中。。。。

我看到一位高手对此回答是不需要,因为没意义巴拉巴拉之类。

如果你仔细抓包研究过,这个就不是啥问题。因为除三次握手第一个包是没有ack以外,其他都是有seq和ack这两个字段。tcp是双方都可以同时接收发送数据。照着上面c/s通信的例子,S回的ack1300的数据包,也是有seq还有len的。用物流快递来举例吧,如果两地都有都有快递要传送,C传了1000字节快递过来,S签收确认,顺带也会把要传给C的东西捎带上。

重看tcp seq和ack

重看tcp seq和ack

重看tcp seq和ack

重看tcp seq和ack

这里上了,我抓到两端通信tcp数据包的seq和ack。大家可以好好感受下

1,3是一端,2,4另一端

知行合一。如果条件允许的话,最好多实践来验证自己想法,这也是加深对知识的理解

扫码领视频副本.gif

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号