2020上海交通大學考研專業課之DHCP

今天,來討論一下今年考研專業課中出現的另一個知識點:DHCP。交大推薦的課本上對這個知識點沒有詳細說過,所以考到的時候我也稍微有點懵,不過好歹在謝希仁的《計算機網絡》書上見到過這個點,但也就是提到了一下,我對這個協議的詳細瞭解還建立在兩年前學CCNA的時候,培訓課上老師講過這個知識點,還有點印象。交大每年專業課都會有一些課本上沒有講過的知識點,應該就是考察基本面吧~

卷子上的題是這樣問的:RARP的功能是什麼,和哪個協議的功能比較類似,說明兩個協議的典型工作過程,說明二者在實現和應用上的區別?

這個題目其實就是考RARP和DHCP的原理和區別

下面我先介紹RARP的功能原理和DHCP的功能原理,然後再來分析二者的區別和聯繫。

RARP

即反向地址轉換協議。它允許局域網的物理機器從網關服務器的 ARP 表或者緩存上請求其 IP 地址。網絡管理員在局域網網關路由器裏創建一個表以映射物理地址(MAC)和與其對應的 IP 地址。當設置一臺新的機器時,其 RARP 客戶機程序需要向路由器上的 RARP 服務器請求相應的 IP 地址。假設在路由表中已經設置了一個記錄,RARP 服務器將會返回 IP 地址給機器,此機器就會存儲起來以便日後使用。 RARP 可以使用於以太網、光纖分佈式數據接口及令牌環LAN。

上面給出的是搜狗百科的定義,說白了,其實它就是ARP的逆過程。ARP的功能是根據用戶的IP地址來解析出對應的MAC地址。那麼RARP就是根據MAC地址去反向解析出IP地址。只不過需要注意的一個點就是,主機的物理地址(MAC地址)在出廠時就有的,而IP地址則是之後在用戶需要聯網時,爲用戶分配的。所以ARP的過程只是根據IP地址去找出對應MAC地址的過程。而RARP則是一個請求RARP服務器爲用戶分配IP地址的過程。所以,從這個角度來說,RARP的功能類似於DHCP。而且現在由於DHCP的存在,它基本已經代替了RARP的功能,所以現在RARP已經基本不怎麼用了。所以現在一些有關網絡的課本,對這個協議也只是提一提它的功能,並沒有詳細說明。

工作原理

  1. 發送主機發送一個本地的RARP廣播,在此廣播包中,聲明自己的MAC地址並且請求任何收到此請求的RARP服務器分配一個IP地址
  2. 本地網段上的RARP服務器收到此請求後,檢查其RARP列表,查找該MAC地址對應的IP地址
  3. 如果存在,RARP服務器就給源主機發送一個響應數據包並將此IP地址提供給對方主機使用
  4. 如果不存在,RARP服務器對此不做任何的響應
  5. 源主機收到從RARP服務器的響應信息,就利用得到的IP地址進行通訊;如果一直沒有收到RARP服務器的響應信息,表示初始化失敗
下面重點來說一下DHCP這個協議

DHCP

動態主機配置協議(Dynamic Host Configuration Protocol),簡稱DHCP,是一個應用於局域網的網絡協議,該協議允許服務器向客戶端動態分配IP地址和配置信息。
該協議位於OSI模型的應用層,使用UDP協議工作,主要有兩個用途:

  • 用於內部網或網絡服務供應商自動分配IP地址給用戶
  • 用於內部網管理員作爲對所有電腦作中央管理的手段。

基本功能

通常被應用在大型的局域網絡環境中,主要作用是集中的管理分配IP地址,使網絡環境中的主機動態的獲得IP地址、Gateway地址、DNS服務器地址等信息,並能夠提升地址的使用率

DHCP協議採用客戶端/服務器模型,主機地址的動態分配任務由網絡主機驅動。當DHCP服務器接收到來自網絡主機申請地址的信息時,纔會向網絡主機發送相關的地址配置等信息,以實現網絡主機地址信息的動態配置。DHCP具有以下功能:

  • 保證任何IP地址在同一時刻只能由一臺DHCP客戶機所使用
  • DHCP應當可以給用戶分配永久固定的IP地址
  • DHCP應當可以同用其他方法獲得IP地址的 主機共存(如手工配置IP地址的主機)
  • DHCP 服務器應當向現有的BOOTP 客戶端提供服務(對於BOOTP,一會兒再做說明)

DHCP的工作原理

DHCP工作原理圖

DHCP詳細的交互過程如下:

DHCP交互過程

  • DHCP Client以廣播的方式發出DHCP Discover報文
  • 所有的DHCP Server都能夠接收到DHCP Client發送的DHCP Discover報文,所有的DHCP Server都會給出響應,向DHCP Client發送一個DHCP Offer報文
    DHCP Offer報文中“Your(Client) IP Address”字段就是DHCP Server能夠提供給DHCP Client使用的IP地址,且DHCP Server會將自己的IP地址放在“option”字段中以便DHCP Client區分不同的DHCP Server。DHCP Server在發出此報文後會存在一個已分配IP地址的紀錄
  • DHCP Client只能處理其中的一個DHCP Offer報文,一般的原則是DHCP Client處理最先收到的DHCP Offer報文
    DHCP Client會發出一個廣播的DHCP Request報文,在選項字段中會加入選中的DHCP Server的IP地址和需要的IP地址
  • DHCP Server收到DHCP Request報文後,判斷選項字段中的IP地址是否與自己的地址相同。如果不相同,DHCP Server不做任何處理只清除相應IP地址分配記錄;如果相同,DHCP Server就會向DHCP Client響應一個DHCP ACK報文,並在選項字段中增加IP地址的使用租期信息
  • DHCP Client接收到DHCP ACK報文後,檢查DHCP Server分配的IP地址是否能夠使用。如果可以使用,則DHCP Client成功獲得IP地址並根據IP地址使用租期自動啓動續延過程;如果DHCP Client發現分配的IP地址已經被使用,則DHCP Client向DHCPServer發出DHCP Decline報文,通知DHCP Server禁用這個IP地址,然後DHCP Client開始新的地址申請過程
  • DHCP Client在成功獲取IP地址後,隨時可以通過發送DHCP Release報文釋放自己的IP地址DHCP Server收到DHCP Release報文後,會回收相應的IP地址並重新分配
在協商過程中,如果DHCP客戶端發送的REQUEST消息中的地址信息不正確,如客戶端已經遷移到新的子網或者租約已經過期,DHCP服務器會發送DHCPNAK消息給DHCP客戶 端,讓客戶端重新發起地址請求過程。

DHCP分配地址的三種機制

  • 自動分配方式(Automatic Allocation),DHCP服務器爲主機指定一個永久性的IP地址,一旦DHCP客戶端第一次成功從DHCP服務器端租用到IP地址後,就可以永久性的使用該地址
  • 動態分配方式(Dynamic Allocation),DHCP服務器給主機指定一個具有時間限制的IP地址,時間到期或主機明確表示放棄該地址時,該地址可以被其他主機使用
  • 手工分配方式(Manual Allocation),客戶端的IP地址是由網絡管理員指定的,DHCP服務器只是將指定的IP地址告訴客戶端主機

DHCP應用中涉及到的三類設備

  • DHCP客戶端:在支持DHCP功能的網絡設備上將指定的端口作爲DHCP Client,通過DHCP協議從DHCP Server動態獲取IP地址等信息,來實現設備的集中管理。一般應用於網絡設備的網絡管理接口上
  • DHCP服務器:DHCP服務器指的是由服務器控制一段IP地址範圍,客戶端登錄服務器時就可以自動獲得服務器分配的IP地址和子網掩碼
  • DHCP中繼代理:DHCP中繼代理,就是在DHCP服務器和客戶端之間轉發DHCP數據包。當DHCP客戶端與服務器不在同一個子網上,就必須有DHCP中繼代理來轉發DHCP請求和應答消息。DHCP中繼代理的數據轉發,與通常路由轉發是不同的,通常的路由轉發相對來說是透明傳輸的,設備一般不會修改IP包內容。而DHCP中繼代理接收到DHCP消息後,重新生成一個DHCP消息,然後轉發出去
    DHCP中繼代理

在DHCP客戶端看來,DHCP中繼代理就像DHCP服務器;在DHCP服務器看來,DHCP中繼代理就像DHCP客戶端。

DHCP客戶端可以帶來如下好處:

  • 降低了配置和部署設備時間

  • 降低了發生配置錯誤的可能性

  • 可以集中化管理設備的IP地址分配

DHCP的應用場合

什麼時候最好使用DHCP?

**公司內部很多 Laptop 計算機使用的場合!**因爲 Laptop在使用上,當設定爲DHCP client 的時候,那麼只要它連接上的網域裏面有一部可以上網的 DHCP服務器 ,那部Laptop也就可以連接上 Internet 了!

網域內計算機數量相當的多時。另外一個情況就是網域內計算機數量相當龐大時,大到沒有辦法一個一個的進行說明來設定他們自己的網絡參數,這個時候爲了省麻煩,還是架設DHCP 來的方便。

什麼情況下不建議使用 DHCP 主機?

在網域內的 計算機,有很多機器其實是做爲 主機的用途,很少Client 需求,那麼似乎就沒有必要架設 DHCP。

BOOTP和DHCP的區別與聯繫

BOOTP比DHCP出現的早,和DHCP有一些類似的處理過程。BOOTP主要用於無盤工作站。無盤工作站沒有硬盤和操作系統,但維護方便,很多超市的收銀終端使用的就是這種工作站。

相同點

  • DHCP和BOOTP都基於客戶端/服務器模式
  • DHCP和BOOTP都使用UDP的67和68號端口
  • 在DHCP和BOOTP中,服務器負責IP地質的分配和管理,每一個分配的IP地質都存儲在服務器的數據集中,叫做捆綁,客戶端使用DHCP獲取IP地址信息

不同點

  • BOOTP中預先手工配置主機信息,當BOOTP客戶端請求IP地址時,BOOTP服務器在預先配置的信息中搜索和請求客戶端MAC地址相匹配的條目。如果該條目存在,和這個條目相對應的IP地址被返回給客戶端。這意味着,IP地址和MAC地址的捆綁條目必須先被預先配置在BOOTP服務器上
  • DHCP根據租約機制允許客戶端續租或重新分配網絡地址。這種租約機制允許一個IP地址在不同的時間可以被分配給多個客戶端使用,也允許一個客戶端移到另一個子網時重新獲取新的IP地址,還允許客戶端刷新新租約或保持相同的IP地址。BOOTP不使用租約機制,BOOTP中一個客戶端被分配的IP地址不能在被分配給其他的客戶端。
  • BOOTP只能分配4個參數:IP地址,子網掩碼,網關,DNS。DHCP除了提供4個基本的參數外還可以提供額外的配置參數,諸如WINS和域名等

從上面對於RARP和DHCP的介紹,我們現在可以來總結性的談一下二者在應用上的區別:

  • RARP在功能上有點類似於DHCP協議,確切的說DHCP是BOOTP協議的升級,而BOOTP在某種意義上又是RARP協議的升級
  • RARP協議屬於數據鏈路層協議,而BOOTP和DHCP則屬於應用層協議
  • RARP報文封裝在以太網數據幀中,而BOOTP/DHCP報文則封裝在UDP報文中
  • RARP只能實現簡單的從MAC地址到IP地址的查詢工作,RARP server上的MAC地址和IP地址是必須事先靜態配置好的,但DHCP卻可以實現除靜態分配外的動態IP地址分配以及IP地址租期管理等等相對複雜的功能
  • RARP是早期提供的通過硬件地址獲取IP地址的解決方案,但它有自己的侷限性,比如RARP客戶與RARP服務器不在同一網段,中間有路由器等設備連接,這時候利用RARP就顯得無能爲力,因爲RARP請求報文不能通過路由器,BOOTP/DHCP提供了很好的解決方法
  • RARP使用的是和ARP相同的消息,只不過它的消息中列出的目標MAC地址是其自己的MAC地址,預先配置好的RARP服務器(必須處於客戶端同一子網中)接收請求並進行查詢。如果目標MAC地址的匹配到RARP服務器就發送ARP響應(包含配置的IP地址在其源IP地址字段中)
  • DHCP大大減輕了配置工作,因爲它是動態分配的。在DHCP中,不需要預先配置MAC地址,你只需要配置一個地址池,DHCP會動態地在地址池中選擇地址進行分配

這就是關於這個知識點的一些總結,如果還想了解一些考研基礎課的經驗和學習方法,或者瞭解一些電子產品的推薦,我會把這些非技術類的文章寫在下面的公衆號中,有興趣的小夥伴兒歡迎關注!!

微信公衆號

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章