dhcp的工作原理
作者:佚名 时间:2012-11-17
启用dhcp的客户机第一次启动并试图加入网络时,它自动执行以下的初始化步骤,以便从dhcp服务器获得租约。
1.当dhcp客户端第一次登录网络时,假如客机机上没有任何ip信息设定,它会向网络发出dhcp dicover数据包。因为客户端不知道dhcp服务器的位置,为保证服务器能够接受到请求,数据包源地址设定为0.0.0.0,而目的地址为255.255.255.255,以广播形式发送dhcp discover的信息。
2.当dhcp服务器****到客户端发出的dhcp discover广播后,它会从那些还没有租出的地址范围内,选择可用的ip,连同其他tcp/ip设定,以dhcp offer数据包形式发送给客户机。
3.如果客户端收到网络上多台dhcp服务器的响应,会挑选响应最快的一个dhcp offer,并且会向网络发送一个dhcp request广播封包,告诉所有dhcp服务器它使用哪一台服务器提供的ip地址。
同时,客户端还会向网络发送arp广播数据包,查询网络上面有没有其他机器使用这个ip地址;如果发现这个ip已经被占用,客户则会送出一个dhcp decline数据包给dhcp服务器,拒绝接受其dhcp offer,并重新发送dhcp request信息。
4.将地址分配给客户机,dhcp服务器发送一个dhcp ack消息,以确认ip租约的正式生效,结束完整的dhcp工作过程。
5.dhcp客户端成功地从服务器取得ip地址之后,一般不需要再发送dhcp discover信息了,除非其租约已经失效或者ip地址也重新设定回0.0.0.0.而会直接使用已经租用到的ip地址向为其发此ip地址的dhcp服务器发出dhcp request信息,dhcp服务器会尽量让客户端使用原来的ip地址,如果没特殊情况,会直接响应dhcp ack,允许客户端继续使用这个ip地址,如果这个地址已经失效或已经被其他机器使用了,服务器则会响应一个dhcp nack数据包给客户端,要求其重新执行dhcp discover.