DHCP协议


什么是DHCP?
DHCP;是;Dynamic;Host;Configuration;Protocol;之缩写﹐它的前身是;BOOTP 。BOOTP;原本是用于无磁碟主机连接的网路上面的﹕网路主机使用;BOOT;ROM;而不是磁碟起动并连接上网路﹐BOOTP;则可以自动地为那些主机设定;TCP/IP;环境 。但BOOTP;有一个缺点:您在设定前须事先获得客户端的硬体位址,而且,与;IP;的对应是静态的 。换而言之,BOOTP;非常缺乏;"动态性";,若在有限的;IP资源环境中,BOOTP;的一对一对应会造成非常可观的浪费 。
DHCP;可以说是;BOOTP的增强版本﹐它分为两个部份﹕一个是伺服器端﹐而另一个是客户端 。所有的;IP;网路设定资料都由;DHCP;伺服器集中治理﹐并负责处理客户端的;DHCP;要求﹔而客户端则会使用从伺服器分配下来的IP环境资料 。比较起BOOTP;,DHCP;透过;"租约";的概念,有效且动态的分配客户端的;TCP/IP;设定,而且,作为兼容考量,DHCP;也完全照顾了BOOTP;Client;的需求 。
DHCP;的分配形式;
首先﹐必须至少有一台;DHCP;工作在网路上面﹐它会监听网路的;DHCP;请求﹐并与客户端搓商;TCP/IP;的设定环境 。它提供两种;IP;定位方式﹕
Automatic;Allocation;
自动分配﹐其情形是﹕一旦;DHCP;客户端第一次成功的从;DHCP;伺服器端租用到;IP;位址之后﹐就永远使用这个位址 。
Dynamic;Allocation;
动态分配﹐当;DHCP;第一次从;HDCP;伺服器端租用到;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;的工作形式会有所不同 。;;;;;;;
第一次登录的时候﹕;;
1.;寻找;Server 。当;DHCP;客户端第一次登录网路的时候﹐也就是客户发现本机上没有任何;IP;资料设定﹐它会向网路发出一个;DHCPDISCOVER;封包 。因为客户端还不知道自己属于哪一个网路﹐所以封包的来源位址会为;0.0.0.0;﹐而目的位址则为;255.255.255.255;﹐然后再附上;Dhcpdiscover;的信息﹐向网路进行广播 。;
在;Windows;的预设情形下,Dhcpdiscover;的等待时间预设为;1;秒﹐也就是当客户端将第一个;Dhcpdiscover;封包送出去之后﹐在;1;秒之内没有得到回应的话﹐就会进行第二次Dhcpdiscover;广播 。若一直得不到回应的情况下﹐客户端一共会有四次;Dhcpdiscover;广播(包括第一次在内)﹐除了第一次会等待;1;秒之外﹐其余三次的等待时间分别是;9﹑13﹑16秒 。假如都没有得到;DHCP伺服器的回应﹐客户端则会显示错误信息﹐宣告;Dhcpdiscover;的失败 。之后﹐基于使用者的选择﹐系统会继续在;5;分钟之后再重复一次;Dhcpdiscover;的过程 。;

推荐阅读