目录
TCP建立三次握手
回答版本可以分为两种:
第一种:
- 客户端先给服务器发送一个SYN 报文,准备建立连接;
- 服务器给客户端回发一个SYN + ACK 报文,表明已经接收到客户端的连接请求;
- 客户端给服务器发送一个ACK 报文表明连接成功建立。
第二种:
- 刚开始客户端处于closed 的状态,服务器端处于listen 状态;
- 客户端给服务器发送一个SYN 报文,并指明当前客户端的初始化序列号ISN ,表明当前需要建立连接,发送报文后,客户端的状态变为SYN_SEND 状态;
- 服务器收到报文后,返回一个SYN 报文作为应答,同时也指定了服务器端的初始化序列号,将客户端初始化序列号+1 作为ACK 的返回报文,表明自己已经接受了客户端的SYN 报文,此处服务器的状态变为SYN_RCVD 状态;
- 客户端收到来自服务器的报文后,会返回一个ACK 报文作为应答,将服务器端的初始化序列号+1 作为ACK 报文的值,此时客户端的状态为established 状态;
- 服务器端收到ACK 报文后,状态也变为 established 状态,表明连接建立成功。