4.3 ARP、DHCP 与 ICMP

地址解析协议 ARP 的工作过程与四种典型情况,动态主机配置协议 DHCP 的四个报文,网际控制报文协议 ICMP 的差错报告报文与询问报文,ping 与 traceroute。

考查要求 ★★★ 重点掌握 ARP 请求广播ARP 响应单播ARP 高速缓存MAC 地址逐段变化DHCP 四个报文ICMP 差错报告pingtraceroute

地址解析协议 ARP

无论网络层使用什么协议,在实际网络的链路上传送数据帧时,最终必须使用硬件地址。所以需要一种方法来完成 IP 地址到 MAC 地址的映射,这就是地址解析协议 ARP。每台主机都设有一个 ARP 高速缓存,用来存放本局域网上各主机和路由器的 IP 地址到 MAC 地址的映射表,称 ARP 表。

  1. 当主机 A 欲向本局域网上的某台主机 B 发送 IP 数据报时,就先在其 ARP 高速缓存中查看有无主机 B 的 IP 地址;如有,就可查出其对应的硬件地址,再将此硬件地址写入 MAC 帧,然后通过局域网将该 MAC 帧发往此硬件地址;
  2. 如果没有,那么就通过使用目的 MAC 地址为 FF-FF-FF-FF-FF-FF 的帧来封装并广播 ARP 请求分组,使同一个局域网里的所有主机都收到此 ARP 请求;
  3. 主机 B 收到该 ARP 请求后,向主机 A 发出 ARP 响应分组(单播),分组中包含主机 B 的 IP 与 MAC 地址的映射关系;主机 A 在收到后将此映射写入 ARP 缓存,然后按查询到的硬件地址发送 MAC 帧;
  4. ARP 报文直接封装在以太网帧中传送(不经过 IP);由于它为 IP 服务、处理的是 IP 地址,在 TCP/IP 体系中通常把 ARP 划归网络层。
动画演示ARP 地址解析与跨网络的帧转发
网络 1:192.168.1.0/24网络 2:192.168.2.0/24H1IP 192.168.1.2MAC AA路由器if1 192.168.1.1 / R1if2 192.168.2.1 / R2H2IP 192.168.2.3MAC BBH1 的 ARP 缓存(空)路由器的 ARP 缓存(空)
1/11H1(192.168.1.2/24)要给 H2(192.168.2.3)发送 IP 数据报。H1 先用子网掩码判断:目的地址的网络号 192.168.2.0 ≠ 本网络 192.168.1.0,不在同一网络,应把分组交给默认网关 192.168.1.1

动态主机配置协议 DHCP

DHCP 常用于给主机动态地分配 IP 地址,它提供了即插即用联网的机制,这种机制允许一台计算机加入新的网络和获取 IP 地址而不用手工参与。DHCP 是应用层协议,它是基于 UDP 的(客户端端口 68,服务器端口 67)。DHCP 采用客户/服务器方式,客户与服务器之间的交换报文使用广播方式(客户还没有 IP 地址):

DHCP 客户端口 68DHCP 服务器端口 67① DHCP 发现(Discover)广播:谁是 DHCP 服务器?② DHCP 提供(Offer)提供可用的 IP 地址③ DHCP 请求(Request)广播:选定该服务器④ DHCP 确认(ACK)确认,开始租用
DHCP 获取 IP 地址的四个报文(源地址 0.0.0.0,目的地址 255.255.255.255)
  • 网络中可能有多个 DHCP 服务器,客户会收到多个提供报文,通常选择最先到达的;客户发送的 DHCP 请求报文仍是广播,以便通知其他服务器”我选了谁”;
  • DHCP 服务器分配给 DHCP 客户的 IP 地址是临时的,因此 DHCP 客户只能在一段有限的时间内使用这个分配到的 IP 地址,这段时间称为租用期;
  • 除了 IP 地址,DHCP 还能分配子网掩码、默认网关、DNS 服务器地址等配置信息。

网际控制报文协议 ICMP

为了提高 IP 数据报交付成功的机会,在网络层使用了 ICMP 来让主机或路由器报告差错和异常情况。ICMP 报文作为 IP 层数据报的数据,加上数据报的首部,组成 IP 数据报发送出去。ICMP 是网络层协议。

ICMP 报文的种类有两种,即 ICMP 差错报告报文和 ICMP 询问报文。

差错报告报文含义
终点不可达当路由器或主机不能交付数据报时就向源点发送终点不可达报文(如找不到路由、端口不可达、需要分片但 DF = 1)
源点抑制当路由器或主机由于拥塞而丢弃数据报时,就向源点发送源点抑制报文,使源点知道应当把数据报的发送速率放慢(现已弃用)
时间超过当路由器收到生存时间 TTL = 0 的数据报时,除丢弃该数据报外,还要向源点发送时间超过报文;当终点在预先规定的时间内不能收到一个数据报的全部数据报片时,就把已收到的数据报片都丢弃,并向源点发送时间超过报文
参数问题当路由器或目的主机收到的数据报的首部中有的字段的值不正确时,就丢弃该数据报,并向源点发送参数问题报文
改变路由(重定向)路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器(可通过更好的路由)

不应发送 ICMP 差错报告报文的几种情况:对 ICMP 差错报告报文不再发送 ICMP 差错报告报文;对第一个分片的数据报片的所有后续数据报片都不发送;对具有组播地址的数据报都不发送;对具有特殊地址(如 127.0.0.0 或 0.0.0.0)的数据报不发送。

ICMP 询问报文有回送请求和回答报文、时间戳请求和回答报文、地址掩码请求和回答报文、路由器询问和通告报文 4 种类型。

即时练习

即时练习5 题
点击选项即可作答
  1. 1
    (408 真题 2012)ARP 的工作过程中,ARP 请求是( )发送,ARP 响应是( )发送。
  2. 2
    主机 H1 经路由器 R(接口 1 的 MAC 为 M1,接口 2 的 MAC 为 M2)向另一网络的主机 H2 发送 IP 分组 P,则 H1 发出的封装 P 的以太网帧的目的 MAC 地址、H2 收到的封装 P 的以太网帧的源 MAC 地址分别是( )。
  3. 3
    主机刚接入网络、使用 DHCP 获取 IP 地址时,其发送的 DHCP 发现报文的源 IP 地址和目的 IP 地址分别是( )。
  4. 4
    (408 真题 2010)若路由器 R 因为拥塞丢弃 IP 分组,则此时 R 可以向发出该 IP 分组的源主机发送的 ICMP 报文类型是( )。
  5. 5
    traceroute 程序能够得到到达目的主机路径上各个路由器的地址,主要利用了( )。
学完了吗?

标记完成后,侧栏会显示进度。进度仅保存在本浏览器中。