前言
我们知道一个网络如果要正常地运行,则网络中的主机(Host)必需要知道某些重要的网络参数,如IP地址、网络掩码、网关地址、DNS服务器地址、网络打印机地址等等。显然,在每台主机上都采用手工方式来配置这些参数是非常困难的、或是根本不可能的。 为此,IETF于1993年发布了动态主机配置协议(DHCP:Dynamic Host Configuration Protocol) 。DHCP的应用,实现了网络参数配置过程的自动化。那么DHCP技术具体是如何实现的呢?
DHCP协议
DHCP是一个应用层协议。当我们将客户主机ip地址设置为动态获取方式时,DHCP服务器就会根据DHCP协议给客户端分配IP,使得客户机能够利用这个IP上网。
DHCP工作原理
DHCP基本工作过程(1)
这里以获取IP地址为例 容易看出有四个阶段:发现阶段、提供阶段、请求阶段、确认阶段。有的小伙伴可能就会问了,为什么不是两个阶段,一问一答不就可以了吗?这还真不可以。因为一个网段内接收到DHCP Discover广播的DHCP服务器可能不止一台,有好几台服务器提供可用IP地址的情况下,客户端会选择接受第一个到达的Offer并向相应的DHCP服务器发送Requst消息,表示你的IP我要了。然后就是DHCP服务器确认刚才所提供的IP地址还能不能用,如果可用就发送Ack确认,不行就发送Nak表示IP地址分配失败,客户端重新进入到发现阶段。
值得一提的是,四个阶段都完成后,客户端还会发送免费ARP来检测局域网内IP地址冲突,因为可能有其它客户端自己手动配置了这个IP地址。
DHCP基本工作过程(2)
值得说明的是,分配的IP地址不是永久的,而是有租约期限的,如果想要继续使用原来的IP地址则需要续租。 请求DHCP服务器续约的过程就简单多了,最多就三步。DHCP在接受到客户端的请求后会重新开始租约的计时并发送Ack确认消息。
那么当客户端发出DHCP Discover广播后,找不到DHCP服务器会怎么样呢? 答案是,它会给自己一个以169.254开头的特殊IP地址。 以我自己的虚拟网卡为例 点击详细信息 这时候,我们关掉它的DHCP服务器 这是我们回到虚拟网卡那,右键点击禁用,再右键启用。然后,我们就可以发现它的IP地址变成169.254.38.252 169.254.x.x是B类网里的特殊网段,当客户端找不到DHCP服务器分配IP地址时,就会生成169.254开头的地址作为IP地址,那么这个IP也是可用的。
|