BOOTP:引導程序協議
發表于:2007-05-26來源:作者:點擊數:
標簽:
在不知道自身IP地址的情況下,在進行系統引導時能夠通過RARP來獲取它的IP地址。然而使用RARP有兩個問題:(1)IP地址是返回的唯一結果;(2)既然RARP使用鏈路層廣播,RARP請求就不會被路由器轉發(迫使每個實際 網絡 設置一個RARP 服務器 )。本章將介紹一
在不知道自身IP地址的情況下,在進行系統引導時能夠通過RARP來獲取它的IP地址。然而使用RARP有兩個問題:(1)IP地址是返回的唯一結果;(2)既然RARP使用鏈路層廣播,RARP請求就不會被路由器轉發(迫使每個實際網絡設置一個RARP服務器)。本章將介紹一種用于無盤系統進行系統引導的替代方法,又稱為引導程序協議,或BOOTP。
BOOTP使用UDP,且通常需與TFTP(參見第15章)協同工作。RFC951[CroftandGilmore1985]是BOOTP的正式規范,RFC1542[Wimer1993]則對它作了說明。
BOOTP的分組格式
BOOTP請求和應答均被封裝在UDP數據報中,如下圖所示。

BOOTP請求和應答封裝在一個UDP數據報內 “操作碼”字段為1表示請求,為2表示應答。硬件類型字段為1表示10Mb/s的以太網,這和ARP請求或應答中同名字段表示的含義相同。類似地,對于以太網,硬件地址長度字段為6字節。
“跳數”字段由客戶設置為0,但也能被一個代理服務器設置?!笆聞諛俗R”字段是一個由客戶設置并由服務器返回的32bit整數??蛻粲盟鼘φ埱蠛蛻疬M行匹配。對每個請求,客戶應該將該字段設置為一個隨機數??蛻糸_始進行引導時,將“秒數”字段設置為一個時間值。服務器能夠看到這個時間值,備用服務器在等待時間超過這個時間值后才會響應客戶的請求,這意味著主服務器沒有啟動。
如果該客戶已經知道自身的IP地址,它將寫入“客戶IP地址”字段。否則,它將該字段設置為0。對于后面這種情況,服務器用該客戶的IP地址寫入“你的IP地址”字段?!胺掌鱅P地址”字段則由服務器填寫。如果使用了某個代理服務器,則該代理服務器就填寫“網關IP地址”字段。
客戶必須設置它的“客戶硬件地址”字段。盡管這個值與以太網數據幀頭中的值相同,UDP數據報中也設置這個字段,但任何接收這個數據報的用戶進程能很容易地獲得它(例如一個BOOTP服務器)。一個進程通過查看UDP數據報來確定以太網幀首部中的該字段通常是很困難的(或者說是不可能的)。

BOOTP請求和應答的格式 “服務器主機名”字段是一個空值終止串,由服務器填寫。服務器還將在“引導文件名字段”填入包括用于系統引導的文件名及其所在位置的路徑全名。
“特定廠商區域”字段用于對BOOTP進行不同的擴展。16.6節將介紹這些擴展中的一些。當一個客戶使用BOOTP(操作碼為1)進行系統引導時,引導請求通常是采用鏈路層廣播,IP首部中的目的IP地址為255.255.255.255(受限的廣播,12.2節)。源IP地址通常是0.0.0.0,因為此時客戶還不知道它本身的IP地址?;仡檲D3-9,在系統進行自引導時,0.0.0.0是一個有效的IP地址。
端口號
BOOTP有兩個熟知端口:BOOTP服務器為67,BOOTP客戶為68。這意味著BOOTP客戶不會選擇未用的臨時端口,而只用端口68。選擇兩個端口而不是僅選擇一個端口為BOOTP服務器用的原因是:服務器的應答可以進行廣播(但通常是不用廣播的)。
如果服務器的應答是通過廣播傳送的,同時客戶又選擇未用的臨時端口,那么這些廣播也能被其他的主機中碰巧使用相同臨時端口的應用進程接收到。因此,采用隨機端口(即臨時端口)對廣播來說是一個不好的選擇。如果客戶也使用服務器的知名端口(67)作為它的端口,那么網絡內的所有服務器會被喚醒來查看每個廣播應答(如果所有的服務器都被喚醒,它們將檢查操作碼,如果是一個應答而不是請求,就不作處理)。因此可以讓所有的客戶使用與服務器知名端口不同的同一知名端口。
如果多個客戶同時進行系統引導,并且服務器廣播所有應答,這樣每個客戶都會收到其他客戶的應答??蛻艨梢酝ㄟ^BOOTP首部中的事務標識字段來確認應答是否與請求匹配,或者可以通過檢查返回的客戶硬件地址加以區分。
原文轉自:http://www.kjueaiud.com
老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月
|