为了建立连接TCP连接,通信双方必须从对方了解如下信息
①对方报文发送的开始序号
②对方发送数据的缓冲区大小
③能被接收的最大报文段长度MSS
④被支持的TCP选项。
在TCP协议中,通信双方将通过三次TCP报文段彭对以上信息的了解,并在此基础上建立一个TCP连接,而通信双方的三次TCP报文段的交换过程就是TCP连接建立实现的三次握手过程。
三次握手的具体点的描述如下
- 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;
- 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
- 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。完成三次握手,客户端与服务器开始传送数据.