动态主机配置协议

; 动态主机配置协议
动态主机配置协议(Dynamic Host Configuration Protocol,DHCP)在TCP/IP网络上使客户机获得配置信息的协议,它是基于BOOTP协议,并在BOOTP协议的基础上添加了自动分配可用网络地址等功能 。这两个协议可以通过一些机制互操作 。
DHCP向网络主机提供配置参数,它由两个基本部分组成:一部分是向网络主机传送专用的配置信息,另一部分是给主机分配网络地址 。DHCP是基于客户/服务器模式的,这种模式下,专门指定的主机分配网络地址,传送网络配置参数给需要的网络主机,被指定的主机称为服务器 。我们以后将提供DHCP服务的主机称为服务器,把接收信息的主机称为客户 。不能随便谁都可以成为DHCP服务器,这需要治理员进行人为指定 。由于网络中硬件和软件的多样性,使得任何一台主机随便响应DHCP请求的问题得到了解决,假如有一台机器可以随便响应的话,它也无法给用户提供正确的配置参数,而配置TCP/IP协议的参数又那么多,因此使得这种任意的响应成了不可能的事情 。而分布式地分配网络地址要使用一些机制来防止地址重用,但是由于是分布式分配,有时真是防不胜防,无法从根本上杜绝网络地址冲突的问题 。
DHCP支持三种IP地址分配方法 。第一种是自动分配,DHCP给用户分配一个永久的IP地址 。第二种是动态分配,在这种情况下,用户可以取得一个IP地址,但是是有时间限制的 。第三种是手工分配,在这种方法下,用户的IP地址是由治理员手工指定的,这种情况下,DHCP服务器只需要将这个指定的IP地址传送给用户即可 。至于用什么样的分配方法,不同的网络各不相同 。
动态分配是唯一一种答应自动重用地址的机制 。因此,这种方法对于有临时上网用户,而且网络的IP地址资源又不是多得没法用的时候非凡有用 。而手工指定对于治理不希望使用动态IP地址的用户十分方便,不会因为手工指定而和DHCP冲突或和别的已经分配的地址冲突 。这里的要害希望大家能够理解,DHCP是一种相对集中式的治理方式 。
DHCP信息包的格式是基于BOOTP包格式的,这使得BOOTP客户可以访问DHCP服务器 。DHCP中使用了BOOTP的转发代理,这样就避免了在每个物理网段都设一个DHCP服务器的情况 。
有许多协议与DHCP的功能相似,也同时为DHCP提供服务 。反向地址解析协议(Reverse Address Resolution Protocol,RARP)用于发现网络地址和自动IP地址分配 。小文件传输协议(Trivial File Transfer Protocol,TFTP)用于从启动服务器传送启动镜象 。Internet控制信息协议(Internet Control Message Protocol,ICMP)用于向主机发送有关附加路由器信息 。ICMP还被用于传送子网掩码信息和其它信息 。主机也可能通过ICMP的路由寻找功能定位路由器。BOOTP是用于传送配置信息的方法,它是可扩展的,正式的扩展在一些配置参数中定义 。麻省理工学院的Athena工程中使用的网络信息协议(Network Information Protocol,NIP)采用分布式动态IP地址分配 。资源定位协议(Resource Location Protocol,RLP)提供了高层服务定位 。由于Sun公司不喜欢工作站在启动时的漫长过程,所以使用了RARP,TFTP和远程过程调用(RPC)机制,并称之为"bootparams",这种机制是用来为无硬盘主机传送配置信息和操作系统代码 。一些Sun网络也在使用动态RARP(DRARP)和自动安装机制使新加入的主机自动配置 。
在其它一些相关的工作中,路径最小传输单元(MTU)寻找算法使得寻找MTU的大小成为了可能 。地址解析协议(Address Resolution Protocol,ARP)也被用于一种传输协议进行资源和定位和选择 。
DHCP是用于向客户传送配置信息的,客户从DHCP服务器那里获得配置信息后应该可以和Internet上任何一台主机通信 。TCP/IP协议栈参数请在本文后面寻找 。在初始化一台主机时并不需要配置所有这些参数,客户和服务器可以通过一种商讨机制决定传送哪些参数 。DHCP答应(不要求)客户参数配置不直接与IP协议相关,而且它也不将最加入的主机加入域名系统(DNS)中 。

推荐阅读