1.1 以太网数据链路层帧格式(MAC帧)
1.2 ARP (Address Resolution Protocol ——地址解析协议)协议数据包格式
硬件类型:一般为0x0001:表示MAC 帧中“目的地址”的类型为以太网MAC地址。
协议类型:表示要映射的协议地址类型。0x0800表示映射为IP 地址。
硬件地址长度:表示“目的地址”的长度,MAC 地址为0x06。
协议地址长度:表示IP 地址长度,为0x04。
OP :表示操作类型。ARP 请求:0x01;ARP 应答:0x02;RARP 请求:0x03;RARP应答:0x04。
发送端以太网地址:同“源地址”。
发送端IP 地址:即“源地址”对应的IP 地址。
目的以太网地址:同“目的地址”,对ARP 请求来说,为0。
目的IP 地址:ARP 包要发往的对象IP 地址。
1.3 IP数据包格式
4位版本:对于IPv4,该值为4;对于IPv6,该值为6。
4位首部长度:记录首部长度,以字为单位。对于不含选项的IP报头,该值为5。
8位服务类型:用来描述IP数据包急需的服务类型,如最小延时、最大吞吐量等。本字段在LWIP中没用。
16位总长度:描述了整个IP数据报包括IP报头的总字节数。
16位标识:用来标识IP层发送出去的每一份IP数据报,每发送一份报文,该值加1。
3位标志和13位偏移:用于IP数据包分片时使用。
8位生存时间(TTL):描述了该IP数据包最多能被转发的次数,每经过一次转发,该值减1,当该值为0时,一个ICMP报文会被返回至源主机。
8位协议:用来描述该IP数据包是来自于上层的哪个协议。1:ICMP;2:IGMP;
6:TCP;17:UDP。
16位首部校验和:针对IP首部的校验和,并不包括数据部分。数据部分的校验是由上层协议负责的。
32位源IP地址:发送该IP包的主机IP地址。
32位目的IP地址:该包欲到达的目的主机IP地址。
选项和数据:上层协议数据。有ICMP、TCP、UDP等。
1.4 ICMP数据包格式(ping命令是其中一种)。
类型:回显请求:8;回显应答:0。
代码:请求和应答代码均为0。
标识符:Unix系统在实现Ping命令时,把ICMP报文中的该字段置为发送进程的ID号。
序号:序号从0开始,每发送一次新的回显请求就加1。