2024年5月7日发(作者:)

DHCP地址获得过程

DHCP地址获得过程

1、寻找 Server。当 DHCP 客户端第一次连接上网络的时候,也就是客户

发现本机上没有任何 IP 配置时,它会向网络上发出一个 DHCP Discover数据

包。因为客户端还不知道自己属于哪一个网络,所以数据包的源地址为

0.0.0.0 ,目的地址为 255.255.255.255 ,然后再附上DHCP Discover的信息,

向网络进行广播。 在 Windows 的预设情形下,DHCP Discover的等待时间预

设为 1 秒,也就是当客户端将第一个 DHCP Discover数据包送出去之后,在

1 秒内没有得到回应的话,就会进行第二次DHCP Discover 广播。若一直得不

到回应,客户端一共会有四次DHCP Discover 广播,除了第一次会等待 1 秒

外,其余三次的等待时间分别是 9、13、16 秒。

2、 提供 IP地址。当 DHCP服务器监听到客户端发出的 DHCP Discover

广播后,它会从那些还没有租出的地址范围内,选择最前面的空闲 IP ,连同

其它 TCP/IP 设定,回应给客户端一个DHCP Offer数据包。 由于客户端在开

始的时候还没有 IP 地址,所以在其 DHCP Discover数据包内会带有其 MAC

地址信息,并且有一个 XID 编号来辨别该数据包,DHCP 服务器回应的DHCP

Offer数据包,会根据这些资料传递给请求地址的客户。根据服务器端的设定,

DHCP Offer数据包包含一个租约的信息。

3、接受 IP 地址。如果客户端收到网络上多台 DHCP 服务器的回应,只会

挑选其中一个 DHCP Offer数据包(通常是最先抵达的那个),并且向网络上发

送一个DHCP Request广播包,告诉所有 DHCP 服务器它将指定接受哪一台服务

器提供的 IP地址。 同时,客户端还会向网路发送一个 ARP 数据包,查询网

络上面有没有其它机器使用该 IP 地址;如果发现该 IP 已经被占用,客户端

则会送出一个 DHCP Decline 数据包给 DHCP服务器,拒绝接受其DHCP Offer ,

并重新发送 DHCP Discover 信息。 事实上,并不是所有 DHCP 客户端都会无

条件接受 DHCP 服务器的 Offer ,尤其这些主机安装有其它 TCP/IP 相关的客

户软件。客户端也可以用DHCP Request向服务器提出 DHCP 选择,而这些选择

会以不同的号码填写在 DHCP Option Field 里面。换一句话说,在 DHCP 服务

器上面的设定,未必是客户端全都接受,客户端可以保留自己的一些 TCP/IP

设定。而主动权永远在客户端这边。

4、租约确认。当 DHCP 服务器接收到客户端的DHCP Request 之后,向客

户端发出一个 DHCP ACK 回应,确认 IP 租约正式生效,同时结束了一个完整

的 DHCP 工作过程。

5、续租。一旦 DHCP 客户端成功地从服务器那里获得 DHCP 租约之后﹐除

非其租约已经失效并且 IP 地址被重新设定回 0.0.0.0,否则就不需要再发送

DHCP Discover数据包了,而是直接使用已经获得到的 IP 地址,向以前DHCP

服务器发出DHCP Request信息,DHCP 服务器会尽量让客户端使用原来的 IP

地址,如果没问题的话,直接回应 DHCP ACK来确认。如果该地址已经被其它

机器使用了,服务器会回应一个 DHCP NACK 数据包给客户端,要求其从新执行

DHCP Discover。

6、跨网段的 DHCP。需要在路由器相应以太网端口上启用DHCP 中继。