【TCP/IP詳解】BOOTP:引導程序協議


  BOOTP是引導程序協議,也稱為自舉協議,用於系統引導過程,是DHCP的前身,BOOTP用於無盤工作站的局域網中,可以讓無盤工作站從一個中心服務器上獲得IP地址。通過BOOTP協議可以為局域網中的無盤工作站分配動態IP,這樣就不需要管理員去為每個用戶去設置靜態IP地址。一個無盤系統需要下列協議才能在只讀存儲器中完成:BOOTP、TFTP、UDP、IP和一個局域網的驅動程序。BOOTP使用UDP,通常與TFTP協同工作。

 

報文格式

 

 

 

 

  •  操作碼:1(請求)、2(應答)。
  • 硬件類型:1(以太網)。
  • 硬件地址長度:6(以太網)。
  • 跳數:由客戶設置為0,代理服務器也可以改變。
  • 事務標識:是一個由客戶設置並由服務器返回的32 bit整數。客戶用它對請求和應答進行匹配。對每個請求,客戶應該將該字段設置為一個隨機數。
  • 秒數:客戶設置一個時間值,超過時間值,備用服務器才會響應。   
  • 客戶IP地址:如果客戶知道自己IP地址,填入實際IP,否則填0。
  • 你的IP地址:由服務器填入客戶的IP地址。
  • 服務器IP地址:服務器填寫。
  • 網關IP地址:代理服務器填寫自己的IP。
  • 客戶主機硬件地址:客戶填寫,與以太網幀中的相同。
  • 服務器主機名:是一個空值終止串,由服務器填寫。
  • 引導文件名:用於引導的文件名和所在路徑。
  • 特定廠商信息:用於擴展BOOTP。

 

協議流程

 

  1. 由BOOTP啟動代碼來啟動BOOTP客戶端,這個時候BOOTP客戶端還沒有IP地址。

  2. BOOTP客戶端使用廣播,源IP地址為0.0.0.0,目的IP地址為255.255.255.255,向網絡中發出IP地址查詢要求。

  3. 運行BOOTP協議的服務器接收到這個請求,會根據請求中提供的MAC地址找到BOOTP客戶端,並發送一個含有IP地址、服務器IP地址、網關等信息的回應幀。

  4. BOOTP客戶端會根據該回應幀來獲得自己的IP地址並通過專用文件服務器(如TFTP服務器)下載啟動鏡像文件,模擬成磁盤來完成啟動

 

端口號

  BOOTP服務器67號端口,BOOTP客戶端68號端口。

  選擇兩個端口而不是僅選擇一個端口為BOOTP服務器用的原因是:服務器的應答可以進行廣播。

  1. 當服務器廣播,客戶端使用臨時端口時。廣播也能被其他的主機中碰巧使用相同臨時端口的應用進程接收到。因此,采用隨機端口(即臨時端口)對廣播來說是一個不好的選擇。
  2. 客戶端和服務器使用同一個端口時。可以,此時網絡內的所有服務器會被喚醒來查看這個廣播,若是應答服務器就不做處理。
  3. 多個客戶端同時引導時,且服務器廣播所有應答。這樣每個客戶都會收到其他客戶的應答。客戶可以通過BOOTP首部中的事務標識字段來確認應答是否與請求匹配,或者可以通過檢查返回的客戶硬件地址加以區分。

 

BOOTP中繼

  路由器(也稱作“ BOOTP 中繼代理”),當收到一個BOOTP請求時,中繼代理將它的IP地址填入收到BOOTP請求中的“網關IP地址字段”,然后將該請求發送到真正的BOOTP服務器(由中繼代理填入網關字段的地址是收到的BOOTP請求接口的IP地址)。該代理中繼還將跳數字段值加1(這是為防止請求被無限地在網絡內轉發)。既然發出的請求是一個單播的數據報(與發起的客戶的請求是廣播的相反),它能按照一定的路由通過其他的路由器到達真正的BOOTP服務器。真正的BOOTP服務器收到這個請求后,產生BOOTP應答,並將它發回中繼代理,而不是請求的客戶。既然請求網關字段不為零,真正的BOOTP服務器知道這個請求是經過轉發的。中繼代理收到應答后將它發給請求的客戶。

 

特定廠商信息

  如果有信息要提供,這個區域的前4個字節被設置為I P地址99.130.83.99。這可稱作魔術甜餅,表示該區域內包含信息。

 

 

 

BOOTP vs. RARP

  無盤系統用RARP獲取IP存在的問題:

  • IP地址是返回的唯一結果,沒有其他信息返回。
  • RARP使用鏈路層廣播,路由器不會轉發該請求,使得在每個實際網絡中得設置一個RARP服務器。

 

BOOTP vs. DHCP 

  1. DHCP可以說是BOOTP的增強版本,比較起BOOTP,DHCP透過"租約"的概念,有效且動態的分配客戶端的IP設定,而且,作為兼容考慮,DHCP也完全照顧了BOOTP Client的需求。
  2. 必須至少有一台DHCP工作在網絡上面,它會監聽網絡的DHCP請求。它提供兩種IP定位方式:自動分配,一旦DHCP客戶端第一次成功的從DHCP服務器租用到IP地址之后,就永遠使用這個地址;動態分配,當DHCP第一次從HDCP服務器端租用到IP地址之后,並非永久的使用該地址,只要租約到期,客戶端就得釋放。
  3. DHCP除了可以動態的進行設定IP地址之外,還能夠直接將一些IP保留下來給一些特殊用途的機器進行使用。另外一個方面,它能夠直接按照硬件地址來固定的分配IP地址。
  4. DHCP與BOOTP的不同點在於,BOOTP也可以完成給主機分配IP地址的任務,但它要求主機的硬件地址必須被手工輸入到BOOTP表中。可以講DHCP看成一個動態的BOOTP。但是,BOOTP還可以將用來引導主機的操作系統發送給主機。而DHCP不可以。

 

 

參考

https://baike.baidu.com/item/BOOTP/610878?fr=aladdin

https://zhidao.baidu.com/question/6070483.html

TCP/IP詳解卷1

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM