TCP 与 UDP54 条

三次握手

建连接用 SYN → SYN+ACK → ACK 三步交换初始序号并确认双向可达;为什么是三次而不是两次:双方都要同步自己的初始序号并收到确认。

协议速查网络更新于 2026-10-12

抓包观察

抓包观察
tcpdump -nn -c 3 'tcp port 8080'
# IP A.51234 > B.8080: Flags [S],  seq 1001
# IP B.8080 > A.51234: Flags [S.], seq 5001, ack 1002
# IP A.51234 > B.8080: Flags [.],  ack 5002
第 1 步客户端 SYN,seq=ISN(client),进入 SYN_SENT
第 2 步服务器 SYN+ACK,seq=ISN(server),ack=ISN(client)+1,进入 SYN_RCVD
第 3 步客户端 ACK,双方进入 ESTABLISHED
若第 3 步的 ACK 丢失,客户端已就绪而服务器还在 SYN_RCVD:服务器重传 SYN+ACK,收到重复 ACK 后正常建连。

易错点

  • SYN 被 DROP(而非 REJECT)表现为「连接超时」:先怀疑中间防火墙,再怀疑服务未启动

数据来源与参考

  • RFC 9293 §3.5
  • RFC 6528(ISN 随机化)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌