ARP协议概述
(2)通过广播ARP请求来找到地址映射可能会很复杂,需考虑多种情况。
如:发送方收不到应答;应答被延迟;最初的广播被丢失;
保留欲发送分组;不对给定目标机器广播多次请求;固定时间清除高速缓存表的表项等。
第二部分回答其他机器的请求。
(1)当ARP分组抵达时,软件首先提取发送方的IP地址和物理地址对,并检查本地的高速缓存,看是否已经保存有该发送方的表项。如果有这个IP地址的表项,处理程序就用从分组中获得的物理地址覆盖缓存中原先的物理地址,从而更新表项。然后处理ARP分组的其他部分。
(二)ARP的改进
当A向B发送ARP请求时,为了预计B的需求并避免额外的网络通信量,A在向B发出的请求中也包含了A的IP到物理地址的绑定。B从请求中提取出A的绑定,把它保存在自己的ARP缓存中,然后向A发送应答。
因为当A广播它的首次请求时,网上所有机器都接收到该请求,并且可以从中提取出A的IP到物理地址的绑定,更新自己的ARP缓存中的相应绑定内容。
二、ARP分组格式
ARP分组直接封装在数据链路帧中。
下图是ARP分组的格式:
ARP分组具有如下的一些字段:
硬件类型:这是一个16比特字段。用来定义运行ARP的网络的类型。例如,以太网类型是1。
协议类型:这是一个16比特字段。标识发送设备所使用的协议类型。例如,对IPv4协议,这个字段的值是080016。
(2)如果到达的是一个ARP请求,则接收方机器要查看他自己是否是请求的目标。如果是,则ARP软件用本机的物理地址形成应答,并把应答直接发给请求方。
(3)如果发送方的地址对不在接收方的高速缓存中,则接收方还要把这个地址对添加到缓存中。
(4)如果是一个ARP应答到达时,ARP软件就把分组从队列中移走,放到一个帧中,把该地址绑定填入物理目的地址。
ARP
一、ARP协议概述
IP数据包常通过以太网发送。以太网设备并不识别32位IP地址:它们是以48位以太网地址传输以太网数据包的。因此,IP驱动器必须把IP目的地址转换成以太网网目的地址。在这两种地址之间存在着某种静态的或算法的映射,常常需要查看一张表。地址解析协议(Address Resolution Protocol,ARP)就是用来确定这些映象的协议。
发送站硬件地址:这是一个可变长度字段。用来定义发送方设备的硬件地址。例如,对以太网这个字段是6字节长。
发送站协议地址:这是一个可变长度字段。用来定义发送方设备的逻辑地址。对于I Pv4协议,这个字段是4字节长。
目标硬件地址:这是一个可变长度字段。用来定义接收方设备的硬件地址。对以太网这个字段是6字节长。对于ARP请求报文,这个字段是全0,因为发送站不知道目标的物理地址。
3、每一个主机或路由器都收到这个帧。因为这个帧包含了广播目的地址,所有的站都将此报文送交ARP。除了目标机器外,所有的机器都丢弃这个分组。目标机器识别这个IP地址。
4、目标机器用ARP报文进行回答。此报文包含他的物理地址。报文使用单播。
5、发送站收到这个回答报文,他现在知道了目标机器的物理地址。
6、携带数据发给目标机器的数据报现在封装成帧,用单播发送给目的站。
ARP工作时,送出一个含有所希望的IP地址的以太网广播数据包。目的地主机,或另一个代表该主机的系统,以一个含有IP和以太网地址对的数据包作为应答。发送者将这个地址对高速缓存起来,以节约不必要的ARP通信。
如果有一个不被信任的节点对本地网络具有写访问许可Hale Waihona Puke Baidu,那么也会有某种风险。这样一台机器可以发布虚假的ARP报文并将所有通信都转向它自己,然后它就可以扮演某些机器,或者顺便对数据流进行简单的修改。ARP机制常常是自动起作用的。在特别安全的网络上,ARP映射可以用固件,并且具有自动抑制协议达到防止干扰的目的。
目标协议地址:这是一个可变长度字段。用来定义接收方设备的逻辑地址。对于I Pv4协议,这个字段是4字节长。
三、ARP的操作步骤
(一)工作步骤
当发送站知道目标站的IP地址以后:
1、IP请求ARP产生一个请求ARP报文,填入发送站的物理地址、发送站的IP地址以及目标IP地址。目标物理地址字段则填入0。
2、这个报文发送给数据链路层,在这一层他被封装成帧,使用发送站的物理地址作为源地址,而将物理广播地址作为目的地址。
硬件长度:这是一个8比特字段。数据报中硬件地址以字节为单位的长度。例如,对以太网这个值是6。
协议长度:这是一个8比特字段。数据报中所用协议地址以字节为单位的长度。例如,对IPv4这个值是4。
操作码:这是一个16比特字段。操作码指明数据报是A R P请求还是A R P应答,假如是A R P请求,此值为1;假如数据报是A R P应答,此值为2。
当一台计算机替换了自己的主机接口时,物理地址也就变了。此时,要通知网络上的在ARP中存有该机绑定的其他所有计算机,以便于他们修改相应的项。系统可以在启动时发送一个ARP广播把新地址通知给其他主机。
四、ARP的实现
从功能上讲,ARP被划分为两部分:
第一部分在发送分组时把IP地址映射到物理地址上。
(1)给定了一个目的站的IP地址,软件查询他的ARP缓存,看是否有从该IP地址到物理地址的映射。若有,则软件提取该物理地址,把数据放到使用该地址的帧中,并发送该帧。若没有,则软件必须广播一个ARP请求并等待应答。