以太网数据包 TCP、IP、ICMP、UDP、ARP 协议头结构详解
以太网首部
目地 MAC 地址(8 字节)
源 MAC 地址(8 字节)
类型(2 字节)
1、IP 头的结构
版本(4 位) 头长度(4
位)
服务类型(8
位)
封包总长度(16
位)
封包标识(16 位) 标志(3 位) 片断偏移地址(13
位)
存活时间(8
位)
协议(8 位) 校验和(16 位)
来源 IP 地址(32 位)
目的 IP 地址(32 位)
选项(可选) 填充(可选)
数据
(1)字节和数字的存储顺序是从右到左,依次是从低位到高位,而网络存储
顺序是从左到右,依次从低位到高位。
(2)版本:占第一个字节的高四位。头长度:占第一个字节的低四位。
(3)服务类型:前 3 位为优先字段权,现在已经被忽略。接着 4 位用来表示
最小延迟、最大吞吐量、最高可靠性和最小费用。
(4)封包总长度:整个 IP 报的长度,单位为字节。
(5)存活时间:就是封包的生存时间。通常用通过的路由器的个数来衡量,
比如初始值设置为 32,则每通过一个路由器处理就会被减一,当这个值为
0 的时候就会丢掉这个包,并用 ICMP 消息通知源主机。
(6)协议:定义了数据的协议,分别为:TCP、UDP、ICMP 和 IGMP。定义
为:
#dene PROTOCOL_TCP 0x06
#dene PROTOCOL_UDP 0x11
#dene PROTOCOL_ICMP 0x06