為了把協(xié)議軟件做成通用的和便于移植,協(xié)議軟件的編寫者不會把所有的細(xì)節(jié)都固定在源代碼中。相反,他們把協(xié)議軟件參數(shù)化。這樣在很多臺計算機(jī)上可以使用同一個經(jīng)過編譯的二進(jìn)制代碼。一臺計算機(jī)和另一臺計算機(jī)的許多區(qū)別,都可以通過一些不同的參數(shù)來體現(xiàn)。在協(xié)議軟件運行之前必須給每一個參數(shù)賦值。
在協(xié)議軟件中給這些參數(shù)賦值的動作叫做協(xié)議配置。連接到因特網(wǎng)的協(xié)軟件需要配置的項目包括:
①IP地址
②子網(wǎng)掩碼
③默認(rèn)路由器IP地址
④(本地)域名服務(wù)器IP地址
2.DHCP
用人工的方式給上面的參數(shù)賦值很麻煩,而且容易出錯,所以采用動態(tài)主機(jī)配置協(xié)議DHCP(Dynamic HostConfiguration Protocol)。
DHCP使用客戶—服務(wù)器方式。需要IP地址的主機(jī)在啟動時就想DHCP服務(wù)器廣播發(fā)送發(fā)現(xiàn)報文(DHCPDISCOVER),這是主機(jī)就成為DHCP的客戶。廣播發(fā)現(xiàn)報文是運用受限的廣播(255.255.255.255),因為主機(jī)還不知道DHCP服務(wù)器在哪里,并且此時的主機(jī)是沒有IP地址的,所以將發(fā)現(xiàn)報文的源IP地址設(shè)置為0.當(dāng)DHCP收到發(fā)現(xiàn)報文之后,DHCP服務(wù)器先在其數(shù)據(jù)庫中查找該計算機(jī)的配置信息,若找到就返回找到的信息。若沒有找到,則從服務(wù)器的IP地址池(addresspool)中取一個地址分配給該計算機(jī)。DHCP服務(wù)器的回答報文叫做提供報文(DHCPOFFER)。
但是我們并不愿意在每一個網(wǎng)絡(luò)上都設(shè)置一個DHCP服務(wù)器,這樣DHCP服務(wù)器的數(shù)量太多了。因此現(xiàn)在是使每一個網(wǎng)絡(luò)至少有一個DHCP中繼代理(通常是一臺路由器),它配置了DHCP服務(wù)器的IP地址信息,也就是其知道該為該網(wǎng)絡(luò)提供服務(wù)的DHCP服務(wù)器在哪里。當(dāng)中繼代理收到主機(jī)廣播發(fā)送的發(fā)現(xiàn)報文之后,中繼代理就以單播方式向DHCP服務(wù)器轉(zhuǎn)發(fā)此報文,并等待其回答。當(dāng)收到DHCP的提供報文之后,再轉(zhuǎn)發(fā)給請求的主機(jī)。如下圖:
DHCP服務(wù)器分配給客戶的IP地址是臨時的,稱這段時間為租用期,具體的租用期由DHCP服務(wù)器決定,DHCP服務(wù)器發(fā)送的提歐諾個報文中給出了租用的數(shù)值。
需要注意的是,收到發(fā)現(xiàn)報文的DHCP服務(wù)器可能不止一個,所有收到發(fā)現(xiàn)報文的DHCP服務(wù)器都會向客戶發(fā)送提供報文,DHCP客戶從幾個提供報文中選擇一個,并向所選擇的DHCP服務(wù)器發(fā)送請求報文(DHCPREQUEST)。
之后被選擇的DHCP服務(wù)器發(fā)送確認(rèn)報文(DHCPACK)。從這個時候開始DHCP客戶就可以使用這個IP地址了。此時DHCP客戶會設(shè)置兩個計時器,若租用期是T,那么兩個計時器分別是T1=0.5T和T2=0.875T.
若T1時間到則DHCP客戶發(fā)送請求報文要求更新租用期,若DHCP服務(wù)器同意則發(fā)送確認(rèn)報文,此時計時器重置;若DHCP服務(wù)器不同意,則發(fā)送否認(rèn)報文(DHCPNACK),此時DHCP客戶必須立即停止使用原來的IP地址,并重新申請IP地址。
若DHCP不響應(yīng)租期過半時候的請求報文,那么當(dāng)?shù)诙€計時器到時的時候,DHCP服務(wù)器必須發(fā)送請求報文要求更新租用期。
當(dāng)然DHCP客戶可以隨時提前終止服務(wù)器提供的租用期,這時只需向DHCP服務(wù)器發(fā)送釋放報文(DHCPRELESEASE)即可。
========================================
廣州IT外包