地址解析协议
IP协议的设计目标是为了跨越不同类型的物理网络的分组交换提供互操作,这需要网络层软件使用的地址和底层网络硬件使用的地址之间进行转换。
地址解析是发现两个地址之间的映射关系的过程。地址解析协议ARP是一个通用的协议,他被设计为支持多种地址之间的映射。ARP提供从网络层地址到相关硬件地址的动态映射。
直接交付和ARP
下面给出IPv4直接交付的基本操作:
- 应用程序使用32位的IPv4地址
10.0.0.1
- 应用程序要求TCP协议建立一条到
10.0.0.1
的连接 - 通过向
10.0.0.1
发送一个数据报,TCP尝试向远程主机发送一个连接请求 - 假设地址该数据报可被直接发送到这个地址,且以太网兼容地址被用于IPv4.
- 那么,发送的主机就必须将32位的IPv4目的地址转化为48位的以太网地址,这就需要逻辑Internet地址相对应物理硬件地址进行转换,这就是ARP功能。链路层能够将一个消息交付到它连接的所有网路设备,这是ARP运行的一个重要要求
- 在一个共享的链路层网段,ARP向所有主机发送一个称为ARP请求的以太网帧(链路层广播)。ARP请求包含目的的主机IPv4地址
10.0.0.1
,并寻找以下答案“如果你将10.0.0.1
配置为自己的地址,请向我回应你的MAC地址” - 通过ARP,同一广播域中的所有系统都可以接收该请求,如果某系统使用请求中给定的IPv4地址,那么它需要响应一个ARP应答。该应答包含了请求中的IPv4地址和对应的MAC地址。该应答直接发送给请求的发送方。接收ARP请求的主机学习IPv4到MAC地址的映射,并记录在内存中供以后使用
- ARP应答被原始请求的发送方接收,现在可以发送引起此次ARP请求/应答的数据报。
- 发送方可将数据报封装在以太网帧中直接发送到目的主机,应使用由ARP交换学到的以太网作为目的地址。
ARP缓存
ARP高效运行的关键是维护每个主机和路由器上的ARP缓存。该缓存使用地址解析为每个接口维护从网络层地址到硬件地址的最新映射。
ARP缓存超时
超时通常与ARP缓存中的每个条目相关。在大多数实现中,完整条目的超时为20分钟。
软状态是指在超时到达前没有更新而被丢弃的信息。如果网络条件发生改变,软状态有助于启动自动重新配置。
免费ARP
ARP的另一个功能被称为免费ARP,它发生在一台主机发送的ARP请求以寻找自己的地址。