前述无盘工作站通过运行RARP来获得IP地址,但RARP有如下缺陷:
RARP实际上是一个物理层协议,直接访问网络硬件,这使得应用程序难以使用它
RARP只能获得32位IP地址,而不能获得其它有用信息,如子网掩码、默认路由地址等等
RARP使用硬件地址标识主机,因此不能用于网络硬件地址是动态分配的网络
为克服这些缺陷而发展了BOOTstrap Protocol(BOOTP),之后又扩展到动态主机配置协议(Dynamic Host Configuration Protocol)
BOOTP使用UDP封装在IP中,因而易被应用程序使用
BOOTP消息中包含了多种信息:如IP地址、路由器地址、服务器地址。
BOOTP还包含了一个供生产商使用的字段,可以允许硬件厂商只对它们生产的计算机发送其它消息。
BOOTP请求和响应过程:客户-服务器模式
客户端BOOTP使用IP封装的UDP来发送消息,其目的地址用全1广播地址。IP软件可以在没有本地网络地址和本机IP地址信息时接收和广播全1地址的数据报。
服务器收到广播请求后,响应一个广播,包含客户所需信息。由于此时客户尚不知其IP地址,因而不能使用点到点的发送。
最后客户端获得所需信息
几点说明:
BOOTP使用两个知名端口:服务器端口为67, 客户端口为68
由于UDP是不可靠的,因而需要计算UDP的检校和,另外也需要设置“不分片”位。
UDP是可能丢失的,为处理数据报丢失,BOOTP使用通常的超时重传技术,为避免多个客户同时重传而导致冲突,BOOTP的延时均采用0到4秒中的随机时间。而且每多重传一次则随机时间加一倍,以降低网络负载,直到60秒后重新回到一个随机时间。
BOOTP消息格式
BOOTP消息由固定长度字段组成,响应消息和请求消息格式相同
字段说明:
OP:
1=该消息为请求消息
2=该消息为响应消息
HTYPE:网络硬件类型(以太网=1)
HLEN:硬件地址长度(以太网=6)
HOPS:请求消息中此字段为0,而在响应消息中服务器要计算此项
TRANSACTION ID:是一个标识号,用以匹配请求消息和响应消息。
SECOND:客户机在开始引导时,将此字段设置为一个时间值,当主服务器没有响应时,备用服务器会在此时间过后响应客户请求。
CLIENT IP ADDRESS 及以下字段包含大多数重要信息,内容比较灵活。客户端可以填充所有已知的信息,未知的字段填为0。
CLIENT IP ADDRESS:客户如果已知其IP地址,则填在字段,如果不知,则该字段填0,服务器在响应时就会把客户IP地址填在YOUR IP ADDRESS字段。
客户在已知其IP地址时,可以利用BOOTP来获得其自举文件信息。如果要获得自举配置文件,则需要进一步用简单文件传输协议来获得。把配置文件名和配置信息分开利于系统管理员进行管理,方便多个客户启动不同的操作系统。
SERVER IP ADDRESS 和SERVER HOST NAME 如果不为零,则只有名字或IP地址与此匹配的服务器才会响应该请求,若均为0,则任何一个收到该请求的服务器都会响应该请求。
BOOTP是可路由的,当路由器收到一个BOOTP时,会将它的IP地址填入ROUTE IP ADDRESS,并将跳数加1,进一步转发,直到到达最后的BOOTP服务器。跳数达到一定值后,可抛弃。(RFC951 规定为3)
特定厂商信息包含从服务器发往客户的可选信息,前四个8位组称为魔术甜饼,设置为一个IP地址:99.130.83.99。表明该区有内容。
BOOTP自举配置信息与配置文件名是分开的,利于系统管理员进行管理,但一般不会频繁变化,客户在网络中在一个较长的时期会有一个稳定的连接及配置。因此,一般RARP、 BOOTP被认为是静态IP地址分配。静态IP配置对于计算机位置固定以及IP地址充足时能很好地工作。但相反情况下,计算机位置经常移动,计算机数查过可用的IP地址数目时,就需要根据网络目前状态动态地为需要工作的计算机指定IP地址。为此,在BOOTP的基础上扩展发展了动态主机配置协议(Dynamic Host Configuration Protocol)。
领取专属 10元无门槛券
私享最新 技术干货