解释TCP的三次握手及四次挥手及为什么要等待2MSL

本文用通俗易懂的语言解释TCP的三次握手和四次挥手过程,包括FIN、SYN、ACK的含义,以及为何需要等待2MSL。在三次握手时,确保双方都能发送和接收数据。四次挥手则涉及断开连接,防止数据丢失,客户端需等待2MSL以确认服务器收到关闭请求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

声明: 本文不保证每个定义绝对严谨, 只是通过更加通俗易懂的语言来让阅读者更好的理解三次握手及四次挥手的过程!!!

首先我们来明白几个定义:

1. FIN: 请求关闭报文
2. SYN: 请求建立连接
3. ACK: 确认收到
4. MSL: 最大报文生存时间
三次握手:
三次握手理解起来比较简单, 说白了就是一个确认双方都能发送且都能接收的一个过程.

第一步: 客户端想要与服务器建立连接, 于是向服务器发送SYN报文请求连接.

第二步: 服务器收到客户端的连接请求之后, 服务器向客户端发送确认报文ACK及请求连接报文SYN

第三步: 客户端收到服务器的连接请求, 向服务器发送确认报文ACK

然后我们用通俗易懂的话来说一下这三步都在做什么:

第一步让服务器知道客户端能够发送, 第二步让客户端知道服务器能够接收并且能够发送, 第三步在服务器接收到ACK之后,服务器知道了客户端能够发送, 至此双方都能确认了对方能够收和发, 接下来就是愉快的互相收发数据的过程啦~
四次挥手:

四次挥手是一个双方断开连接的过程, 这个过程中大家要理解的点有三个:

1. 为什么第二次挥手和第三次挥手不能合并为一次

2. 第二次挥手和第三次挥手之间的等待是在干什么

3. 主动发起方为什么要在第四次挥手之后等待2MSL的时间

我们逐步来解释:

第一步: 客户端做为主动发起方想要与服务器断开连接, 所以向服务器发送FIN报文

第二步: 服务器收到客户端的FIN报文, 向客户端发送ACK确认报文, 也就是说服务器告诉客户端说我收到你的关闭请求了

第三步: 服务器等待时间结束之后, 向客户端发送FIN报文, 告诉说客户端我请求关闭

第四步: 客户端收到服务器的FIN报文之后, 向服务器发送ACK确认报文, 告诉服务器说我也收到了你的关闭请求了. 此

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值