每日一题:简述 TCP 三次握手、四次挥手的流程❓为什么需要三次握手❓为什么需要四次挥手❓

TCP(Transmission Control Protocol)是一种面向连接的协议,为了保证数据传输的可靠性,TCP 使用了三次握手和四次挥手的过程。

三次握手的过程如下🔽:

第一次握手🤝:小鱼🐟 想要与 小Y🐑 开始交流,于是 小鱼🐟 游到了 小Y🐑 面前,并向 小Y🐑 友好地挥动鱼鳍,表示他想要和 小Y🐑 开始交流,准备好了。(客户端向服务器发送 SYN 报文,请求建立连接)

第二次握手🤝:小Y 看到 小鱼🐟 的友好挥动,知道 小鱼🐟 想要和他交流。于是 小Y🐑 也跑过来,向 小鱼🐟 回应了一个友好的摆尾动作,表示他也准备好了,愿意和 小鱼🐟 开始交流。(服务器收到客户端的 SYN 报文,向客户端发送 SYN+ACK 报文,表示可以建立连接)

第三次握手🤝:小鱼🐟看到 小Y🐑 也友好地回应了摆尾动作,于是 小鱼🐟 也停下来,和 小Y🐑 一起用鱼鳍和尾巴进行握手,表示他确认 小Y🐑 也准备好了,现在他们可以开始正式交流了。(客户端收到服务器的 SYN+ACK 报文,向服务器发送 ACK 报文,表示连接已经建立)

为什么需要三次握手❓

三次握手的主要目的是确保双方的通信能力和参数都正常。这个过程可以防止已失效的连接请求报文段突然又传送到了服务器,导致资源浪费或混乱。

四次挥手的过程如下🔽:

第一次挥手👋:交流结束后,小鱼🐟 决定停止发送消息,他向 小Y🐑 挥动鱼鳍,表示他再发送消息了,但仍然愿意接收 小Y🐑 的消息。(客户端向服务器发送 FIN 报文,请求关闭连接)

第二次挥手👋:小Y🐑 看到 小鱼🐟 的挥鳍动作,知道 小鱼🐟 想要结束交流,于是 小Y🐑 也向 小鱼🐟 回应了一个摆尾动作,表示"好的,我知道了",并且停止发送消息,但仍然会接收 小鱼🐟 的消息。(服务器收到客户端的 FIN 报文,向客户端发送 ACK 报文,表示收到关闭请求)

第三次挥手👋:过了一会儿,小Y决定也停止发送消息了,于是 小Y🐑 向 小鱼🐟 摆动尾巴,表示他不再发送消息了,但仍然愿意接收 小鱼🐟 的消息。(服务器向客户端发送 FIN 报文,请求关闭连接)

第四次挥手👋:小鱼🐟 看到 小Y🐑 也不再发送消息,于是 小鱼🐟 也向 小Y🐑 回应了一个挥鳍动作,表示"好的,我们停止交流吧",并且停止发送消息。此时双方都知道不会再传输消息了,交流完全结束。(客户端收到服务器的 FIN 报文,向服务器发送 ACK 报文,表示收到关闭请求)

为什么需要四次挥手❓

四次挥手的目的是为了保证数据的完整性和可靠性。在关闭连接之前,双方需要确保所有数据都已经传输完毕,因此需要通过四次挥手的过程进行确认和处理。

总结💡:三次握手的本质是确认通信双方收发数据的能力 ,四次挥手的目的是关闭一个连接。

相关推荐
专家大圣7 分钟前
Docker+Redis监控新方案:cpolar让远程管理“零配置”
网络·redis·docker·容器·内网穿透
Xの哲學3 小时前
Linux NAPI 架构详解
linux·网络·算法·架构·边缘计算
造价女工4 小时前
视频监控系统原理与计量
网络·音视频·状态模式·消防·工程造价
wacpguo5 小时前
centos 配置网络
linux·网络·centos
子燕若水5 小时前
TLS/SSL加密通信过程全解
网络·网络协议·ssl
细节控菜鸡5 小时前
【2025最新】APP开启了SSL无法被抓包,如何进行调试
网络·网络协议·ssl
2501_915921435 小时前
“HTTPS 个人化”实战,个人站点与设备调试的部署、验证与抓包排查方法
网络协议·http·ios·小程序·https·uni-app·iphone
VernonJsn6 小时前
使用C++99语言开发ModbusTCP通讯
网络
Tony Bai7 小时前
【Go 网络编程全解】12 本地高速公路:Unix 域套接字与网络设备信息
开发语言·网络·后端·golang·unix
-曾牛7 小时前
深入浅出 SQL 注入
网络·sql·安全·网络安全·渗透测试·sql注入·盲注