首页 理论教育 计算机网络中的BOOTP协议

计算机网络中的BOOTP协议

时间:2023-11-05 理论教育 版权反馈
【摘要】:为解决这些问题,BOOTP应运产生,这是一种基于客户端/服务器模式的应用层协议。BOOTP只能完成第一阶段任务,向客户端提供所需IP地址和相关信息,并给出引导文件的路径;第二阶段主要是文件传送过程,一般采用TFTP或FTP协议来实现。BOOTP要求在UDP中使用检验和字段,用于检测数据是否遭到破坏。BOOTP使用超时与重传机制来避免分组丢失。图8-9显示长度为300B的BOOTP报文格式。图8-9 BOOTP报文格式“操作码”字段为1表示请求,为2表示应答。

计算机网络中的BOOTP协议

无盘工作站与某些网络设备,通常将引导系统所需启动程序,存放在非易失性的ROM中,这些ROM一般为批量生产,程序完全相同,但每台计算机或网络设备所使用的IP地址不同,这不可能包含在ROM中,必须从其他地方获取。通常ROM容量不大,只包含短小启动程序,引导系统所需系统映像需从别处获取。此外,服务器地址、路由地址、硬件相关信息等其他信息,都可从服务器上获取,系统引导时,可通过RARP从服务器获取IP地址。

RARP存在的问题:只能获取IP地址,无法得到其他配置信息。RARP是链路层协议,使用物理地址寻找相应IP地址,而对于装有可配置网卡的计算机,由于硬件地址为动态分配,使用RARP无法达到预定目的。为解决这些问题,BOOTP应运产生,这是一种基于客户端/服务器模式的应用层协议。在BOOTP报文中,不但有客户端IP地址信息,还包含各种配置信息,如服务器地址、路由器地址、引导文件路径和厂商信息等。

1.BOOTP的工作原理

自举过程分为两个阶段:一是获取配置信息和引导文件的路径,二是获取引导文件本身。BOOTP只能完成第一阶段任务,向客户端提供所需IP地址和相关信息,并给出引导文件的路径;第二阶段主要是文件传送过程,一般采用TFTP或FTP协议来实现。

BOOTP基于客户端/服务器模式,BOOTP客户端为需要自举的计算机或网络设备,BOOTP服务器则是提供相关配置信息的计算机。客户端与服务器之间的信息交换以请求/响应的方式进行,使用两个不同的UDP通信端口,服务器使用67端口,客户端使用68端口。

由于BOOTP运行在UDP之上,其报文作为UDP数据报的内容被封装在IP数据报中。BOOTP使用固定长度为300B的报文,其封装格式如图8-8所示。

978-7-111-43162-6-Chapter08-16.jpg

图8-8 BOOTP报文的封装格式

计算机或网络设备在获知自身IP地址之前,如何使用IP数据报发送BOOTP报文呢?这需要用到称为有限广播地址的特殊IP地址,有限广播地址将所有位均置为1,用点分十进制表示,即为255.255.255.255,将报文广播给同一网络中的所有计算机。

BOOTP的报文交换过程:客户端(无盘工作站或网络设备)使用有限广播地址在网络中广播其BOOTP请求。服务器收到请求后,根据客户端提供的硬件地址,在配置表中查找匹配的IP地址。由于客户端还不知道自己的IP地址,所以服务器也使用有限广播地址来发送BOOTP响应。客户端收到响应后,就可以使用服务器提供的IP地址收发IP数据报了。

BOOTP基于UDP并使用IP进行分组传输,因此必须处理分组的延迟、丢失、复制或破坏等问题。BOOTP要求在UDP中使用检验和字段,用于检测数据是否遭到破坏。此外,在发送分组时需要将“请勿分段”(DoNotFragment)位进行置位,这样内存不足的计算机就无需重组数据报。

BOOTP使用超时与重传机制来避免分组丢失。客户端发送一个请求分组,同时启动一个定时器,如在规定的时间内没有收到响应,则客户端会重新发送请求分组。由于网络内多台计算机可能同时重启,为避免同时传送大量的分组,BOOTP规范推荐客户端等待一随机延迟时间后再重新发送。

BOOTP是为相对固定的网络环境而设计的,通常针对主机都拥有永久性网络连接的情况。BOOTP服务器上包含配置表,为每台计算机硬件地址、IP地址及其他相关信息的数据库。配置表需系统管理员手动维护,通常情况下不会频繁改动,因而BOOTP可看作“静态”的。

2.BOOTP报文格式

BOOTP报文所有字段都为固定长度,且请求报文与响应报文格式完全相同。图8-9显示长度为300B的BOOTP报文格式。(www.xing528.com)

978-7-111-43162-6-Chapter08-17.jpg

图8-9 BOOTP报文格式

“操作码”字段为1表示请求,为2表示应答。对以太网,“硬件类型”字段取值为1,“硬件地址长度”字段取值为6。发送请求报文时,客户端将“跳数”字段设置为0,在中继代理收到请求并决定将其转发时,则会将“跳数”字段值加1。

事务标识”字段为由客户端设置并由服务器返回的32bit整数,客户用其对请求和响应进行匹配。对每个请求,客户端应将该字段设置为一随机数

客户端开始引导时,将“秒数”字段设置为一时间值,备用BOOTP服务器等待时间超过该时间值后,才会响应客户请求,这表明主服务器没有启动或出现了问题。

如客户端已知道自身IP地址,则将其写入“客户IP地址”字段,否则,该字段应设置为全0。对后一种情况,服务器会在返回的响应报文中,将提供给该客户的IP地址写入“你的IP地址”字段。“服务器IP地址”字段一般由服务器填写。如使用了某客户端则必须填写“客户主机硬件地址”字段,尽管这个值与以太网数据帧头中的值相同,UDP数据报中也设置这个字段。“服务器主机名”字段是以0为结束符的字符串,一般由服务器填写。

客户端在发送请求报文时,在“引导文件名”字段中填写类属信息,取值为“unix”或“ethertip”,但服务器发送引导应答包时,使用对应的引导文件的确切路径名称来取代该字段。如请求报文中该字段内容为空,则服务器返回一文件名字段,表示客户机需加载的默认文件。

“特定厂商区域”字段含有服务器返回给客户端的可选信息,以点分十进制表示,跟随其后的其余部分是选项条目表。每个选项包括1B标签字段、可选的1B长度字段和多个B的数据。表8-9和表8-10中给出长度固定选项和长度可变选项的相关消息。

表8-9 “特定厂商区域”字段中的长度固定的选项

978-7-111-43162-6-Chapter08-18.jpg

表8-10 “特定厂商区域”字段中的长度可变的选项

978-7-111-43162-6-Chapter08-19.jpg

“填充”和“结束”条目仅有标志字段。填充字节(标签为0)是为了使后面的条目有更好的字节边界,结束标志(标签为255)表示所有条目的结尾,第一个结束标志后剩余的所有字节都应设置结束标志。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈