三次握手
第一次握手:建立连接时,客户端发送syn包(syn=x)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(syn=y),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=y+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。
字段 含义
URG 紧急指针是否有效。为1,表示某一位需要被优先处理
ACK 确认号是否有效,一般置为1。
PSH 提示接收端应用程序立即从TCP缓冲区把数据读走。
RST 对方要求重新建立连接,复位。
SYN 请求建立连接,并在其序列号的字段进行序列号的初始值设定。建立连接,设置为1
FIN 希望断开连接。
SYN和FIN是 相反的 所以在请求连接和 请求断开 SYN =1 FIN =1不同
(1)第一次握手发送消息 发给服务确认
注意:SYN=1表示这是一个连接请求,或连接接受报文,握手完成后SYN标志位被置0。
(2)确认状态 服务器确认后同时发给客服端确认
注意:SYN=1表示这是一个连接请求,或连接接受报文
(3)确认状态 客服端确认后通知服务端-连接状态开始
ACK=1 时 ack才有效
req=x 服务端或客服端发送的序号
=>ack=x+1 代表确认 同一次请求