首页 >> 网络营销词典 >> 互联网基础知识FAQ >> DHCP

DHCP[编辑]


动态主机配置协议(Dynamic Host Configuration Protocol, DHCP)是一个局域网的网络协议,使用UDP协议工作,主要有两个用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段。

 

结构介绍


DHCP 是 Dynamic Host Configuration Protocol(动态主机配置协议)缩写,它的前身是BOOTP。BOOTP 原本是用于无磁盘主机连接的网络上面的:网络主机使用 BOOT ROM 而不是磁盘启动并连接上网络,BOOTP则可以自动地为那些主机设定 TCP/IP 环境。但 BOOTP 有一个缺点:您在设定前须事先获得客户端的硬件地址,而且与 IP 的对应是静态的。换而言之,BOOTP 非常缺乏 "动态性" ,若在有限的IP资源环境中,BOOTP 的一一对应会造成非常严重的资源浪费。DHCP 可以说是 BOOTP 的增强版本,它分为两个部分:一个是服务器端,而另一个是客户端。所有的 IP 网络设定数据都由 DHCP服务器集中管理,并负责处理客户端的 DHCP 要求;而客户端则会使用从服务器分配下来的IP环境数据。使用DHCP,整个计算机的配置文件都可以在一条信息中获得(除了IP地址,服务器可以同时发送子网掩码、缺省网关、DNS服务器和其他的TCP/IP配置)。比较起 BOOTP ,DHCP 透过 "租约" 的概念,有效且动态的分配客户端的 TCP/IP 设定,而且,作为兼容考虑,DHCP 也完全照顾了 BOOTP Client 的需求。DHCP 的分配形式:首先,必须至少有一台 DHCP服务器 工作在网络上面,它会监听网络的 DHCP 请求,并与客户端磋商TCP/IP的设定环境。它提供3种 IP 定位方式:
Manual Allocation

人工分配,获得的IP也叫静态地址,网络管理员为某些少数特定的在网计算机或者网络设备绑定固定IP地址,且地址不会过期。
同一个路由器一般可以通过设置来划分静态地址和动态地址的IP段,比如一般家用Tenda路由器,常见的是从192.168.1.100~192.168.1.254,这样如果你的电脑是自动获得IP的话,一般就是192.168.1.100,下一台电脑就会由DHCP自动分到为192.168.1.101。而192.168.1.2~192.168.1.99为手动配置IP段。
Automatic Allocation

自动分配,其情形是:一旦 DHCP客户端第一次成功的从 DHCP服务器端租用到 IP 地址之后,就永远使用这个地址。
Dynamic Allocation

动态分配,当 DHCP客户端第一次从 DHCP服务器端租用到 IP 地址之后,并非永久的使用该地址,只要租约到期,客户端就得释放(release)这个 IP 地址,以给其它工作站使用。当然,客户端可以比其它主机更优先的更新(renew)租约,或是租用其它的 IP 地址。动态分配显然比手动
相关图片
相关图片
分配更加灵活,尤其是当您的实际 IP 地址不足的时候,例如:您是一家ISP,只能提供 200 个IP地址用来给拨接客户,但并不意味着您的客户最多只能有 200 个。因为要知道,您的客户们不可能全部同一时间上网的,除了他们各自的行为习惯的不同,也有可能是电话线路的限制。这样,您就可以将这 200 个地址,轮流的租用给拨接上来的客户使用了。这也是为什么当您查看 IP 地址的时候,会因每次拨接而不同的原因了(除非您申请的是一个固定 IP ,通常的 ISP 都可以满足这样的要求,这或许要另外收费)。当然,ISP 不一定使用 DHCP 来分配地址,但这个概念和使用 IP Pool 的原理是一样的。DHCP 除了能动态的设定 IP 地址之外,还可以将一些 IP 保留下来给一些特殊用途的机器使用,它可以按照硬件地址来固定的分配 IP 地址,这样可以给您更大的设计空间。同时,DHCP 还可以帮客户端指定 router、netmask、DNS Server、WINS Server、等等项目,您在客户端上面,除了将 DHCP 选项打勾之外,几乎无需做任何的 IP 环境设定。

 

运作状态

运作模式:
DHCP 是怎么运作的?
假设多部计算机在同一个网域当中,也就是说,DHCP Server 与他的 Clients 都在同一个网段之内,可以透过软件广播的方式来达到相互沟通的状态。那么Client 藉由 DHCP Server 得到 IP 的程序为:
①若 Client 端计算机设定使用 DHCP 协议以取得网络参数时,则Client 端计算机在开机的时候,或者是重新启动网络卡的时候,会自动的发出 DHCPClient 的需求给网域内的每部计算机:这个时候,由于发出的讯息希望每部计算机都可以接受,所以该讯息除了网络卡的硬件地址(MAC)无法改变外,需要将该讯息的来源软件地址设定为0.0.0.0 ,而目的地址则为 255.255.255.255 ( Linux 会自动设定,无须考虑这个问题!)。网域内的其它没有提供DHCP 服务的计算机,收到这个封包之后会自动的将该封包丢弃而不回应;
②DHCP主机响应讯息:如果是 DHCP 主机收到这个Client 的 DHCP 需求时,那么 DHCP 主机首先会针对该次需求的讯息所携带的 MAC与 DHCP 主机本身的设定值去比对,如果 DHCP 主机的设定有针对该 MAC 做静态IP (每次都给予一个固定的 IP )的提供时,则提供 Client 端相关的固定 IP 与相关的网络参数;而如果该讯息的MAC 并不在 DHCP 主机的设定之内时,则 DHCP 主机会选取目前网域内没有使用的IP (这个 IP 与设定值有关) 来发放给 client 端使用!此外,需要特别留意的是,在DHCP 主机发放给 Client 端的讯息当中,会附带一个『租约期限』的讯息,以告诉Client 端,IP 可以使用的期限有多长!
③Client 端接受来自 DHCP主机的网络参数,并设定 Client自己的网络环境:当 Client 端接受响应的讯息之后,首先会以 ARP封包在网域内发出讯息,以确定来自DHCP 主机发放的 IP 并没有被占用!如果该 IP 已经被占用了,那么 Client 对于这次的DHCP 信息将不接受,而将再次向网域内发出 DHCP 的需求广播封包;若该 IP 没有被占用,则client 可以接受 DHCP 主机所给的网络的参数,那么这些参数将会被使用于 client端的网络设定当中,同时, Client 端也会对 DHCP 主机发出确认封包,告诉 Server这次的需求已经确认!而 Server 也会将该信息记录下来;
④Client 端结束该 IP 的使用权:当 Client 开始使用这个DHCP 发放的 IP 之后,有几个情况下他可能会失去这个 IP 的使用权:
Client 端离线:不论是关闭网络接口( ifdown)、重新开机 ( reboot )、关机 ( shutdown ) 等行为,皆算是离线状态,这个时候Server 端就会将该 IP 回收,并放到 Server 自己的备用区中,等待未来的使用;
Client 端租约到期:前面提到 DHCP server 端发放的IP 有使用的期限, Client 使用这个 IP 到达期限规定的时间,就需要将 IP 缴回去!这个时候就会造成断线,而Client 也可以再向 DHCP主机要求再次分配 IP!

IP 取得的方法:
在上面的步骤中,注意第二步。就是 DHCP 会去比较 MAC 这个硬件地址,并判断该MAC 是否需要给予一个固定的 IP 呢!呵呵!所以啦,我们在 Client 端由 DHCP主机取得的 IP 主要有两种方式:
①静态( Static ) IP :只要那个 client 端计算机的网络卡不换掉,那么MAC 肯定就不会改变,由于 DHCP 可以根据 MAC 来给予固定的 IP ,所以该计算机每次都能以一个固定的IP 连上 Internet !呵呵!这种情况比较适合当这部计算机需要用来做为提供区域内的一些网络服务的主机之用。那么如何在Linux 上面知道您的 MAC 呢?很简单啦!有很多的方式,最简单的方式就是使用ipconfig 及 arp 来进行(以下针对LINUX):
[root@testroot]# ifconfig eth0
ifconfig
eth0 Link encap:Ethernet HWaddr 00:50:FC:22:9C:57
inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:333678 errors:0 dropped:0 overruns:0 frame:0
TX packets:377219 errors:0 dropped:0 overruns:0 carrier:0
collisions:195 txqueuelen:100
RX bytes:42243563 (40.2 Mb) TX bytes:278373316 (265.4 Mb)
Interrupt:10 Base address:0x6100[root@test root]#arp
Address HWtype HWaddress Flags Mask Iface
test.X ether 00:50:FC:22:9C:57 C eth0
192.168.1.100 ether 00:02:44:19:A6:AD C eth0
②动态 ( dynamic ) IP:Client 端每次连上 DHCP所取得的 IP 都不是固定的!都直接经由 DHCP 所随机由尚未被使用的 IP 中提供!
关于租约的行为:
观察上面 DHCP 运作模式的第二个步骤,会发现最后面还有一个租约期限!最大的优点就是可以避免该IP 被某些使用者一直占用着,但该使用者却是 Idle (闲置/空闲) 的状态!
关于 DHCP主机个数:
当网域里面有两部以上的 DHCP 主机时,到底哪一部主机会设定我的这部Client 端计算机?很多时候是『先抢先赢』,同样,DHCP 的回应也是如此!当 Server1 先响应时,使用的就是 Server1 所提供的网络参数内容,如果是Server2 先响应,就是使用 Server2 的参数来设定 PC !不过,前提之下当然是这些计算机的『物理联机』都是在一起的。

需求说明

Ⅰ什么时候最好使用 DHCP ?
在某些情况之下,倒是强烈的建议架设 DHCP主机的!例如:
公司内部很多 Notebook计算机使用的场合!因为 Notebook 在使用上,当设定为DHCP client 的时候,那么只要它连接上的网域里面有一部可以上网的 DHCP服务器 ,那部notebook 也就可以连接上 Internet 了!
网域内计算机数量相当的多时:另外一个情况就是网域内计算机数量相当庞大时,大到您没有办法一个一个的进行说明来设定他们自己的网络参数,这个时候为了省麻烦,还是架设DHCP 来的方便。
Ⅱ什么情况下不建议使用 DHCP 主机?
虽然 DHCP 有很多好处,但是有一个步骤怪怪的。回头看一下那个步骤一,Client 在开机的时候会主动的发送讯息给网域上的所有机器,这个时候,如果网域上就是没有DHCP主机呢?那么这部 Client 端计算机会发送四次请求信息,第一次等待时间为 1 秒,其余三次的等待时间分别是 9、13、16 秒。如果还是没有DHCP服务器的响应,那么在5分钟之后,Client端计算机会重复这一动作。
在网域内的计算机,有很多机器其实是做为主机的用途,很少Client 需求,那么似乎就没有必要架设 DHCP。

 

 

参考资料: http://baike.baidu.com/view/7992.htm?fromtitle=DHCP%E5%8D%8F%E8%AE%AE&fromid=1989741&type=syn
扩展阅读: http://baike.baidu.com/view/7992.htm?fromtitle=DHCP%E5%8D%8F%E8%AE%AE&fromid=1989741&type=syn
相关词条:

http://www.wm23.com/wiki/71532.htm

合作编辑:

网络营销词典内容均由网友提供,仅供参考。如发现词条内容有问题,请发邮件至info # wm23.com。

词条信息

浏览次数:101

编辑次数:0历史版本

创建者: 程斐

最近更新:2013/11/19 16:07:05

词条分类导航

关于网络营销教学网站| 本站动态| 网站地图| 版权声明| 联系作者| 问题和建议|

版权声明:网络营销教学网站所有作品版权均归原作者所有,未经书面许可,严禁任何形式的转载/转贴、出版、篡改、汇编、编译等。