• 【TCP/IP详解】BOOTP:引导程序协议


      BOOTP是引导程序协议,也称为自举协议,用于系统引导过程,是DHCP的前身,BOOTP用于无盘工作站的局域网中,可以让无盘工作站从一个中心服务器上获得IP地址。通过BOOTP协议可以为局域网中的无盘工作站分配动态IP,这样就不需要管理员去为每个用户去设置静态IP地址。一个无盘系统需要下列协议才能在只读存储器中完成:BOOTP、TFTP、UDP、IP和一个局域网的驱动程序。BOOTP使用UDP,通常与TFTP协同工作。

    报文格式

     

    •  操作码:1(请求)、2(应答)。
    • 硬件类型:1(以太网)。
    • 硬件地址长度:6(以太网)。
    • 跳数:由客户设置为0,代理服务器也可以改变。
    • 事务标识:是一个由客户设置并由服务器返回的32 bit整数。客户用它对请求和应答进行匹配。对每个请求,客户应该将该字段设置为一个随机数。
    • 秒数:客户设置一个时间值,超过时间值,备用服务器才会响应。   
    • 客户IP地址:如果客户知道自己IP地址,填入实际IP,否则填0。
    • 你的IP地址:由服务器填入客户的IP地址。
    • 服务器IP地址:服务器填写。
    • 网关IP地址:代理服务器填写自己的IP。
    • 客户主机硬件地址:客户填写,与以太网帧中的相同。
    • 服务器主机名:是一个空值终止串,由服务器填写。
    • 引导文件名:用于引导的文件名和所在路径。
    • 特定厂商信息:用于扩展BOOTP。

    协议流程

    1. 由BOOTP启动代码来启动BOOTP客户端,这个时候BOOTP客户端还没有IP地址。

    2. BOOTP客户端使用广播,源IP地址为0.0.0.0,目的IP地址为255.255.255.255,向网络中发出IP地址查询要求。

    3. 运行BOOTP协议的服务器接收到这个请求,会根据请求中提供的MAC地址找到BOOTP客户端,并发送一个含有IP地址、服务器IP地址、网关等信息的回应帧。

    4. BOOTP客户端会根据该回应帧来获得自己的IP地址并通过专用文件服务器(如TFTP服务器)下载启动镜像文件,模拟成磁盘来完成启动

    端口号

      BOOTP服务器67号端口,BOOTP客户端68号端口。

      选择两个端口而不是仅选择一个端口为BOOTP服务器用的原因是:服务器的应答可以进行广播。

    1. 当服务器广播,客户端使用临时端口时。广播也能被其他的主机中碰巧使用相同临时端口的应用进程接收到。因此,采用随机端口(即临时端口)对广播来说是一个不好的选择。
    2. 客户端和服务器使用同一个端口时。可以,此时网络内的所有服务器会被唤醒来查看这个广播,若是应答服务器就不做处理。
    3. 多个客户端同时引导时,且服务器广播所有应答。这样每个客户都会收到其他客户的应答。客户可以通过BOOTP首部中的事务标识字段来确认应答是否与请求匹配,或者可以通过检查返回的客户硬件地址加以区分。

    BOOTP中继

      路由器(也称作“ BOOTP 中继代理”),当收到一个BOOTP请求时,中继代理将它的IP地址填入收到BOOTP请求中的“网关IP地址字段”,然后将该请求发送到真正的BOOTP服务器(由中继代理填入网关字段的地址是收到的BOOTP请求接口的IP地址)。该代理中继还将跳数字段值加1(这是为防止请求被无限地在网络内转发)。既然发出的请求是一个单播的数据报(与发起的客户的请求是广播的相反),它能按照一定的路由通过其他的路由器到达真正的BOOTP服务器。真正的BOOTP服务器收到这个请求后,产生BOOTP应答,并将它发回中继代理,而不是请求的客户。既然请求网关字段不为零,真正的BOOTP服务器知道这个请求是经过转发的。中继代理收到应答后将它发给请求的客户。

    特定厂商信息

      如果有信息要提供,这个区域的前4个字节被设置为I P地址99.130.83.99。这可称作魔术甜饼,表示该区域内包含信息。

     

    BOOTP vs. RARP

      无盘系统用RARP获取IP存在的问题:

    • IP地址是返回的唯一结果,没有其他信息返回。
    • RARP使用链路层广播,路由器不会转发该请求,使得在每个实际网络中得设置一个RARP服务器。

    BOOTP vs. DHCP 

    1. DHCP可以说是BOOTP的增强版本,比较起BOOTP,DHCP透过"租约"的概念,有效且动态的分配客户端的IP设定,而且,作为兼容考虑,DHCP也完全照顾了BOOTP Client的需求。
    2. 必须至少有一台DHCP工作在网络上面,它会监听网络的DHCP请求。它提供两种IP定位方式:自动分配,一旦DHCP客户端第一次成功的从DHCP服务器租用到IP地址之后,就永远使用这个地址;动态分配,当DHCP第一次从HDCP服务器端租用到IP地址之后,并非永久的使用该地址,只要租约到期,客户端就得释放。
    3. DHCP除了可以动态的进行设定IP地址之外,还能够直接将一些IP保留下来给一些特殊用途的机器进行使用。另外一个方面,它能够直接按照硬件地址来固定的分配IP地址。
    4. DHCP与BOOTP的不同点在于,BOOTP也可以完成给主机分配IP地址的任务,但它要求主机的硬件地址必须被手工输入到BOOTP表中。可以讲DHCP看成一个动态的BOOTP。但是,BOOTP还可以将用来引导主机的操作系统发送给主机。而DHCP不可以。

    参考

    https://baike.baidu.com/item/BOOTP/610878?fr=aladdin

    https://zhidao.baidu.com/question/6070483.html

    TCP/IP详解卷1

  • 相关阅读:
    询问给定图中树的棵数
    题目1365:贝多芬第九交响曲
    题目1463:招聘会
    九度 题目1395:爱钱的胡老板
    HDU 4666 Hyperspace && POJ 2926 Requirements
    九度 题目1493:公约数
    九度 题目1523:从上往下打印二叉树 题目1521:二叉树的镜像
    iOS CoreBluetooth 教程 蓝牙
    点击推送,跳转到查看推送消息的页面
    学习ios蓝牙技术,仿写lightblue
  • 原文地址:https://www.cnblogs.com/chen-cs/p/12898864.html
Copyright © 2020-2023  润新知