国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区

掃一掃
關注微信公眾號

DHCP的工作原理
2006-04-06   網絡

DHCP 的工作原理
  視乎客戶端是否第一次登錄網路﹐DHCP 的工作形式會有所不同。
  第一次登錄的時候﹕
  1. 尋找 Server。當 DHCP 客戶端第一次登錄網路的時候﹐也就是客戶發現本機上沒有任何 IP 資料設定﹐它會向網路發出一個 DHCPDISCOVER 封包。因為客戶端還不知道自己屬于哪一個網路﹐所以封包的來源位址會為 0.0.0.0 ﹐而目的位址則為 255.255.255.255 ﹐然后再附上 Dhcpdiscover 的信息﹐向網路進行廣播。
  在 Windows 的預設情形下,Dhcpdiscover 的等待時間預設為 1 秒﹐也就是當客戶端將第一個 Dhcpdiscover 封包送出去之后﹐在 1 秒之內沒有得到回應的話﹐就會進行第二次 Dhcpdiscover 廣播。若一直得不到回應的情況下﹐客戶端一共會有四次 Dhcpdiscover 廣播(包括第一次在內)﹐除了第一次會等待 1 秒之外﹐其余三次的等待時間分別是 9﹑13﹑16 秒。如果都沒有得到 DHCP 伺服器的回應﹐客戶端則會顯示錯誤信息﹐宣告 Dhcpdiscover 的失敗。之后﹐基于使用者的選擇﹐系統會繼續在 5 分鐘之后再重復一次 Dhcpdiscover 的過程。
  2. 提供 IP 租用位址。當 DHCP 伺服器監聽到客戶端發出的 Dhcpdiscover 廣播后﹐它會從那些還沒有租出的位址范圍內﹐選擇最前面的的空置 IP ,連同其它 TCP/IP 設定,回應給客戶端一個 DHCPOFFER 封包。
  由于客戶端在開始的時候還沒有 IP 位址﹐所以在其 Dhcpdiscover 封包內會帶有其 MAC 位址信息﹐并且有一個 XID 編號來辨別該封包﹐DHCP 伺服器回應的 Dhcpoffer 封包則會根據這些資料傳遞給要求租約的客戶。根據伺服器端的設定﹐Dhcpoffer 封包會包含一個租約期限的信息。
  3. 接受 IP 租約。如果客戶端收到網路上多臺 DHCP 伺服器的回應﹐只會挑選其中一個 Dhcpoffer 而已(通常是最先抵達的那個)﹐并且會向網路發送一個Dhcprequest廣播封包﹐告訴所有 DHCP 伺服器它將指定接受哪一臺伺服器提供的 IP 位址。
  同時﹐客戶端還會向網路發送一個 ARP 封包﹐查詢網路上面有沒有其它機器使用該 IP 位址﹔如果發現該 IP 已經被占用﹐客戶端則會送出一個 DHCPDECLINE 封包給 DHCP 伺服器﹐拒絕接受其 Dhcpoffer ﹐并重新發送 Dhcpdiscover 信息。
  事實上﹐并不是所有 DHCP 客戶端都會無條件接受 DHCP 伺服器的 offer ﹐尤其這些主機安裝有其它 TCP/IP 相關的客戶軟體。客戶端也可以用 Dhcprequest 向伺服器提出 DHCP 選擇﹐而這些選擇會以不同的號碼填寫在 DHCP Option Field 里面﹕   


  

換一句話說﹐在 DHCP 伺服器上面的設定﹐未必是客戶端全都接受﹐客戶端可以保留自己的一些 TCP/IP 設定。而主動權永遠在客戶端這邊。
  4.租約確認。當 DHCP 伺服器接收到客戶端的 Dhcprequest 之后﹐會向客戶端發出一個 DHCPACK 回應﹐以確認 IP 租約的正式生效﹐也就結束了一個完整的 DHCP 工作過程。
  如上的工作流程如下圖:   


  

DHCP 發放流程
  第一次登錄之后﹕
  一旦 DHCP 客戶端成功地從伺服器哪里取得 DHCP 租約之后﹐除非其租約已經失效并且 IP 位址也重新設定回 0.0.0.0 ﹐否則就無需再發送 Dhcpdiscover 信息了﹐而會直接使用已經租用到的 IP 位址向之前之 DHCP 伺服器發出 Dhcprequest 信息﹐DHCP 伺服器會盡量讓客戶端使用原來的 IP 位址﹐如果沒問題的話﹐直接回應 Dhcpack 來確認則可。如果該位址已經失效或已經被其它機器使用了﹐伺服器則會回應一個 DHCPNACK 封包給客戶端﹐要求其從新執行 Dhcpdiscover。
  至于 IP 的租約期限卻是非常考究的﹐并非如我們租房子那樣簡單﹐ 以 NT 為例子﹕DHCP 工作站除了在開機的時候發出 dhcprequest 請求之外﹐在租約期限一半的時候也會發出 dhcprequest ﹐如果此時得不到 DHCP 伺服器的確認的話﹐工作站還可以繼續使用該 IP ﹔然后在剩下的租約期限的再一半的時候(即租約的75%)﹐還得不到確認的話﹐那么工作站就不能擁有這個 IP 了。至于為什么不是到租約期限完全結束才放棄 IP 呢﹖﹐對不起﹐小弟也是不學無術之人﹐沒有去深究了﹐只知道要回答 MCSE 題目的時候﹐您一定要記得 NT 是這么工作的就是了。
  要是您想退租,可以隨時送出 DHCPLEREASE 命令解約﹐就算您的租約在前一秒鐘才獲得的。


  跨網路的 DHCP 運作
  從前面描述的過程中,我們不難發現:DHCDISCOVER 是以廣播方式進行的,其情形只能在同一網路之內進行﹐因為 router 是不會將廣播傳送出去的。但如果 DHCP 伺服器安設在其它的網路上面呢﹖由于 DHCP 客戶端還沒有 IP 環境設定﹐所以也不知道 Router 位址﹐而且有些 Router 也不會將 DHCP 廣播封包傳遞出去﹐因此這情形下 DHCPDISCOVER 是永遠沒辦法抵達 DHCP 伺服器那端的,當然也不會發生 OFFER 及其他動作了。要解決這個問題,我們可以用 DHCP Agent (或 DHCP Proxy )主機來接管客戶的 DHCP 請求﹐然后將此請求傳遞給真正的 DHCP 伺服器﹐然后將伺服器的回復傳給客戶。這里﹐Proxy 主機必須自己具有路由能力,且能將雙方的封包互傳對方。
  若不使用 Proxy,您也可以在每一個網路之中安裝 DHCP 伺服器﹐但這樣的話﹐一來設備成本會增加﹐而且﹐管理上面也比較分散。當然啰﹐如果在一個十分大型的網路中﹐這樣的均衡式架構還是可取的。端視您的實際情況而定了。
 

熱詞搜索:

上一篇:DHCP協議點滴
下一篇:TCP/IP安全

分享到: 收藏
主站蜘蛛池模板: 湄潭县| 夏河县| 保靖县| 工布江达县| 贡觉县| 芮城县| 商城县| 枣庄市| 渝北区| 达孜县| 南江县| 绥江县| 三门县| 安福县| 错那县| 湖口县| 南投县| 漯河市| 小金县| 休宁县| 扎兰屯市| 泰宁县| 潢川县| 渑池县| 古蔺县| 陈巴尔虎旗| 右玉县| 汕尾市| 房产| 平顺县| 济阳县| 灵璧县| 洪江市| 大理市| 渭源县| 玛曲县| 象州县| 赫章县| 来安县| 呼玛县| 宁德市|