- 第一次握手:建立连接时,客户端发送
syn
包和一个随机序列号seq=x
到服务器,并进入SYN_SEND
状态,等待服务器进行确认。(syn
,同 步序列编号)。 - 第二次握手,服务器收到
syn
包,必须确认客户的SYN
,然后服务器发送一个ACK=1, SYN=1, seq=y
的随机数和ack=x+1
的确认数的包发送回去。 - 第三次握手是客户端收到服务器端的
SYN+ACK
包,然后向服务器端发送确认包ack=y+1, seq=x+1, ACK=1
,客户端和服务器端进入ESTABLISHED
状态,完成三次握手。具体图示如下(ACK
表示首部中的ACK
位置1,ack
表示首部中确认序号字段的值):
这里多说一点,既然提到了连接时的三次握手,就顺便把断开连接时的四次挥手也复习一下。
- 首先客户端主动发送
Fin=1,seq=u
&#x