简述TCP四次挥手

四次挥手主要用到了两个标志位(ACK&FIN):

  • ACK 示意参考:TCP三次握手
  • FIN: 终止数据传输标志位---->当FIN为1的时候代表此数据为终止断开连接的请求

四次挥手流程:

在这里插入图片描述

由于TCP连接是双向传输的对等的模式即双工 wiki百科定义:

全双工(full-duplex)的系统允许二台设备间同时进行双向资料传输。全双工的系统可以用复线铁路类比。两个方向的车辆因使用不同的轨道,因此不会互相影响。
一般的电话、手机就是全双工的系统,因为在讲话时同时也可以听到对方的声音

意思是说双方都可以同时向对方发送或接收数据。当客户端要关闭连接时,会发送请求告知服务器我要关闭连接了。这时服务器会回一个确认数据,这时客户端到服务器的连接关闭。但是服务器到客户端的连接并没断开仍然可继续传输数据,等到服务器发送完了所有的数据后,会发送一个FIN段来关闭此方向上的连接。客户端发送ACK确认关闭连接 此时双方的连接都关闭了即挥手成功

第一次挥手:

客户端向服务器请求断开连接

  • seq:我(client)这条数据的序列号是300
  • FIN:我(client)已经没有数据给你发送了 我要断开连接

当服务器收到客户端终止连接请求的时候需要做出响应即第二次挥手

第二次挥手:

服务器表示已经收到了客户端断开连接的请求

  • ack: 我(server)已经收到你(client)序列号为300的数据了
  • ACK:服务器表示你(client)断开连接的请求我(server)这边已经正确收到了

至此客户端到服务器的连接关闭,但服务器还存在部分数据没有发送给客户端的情况 当服务器发送完成数据会向客户端发送断开连接的请求即第三次挥手

第三次挥手:

服务器收到客户端断开连接且已经没有数据需要发送给客户端的时候向客户端请求断开连接

  • seq:我(server)这条数据的序列号400
  • FIN:我(server)已经没有数据给你发送了 我要断开连接

当客户端收到服务器终止连接请求的时候需要做出响应即第四次挥手

第四次挥手:

服务器表示已经收到了客户端断开连接的请求

  • ack: 我(client)已经收到你(server)序列号为400的数据了
  • ACK:客户端表示你(server)断开连接的请求我(client)这边已经正确收到了

至此服务器到客户端的连接关闭 客户端到服务器的连接也关闭了 四次挥手保证了双端正确的断开连接

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值