动态主机配置协议(DHCP)
DHCP允许主机自动获取(被分配)一个IP地址。网络管理员能够配置DHCP,以使某给定主机每次与网络连接时能够得到一个相同的IP地址,或某个主机将被分配一个临时的IP地址(temporary IP address),每次与网络连接时该地址也许时不同的。除了主机IP地址分配外,DHCP还允许一台主机得知其他信息,例如子网掩码、它的第一跳路由器地址(常称为默认网关)与它的本地DNS服务器地址。由于DHCP具有将主机连接进一个网络的网络相关方面的自动能力,故它又常被称为即插即用协议(plug-and-play protocol)或零配置(zeroconf)协议。DHCP是一个客户-服务器协议。客户通常是新到达的主机,它要获得包括自身使用的IP地址在内的网络配置信息。在简单场合下,每个子网将具有一台DHCP服务器。如果在某子网中没有服务器,则需要一个DHCP中级代理,这个代理知道用于该网络的DHCP服务器的地址。
DHCP协议是一个4个步骤的过程
DHCP服务器发现
一台新到达的主机的首要任务是发现一个要与其交互的DHCP服务器。这可通过使用DHCP发现报文(DHCP discover message)来完成,客户在UDP分组中向端口67发送该发现报文。该UDP分组封装在一个IP数据报中。但是这个数据报应发给谁呢?主机甚至不知道它所连接网络的IP地址,更不用说用于该网络的DHCP服务器地址了。在这种情况下,DHCP客户生成包含DHCP发现报文的IP数据报,其中使用广播目的地址255.255.255.255并且使用本主机源IP地址0.0.0.0。DHCP客户将该IP数据报传递给链路层,链路层然后将该帧广播到所有与该子网连接的节点。
DHCP服务器提供
DHCP服务器收到一个DHCP发现报文时,用DHCP提供报文(DHCP offer message)向客户做出响应,该报文向该子网的所有节点广播,仍然使用IP广播地址255.255.255.255。因为在子网中可能存在几个DHCP服务器,该客户也许会发现它处于能在几个提供者之间进行选择的优越位置。每台服务器提供的报文包含有收到的发现报文的事务ID、向客户推荐的IP地址、网络掩码以及IP地址租用期(adress lease time),即IP地址有效的时间量。服务器租用期通常设置为几个小时或几天。
DHCP请求
新到达的客户从一个或多个服务器提供中选择一个,并向选中的服务器提供用DHCP请求报文(DHCP request message)进行响应,回显配置的参数。
DHCP ACK
服务器用DHCP ACK报文(DHCP ACK message)对DHCP请求报文进行响应,证实所要求的参数。
一旦客户端收到DHCP ACK后,交互便完成了,并且该客户能够在租用期内使用DHCP分配的IP地址。因为客户可能在该租用期超时后还希望使用这个地址,所以DHCP还提供了一种机制以允许客户更新它对一个IP地址的租用。