当前位置: 首页 > 图灵资讯 > java面试题> TCP三次握手过程

TCP三次握手过程

来源:图灵教育
时间:2024-05-31 13:20:26

  三次握手过程:

  客户端——发送带有SYN标志的数据包——服务端一次握手Client进入syn_sent状态;

  服务端——发送带有SYN/ACK标志的数据包——客户端二次握手服务端进入syn_rcvd;

  客户端——发送带有ACK标志的数据包——服务端三次握手连接就进入Established状态;

  为什么三次:

  主要是为了建立可靠的通信信道,保证客户端与服务端同时具备发送、接收数据的能力。

  为什么两次不行?

  1、防止已失效的请求报文又传送到了服务端,建立了多余的链接,浪费资源。

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