其他分享
首页 > 其他分享> > TCP协议中的Ack和Seq号

TCP协议中的Ack和Seq号

作者:互联网

一、基本概念

seq:表示本次发送数据的偏移量,也就是从哪里开始发送数据。

len:表示本次tcp携带的数据长度。

ack:首先意味着已经收到对方多少字节数据,其次告诉对方接下来的包的seq要从ack确定的数值继续接力。

 

二、Wireshark抓包

本地请求61.135.185.32这个ip,这个过程的抓包如下。

三次握手

(客户端)1号包:我能和你建立连接吗?

(服务端)2号包:我收到了,我们能进行连接,快来玩吧。

(客户端)3号包:好的,那我们就连接吧。

好了,三次握手愉快的结束,建立起来了连接。

 

总结一下三次握手的过程:

数据传输过程

(客户端)4号包:我要你的首页信息

客户端发送http请求,http请求需要tcp进行控制,然后交给ip层,然后由网卡发出...

注意4号帧tcp包的内容

(服务端)5号包:好的,我收到你的请求了。

(服务端)`6`号包:诺,给你的数据

5、6号均为服务端发送的包,在这期间没有接收到包,理所应当的,5、6号包的seq、ack是一样的。

(客户端)7号包:收到啦

总结

发送方的包,包括seqlen,接收方如何告知对方数据已经收到呢?

答案就在于接收方的ack=发送方的seq+发送方的len

整体来讲,就是这样。

特殊情况在于三次握手时,客户端、服务端握手时,len=0,此时对方就不是ack=seq+0,而是ack=seq+1

 

参考链接:

https://blog.csdn.net/zhangdaxia2/article/details/107760114

https://zhuanlan.zhihu.com/p/439614017

标签:Seq,seq,Ack,TCP,ack,len,客户端,服务端,78
来源: https://www.cnblogs.com/superbaby11/p/16295671.html