ip地址|IP 基础知识“全家桶”,45 张图一套带走( 八 )


由于主机的路由表中可以找到下一条的 IP 地址 , 所以可以通过 ARP 协议 , 求得下一跳的 MAC 地址 。
那么 ARP 又是如何知道对方 MAC 地址的呢?
简单地说 , ARP 是借助 ARP 请求与 ARP 响应两种类型的包确定 MAC 地址的 。
ip地址|IP 基础知识“全家桶”,45 张图一套带走
文章图片

文章图片

ARP 广播主机会通过 广播发送 ARP 请求, 这个包中包含了想要知道的 MAC 地址的主机 IP 地址 。当同个链路中的所有设备收到 ARP 请求时 , 会去拆开 ARP 请求包里的内容 , 如果 ARP 请求包中的目标 IP 地址与自己的 IP 地址一致 , 那么这个设备就将自己的 MAC 地址塞入 ARP 响应包 返回给主机 。
操作系统通常会把第一次通过 ARP 获取的 MAC 地址缓存起来 , 以便下次直接从缓存中找到对应 IP 地址的 MAC 地址 。
不过 , MAC 地址的缓存是有一定期限的 , 超过这个期限 , 缓存的内容将被清除 。
RARP 协议你知道是什么吗?
ARP 协议是已知 IP 地址 求 MAC 地址 , 那 RARP 协议正好相反 。
它是 已知 MAC 地址求 IP 地址 。例如将打印机服务器等小型嵌入式设备接入到网络时就经常会用得到 。
通常这需要架设一台RARP服务器 , 在这个服务器上注册设备的 MAC 地址及其 IP 地址 。然后再将这个设备接入到网络 , 接着:该设备会发送一条「我的 MAC 地址是XXXX , 请告诉我 , 我的IP地址应该是什么」的请求信息 。RARP 服务器接到这个消息后返回「MAC地址为 XXXX 的设备 , IP地址为 XXXX」的信息给这个设备 。
最后 , 设备就根据从 RARP 服务器所收到的应答信息设置自己的 IP 地址 。
ip地址|IP 基础知识“全家桶”,45 张图一套带走
文章图片

文章图片

RARPDHCP
DHCP 在生活中我们是很常见的了 , 我们的电脑通常都是通过 DHCP 动态获取 IP 地址 , 大大省去了配 IP 信息繁琐的过程 。
接下来 , 我们来看看我们的电脑是如何通过 4 个步骤的过程 , 获取到 IP 的 。
ip地址|IP 基础知识“全家桶”,45 张图一套带走
文章图片

文章图片

DHCP 工作流程
先说明一点 , DHCP 客户端进程监听的是 68 端口号 , DHCP 服务端进程监听的是 67 端口号 。
DHCP 交互的 4 个步骤:客户端首先发起 DHCP 发现报文(DHCP DISCOVER) 的 IP 数据报 , 由于客户端没有 IP 地址 , 也不知道 DHCP 服务器的地址 , 所以使用的是 UDP 广播 通信 , 其使用的广播目的地址是 255.255.255.255(端口 67) 并且使用 0.0.0.0(端口 68) 作为源 IP 地址 。DHCP 客户端将该 IP 数据报传递给链路层 , 链路层然后将帧广播到所有的网络中设备 。DHCP 服务器收到 DHCP 发现报文时 , 用 DHCP 提供报文(DHCP OFFER) 向客户端做出响应 。该报文仍然使用 IP 广播地址 255.255.255.255 , 该报文信息携带服务器提供可租约的 IP 地址、子网掩码、默认网关、DNS 服务器以及 IP 地址租用期。客户端收到一个或多个服务器的 DHCP 提供报文后 , 从中选择一个服务器 , 并向选中的服务器发送 DHCP 请求报文(DHCP REQUEST 进行响应 , 回显配置的参数 。最后 , 服务端用 DHCP ACK 报文 对 DHCP 请求报文进行响应 , 应答所要求的参数 。
一旦客户端收到 DHCP ACK 后 , 交互便完成了 , 并且客户端能够在租用期内使用 DHCP 服务器分配的 IP 地址 。
如果租约的 DHCP IP 地址快期后 , 客户端会向服务器发送 DHCP 请求报文:服务器如果同意继续租用 , 则用 DHCP ACK 报文进行应答 , 客户端就会延长租期 。服务器如果不同意继续租用 , 则用 DHCP NACK 报文 , 客户端就要停止使用租约的 IP 地址 。


推荐阅读