字段名称
长度(比特)
含义
TCP头部(20字节~)
发送方端口号
16
发送网络包的程序的端口号
接收方端口号
16
网络包的接收方程序的端口号
序号(发送数据的顺序编号)
32
发送方告知接收方该网络包发送的数据相当于所有发送数据的第几个字节
ACK号(接收数据的顺序编号)
32
接收方告知发送方接收方已经收到了所有数据的第几个字节。其中ACK是acknowledge的缩写
数据偏移量
4
表示数据部分的起始位置,也可以认为表示头部的长度
保留
6
该字段为保留,现在未使用
控制位
6
该字段中的每个比特分别表示以下通信控制含义。
URG:表示紧急指针字段有效
ACK:表示接收数据序号字段有效,一般表示数据已被接收方接收
PSH:表示通过flush操作发送的数据
RST:强制断开连接,用于异常中断的情况
SYN:发送方和接收方相互确认序号,表示连接操作
FIN:表示断开连接
窗口
16
接收方告知发送方窗口大小(即无需等待确认可一起发送的数据量)
校验和
16
用来检查是否出现错误
紧急指针
16
表示应紧急处理的数据位置
可选字段
可变长度
除了上面的固定头部字段之外,还可以添加可选字段,但除了连接操作之外,很少使用可选字段
IP头部格式
字段名称
长度(比特)
含义
IP头部(20字节~)
版本号
4
IP协议版本号,目前使用的版本是4
头部长度(IHL)
4
IP头部的长度。可选字段可导致头部长度变化,因此这里需要指定头部的长度
服务类型(ToS)
8
表示包传输优先级。
总长度
16
表示IP消息的总长度
ID号
16
用于识别包的编号,一般为包的序列号。如果一个包被IP分片,则所有分片都拥有相同的ID
标志(Flag)
3