1. ARP协议的作用

  2. 怎么做

3. 每台主机都维护一个ARP缓存表,可以用arp -a命令查看。

4. ARP数据报的格式

前14个字节为以太网首部,以太网目的地址和以太网源地址为MAC地址,源地址已知,目的地址未知,用ff ff ff ff ff ff 填充,类型指上层协议类型,有3种——IP(0800)、ARP请求/应答(0806)、RARP请求/应答(8035)

后28个字节,以ARP请求/应答为例

a. 硬件类型指链路层网络类型,1为以太网

b. 协议类型指要转换的地址类型,0x0800为IP地址,

c. 后面两个地址长度对于以太网地址和IP地址分别为6和4(字节),

d. op字段为1表示ARP请求,2表示ARP应答。

5.例子

分析

1.请求帧如下

以太网首部(14字节)

0000: ff ff ff ff ff ff 00 05 5d 61 58 a8 08 06

ARP帧(28字节)

0000: 00 01

0010: 08 00 06 04 00 01 00 05 5d 61 58 a8 c0 a8 00 37

0020: 00 00 00 00 00 00 c0 a8 00 02

填充位(18字节)

0020: 00 77 31 d2 50 10

0030: fd 78 41 d3 00 00 00 00 00 00 00 00

以太网首部: 目的主机采用广播地址,源主机的MAC地址是00:05:5d:61:58:a8,上层协议类型0x0806表示ARP。

ARP帧: 硬件类型0x0001表示以太网,协议类型0x0800表示IP协议,硬件地址(MAC地址)长度为6,协议地址(IP地址)长度为4,op为0x0001表示请求目的主机的MAC地址(arp),源主机MAC地址00:05:5d:61:58:a8,源主机IP地址为c0 a8 00 37(192.168.0.55),目的主机MAC地址全0待填写,目的主机IP地址为c0 a8 00 02(192.168.0.2)。

由于以太网规定最小数据长度为46字节,ARP帧长度只有28字节,因此有18字节填充位,填充位的内容没有定义,与具体实现相关。

2.应答帧如下:

以太网首部 (14字节)

0000: 00 05 5d 61 58 a8 00 05 5d a1 b8 40 08 06

ARP帧(28字节)

0000: 00 01

0010: 08 00 06 04 00 02 00 05 5d a1 b8 40 c0 a8 00 02

0020: 00 05 5d 61 58 a8 c0 a8 00 37

填充位 (18字节)

0020: 00 77 31 d2 50 10

0030: fd 78 41 d3 00 00 00 00 00 00 00 00

以太网首部:目的主机的MAC地址是00:05:5d:61:58:a8,源主机的MAC地址是00:05:5d:a1:b8:40,

上层协议类型0x0806表示ARP。

ARP帧:硬件类型0x0001表示以太网,协议类型0x0800表示IP协议,硬件地址(MAC地址)长度为6,协议地址(IP地址)长度为4,op为0x0002表示应答,源主机MAC地址为00:05:5d:a1:b8:40,源主

机IP地址为c0 a8 00 02(192.168.0.2),目的主机MAC地址为00:05:5d:61:58:a8,目的主机IP地址为

c0 a8 00 37(192.168.0.55)。