csdn lidp ?[http://blog.csdn.net/perfectpdl](http://blog.csdn.net/perfectpdl)
與RARP類似,bootp和dhcp都是用于獲取主機ip地址的協議,三者都是基于客戶服務器模式,但由于RARP在低層操作,使用它就必須訪問網絡硬件,因此應用編程人員很難或者不太可能構造一個服務器。bootp及dhcp應運而生,bootp協議早與dhcp,但而這都是構建在傳輸層udp之上的協議,dhcp對bootp協議做了一些擴展及改進而成為事實上的標準而被廣泛使用。
bootp協議使用udp傳遞報文,bootp獲取自身地址的方式是構建在ip有限廣播基礎上的,即一個應用程序在發現本地網絡活機器的ip地址前,可使用一個ip廣播在本地廣播數據報,在同一物理網絡上的服務器將響應請求。
由于bootp構建在udp協議上,所以不可避免存在丟包,亂序現象,bootp使用傳統的超時和重傳機制解決此問題。
bootp協議設計用于相對靜態的環境,其中每臺機器都有一個永久連接,管理人員建立一個bootp配置問價,該文件定義了每臺機器的異步bootp參數,由于配置通常保存不變,典型情況下配置將保持數星期不變,很明顯這種靜態配置方式有其局限性,比如計算機經常移動。
所以為處理自動地址分配,ietf 設計了一個新協議,即動態主機配置協議DHCP.
DHCP可以使主機使用一個報文獲取所需的全部配置信息,如除了獲取ip地址外,還能獲取子網掩碼,dhcp同樣為客戶服務其架構,所以為了使用dhcp的動態地址分配機制,管理員必須配置dhcp服務器,使其能提供一組ip地址,任何時候一旦有新的計算機連到網絡上,該計算機就與服務器聯系,并申請一個地址,服務器從管理員指定的地址中哦給選擇一個地址,并將它分配給計算機。
dhcp客戶端工作過程:
一臺主機通過把報文廣播給本地網上服務器而稱為客戶端,然后該主機收集服務器提供的地址,從中選擇一個地址并驗證服務器是否接受。
雖然dhcp可以獲取主機的ip地址,但hdcp不與域名系統dns交互,因此,主機名與分配給主機的ip地址必須單獨處理,如果要支持永久主機名,每當主機獲取新的ip地址時dns就要動態更新名字到地址的綁定,這需要hdcp與dns交互,目前還沒有動態更新dns的協議,因此還不會有dhcp在更新主機ip地址時維持永久主機名的協議。