1. 地址解析协议ARP
1.1. 逻辑地址与物理地址
对于TCP/IP来说,主机和路由器在网络层用IP地址来标识,在数据链路层用物理地址来标识。于是,在任何一台主机或路由器中必须有一张**“IP地址-MAC地址映射表”,它应该包括所需要通信的任何一台主机或路由器的信息。
然而,“静态映射”** 无法在大型网络中实现。需要**“动态映射”** 解决IP地址与MAC地址映射的问题。
1.2. 地址解析协议ARP
(1)ARP(Address Resolution Protocol)通过目标设备的IP地址查询目标设备的MAC地址,以保证通信的顺利进行。所谓地址解析(Address Resolution)就是主机在发送分组前将目标IP地址转换成目标MAC地址的过程。在每台安装有TCP/IP协议的电脑或路由器里都有一个ARP缓存表,表里的IP地址与MAC地址是一对应的。如图所示:
(2)ARP工作过程:
当主机A欲向本局域网上的主机B发送一个IP分组时,就先在其ARP缓存表中查看有无主机B的IP地址;如果有,就可以查出其对应的物理地址,然后将此物理地址写入以太网帧,在通过局域网发往此物理地址;如果没有,主机A向本局域网广播一个ARP请求分组,上面有主机B的IP地址。主机B收到带有自己IP地址的分组请求,就向主机A发送一个ARP响应分组,写入主机B的物理地址。主机A收到该响应后,就在其ARP缓存表上写入主机B的物理地址。
1.3. ARP的协议格式
(1)硬件类型:指明了发送方想知道的硬件接口类型,以太网的值为1;
(2)协议类型:指明了发送方提供的高层协议类型,IP协议为0800;
(3)硬件地址长度和协议长度:指明了硬件地址和高层协议地址的长度,这样ARP报文就可以在任意硬件和任意协议的网络中使用;
(4)操作类型:用来表示这个报文的类型,ARP请求为1,ARP响应为2,RARP请求为3,RARP响应为4;
(5)源主机物理地址:源主机MAC地址;(6)源主机IP地址:源主机4字节IP地址;
(7)目的主机物理地址:目的主机MAC地址;(8)目的主机IP地址:目的主机4字节IP地址。
1.4. ARP服务的四种情况
(1)主机需要解析在同一个网络的主机的MAC地址
主机A发送数据给主机B,主机A和主机B在同一个局域网。地址解析后,从主机A发给主机B的以太网帧中,地址字段如下:
目的地址:主机B的MAC地址
源地址:主机A的MAC地址
(2)主机需要解析不在同一个网络的主机的MAC地址
主机A发送数据给主机B,主机A和主机B不在同一个局域网。地址解析后,从主机A发给默认路由器C的以太网帧中,地址字段如下:
目的地址:路由器C的MAC地址
源地址:主机A的MAC地址
(3)路由器需要解析下一跳路由器的MAC地址
主机A发送数据给主机B,主机A和主机B不在同一个局域网。地址解析后,从路由器C发送给路由器D的以太网帧中,地址字段如下:
目的地址:路由器D的MAC地址
源地址:路由器C的MAC地址
(4)路由器需要解析同一个网络的主机MAC地址
主机A发送数据给主机B,主机A和主机B不在同一个局域网。地址解析后,从路由器D发送给主机B的以太网帧中,地址字段如下:
目的地址:主机B的MAC地址
源地址:路由器D的MAC地址
1.5. ARP需要注意的基本问题
(1)路由器转发IP分组时,源IP地址与目的IP地址是不变的,源MAC地址与目的MAC地址改变。【“不忘初心,牢记使命”】
(2)不可能了解传输路径上所有路由器与目的主机的MAC地址,转发过程协议是由ARP自动完成的。ARP执行过程对用户是透明的。(?)
(3)ARP地址映射表为每个表项都分配一个计时器(一般为15~20min),一旦某个表项超过计时时限,主机就会自动将它删除,以保证ARP地址映射表的时效性。
2. 反向地址解析协议RARP
RARP(Reverse Address Resolution Protocol)使用与ARP相同的报头结构,作用与ARP相反,用于将硬件地址转换为IP地址。其因为较限于IP地址的运用以及其他的一些缺点,因此渐为更新的BOOTP或DHCP所取代。
RARP工作时,发送主机发送一个本地的RARP广播,在此广播包中,声明自己的MAC地址并且请求任何收到此请求的RARP服务器分配一个IP地址;本地网段上的RARP服务器收到此请求后,检查其RARP列表,查找该MAC地址对应的IP地址;如果存在,RARP服务器就给源主机发送一个响应数据包并将此IP地址提供给对方主机使用;如果不存在,RARP服务器对此不做任何的响应;源主机收到从RARP服务器的响应信息,就利用得到的IP地址进行通讯;如果一直没有收到RARP服务器的响应信息,表示初始化失败。