温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

什么是TCP/IP三次握手

发布时间:2026-07-25 10:16:05 来源:亿速云 阅读:126 作者:小樊 栏目:软件技术

TCP/IP 三次握手(Three-way Handshake)是 TCP 协议在建立连接时使用的机制,目的是保证通信双方都能确认彼此的发送和接收能力正常,并同步初始序列号(ISN),从而建立一个可靠的连接。


一、三次握手的基本过程

客户端(Client)服务器(Server) 来说明:

第一次握手

  • 客户端 → 服务器
  • 发送一个 SYN(同步)包
  • 携带:
    • 客户端的初始序列号 ISN(c)
  • 状态变化:
    • 客户端进入 SYN_SENT

含义:
“我想和你建立连接”


第二次握手

  • 服务器 → 客户端
  • 发送一个 SYN + ACK 包
  • 携带:
    • 服务器的初始序列号 ISN(s)
    • 确认号:ISN(c) + 1
  • 状态变化:
    • 服务器进入 SYN_RCVD

含义:
“我收到了你的请求,我也想和你建立连接”


第三次握手

  • 客户端 → 服务器
  • 发送一个 ACK 包
  • 携带:
    • 确认号:ISN(s) + 1
  • 状态变化:
    • 客户端进入 ESTABLISHED
    • 服务器收到后也进入 ESTABLISHED

含义:
“我收到了你的确认,连接可以开始了”


二、三次握手示意图(简化)

客户端                服务器
  |  -------- SYN -------->  |
  |  <----- SYN+ACK -------  |
  |  -------- ACK --------->  |

三、为什么是“三次”,而不是两次或四次?

❌ 两次握手的问题

  • 无法防止 历史重复连接请求
  • 服务器无法确认客户端是否真的能收到自己的响应
  • 容易造成资源浪费(服务器提前建立连接)

✅ 三次握手的必要性

  1. 确认双方的收发能力
    • 客户端能发、能收
    • 服务器能发、能收
  2. 同步双方的初始序列号
  3. 防止旧的重复连接请求导致错误连接

四、三次握手建立的关键信息

内容 作用
SYN 请求建立连接
ACK 确认收到数据
ISN 初始序列号,防止序列号冲突
状态机 SYN_SENT、SYN_RCVD、ESTABLISHED

五、常见面试/考试点

  • TCP 是 面向连接、可靠 的协议
  • 三次握手 只发生在连接建立阶段
  • 四次挥手才是 断开连接
  • SYN Flood 攻击就是利用三次握手机制进行攻击

如果你愿意,我也可以:

  • 类比(打电话) 的方式再讲一遍
  • 结合 Wireshark 抓包示例 讲解
  • 对比 TCP 与 UDP 的区别
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI