DHCP的工作过程,你Get到了吗?
引言
DHCP是网络体系结构中应用层的一个重要协议,它可以帮助我们对要连接到互联网的计算机进行IP地址等信息的配置。本文从DHCP的原理出发,就DHCP的工作过程 进行详细的讨论。
主要报文
- 发现报文 DHCPDISCOVER
- 提供报文 DHCPOFFER
- 请求报文 DHCPREQUEST
- 确认报文 DHCPACK
- 否认报文 DHCPNAK
- 释放报文 DHCPRELEASE
工作过程
DHCP使用用户服务器方式。根据用户与服务器之间的报文交互情况,我们可以把整个DHCP协议工作过程简单地分成以下4 个步骤:
DHCP协议的交互过程(图片来源于网络)
Step1(发现阶段)
DHCP用户以广播(broadcast)的形式发送DHCP发现报文DHCPDISCOVER到本地网络。为什么是以广播的方式呢?由于现在并不知道DHCP服务器在什么地方,所以要发现(DISCOVER)它的IP地址。
此时的DHCP用户还没有自己的IP地址,因而它将自己IP数据报的源 IP地址 设为全 0 。而将目的 IP地址 设为全 1 ,也就是我们说的广播地址255.255.255.255。这样,本地网络上所有安装了TCP/IP协议的主机都可以收到这个报文,但只有DHCP服务器才对这个报文进行应答。
Step2(提供阶段)
凡收到DHCP发现报文的DHCP服务器都发出DHCP提供报文。DHCP服务器先在其数据库中 查找该计算机的配置信息。若找到,则返回找到的信息;若找不到,则从服务器的地址池(address pool)中取一个地址分配给该计算机。
这里存在的疑问是,为什么要先在数据库里查找?这是由于数据库中可能存在与用户端MAC地址静态绑定的IP地址,而这个地址优先分配。这个阶段DHCP服务器发出的应答报文叫做DHCPOFFER,表示“提供”了IP地址等信息。
Step3(选择阶段)
DHCP用户可能收到多个 DHCP提供报文,它从几个DHCP服务器中选择其中的一个,通常是收到的第一个 ,并向所选择的DHCP服务器发送请求报文,请求(REQUEST)使用对方提供的IP地址和其余配置数据。
Step4(确认阶段)
被选择的DHCP服务器发送确认报文DHCPACK给DHCP用户。DHCP用户收到报文后,即可以使用刚才提供的IP地址了。这种状态称为“已绑定 ”。
说明
1. DHCP使用的协议和端口
DHCP数据报采用UDP协议进行封装,DHCP用户使用的UDP端口是68,而DHCP服务器使用的UDP端口是67。
2. DHCP的租期和计时器
DHCP分配给DHCP用户的IP地址是临时 的,DHCP用户只能在一段时间内使用这个分配的IP地址。DHCP协议称这段时间为租期(Lease Time),这个时间可以在DHCP服务器上设置。RFC2132对Lease Time的要求如下 :
The time is in units of seconds, and is specified as a 32-bit
unsigned integer.
即时间以秒为单位,并指定为32位无符号整数 。可以设置的时间范围从1秒到136年(232秒),DHCP用户也可以在自己发送的报文中提出对租期的要求。
因而,DHCP用户现在要根据服务器提供的租期T设置两个计时器T1和T2,它们的超时时间分别0.5T和0.875T,来提示自己升级租期 。
当超时时间到达T1时,DHCP用户发送请求报文DHCPREQUEST要求升级租期。
- DHCP服务器若同意,则发回确认报文DHCPACK。DHCP用户得到了新的租用期,重新设置计时器。
- DHCP服务器若不同意,则发回否认报文DHCPNAK。这时DHCP用户必需立即中止使用原来的IP地址,回到发现阶段重新申请IP地址。
- DHCP服务器若不响应,则在超时时间到达T2时,重新发送请求报文DHCPREQUEST要求升级租期,而后重复前面的步骤。
DHCP用户可以随时提前终止服务器提供的租期,这时只要向DHCP服务器发送释放报文DHCPRELEASE就可。
结束语
以上详情了DHCP协议的详细工作过程,对DHCP使用的端口、协议、租期和计时器等重要概念进行了说明。
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » DHCP的工作过程,你Get到了吗?