码迷,mamicode.com
首页 > Web开发 > 详细

Networking - ARP 协议

时间:2015-09-21 21:17:48      阅读:316      评论:0      收藏:0      [点我收藏+]

标签:

ARP 协议概述

ARP(Address Resolution Protocol),即地址解析协议,用于把 IP 地址映射到物理地址。网段上的每台主机都维护着一个被称为 ARP Table 或 ARP Cache 的表格,其中包含着网段上其他主机的 IP 地址与物理地址的对应关系。当主机需要向网段上的其他主机发送数据时,它会查看 ARP Cache 来获得目的的物理地址。ARP 缓存是动态变化的。如果要接收数据的地址当前并不存在于 ARP Cache,主机就会广播一个 ARP 请求帧。ARP 请求帧包含未解析的 IP 地址,还包含发送这个请求的主机的 IP 地址和物理地址。网段上的其他主机接收到这个 ARP 请求,拥有这个未解析的 IP 地址的主机会向发出请求的主机发送自己的物理地址。这个新的 IP 地址与物理地址的对应关系就会添加到请求主机的 ARP Cache 中。一般来说,ARP Cache 里的条目在一定时间后会过期,条目就会被从表里删除。当主机需要向这个条目所包含的 IP 地址发送数据时,解析过程会再次重复。

 

ARP 报文格式

ARP 报文格式如下:

HTYPE PTYPE HLEN PLEN OPER SHA SPA THA TPA

HTYPE(Hardware Type): 该字段有 2 个字节,表示硬件类型。

PTYPE(Protocol Type): 该字段有 2 个字节,表示协议类型。

HLEN(Hardware Address Length ): 该字段有 1 个字节,表示硬件地址长度。

PLEN(Protocol Address Length ): 该字段有 1 个字节,表示协议地址长度。

OPER(Operation): 该字段有 2 个字节,表示操作类型。1 表示 ARP 请求,2 表示 ARP 应答。

SHA(Sender Hardware Address): 该字段有 6 个字节,表示发送者硬件地址。

SPA(Sender Protocol Address): 该字段有 4 个字节,表示发送者 IP 地址。

THA(Target Hardware Address): 该字段有 6 个字节,表示目标硬件地址。

TPA(Target Protocol Address): 该字段有 4 个字节,表示目标 IP 地址。

 

ARP 工作过程

下面使用 Wireshark 分析 ARP 的工作过程。试验的机器:发送者机器(IP 地址:10.21.28.47,MAC 地址:68:f7:28:0f:32:2e)下文称为 HOSTA;目标机器(IP 地址:10.21.28.110,MAC 地址:54:ee:75:25:33:fd),下文称为 HOSTB。

1. 使用 "arp and eth.addr == 68:f7:28:0f:32:2e" 过滤规则定位数据封包。观察编号为 2370 的数据帧,MAC 地址为 68:f7:28:0f:32:2e 广播了一个 ARP 请求帧,询问 “Who has 10.21.28.110?  Tell 10.21.28.47”。

技术分享

2. 观察 No.2370 的 Ethernet II 数据帧的内容。源 MAC 地址为 68:f7:28:0f:32:2e,目的 MAC 地址为 ff:ff:ff:ff:ff:ff(广播),数据包类型 ARP(0x0806)。

技术分享

3. 观察 No.2370 的 ARP 数据包的内容。Opcode 的值为 1,表示这是一个 ARP 请求。源 MAC 地址为 68:f7:28:0f:32:2e,源 IP 地址为 10.21.28.47,目标 IP 地址为 10.21.28.110。这就像是 HOSTA 向网段里的其他主机发出询问 “你们好,我的 MAC 地址是 68:f7:28:0f:32:2e,IP 地址是 10.21.28.47,IP 地址为 10.21.28.110 的主机的 MAC 地址是多少啊,可以站出来跟我说一下吗?”。

技术分享

4. 观察编号为 2371 的数据帧,MAC 地址 54:ee:75:25:33:fd 主机回应了 68:f7:28:0f:32:2e:“10.21.28.110 is at 54:ee:75:25:33:fd”。

技术分享

5. 观察 No.2371 的 ARP 数据包的内容。Opcode 的值为 2,表示这是一个 ARP 应答。源 MAC 地址为 54:ee:75:25:33:fd,源 IP 地址为 10.21.28.110,目标 MAC 地址为 68:f7:28:0f:32:2e,目标 IP 地址为 10.21.28.47。HOSTB 收到 HOSTA 的 ARP 请求后,发现 HOSTA 询问的 IP 地址 10.21.28.110 正是自己的 IP 地址。就回应 HOSTA 说 “10.21.28.110 是我的 IP 地址,我的 MAC 地址是 54:ee:75:25:33:fd。”

技术分享

6. HOSTA 接收到 HOSTB 的应答后,就可以更新 HOSTA 的 ARP Cache 了。

Networking - ARP 协议

标签:

原文地址:http://www.cnblogs.com/huey/p/4826019.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!