用户工具

站点工具


三次握手 TCP 3-Way Handshake

    TCP A                                                TCP B
1.  CLOSED                                               LISTEN
2.  SYN-SENT    --> <SEQ=100><CTL=SYN>               --> SYN-RECEIVED
3.  ESTABLISHED <-- <SEQ=300><ACK=101><CTL=SYN,ACK>  <-- SYN-RECEIVED
4.  ESTABLISHED --> <SEQ=101><ACK=301><CTL=ACK>       --> ESTABLISHED
5.  ESTABLISHED --> <SEQ=101><ACK=301><CTL=ACK><DATA> --> ESTABLISHED

个人理解:

客户端发出 SYN 请求同步 seq 号

服务器收到 SYN,承认此次 SYN,表现为返回 ACK,并且服务器也要与客户端同步 seq,因此也要带上 SYN

客户端收到 SYN+ACK,此时客户端已经算是建立连接,但是仍然要向服务器发送 ACK 表示客户端承认服务器的 seq

参考文章:

TCP 协议规范

为什么不是两次握手而是三次?

为什么需要三次握手

/opt/bitnami/dokuwiki/data/pages/技术/三次握手.txt · 最后更改: 2020/02/29 08:16 由 superuser