1 引言
在進行系統引導時能夠通過r a r p來獲取它的 i p位址。然而使用 r a r p有兩個問題: ( 1) i p位址是返回的唯一結果;( 2)既然 r a r p使用鏈路層廣播, r a r p請求就不會被路由器**(迫使每個實際網路設定乙個rarp 伺服器)。
2 bootp 的分組格式
bootp 請求和應答均被封裝在 u d p資料報中,如圖1 6 - 1所示。
「操作碼」欄位為 1表示請求,為2表示應答。硬體型別欄位為 1表示10 mb/s的乙太網,這和a r p請求或應答(圖 4 - 3)中同名字段表示的含義相同。類似地,對於乙太網,硬體位址長度欄位為6位元組。
「跳數」欄位由客戶設定為 0,但也能被乙個**伺服器設定
「事務標識」欄位是乙個由客戶設定並由伺服器返回的 32 bit整數。客戶用它對請求和應答進行匹配。對每個請求,客戶應該將該字段設定為乙個隨機數。
客戶開始進行引導時,將「秒數」字段設定為乙個時間值。伺服器能夠看到這個時間值,備用伺服器在等待時間超過這個時間值後才會響應客戶的請求,這意味著主伺服器沒有啟動。
如果該客戶已經知道自身的 i p位址,它將寫入「客戶 i p位址」字段。否則,它將該字段設定為 0。對於後面這種情況,伺服器用該客戶的 i p位址寫入「你的 i p位址」字段。「伺服器i p位址」欄位則由伺服器填寫。
當乙個客戶使用 b o o t p(操作碼為 1)進行系統引導時,引導請求通常是採用鏈路層廣播, i p首部中的目的 i p位址為 2 5 5 . 2 5 5 . 2 5 5 . 2 5 5(受限的廣播, 1 2 . 2節)。源 i p位址通常是0 . 0 . 0 . 0,因為此時客戶還不知道它本身的 i p位址。
b o o t p有兩個熟知埠: bootp 伺服器為6 7, bootp 客戶為6 8。這意味著bootp 客戶不會選擇未用的臨時埠,而只用埠 6 8。選擇兩個埠而不是僅選擇乙個埠為 b o o t p伺服器用的原因是:伺服器的應答可以進行廣播(但通常是不用廣播的)。
如果伺服器的應答是通過廣播傳送的,同時客戶又選擇未用的臨時埠,那麼這些廣播也能被其他的主機中碰巧使用相同臨時埠的應用程序接收到。因此,採用隨機埠(即臨時埠)對廣播來說是乙個不好的選擇。
如果客戶也使用伺服器的知名埠(6 7)作為它的埠,那麼網路內的所有伺服器會被喚醒來檢視每個廣播應答(如果所有的伺服器都被喚醒,它們將檢查操作碼,如果是乙個應答而不是請求,就不作處理)。
如果多個客戶同時進行系統引導,並且伺服器廣播所有應答,這樣每個客戶都會收到其他客戶的應答。客戶可以通過 b o o t p首部中的事務標識欄位來確認應答是否與請求匹配,或者可以通過檢查返回的客戶硬體位址加以區分.
7 小結
b o o t p使用u d p,它為引導無盤系統獲得它的 i p位址提供了除 r a r p外的另外一種選擇。b o o t p還能返回其他的資訊,如路由器的 i p位址、客戶的子網掩碼和名字伺服器的 i p位址。
既然b o o t p用於系統引導過程,乙個無盤系統需要下列協議才能在唯讀儲存器中完成:
b o o t p、 t f t p、 u d p、 i p和乙個區域網的驅動程式。
b o o t p伺服器比 r a r p伺服器更易於實現,因為 b o o t p請求和應答是在 u d p資料報中,而不是特殊的資料鏈路層幀。乙個路由器還能作為真正 b o o t p伺服器的**,向位於不同網路的真正b o o t p伺服器**客戶的b o o t p請求。
BOOTP引導程式協議
我們介紹了乙個無盤系統,它在不知道自身 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 伺...
dhcp和bootp協議的區別
說明 本文 與rarp類似,bootp和dhcp都是用於獲取主機ip位址的協議,三者都是基於客戶伺服器模式,但由於rarp在低層操作,使用它就必須訪問網路硬體,因此應用程式設計人員很難或者不太可能構造乙個伺服器。bootp及dhcp應運而生,bootp協議早與dhcp,但而這都是構建在傳輸層udp之...
硬碟主引導扇區引導程式
硬碟主引導扇區的引導程式只佔139個位元組 不同版本的fdisk 不同的分割槽程式寫入的主引導記錄會不相同,但其基本功能一樣 經過反彙編後的引導程式的彙編 如下 1000 0600 fa cli 自舉,將0000 7c00開始的硬碟主引導記錄本身轉移到0000 0600處,空出0000 7c00開始...