TCP3次握手4次挥手

0f015c154d1d4a6fbf4be3ebc1ddf2b7.png

     TCP 三次握手是建立 TCP 连接时使用的一种通信机制,主要目的是为了在客户端和服务器之间同步序列号,并确认双方的接收和发送能力都正常。 以下是 TCP 三次握手的具体过程:

     第一次握手:客户端向服务器发送一个带有 SYN(同步序列号)标志的数据包,这个数据包中会随机生成一个初始序列号(SEQ),表示客户端请求建立连接。此时客户端进入 SYN_SENT 状态。

      第二次握手:服务器收到客户端的 SYN 数据包后,会向客户端发送一个带有 SYN 和 ACK(确认)标志的数据包。其中,SYN 标志表示服务器同意建立连接,ACK 标志用于确认收到客户端的请求。服务器生成自己的初始序列号,并将客户端发送的序列号加 1 后作为确认号(ACK 号)放在数据包中发送给客户端。此时服务器进入 SYN_RECV 状态。

     第三次握手:客户端收到服务器的 SYN+ACK 数据包后,会向服务器发送一个带有 ACK 标志的数据包,确认号为服务器的序列号加 1,以表明客户端收到了服务器的同意建立连接的响应。此时客户端进入 ESTABLISHED 状态。服务器收到客户端的 ACK 数据包后,也进入 ESTABLISHED 状态,至此,TCP 连接建立成功。

      TCP 三次握手的过程可以确保连接的可靠性和准确性,防止无效连接的建立和数据传输的混乱。da8d8aaf380046e9ab8f736867ee8594.png

   4 次挥手是 TCP(Transmission Control Protocol,传输控制协议)用于终止连接的过程,也被称为连接终止协议。这个过程需要客户端和服务器总共发送 4 个包以确认连接的断开,其具体步骤如下:

    1. 第一次挥手:客户端打算断开连接,向服务器发送 FIN 报文(FIN 标记位被设置为 1),FIN 报文中会指定一个序列号,之后客户端进入 FIN_WAIT_1 状态。这意味着客户端发出连接释放报文段,主动关闭 TCP 连接,等待服务器的确认。

    2. 第二次挥手:服务器收到 FIN 报文后,就向客户端发送 ACK 应答报文,以客户端的 FIN 报文的序列号加 1 作为 ACK 应答报文段的确认序列号。接着服务器进入 CLOSE_WAIT 状态,此时 TCP 处于半关闭状态,即客户端到服务器的连接释放,但服务器仍可向客户端发送数据。客户端收到来自服务器的 ACK 应答报文段后,进入 FIN_WAIT_2 状态。

     3. 第三次挥手:服务器也打算断开连接,不再有数据要发送时,向客户端发送连接释放(FIN)报文段,之后服务器进入 LAST_ACK 状态,等待客户端的确认。服务器的连接释放(FIN)报文段的 FIN 和 ACK 标记位都为 1,序列号为一个新的值 m,确认序列号为客户端 FIN 报文序列号加 1(即 u+1)。

     4. 第四次挥手:客户端收到来自服务器的连接释放(FIN)报文段后,会向服务器发送一个 ACK 应答报文段,以连接释放(FIN)报文段的确认序号作为 ACK 应答报文段的序列号,以连接释放(FIN)报文段的序列号加 1 作为确认序号。之后客户端进入 TIME_WAIT 状态,服务器收到 ACK 应答报文段后,就进入 CLOSE 状态,到此服务器的连接已经完成关闭。客户端处于 TIME_WAIT 状态时,TCP 还未释放掉,需要等待 2MSL(Maximum Segment Lifetime,报文最大生存时间)后,客户端才进入 CLOSE 状态。

      挥手需要 4 次的原因主要是由于 TCP 的半关闭特性造成的。TCP 提供了连接的一方在结束它的发送后还能接受来自另一端数据的能力,即不允许连接处于半打开状态时单向传输数据,而当连接处于半关闭状态时是允许单向传输数据的。当客户端发送 FIN 报文后,服务器可能仍有数据要发送,等服务器数据发送完后,才会发送 FIN 报文同意关闭连接。这一特性是由于 TCP 双向通道互相独立所导致的,也使得关闭连接必须经过四次握手。

  • 18
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值