1. 服务器准备好接受外来连接。 Passive open (被动打开),需调用 socket 、 bind 、 listen 函数来完成。
2. 客户端通过调用 connect 主动打开( active open ),这使得客户 TCP 发送一个 SYN (表示同步)分节,这个分节告诉服务器,客户端将在待建立的连接中发送的数据的初始序列号。 SYN 一般不携带数据,只含有一个 IP 头部,一个 TCP 头部及可能有的 TCP 选项。
3. 服务端返回一个确认 ACK 和自己的 SYN ,这个 SYN 中含有服务器将在同一连接中发送的数据的初始序列号。
4. 客户端确认服务器端的 SYN ,即返回一个 ACK