TCP三次握手与四次挥手

一、三次握手

 

三次握手的主要目的是建立一个可靠的连接,确保两端的发送者和接收者都准备好进行数据传输。想象成你(客户端)想要通过电话与一个朋友(服务器)进行长时间的对话。

在你们开始聊天之前,需要先确保彼此都准备好了。这个过程包括以下步骤:

 

1: SYN:客户端发送一个SYN(同步序列编号)报文到服务器,并进入SYN_SENT状态,等待服务器确认。

翻译成人话:你拨打电话(第一次握手): 你打电话给你的朋友,告诉他你想聊天。

 

2: SYN-ACK:服务器接收到SYN报文后,会回应一个SYN-ACK(同步和确认)报文,并进入SYN_RCVD状态。

翻译成人话:朋友回应(第二次握手): 你的朋友接电话,告诉你他也准备好了,并且问你是否准备好。

 

3: ACK:客户端收到SYN-ACK报文后,会发送一个ACK(确认)报文到服务器,完成连接建立。

翻译成人话:你确认(第三次握手): 你回复你的朋友,告诉他你确实准备好了。

二、四次挥手

 

四次挥手的过程用于终止已建立的TCP连接,其步骤如下:

 

1: FIN:当数据传输完成后,通信的一方(假设为客户端)发送一个FIN(结束)报文,请求关闭连接。

翻译成人话:你说要挂电话(第一次挥手): 你告诉你的朋友你要挂电话了。

 

2: ACK:服务器收到这个FIN报文后,发送一个ACK报文作为响应,并进入CLOSE_WAIT状态。

翻译成人话:朋友确认(第二次挥手): 你的朋友回应说他知道了,但他还有一些话要说。

 

3: FIN:服务器准备好关闭连接时,发送一个FIN报文给客户端。

翻译成人话:朋友说完了(第三次挥手): 你的朋友告诉你他说完了。

 

4: ACK:客户端接收到这个FIN报文后,发送一个ACK报文作为最后的确认,然后进入TIME_WAIT状态等待一段时间以确保服务器接收到ACK报文。

翻译成人话;你确认(第四次挥手): 你告诉你的朋友你也知道了,然后你们两个可以挂电话了。

 

这四个步骤完成后,TCP连接被完全断开。

四次挥手比三次握手多一个步骤,因为当一方完成数据发送后,仍需要接收对方可能仍在发送的数据,所以需要独立地关闭每个方向的通信。

posted @   272623186  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!
点击右上角即可分享
微信分享提示