TCP 三次握手和四次挥手中的ACK 为什么总是SYN + 1 或者 FIN +1 而不是+ 其他数值?


TCP 三次握手的时候

1、客户端 向服务端发起连接请求,这个时候客户端将发送一个SYN分节(假设其值为J),它告诉服务端我发送数据的初始序列号将是J。

2、服务端收到这个请求后,必须确认(ACK) 客户的SYN(J+1),同时自己也得发送一个SYN(假设其值为K) 分节,它也是告诉对端我发送数据的初始序列号将是K。

3、客户端收到服务端的确认(ACK=J+1),这个时候客户端还必须向服务端做一个确认SYN(K+1)。

这样三次握手结束,完全连接。

这里面所有的ACK 都是收到的一个SYN 值 + 1,这个+1 是因为SYN 占据一个字节的序列号空间,所以每一个SYN 的ACK 中的确认号都是该SYN的初始序列号+1.

同样的,每一个FIN 的ACK 中的确认号也为该 FIN 的序列号 +1

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM