tcp
TCP三次握手ACK和ack
ACK:TCP协议中的一个标志位,标识是否对上一个包进行了确认操作
ack:32位确认号,等于上一个包的序列号seq+1
此外
SYN:同步标志位,用于建立会话连接
seq:32位序号,通过该序号确认发送的数据是有序的
步骤
第一次,客户端将SYN位置1,表示开始建立同步会话。产生一个随机数x作为序列号seq,保存至TCP报文首部的序列号字段中。知名客户端打算连接的端口,将该数据包发送给服务器端,接着客户端进入SYN_SENT状态,等待服务端的响应。
第二次,服务端接收到数据包,先检查SYN标志位,发现为1,得知客户端要建立链接。于是服务端构造数据包:将SYN位和ACK位都置为1,表示当前要建立同步连接且对上一个包进行了确认,将ack字段填充为x+1,接着随机产生一个随机数y填入seq字段,发送给客户端,服务器进入SYN_Rcvd状态。
第三次,客户端检查ack字段是否为x+1,若接收到了,则将ack字段置为y+1发送给服务端,服务端接收后检查ack字段为y+1则建立连接。此时客户端和服务端进入ESTABLISHED状态,开始传输数据。
...