总结描述TCP三次握手四次挥手
TCP 三次握手 (一方主动打开,另一方被动打开)
1 握手--- 客户端向服务器发送一条 TCP 报文,其中包括:
a,标记位 SYN, 表示请求建立连接
b,序号 seq = x
这时候 客户端进入 SYN-SENT 阶段。
2 握手--- 服务器收到客户端发过来的报文,结束 LISTEN 状态,并返回一段报文给客户端,其中包括:
a,标记位 SYN 和 ACK 表示确认客户端 seq 有效性, 服务器能收到客户端的数据,并同意创建链接
b,序号 seq = y
c,确认号 ack 为 x + 1
随后服务器进入 SYN-RCVD 阶段
3 握手---客户端收到服务器的返回报文后, 明确了可以和服务器传输数据, 结束 SYN-SENT 阶段,返回最后一段 TCP 报文,其中包括:
a,标记位 ACK, 表示确认收到服务器同意链接的信号。
b,序号 seq = x+1 表示收到服务器的确认号 ack ,并将其作为自己的 seq 号
c,确认号 ack = y + 1, 表示收到服务器 seq 号 y, 并将其值加 1 作为自己的确认号
随后客户端进入 ESTABLISHED 状态。 服务器受到客户端发来的报文后,明确了从服务器到客户端的数据传输是正常的,结束 SYN-RCVD 阶段
4次挥手 (一方主动释放, 另外一方被动释放)
以客户端发起主动释放为例
1--- 客户端发送 TCP 报文到 服务器端, FIN=1 seq=u,此时客户端进入 FIN-WAIT-1 阶段。
2---服务器收到客户端报文, ACK=1 seq=w ack=u+1,此时服务器进入 CLOSE-WAIT 阶段。客户端进入 FIN-WAIT-2阶段。
3---服务器发送报文给客户端, FIN=1 ACK=1 seq=y ack=u+1, 此时服务器进入 LAST-ACK 阶段,客户端进入 TIME-WAIT 阶段
4---客户端收到服务器报文,并发送 ACK=1 seq=u+1 ack=y+1,此时服务器进入 close 状态, 客户端也进入 close 状态。