4.3 ARP、DHCP 与 ICMP
地址解析协议 ARP 的工作过程与四种典型情况,动态主机配置协议 DHCP 的四个报文,网际控制报文协议 ICMP 的差错报告报文与询问报文,ping 与 traceroute。
地址解析协议 ARP
无论网络层使用什么协议,在实际网络的链路上传送数据帧时,最终必须使用硬件地址。所以需要一种方法来完成 IP 地址到 MAC 地址的映射,这就是地址解析协议 ARP。每台主机都设有一个 ARP 高速缓存,用来存放本局域网上各主机和路由器的 IP 地址到 MAC 地址的映射表,称 ARP 表。
- 当主机 A 欲向本局域网上的某台主机 B 发送 IP 数据报时,就先在其 ARP 高速缓存中查看有无主机 B 的 IP 地址;如有,就可查出其对应的硬件地址,再将此硬件地址写入 MAC 帧,然后通过局域网将该 MAC 帧发往此硬件地址;
- 如果没有,那么就通过使用目的 MAC 地址为 FF-FF-FF-FF-FF-FF 的帧来封装并广播 ARP 请求分组,使同一个局域网里的所有主机都收到此 ARP 请求;
- 主机 B 收到该 ARP 请求后,向主机 A 发出 ARP 响应分组(单播),分组中包含主机 B 的 IP 与 MAC 地址的映射关系;主机 A 在收到后将此映射写入 ARP 缓存,然后按查询到的硬件地址发送 MAC 帧;
- ARP 报文直接封装在以太网帧中传送(不经过 IP);由于它为 IP 服务、处理的是 IP 地址,在 TCP/IP 体系中通常把 ARP 划归网络层。
动态主机配置协议 DHCP
DHCP 常用于给主机动态地分配 IP 地址,它提供了即插即用联网的机制,这种机制允许一台计算机加入新的网络和获取 IP 地址而不用手工参与。DHCP 是应用层协议,它是基于 UDP 的(客户端端口 68,服务器端口 67)。DHCP 采用客户/服务器方式,客户与服务器之间的交换报文使用广播方式(客户还没有 IP 地址):
- 网络中可能有多个 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 种类型。
即时练习
- 1(408 真题 2012)ARP 的工作过程中,ARP 请求是( )发送,ARP 响应是( )发送。
- 2主机 H1 经路由器 R(接口 1 的 MAC 为 M1,接口 2 的 MAC 为 M2)向另一网络的主机 H2 发送 IP 分组 P,则 H1 发出的封装 P 的以太网帧的目的 MAC 地址、H2 收到的封装 P 的以太网帧的源 MAC 地址分别是( )。
- 3主机刚接入网络、使用 DHCP 获取 IP 地址时,其发送的 DHCP 发现报文的源 IP 地址和目的 IP 地址分别是( )。
- 4(408 真题 2010)若路由器 R 因为拥塞丢弃 IP 分组,则此时 R 可以向发出该 IP 分组的源主机发送的 ICMP 报文类型是( )。
- 5traceroute 程序能够得到到达目的主机路径上各个路由器的地址,主要利用了( )。
标记完成后,侧栏会显示进度。进度仅保存在本浏览器中。