咱們在 5.4節中提到 RARP的一個缺點就是它使用鏈路層廣播,這種廣播一般不會由路由 器轉發。這就須要在每一個物理網絡內設置一個 RARP 服務器。若是路由器支持 BOOTP協議, 那麼BOOTP可以由路由器轉發(絕大多數路由器廠商的產品都支持這個功能)。 服務器
這個功能主要用於無盤路由器,由於若是在磁盤的多用戶系統被用做路由器,它就可以 本身運行 BOOTP 服務器。此外,經常使用的 Unix BOOTP 服務器(附錄 F)支持這種中繼模式 網絡
(relay mode)。但若是在這個物理網絡內運行一個 BOOTP 服務器,一般沒有必要將 BOOTP請 求轉發到在另外網絡中的另外一個服務器。 spa
研究一下當路由器(也稱做「 BOOTP 中繼代理」)在服務器的熟知端口( 67)接收到 BOOTP請求時將會發生什麼。當收到一個 BOOTP請求時,中繼代理將它的 IP地址填入收到 BOOTP請求中的「網關 IP地址字段」,而後將該請求發送到真正的 BOOTP服務器(由中繼代 理填入網關字段的地址是收到的 BOOTP請求接口的 IP地址)。該代理中繼還將跳數字段值加 1 代理
(這是爲防止請求被無限地在網絡內轉發。 RFC 951認爲若是跳數值到達 3就能夠丟棄該請求)。 既然發出的請求是一個單播的數據報(與發起的客戶的請求是廣播的相反),它能按照必定的 路由經過其餘的路由器到達真正的 BOOTP服務器。真正的 BOOTP服務器收到這個請求後,產 生BOOTP應答,並將它發回中繼代理,而不是請求的客戶。既然請求網關字段不爲零,真正 的BOOTP服務器知道這個請求是通過轉發的。中繼代理收到應答後將它發給請求的客戶。 接口
BOOTP使用UDP,它爲引導無盤系統得到它的 IP地址提供了除 RARP外的另一種選擇。BOOTP還能返回其餘的信息,如路由器的 IP地址、客戶的子網掩碼和名字服務器的 IP地址。 既然 BOOTP用於系統引導過程,一個無盤系統須要下列協議才能在只讀存儲器中完成: 路由
BOOTP、TFTP、UDP、IP和一個局域網的驅動程序。 產品
BOOTP服務器比 RARP服務器更易於實現,由於 BOOTP請求和應答是在 UDP數據報中, 而不是特殊的數據鏈路層幀。一個路由器還能做爲真正 BOOTP服務器的代理,向位於不一樣網 絡的真正 BOOTP服務器轉發客戶的 BOOTP請求。 路由器