TCP 三次握手和四次挥手

一、三次握手 (Three-Way Handshake)

概念
三次握手用于在 TCP 连接建立时,确保客户端和服务器之间的通信信道可靠,并同步双方的初始序列号。

三次握手过程
  1. 第一次握手:客户端向服务器发送 SYN (synchronize) 报文,表示请求建立连接,并携带一个初始序列号 Seq = x

    • 客户端状态:SYN_SENT
  2. 第二次握手:服务器收到 SYN 报文后,回复一个 SYN + ACK 报文,表示同意建立连接,并携带自己的初始序列号 Seq = y 和确认号 Ack = x+1

    • 服务器状态:SYN_RCVD
  3. 第三次握手:客户端收到 SYN + ACK 报文后,回复一个 ACK 报文,确认序列号为 Ack = y+1,并正式建立连接。

    • 客户端状态:ESTABLISHED
    • 服务器状态:ESTABLISHED
举例

假设客户端与服务器建立一个连接:

  1. 客户端服务器:
    客户端发送 SYN (Seq=100),请求建立连接。

  2. 服务器客户端:
    服务器回复 SYN+ACK (Seq=300, Ack=101),同意连接。

  3. 客户端服务器:
    客户端回复 ACK (Seq=101, Ack=301),连接建立成功。

 

二、四次挥手 (Four-Way Handshake)

概念
四次挥手用于在 TCP 连接断开时,确保双方都能完全关闭通信,释放连接资源。

四次挥手过程
  1. 第一次挥手:客户端发送 FIN 报文,表示不再发送数据,但可以接收数据。

    • 客户端状态:FIN_WAIT_1
  2. 第二次挥手:服务器收到 FIN 报文后,回复一个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值