TCP实现可靠的传输,是靠seq确认完成的。
TCP传送数据,既要保证数据的可靠传输,还要保证数据的传输效率,而用三次握手恰恰能够满足可靠和效率的需求。
第一次握手:
Client端向Server端发送请求报文段;意思是,我要向你发送数据了,问Server端是否可以收到呢?
第二次握手:
Server端收到Client端连接请求报文段后,若同意连接,则发送一个应答;意思是,好的,我答应你的连接请求。
第三次握手:
Client端收到应答后,还要向Server发送一个确认报文段;意思是,Server端发送的连接同一应答已经成功收到了。
此时连接的建立完成。
***********************************************************************************************************************************************************
为什么是三次握手,而非两次握手呢?
为了防止失效的连接请求报文段被服务端接收,从而产生错误。
PS:
失效的连接请求就是:若客户端向服务端发送的连接请求丢失,客户端等待应答超时,就会再次发送连接请求,此时上一个连接请求就是“失效的”。
待续……