动态主机配置协议DHCP

网络 网络管理
为了把协议软件做成通用的和便于移植,协议软件的编写者不会把所有的细节都固定在源代码中。

1.引言

为了把协议软件做成通用的和便于移植,协议软件的编写者不会把所有的细节都固定在源代码中。相反,他们把协议软件参数化。这样在很多台计算机上可以使用同一个经过编译的二进制代码。一台计算机和另一台计算机的许多区别,都可以通过一些不同的参数来体现。在协议软件运行之前必须给每一个参数赋值。

在协议软件中给这些参数赋值的动作叫做协议配置。连接到因特网的协软件需要配置的项目包括:

①IP地址

②子网掩码

③默认路由器IP地址

④(本地)域名服务器IP地址

2.DHCP

用人工的方式给上面的参数赋值很麻烦,而且容易出错。所以采用动态主机配置协议DHCP(Dynamic HostConfiguration Protocol)。

DHCP使用客户—服务器方式。需要IP地址的主机在启动时就想DHCP服务器广播发送发现报文(DHCPDISCOVER),这是主机就成为DHCP的客户。广播发现报文是运用受限的广播(255.255.255.255),因为主机还不知道DHCP服务器在哪里,并且此时的主机是没有IP地址的,所以将发现报文的源IP地址设置为0。当DHCP收到发现报文之后,DHCP服务器先在其数据库中查找该计算机的配置信息,若找到就返回找到的信息。若没有找到,则从服务器的IP地址池(addresspool)中取一个地址分配给该计算机。DHCP服务器的回答报文叫做提供报文(DHCPOFFER)。

但是我们并不愿意在每一个网络上都设置一个DHCP服务器,这样DHCP服务器的数量太多了。因此现在是使每一个网络至少有一个DHCP中继代理(通常是一台路由器),它配置了DHCP服务器的IP地址信息,也就是其知道该为该网络提供服务的DHCP服务器在哪里。当中继代理收到主机广播发送的发现报文之后,中继代理就以单播方式向DHCP服务器转发此报文,并等待其回答。当收到DHCP的提供报文之后,再转发给请求的主机。如下图:

 

DHCP服务器分配给客户的IP地址是临时的,称这段时间为租用期,具体的租用期由DHCP服务器决定,DHCP服务器发送的提欧诺个报文中给出了租用的数值。

需要注意的是,收到发现报文的DHCP服务器可能不止一个,所有收到发现报文的DHCP服务器都会向客户发送提供报文,DHCP客户从几个提供报文中选择一个,并向所选择的DHCP服务器发送请求报文(DHCPREQUEST)。

之后被选择的DHCP服务器发送确认报文(DHCPACK)。从这个时候开始DHCP客户就可以使用这个IP地址了。此时DHCP客户会设置两个计时器,若租用期是T,那么两个计时器分别是T1=0.5T和T2=0.875T。

若T1时间到则DHCP客户发送请求报文要求更新租用期,若DHCP服务器同意则发送确认报文,此时计时器重置;若DHCP服务器不同意,则发送否认报文(DHCPNACK),此时DHCP客户必须立即停止使用原来的IP地址,并重新申请IP地址。

若DHCP不响应租期过半时候的请求报文,那么当第二个计时器到时的时候,DHCP服务器必须发送请求报文要求更新租用期。

当然DHCP客户可以随时提前终止服务器提供的租用期,这时只需向DHCP服务器发送释放报文(DHCPRELESEASE)即可。

原文博客:http://blog.csdn.net/sicofield/article/details/9716293

责任编辑:张存 来源: 博客
相关推荐

2022-07-10 20:48:36

DHCP互联网网络

2021-01-12 05:08:49

DHCP协议模型

2020-02-17 15:06:41

DHCPIP动态地址

2010-09-03 12:00:47

DHCP主机

2010-09-27 11:44:14

Linux DHCP服

2010-08-29 21:21:18

DHCP协议

2010-09-26 14:16:26

DHCP协议应用

2010-08-23 17:16:16

DHCP协议

2010-09-02 15:34:25

DHCP协议

2023-10-12 07:18:25

IP地址服务器

2009-05-13 10:50:59

CCNPHSRP路由

2010-08-29 21:24:53

DHCP协议

2010-08-26 15:48:15

DHCP协议

2017-03-30 17:02:13

UbuntuDebianDHCP

2010-08-25 11:49:44

DHCP协议dhcpd

2013-08-12 09:47:41

RIP协议网络协议

2024-03-14 09:55:35

DHCP网络IP地址

2010-08-29 21:06:30

DHCP协议

2010-09-25 13:07:50

DHCP协议结构

2010-08-29 20:46:53

DHCP协议
点赞
收藏

51CTO技术栈公众号