IP地址和MAC地址之间的转换
点对点链路不使用ARP
ARP高速缓存
- ARP高效运行的关键是每个主机上都有一个ARP高速缓存。
-
- 存放了最近IP地址与MAC地址间的映射关系。
- 每一项生存时间一般为20分钟。
命令arp -a
接口: 192.168.0.112 --- 0x9
Internet 地址 物理地址 类型 192.168.0.1 80-89-17-b1-b3-a8 动态 192.168.0.101 94-a1-a2-1e-49-2d 动态 192.168.0.255 ff-ff-ff-ff-ff-ff 静态 224.0.0.2 01-00-5e-00-00-02 静态 224.0.0.22 01-00-5e-00-00-16 静态 224.0.0.251 01-00-5e-00-00-fb 静态 224.0.0.252 01-00-5e-00-00-fc 静态 224.0.0.253 01-00-5e-00-00-fd 静态 239.192.152.143 01-00-5e-40-98-8f 静态 239.255.255.250 01-00-5e-7f-ff-fa 静态 255.255.255.255 ff-ff-ff-ff-ff-ff 静态
ARP 分组格式
对于一个ARP请求来说,除目的端硬件地址外的所有其他的字段都有填充值,当系统收到一份目的端为本机的ARP请求后,
将硬件地址填进去,然后用两个目的端地址分别替换两个发送端地址。
ARP代理
如果ARP请求是从一个网络的主机发往另一个网络上的主机,那么连接这两个网络的路
由器就可以回答该请求,这个过程称作委托 ARP或ARP代理(Proxy ARP)。这样可以欺骗发起
ARP请求的发送端,使它误以为路由器就是目的主机,而事实上目的主机是在路由器的“另
一边”。路由器的功能相当于目的主机的代理,把分组从其他主机转发给它
免费ARP有两个方面的作用:
- 一个主机可以通过它来确定另一个主机是否设置了相同的 IP地址。
- 如果发送免费 ARP的主机正好改变了硬件地址(很可能是主机关机了,并换了一块接
口卡,然后重新启动),那么这个分组就可以使其他主机高速缓存中旧的硬件地址进行相应的
更新
小结
在大多数的 TCP/IP实现中,ARP是一个基础协议,但是它的运行对于应用程序或系统管
理员来说一般是透明的。 ARP高速缓存在它的运行过程中非常关键,我们可以用 arp命令对高
速缓存进行检查和操作。高速缓存中的每一项内容都有一个定时器,根据它来删除不完整和
完整的表项。 arp命令可以显示和修改 ARP高速缓存中的内容。
我们介绍了 ARP的一般操作,同时也介绍了一些特殊的功能:委托 ARP(当路由器对来
自于另一个路由器接口的 ARP请求进行应答时)和免费 ARP(发送自己 I P地址的 ARP请求,
一般发生在引导过程中)。
RARP
RARP协议是许多无盘系统在引导时用来获取IP地址的。RARP分组格式基本上与 ARP分组一致。一个RARP请求在网络上进行广播,它在分组中标明发送端的硬件地址,以请求相应IP地址的响应。应答通常是单播传送的。RARP带来的问题包括使用链路层广播,这样就阻止大多数路由器转发RARP请求,只返回很少信息:只是系统的IP地址。在第16章中,我们将看到 BOOTP在无盘系统引导时会返回
更多的信息: IP地址和引导主机的名字等。
虽然RARP在概念上很简单,但是 RARP服务器的实现却与系统相关。因此,并不是所有的TCP/IP实现都提供RARP服务器。