码上敲享录 > java面试题及答案大全 > tcp 为什么要三次握手,两次不行吗?为什么?

tcp 为什么要三次握手,两次不行吗?为什么?

上一章章节目录下一章 2023-07-11已有242人阅读 评论(0)

TCP采用三次握手的原因主要是为了确保双方的通信能够正常建立,并且可以防止已经失效的连接请求报文段被错误地接受。


1. 初始化序列号:

  - 三次握手可以使双方交换彼此的初始序列号,用于数据包的可靠传输和顺序重组。


2. 防止已失效的连接请求报文被接受:

  - 假设客户端发送了一个连接请求,但由于网络原因导致请求报文长时间滞留,而客户端并未收到服务器的任何响应。

  - 如果采用两次握手,则在客户端重新发起连接请求后,滞留的旧连接请求报文会被服务器错误地接受,导致建立了非法的连接。

  - 通过三次握手,服务器在接收到滞留的旧连接请求报文后,可以根据客户端发送的第二次请求报文确认客户端的意图,避免建立非法连接。


3. 确保双方的接受能力和发送能力正常:

  - 三次握手过程中,服务器不仅同意客户端的连接请求,还要为客户端分配资源。这样可以确保客户端和服务器都具备接受和发送数据的能力。


4. 建立可靠的同步连接:

  - 三次握手过程中,客户端和服务器都能通信并确认彼此的接收能力和发送能力,对数据的传输提供了可靠的基础。


总之,通过三次握手,TCP可以建立可靠的双向连接,并能确保正确的数据传输。如果只进行两次握手,则无法完全满足上述需求,可能导致通信的不可靠性或建立非法连接。因此,三次握手是TCP协议设计的必要部分。


0

有建议,请留言!

  • *您的姓名:

  • *所在城市:

  • *您的联系电话:

    *您的QQ:

  • 咨询问题:

  • 提 交