在以太网协议中规定,同一局域网中的一台主机要和另一台主机进行直接通信,必须要知道目标主机的 MAC 地址(硬件地址)。而在 TCP/IP 协议中,网络层和传输层只关心目标主机的 IP 地址。这就导致在以太网中使用 IP 协议时,数据链路层的以太网协议接到上层 IP 协议提供的数据中,只包含目的主机的 IP 地址。 ARP 是一种地址解析协议,是一个位于 TCP/IP 协议栈中低层的协议,主要是负责将 IP 地址解析为对应的 MAC 地址。ARP 协议只适用于局域网。另外,当发送主机和目的主机不在同一个局域网中时,即便知道目的主机的 MAC 地址,两者也不能直接通信,必须经过路由转发才可以。所以此时,发送主机通过 ARP 协议获得的将不是目的主机的真实 MAC 地址,而是一台可以通往局域网外的路由器的 MAC 地址。于是此后发送主机发往目的主机的所有帧,都将发往该路由器,通过它向外发送。这种情况称为 ARP 代理。
报文格式如下图所示:其中操作类型:代表 ARP 数据包类型;0 表示 ARP 请求数据包,1 表示 ARP 应答数据包。
局域网中每台主机都有一个 ARP 高速缓存,这个缓存存放的是最近发起的 IP 地址到 MAC 地址的映射记录。ARP 高速缓存中的表项一般都要设置超时值,如果一段时间内没有与某主机通信,就将该主机对应的 IP 与 MAC 之间的映射关系去掉,下次在需要通信时,依然发送广播。
ARP的基本工作原理如下:
ARP 协议是根据 IP 地址找其对应的 MAC 地址,而 RARP 则是根据 MAC 地址找其对应 IP 地址,所以称之为"逆向 ARP"。具有本地磁盘的系统引导时,一般是从磁盘上的配置文件中读取 IP 地址,然后即可直接用 ARP 协议找出与其对应的主机 MAC 地址。但是无盘机,如 X 终端或无盘工作站,启动时是通过 MAC 地址来寻址的,这时就需要通过 RARP 协议获取 IP 地址。
RARP 的基本工作原理如下:
原文地址:http://blog.csdn.net/chenhanzhun/article/details/41476449