TCP/IP之DHCP協議

首先,我們考慮一個主機如何獲取IP地址?

有兩種獲取方法,一種是靜態配置,就是從網絡管理員獲取一個給定的IP地址,也叫硬編碼,還有一種就是動態配置IP地址,這就是我們即將要講的DHCP協議,動態主機配置協議。

靜態配置

硬編碼。

image.png

硬編碼,就是像windows系統中選擇給定的IP地址,我們需要指定IP地址,子網掩碼和默認網關。默認網關是什么呢?默認網關就是屬于這個子網的所有主機,如果將來要離開這個子網,就會被統一轉發給這個默認網關指定的IP,我們可以認為它是一個轉發路由。如果有多個默認網關,則可以選擇其中一個就可以了。

image.png

DHCP協議

  • 從服務器動態獲取:
    ? IP地址
    ? 子網掩碼
    ? 默認網關地址
    ? DNS服務器名稱與IP地址

  • “ 即插即用”

  • 允許地址重用

  • 支持在用地址續租

  • 支持移動用戶加入網絡

DHCP協議交換信息的基本步驟

  • 主機廣播 “ DHCP discover” (發現報文)
  • DHCP服務器利用 “ DHCP offer” (提供報文) 進行響應
  • 主機請求IP地址: “ DHCP request” (請求報文)
  • DHCP服務器分配IP地址: “ DHCP ack” (確認報文)

DHCP工作過程示例:

image.png
  • DHCP discover
    客戶端源地址四個0表示本機,端口號68和服務器的67都是DHCP指定的。發送一個廣播報文。在這個網絡中的所有主機包括服務器都會收到這個發現報文,但是只有DHCP服務器才會對其進行響應。

  • DHCP offer
    我們看到服務器的提供報文里,也是通過廣播地址發送的,這很容易理解,因為這個是時候請求主機還沒有IP地址,所以需要進行廣播,請求主機才能夠收到,提供報文會將所分配的IP地址加在報文里,圖中的223.1.2.4。那么主機如何知道這是它請求的服務器發來的提供報文呢,通過transaction ID來確認。

  • DHCP request
    這里有一個問題,就是為什么主機發送依然是采取廣播的方式,實際上這里的作用是,因為整個網絡中,不止一個DHCP服務器,所以采取廣播的方式,同時也在告訴其他的dhcp服務器,我現在已經確定了我所需要請求的dhcp服務器了,你們別給我發消息了。

  • DHCP ack
    服務器收到請求后,會發送確認報文,主機收到之后,就確認可以使用223.1.2.4作為它的IP地址了。

我們可以看到實際上dhcp之間的信息交換,可以分為兩塊,一塊是主機線廣播確認找到提供IP的dhcp服務器,然后再從確認的dhcp服務器收取IP地址。

DHCP協議在應用層實現

  • 請求報文封裝到UDP數據報中
  • IP廣播
  • 鏈路層廣播(e.g. 以太網廣播)
image.png
  • DHCP服務器構造ACK報文
  • 包括分配給客戶的IP地址、子網掩碼、默認網關、 DNS服務器地址
image.png
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 個人認為,Goodboy1881先生的TCP /IP 協議詳解學習博客系列博客是一部非常精彩的學習筆記,這雖然只是...
    貳零壹柒_fc10閱讀 5,092評論 0 8
  • 1.這篇文章不是本人原創的,只是個人為了對這部分知識做一個整理和系統的輸出而編輯成的,在此鄭重地向本文所引用文章的...
    SOMCENT閱讀 13,134評論 6 174
  • 前言 寫這篇文章的緣由是客戶提出的一個問題:客戶使用公司的Wi-Fi產品的App,有兩個設備出現了問題,點擊App...
    Noskthing閱讀 2,982評論 2 23
  • 名詞延伸 通俗的說,域名就相當于一個家庭的門牌號碼,別人通過這個號碼可以很容易的找到你。如果把IP地址比作一間房子...
    楊大蝦閱讀 20,636評論 2 56
  • Android 開發中需要處理圖片的地方很多,但如何針對 Android 平臺的特性,將圖片這件不簡單的事情,做到...
    _qisen閱讀 957評論 0 5