什么是tcp拆链的4次握手

無名 发表于: 2021-07-27   最后更新时间: 2021-07-27 16:39:50   945 游览

什么是tcp拆链的4次握手

发表于 2021-07-27
添加评论

面向连接的通讯协议,通过三次握手建立连接,通讯完成时四次挥手断开连接

第 1 次挥手
客户端向服务器端发送断开 TCP 连接请求的 [FIN,ACK] 报文,在报文中随机生成一个序列号 SEQ=x,表示要断开 TCP 连接

第 2 次挥手
当服务器端收到客户端发来的断开 TCP 连接的请求后,回复发送 ACK 报文,表示已经收到断开请求。回复时,随机生成一个序列号 SEQ=y。由于回复的是客户端发来的请求,所以在客户端请求序列号 SEQ=x的基础上加 1,得到 ACK=x+1

第 3 次挥手
服务器端在回复完客户端的 TCP 断开请求后,不会马上进行 TCP 连接的断开。服务器端会先确认断开前,所有传输到客户端的数据是否已经传输完毕。确认数据传输完毕后才进行断开,向客户端发送 [FIN,ACK] 报文,设置字段值为 1。再次随机生成一个序列号 SEQ=z。由于还是对客户端发来的 TCP 断开请求序列号 SEQ=x 进行回复,因此 ACK 依然为 x+1。

第 4 次挥手
客户端收到服务器发来的 TCP 断开连接数据包后将进行回复,表示收到断开 TCP 连接数据包。向服务器发送 ACK 报文,生成一个序列号 SEQ=x+1。由于回复的是服务器,所以 ACK 字段的值在服务器发来断开 TCP 连接请求序列号 SEQ=z 的基础上加 1,得到 ACK=z+1。

详细参考:https://blog.csdn.net/super828/article/details/118502664

你的答案

查看Linux相关的其他问题或提一个您自己的问题