常用报文头部字段结构详解摘要:本文描述了常用报文的首部以及各个字段的含义。1.以太网帧。
1.1 以太网帧结构。
1.2 相关字段详解。
1)源mac地址:描述该帧发送源,长度为6字节;
2)目的mac地址:描述该帧发送目的,长度6字节;
3)类型:描述协议类型字段,具体解析如下表所示,长度2字节;
类型协议。0x0800 ipv4
0x0806 arp
0x8035 rarp
4)数据:以太网帧中的数据,长度在46-节之间;
5)帧校验序列:crc计算结果,长度4字节。
2.1 arp结构。
2.2 相关字段详解。
1)硬件类型:描述硬件类型信息,具体解释如下表所示,长度2字节;
类型编号硬件类型。
1 以太网。
6 ieee 802网络。
12 本地网。
15 帧中继。
16 atm
17 hdld
19 异步传输模式。
20 串行线路。
21 同步传输模式。
2)协议类型:描述要映射的协议类型,0x0800为ip协议,长度2字节;
3)硬件地址长度:1字节;
4)协议地址长度:1字节;
5)操作:描述arp操作类型,1为arp请求,2为arp应答,长度2字节;
报文。3.1 ip报文结构。
3.2相关字段详解。
1)版本:协议版本,ipv4为4,长度4 bit;
2)首部长度:描述首部占32bit的数目,报文首部最长为60字节,该字段长度4
bit;3)服务类型:前3 bit为优先权子字段,接下来4 bit为分别为最小延时、最大吞。
吐量、最高可用性、最小费用,最后1 bit置0,服务类型字段长8 bit;
4)总长度:描述整个ip报文总长度,整个ip报文最大长度为节,该字。
段长16 bit;
5)标识:唯一地标识发送的ip报文,长度16 bit;
6)标志位:1bit保留位、1bit不分片位、1bit更多分片位;
7)片偏移:描述片偏移位置,13bit;
8)ttl:描述最多可以经过中间节点的数量,每经过一个节点,该值会减1,当。
该字段为0时,该报文会被丢弃,该字段8 bit;
9)协议:描述ip报文中封装的是何种协议,具体解释见下表,长度8 bit;
协议**对应协议。
0x01 icmp
0x02 igmp
0x06 tcp
0x11 udp
10)首部校验和:对ip首部进行校验,16 bit;
11)选项:可选内容,包括安全和处理限制、记录路径、时间戳、以及严格和宽松。
的源站选路等。
icmp报文中不同的类型与**,对应也有不同的icmp报文。icmp报文分为icmp 查询报文和icmp差错报文,其中4.1 icmp回波报文、4.
2 icmp路由器报文、4.3 icmp时间戳报文以及4.4 icmp地址掩码请求与应答报文属于icmp查询报文,4.
5描述icmp差错报文。
4.1 icmp回波报文。
4.1.1 报文结构。
4.1.2相关字段详解。
1)类型:0x00为回波响应,0x08为回波请求,长度1字节;
2)**:0x00,长度1字节;
3)校验和:2字节;
4)标识号:在ping请求中随机产生,2字节;
5)序号:描述请求与应答序列,在之前的基础上+1,1字节。
4.2 icmp路由器报文。
4.2.1 报文结构。
icmp路由器通告报文。
4.2.2 相关字段详解。
1)类型:0x0a为路由器通告报文,0x09为路由器请求报文,1字节;
2)**:两种报文的**均为0x00,1字节;
3)校验和:对报文进行校验,2字节;
4)地址数:描述报文中所含的地址数,1字节;
5)地址项长度:描述每个路由器地址所含32 bit的数目,该值始终为2,1字节;
6)生存时间:通告地址有效时间,2字节;
7)路由器地址:通告的路由器地址,4字节;
8)优先级:对应路由器地址的优先级,4字节;
4.3 icmp时间戳请求与通告报文。
4.3.1 报文结构。
4.1.2相关字段详解。
1)类型:0x0d为时间戳请求报文,0x0e为时间戳应答报文,长度1字节;
2)**:两种报文的**均为0x00,1字节;
3)校验和:对报文进行校验,2字节;
4)标识符:唯一标示报文的字段,2字节;
5)序列号:描述请求与应答序列,2字节;
6)发起时间戳:时间戳请求发送时间,4字节;
7)接收时间戳:被请求节点收到该报文的时间,4字节;
8)传送时间戳,被请求节点应答该报文的时间,4字节。
4.4 icmp地址掩码请求与应答报文。
4.4.1 报文结构。
4.4.2 相关字段解释。
1)类型:0x11为地址掩码请求报文,0x12为地址掩码戳应答报文,长度1字节;
2)**:两种报文的**均为0x00,1字节;
3)校验和:对报文进行校验,2字节;
4)标识符:唯一标示报文的字段,2字节;
5)序列号:描述请求与应答序列,2字节;
6)子网掩码:请求报文中,该字段为填充,应答报文中为应答的子网掩码,4字。
节;4.5 icmp差错报文。
4.5.1 报文结构。
4.5.2 相关字段解释。
1)类型与**:长度分别为1字节,具体含义见下表。
类型**描述。
3 目的不可达。
0 网络不可达。
1 主机不可达。
2 协议不可达。
3 端口不可达。
4 需要分片但设置了不可分片。
5 源站选路失败。
6 目的网络不认识。
7 目的主机不认识。
8 废弃。9 目的网络被强制禁止。
10 目的主机被强制禁止。
11 由于tos,网络不可达。
12 由于tos,主机不可达。
13 由于过滤,通信被强制禁止。
14 主机越权。
15 优先权中止生效。
4 0 源端被关闭。
5 重定向。
0 对网络重定向。
1 对主机重定向。
2 对服务类型和网络重定向。
3 对服务类型和主机重定向。
11 超时。
0 传输期间生存时间为0
1 在数据包组装期间生存时间为0
12 参数问题。
0 坏ip首部(包括各种差错)
1 缺少必需的选项。
2)校验和:2字节;
3)产生差错的ip首部:20字节;
4)原ip中的数据:8字节。
5.1 报文结构。
5.2 相关字段详解。
1)源、目的端口号:描述发送与接收进程,长度各位2字节;
2)udp长度:描述整个udp报文的长度,该字段为2字节;
3)udp校验和:2字节;
其中:灰色阴影部分为udp伪首部。
报文。6.1 tcp报文结构。
6.2 相关字段解释。
1)源、目的端口号:标识封装应用进程的端口,各2字节;
2)序号:用于标识发送的数据字节流,4字节;
3)确认号:包含发送确认的一段所希望收到的下一个序号,当ack为1时,该。
确认号有效,4字节;
4)首长:即首部长度,4 bit;
5)urg:紧急指针有效;
6)ack:确认号有效;
7)psh:接收方尽快将该报文移交给应用层;
8)rst:重新连接;
9)syn:同步序号,发起一个连接;
10)fin:完成发送任务;
11)窗口大小:声明窗口大小,2字节;
12)校验和:校验整个tcp数据包;
13)紧急指针:描述“紧急数据”放置在普通数据流中,当urg置为1时有效。
7.1 报文结构。
7.2 相关字段解释。
1)op:报文类型,1字节。1表示请求,2表示回应;
2)htype:硬件类型,1字节。1表示以太网。
3)hlen:硬件地址长度,1字节。以太网中值为6
4)hops:跳数,1字节。客户端置为0,也能被**服务器设置。
5)xid:事务id,客户端生成的随机数标识。
6)secs:客户端获取ip地址或续租之后的时间。
7)flags:标志,2字节,最低位有效,0表示广播,1表示单播。
8)ciaddr:客户端ip地址,4字节;
9)yiaddr:分给客户端的ip地址,4字节;
10)siaddr:下一个为dhcp客户端分配ip地址等信息的dhcp
11)giaddr:第一个dhcp中继地址。
12)chaddr:客户端mac地址。
13)sname:客户端分配ip地址的dhcp服务器名称,8字节。
14)file:文件配置信息,节;
15)options:选项,可变长度,使用tlv
id 描述。
0 填充。1 子网掩码。
3 默认网关。
6 dns7 日志服务器。
12 主机名。
26 接口mtu
42 ntp服务器。
50 请求地址。
51 租约期。
53 报文类型,后续介绍。
54 服务器标识。
55 请求列表,列出客户端向服务器要请求的参数。
57 最大dhcp消息长度。
58 更新租约期时间值。
59 重新绑定时间。
61 客户端id
255 结束。
其中id为53的解析如下:
8.1 报文结构。
其中16 bit的标志位为:
8.2 相关字段解释。
1)qr,1 bit,0标识查询报文,1标识应答报文;
2)opcode,4 bit,通常值为0(标准查询),其他值为1(反向查询)和2(服务。
器状态请求)
3)aa,1 bit,表示授权回答,标识该名字服务器是授权于该域的。
4)tc,1 bit,表示可截断的,使用udp时,如果应答总长度超过节时,只返回前节。
5)rd,1 bit,表示期望递归,置位标识使用递归查询,否则为迭代查询。
6)ra,1 bit,表示可用递归,置位标识名字服务器支持递归查询。
7)rcode,4 bit,通常值为0(没有差错)和3(名字差错)