地址解析协议 ARP

2024-02-28 20:30:21 浏览数 (1)

地址解析协议 ARP

[TOC]

ARP的定义与基本功能

  • 掌握ARP协议的报文格式
  • 掌握ARP协议的工作原理
  • 理解ARP高速缓存的作用
  • 掌握ARP缓存表的维护过程

ARP(Address Resolution Protocol,RFC 826)是根据IP地址获取物理地址的一个TCP/IP协议。主机通过将ARP请求广播到网络上的所有主机并接收返回消息来确定目标IP地址的物理地址,同时将IP地址和硬件地址存入本机ARP缓存中,下次请求时直接查询ARP缓存

物理地址:

物理地址通常是由硬件来实现的,例如以太网的物理地址被写入到网卡中,任何一块网卡的物理地址是唯一的

物理地址的长度和格式取决于具体的网络,以太网的物理地址是6字节地址物理地址可以是单播地址、多播地址或广播地址。

逻辑地址:

逻辑地址与物理设备本身没有关联, 逻辑地址可以是单播地址、多播地址和广播地址。

目前Internet上的IPv4协议逻辑地址是32位的IP地址, IPv6地址有128位长

地址解析:

逻辑地址是在网络层使用的,但数据包是在物理网络传递。主机或路由器是通过物理地址来识别的,因此将一个数据包传递到一个主机或路由器要进行寻址,需要将一个逻辑地址映射到相应的物理地址。

地址解析就是主机在发送帧前将目的逻辑地址转换成目的物理地址的过程。

静态映射:

手工创建IP地址与物理地址的映射关系,建立映射表。当已知IP地址时,通过查找映射表得到对应的物理地址。

局限性: 主机更换了网卡,也就改变了主机的物理地址。当主机从一个网络移到另一个网络时,物理地址没变,但IP地址改变了。·要适应这些变化,会增大维护静态映射表的开销。

用协议实现地址映射:

在使用TCP/IP协议的以太网中,ARP(Address Resolution Protocol)协议完成将IP地址映射到MAC地址的过程,逆地址解析协议RARP(Reverse Address Resolution Protocol)将物理地址映射为IP地址

ARP的报文格式:

硬件类型:16bit,定义运行ARP的网络类型,如以太网的硬件类型是1。

协议类型:16bit,定义使用ARP的高层协议,如对于IPv4协议,该字段的值是Ox0800。

硬件长度:8bit,以字节为单位的物理地址长度,如以太网硬件地址长度为6。

协议长度:8bit,以字节为单位的逻辑地址的长度,对于IPv4,该字段为4。

操作码:16bit,1表示ARP请求,2表示ARP应答。

发送端硬件地址:变长字段,对于以太网该字段长度是6字节

发送端逻辑地址:变长字段,对于IPv4地址,该字段长度为4字节。

目的端硬件地址:变长字段,对于ARP请求报文,该字段全为0

目的端逻辑地址:变长字段,定义目标逻辑地址。

ARP数据报直接封装在数据链路层的帧中

ARP的运行过程:

数据包传输步骤

  • 发送端知道目的端的IP地址。
  • IP要求ARP创建一个ARP请求报文,其中包含了发送方的物理地址、发送方的IP地址和目的端的IP地址。目的端的物理地址用0填充
  • 将报文传递到数据链路层,并在该层中用发送方的物理地址作为源地址用物理广播地址作为目的地址,将其封装在一个帧中。
  • 因为该帧中包含了一个广播目的地址,所以同一链路中的每个主机或路由器都接收到这个帧。所有接收到该帧的主机都将其传递到ARP层进行处理。除了目的端主机以外的所有主机都丢弃该报文
  • 目的主机用一个包含其物理地址的ARP应答报文单播做响应。
  • 发送方接收到这个应答报文,这样它就知道了目标主机的物理地址。
  • 将IP数据报封装在一个帧中,并单播到目的地址。

ARP高速缓存:

当主机A通过ARP请求得到B的物理地址后就将“IP地址—MAC地址”的绑定信息存储在高速缓存中。对于后续发往E的分组,可以通过缓存得到物理地址 当ARP被询问一个已知IP地址节点的MAC地址时,先在ARP缓存表查看,若存在,就直接返回MAC地址,若不存在,才发送ARP请求向局域网查询。

缓存表内容:

静态项目一直保留在缓存中,直到重新启动计算机为止。

动态项目随时间推移自动添加和删除,每个动态ARP缓存项的潜在生命周期是10分钟。 新加到缓存中的项目带有时间戳,如果某个项目添加后2分钟内没有再使用,则此项目过期并从ARP缓存中删除; 如果某个项目已在使用,则又收到2分钟的生命周期; 如果某个项目始终在使用,则会另外收到2分钟的生命周期,一直到10分钟的最长生命周期。

arp命令的用法:

arp命令用于对本地arp缓存进行操作,不会发送ARP请求

  • arp -a: 列出ARP缓存中的所有条目
  • arp -a ip: 列出缓存中与ip对应的条目
  • arp -d: 清空arp缓存
  • arp -d ip: 删除缓存中与ip对应的条目
  • arp -s ip mac : 在arp缓存中添加一个静态arp条目

0 人点赞