固定首部:
源端口号和目的端口号: 占16位 服用和分解上层应用数据
序号: tcp序号是每个应用层数据的每个字节进行编号
确认序号:期望从对方接收数据的字节序号,即该序号对应字节尚未收到 用ack_seq表示
首部长度:指出tcp段的首部长度,以4字节为计算单位(4的倍数) 如果首部长度是5,则代表20字节
tcp首部长度最短是20字节最长是60字节
tcp首部 = 首部长度(20字节) + 选项(0字节)
保留:占6位 保留为以后使用目前为0
选项:长度可变 最短为0字节 最长为40字节
填充:为了使整个首部长度是4的倍数
UGR 紧急:紧急指针字段有效,优先传送
ACK 确认:ACK=1时,表示序号字段有效;ACK=0时 确认字段无效(乱序,排队优先)
PSH 推送:PSH=1 尽快将报文中数据交付接收应用进程 不要等缓存满了再付
RST 复位:RST=1,tcp连接出现严重差错,释放连接,再重新建立tcp连接
SYN 同步:SYN=1 tcp报文段是一个建立新连接请求控制段或者同意建立新连接的确认段
FIN 终止:FIN=1 tcp报文段的发送端数据已经发送完毕,请求释放连接