建立连接的过程是利用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的资源浪费。
采用二次握手可以吗?
不可以,原因就是上面说的失效的连接请求的特殊情况。