1.ARP地址解析协议
(1)基本概念
当一台主机把以太网数据帧发送到位于同一局域网上的另一台主机时,是根据48位的以太网地址来确定目的接口的。设备驱动程序从不检查数据报中的目的IP地址。ARP就是为IP地址到对应的硬件地址之间提供动态映射
(2)从一个例子入手
当我们在终端键入命令 ftp shreck(目的主机名)时会发生如下步骤:
1)FTP客户端调用函数gethostbyname把主机名(shreck)通过DNS将其转换为32位的IP地址
2)FTP客户端请求TCP用得到的IP地址建立连接
3)TCP发送一个连接请求分段到远端主机,即用上述IP地址发送一份IP数据报
4)如果目的主机在本地网络上,那么IP数据报可以直接送到目的主机上,如果目的主机在远程网络上,那么就通过IP选路函数来确定位于本地网络的下一站路由器地址
5)假定是一个以太网,那么发送端必须将32位的IP地址转换为48位的以太网地址,这就是ARP的功能
ARP本来就是用于广播网络的,有许多主机或路由器连在同一网络上
6)ARP发送一份称作ARP请求的以太网数据帧给以太网上的每一台主机,这个过程称作广播,ARP请求数据帧中包含目的主机的IP地址(主机名为shreck),如果你是这个IP地址的拥有者,请回答你的硬件地址
7)目的主机的ARP层收到这份广播报文后,识别出这是发送端在询问它的IP地址,于是发送一个ARP应答,这个ARP应答包含IP地址级对应的硬件地址
8)收到ARP应答后,使ARP进行请求-应答的IP数据报就可以发送了
9)发送IP数据报到目的主机
在ARP背后有一个概念,那就是网络接口有一个硬件地址,在硬件层次上进行的数据交换必须有正确的接口地址,ARP功能是IP地址与硬件地址的动态映射
(3)ARP高速缓存
ARP高效运行的关键是由于每个主机上都有一个ARP高速缓存,这个高速缓存存放了最近Internet地址到硬件地址之间的映射记录,高速缓存中每一项的生存时间一般为20分
(4)ARP的分组格式
以太网目的地址 | 以太网源地址 | 帧类型 | 硬件类型 | 协议类型 | 发送端以太网地址 | 发送端IP地址 | 目的以太网地址 | 目的IP地址 |
---|
1)以太网报头的前俩段是以太网的源地址和目的地址
2)帧类型表示后面数据的类型
3)硬件类型表示硬件地址的类型,以太网的值为1
4)最后4个字段表示发送端IP和硬件地址和目地端IP和硬件地址
(5)对不存在的主机进行ARP请求
如果我们查询的主机以关机,则ARP请求会在隔一定的时间不断的去请求,当达到TCP连接请求的建立时间一般为(75s)时就会放弃请求
(6)ARP代理
如果ARP请求从一个网络主机到另一个网络主机,那么连接这俩个网络的路由器就可以回答该请求,这个过程就称作ARP代理,这样可以欺骗发起ARP请求的发送端,使它误以为路由器就是目的主机。路由器的功能相当于目的主机的代理,把分组从其他主机转发给它
(7)ARP命令
arp -a
显示ARP高速缓存中的所有内容
arp -d
超级用户可以删除ARP告诉缓存中的某项
arp -s
增加ARP缓存中的某项
2.RARP逆地址解析协议
(1)基本概念
具有本地磁盘系统引导时,一般是从磁盘上的配置文件中读取IP地址,但是无盘机,则需要其他方法获得IP地址
网络中的每个系统都具有唯一的硬件地址,无盘系统的RARP实现过程是从接口卡上读取唯一硬件地址,然后发送一份RARP请求,请求某个主机响应无盘系统的IP地址
(2)小结
RARP协议是许多无盘系统在引导时用来获取IP地址的。RARP分组格式基本上与ARP分组一致,一个RARP请求在网络上进行广播,它在分组中标明发送端的硬件地址,以请求相应的IP地址的响应,应答通常是单播传送