下图给出了TCP连接过程中的一些名词的意义
三次握手建立过程
1. 客户端向服务器发送一个SYN J;
2. 服务器向客户端响应一个SYN K,并对SYN J进行确认ACK J+1;
3. 客户端再向服务器发一个确认ACK K+1.
1. 从图中可以看出,服务器必须准备好接受外来的连接。这通过socket、bind和listen函数来完成,称为被动打开。
客户端通过调用connect进行主动打开。这引起客户端向服务器发送了SYN J(表示同步,他告诉服务器客户将在连接中发送的数据初始序列号)分节,这是connect进入阻塞状态。
2. 服务器监听到连接请求,即收到SYN J分节,调用accept函数接受请求,并向客户端发送SYN K(他告诉客户端服务器将在连接中发送的数据的初始序列号)、ACK J+1分节,这是accept进入阻塞状态。
3. 客户端收到服务器的SYN K、ACK J+1分节之后,这是connect返回,并对SYN K分节进行确认;服务器收到ACK K+1分节时,accept返回,至此三次握手完毕,连接建立。
总而言之,客户端的connect在三次握手的第二次返回,客户端的accecpt在三次握手第三次返回。