BOOTP:引导协议 (Bootstrap Protocol)

90年代初期以前,无盘工作站风行一时风行一时。在一个无盘工作站内网环境中系统服务器上运行工作站所需要的系统,将工作站的硬盘和主机分离,无盘工作站只执行操作不执行存储。当时,出于成本的考虑这样布署可以减轻曾本负担。有了无盘工作站,就引出了今天要说的主题BootP:
引导协议(BOOTP)是一种基于 UDP/IP 的协议,这样一个古老的协议也许今天的很多IT工程师都没有机会接触。这种协议允许正在启动的主机动态配置而无需用户监督。BOOTP 主要用于客户机从服务器获得自己的 IP 地址,服务器的 IP 地址以及启动映象文件名。其它一些配置信息,如本地子网掩码、本地时间偏移量、默认路由器地址和各种 Internet 服务器地址,都能与使用 BOOTP 协议的客户机交流。这样可以避免每个用户手工设置静态IP地址的麻烦。

BOOTP 使用两个不同的知名通讯端口 UDP67/68。UDP67 用于服务器,UDP68 用于 BOOTP 客户机。客户机启动时,本身还没有 IP 地址,这时 BOOTP 客户机就以广播的形式发出一个名为 BOOTREQUEST 的 IP 地址查询请求包,这个请求包中包含了客户机物理地址,还可能有一个 IP 地址,如果已有的话。客户使用地址 255.255.255.255 发送广播,这种特殊地址称为有限广播地址。然后客户机等待服务器的响应,如果在特定时间段内没有收到响应,客户机就重新发出请求。

通过引导答复(bootreply)包,服务器响应客户机请求。请求可以包含“通用”引导文件名,例如,unix 或 ethertip。但服务器发送引导应答包时,它使用对应的引导文件的确切的路径名称来取代这个字段。为了确定路径名,服务器会查询本身的的数据库。这个数据库关联了客户机地址、请求文件名和为用户定制的特殊引导文件。如果请求(bootrequest)文件名是空,服务器就返回一个文件名字段用于表示客户机需加载的默认文件。

在客户机 IP 地址不知道的情况下,服务器必须要有一个硬件地址和 IP 地址相对应的数据库。客户机 IP 地址也被放到“bootreply”的某一字段中。

BOOTP 和 RARP 类似,但 RARP 只运行于 LAN 网络的数据链路层;而基于 UDP/IP 的配置协议 BOOTP 则提供了更多配置方面的信息,它允许整个 IP 网络动态配置。总之,BOOTP 及其扩展成为动态主机配置协议(DHCP)的基础。

协议结构

    * Op �C 消息操作代码,可以是引导请求( BOOTREQUEST )也可以是引导答复( BOOTREPLY )
    * Htype �C 硬件地址类型
    * Hlen �C 硬件地址长度
    * Xid �C 事务 ID.
    * Secs �C 客户机开始地址请求或续约后消耗的时间(秒数)
    * Flags �C 标记
    * Ciaddr �C 客户机 IP 地址
    * Yiaddr �C “你的”(客户机) IP 地址
    * Siaddr �C 在 bootstrap 中下一台服务器可用服务器的 IP 地址
    * Giaddr �C 通过代理启动时代理的 IP 地址
    * Chaddr �C 客户机硬件地址
    * Sname �C 其他可用服务器主机名称,空终止符
    * File �C 引导文件名、空终止符; DHCPDISCOVER 包中的属名或者空值, DHCPOFFER 包中的完全合格目录路径名
    * Options �C 可选参数字段

你可能感兴趣的:(bootstrap,protocol,休闲,BOOTP,引导协议)