首页 > 代码库 > TCP为什么会采用三次握手,若采用二次握手可以吗?

TCP为什么会采用三次握手,若采用二次握手可以吗?

建立连接的过程是利用C/S(客户机/服务器)模式,假设A为客户端,B为服务器端。

TCP是采用三次握手进行连接的,简要说明该过程:

      (1) A向B发送连接请求

      (2) B对收的的A的报文段进行确认

      (3) A再对B的确认进行确认

 

采用“三次握手”的目的是,为了防止失效的连接请求报文段突然又传送到B,因而产生错误。失效的连接请求报文段是指:A发出的连接请求没有收到B的确认,于是经过一段时间后,A又重新向B发送连接请求,且建立成功,顺序完成数据传输。考虑这样一种特殊情况,A第一次发送的连接请求并没有丢失,而是因为网络节点导致延迟达到B,B以为A又发起的新连接,于是B同意连接,并向A发回确认,但是此时A根本不会理会,B就一直在等待A发送数据,导致B的资源浪费。

 

采用二次握手可以吗?

        不可以,原因就是上面说的失效的连接请求的特殊情况。

TCP为什么会采用三次握手,若采用二次握手可以吗?