TCP头部的ACK与SEQ

TCP头部的ACK与SEQ

这几天临近过年了,很多人都回去了,趁着闲着,把TCP/IP协议详解大概过了一过,有些以前似懂非懂的,现在貌似还是似懂非懂,不过至少比以前理解的好一点儿了,不过对于TCP的发包与回应之间的确认序号有点儿搞懵了,于是大概看了下,顺便在这里做了个笔记。

之前的工作大概都属于上层工作吧,至少在协议之上,各种操作系统的IO模型,倒是底层没怎么去看,只知道大概的三次握手啊之类的,还是得对底层有点儿了解才行。

首先在这里的ACK,指的是TCP头部设置了ACK Flag的回应包,用于发送确认序号,或者是握手包;

SEQ,指的是TCP头部的发送序号吧。

一开始简单的以为每一个TCP层的包,另一端收到后仅仅是序号+1,后来才发现我错了,是以字节数来计数的。

首先,ACK其实在回应确认包的时候才有意义,用于回应另一端自己这儿已经收到N序号的数据了,而SEQ在发包的时候有意义,用于表名该数据是N序号偏移的数据?这个解释好像也不太好,应该是N序号之后的数据。

当完成握手后,假定CS两端的SEQ序号都为1,那么当C端第一次发送数据(假定4字节)到S端的时候,C的TCP头部应该为S1A1,并且带着4字节的数据;

S端收到了数据后,会回应一个ACK,头部为S1A5,用于回应S端已经收到了4字节的数据了,下次再传的话,从4字节后开始传;

C端第二次开始往S端发4字节的数据,头部为S5A1,其中的S5表示C端是从4

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值