TCP连接握手

Art*_*ger 5 security tcp protocols

为什么在 TCP 中建立连接时使用 3 次握手?意思是,为什么使用 2 次握手还不够?

wom*_*ble 8

这样两端就可以相当确信另一端知道连接已建立。

编辑:两种方式是不够的,因为收件人无法知道发件人知道收件人已经响应,并且连接已准备就绪,这使得它(2 路握手连接)与 3 路握手相比不可靠

  • 如果我从一个假地址欺骗一个 SYN 数据包,然后接收者用一个 ACK​​ 数据包响应该地址,如果只是双向握手,则 SYN 数据包的接收者会认为它已经建立了连接,当它没有't,因为被欺骗的地址会丢弃 ACK 数据包。三向握手避免了这种情况。 (4认同)

spl*_*tne 5

TCP 中使用的握手机制旨在使尝试通信的两台主机可以在开始通信之前协商网络连接的参数。双方可以假设另一台计算机已准备好并开始可靠地发送数据。

这是握手期间在双方发送的数据包的简化图:

        同步 ->
                    SYN 收到
主机 A <- SYN ACK 主机 B
        收到 SYN ACK
        确认 ->           
                    收到确认

      TCP连接建立

SYN(同步)和 ACK(确认)消息由段的 TCP 标头内的位/数字指定。

该过程还设计为使两端可以同时发起和协商单独的连接。

为了结束两台计算机之间的连接,执行另一个 3 路通信以断开 TCP 连接。TCP 连接的启动和拆除是使 TCP 成为可靠协议的一部分。

另请参阅:UDP 和 TCP 之间有什么区别?