查看: 13002|回复: 3

ARP协议

[复制链接]
发表于 2006-4-18 16:44:23 | 显示全部楼层 |阅读模式
ARP 协议(RFC-826)
局域网的通信是基于MAC地址的,而更多的程序都是基于IP地址,这就要有IP到MAC的映射了。IP数据包常通过以太网发送。以太网设备并不识别32位IP地址:它们是以48位以太网地址传输以太网数据包的。因此,IP驱动器必须把IP目的地址转换成以太网网目的地址。在这两种地址之间存在着某种静态的或算法的映射,常常需要查看一张表。地址解析协议(Address Resolution Protocol,ARP)就是用来确定这些映像的协议。
ARP协议是“Address Resolution Protocol”(地址解析协议)的缩写。它是工作在数据链路层,在本层和硬件接口联系,同时对上层提供服务。在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。
ARP工作时,送出一个含有所希望的IP地址的以太网广播数据包。目的地主机,或另一个代表该主机的系统,以一个含有IP和以太网地址对的数据包作为应答。发送者将这个地址对高速缓存起来,以节约不必要的ARP通信。如果有一个不被信任的节点对本地网络具有写访问许可权,那么也会有某种风险。这样一台机器可以发布虚假的ARP报文并将所有通信都转向它自己,然后它就可以扮演某些机器,或者顺便对数据流进行简单的修改。ARP机制常常是自动起作用的。在特别安全的网络上, ARP映射可以用固件,并且具有自动抑制协议达到防止干扰的目的。
11.jpg
(图1 以太网上的ARP报文格式)
图1是一个用作IP到以太网地址转换的ARP报文的例子。在图中每一行为32位,也就是4个八位组表示,在以后的图中,我们也将遵循这一方式。
硬件类型字段指明了发送方想知道的硬件接口类型,以太网的值为1。协议类型字段指明了发送方提供的高层协议类型,IP为0806(16进制)。硬件地址长度和协议长度指明了硬件地址和高层协议地址的长度,这样ARP报文就可以在任意硬件和任意协议的网络中使用。操作字段用来表示这个报文的目的,ARP请求为1,ARP响应为2,RARP请求为3,RARP响应为4。
当发出ARP请求时,发送方填好发送方首部和发送方IP地址,还要填写目标IP地址。当目标机器收到这个ARP广播包时,就会在响应报文中填上自己的48位主机地址。
在每台安装有TCP/IP协议的电脑里都有一个ARP缓存表,表里的IP地址与MAC地址是一一对应的。我们以主机A(192.168.1.5)向主机B(192.168.1.1)发送数据为例。当发送数据时,主机A会在自己的ARP缓存表中寻找是否有目标IP地址。如果找到了,也就知道了目标MAC地址,直接把目标MAC地址写入帧里面发送就可以了;如果在ARP缓存表中没有找到相对应的IP地址,主机A就会在网络上发送一个广播,目标MAC地址是“FF.FF.FF.FF.FF.FF”,这表示向同一网段内的所有主机发出这样的询问:“192.168.1.1的MAC地址是什么?”网络上其他主机并不响应ARP询问,只有主机B接收到这个帧时,才向主机A做出这样的回应:“192.168.1.1的MAC地址是00-aa-00-62-c6-09”。这样,主机A就知道了主机B的MAC地址,它就可以向主机B发送信息了。同时它还更新了自己的ARP缓存表,下次再向主机B发送信息时,直接从ARP缓存表里查找就可以了。ARP缓存表采用了老化机制,在一段时间内如果表中的某一行没有使用,就会被删除,这样可以大大减少ARP缓存表的长度,加快查询速度。
回复

使用道具 举报

 楼主| 发表于 2006-4-18 17:17:52 | 显示全部楼层
补充:

RARP(RFC-903)
RARP协议:(Reverse Address Resolution Protocol)逆地址解析协议,
RARP分组格式与ARP分组格式相同。


RARP协议一般用于无盘工作站,根据硬件地址查找IP地址。

RARP服务器要响应请求, 首先必须知道物理地址与IP地址对应关系. 为此,在RAR
P服务器中维持着一个本网"物理地址--IP地址"映射表.  

无盘机发出的RARP请求中携带着本网的物理网络地址, 当某无盘机发出RARP请求
后, 网上所有机器均收到该请求, 但只有RARP服务器处理请求并根据请求者物理
地址响应请求.  

服务器此时已经知道无盘机的物理地址, 因此不再采用广播方式, 而是直接向无
盘机发送应答.  

这样,当无盘机收到该回答报文时, 便知道了自己的IP地址.
回复

使用道具 举报

发表于 2006-4-20 22:55:42 | 显示全部楼层

ARP的2种用法

其实ARP协议在实际实现有2种用途,有谁知道哦?
回复

使用道具 举报

 楼主| 发表于 2006-4-21 09:47:40 | 显示全部楼层
个人理解:
ARP欺骗(用于交换环境中嗅探)

ARP代理(透明接入方式的防火墙)

还的请高人明确一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | CSNA会员注册

本版积分规则

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