TCP为什么需要三次握手,两次握手不可以?

讨论这个问题的大部分博客都会引用《计算机网络》的内容:

防止已失效的连接请求又传送到服务器端,因而产生错误
不幸的是, 这种解释是不准确的, TCP 采用三次握手的原因其实非常简单, 远没有大部分博客所描述的那样云山雾绕。

这里先给出结论:

  为了实现可靠数据传输, TCP 协议的通信双方, 都必须维护一个序列号, 以标识发送出去的数据包中, 哪些是已经被对方收到的。 三次握手的过程即是通信双方相互告知序列号起始值, 并确认对方已经收到了序列号起始值的必经步骤。如果只是两次握手, 至多只有连接发起方的起始序列号能被确认, 另一方选择的序列号则得不到确认

posted @ 2022-04-08 23:24  FireCode  阅读(385)  评论(0)    收藏  举报