1. dhcp服务器的分配过程
当作为DHCP客户端的计算机启动时,将从DHCP服务器获得其TCP/IP配置信息,并得到IP地址的租期,即使用时间。一个设置为“自动获取地址”的计算机从DHCP服务器上获取IP地址的过程如下:
(1)DHCP客户端计算机启动后,如果客户端发现本机上没有任何IP地址等相关参数,会使用0.0.0.0作为自己的IP地址,255.255.255.255作为服务器的地址,广播发送包括网卡的MAC地址和NetBIOS名称的DHCP发现信息。
当发送第一个DHCP发现信息后,DHCP客户端将等待1秒。在此期间,如果没有DHCP服务器响应,DHCP客户端将分别在第9秒、第13秒和第16秒时重复发送一次DHCP发现信息。如果仍然没有得到DHCP服务器的应答,客户端则会显示错误信息,并从Microsoft保留IP地址段(169.254.0.1~169.254.255.254)自动选择一个地址,并设置子网掩码为255.255.0.0。以后,系统会继续每隔5分钟广播一次发现信息,直到得到一个应答为止。
(2)当网络中的任何一个DHCP服务器(同一网络中可存在多个DHCP服务器)在收到DHCP客户端的DHCP发现信息后,就从IP地址池中选取一个没有出租的IP地址连同其他TCP/IP网络配置(包括子网掩码、网关地址、租用期、DNS地址、WINS服务器地址、提供响应的DHCP服务器的IP地址等),然后利用广播方式提供给DHCP客户端。
(3)当DHCP客户端收到应答信息后,将以广播方式向网络中所有的DHCP服务器发送DHCP请求信息(在DHCP请求信息中包含有所选择的DHCP服务器的IP地址),既通知它已选择的DHCP服务器,也通知其他DHCP服务器,以便释放它们保留的IP地址。
同时,客户端还会向网络发送一个ARP(Address Resolution Protocol,地址解析协议)包,查询网络上面有没有其他机器使用该IP地址;如果发现该IP地址已经被占用,客户端则会送出一个DHCPDISCOVER数据包给DHCP服务器,拒绝接受其DHCPDISCOVER,并重新发送DHCPDISCOVER信息。
(4)一旦被选择的DHCP服务器接受到DHCP客户端的DHCP请求信息后,就将已保留的IP地址标识为已租用,并以广播方式发送一个DHCP应答信息给DHCP客户端,以确认IP租约的正式生效。
以上过程可简单地概括为发现、提供、DHCP请求、DHCP应答