地址解析协议(ARP),地址解析协议(ARP)是什么意思
地址解析协议(ARP),地址解析协议(ARP)是什么意思
地址解析协议 (ARP)
“地址解析协议 (ARP)”是所需的 TCP/IP 标准,在RFC826“地址解析协议 (ARP)”中定义。ARP 把基于 TCP/IP 的软件使用的 IP 地址解析成 LAN 硬件使用的媒体访问控制地址。ARP 对同一物理网络上的主机提供以下协议服务:
·通过网络广播请求获得媒体访问控制地址,询问“配置成所附 IP 地址的设备的媒体访问控制地址是什么?”。
·回应ARP请求时,ARP 回复的发送方和原始 ARP 请求方都将彼此的 IP 地址及媒体访问控制地址记录成被称为 ARP 缓存的本地表中的项目,以便将来引用。
硬件寻址
在LAN上使用的硬件必须包含由厂商为设备编入的唯一地址。对于以太网和令牌环 LAN 硬件,这个地址称作媒体访问控制地址。
每个媒体访问控制地址用编入每个物理硬件设备(例如,网络适配器)只读内存 (ROM) 的 6 字节数字标识物理网络中的设备。媒体访问控制地址通常用十六进制表示(如 00-AA-00-3F-89-4A)。
媒体访问控制地址的授权和注册是由电气与电子工程师协会 (IEEE) 监督。当前,IEEE 为单个厂商注册和分配媒体访问控制地址的前三个字节(唯一数字)。然后每个制造商可以对单个网络适配器分配媒体访问控制地址的后三个字节。
ARP 如何为本地通讯解析媒体访问控制地址
下图显示 ARP 如何将 IP 地址解析成同一本地网络上的主机的硬件地址。
在此例中,两个 TCP/IP 主机,主机 A 和主机 B,都位于同一个物理网络上。主机 A 分配的 IP 地址是 10.0.0.99,主机 B 分配的 IP 地址是 10.0.0.100。
当主机 A 要与主机 B 通讯时,以下步骤可以将主机 B 软件指定的地址 (10.0.0.100) 解析成主机 B 硬件指定的媒体访问控制地址:
主机B的媒体访问控制地址一旦确定,主机 A 就能向主机 B 发送 IP 通讯,为它找到主机的媒体访问控制地址。
ARP 如何为远程通讯解析媒体访问控制地址
ARP 还用于为不在本地网络上的目标而向本地路由器转发 IP 数据报。在这种情况下,ARP 解析本地网络上的路由器接口的媒体访问控制地址。
下图说明 ARP 如何为不同物理网络上通过公用路由器相连的两个主机将 IP 地址解析成硬件地址。
在此范例中,主机 A 分配的 IP 地址是 10.0.0.99,主机 B 使用的 IP 地址是 192.168.0.99。路由器接口 1 与主机 A 在同一物理网络上,使用的 IP 地址是 10.0.0.1。路由器接口 2 与主机 B 在同一物理网络上,使用的 IP 地址是 192.168.0.1。
当主机 A 要与主机 B 通讯时,以下步骤可以将路由器接口软件指定的地址 (10.0.0.1) 解析成硬件指定的媒体访问控制地址:
路由器接口 1 的媒体访问控制地址一旦确定,主机 A 就能向路由器发送 IP 通讯,为它找到路由接口 1 的媒体访问控制地址。然后,路由器通过与本部分中讨论的相同 ARP 过程将通讯转发到主机B。
ARP(Address Resolution Protocol)地址解析协议
在TCP/IP网络上,ARP协议用来匹配IP(网际协议)地址和 MAC(媒体接入控制)地址。IP地址是一种高级网间地址,标识互联网络的子网上的特定计算机。某节点的IP地址的ARP请求被广播到网络上后,这个节点会收到确认其物理地址的应答,这样的数据包才能被传送出去。RARP(逆向ARP)经常在无盘工作站上使用,以获得它的逻辑IP地址。
MAC地址是NIC(网络接口卡)的硬接线地址。MAC地址只用于在连接到同一个网络的计算机之间转发帧。它们不能向用路由器互联的其他网络上的计算机发送帧。必须使用IP寻址在路由器边界之间转发帧(假设为TCP/IP网络)。
在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。这个目标MAC地址就是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。
具有本地磁盘的系统引导时,一般是从磁盘上的配置文件中读取IP地址。但是无盘机,如X终端或无盘工作站,则需要采用其他方法来获得IP地址。RARP(逆地址解析协议)就是将MAC地址转换为IP地址。此协议原先用于获取以太网链接的无盘工作站的IP地址。
网络上的每个系统都具有唯一的硬件地址,它是由网络接口生产厂家配置的。无盘系统的RARP实现过程是从接口卡上读取唯一的硬件地址,然后发送一份RARP请求(一帧在网络上广播的数据),请求某个主机响应该无盘系统的IP地址(在RARP回答中)。对应于ARP,RARP请求以广播方式传送,而RARP回答一般是单播(unicast)传送的。
当TCP/IP网络上的一个节点需要知道同一网络或一个互联网络上的另一个节点的MAC地址时,一律使用ARP。基本上,ARP让计算机询问这样一个问题“IP地址为w.x.y.z的计算机会给我发送其MAC地址吗?”此ARP消息在本地网络上广播,所有的节点都能听到,但只有具有问题中提到的IP地址的节点作出响应。地址转换过程如图A-10所示。
图A-10 地址转换过程
三个子网——A、B和C由路由器AB和BC连接。主机Al和A2在网络A上,主机Cl在网络C上。子网B是一个互联LAN或WAN。假设主机Al想要向主机A2传输。它知道主机A2的IP地址,但必须有硬件地址才能在网络上传输。为了获得地址,它创建了一个ARP请求并在网络上“广播”该帧。网络上所有的其他主机都收到广播,但只有主机A2(即具有问题中提到地址的主机)准备一个包含其MAC地址的ARP响应并直接发送回主机Al。主机Al上的一个缓存保存此响应以备后用。
如果主机Al想要向主机Cl传输,必须涉及到路由器AB。ARP用于发现路由器AB的MAC地址,然后将向主机Cl传输的所有帧发送到路由器AB的MAC地址。然后路由器AB将数据分组转发给路由器BC,我们假设它已经使用ARP确定主机Cl的MAC地址。它仅在Cl连接到的网络上将数据分组以帧转发到主机Cl。
为了使ARP有效,每个计算机都缓存IP地址至MAC地址的映射,以消除重复的ARP广播请求。ARP高速缓存存放了最近Internet地址到硬件地址之间的映射记录。高速缓存中每一项的生存时间一般为20分钟,起始时间从被创建时开始算起。如果缓存的ARP项已有一段时间没被使用的话,大多数操作系统将删除它们,以先响应原则向ARP缓存中添加项。
添加永久的ARP项可能有助于减少经常访问的主机的ARP广播的数目。创建永久的ARP缓存项可以加速频繁使用的IP资源(如本地服务器和默认网关)的操作。但是,如果这些项无效或者本地服务器上的网络接口卡或默认网关改变,永久项保持不变,除非它们被服务器或默认网关上的ARP更新。可以用ping命令检查无效的ARP映射,如果有无效的映射,它将显示消息“请求超时”。