百科解釋
通過Modem、ISDN、ADSL、有線寬頻、小區(qū)寬頻等方式上網(wǎng)的計(jì)算機(jī),每次上網(wǎng)所分配到的IP地址都不相同,這就是動(dòng)態(tài)IP地址。因?yàn)镮P地址資源很寶貴,大部分用戶都是通過動(dòng)態(tài)IP地址上網(wǎng)的。普通人一般不需要去了解動(dòng)態(tài)IP地址,這些都是計(jì)算機(jī)系統(tǒng)自動(dòng)完成的。
如果你的計(jì)算機(jī)是連接到Internet上的,不管你用的是哪種計(jì)算機(jī),也不管你用的是什么連接方式,有兩個(gè)問題可以肯定:第一,你在使用TCP/IP網(wǎng)絡(luò)協(xié)議;第二,你的計(jì)算機(jī)有一個(gè)唯一的Internet協(xié)議(IP, Internet Protocol)號(hào)碼。沒有這兩者是不能訪問Internet的。一般來說,TCP/IP協(xié)議沒有什么問題,它通常在安裝Windows的時(shí)候就一起安裝了,或者也可以通過控制面板的網(wǎng)絡(luò)項(xiàng)進(jìn)行安裝。但是計(jì)算機(jī)是怎么得到這個(gè)唯一的IP號(hào)碼的呢?這就是個(gè)完全不同的問題了。
計(jì)算機(jī)是從Internet服務(wù)供應(yīng)商(ISP)那里得到IP號(hào)碼的。ISP從高層(上游)服務(wù)供應(yīng)商那里得到一段這樣的號(hào)碼,這個(gè)IP號(hào)碼分配樹的頂端是三個(gè)區(qū)域性的登記中心:APNIC負(fù)責(zé)亞洲和太平洋地區(qū)(www.apnic.net),RIPE負(fù)責(zé)歐洲(www.ripe.net),ARIN(www.arin.net)美洲Internet號(hào)碼注冊(cè)中心(American Registry for Internet Numbers)負(fù)責(zé)美洲和非洲的一部分。這些機(jī)構(gòu)由美國(guó)政府的國(guó)家科學(xué)基金支持的Internet號(hào)碼分配中心(Internet Assigned Numbers Authority,www.iana.org)協(xié)調(diào)工作。 ISP得到一組IP號(hào)碼之后就可以把它們分配給單獨(dú)的用戶了。用戶可以是一個(gè)需要大量IP號(hào)碼的組織,也可能是只需要一個(gè)IP號(hào)碼的個(gè)人。ISP可以靜態(tài)或者動(dòng)態(tài)地分配IP號(hào)碼(分配之后,IP號(hào)碼往往就稱為IP地址)。如果你使用的是24小時(shí)不間斷的Internet連接,那么你很可能有一個(gè)靜態(tài)IP地址,也就是說這個(gè)地址不會(huì)改變。另一方面,如果使用調(diào)制解調(diào)器連接到Internet,用戶往往是動(dòng)態(tài)地被賦予一個(gè)IP地址—每次都不同。 對(duì)于調(diào)制解調(diào)器用戶來說,動(dòng)態(tài)地址分配是最常見的情況,但是ISP不一定非要如此分配IP地址。每個(gè)撥號(hào)用戶都可以—在早期的商業(yè)ISP中更常見—被分配一個(gè)靜態(tài)的IP地址,但是由于撥號(hào)用戶都是臨時(shí)的連接,這是一個(gè)低效的方法。不論連接15分鐘還是15個(gè)小時(shí),都可以看作臨時(shí)連接。雖然這本雜志的讀者很可能一撥號(hào)就要連接好幾個(gè)小時(shí),但是還有許多Internet用戶幾天才登錄一次。不論如何,那些每個(gè)月10小時(shí)的賬號(hào)存在還是有道理的。
如果一個(gè)ISP有一萬個(gè)撥號(hào)用戶,如果使用完全靜態(tài)的分配方式它就需要有一萬個(gè)IP號(hào)碼。但是如果這個(gè)ISP只有500條撥入電話線,它就只需要500個(gè)IP號(hào)碼,因?yàn)橹挥械卿浀絀nternet的計(jì)算機(jī)才會(huì)需要IP地址。所以,ISP只需要把IP地址分配給已經(jīng)撥號(hào)登錄的用戶,而且這個(gè)地址只在它們登錄期間有效。計(jì)算機(jī)斷開連接后,ISP就把分配出去的IP地址收回并分配給下一個(gè)撥號(hào)上網(wǎng)的用戶。 進(jìn)入DHCP的世界
為了能夠動(dòng)態(tài)地分配IP號(hào)碼,1993年Internet Engineering Task Force提出了動(dòng)態(tài)主機(jī)配置協(xié)議(Dynamic Host Configuration Protocol,DHCP)的想法。這個(gè)協(xié)議最早出現(xiàn)于RFC(RFC,Request for comment)1531和1541(ftp://ftp.isi.edu/in-notes/rfc1541.txt),協(xié)議最新的定義可以參見RFC 2131(ftp://ftp.isi.edu/in-notes/rfc2131.txt)。DHCP的設(shè)計(jì)目的就是為了提供比以前的協(xié)議(如BOOTP, Bootstrap Protocol)提供更大的分配靈活性。DHCP實(shí)際上是基于BOOTP的,但是它提供了更多的特性,比如限制IP號(hào)碼的租用時(shí)間可以讓DHCP服務(wù)器收回并重用這些號(hào)碼。 為撥號(hào)上網(wǎng)賬號(hào)提供IP地址可能是DHCP最常見的用途,但它的用途并不僅限于此。例如可以在局域網(wǎng)上使用DHCP以共享Internet連接。微軟Windows98第二版提供了稱為Internet連接共享(ICS)的功能,可以實(shí)現(xiàn)DHCP。安裝了ICS之后,它在局域網(wǎng)上就可以作為一個(gè)DHCP服務(wù)器,為網(wǎng)絡(luò)上的計(jì)算機(jī)分配范圍在192.168.x.x之內(nèi)的IP號(hào)碼,這個(gè)范圍是專門保留用作內(nèi)部網(wǎng)絡(luò)使用的。提供ICS服務(wù)的計(jì)算機(jī)先撥號(hào)連接到ISP,從ISP得到一個(gè)IP地址,然后讓局域網(wǎng)上的其它計(jì)算機(jī)共享這個(gè)地址。它把其它計(jì)算機(jī)的請(qǐng)求發(fā)送到Internet上,并利用內(nèi)部的IP地址來跟蹤每個(gè)局域網(wǎng)用戶的請(qǐng)求,當(dāng)Internet返回應(yīng)答的時(shí)候,它把信息轉(zhuǎn)發(fā)到相應(yīng)的計(jì)算機(jī)上。
DHCP的工作原理 DHCP是一個(gè)客戶機(jī)/服務(wù)器協(xié)議(就像TCP/IP,HTTP,FTP以及其他Internet協(xié)議一樣)。DHCP客戶機(jī)向DHCP服務(wù)器發(fā)出請(qǐng)求,服務(wù)器按照預(yù)先設(shè)定好的方式進(jìn)行應(yīng)答。如果計(jì)算機(jī)的IP地址設(shè)為0.0.0.0它就自動(dòng)變成一個(gè)DHCP客戶機(jī),在Windows操作系統(tǒng)上,TCP/IP設(shè)置還可以改為從服務(wù)器獲得IP地址(設(shè)置過程參見圖1到圖5)?蛻魴C(jī)連接到網(wǎng)絡(luò)之后,就會(huì)發(fā)生四階段的DHCP通信。(下面我們將只討論計(jì)算機(jī)撥號(hào)連接到ISP的情況,其他DHCP分配的操作的概念都是一樣的。)
第一步是初始化。因?yàn)榭蛻魴C(jī)還沒有IP地址同時(shí)又需要進(jìn)行Internet操作(比如瀏覽網(wǎng)頁),它首先要找到一個(gè)能給它IP地址的DHCP服務(wù)器。在撥號(hào)連接的情況下,客戶機(jī)連接到一個(gè)調(diào)制解調(diào)器,然后通過電話線廣播一個(gè)DHCPDISCOVER信息以定位DHCP服務(wù)器。如果ISP有一個(gè)以上的DHCP服務(wù)器,所有的服務(wù)器都會(huì)發(fā)回一個(gè)DHCPOFFER的響應(yīng),響應(yīng)中包括一個(gè)IP地址和地址的租用時(shí)間。地址的租用時(shí)間是客戶機(jī)可以使用這個(gè)地址的時(shí)間,由系統(tǒng)管理員設(shè)定。
客戶端返回一個(gè)DHCPREQUEST廣播信息,說明它接受了哪一個(gè)服務(wù)器的DHCPOFFER。因?yàn)樗械姆⻊?wù)器都在等待回答,所以需要使用廣播方式。被接受的服務(wù)器通過返回一個(gè)DHCPACK消息來結(jié)束初始化步驟,確認(rèn)IP地址和租用時(shí)間。如果在這段時(shí)間內(nèi)它提供的IP地址不可用了(由于超時(shí)),服務(wù)器就返回一個(gè)DHCPNAK(不確認(rèn))消息,強(qiáng)迫客戶端重新進(jìn)行DHCPDISCOVER廣播。實(shí)際上,客戶端可能自己就重新發(fā)送DHCPDISCOVER信息了,在收到DHCPACK包之后,它就向網(wǎng)絡(luò)發(fā)出一個(gè)地址解析協(xié)議(ARP)廣播以檢測(cè)這個(gè)地址是否已經(jīng)被使用。(同樣,由于超時(shí)原因)如果地址已經(jīng)被使用,客戶端就會(huì)向提供地址的服務(wù)器發(fā)出DHCPDECLINE消息,并立即發(fā)出一個(gè)新的DHCPDISCOVER消息。
然后就是更新和重新綁定階段?蛻舳酥荒茏庥肐P地址一段時(shí)間,租用時(shí)間可以設(shè)定得很短,也可以是無限長(zhǎng),或這兩者之間的任意長(zhǎng)度。將它稱為“租用”而不是簡(jiǎn)單地說“失效時(shí)間”是因?yàn)樵谶B接過程中租用可以被更新。
DHCP客戶機(jī)(不是服務(wù)器)運(yùn)行著T1和T2兩個(gè)計(jì)時(shí)器。缺省情況下,T1設(shè)置為租用時(shí)間的50%,T2為87.5%。當(dāng)IP地址的租用到了T1限定的時(shí)間后,客戶端就進(jìn)入更新階段,向租借給它地址的服務(wù)器申請(qǐng)更新。如果服務(wù)器返回一個(gè)DHCPACK響應(yīng)包,地址租用就被更新,T1和T2也相應(yīng)地重新設(shè)置(T2的計(jì)時(shí)期限還根本沒有到達(dá))。如果服務(wù)器沒有響應(yīng),客戶機(jī)會(huì)在T2期限之前繼續(xù)使用該地址。到達(dá)T2期限的時(shí)候,客戶機(jī)就進(jìn)入重新綁定階段,向所有的服務(wù)器發(fā)出DHCPREQUEST廣播。任何發(fā)回DHCPACK響應(yīng)的服務(wù)器都可以更新這個(gè)租用,并成為這個(gè)客戶機(jī)的授權(quán)服務(wù)器。如果還是沒有服務(wù)器響應(yīng),地址租用就過期了,客戶機(jī)不再擁有IP地址。也就是說,它不能再使用Internet。
最后一步稱為順利關(guān)機(jī)(graceful shut-down),當(dāng)客戶機(jī)不再需要被賦予的IP地址時(shí)會(huì)發(fā)生這一步。客戶端發(fā)出DHCPRELEASE信息,告訴服務(wù)器它可以把IP地址交還。像你預(yù)計(jì)的一樣,事情不會(huì)總是如此順利,如果某人碰巧拿起了電話而把你的連接掛斷,ISP的服務(wù)器不得不等到你的T2時(shí)間點(diǎn)才能收回地址。
告訴你如何設(shè)置DHCP客戶端。在此我們講解的是Windows95/98系統(tǒng),但是Windows NT 4也是非常相似的。Windows 2000在另一個(gè)位置處理網(wǎng)絡(luò)連接:不是控制面板,而是桌面上的Network Connection 文件夾。 DHCP不是一個(gè)復(fù)雜的協(xié)議,設(shè)置DHCP客戶端也很容易。但這絕不是說這個(gè)協(xié)議不重要。沒有它,IP地址的分配對(duì)于用戶和管理員都會(huì)是一個(gè)頭疼的問題,而且已經(jīng)開始短缺的IP號(hào)碼將會(huì)更快地消耗光。