能是也可能不是广播
(在下面"鸡和蛋的问题"标题的章节中深入解释) 。
使用两个保留的端口的原因是当引导应答必须广播到客户端避免"叫醒"并且调度BOOTP服
务器进程 。
因为服务器和其它主机都不会侦听"BOOTP客户端"端口,
所有进入的广播报文将在核心级别过滤掉 。
我们不能简单地答应客户端找一个随机端口号做为UDP源端口字段;因为服务器应答可能
是广播,
一个随机选择的端口号可能搞乱其它恰巧在侦听那个端口的主机 。
UDP长度字段设置成UDP长度加BOOTP部分的包 。
UDP校验和可以由客户端(或服务器)按照需要设置成0,以避免PROM实现中额外的费用 。
在下面的"包处理"章节中"[UDP校验和]"短语用来表示校验和可能被验证/计算 。
字段字节数 描述
---------------------
op1packetopcode/messagetype.包操作码/消息类型
1=BOOTREQUEST(引导请求),2=BOOTREPLY(引导应答)
htype1hardwareaddresstype,硬件地址类型
seeARPsectionin"AssignedNumbers"RFC.请看"Assigned
Numbers"RFC中的ARP章节
"1"=10mbethernet10M以太网
hlen1hardwareaddresslength硬件地址长度
(eg"6"for10mbethernet).例如"6"是10M以太网
hops1clientsetstozero,客户端设置成0
optionallyusedbygateways在跨越网关引导时网关可选择使用
incross-gatewaybooting.
xid4transactionID,arandomnumber,
usedtomatchthisbootrequestwiththe
responsesitgenerates.事务ID,一个随机数,用来匹配引用请求
和应答
secs2filledinbyclient,secondselapsedsince
clientstartedtryingtoboot.由客户端填写,客户端引导开始后的
过去的秒数
--2unused未使用
ciaddr4clientIPaddress;客户端IP地址,
filledinbyclientinbootrequestifknown.假如客户端知道就在引导
请求中填入
yiaddr4"your"(client)IPaddress;"你的"(客户端)IP地址
filledbyserverifclientdoesn"t
knowitsownaddress(ciaddrwas0).假如客户端不知道它的地址
(ciaddr是0),服务器填入
siaddr4serverIPaddress;服务器IP地址
returnedinbootreplybyserver.由服务器在引导应答返回
giaddr4gatewayIPaddress,网关IP地址
usedinoptionalcross-gatewaybooting.在跨越网关引导中可以选择
使用
chaddr16clienthardwareaddress,客户端硬件地址
filledinbyclient.由客户端填写
sname64optionalserverhostname,可选的服务器主机名
nullterminatedstring.空结束的字符串
file128bootfilename,nullterminatedstring;引导文件名,空结束的字符串
"generic"nameornullinbootrequest,在引导请求中使用"通用"名称
或空
fullyqualifiedDirectory-path是引导应答中使用确切的目
录路径名称
nameinbootreply.
vend64optionalvendor-specificarea,可选的卖主指定的区域,
e.g.couldbehardwaretype/serialonrequest,例如,可以是请求硬件
类型/序列,
or"capability"/remotefilesystemhandle或应答的性能/远端文
件系统句柄 。
onreply.Thisinfomaybesetasideforuse这些信息留给第三方
分析引导或核心(程序)使用 。
byathirdphasebootstraporkernel.
3 鸡和蛋的问题
假如客户端不知道自己IP地址,服务器怎么发送IP报文到客户端 。
无论何时一条引导应答被发送,发送设备执行下列操作:
1.假如客户端知道自己的IP地址("ciaddr"字段非零),
因为客户端能够回应ARPs[5],那么IP能够正常发送 。
2.假如客户端还不知道自己的IP地址(ciaddr是零),
客户端就不能回应引导应答发送程序回的ARPs 。这时有两种选择:
a.假如发送程序有必需的核心或驱动钩子程序来人工建立ARP地址缓冲条目,
推荐阅读
- 版本2 邮局协议
- 远程用户拨号认证系统 RADIUS记帐协议
- RADIUS计费对于支持隧道协议的修正
- 4 OSI IS-IS 域内路由协议
- 边界网关协议 BGP-4的路由刷新功能
- IOTP Internet开放贸易协议HTTP 补充
- 实时传输协议管理信息库
- HTTP 超文本传输协议状态管理的应用
- 网络文件系统协议
- 约定房产归属的离婚协议有效吗
