DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,也被称为即插即用协议(plug-and-play protocol)或零配置(zeroconf)协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。默认情况下,DHCP作为Windows Server的一个服务组件不会被系统自动安装,还需要管理员手动安装并进行必要的配置。
大量应用于Wi-Fi领域,如校园网等都是采用的DHCP服务器搭建。
功能
DHCP协议采用客户端/服务器模型,主机地址的动态分配任务由网络主机驱动。当DHCP服务器接收到来自网络主机申请地址的信息时,才会向网络主机发送相关的地址配置等信息,以实现网络主机地址信息的动态配置。DHCP具有以下功能:
1.保证任何IP地址在同一时刻只能由一台DHCP客户机所使用。
2.DHCP应当可以给用户分配永久固定的IP地址。
3.DHCP应当可以同用其他方法获得IP地址的主机共存(如手工配置IP地址的主机)。
4.DHCP服务器应当向现有的BOOTP客户端提供服务。
DHCP有三种机制分配IP地址:
-
自动分配方式(Automatic Allocation),DHCP服务器为主机指定一个永久性的IP地址,一旦DHCP客户端第一次成功从DHCP服务器端租用到IP地址后,就可以永久性的使用该地址。
-
动态分配方式(Dynamic Allocation),DHCP服务器给主机指定一个具有时间限制的IP地址,时间到期或主机明确表示放弃该地址时,该地址可以被其他主机使用。
-
手工分配方式(Manual Allocation),客户端的IP地址是由网络管理员指定的,DHCP服务器只是将指定的IP地址告诉客户端主机。
原理
对于一台新到达的主机而言,以学校的校园网为例,当一台新的设备加入校园网时,DHCP服务器为该设备分配IP地址,有以下几个步骤:(其中,yiaddr【表示“你的因特网地址”之意】指示分配给该新到达的客户的地址)
1.DHCP服务器发现。客户在UDP分组中向端口67发送DHCP发现报文,该UDP分组封装在一个IP数据报中。但是因为主机并不知道它所连接的网络的IP地址,因此DHCP客户会生成包含DHCP发现报文的IP数据报,其中使用广播目的地址255.255.255.255,并使用“本主机”源IP地址0.0.0.0。
2.DHCP服务器提供。DHCP服务器收到一个DHCP发现报文时,用DHCP提供报文向客户做出响应,该报文向该子网内的所有节点广播,仍然使用IP广播地址255.255.255.255。注意:子网中可能存在多个DHCP服务器,这就像保研的大学生拿到offer一样,可能同时会有很多所学校给一位同学发来offer,因此这就需要在众多offer中选择一个出来。
3.DHCP请求。客户从一个或多个服务器提供中选择一个,然后发送DHCP请求报文进行响应,回显配置的参数。注意:从上图报文中可以看到,这次报文的目的地址仍然为广播地址,因此该子网中的所有DHCP服务器都能够收到该报文,但是因为报文中还包含了yiaddr的信息,即它所选择的IP地址,因此所有的DHCP服务器都知道该主机最终选择的是哪一个DHCP服务器提供的IP地址,即保研生确定自己选择的学校后,还要通知所有给他发offer的学校他最终选择的院校。
4.DHCP ACK。服务器用DHCP ACK报文对DHCP请求报文进行响应,证实所要求的参数。
以上过程之后,客户即可在租用期内使用DHCP分配的IP地址。