以太网和IEEE802的封装
最常使用的封装格式是RFC894定义的格式
类型(上层数据类型):
- IPv4:0x0800
- ARP:0x0806
- ARP:0x8035
- PPPoE:0x8864
- 802.1Q tag:0x8100
- IPV6:0x86DD
- MPLS Label:0x8847
ARP
ar_hrd:1,表示以太网
ar_hln和ar_pln:对于以太网上IP地址的ARP请求或应答,他们的值分别为6和4
op:
- 1,表示ARP请求
- 2,表示ARP应答
- 3,表示RARP请求
- 4,表示RARP应答
举例
0000 ff ff ff ff ff ff 00 0c f1 d4 d9 60 08 06 00 01
0010 08 00 06 04 00 01 00 0c f1 d4 d9 60 c0 a8 01 0f
0020 00 00 00 00 00 00 c0 a8 01 02
ff ff ff ff ff ff
是以太网目的地址,一个广播地址;
00 0c f1 d4 d9 60
是以太网源地址;
0806
帧类型,指的是后面的数据是属于ARP协议,到这里以太网帧头就结束了。
00 01
硬件类型,是以太网;
08 00
协议类型,是IP协议;
硬件地址长度和协议地址长度分别是6和4;
00 01
是ARP请求包;
00 0c f1 d4 d9 60
是发送者MAC地址;
c0 a8 01 0f
是发送者IP地址;
00 00 00 00 00 00
是想要得到的目标MAC地址;
c0 a8 01 02
是目标IP
MPLS Label
- 20-bit label (a number)
- 3-bit experimental field (usually used to carry IP precedence value)
- 1-bit bottom-of-stack indicator (indicates whether this is the last label before the IP header)
- 8-bit TTL (equal to the TTL in IP header),used to prevent indefinite looping of packets.
最大传输单元MTU
如果在IP层要传输一个数据报比链路层的MTU还大,那么IP层就会对这个数据报进行分片
以太网帧长度
最小长度为64字节(6+6+2+46+4)
最大长度为1518字节(6+6+2+1500+4)