【计算机网络】TCP三次握手
【计算机网络】TCP三次握手
TCP三次握手流程
TCP 是面向连接的运输层协议,基于 TCP 进行通信时,需要首先建立连接,TCP 连接过程需要进行三次报文(segment)的交换,因此被称为三次握手。
为什么是三次?
防止历史连接重复初始化
如果客户端第一次握手由于网络阻塞,延迟到达,此时客户端以为该包丢失,重新建立连接。如果只有两次握手,第一次发送的握手到达时,那么服务器会直接建立连接并开始发送数据,然后才收到客户端的 RST,而这段时间发送的数据都是无效的。
同步初始序列号
通过三次握手,交换并对双方的序列号进行了确认,建立同步。
防止资源浪费
两次握手下,第一次握手和第二次握手可能丢失,但是客户端不知道是第一次握手丢失还是第二次握手丢失。
如果是第二次握手丢失,服务端其实已经建立连接,但是客户端可能认为第一次握手丢失,重新发送握手,导致服务端重新建立连接,浪费资源。