我们介绍了一个无盘系统,它在不知道自身 I P地址的情况下,在进行系统引导时
能够通过R A R P来获取它的I P地址。然而使用R A R P有两个问题:(1)I P地址是返回的唯一结
果;(2)既然R A R P使用链路层广播, R A R P请求就不会被路由器转发(迫使每个实际网络
设置一个RARP 服务器)。本章将介绍一种用于无盘系统进行系统引导的替代方法,又称为引
导程序协议,或B O O T P。
B O O T P使用U D P,且通常需与 T F T P协同工作。

BOOTP 的分组格式

图显示了长度为3 0 0字节的B O O T P请求和应答的格式。
“操作码”字段为1表示请求,为2表示应答。硬件类型字段为 1表示10 Mb/s的以太网,这
和A R P请求或应答中同名字段表示的含义相同。类似地,对于以太网,硬件地址长
度字段为6字节。
“跳数”字段由客户设置为0,但也能被一个代理服务器设置。
“事务标识”字段是一个由客户设置并由服务器返回的 32 bit整数。客户用它对请求和应
答进行匹配。对每个请求,客户应该将该字段设置为一个随机数。
客户开始进行引导时,将“秒数”字段设置为一个时间值。服务器能够看到这个时间值,
备用服务器在等待时间超过这个时间值后才会响应客户的请求,这意味着主服务器没有启动。
如果该客户已经知道自身的 I P地址,它将写入“客户 I P地址”字段。否则,它将该字段
设置为0。对于后面这种情况,服务器用该客户的 I P地址写入“你的 I P地址”字段。“服务器
I P地址”字段则由服务器填写。如果使用了某个代理服务器,则该代理服务器就
填写“网关I P地址”字段。
客户必须设置它的“客户硬件地址”字段。尽管这个值与以太网数据帧头中的值相同,
U D P数据报中也设置这个字段,但任何接收这个数据报的用户进程能很容易地获得它(例如
IP数据报
UDP数据报
IP首部 UDP首部
BOOTP请求/应答
20字节 8字节
300字节
一个BOOTP 服务器)。一个进程通过查看U D P数据报来确定以太网帧首部中的该字段通常是
很困难的(或者说是不可能的)。

BOOTP引导程序协议的更多相关文章

  1. TFTP:简单文本传输协议,BOOTP:引导程序协议

    TFTP:简单文本传输协议,BOOTP:引导程序协议 1.TFTP:      TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用 ...

  2. TCP/IP详解学习笔记(11)-- TFTP:简单文本传输协议,BOOTP:引导程序协议

    1.TFTP:      TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,基于UD ...

  3. 《TCP/IP详解 卷1:协议》系列分享专栏

    <TCP/IP详解卷1:协议>是一本详细的TCP/IP协议指南,计算机网络历久不衰的经典著作之一. 作者理论联系实际,使读者可以轻松掌握TCP/IP的知识.阅读对象为计算机专业学生.教师以 ...

  4. 《TCP/IP详解 卷1:协议》第3章 IP:网际协议

    3.1 引言 IP是TCP/IP协议族中最为核心的协议.所有的TCP.UDP.ICMP及IGMP数据都以IP数据报格式传输(见图1-4).许多刚开始接触TCP/IP的人对IP提供不可靠.无连接的数据报 ...

  5. 《TCP/IP详解 卷1:协议》第4章 ARP:地址解析协议

    4.1 引言 本章我们要讨论的问题是只对TCP/IP协议簇有意义的IP地址.数据链路如以太网或令牌环网都有自己的寻址机制(常常为48 bit地址),这是使用数据链路的任何网络层都必须遵从的.一个网络如 ...

  6. TCP/IP 协议标准简单描述

    TCP/IP 协议标准简单描述 说明 分为三部分:中文名称.缩写.说明. 应用层 DNS 域名服务 (DNS) 功能: 将域名转化为IP地址 BOOTP 引导程序协议 (BOOTP) 功能: 允许无盘 ...

  7. Linux系统下手把手完成无人值守安装服务

    刚入职的运维新手经常会被要求去做一些安装操作系统的工作,如果按照用镜像光盘安装操作系统,效率会相当低下.那么如何提升效率,搭建出一套可以批量安装Linux系统的无人值守的安装系统? PXE+TFTP+ ...

  8. DHCP, NAT

    DHCP Dynamic Host Configuration Protocol(动态主机配置协议) (RFC 2131) Bootstrap Protocol BOOTP(引导程序协议) allow ...

  9. 《Linux就该这么学》培训笔记_ch19_使用PXE+Kickstart无人值守安装服务

    <Linux就该这么学>培训笔记_ch19_使用PXE+Kickstart无人值守安装服务 文章最后会post上书本的笔记照片. 文章主要内容: 无人值守系统 部署相关服务程序 配置DHC ...

随机推荐

  1. 报错Unsupported major.minor version 52.0的原因

    原因分析 很明显是JDK版本不一致所导致的,,我们知道Java是支持向后编译的,也就是说,在低版本(如JDK6)上编译的class文件或者jar文件可以在高版本上(如JDK8)上编译通过,但这并不意味 ...

  2. 采用霍夫曼编码(Huffman)画出字符串各字符编码的过程并求出各字符编码 --多媒体技术与应用

    题目:有一个字符串:cabcedeacacdeddaaaba,问题: (1)采用霍夫曼编码画出编码的过程,并写出各字符的编码 (2)根据求得的编码,求得各编码需要的总位数 (3)求出整个字符串总编码长 ...

  3. clog就用clog的后缀名

    /tmp/log/shuanggou.clog /tmp/log/shuanggou.log /tmp/log/shuanggou_success.log /tmp/log/shuanggou_err ...

  4. Spring 设计模式之责任链模式

    [应用] 以下是一段代码,Spring MVC 的 diapatcherServlet 的 doDispatch 方法中,获取与请求匹配的处理器(HandlerExecutionChain) getH ...

  5. Spring boot+Websocket实例1

    简单的demo https://github.com/callicoder/spring-boot-websocket-chat-demo

  6. Python开发【第五章】:常用模块

    一.模块介绍: 1.模块定义 用来从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能),本质上就是.py结尾python文件 分类:内置模块.开源模块.自定义模块 2.导入模块 本质:导 ...

  7. k8s系列0--Kubernetes基础知识

    Kubernetes介绍 参考:Kubernetes核心组件解析 Pod是k8s的最小调度单元 每个pod有独立的IP,但是pod的IP是不可靠的,重新调度pod就会改变IP,service概念就是为 ...

  8. Visual Studio 开发大量 JavaScript 代码项目程序崩溃的解决方案

    最近公司做新项目,基于 Bootstrap.AngularJS 和 kendo 开发一套后台的管理系统,在项目中使用了大量的 JavaScript 文件,这两天 Visual Studio 2015 ...

  9. 动手实现CNN卷积神经网络

    数据集采用的是手写数据集(http://yann.lecun.com/exdb/mnist/): 本文构建的CNN网络图如下: 像素点:28*28 = 784,55000张手写数字图片. # -*- ...

  10. Docker启动Elasticsearch报错vm.max_map_count

    报错信息如下 max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] 临 ...