课件制作人:赵伟ARP与RARP课件制作人:赵伟3.2.3地址解析协议ARP和逆地址解析协议RARPIP地址物理地址ARP物理地址IP地址RARP课件制作人:赵伟地址解析协议ARP不管网络层使用的是什么协议,在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址。每一个主机都设有一个ARP高速缓存(ARPcache),里面有所在的局域网上的各主机和路由器的IP地址到硬件地址的映射表。当主机A欲向本局域网上的某个主机B发送IP数据报时,就先在其ARP高速缓存中查看有无主机B的IP地址。如有,就可查出其对应的硬件地址,再将此硬件地址写入MAC帧,然后通过局域网将该MAC帧发往此硬件地址。ARP响应AYXBZ主机B向A发送ARP响应分组主机A广播发送ARP请求分组ARP请求ARP请求ARP请求ARP请求209.0.0.5209.0.0.600-00-C0-15-AD-1808-00-2B-00-EE-0A我是209.0.0.5,硬件地址是00-00-C0-15-AD-18我想知道主机209.0.0.6的硬件地址我是209.0.0.6硬件地址是08-00-2B-00-EE-0AAYXBZ209.0.0.5209.0.0.600-00-C0-15-AD-18课件制作人:赵伟ARP高速缓存的作用为了减少网络上的通信量,主机A在发送其ARP请求分组时,就将自己的IP地址到硬件地址的映射写入ARP请求分组。当主机B收到A的ARP请求分组时,就将主机A的这一地址映射写入主机B自己的ARP高速缓存中。这对主机B以后向A发送数据报时就更方便了。课件制作人:赵伟应当注意的问题ARP是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题。如果所要找的主机和源主机不在同一个局域网上,那么就要通过ARP找到一个位于本局域网上的某个路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络。剩下的工作就由下一个网络来做。课件制作人:赵伟应当注意的问题(续)从IP地址到硬件地址的解析是自动进行的,主机的用户对这种地址解析过程是不知道的。只要主机或路由器要和本网络上的另一个已知IP地址的主机或路由器进行通信,ARP协议就会自动地将该IP地址解析为链路层所需要的硬件地址。课件制作人:赵伟使用ARP的四种典型情况发送方是主机,要把IP数据报发送到本网络上的另一个主机。这时用ARP找到目的主机的硬件地址。发送方是主机,要把IP数据报发送到另一个网络上的一个主机。这时用ARP找到本网络上的一个路由器的硬件地址。剩下的工作由这个路由器来完成。发送方是路由器,要把IP数据报转发到本网络上的一个主机。这时用ARP找到目的主机的硬件地址。发送方是路由器,要把IP数据报转发到另一个网络上的一个主机。这时用ARP找到本网络上的一个路由器的硬件地址。剩下的工作由这个路由器来完成。课件制作人:赵伟什么我们不直接使用硬件地址进行通信?由于全世界存在着各式各样的网络,它们使用不同的硬件地址。要使这些异构网络能够互相通信就必须进行非常复杂的硬件地址转换工作,因此几乎是不可能的事。连接到因特网的主机都拥有统一的IP地址,它们之间的通信就像连接在同一个网络上那样简单方便,因为调用ARP来寻找某个路由器或主机的硬件地址都是由计算机软件自动进行的,对用户来说是看不见这种调用过程的。ARP消息格式硬件地址类型2Byte协议地址类型2Byte硬件地址长度1Byte协议地址长度1Byte操作(请求/应答)2Byte发送者的硬件地址发送方的协议地址目标的硬件地址目标的协议地址0x010x00硬件地址长度=48bit协议地址长度=32bit请求=1应答=2发送者的硬件地址发送方的协议地址目标的硬件地址目标的协议地址以太网,IP协议ARP协议的规定ARP地址解析方法查表:--地址联编或映射信息存储在内存的一张表中--多用于广域网相近形式计算:--根据一定的规则为计算机选择协议地址和硬件地址,可以从协议地址计算出硬件地址--适用于动态物理地址的网络消息交换--通过在网络上交换信息来获得硬件地址--设计专门的地址解析服务器,完成解析任务--所有的计算机都参与地址解析工作ARP消息的传输和管理发送一个ARP消息:构造一个ARP帧请求:构造一个ARP硬件广播帧--帧的类型是ARP类型--ARP消息的操作设成请求--帧的目的地地址为全网广播地址应答:构造一个确定硬件地址的ARP应答帧--帧的类型是ARP类型--ARP消息的操作设成应答--帧的目的地地址为发送请求的主机的硬件地址ARP消息的传输和管理处理一个ARP消息根据帧类型判定是一个ARP帧将消息中的操作类型取出判定是请求还是应答--请求:比较请求的协议地址是否与本地的协议地址相同,相同,则将请求方的协议地址和硬件地址存入本地缓存,然后构造一个应答消息;--应答:将消息中的地址信息记入自己的缓存解释远程IP地址ARP代理:若ARP请求解析另一个网络上的IP地址,那么,连接这两个网络的路由器将做出应答,路由器称为ARP代理。将路由器设置成ARP代理,可以使原主机误认为目标主机与它在同一网络上。直接查找网关的硬件地址:由原主机判定目标所在的网络是在本地还是远程,然后查找自己的缺省网关的硬件地址,将数据发往缺省网关。解释远程IP地址ARouterBARPBroadcastforRouterAARPforRouterBIPAddress=131.107.3.24HardwareAddress=08004...IPAddress=131.107.7.29HardwareAddress=08009...ARPCache131.107.7.708009...131.107.7.108006...ARPCache131.107.3.708004...41131.107.3.108005...131.107.7.108006...25ping131.107.7.29ARPCache3ARPCache的维护IPAddressHardwareAddress131.107.255.255=FFFFFFFFFFFF131.107.3.5=080009654321131.107.3.24=080004321371131.107.78.3=080006723111131.107.9.4=080002345621131.107.7.29=08000965444121ARP命令arp-a或arp–g:查看缓存的内容arp-aIp:只显示与该接口相关的ARp缓存项目arp–s(arp-sIp物理地址):添加静态的表项arp–d(arp-dIp):删除表项ARP小结在大多数的TCP/IP实现中,ARP是一个基础协议,但是它的运行对于应用程序或系统管理员来说一般是透明的。ARP高速缓存在它的运行过程中非常关键,我们可以用arp命令对高速缓存进行检查和操作。高速缓存中的每一项内容都有一个定时器,根据他来删除不完整和完整的表项。arp命令可以显示和修改ARP高速缓存的内容。课件制作人:赵伟逆地址解析协议RARP逆地址解析协议RARP使只知道自己硬件地址的主机能够知道其IP地址。这种主机往往是无盘工作站。因此RARP协议目前已很少使用。