曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 3556|回复: 0
打印 上一主题 下一主题

ARP 协议基本原理介绍与分析

[复制链接]

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34395
跳转到指定楼层
楼主
发表于 2012-5-7 13:43:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
IP 地址(逻辑地址)和 MAC 地址(物理地址)都是网络上的唯一标识。当主机或路由器将数据包发送到另一个主机或路由器时,它必须有接收端的逻辑地址( IP 地址),IP 数据包必须封装成帧才能通过物理网络,也就是说,发送端必须有接收端的物理地址,因此需要有从逻辑地址到物理地址的映射。

如果将逻辑地址和物理地址之间的关联以静态方式存储在表中,那么发送端只要查表就能找出对应于逻辑地址的物理地址。但是这样的不足是,当物理地址发生变化时,这个表也需要随之更新,如果是频繁的在所有的机器上进行更新将是非常麻烦的任务。

如果上述的映射关系做成动态的,即发送端在需要时可以请求接收端宣布它的物理地址,那么这样就方便多了,ARP 正是为这个目的而设计的协议。

ARP 把 IP 地址和它的物理地址关联起来,在典型的物理网络上,如局域网,链路上的每个设备都用通常写在 NIC 中的物理地址或站点地址来标识。

下图是 ARP 在 TCP/IP 协议族中的位置:



注意,MAC 地址是以太网地址形式,在其他网络实体层技术中都会有其特有的地址形式,因此 “MAC 地址只在单一的以太网上有效,故而 MAC 地址不会跨越路由器设备”。

下面使用 wireshark 软件来观察 ARP 工作的工程:

1. 在一台主机上打开 Wireshark 软件,然后在 Capture Options 里单击 Capture Filter,如下图所示:



2. 在弹出的列表框中选择 “ Ethernet type 0x0806 (ARP)



3. 按下 OK 后,启动 Wireshark 开始监听

4. 开启一个终端窗口,运行 ping 命令,所 ping IP 为 192.168.1.107 (本机 IP 为 192.168.1.106) ,与此同时,会看到 Wireshark 捕捉到了相应的数据包,如下图所示:


在上图中,我们可以看到数据包的发往目的地(Destination) 为 Broadcast (广播),协议为 ARP,在 Info 一栏可以看到:
[quoe]who has 192.168.1.107? Tell 192.168.1.106[/quote]
也就是,106 这台主机向整个局域网广播”谁是 107 啊,是的话就告诉我“。

从第 1 条数据可以看到:


这里的 Dst MAC 为:ff:ff:ff:ff:ff:ff ,这个就是广播 MAC 地址,ARP 请求包即发往它从而被广播出去。

展开 ARP 协议包可以看到:


发送端的 MAC 为 08:00:27:6a:42:71 ,而 IP 地址为 192.168.1.106 ;目的 IP 地址为 192.168.1.107 ,而此时 MAC 地址还未知,因此为 00:00:00:00:00:00 。

ARP 请求数据包被广播到网络上,所有在这个网络上的主机都会收到该数据包,它们都会做相应的检查,如果不是自己的 IP ,那么不理会该包,如果是自己的 IP,那么发送一个应答包,该应答包可以从捕获的第 2 条数据的 "Info" 一栏可以看到:
192.168.1.107 is at 00:21:70:fe:5c:c3
同样可以展开第 2 条数据中的 ARP 包部分:


在上图中看到,发送方的 IP 为 192.168.1.107,其对应 MAC 为 00:21:70:fe:5c:c3 。正是这样,两个 ARP 数据包一来一往,便交换了两台主机的 MAC 地址信息。

下面两个图是 ARP 的工作原理图:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2025-5-4 23:40 , Processed in 0.079992 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表