三次握手四次挥手

1. 三次握手大致过程:
  • 客户端发送seq=x(随机选取一个序列号x作为自己的初始序号发送给B)、SYN = 1,客户端将自身状态设为SYN-SENT
  • 服务端接收到seq=x的包之后,需要继续接收seq=x+1的包,因此对客户端发送SYN = 1(发起一个新连接)、ack = x + 1seq = y(自身数据包序列号)、ACK = 1(确认序号有效),同时将自身状态设置为SYN-RECEIVED;
  • 客户端同理发送ack = y + 1seq = x + 1ACK = 1SYN = 1

2.四次挥手大致过程
  • 第一次挥手:Client发送一个FIN=M(释放一个连接),用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态。
  • 第二次挥手:Server收到FIN后,发送一个ack=M+1给Client,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),Server进入CLOSE_WAIT状态。
  • 第三次挥手:Server发送一个FIN = N,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态。
  • 第四次挥手:Client收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到序号ack=N+1,Server进入CLOSED状态,完成四次挥手。

参考:
1. TCP三次握手详解及释放连接过程

猜你喜欢

转载自blog.csdn.net/yihui1314/article/details/80070874