文章目錄
- 一、應用層概述
- 1.1、C/S架構
- 1.2、P2P架構
- 二、動態主機配置協議DHCP
- 2.1、DHCP發現報文
- 2.2、DHCP提供報文
- 2.3、DHCP請求報文
- 2.4、DHCP確認報文
- 2.5、DHCP的續約與終止
- 總結
一、應用層概述
??應用層
位于計算機網絡結構的最上層,用于解決應用進程的交互以實現特定網絡應用的問題。萬維網WWW,域名系統DNS,
動態主機配置協議DHCP,電子郵件,文件傳送FTP和P2P文件共享,多媒體網絡應用,都是屬于應用層
的范疇。
??目前應用層
流行的兩種架構:C/S和P2P。
1.1、C/S架構
??C/S架構的全稱是服務器/客戶端架構
,即將網絡中的應用劃分為兩大類,一類是服務器,一類是客戶端。客戶端向服務器請求,服務器給予客戶端響應。
??服務端具有固定的IP和端口,并且應該長期處于運行狀態。C/S架構是服務集中型的,體現在一臺服務器要接受N個客戶端的請求并處理,客戶端必須知道服務器的地址,而服務器不關心客戶端的地址。
1.2、P2P架構
??相比較于C/S架構,P2P架構中的每一個應用是對等的,體現在每個應用既有可能是服務方,也有可能是客戶方。例如E從D下載文件,同時F又從E下載文件。
??系統增加對等方,不會造成資源的緊張,因為增加一個服務請求者的同時,也是增加了一個服務的提供者。
二、動態主機配置協議DHCP
??在網絡中,用戶主機如果需要訪問Web服務器,需要進行IP地址,子網掩碼,默認網關,DNS服務器地址等一系列的設置。如果手動地去配置,在現有的網絡規模中是不現實的。
??解決手動配置的問題,可以引入DHCP服務器。在其中設置好其他主機的配置信息,網絡中的各個主機啟動后訪問DHCP服務器,向服務器請求自己的配置信息,而不用手動配置。
??DHCP服務進程
,運行在DHCP服務器上。DHCP客戶進程
,運行在用戶主機上。為了簡化,本筆記中后續的DHCP服務進程
和DHCP客戶進程
,都簡稱為客戶進程和服務進程,DHCP服務器
和用戶主機
,都簡稱為服務和客戶。
??DHCP是應用層的協議,使用的是運輸層的UDP協議作為支持,在運輸層會被封裝為UDP數據報,服務使用的端口是67,客戶使用的端口是68
2.1、DHCP發現報文
??客戶
廣播發送DHCP發現報文
,源IP地址為0.0.0.0
。因為目前用戶主機還沒有被分配IP地址。目標地址為255.255.255.255
。因為目前主機并不知道網絡中有哪些具體的服務
。
??網絡中的所有設備都會收到該IP數據報。并對其層層解封出有DHCP發送報文的UDP數據報:
- 如果是其他
客戶進程
監聽到了,丟棄該報文,因為客戶進程沒有監聽67端口。 - 如果是
服務進程
監聽到了,會接受該報文,并作出響應。
??DHCP發現報文
中,還帶有事務ID和客戶
的MAC地址。
2.2、DHCP提供報文
??服務
接收到報文后,根據其中封裝的客戶
的MAC地址,查找自己的數據庫,查詢是否有針對該MAC地址的配置信息。
- 如果有,使用配置信息構建并發送DHCP提供報文。
- 如果沒有,就使用默認的配置信息構建并發送DHCP提供報文。
??然后發送DHCP提供報文
,該報文的源IP地址為服務
的地址,目標IP地址為廣播地址。(因為此時客戶
還沒有獲取IP地址,為了使客戶
收到只能使用廣播)
??同樣地網絡中的所有設備都會收到該IP數據報。并對其層層解封出有DHCP提供報文的UDP數據報。
- 如果是其他
客戶進程
監聽到了,會接受該報文,并作出響應。 - 如果是
服務進程
監聽到了,會丟棄該報文,因為服務進程沒有監聽68端口。
??客戶
還會根據事務ID,判斷該報文是否是自己發送的請求報文的響應,除了事務ID,DHCP提供報文
還有其他信息:
??客戶
如果收到了多個服務
的響應報文,則會從其中選擇一個。(通常選擇先到達的。)并向選擇的服務
發送DHCP請求報文
。
2.3、DHCP請求報文
??源地址依舊是0.0.0.0,此時客戶
還不能使用服務
的DHCP提供報文
中配置信息的IP地址,因為要再次向選擇的服務
發起確認。
這時客戶不是已經知道具體選擇了哪一臺DHCP服務了嗎,為什么還需要通過廣播的方式?
此時的客戶端無有效 IP,無法用單播發起定向通信,只能廣播。這一點,RFC 2131 明確規定:客戶端 在未完成 DHCP 過程前,不能單播通信。)(并且需要通知所有服務器,告訴所有 DHCP Server:我選定了誰,其他人請釋放資源。有些網絡拓撲中,中繼或交換機需要廣播才能正確處理
2.4、DHCP確認報文
??假設客戶
選擇服務1
作為自己的服務
。并且服務1
接受該請求,則服務1
會向客戶
發送請求的DHCP確認報文
,源IP地址為自身的IP,目的IP地址依舊是廣播地址, 這時客戶
才可以使用租用的IP地址。
??如果客戶
通過ARP檢測發現有占用的情況,客戶
就會給服務發送撤銷報文,然后重新走DHCP發現報文
的步驟:
2.5、DHCP的續約與終止
??當租用期限過了一半時,客戶
會向服務
發送DHCP請求報文
,請求更新租用期。這時的源IP地址為客戶租用到的IP地址,目的IP地址為服務IP地址。
- 如果
服務
同意續約,則發送DHCP確認報文
,客戶
得到新的租用期。 - 如果
服務
不同意續約,則發送DHCP否認報文
,客戶
立即停止租用該IP,走DHCP發現報文
的步驟。 - 如果
服務
不響應,則在0.85的租用期時間,客戶
發送DHCP請求報文
- 租用期滿,
服務
依舊不響應,客戶
立即停止租用該IP,走DHCP發現報文
的步驟。
- 租用期滿,
??并且客戶
可以隨時停止DHCP的租用,需要發送DHCP釋放報文
。
??服務給客戶挑選IP地址時,使用ARP保證地址不被占用。客戶在使用該IP之前,也會再次使用ARP進行檢查