ARP、DHCP、ICMP_gc8u20gu6zkgp0vh
最后修改于
ARP 协议(MAC 帧)#
当需要通信的两台主机处于同一网段时,A 要发送数据。
- 首先,A 会查找自己本地缓存的 ARP 表,确定是否包含目的地对应的 ARP 表项。如果 A 在 ARP 表中找到对应的 MAC 地址,则 A 直接利用 ARP 表中的 MAC 地址,对数据报文进行帧封装,并将数据报文发送。
- ARP 表查找失败时,先缓存数据报文,并以广播方式发送一个链路层 ARP 请求报文。交换机收到 ARP 请求报文后,将该 ARP 请求报文在同一广播域内转发。
- 同一广播域内的主机都能接收到该 ARP 请求报文,但只有被请求的主机会对该 ARP 请求报文进行处理。比较自己的 IP 地址和 ARP 请求报文中的目的 IP 地址。
- 当两者相同时,将 ARP 请求报文中的源 IP 地址和源 MAC 地址存入自己的 ARP 表中。之后以单播方式发送 ARP 应答报文给 A。
- 交换机收到 ARP 应答报文后,将该 ARP 应答报文转发给 A。A 收到 ARP 应答报文后,将目的地的 MAC 地址加入到自己的 ARP 表中以用于后续报文的转发,同时将数据报文进行帧封装,并发送数据报文。
当需要通信的两台主机处于不同网段时,此时 A 发送 ARP 请求网关的 MAC 地址。A 收到 ARP 应答报文后,将数据报文封装并发给网关,再由网关将数据报文发送给目的主机。
DHCP 协议(UDP)#
- 需要 IP 的主机先在本网络广播发送 DHCP 发现报文。可能发现多个 DHCP 服务器。
- DHCP 服务器广播返回 DHCP 提供报文。返回预提供的 IP,网关等信息。
- 主机再次广播,DHCP 请求报文。从多个 Offer 报文中选择一个发送广播请求
- DHCP 服务器返回 DHCP 确认报文。
- 在 ACK 之后,客户端进行 3 次 以该 IP 为目的 IP 的 ARP 请求,防止重复。
- 如果重复,通知 DHCP 服务器,并重新发送。
ICMP(IP 数据报)#
ICMP 差错控制报文#
ICMP 询问报文#
- 回送请求和回答
- 时间戳请求和回答
- 地址掩码请求和回答
- 路由器询问和通告
对于部分情况,不发送 ICMP 差错控制报文:
- 对 ICMP 差错控制报文不发送
- 对同一个数据报的第一个分片的数据片发送,后续分片不发送
- 对组播数据报不发送
- 特殊地址不发送
PING 命令,在应用层直接使用 IP 层,使用 ICMP 回送请求和回答
Traceroute 命令,工作在应用层,使用 ICMP TTL 超时报文