第四章 ARP地址解析协议

为什么80%的码农都做不了架构师?>>>   hot3.png

当一台主机把以太网数据帧发送到位于同一局域网上的另一台主机时,是根据 48 bit的以 太网地址来确定目的接口的。设备驱动程序从不检查 IP数据报中的目的 IP地址。 地址解析为这两种不同的地址形式提供映射: 32 bit IP 地址和数据链路层使用的任何类型的地址。

ARPIP地址到对应的硬件地址之间提供动态映射。我们之所以用动态这个词是因为这个过程是自动完成的,一般应用程序用户或系统管理员不必关心。

RARP是被那些没有磁盘驱动器的系统使用(一般是无盘工作站或  X终端),它需要系统 管理员进行手工设置。

ARP背后有一个基本概念,那就是网络接口有一个硬件地址(一个48 bit的值,标识不同的以太网或令牌环网络接口。在硬件层次上进行的数据帧交换必须有正确的接口地址。但 是,TCP/IP有自己的地址: 32 bitIP地址。知道主机的 IP地址并不能让内核发送一帧数据给 主机。内核(如以太网驱动程序)必须知道目的端的硬件地址才能发送数据。 ARP的功能是 32 bit IP地址和采用不同网络技术的硬件地址之间提供动态映射。

点对点链路不使用 ARP当设置这些链路时(一般在引导过程进行,必须告知内核链路每一端的 IP地址。像以太网地址这样的硬件地址并不涉及。

4.3     ARP高速缓存

ARP高效运行的关键是由于每个主机上都有一个 ARP高速缓存。这个高速缓存存放了最Internet地址到硬件地址之间的映射记录。高速缓存中每一项的生存时间一般为 20分钟,起始时间从被创建时开始算起。

4.5     ARP代理

如果ARP请求是从一个网络的主机发往另一个网络上的主机,那么连接这两个网络的路 由器就可以回答该请求,这个过程称作委托 ARPARP代理(Proxy ARP)。这样可以欺骗发起 ARP请求的发送端,使它误以为路由器就是目的主机,而事实上目的主机是在路由器的“另 一边”。路由器的功能相当于目的主机的代理,把分组从其他主机转发给它。

免费ARP

我们可以看到的另一个 ARP特性称作免费 ARP (gratuitous ARP) 。它是指主机发送 ARP 找自己的 IP地址。通常,它发生在系统引导期间进行接口配置的时候。

免费ARP可以有两个方面的作用:

1) 一个主机可以通过它来确定另一个主机是否设置了相同的 IP地址。主机 bsdi并不希望 对此请求有一个回答。但是,如果收到一个回答,那么就会在终端日志上产生一个错误消息 “以太网地址: a:b:c:d:e:f发送来重复的 IP地址”。这样就可以警告系统管理员,某个系统有不 正确的设置。

2) 如果发送免费 ARP的主机正好改变了硬件地址(很可能是主机关机了,并换了一块接 口卡,然后重新启动),那么这个分组就可以使其他主机高速缓存中旧的硬件地址进行相应的 更新。一个比较著名的ARP协议事实 [Plummer 1982]是,如果主机收到某个IP地址的ARP请求, 而且它已经在接收者的高速缓存中,那么就要用 ARP请求中的发送端硬件地址(如以太网地 址)对高速缓存中相应的内容进行更新。主机接收到任何  ARP请求都要完成这个操作( ARP 请求是在网上广播的,因此每次发送 ARP请求时网络上的所有主机都要这样做)。

转载于:https://my.oschina.net/bjyb/blog/385768

你可能感兴趣的:(第四章 ARP地址解析协议)