TCP三次握手四次断开(挥手)规则

TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流传输层通信协议,由互联网工程任务组(简称IETF)的RFC 793 [1]定义。TCP的连接建立和断开过程分别称为“三次握手”和“四次挥手”

1.三次握手(Connection Establishment)

TCP连接的建立采用“三次握手”流程,确保客户端和服务器之间的通信可靠。

第一次握手(SYN):

(1)客户端发送一个SYN(同步序列编号)报文段请求建立连接,并进入SYN_SEND状态。

第二次握手(SYN-ACK):

(2)服务器收到SYN报文段,回复一个SYN-ACK报文段,表示同意连接并携带自己的初始序列号。此时,服务器进入SYN_RCVD状态。

第三次握手(ACK):

(3)客户端收到SYN-ACK报文段后,发送一个ACK(确认)报文段,表示确认连接建立。此时,客户端进入ESTABLISHED状态。服务器在收到ACK报文段后也进入ESTABLISHED状态。

经过三次握手后,TCP连接建立成功,双方可以开始数据传输。

2.四次挥手(Connection Termination)

TCP连接的断开通过“四次挥手”流程来完成,确保双方都能正常关闭连接。

第一次挥手(FIN):

(1)主动关闭连接的一方(假设为客户端)发送一个FIN(结束)报文段,表示希望关闭连接,并进入FIN_WAIT_1状态。

第二次挥手(ACK):

(2)服务器收到FIN报文段后,发送一个ACK报文段作为确认,并进入CLOSE_WAIT状态。此时,客户端进入FIN_WAIT_2状态。

第三次挥手(FIN):

(3)服务器准备关闭连接时,发送一个FIN报文段,表示同意关闭连接,进入LAST_ACK状态。

第四次挥手(ACK):

(4)客户端收到服务器的FIN报文段后,发送一个ACK报文段确认,进入TIME_WAIT状态。服务器在收到ACK后进入CLOSED状态。客户端在等待一段时间后,也进入CLOSED状态。

在 TIME_WAIT 状态中,客户端会等待一段时间,这是为了确保服务器能够收到最后一个确认包,如果服务器没有收到,会重发 结束包,客户端在这段时间内还能够进行处理。

总结

三次握手确保连接的可靠性。

四次挥手确保连接的正常关闭,避免数据丢失。

这两种机制都是TCP协议设计中的重要特性,用以实现高可靠的数据传输。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值