BOOTP报文格式

BOOTP (Boot Protocol)是一种IP/UDP引导协议,可以使一个无盘客户端获取自己的IP地址、服务器的主机地址和一个需要放在内存中运行的指定名称的引导文件。

我们希望客户端在启动时可以有一种无须用户参与的完整的引导方式,即一种无人值守的上电启动方式,幸运的是,BOOTP帮我们做到了这一点。通过BOOTP协议,客户端可以自动获得IP地址、服务器地址和引导文件等,从而完成地址绑定和引导启动。

文件传送一般使用TFTP协议,但BOOTP也能够与其它协议如SFTP或FTP一起工作。

报文格式

BOOTP协议报文被封装在UDP中。

图1 BOOTP报文格式
字段 长度(字节) 含义
op 1 操作码/消息类型,取值为1或2:
  • 1 = BOOTREQUEST (引导请求)
  • 2 = BOOTREPLY (引导应答)
htype 1 Hardware address type,硬件地址类型,如为1时表示客户端的网络硬件是10M以太网类型。
hlen 1 Hardware address length,硬件地址长度,如为6时表示客户端的网络硬件地址长度为6byte。
hops 1 客户端设置成0,在跨越网关引导时网关可选择使用(加1)。
xid 4 事务ID,一个随机数,用来匹配引用请求和应答。
secs 2 客户端引导开始后的过去的秒数,由客户端填写。
-- 2 未使用
ciaddr 4 Client IP address,客户端IP地址,如果客户端知道就在引导请求中填入。
yiaddr 4 Your (client) IP address,你的(客户端)IP地址,如果客户端不知道它的地址(ciaddr是0),服务器填入。
siaddr 4 Server IP address,服务器IP地址由服务器在引导应答返回。
giaddr 4 Gateway IP address,网关IP地址,在跨越网关引导中可以选择使用。
chaddr 16 Client hardware address,客户端硬件地址,由客户端填写。
sname 64 Server host name,服务器主机名。可选的,如果填写,必须为一个以0结尾的字符串。
file 128 Boot file name,引导文件名,可选的,如果填写,必须为一个以0结尾的字符串。
vendor 64

Vendor-specific area,可选的商家指定的区域。可以是请求硬件类型/序列、或应答的性能/远端文件系统配置。这些信息留给第三方分析引导或程序使用。

注:vendor字段,对于DHCP,又称为“option”字段。此字段采用“CLV”方式构成,即code:标识号,唯一标识后面的信息内容,占1bytes;length:长度,表示后面信息内容的长度,占1bytes;value:信息内容,其长度为length所指定,以bytes 为单位。

BOOTP报文示例

图2 BOOTP请求报文
图3 BOOTP响应报文

参考标准

标准 描述
RFC 951 Bootstrap Protocol (BOOTP)
RFC 1542 Clarifications and Extensions for the Bootstrap Protocol

本资料收集于互联网
2016 ©