DHCP(dynamic host configuration protocol)动态主机配置协议具有将主机连接进一个网络的能力,这是种即插即用协议或零配置协议。一旦某一个组织获取到了一块地址,它就可以为本组织内的主机与路由器接口逐个分配 IP 地址,省去了网络管理员手动配置的步骤。
DHCP 是一个客户-服务器协议。客户通常是指新到达的主机,它要获取包括自身使用的 IP 地址在内的网络配置信息。在最简单的场合下,每个子网将拥有一台 DHCP 服务器。如果在某个子网中没有服务器,则需要一个 DHCP 中继代理(通常是一台路由器),这个代理知道用于该网络的 DHCP 服务器的地址。
- DHCP 服务器发现。一台新到达的主机的首要任务是发现一个要与其交互的 DHCP 服务器。通常使用 DHCP 发现报文来完成,客户在 UDP 分组中向端口 67 发送该报文。UDP 分组封装在一个 IP 数据报中,这个 IP 使用广播目的地址 255.255.255.255 并且使用本机源 IP 地址 0.0.0.0。DHCP 客户将该 IP 数据报传递到链路层,链路层然后将该帧广播到所有与该子网连接的节点。
- DHCP 服务器提供。DHCP 服务器收到一个 DHCP 发现报文时,用 DHCP 提供报文向客户做出相应,该报文向该子网的所有节点广播(255.255.255.255)。因为子网中可能存在多个 DHCP 服务器,它会在这几个提供者之间进行优越位置选择。每台服务器提供的报文包含收到的发现报文的事务 ID、向客户推荐的 IP 地址、网络掩码以及 IP 地址租用期,即 IP 地址有效的时间。
- DHCP 请求。新到达的客户的客户从一个或多个服务器提供中选择一个,并向选中的服务器提供 DHCP 请求报文进行响应,回显配置的参数。
- DHCP ACK。服务器用 DHCP ACK 报文对 DHCP 请求报文进行响应,证实所要求的参数。
一旦客户收到 DHCP ACK 后,交互便完成了。