摘要
- 同时打开发生在双方都主动打开、发送 SYN,并在 SYN-SENT 状态收到不带确认号的 SYN 时。
- 双方进入 SYN-RECEIVED,确认对方的序列空间,随后进入 ESTABLISHED;结果是一条连接,而不是两条。
- RFC 9293 要求实现支持这一过程,并记住 SYN-RECEIVED 源于主动打开还是被动打开。
角色之前的握手
TCP 常被讲成客户端向监听中的服务器发起请求。但 RFC 793 首先把三次握手描述为连接同步过程。一个发起者和一个响应者是通常情形,却不是传输层的硬性角色。客户端和服务器更多是应用及部署上的约定。
SYN 如何交叉
两个端点都执行主动 OPEN,各自选择初始序列号并发送 SYN。报文在网络中交叉时,双方都处于 SYN-SENT。每一方收到不带确认的 SYN,记录对方的初始序列号,进入 SYN-RECEIVED,并发送 SYN+ACK。收到对自己 SYN 的有效确认后,双方进入 ESTABLISHED。交叉的发起最终合并为一条连接。
SYN 会占用一个序列号,因此确认号向前推进一位。
对称仍然需要记忆
RFC 9293 要求支持同时打开,并要求记录 SYN-RECEIVED 是由主动还是被动 OPEN 导致的。这个来源会影响之后的复位和错误处理。状态机可以对称,但本地历史不能被抹去。
看似敲门的旧 SYN
旧的重复 SYN 可能看起来像同时发起。序列号验证和复位处理仍然必要;在 SYN-SENT 收到 SYN,并不自动意味着它是合法的同时打开。
标准没有承诺什么
规范说明的是:当报文抵达两个 TCP 端点时,状态机如何运行。它并不证明路由、防火墙、NAT 映射、套接字 API 或应用一定允许这种交换。
来源
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限战略圈层会员
战略圈层
所有读者均可浏览。加入并登录后可解锁档案简报。
加入战略圈层仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance





