TCP三次握手详细流程

TCP(传输控制协议)使用三次握手(Three-Way Handshake)来建立连接。以下是详细流程:


1. 第一次握手:客户端发送SYN

  • 动作:客户端向服务器发送一个SYN(Synchronize)报文,其中包含:
    • 初始序列号(ISN,Initial Sequence Number),由客户端随机生成。
    • 标志位SYN=1,表示请求建立连接。
  • 状态变化
    • 客户端从CLOSED进入SYN_SENT状态。
  • 目的:客户端请求与服务器建立连接,并告知自己的初始序列号。

2. 第二次握手:服务器发送SYN-ACK

  • 动作:服务器收到客户端的SYN报文后,向客户端发送SYN-ACK报文,其中包含:
    • 服务器的初始序列号(ISN),由服务器随机生成。
    • 确认号(ACK),值为客户端SYN报文的序列号加1(客户端ISN + 1)。
    • 标志位SYN=1ACK=1,表示确认客户端的请求并同时发起自己的连接请求。
  • 状态变化
    • 服务器从LISTEN进入SYN_RECEIVED状态。
  • 目的:服务器确认客户端的连接请求,并发送自己的连接请求。

3. 第三次握手:客户端发送ACK

  • 动作:客户端收到服务器的SYN-ACK报文后,向服务器发送ACK报文,其中包含:
    • 确认号(ACK),值为服务器SYN报文的序列号加1(服务器ISN + 1)。
    • 标志位ACK=1,表示确认服务器的连接请求。
  • 状态变化
    • 客户端从SYN_SENT进入ESTABLISHED状态。
    • 服务器收到ACK后,从SYN_RECEIVED进入ESTABLISHED状态。
  • 目的:客户端确认服务器的连接请求,完成连接的建立。

总结

  • 客户端:发送SYN → 收到SYN-ACK → 发送ACK → 进入ESTABLISHED
  • 服务器:收到SYN → 发送SYN-ACK → 收到ACK → 进入ESTABLISHED

三次握手的目的是确保双方都能正常收发数据,并同步初始序列号,为后续可靠传输奠定基础。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值