【TCP】四次挥手(最强详解!!通俗易懂!!)

目录

想要了解三次握手的话可以参考我的另外一篇博客

首先来了解一下FIN和ACK

FIN

ACK

接着我们再来具体的了解TCP四次挥手过程

转换为最最通俗理解方法:


想要了解三次握手的话可以参考我的另外一篇博客

【TCP】三次握手(最强详解!!通俗易懂!!)_是瑞穗的猫啊的博客-CSDN博客

首先来了解一下FIN和ACK


FIN和ACK就是两个用于关闭连接过程中的两个信号量


FIN

FIN代表的就是结束的意思,发起了一个关闭的信号

  • 可以将FIN视为“告别”的信号,用于开始关闭TCP连接的过程。
  • 当一方决定关闭连接时,它会发送一个带有FIN标志的包给对方,表示自己不会再发送数据。
  • 发送FIN包的一方仍然可以接收数据,但不能再发送数据给对方。
  • FIN包中的序列号字段指示发送者发送完数据后的下一个序列号。

ACK

ACK和三次握手过程中的一样,也是代表了确认的标志

  • 在TCP通信中,ACK用于确认已收到的数据或请求。
  • 当一方接收到带有FIN标志的包时,需要向对方回复一个带有ACK标志的包,表示已成功接收到了FIN包。
  • 这个ACK包中的确认号字段设置为接收到的FIN包的序列号加1,表示已经成功接收到了FIN包。

接着我们再来具体的了解TCP四次挥手过程

第一次挥手(A发送FIN):

  • A向B发送一个带有FIN(结束)标志位的包,表示A已经发送完所有数据,并请求关闭连接。
  • A将序列号设为X,此时A不能再向B发送数据。

最开始的时候是连接状态,我们需要将其断开TCP的连接

 

第二次挥手(B发送ACK):

  • B收到A的FIN包后,向A回复一个带有ACK(确认)标志位的包,表示已经收到了A的关闭请求。
  • 确认号字段设置为A的序列号X加1,表示B期望接收到下一个字节的序列号。

第三次挥手(B发送FIN):

  • B发起关闭连接过程,向A发送一个带有FIN标志位的包,表示B已经发送完所有数据,并请求关闭连接。
  • B选择一个随机的序列号Y,并将其放入包的序列号字段,表示B不会再向A发送数据。

第四次挥手(A发送ACK):

  • A收到B的FIN包后,向B回复一个带有ACK标志位的包,表示已经收到了B的关闭请求。
  • 确认号字段设置为B序列号Y加1,表示A期望接收到下一个字节的序列号。

等待2MSL时间后断开连接 

成功断开连接 

转换为最最通俗理解方法:

A:再见,我要关闭了(FIN)

B:我知道了(ACK)

 给 B 一段时间把自己的事情处理完...

B:再见,我要关闭了(FIN)

A:我知道了(ACK)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值