csdn lidp http://blog.csdn.net/perfectpdl
与RARP类似,bootp和dhcp都是用于获取主机ip地址的协议,三者都是基于客户服务器模式,但由于RARP在低层操作,使用它就必须访问网络硬件,因此应用编程人员很难或者不太可能构造一个服务器。bootp及dhcp应运而生,bootp协议早与dhcp,但而这都是构建在传输层udp之上的协议,dhcp对bootp协议做了一些扩展及改进而成为事实上的标准而被广泛使用。
bootp协议使用udp传递报文,bootp获取自身地址的方式是构建在ip有限广播基础上的,即一个应用程序在发现本地网络活机器的ip地址前,可使用一个ip广播在本地广播数据报,在同一物理网络上的服务器将响应请求。
由于bootp构建在udp协议上,所以不可避免存在丢包,乱序现象,bootp使用传统的超时和重传机制解决此问题。
bootp协议设计用于相对静态的环境,其中每台机器都有一个永久连接,管理人员建立一个bootp配置问价,该文件定义了每台机器的异步bootp参数,由于配置通常保存不变,典型情况下配置将保持数星期不变,很明显这种静态配置方式有其局限性,比如计算机经常移动。
所以为处理自动地址分配,ietf 设计了一个新协议,即动态主机配置协议DHCP.
DHCP可以使主机使用一个报文获取所需的全部配置信息,如除了获取ip地址外,还能获取子网掩码,dhcp同样为客户服务其架构,所以为了使用dhcp的动态地址分配机制,管理员必须配置dhcp服务器,使其能提供一组ip地址,任何时候一旦有新的计算机连到网络上,该计算机就与服务器联系,并申请一个地址,服务器从管理员指定的地址中哦给选择一个地址,并将它分配给计算机。
dhcp客户端工作过程:
一台主机通过把报文广播给本地网上服务器而称为客户端,然后该主机收集服务器提供的地址,从中选择一个地址并验证服务器是否接受。
虽然dhcp可以获取主机的ip地址,但hdcp不与域名系统dns交互,因此,主机名与分配给主机的ip地址必须单独处理,如果要支持永久主机名,每当主机获取新的ip地址时dns就要动态更新名字到地址的绑定,这需要hdcp与dns交互,目前还没有动态更新dns的协议,因此还不会有dhcp在更新主机ip地址时维持永久主机名的协议。