TCP/IP学习笔记3-tcp协议的4次挥手

本文深入解析TCP/IP协议中的四次挥手过程,探讨连接断开的机制与状态转变,包括C-S双方的状态变化,以及为何C端需等待2MSL时间。同时,文章讨论了同时关闭连接的情况,为理解TCP协议提供全面视角。

背景

TCP/IP协议是当前网络时代的基础,所有的网络产品,或者是开发语言、开发框架都是基于tcp/ip协议的,所以说,学好tcp/ip对个人以后从事互联网行业会有巨大的帮助。

但是这是一个基础理论课程,就像操作系统这门课一样,学完之后可能不会对你产生太大的影响,不会让你立马拥有能够投入工作中的技能。但正是因为这是一个基础理论课,所有的互联网技术都是基于它的。所以如果你了解tcp/ip协议,将会对你未来发展或者在工作中排查问题产生积极的作用。

tcp协议的4次挥手

4次挥手,也就是断开连接的过程
tcp/ip四次挥手

  1. C向服务器发送FIN报文,然后处于FIN-WAIT-1状态。此时的C还处于一个half-close(半关闭)状态,无法发送报文,只能接收
  2. S收到FIN后,先向C回复ACK,自己变成Closed-Wait。这时候对于这个连接,S也许还有数据没有发送完成,所以S不会立马发送FIN。C收到S的ACK回复,变成FIN-WAIT-2状态
  3. S处理完成后,再次回复C,并发送FIN,自己变成Last-ACK状态
  4. C收到S发来的FIN报文后,自己变成TIME-WAIT状态,然后发送ACK给S(此时C的半关闭状态已解禁)
  5. C等待2MSL。这段时间内,如果C没有收到S的重发请求,那么表示ACK成功到达,挥手结束。否则C重发ACK

思考

一、为什么C要等待2MSL
MSL:数据包在网络链路中存活的最大时间

  • 1MSL是确保C端的ACK报文最终能到达S
  • 1MSL确保S端如果没有收到ACK,那么S重传的FIN报文可以到达C

这样一来一回,所以就是2MSL的时间

二、如果同时关闭连接会怎样
会发生状态迁移,和同时建立连接的类似。同时关闭时会出现一个上图中没有的状态closing。同时关闭的状态转变如下:

Established ---> FIN-WAIT-1 ---> closing ----> TIME-WAIT ---> Closed

总结

这是tcp/ip系列的第三篇,主要讲解了四次挥手的过程,以级挥手过程中C-S状态的转变。最后还思考了2个问题,为什么不这么做?如果发生这些情况会怎么样?等等。后面还有更深入的讲解,这个系列的文章会很长。
开始下一篇吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值