【TCP-IP详解卷一:协议】ch16 BOOTP:引导程序协议

目录

      • 1. 引言
      • 2. BOOTP的分组格式
        • 2.1 BOOTP请求和应答的格式:
        • 2.2 端口号
      • 3. BOOTP服务器的设计
      • 4. BOOTP穿越路由器
      • 5. 特定厂商信息
      • 6. 小结

1. 引言

无盘系统进行系统引导时使用RARP获取IP地址的缺点:1)IP地址是返回的唯一结果;2)RARP使用链路层广播,请求不会被路由器转发,故每个网络都要设置一个RARP服务器。
因此提出了另一种用于无盘系统进行系统引导的方法——引导程序协议BOOTP,使用UDP,且常与TFTP协同工作。

2. BOOTP的分组格式

【TCP-IP详解卷一:协议】ch16 BOOTP:引导程序协议_第1张图片

2.1 BOOTP请求和应答的格式:

【TCP-IP详解卷一:协议】ch16 BOOTP:引导程序协议_第2张图片

系统引导时,引导请求一般采用链路层广播,IP首部目的IP地址为255.255.255.255(受限的广播),源IP地址为0.0.0.0,因为此时客户不知道自身的IP地址。

2.2 端口号

BOOTP服务器为67,客户为68

3. BOOTP服务器的设计

服务器从端口67读取UDP数据报,必须读取类型字段为 “RARP请求” 的以太网帧。BOOTP协议将客户的硬件地址存入BOOTP分组,使得服务器很容易获取客户的硬件地址。
服务器将响应送回BOOTP客户问题的解决办法:

  1. 服务器发送ioctl(2)请求给内核为客户在ARP高速缓存中设置一个条目
  2. 服务器广播这个BOOTP应答

4. BOOTP穿越路由器

若路由器支持BOOTP协议,那么BOOTP就能由路由器转发,该功能主要用于无盘路由器。
路由器收到BOOTP请求,中继代理将它的IP地址填入收到BOOTP请求中的 “网关IP地址字段”,然后将该请求发到真正的BOOTP服务器并将跳数字段加1(跳数加到3就可以丢弃了)。真正的BOOTP服务器收到请求后产生BOOTP应答,并将其发回中继代理而不是请求的客户。

5. 特定厂商信息

【TCP-IP详解卷一:协议】ch16 BOOTP:引导程序协议_第3张图片

6. 小结

无盘系统在只读存储器中系统引导需要的协议:BOOTP、TFTP、UDP、IP和一个局域网的驱动程序

BOOTP相较于RARP用于引导无盘系统获取IP地址的优点:

  1. RARP只返回IP地址,而BOOTP返回路由器的IP地址、客户的子网掩码以及名字服务器的IP地址。
  2. RARP请求不会被路由器转发,但路由器可以作为真正BOOTP服务器的代理,向不同网络中的BOOTP服务器转发客户的BOOTP请求。

你可能感兴趣的:(计网)