计算机网络 DHCP工作原理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机网络DHCP工作原理
DHCP服务器在分配IP地址时,会根据客户端是否为首次登陆网络,做出相应的IP地址分配形式,其工作原理也是不同的。
1.客户端首次登录网络
在DHCP处于动态分配IP地址方式时,则当用户的客户端首次登录DHCP服务,将通过以下几个步骤完成连接工作。
●寻找DHCP Server
当DHCP客户端首次启动登录网络的时候,也就是客户端上没有任何IP数据设定时,它会向网络发送一个Dhcpdiscover数据包,该数据包表达出客户机的IP地址租用请示。因为客户端还不知道自己属于哪一个网络,所以数据包的源地址为0.0.0.0,目的地址则为255.255.255.255,然后再附加上Dhcpdiscover的信息,向网络进行广播。网络上每一台安装了TCP/IP协议的主机都会接收到这种广播信息,但只有DHCP服务器才会做出响应。
Dhcpdiscover的等待时间为1秒,也就是当客户端将第一个Dhcpdiscover数据包发送出去后,如果在1秒之内没有得到回应的话,将进行第二次Dhcpdiscover广播。在一直得不到响应的情况下,客户端共有四次Dhcpdiscover广播(包括第一次),除了在第一次的等待1秒之外,其余三次的等待时间分别为9、13、16秒。如果都没有得到DHCP服务器的响应,在客户端上将会显示错误信息,最终宣告Dhcpdiscover的失败。随后,基于用户的选择,系统会继续在5分钟之后再重复一次Dhcpdiscover的过程。
●提供IP租用地址
当DHCP服务器监听并接收到客户端发出的Dhcpdiscover数据包后,该服务器将从那些还没有被租出的地址范围中,选择最前面的闲置IP地址,连同其他TCP/IP设定回应给客户端一个Dhcpoffer数据包。当网络中包含不止一个DHCP服务器时,客户端可能收到好几个Dhcpoffer,在大多数情况下,客户端只接收到第一个Dhcpoffer数据包。
由于客户端最初并未有IP地址,所以在其Dhcpdiscover数据包内封装有它的MAC地址信息,并且有一个XID编号来识别该数据包,DHCP服务器回应的Dhcpoffer数据包会根据这些内容来最终传递给客户端,根据服务器端得设置,Dhcpoffer数据包还会包含一个租约到期的信息。
●接受IP租约
当客户端收到Dhcpoffer数据包后,会向网络发送一个Dhcprequest广播,告诉所有DHCP 服务器它将指定接受哪一台服务器提供的IP地址。
同时,客户端还会向网络发送一个ARP数据包,以查询网络当中有没有其它计算机使用该IP地址;如果发现该IP已经被使用,那么客户端会发送出一个Dhcpdeclinf数据包给DHCP服务器,拒绝接受其DHCP offer,并重新发送DHCPdiscover广播。事实上,并不是所有的DHCP客户端都会无条件接受DHCP服务器的offer,尤其这些计算机安装有其它TCP/IP 相关的客户软件。客户端也可以用DHCPRequest向服务器提出DHCP选择,而这些选择会以不同的号码填写在DHCP Option Field里面。也就是说,在DHCP服务器中的设定并不是所有客户端都接受,其主动权是在客户端手中,它可以保留自己的一些有关TCP/IP设定。
●确认租约
当DHCP服务器接收到客户端的Dhcprequest之后,会向客户端发送一个Dhcpack响应,以确认IP地址租约的正式生效。
经过以上四个步骤,也就结束了一次完整的DHCP工作过程,其工作流程如图11-42所示。
图11-42 DHCP工作过程
●重新登录
以后DHCP客户机每次重新登录网络时,就不需要再发送DHCPdiscover发现信息了,而是直接发送包含前一次所分配的IP地址的DHCPRequest请求信息。当DHCP服务器收到这一信息后,它会尝试让DHCP客户机继续使用原来的IP地址,并回答一个DHCPack确认信息。如果此IP地址已无法再分配给原来的DHCP客户机使用时(比如此IP地址已分配给其它DHCP客户机使用),则DHCP服务器给DHCP客户机回答一个DHCPnack否认信息。当原来的DHCP客户机收到此DHCPnack否认信息后,它就必须重新发送DHCPdiscover发现信息来请求新的IP地址。
●更新租约
DHCP服务器向DHCP客户机出租的IP地址一般都有一个租借期限,期满后DHCP服务器便会收回出租的IP地址。如果DHCP客户机要延长其IP租约,则必须更新其IP租约。DHCP 客户机启动时和IP租约期限过一半时,DHCP客户机都会自动向DHCP服务器发送更新其IP 租约的信息。至于IP的租约期限却是非常考究的﹐并非如我们租房子那样简单﹐DHCP客户机除了在开机的时候发出DHCPrequest请求之外﹐在租约期限一半的时候也会发出DHCPrequest﹐如果此时得不到DHCP服务器的确认的话﹐工作站还可以继续使用该IP﹔然后在剩下的租约期限的再一半的时候(即租约的75%)﹐还得不到确认的话﹐那么工作站就不能拥有这个IP了。
2.非首次登录
一旦DHCP客户端成功的从DHCP服务器取得DHCP租约之后,除非其租约失效且IP地址重新设定为0.0.0.0,否则就不需要再发送Dhcpdiscover信息了,而会直接使用已经租用到的IP地址向原来的DHCP服务器发送Dhcpreques数据包,DHCP服务器会尽量让客户端使用原来的IP地址,如果没有问题的话,将直接回应一个Dhcpack数据包来确认。如果该地址已经失效或已经被其它计算机使用了,服务器将会响应一个Dhcpnack数据包给客户端,要求其重新执行Dhcpdiscover。