《網(wǎng)絡(luò)與TPCIP協(xié)議》課件第4章_第1頁
《網(wǎng)絡(luò)與TPCIP協(xié)議》課件第4章_第2頁
《網(wǎng)絡(luò)與TPCIP協(xié)議》課件第4章_第3頁
《網(wǎng)絡(luò)與TPCIP協(xié)議》課件第4章_第4頁
《網(wǎng)絡(luò)與TPCIP協(xié)議》課件第4章_第5頁
已閱讀5頁,還剩155頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

4.1TCP/IP協(xié)議簇

4.2Internet的IP協(xié)議

4.3地址解析協(xié)議與逆地址解析協(xié)議

4.4Internet控制報文協(xié)議

4.5TCP/IP協(xié)議簇共同工作實例

4.6小結(jié)

習(xí)題

第4章TCP/IP概述

TCP/IP是一個協(xié)議簇,該協(xié)議簇的構(gòu)成如圖4-1所示。

位于網(wǎng)絡(luò)接口層的是各種物理網(wǎng)絡(luò)的硬件設(shè)備驅(qū)動程序和介質(zhì)訪問控制協(xié)議,這些協(xié)議與物理網(wǎng)絡(luò)相關(guān),不在TCP/IP的定義之列。4.1TCP/IP協(xié)議簇圖4-1TCP/IP協(xié)議簇圖4-1TCP/IP協(xié)議簇在網(wǎng)絡(luò)層的底部是負責(zé)因特網(wǎng)地址(IP地址)與底層物理網(wǎng)絡(luò)地址之間進行轉(zhuǎn)換的地址解析協(xié)議ARP和反向地址解析協(xié)議RARP。ARP用于根據(jù)IP地址獲取物理地址。RARP用于根據(jù)主機的物理地址查找其IP地址。因為ARP和RARP用于完成網(wǎng)絡(luò)層地址和數(shù)據(jù)鏈路層地址之間的轉(zhuǎn)換,所以有些書籍將ARP和RARP作為數(shù)據(jù)鏈路層協(xié)議。IP協(xié)議既是網(wǎng)絡(luò)層的核心協(xié)議,也是TCP/IP協(xié)議簇中的核心協(xié)議,網(wǎng)絡(luò)互聯(lián)的基本功能主要由IP協(xié)議完成,因特網(wǎng)的一些重要特點也是由IP協(xié)議來體現(xiàn)的。因特網(wǎng)控制報文協(xié)議ICMP是主機和網(wǎng)關(guān)進行差錯報告、控制和進行請求/應(yīng)答的協(xié)議。因特網(wǎng)控制報文IGMP用于實現(xiàn)組播中的組成員管理。傳輸層只含TCP協(xié)議和UDP協(xié)議。這兩個協(xié)議提供進程間的通信。TCP和UDP分別對應(yīng)兩類不同性質(zhì)的服務(wù),上層的應(yīng)用進程可以根據(jù)可靠性要求或效率要求決定是使用TCP還是使用UDP來提供服務(wù)。

應(yīng)用層的協(xié)議種類繁多,有支持電子郵件的SMTP,有支持WWW的HTTP,有支持文件傳輸與訪問的FTP、TFTP和NFS,有支持路由表維護的RIP和BGP,有支持遠程登錄的Rlogin和TELNET,有支持主機引導(dǎo)時自動獲取信息的BOOTP和DHCP,還有支持網(wǎng)絡(luò)管理的SNMP等,而且新的應(yīng)用協(xié)議還在不斷出現(xiàn)。圖4-2所示給出了各協(xié)議模塊之間的關(guān)系。從圖4-2中可以看出兩點:一是應(yīng)用進程可以直接與網(wǎng)絡(luò)層的模塊打交道;二是一個下層模塊要和多個上層模塊進行交互,因此,當一個下層模塊收到信息后,必須決定將信息交給哪一個上層模塊去處理。

在網(wǎng)絡(luò)接口層中,可以根據(jù)幀類型來確定網(wǎng)絡(luò)層程序。例如,當以太網(wǎng)幀類型字段為0x0800時,應(yīng)將幀中的數(shù)據(jù)交給IP模塊處理;當幀類型字段為0x0806時,應(yīng)將幀中的數(shù)據(jù)交給ARP模塊處理;當幀類型字段為0x8035時,應(yīng)將幀中的數(shù)據(jù)交給RARP模塊處理。圖4-2TCP/IP協(xié)議簇模塊關(guān)系在網(wǎng)絡(luò)層中,IP模塊根據(jù)IP數(shù)據(jù)報首部中的協(xié)議值決定將數(shù)據(jù)報中的數(shù)據(jù)交給哪一個模塊去處理。當協(xié)議值為6時,應(yīng)將數(shù)據(jù)交給TCP模塊處理;當協(xié)議值為17時,應(yīng)將數(shù)據(jù)交給UDP模塊處理。

在傳輸層中,TCP或UDP根據(jù)TCP或UDP首部中的端口號決定將數(shù)據(jù)交給哪一個應(yīng)用進程去處理。

上述過程稱為數(shù)據(jù)多路復(fù)用(DataMultiplexing)。簡單地說,就像你家需要一個地址,以便能接收來自美國郵局的郵件一樣,計算機也需要一個地址,即一個有效的Internet協(xié)議地址或IP地址,這樣,其它計算機可以發(fā)送信息到你的計算機上,于是就產(chǎn)生了編址的問題。4.2Internet的IP協(xié)議編址是互聯(lián)網(wǎng)抽象的一個關(guān)鍵組成部分。為了以一個單一的統(tǒng)一系統(tǒng)出現(xiàn),所有主機必須使用統(tǒng)一編址方案。然而,物理網(wǎng)絡(luò)地址并不滿足這個要求,因為一個互聯(lián)網(wǎng)可包括多種物理網(wǎng)絡(luò)技術(shù),每種技術(shù)定義了自己的地址格式。這樣,不同技術(shù)采用的地址因為長度不同或格式不同而不兼容。為保證主機統(tǒng)一編址,協(xié)議軟件定義了一個與底層物理地址無關(guān)的編址方案。雖然互聯(lián)網(wǎng)編址方案是由軟件抽象產(chǎn)生的,但協(xié)議地址仍作為虛擬互聯(lián)網(wǎng)的目的地址使用,類似于硬件地址被作為物理網(wǎng)絡(luò)上的目的地址使用。為了在互聯(lián)網(wǎng)上發(fā)送數(shù)據(jù)包,發(fā)送方把目的地協(xié)議地址放在包中,將包傳給協(xié)議軟件去發(fā)送。這個軟件使用的是目的地協(xié)議地址將包轉(zhuǎn)發(fā)至目標機的方式。協(xié)議軟件的結(jié)果就是網(wǎng)際協(xié)議(IP)。網(wǎng)際協(xié)議主要解決地址問題。高層(如主機到主機問題或應(yīng)用問題)協(xié)議負責(zé)名字到地址的映射;網(wǎng)際模塊負責(zé)網(wǎng)際地址到局域網(wǎng)地址的映射;底層(如本地網(wǎng)或網(wǎng)關(guān))程序的任務(wù)是負責(zé)本地網(wǎng)地址到路由上的映射。地址由固定長度的四個八位字節(jié)組成(32位)。

網(wǎng)際協(xié)議(IP)是一個網(wǎng)絡(luò)層協(xié)議,它包含尋址信息和控制信息。IP協(xié)議是TCP/IP協(xié)議簇中的主要網(wǎng)絡(luò)層協(xié)議,與TCP協(xié)議結(jié)合組成整個因特網(wǎng)協(xié)議的核心協(xié)議。IP協(xié)議同樣適用于LAN和WAN通信。4.2.1IP協(xié)議概述

IP協(xié)議是開放系統(tǒng)互聯(lián)模型(OSIModel)的一個主要協(xié)議,也是TCP/IP中完整的一部分。事實上,Internet上的所有系統(tǒng)都使用或兼容IP,且IP可以用在與Internet無關(guān)的各種網(wǎng)絡(luò)上。IP協(xié)議具有良好的適應(yīng)性,無論是像以太網(wǎng)這樣的廣播式的局域網(wǎng),還是像DDN一樣的點到點通信網(wǎng)絡(luò),甚至無線衛(wèi)星網(wǎng)等廣域網(wǎng);無論是X.25這樣的低速網(wǎng)絡(luò)還是ATM這樣的高速網(wǎng)絡(luò),IP都能很好地適應(yīng)。準確地說,只要是需要有效地連接眾多機器的網(wǎng)絡(luò),使用IP都很合適。IP協(xié)議目前也面臨一些競爭者,如適用于中小型網(wǎng)絡(luò)微機的NovellNetWareIPX等。

IP位于TCP/IP模型的網(wǎng)絡(luò)層,對上可接收傳輸層各種協(xié)議的信息,如TCP、UDP等;對下可將IP數(shù)據(jù)報傳送到鏈路層,通過以太網(wǎng),令牌環(huán)網(wǎng)等各種技術(shù)傳輸。從應(yīng)用角度來說,IP協(xié)議提供的是一種無連接的、不可靠的、盡力發(fā)送的服務(wù),把數(shù)據(jù)從信息源發(fā)送到信息宿。其中,無連接表示每個IP數(shù)據(jù)報都是獨立發(fā)送的,因此它自己必須包含目的地址;從每一臺主機送出去的一系列數(shù)據(jù)報可經(jīng)過不同的路徑或不按順序傳送到目的主機;在傳輸過程中,IP數(shù)據(jù)報有可能出現(xiàn)丟失、延時等差錯,但僅具有有限的錯誤報告功能(調(diào)用ICMP協(xié)議實現(xiàn)差錯報告)。所謂盡力發(fā)送,是指TCP/IP并不隨意地放棄數(shù)據(jù)報。所謂不可靠,指只有資源用完或網(wǎng)絡(luò)底層出現(xiàn)故障時才會出現(xiàn)不可靠的情況。

IP協(xié)議根據(jù)其版本分為IPv4和IPv6協(xié)議。目前使用的主要是IPv4,而且在未來的若干年內(nèi)也將會繼續(xù)使用,因此本節(jié)主要介紹IPv4。但同時,IPv6作為IPv4的改進版本,它有很多的優(yōu)勢,也是將來的發(fā)展趨勢,我們將在后面的章節(jié)中作詳細介紹。

IP所提供的服務(wù)大致可分為兩項:IP數(shù)據(jù)報的傳送和IP數(shù)據(jù)報的分段和重裝。與IP協(xié)議配套使用的還有三個協(xié)議:地址解析協(xié)議ARP、反向地址解析協(xié)議RARP和因特網(wǎng)控制報文協(xié)議ICMP。IP是負責(zé)網(wǎng)絡(luò)間傳送的協(xié)議,IP采用IP地址和IP路由器兩種機制將數(shù)據(jù)報從源設(shè)備傳送到目的設(shè)備。IP數(shù)據(jù)報的傳送是無連接的、不可靠的傳送方式,在傳送過程中,源設(shè)備與目的設(shè)備雙方無須事先溝通,目的設(shè)備是否接收到、是否正確等問題是由上層協(xié)議(如TCP)來負責(zé)檢查的。所謂IP地址,就是規(guī)定網(wǎng)絡(luò)上所有設(shè)備都必須有一個獨一無二的IP地址來標識,每個數(shù)據(jù)報都只有通過目的設(shè)備的IP地址才能正確地被送達到目的地。也就是說,同一個IP地址不能重復(fù)分配給兩個或兩個以上的網(wǎng)絡(luò)設(shè)備。若要讓網(wǎng)絡(luò)設(shè)備具有多個IP地址,必須有操作系統(tǒng)的支持。

IP的重要特性體現(xiàn)在處理網(wǎng)絡(luò)不理想的情況,如數(shù)據(jù)包輸送延時、傳輸路徑出錯、數(shù)據(jù)在分割或重組時出錯等。然而,IP并不保證信息被準確接收,因為它只檢測標題信息(HeaderInformation),而不檢測數(shù)據(jù)包的數(shù)據(jù),這些是OSI模型其它層的工作。IP中的一部分內(nèi)容定義了網(wǎng)關(guān)如何管理數(shù)據(jù)包,在什么時候以及如何產(chǎn)生出錯信息和怎樣恢復(fù)錯誤。

IP所提供的數(shù)據(jù)報最大為65535字節(jié),這不是大部分網(wǎng)絡(luò)能處理的,因此IP在有必要的情況下會自動把數(shù)據(jù)報分割成較小的數(shù)據(jù)報。

當?shù)谝粋€從大數(shù)據(jù)報分割出來的小數(shù)據(jù)報到達目的地的時候,接收方的IP層就開始重組這些數(shù)據(jù)。重組數(shù)據(jù)的順序依照的是IP標題的一個域。如果預(yù)定時間之內(nèi)沒有收到所有數(shù)據(jù)報,則接收方就會放棄已接收的數(shù)據(jù)報。因此,理論上一個完整的數(shù)據(jù)報能成功發(fā)送的機會比一個被分割的數(shù)據(jù)報大,這也是很多程序避免分割數(shù)據(jù)的原因。

IP不理會數(shù)據(jù)報通過哪一個節(jié)點,也不理會哪一個是發(fā)送方或接收方,它以32位(二進制位)網(wǎng)絡(luò)地址處理數(shù)據(jù)包的傳送路徑。在新版本IPv6中,IP可以處理更大的標題信息,其詳細內(nèi)容將在稍后講述。4.2.2IP地址的表示與分類

我們把整個Internet看成一個單一的、抽象的網(wǎng)絡(luò)。每臺計算機必須有一個IP地址,而且在網(wǎng)絡(luò)中這個地址是唯一的,以便于計算機的配置改變。所謂IP地址,就是給每一個連接在Internet上的主機分配一個在全世界范圍內(nèi)是唯一的32位地址。在互聯(lián)網(wǎng)上發(fā)送的每個數(shù)據(jù)包中包含32位的發(fā)送方(源)IP地址和想要送達的接收方(宿)IP地址。這樣,為了在使用TCP/IP的互聯(lián)網(wǎng)上發(fā)送信息,一臺計算機必須知道接收信息的遠程計算機的IP地址。每個32位IP地址被分割成兩部分:前綴和后綴,這樣的兩級層次結(jié)構(gòu)設(shè)計使路由很有效。地址前綴部分確定了計算機從屬的物理網(wǎng)絡(luò),后綴部分確定了該網(wǎng)絡(luò)上的一臺計算機。也就是說,互聯(lián)網(wǎng)中的每一物理網(wǎng)絡(luò)分配了唯一的值作為網(wǎng)絡(luò)號。網(wǎng)絡(luò)號在從屬該網(wǎng)絡(luò)的每臺計算機地址中作為前綴出現(xiàn)。同時,同一物理網(wǎng)絡(luò)上每臺計算機分配了唯一的地址后綴。由以上可總結(jié)出IP地址有兩個重要性質(zhì):

(1)每臺計算機分配一個唯一地址(即一個地址從不分配給多臺計算機)。

(2)雖然網(wǎng)絡(luò)號分配必須全球一致,但后綴可本地分配,不需全球一致。

第一個性質(zhì)之所以得到保證,是因為整個地址保證前綴和后綴,分配前綴(網(wǎng)絡(luò)號)時保證唯一性。如果兩臺計算機從屬于同一物理網(wǎng)絡(luò),則它們的后綴(地址)是不同的。

一旦IP的設(shè)計人員選擇了IP地址的長度,并決定把地址分為兩部分,就必須決定每部分包含多少位。前綴部分需要足夠的位數(shù),以允許分配唯一的網(wǎng)絡(luò)號給互聯(lián)網(wǎng)上的每一個物理網(wǎng)絡(luò),后綴部分也需要足夠的位數(shù),以允許從屬于同一網(wǎng)絡(luò)的每一臺計算機都分配唯一的后綴。因為位數(shù)一定,所以一部分增加一位就意味著另一部分減少一位。選擇大的前綴可容納大量網(wǎng)絡(luò),但限制了每個網(wǎng)的大??;選擇大的后綴意味著每個物理網(wǎng)絡(luò)能包含大量計算機,但限制了網(wǎng)絡(luò)的總數(shù)。一個IP地址是一個嵌入點符號的地址。為便于記憶,將32個0或1組成的數(shù)值分為四段(即每段1字節(jié)),將每段的二進制數(shù)值轉(zhuǎn)換為十進制數(shù)(范圍為0~255)且用“.”隔開,以便閱讀。

例如,有下面的IP地址:

10000000000010110000001100011111

這是一個B類IP地址。若記為1,就顯然方便得多。

IP地址的網(wǎng)絡(luò)部分是四個數(shù)字中的第一個數(shù)字或者是四個數(shù)字中的前三個數(shù)字,具體根據(jù)網(wǎng)絡(luò)管理或ISP配置網(wǎng)絡(luò)的情況而定。一些網(wǎng)絡(luò)的IP地址甚至是四個數(shù)字中的一個、兩個或者三個數(shù)字和第四個數(shù)字中的一部分。當IP地址的網(wǎng)絡(luò)部分二進制表示全為1時,另一個數(shù)字,又叫子網(wǎng)掩碼,顯示地址的哪一部分是網(wǎng)絡(luò),哪一部分是主機。必須有一個帶有IP地址的子網(wǎng)掩碼,這樣計算機才能知道IP地址的哪部分是網(wǎng)絡(luò)部分。大部分情況下不用考慮IP地址,因為當連接到網(wǎng)絡(luò)時,或者當通過連接到網(wǎng)絡(luò)或ISP的計算機連接到Internet服務(wù)提供商時,IP地址通常會自動被賦予計算機。有的情況下,需要手工輸入IP地址,這時就要從計算機系統(tǒng)管理者或Internet服務(wù)提供商處獲得一個有效的IP地址。當初在設(shè)計IP時,著眼于路由與管理上的需求,制定了五種IP地址類型。一般常用的是A、B、C三類,分別適用于大、中、小型網(wǎng)絡(luò),IP的管理機構(gòu)可根據(jù)申請者的網(wǎng)絡(luò)規(guī)模決定分配哪種類型。D、E類為特殊地址。根據(jù)網(wǎng)絡(luò)地址的最左邊的位(稱位前導(dǎo)位)便可判斷出IP地址的類型。各類地址的第一組十進制值對應(yīng)的范圍如下:

A類0~127

B類128~191

C類192~223

D類224~239

E類240~255

1.IP地址的表示方法

IP地址?=?網(wǎng)絡(luò)號?+?主機號

整個Internet網(wǎng)堪稱單一的網(wǎng)絡(luò),IP地址就是每個連在Internet網(wǎng)的主機在全世界范圍內(nèi)的唯一的標識符。Internet管理委員會定義了A、B、C、D、E五類地址,在每類地址中,還規(guī)定了網(wǎng)絡(luò)編號和主機編號,如圖4-3所示。A、B和C類稱為基本類(PrimaryClasses),因為它們用于主機地址。常用的A、B和C類地址都由兩個字段組成,即:網(wǎng)絡(luò)號字段net-id和主機號字段host-id。

A、B和C類地址的網(wǎng)絡(luò)號字段分別為1、2和3字節(jié)長,在網(wǎng)絡(luò)號字段的最前面,有1~3位的類別比特,其數(shù)值分別規(guī)定為0、10和110。A、B和C類地址的主機號字段分別為3、2和1字節(jié)長。D類用于組播傳輸,允許發(fā)送到一類計算機(IP組播傳輸是硬件組播傳輸?shù)哪M,組播地址在這兩者中都是可選的,并且即使參與組播傳輸,計算機也仍然保留它自己的個別地址)。為使用IP組播傳輸,一組主機必須共享一個組播地址。一旦組播傳輸組建立,任何發(fā)送到組播地址的包將傳送副本到該組中的每一臺主機。D類地址主要留給Internet體系結(jié)構(gòu)委員會IAB(InternetArchitectureBoard)使用。E類地址保留在今后使用。目前使用的IP地址僅A至C類三種。圖4-3五類IP地址的表示基本類以8位一組為單位將地址劃分為前綴和后綴。A類在第一組和第二組間劃分,B類在第二組和第三組間劃分,C類在第三組和第四組間劃分。當組內(nèi)所有位都為0時,最小值為0;當組內(nèi)所有位都為1時,最大值為255。這樣,點分十進制地址范圍為~55。

1)?A類地址

A類地址的網(wǎng)絡(luò)標識由第一組8位二進制數(shù)表示。A類地址的特點是網(wǎng)絡(luò)標識的第一位二進制數(shù)取值必須為0。不難算出,A類地址的第一個地址為00000001,最后一個地

址是01111111,換算成十進制就是127,其中127留作保留地址。A類地址的第一段范圍為1~126。A類地址允許有27

-2?=?126個網(wǎng)段(減2是因為0不用,127留作它用),網(wǎng)絡(luò)中的主機標識占三組8位二進制數(shù),每個網(wǎng)絡(luò)允許有224-2?=?16777214臺主機(減2是因為全0地址為網(wǎng)絡(luò)地址,全1為廣播地址,這兩個地址一般不分配給主機)。A類地址通常分配給擁有大量主機的網(wǎng)絡(luò)。

2)?B類地址

B類地址的網(wǎng)絡(luò)標識由前兩組8位二進制數(shù)表示,網(wǎng)絡(luò)中的主機標識占兩組8位二進制數(shù)。B類地址的特點是網(wǎng)絡(luò)標識的前兩位二進制數(shù)取值必須為10。B類地址的第一個地

址為10000000,最后一個地址為10111111,換算成十進制,B類地址的第一段范圍為128~191。B類地址允許有214?=?16?384個網(wǎng)段,網(wǎng)絡(luò)中的主機標識占兩組8位二進制數(shù),每個網(wǎng)絡(luò)允許有216-2?=?65534臺主機。B類地址適用于結(jié)點比較多的網(wǎng)絡(luò)。

3)?C類地址

C類地址的網(wǎng)絡(luò)標識由前3組8位二進制數(shù)表示,網(wǎng)絡(luò)中主機標識占一組8位二進制數(shù)。C類地址的特點是網(wǎng)絡(luò)標識的前3位二進制數(shù)取值必須為110。C類地址的第一個地址為11000000,最后一個地址為11011111,換算成十進制,C類地址的第一段范圍為192~223。C類地址允許有221?=?2097152個網(wǎng)段,網(wǎng)絡(luò)中的主機標識占一組8位二進制數(shù),每個網(wǎng)絡(luò)允許有28-2?=?254臺主機。C類地址適用于結(jié)點比較少的網(wǎng)絡(luò)。舉個簡單的例子加以說明。如C類網(wǎng),每個網(wǎng)絡(luò)允許有28-2?=?254臺主機,這是因為其主機位是8位,變化如下:

00000000

00000001

00000010

00000011

11111110

11111111

除去00000000和11111111不用外,從00000001到11111110共有254個地址,也就是28-2?=?254個。

表4-1所示是IP地址的使用范圍。表4-1IP地址的使用范圍由表4-1可見,A類IP地址的網(wǎng)絡(luò)數(shù)不多。現(xiàn)在能夠申請到的IP地址只有B類和C類兩種,將在2010年完結(jié)。當某個單位向IAB申請IP地址時,實際上只是獲得了一個網(wǎng)絡(luò)號net-id,具體的各個主機號host-id則由該單位自行分配,只要做到在該單位管轄的范圍內(nèi)無重復(fù)即可。

2.IP地址與物理地址

由圖4-4可見,IP地址放在IP數(shù)據(jù)報的首部,硬件地址放在MAC幀的首部。在網(wǎng)絡(luò)層及以上使用的是IP地址,而鏈路層及以下使用的是硬件地址。圖4-4IP地址與物理地址的區(qū)別

3.IP數(shù)據(jù)報的格式

在傳送時,高層協(xié)議將數(shù)據(jù)傳給IP,IP將數(shù)據(jù)封裝為IP數(shù)據(jù)報后通過網(wǎng)絡(luò)接口發(fā)送出去。如果目的主機直接連在本地網(wǎng)中,則IP直接將數(shù)據(jù)報傳送給本地網(wǎng)的目的主機。如果目的主機是在遠地網(wǎng)絡(luò)中,則IP將數(shù)據(jù)報傳送給本地路由器,由本地路由器將數(shù)據(jù)報傳送給下一個路由器或目的主機。這樣,一個IP數(shù)據(jù)報通過一組互聯(lián)網(wǎng)絡(luò)從一個IP模塊傳送到另一個IP模塊,直至到達目的地。

IP數(shù)據(jù)報符合典型數(shù)據(jù)分組的一般格式,分為首部和數(shù)據(jù)兩部分,具體格式如圖4-5所示。圖4-5

IP數(shù)據(jù)報的格式●版本(4位):IP協(xié)議的版本,現(xiàn)在使用的是IPversion4。

●首部長度(4位):最大長度為60字節(jié)。若不是4字節(jié)的整數(shù)倍,則用最后一個填充字段填充。

●服務(wù)類型(8位):詳見圖4-5。

●總長度(16位):首部和數(shù)據(jù)之和的長度。

●標識(16位):使分片后的各數(shù)據(jù)報片能準確重裝?!駱酥?3位)(目前只有前兩個比特有意義):最低位MF=1表示后面還有分片的數(shù)據(jù)報;最低位MF=0表示數(shù)據(jù)報片中的最后一個;中間位DF=0表示允許分片。

●片偏移:某個片在原分組中的相對位置。

●壽命:即生存時間,壽命的建議值為32?s。

●協(xié)議(8位):指出數(shù)據(jù)報攜帶的運輸層數(shù)據(jù)使用的協(xié)議。

●首部檢查和:采用CRC校驗碼,只校驗數(shù)據(jù)報的首部。

●地址:源站IP地址(4字節(jié))和目的站IP地址(4字節(jié))。

●可變部分:即選項字段,支持排錯、測量以及安全等措施。

4.IP數(shù)據(jù)報的分段與重裝

在各種物理網(wǎng)絡(luò)中,如Ethernet、Token-Ring等都有最大幀長限制。為了使較大的數(shù)據(jù)報能以適當?shù)拇笮≡谖锢砭W(wǎng)絡(luò)上傳輸,IP協(xié)議首先要根據(jù)物理網(wǎng)絡(luò)所允許的最大發(fā)送長度對上層協(xié)議提交的數(shù)據(jù)報進行長度檢查,必要時把數(shù)據(jù)報分成若干段發(fā)送。在數(shù)據(jù)報分段時,每個段都要加上IP報頭,形成IP數(shù)據(jù)報。與數(shù)據(jù)報分段相關(guān)的字段有:

(1)標識(ID):數(shù)據(jù)報的唯一標識。被分段傳送的IP數(shù)據(jù)報設(shè)置有相同的標識。

(2)報文長度:對每一個被分段的IP數(shù)據(jù)報都要重新計算其報文長度。

(3)分段偏移:每一個被分段的IP數(shù)據(jù)報要表明它在原始數(shù)據(jù)報中的位置,用64位的倍數(shù)來表示。

(4)標志:如果是無分段的IP數(shù)據(jù)報,則該標志為0;如果是有分段的IP數(shù)據(jù)報,則除了最后一個分段IP數(shù)據(jù)報將該標志置為0外,其它的都將該標志置為1。在互聯(lián)網(wǎng)絡(luò)中,被分的各個IP數(shù)據(jù)報進行獨立的傳輸,它們在經(jīng)過中間路由器轉(zhuǎn)發(fā)時可能選擇不同的路由。這樣,到達目的主機的IP數(shù)據(jù)報順序與發(fā)送的順序不一定一致。因此,目的主機上的IP協(xié)議必須根據(jù)IP數(shù)據(jù)報中的相關(guān)字段(標識、長度、偏移及標志等)將分段的各個IP數(shù)據(jù)報重新組裝成完整的原始數(shù)據(jù)報,然后再提交給上層協(xié)議。在進行數(shù)據(jù)報重裝時,各個IP數(shù)據(jù)報除應(yīng)具有相同的標識外,還應(yīng)具有相同的用戶協(xié)議號、源IP地址和目的IP地址,并且在一定的時間內(nèi)要全部到齊。

IP協(xié)議將滿足上述條件的IP數(shù)據(jù)報按分段偏移順序排隊,且只保留第1段IP數(shù)據(jù)報的報頭,而其它段的IP報頭均刪除,組裝成一個完整的原始IP數(shù)據(jù)報,并重新計算其報文長度,填入IP報頭相應(yīng)的字段。最后將組裝好的原始IP數(shù)據(jù)報按用戶協(xié)議號提交給上層協(xié)議。

5.IP地址與MAC地址的區(qū)別

在比較之前,首先說明什么是MAC地址。MAC地址就是在媒體接入層上使用的地址,也叫硬件地址或物理地址,由網(wǎng)絡(luò)設(shè)備制造商生產(chǎn)時寫在硬件內(nèi)部。MAC地址與網(wǎng)絡(luò)無關(guān),即無論將帶有這個地址的硬件(如網(wǎng)卡、集線器和路由器等)接入到網(wǎng)絡(luò)的何處,都有相同的MAC地址,它由廠商寫在網(wǎng)卡的BIOS里。

IP地址是指Internet協(xié)議里使用的地址,而MAC地址是Ethernet協(xié)議使用的地址。IP地址與MAC地址之間并沒有什么必然的聯(lián)系,MAC地址是Ethernet網(wǎng)卡上帶的地址,長度為48位。每個Ethernet網(wǎng)卡生產(chǎn)廠家必須向IEEE組織申請一組MAC地址,在生產(chǎn)網(wǎng)卡時在網(wǎng)卡的串行EEPROM中寫入一個唯一的MAC地址。任何兩個Ethernet網(wǎng)卡的MAC地址,不管是哪一個廠家生產(chǎn)的都不應(yīng)相同。Ethernet芯片廠家不必負責(zé)MAC地址的申請,MAC地址存在于每一個Ethernet包中,是Ethernet包頭的組成部分。Ethernet交換機根據(jù)Ethernet包頭中的MAC源地址和MAC目的地址實現(xiàn)包的交換和傳遞。

IP地址是Internet協(xié)議地址,每個Internet包必須帶有IP地址,每個Internet服務(wù)提供商(ISP)必須向有關(guān)組織申請一組IP地址,然后動態(tài)分配給其用戶。IP地址現(xiàn)在是32位長,正在擴充到128位。IP地址與MAC地址無關(guān),因為Ethernet的用戶仍然可通過Modem連接Internet,取得一個動態(tài)的IP地址,這個地址每次可以不一致。IP地址通常工作于廣域網(wǎng),路由器處理的就是IP地址。MAC地址工作于局域網(wǎng),局域網(wǎng)之間的互聯(lián)一般通過現(xiàn)有的公用網(wǎng)或?qū)S镁€路進行,需要進行網(wǎng)際協(xié)議轉(zhuǎn)換??梢栽贓thernet上傳送IP信息,此時IP地址只是Ethernet信息包數(shù)據(jù)域的一部分,Ethernet交換機或處理器看不見IP地址,只是將其作為普通數(shù)據(jù)處理。4.2.3子網(wǎng)與掩碼

不同類的IP地址之間的巨大差異浪費了大量的地址。

舉例來說,一個中等規(guī)模的公司需要300個IP地址,若使用一個C類地址(254個地址),則不夠用;若使用兩個C類地址,則雖然提供的地址夠了,但是一個公司就有兩個不同的域,增加了路由表的尺寸——每一個地址需要一個路由表項。另一種選擇是,當一個網(wǎng)絡(luò)有多于254個主機時就提供一個B類地址。B類地址提供了所有需要的地址,但是浪費了65234個地址。因此,B類地址比其它地址更容易耗盡。任何組織都希望只有一個地址空間,因此只會把大部分不用的地址保留,以備將來之用。劃分子網(wǎng)的設(shè)想為:基于Internet的層次結(jié)構(gòu)需要一個第三層。隨著互聯(lián)網(wǎng)技術(shù)的成熟,接受和使用這種方法的人數(shù)急劇增加,結(jié)果使大中型組織有多個網(wǎng)絡(luò)已經(jīng)成為普遍現(xiàn)象。通常的情況是,這些網(wǎng)絡(luò)是局域網(wǎng),每個局域網(wǎng)被看作子網(wǎng)。RFC950中規(guī)范的劃分子網(wǎng)的方法能使任何一類(A、B和C類)IP地址再細分為更小的網(wǎng)絡(luò)號。一個被子網(wǎng)化的IP地址實際包含三部分:網(wǎng)絡(luò)號、子網(wǎng)號和主機號。

子網(wǎng)掩碼(SubnetMask)的作用就是將某個IP地址劃分成網(wǎng)絡(luò)地址和主機地址兩部分。子網(wǎng)掩碼不能單獨存在,必須結(jié)合IP地址一起使用。子網(wǎng)掩碼是可用點分十進制數(shù)格式表示的32位二進制數(shù),掩碼告訴網(wǎng)絡(luò)中的路由器IP地址的多少位用于識別網(wǎng)絡(luò)和子網(wǎng)。這些位被稱為擴展的網(wǎng)絡(luò)前綴。剩下的位標識子網(wǎng)

內(nèi)的主機。掩碼中左邊是網(wǎng)絡(luò)位,用二進制數(shù)字1表示;右邊是主機位,用二進制數(shù)字0表示。

圖4-6所示為IP地址是和子網(wǎng)掩碼是的二進制對照。其中,1有24個,代表與此相對應(yīng)的IP地址左邊24位是網(wǎng)絡(luò)號;0有8個,代表與此相對應(yīng)的IP地址右邊8位是主機號。這樣,子網(wǎng)掩碼確定了一個IP地址的32位二進制數(shù)字中哪些是網(wǎng)絡(luò)號,哪些是主機號。只有通過子網(wǎng)掩碼,才能表明一臺主機所在的子網(wǎng)與其它子網(wǎng)的關(guān)系,使網(wǎng)絡(luò)正常工作。圖4-6子網(wǎng)地址的表示子網(wǎng)掩碼有數(shù)百種,最常用的是與兩種。

子網(wǎng)掩碼是的網(wǎng)絡(luò),最后面一位數(shù)字可以在0~255范圍內(nèi)任意變化,可提供254個IP地址,主機號不能全是0或全是1。子網(wǎng)掩碼是的網(wǎng)絡(luò),最后面兩位數(shù)字可以在0~255范圍內(nèi)任意變化,可提供65023個IP地址。

任何一個A、B或C類地址都對應(yīng)著一定規(guī)模(主機數(shù)目)的網(wǎng)絡(luò)。當實際的網(wǎng)絡(luò)規(guī)模接近IP地址的主機號上限時,該IP地址得以充分利用。如一個實際網(wǎng)絡(luò)中的主機數(shù)為250臺左右時,申請一個C類地址最為合理,但是若實際的網(wǎng)絡(luò)規(guī)模較小,如只有30臺左右的主機時,則獨自占用一個C類地址會造成地址資源的浪費,若改用D類地址則給網(wǎng)關(guān)的路由選擇表和尋址增加很大復(fù)雜性。較合理的辦法是,將一個C類地址分給若干個小的網(wǎng)絡(luò)共同使用。具體辦法是將這些較小的網(wǎng)絡(luò)看作是一個網(wǎng)絡(luò)的子網(wǎng),并從主機號域中借用某幾位高位作為子網(wǎng)的子網(wǎng)號域。于是,網(wǎng)關(guān)(連接物理網(wǎng)絡(luò)的路由器)的路由表就被分成兩級:先識別由網(wǎng)絡(luò)號標識的路由,以確定一個邏輯的網(wǎng)絡(luò),再在該邏輯的網(wǎng)絡(luò)內(nèi)部用子網(wǎng)號來確定具體的子網(wǎng)。網(wǎng)絡(luò)管理員使用子網(wǎng)掩碼來借用主機號域中的某幾位高位作為子網(wǎng)的子網(wǎng)號域,即用一個與IP地址格式相同的屏蔽碼對網(wǎng)絡(luò)IP地址進行“與”操作,用來限定一個網(wǎng)絡(luò)的IP地址范圍。利用子網(wǎng)掩碼可以把一個大的網(wǎng)絡(luò)劃分為幾個子網(wǎng)。當網(wǎng)絡(luò)中沒有子網(wǎng)時,A、B和C三類網(wǎng)絡(luò)的缺省掩碼分別如下:

●?A類網(wǎng)絡(luò),11111111000000000000000000000000,即;

●?B類網(wǎng)絡(luò),11111111111111110000000000000000,即;

●?C類網(wǎng)絡(luò),11111111111111111111111100000000,即。

這些數(shù)據(jù)與同類型的網(wǎng)絡(luò)地址進行“與”運算時,所得出的值不變。而當網(wǎng)絡(luò)中有子網(wǎng)時,就要在上述三類網(wǎng)絡(luò)的缺省掩碼為0的部分從高到低占用幾位。例如,將一個有256臺主機、網(wǎng)絡(luò)號為200.15.192的C類型網(wǎng)絡(luò)分為兩個相同的、各擁有128臺主機的子網(wǎng)。

在網(wǎng)絡(luò)號為200.15.192的C類網(wǎng)絡(luò)中,主機的編號為~55。由于要將一個C類網(wǎng)絡(luò)分為兩個子網(wǎng),因而要在其主機號域中借用最高一位,子網(wǎng)掩碼由C類的缺省掩碼變?yōu)?8,即

11111111.11111111.11111111.10000000由此類推,要劃分為4個子網(wǎng),應(yīng)借用2位;要劃分為8個子網(wǎng),應(yīng)借用3位……

對于一個C類網(wǎng)絡(luò)202.113.240,可以使用子網(wǎng)掩碼24劃分為8個子網(wǎng),每個子網(wǎng)有32個IP地址:

~1

2~3

24~55應(yīng)當注意,不管如何劃分,一個網(wǎng)絡(luò)中可容納的主機總數(shù)不會增多。

從上面的例子可以看出,子網(wǎng)掩碼的作用就是和IP地址“與”運算后得出網(wǎng)絡(luò)地址;子網(wǎng)掩碼也是32位,并且由一串1后跟隨一串0組成,其中,1表示在IP地址中的網(wǎng)絡(luò)號對應(yīng)的位數(shù),而0表示在IP地址中主機對應(yīng)的位數(shù)。

1.標準子網(wǎng)掩碼

A類網(wǎng)絡(luò)(1~126)的缺省子網(wǎng)掩碼為:。

換算成二進制為

11111111.00000000.00000000.00000000

可以清楚地看出,前8位是網(wǎng)絡(luò)地址,后24位是主機地址。也就是說,如果用的是標準子網(wǎng)掩碼,由第一段地址即可看出不是同一網(wǎng)絡(luò)的。如和,第一段為21,屬于A類,如果用的是默認的子網(wǎng)掩碼,那么這兩個地址就是一個網(wǎng)段的。

B類網(wǎng)絡(luò)(128~191)的缺省子網(wǎng)掩碼為:。

C類網(wǎng)絡(luò)(192~223)的缺省子網(wǎng)掩碼為:。

B類、C類分析同上。

2.特殊的子網(wǎng)掩碼

標準子網(wǎng)掩碼出現(xiàn)的都是255和0的組合,在實際的應(yīng)用中還有下面的子網(wǎng)掩碼:

48

52這些子網(wǎng)掩碼又是什么意思呢?這些子網(wǎng)掩碼的出現(xiàn)是為了把一個網(wǎng)絡(luò)劃分成多個網(wǎng)絡(luò)。

如圖4-7所示,和00的默認掩碼如果是,則兩個地址就是一個網(wǎng)絡(luò)的,如果掩碼變?yōu)?2,則兩個地址就不屬于一個網(wǎng)絡(luò)了。圖4-7IP地址與子網(wǎng)掩碼的對應(yīng)4.2.4網(wǎng)關(guān)配置

網(wǎng)關(guān)(Gateway)又稱網(wǎng)間連接器、協(xié)議轉(zhuǎn)換器。網(wǎng)關(guān)在傳輸層上實現(xiàn)網(wǎng)絡(luò)互聯(lián),是最復(fù)雜的網(wǎng)絡(luò)互聯(lián)設(shè)備,僅用于兩個高層協(xié)議不同的網(wǎng)絡(luò)之間的互聯(lián)。網(wǎng)關(guān)的結(jié)構(gòu)和路由器類似,區(qū)別在于處在不同的互聯(lián)層次。網(wǎng)關(guān)既可以用于廣域網(wǎng)互聯(lián),也可以用于局域網(wǎng)互聯(lián)。網(wǎng)關(guān)是一種擔(dān)任轉(zhuǎn)換重任的計算機系統(tǒng)或設(shè)備。在使用不同的通信協(xié)議、數(shù)據(jù)格式或語言,甚至體系結(jié)構(gòu)完全不同的兩種系統(tǒng)之間,網(wǎng)關(guān)相當于一個翻譯器。與網(wǎng)橋只是簡單地傳達信息不同,網(wǎng)關(guān)對收到的信息重新打包,以適應(yīng)目的系統(tǒng)的需求。同時,網(wǎng)關(guān)也可以提供過濾和安全功能。大多數(shù)網(wǎng)關(guān)運行在OSI七層協(xié)議的頂層(即應(yīng)用層)。本節(jié)主要介紹網(wǎng)關(guān)的配置。大家都知道,從一個房間走到另一個房間,必然要經(jīng)過一扇門。同樣,從一個網(wǎng)絡(luò)向另一個網(wǎng)絡(luò)發(fā)送信息,也必須經(jīng)過一道“關(guān)口”,這道關(guān)口就是網(wǎng)關(guān)。顧名思義,網(wǎng)關(guān)就是一個網(wǎng)絡(luò)連接到另一個網(wǎng)絡(luò)的“關(guān)口”。

按照不同的分類標準,網(wǎng)關(guān)也有很多種,包括協(xié)議網(wǎng)關(guān)、應(yīng)用網(wǎng)關(guān)等。TCP/IP協(xié)議里的網(wǎng)關(guān)是最常用的,本書中所講的“網(wǎng)關(guān)”均指TCP/IP協(xié)議下的網(wǎng)關(guān)。那么網(wǎng)關(guān)到底是什么呢?網(wǎng)關(guān)實質(zhì)上是一個網(wǎng)絡(luò)通向其它網(wǎng)絡(luò)的IP地址。如網(wǎng)絡(luò)A和網(wǎng)絡(luò)B,網(wǎng)絡(luò)A的IP地址范圍為~54,子網(wǎng)掩碼為;網(wǎng)絡(luò)B的IP地址范圍為~54,子網(wǎng)掩碼為。在沒有路由器的情況下,兩個網(wǎng)絡(luò)之間是不能進行TCP/IP通信的,即使兩個網(wǎng)絡(luò)連接在同一臺交換機(或集線器)上,TCP/IP協(xié)議也會根據(jù)子網(wǎng)掩碼()判定兩個網(wǎng)絡(luò)中的主機處在不同的網(wǎng)絡(luò)里。要實現(xiàn)這兩個網(wǎng)絡(luò)之間的通信,必須通過網(wǎng)關(guān)。如果網(wǎng)絡(luò)A中的主機發(fā)現(xiàn)數(shù)據(jù)包的目的主機不在本地網(wǎng)絡(luò)中,就把數(shù)據(jù)包轉(zhuǎn)發(fā)給它自己的網(wǎng)關(guān),再由網(wǎng)關(guān)轉(zhuǎn)發(fā)給網(wǎng)絡(luò)B的網(wǎng)關(guān),網(wǎng)絡(luò)B的網(wǎng)關(guān)再轉(zhuǎn)發(fā)給網(wǎng)絡(luò)B的某個主機。圖4-8所示為網(wǎng)絡(luò)A向網(wǎng)絡(luò)B轉(zhuǎn)發(fā)數(shù)據(jù)包的過程。圖4-8網(wǎng)絡(luò)A向網(wǎng)絡(luò)B轉(zhuǎn)發(fā)數(shù)據(jù)包的過程所以說,只有設(shè)置好網(wǎng)關(guān)的IP地址,TCP/IP協(xié)議才能實現(xiàn)不同網(wǎng)絡(luò)之間的相互通信。那么這個IP地址是哪臺機器的IP地址呢?網(wǎng)關(guān)的IP地址是具有路由功能的設(shè)備的IP地址。具有路由功能的設(shè)備有路由器、啟用了路由協(xié)議的服務(wù)器(實質(zhì)上相當于一臺路由器)、代理服務(wù)器(也相當于一臺路由器)。網(wǎng)關(guān)地址可以是網(wǎng)段內(nèi)的任一個IP地址,一般情況下默認的網(wǎng)關(guān)為IP地址段的第一個地址。

例如,在與NovellNetWare網(wǎng)絡(luò)交互操作的上下文中,網(wǎng)關(guān)在Windows網(wǎng)絡(luò)中使用的服務(wù)器信息塊(SMB)協(xié)議以及NetWare網(wǎng)絡(luò)使用的NetWare核心協(xié)議(NCP)之間起著橋梁的作用。因此,網(wǎng)關(guān)也被稱為IP路由器。4.2.5特殊的IP地址

除了給每臺計算機分配一個地址外,用地址來表示網(wǎng)絡(luò)或一組計算機也很方便。IP定義了一組特殊地址形式,稱為保留地址,具有特殊的意義。也就是說,特殊地址從不分配給主機使用。

1.網(wǎng)絡(luò)地址

IP地址保留主機地址為0的地址,用它來表示一個網(wǎng)絡(luò)。例如,地址表示了一個已經(jīng)分配給B類、前綴為128.211的網(wǎng)絡(luò)。

網(wǎng)絡(luò)地址就是指網(wǎng)絡(luò)本身,而不是連接在該網(wǎng)絡(luò)上的主機。因此,網(wǎng)絡(luò)地址絕不應(yīng)該作為目的地址在分組中出現(xiàn)。

2.直接廣播地址

有時候,需要將一個分組副本發(fā)送給某個物理網(wǎng)絡(luò)中的所有主機。為了更容易實施這種廣播,IP為每個物理網(wǎng)絡(luò)定義了一個直接廣播地址(DirectedBroadcastAddress)。當一個分組要發(fā)送到一個網(wǎng)絡(luò)的直接廣播地址時,就只有一個分組副本會通過互聯(lián)網(wǎng)到達該網(wǎng)絡(luò),然后被傳送到該網(wǎng)絡(luò)中的每一臺主機。

在網(wǎng)絡(luò)前綴后面增加一個全1后綴,便形成了網(wǎng)絡(luò)的直接廣播地址。為了確保每個網(wǎng)絡(luò)都有直接廣播地址,IP保留了所有位全1的主機地址。管理員不能分配全0或全1的主機地址給任何一臺計算機,否則將會導(dǎo)致軟件功能失常。如果網(wǎng)絡(luò)硬件支持廣播,那么直接廣播就利用硬件廣播能力來實現(xiàn)。在這種情況下,分組的一次發(fā)送就可到達網(wǎng)絡(luò)中的所有計算機。當直接廣播涉及到一個不支持硬件廣播的網(wǎng)絡(luò)時,軟件必須為網(wǎng)絡(luò)上的每一主機發(fā)送一個該分組的副本。

3.有限廣播地址

有線廣播這一術(shù)語是指在本地網(wǎng)絡(luò)內(nèi)的廣播。不太嚴格地說,就是廣播被限制在“單根導(dǎo)線”上。由一臺不知道網(wǎng)絡(luò)號的計算機去啟動某個系統(tǒng)的時候,可以采用有限廣播。

IP保留了由全1位所組成的地址用于有限廣播。因此,IP將所有要發(fā)送給全1地址的分組通過本地網(wǎng)絡(luò)進行廣播。有限廣播地址只能作為目的地址。它的點分十進制表示為:55。

4.本機地址

計算機需要知道它自己的IP地址,從而發(fā)送或接收互聯(lián)網(wǎng)分組,這是因為每個分組都要包含源地址和目的地址。TCP/IP協(xié)議組包含這樣一個協(xié)議,即當計算機啟動時,要用這個協(xié)議來自動獲得它的IP地址。有趣的是,啟動協(xié)議也要使用IP來通信,而在使用這個啟動協(xié)議時,計算機還沒有一個正確的IP源地址。為了處理這一情況,IP保留了全0地址來表示本臺計算機。

5.回送地址

IP定義了一個回送地址,用于測試網(wǎng)絡(luò)應(yīng)用程序。在編寫完成一個網(wǎng)絡(luò)應(yīng)用程序之后,程序員常常要采用回送測試的方法對程序進行預(yù)調(diào)試。為了實現(xiàn)回送測試,程序員必須準備好通過網(wǎng)絡(luò)進行通信的兩個應(yīng)用程序,每個應(yīng)用程序都包含與TCP/IP協(xié)議軟件進行交互所需要的代碼。程序員不是在不同的計算機上執(zhí)行每個程序,而是在同一臺計算機上運行兩個程序的進程,并指令它們在通信時使用回送IP地址。當一個應(yīng)用進程發(fā)送數(shù)據(jù)給另一個應(yīng)用程序時,數(shù)據(jù)向下穿過協(xié)議棧到達IP軟件,IP軟件再把數(shù)據(jù)向上通過協(xié)議棧返回給另一個應(yīng)用進程。因此,程序員可很快地測試程序邏輯而無需使用兩臺計算機,也無需通過網(wǎng)絡(luò)傳輸數(shù)據(jù)。

IP保留A類網(wǎng)絡(luò)前綴127以供回送測試時使用。帶有127的主機地址無關(guān)緊要,所有的主機地址都同樣處理。根據(jù)習(xí)慣,程序員經(jīng)常使用主機號1,形成最普遍使用的回送地址形式,即。

在回送測試時,沒有數(shù)據(jù)會離開計算機——IP軟件數(shù)據(jù)從一個應(yīng)用進程轉(zhuǎn)發(fā)到另一個應(yīng)用進程,因此回送地址永遠不會出現(xiàn)在網(wǎng)絡(luò)中所傳輸?shù)娜魏螖?shù)據(jù)單元中。以上幾類特殊地址的保留情況總結(jié)如下:

(1)每類網(wǎng)絡(luò)中,二進制位全部為0的主機地址從不分配給入網(wǎng)計算機使用,而是保留給網(wǎng)絡(luò)本身,用做識別網(wǎng)絡(luò)的地址。例如,IP地址標識的是網(wǎng)絡(luò)地址為101的網(wǎng)絡(luò)。

(2)每類網(wǎng)絡(luò)中,二進制位全部為1的主機地址也從不分配給入網(wǎng)計算機使用,而是保留給定向廣播使用。當向一個主機地址全部為1的網(wǎng)絡(luò)發(fā)送數(shù)據(jù)包時,意味著要將該數(shù)據(jù)包同時發(fā)送給該網(wǎng)絡(luò)中的所有主機。這樣的地址會映射到硬件廣播。因此,要使定向廣播地址的網(wǎng)絡(luò)部分有效,主機部分的所有位必須為1。

(3)進行定向廣播的條件是必須首先知道IP地址的網(wǎng)絡(luò)部分。但是有時希望發(fā)送廣播信息的入網(wǎng)計算機在不知道自己所在網(wǎng)絡(luò)IP地址的情況下,也能夠?qū)l(fā)出的信息送給本網(wǎng)的所有主機。為此,在IP地址中規(guī)定了一個本地網(wǎng)絡(luò)廣播地址,即32位二進制地址全部是1的地址,或使用四個十進制數(shù)字表示為55的IP地址。當一臺計算機向這個地址發(fā)送數(shù)據(jù)包時,意味著該數(shù)據(jù)包將送給本網(wǎng)絡(luò)中的所有主機。

(4)在IP地址的使用中,TCP/IP軟件對二進制地址全部為0的部分解釋為“本”(this)。就像對二進制地址全部為1的部分解釋為“所有”那樣,網(wǎng)絡(luò)部分全部為0的IP地址被解釋為“本”網(wǎng)絡(luò)。這樣,當一臺入網(wǎng)計算機在收到一個數(shù)據(jù)包,其目的地址的網(wǎng)絡(luò)部分為0,而主機部分與該計算機的地址匹配時,接收計算機就將網(wǎng)絡(luò)部分解釋為“本”網(wǎng)絡(luò)。對于32位二進制地址全部是0的地址,或使用四個十進制數(shù)字表示為的地址,被保留表示本主機,但是該地址僅允許入網(wǎng)計算機在系統(tǒng)啟動時使用,而且永遠不能夠作為有效目的地址。

(5)?IP地址中的A類地址被保留,用于環(huán)回(LoopBack)地址,用來測試TCP/IP和本機進程間的通信。因此,發(fā)送給網(wǎng)絡(luò)地址為127的數(shù)據(jù)包是永遠送不到TCP/IP網(wǎng)絡(luò)上的。

保留的IP地址格式的主要用途如表4-2所示。表4-2保留的IP地址在A類地址中,有兩個地址沒有被分配:0和127。以127開始的地址為回送地址(LoopBackAddress),用于網(wǎng)絡(luò)軟件的測試和本地主機進程間的通信。以0開始的地址被解釋為“本”網(wǎng)絡(luò),在系統(tǒng)初啟時,用來指定當前網(wǎng)絡(luò)中的主機?;厮偷刂房梢栽谌魏螘r候使用,而0地址只能在系統(tǒng)初啟時使用。

表4-2中的最后兩個地址用來將一個數(shù)據(jù)廣播到多個設(shè)備。前一個向指定網(wǎng)絡(luò)中的所有設(shè)備廣播,后一個向當前網(wǎng)絡(luò)中的所有設(shè)備廣播。

在考慮了IP地址的上述特殊情況后,實際上各類IP地址可以使用的范圍如表4-3所示。表4-3IP地址使用范圍在上述范圍中,Internet協(xié)會的編號分配委員會(IANA)的IP地址分配方案還留出了三部分IP地址空間,給不連接到Internet的企業(yè)內(nèi)部網(wǎng)專用。這三部分保留的IP地址空間分別在A、B和C類地址空間中都存在,范圍如表4-4所示。

IANA保證這些網(wǎng)絡(luò)IP地址不會分配給連接到Internet上的任何網(wǎng)絡(luò)。任何機構(gòu)或個人都可以自由地選擇這些網(wǎng)絡(luò)地址作為自己的網(wǎng)絡(luò)地址。表4-4內(nèi)網(wǎng)專用IP使用范圍本節(jié)我們要討論的問題是只對TCP/IP協(xié)議簇有意義的IP地址。數(shù)據(jù)鏈路,如以太網(wǎng)或令牌環(huán)網(wǎng)都有自己的尋址機制(常為48位地址),這是使用數(shù)據(jù)鏈路的任何網(wǎng)絡(luò)層都必須遵從的。一個網(wǎng)絡(luò),如以太網(wǎng)可以同時被不同的網(wǎng)絡(luò)層使用。例如,一組使用TCP/IP協(xié)議的主機和另一組使用某種PC網(wǎng)絡(luò)軟件的主機可以共享相同的電纜。當一臺主機把以太網(wǎng)數(shù)據(jù)幀發(fā)送到位于同一局域網(wǎng)上的另一臺主機時,是根據(jù)48位的以太網(wǎng)地址來確定目的接口的。設(shè)備驅(qū)動程序從不檢查IP數(shù)據(jù)報中的目的IP地址。4.3地址解析協(xié)議與逆地址解析協(xié)議地址解析為這兩種不同的地址形式提供映射:32位的IP地址和數(shù)據(jù)鏈路層使用的任何類型的地址。

本節(jié)我們要討論ARP(地址解析協(xié)議)和RARP(逆地址解析協(xié)議,也叫反向地址解析協(xié)議)兩種協(xié)議,如圖4-9所示。

地址解析協(xié)議(ARP):一臺計算機的IP地址映射到物理地址的過程叫做地址解析。ARP為IP地址到對應(yīng)的硬件地址之間提供動態(tài)映射。我們之所以用動態(tài)這個詞,是因為這個過程是自動完成的,用戶或系統(tǒng)管理員不必關(guān)心一般應(yīng)用程序。

逆地址解析協(xié)議(RARP):從物理地址到IP地址的轉(zhuǎn)換。RARP用于沒有磁盤驅(qū)動器的系統(tǒng)(一般是無盤工作站或X終端),它需要系統(tǒng)管理員進行手工設(shè)置。圖4-9地址解析協(xié)議和逆地址解析協(xié)議4.3.1地址解析協(xié)議

IP地址管理主要用于給一個物理設(shè)備分配一個邏輯地址。一個以太網(wǎng)上的兩個設(shè)備之所以能夠交換信息,就是因為在物理以太網(wǎng)上,每個設(shè)備都有一塊網(wǎng)卡,并擁有唯一的以太網(wǎng)地址。如果設(shè)備A向設(shè)備B傳送信息,則設(shè)備A需要知道設(shè)備B的以太網(wǎng)地址。像Microsoft的NetBIOS協(xié)議,它要求每個設(shè)備廣播它的地址,這樣,其它設(shè)備才能知道它的存在。IP協(xié)議使用的這個過程叫做地址解析協(xié)議。不論是哪種情況,地址應(yīng)為硬件地址,并且在本地物理網(wǎng)上。如果一個在以太網(wǎng)上的設(shè)備B向令牌環(huán)網(wǎng)上的設(shè)備C發(fā)送信息,會發(fā)生什么情況呢?由于它們在不同的物理網(wǎng)絡(luò)上,因此不能夠直接通信。為了解決設(shè)備A和設(shè)備B的地址問題,我們使用一個更高層的協(xié)議,如IPv4。它允許給一個物理設(shè)備分配一個邏輯地址。不論使用哪種通信方法,都可以通過一個唯一的邏輯地址來識別這個設(shè)備。在實際通信中,邏輯地址最終還要轉(zhuǎn)換成物理地址。在局域網(wǎng)中,網(wǎng)絡(luò)中實際傳輸?shù)氖恰皫?,幀里面是有目標主機的MAC地址的。在以太網(wǎng)中,一個主機要和另一個主機進行直接通信,必須要知道目標主機的MAC地址。但這個目標MAC地址是如何獲得的呢?它是通過地址解析協(xié)議獲得的。所謂“地址解析”,就是主機在發(fā)送幀前將目標IP地址轉(zhuǎn)換成目標MAC地址的過程。ARP協(xié)議的基本功能就是通過目標設(shè)備的IP地址查詢目標設(shè)備的MAC地址,以保證通信的順利進行。它提供的服務(wù)為:

(1)通過網(wǎng)絡(luò)廣播請求獲得媒體訪問控制地址,詢問“配置成所附IP地址的設(shè)備的媒體訪問控制地址是什么?”

(2)回應(yīng)ARP請求時,ARP回復(fù)的發(fā)送方和原始ARP請求方都將彼此的IP地址及媒體訪問控制地址記錄成被稱為ARP緩存的本地表中的項目,以便將來引用。

1.ARP實現(xiàn)

1)?ARP為本地通信解析媒體訪問控制地址

圖4-10所示顯示了ARP如何將IP地址解析成同一本地網(wǎng)絡(luò)上的主機的硬件地址。

在此例中,兩個TCP/IP主機(主機A和主機B)都位于同一個物理網(wǎng)絡(luò)上。主機A分配的IP地址是9,主機B分配的IP地址是00。圖4-10ARP對本地通信的解析當主機A要與主機B通信時,以下步驟可以將主機B軟件指定的地址(00)解析成主機B硬件指定的媒體訪問控制地址:

(1)根據(jù)主機A上的路由表內(nèi)容,IP確定用于訪問主機B的轉(zhuǎn)發(fā)IP地址是00。然后A主機在自己的本地ARP緩存中檢查主機B的匹配硬件地址。

(2)如果主機A在緩存中沒有找到映射,它將詢問00的硬件地址是什么?從而將ARP請求幀廣播到本地網(wǎng)絡(luò)上的所有主機。源主機A的硬件和軟件地址都包括在ARP請求中。本地網(wǎng)絡(luò)上的每臺主機都接收到ARP請求,并且檢查是否與自己的IP地址匹配。如果主機未找到匹配值,它將丟棄ARP請求。

(3)主機B確定ARP請求中的IP地址與自己的IP地址匹配,將主機的硬件/軟件地址映射添加到本地ARP緩存中。

(4)主機B將包含其硬件地址的ARP回復(fù)消息直接發(fā)送回主機A。

(5)當主機A收到從主機B發(fā)來的ARP回復(fù)消息時,會用主機B的硬件/軟件地址映射更新ARP緩存。

2)?ARP為遠程通信解析媒體訪問控制地址

ARP還用于不在本地網(wǎng)絡(luò)上的目標向本地路由器轉(zhuǎn)發(fā)IP數(shù)據(jù)報。在這種情況下,ARP解析本地網(wǎng)絡(luò)上的路由器接口的媒體訪問控制地址。

圖4-11所示說明了ARP如何將不同物理網(wǎng)絡(luò)上、通過公用路由器相連的兩個主機的IP地址解析成硬件地址。圖4-11ARP將IP地址解析成硬件地址在此范例中,主機A分配的IP地址是9,主機B使用的IP地址是9。路由器接口1與主機A在同一物理網(wǎng)絡(luò)上,使用的IP地址是。路由器接口2與主機B在同一物理網(wǎng)絡(luò)上,使用的IP地址是。

當主機A要與主機B通信時,以下步驟可以將路由器接口軟件指定的地址解析成硬件指定的媒體訪問控制地址:

(1)根據(jù)主機A上的路由表內(nèi)容,IP確定用于訪問主機B的轉(zhuǎn)發(fā)IP地址是,即默認網(wǎng)關(guān)的IP地址。然后主機A在自己的本地ARP緩存中檢查與匹配的硬件地址。

(2)如果主機A在緩存中沒有找到映射,它將詢問的硬件地址是什么?從而將ARP請求幀廣播到本地網(wǎng)絡(luò)上的所有主機。源主機A的硬件和軟件地址都包括在ARP請求中。本地網(wǎng)絡(luò)上的每臺主機都接收到ARP請求,并且檢查是否與自己的IP地址匹配。如果主機未找到匹配值,它將丟棄ARP請求。

(3)路由器確定ARP請求中的IP地址與自己的IP地址匹配,并將主機A的硬件/軟件地址映射添加到本地ARP緩存中。

(4)路由器將包含其硬件地址的ARP回復(fù)消息直接發(fā)送回主機A。

(5)當主機A收到從路由器發(fā)來的ARP回復(fù)消息時,用的硬件/軟件地址映射更新它的ARP緩存。

路由器接口1的媒體訪問控制地址一旦確定,主機A就能向路由器發(fā)送IP通信,為它找到路由接口1的媒體訪問控制地址。然后,路由器通過與本部分中討論的相同的ARP過程將通信轉(zhuǎn)發(fā)到主機B。下面給出一個地址解析協(xié)議工作的實例。

假設(shè)以太網(wǎng)上有4臺計算機,分別是A、B、C和D,如表4-5所示,表里的IP地址與MAC地址是一一對應(yīng)的。表4-5主機IP地址與MAC地址我們以主機A()向主機B()發(fā)送數(shù)據(jù)為例。在A發(fā)送信息前,必須首先得到B的IP地址與MAC地址的映射關(guān)系。當發(fā)送數(shù)據(jù)時,主機會在自己的ARP緩存表中尋找是否有目標IP地址。如果找到了,也就知道了目標MAC地址,直接把目標MAC地址寫入幀里面發(fā)送就可以了;如果在ARP緩存表中沒有找到相對應(yīng)的IP地址,主機就會在網(wǎng)絡(luò)上發(fā)送一個廣播,目標MAC地址是“FF.FF.FF.FF.FF.FF”,這表示向同一網(wǎng)段內(nèi)的所有主機發(fā)出這樣的詢問:“的MAC地址是什么?”。網(wǎng)絡(luò)上其它主機并不響應(yīng)ARP詢問,只有主機B接收到這個幀時,才向主機A做出這樣的回應(yīng):“的MAC地址是bb-bb-bb-bb-bb-bb”。這樣,主機就知道了主機B的MAC地址,它就可以向主機B發(fā)送信息了。同時它還更新了自己的ARP緩存表,下次再向主機B發(fā)送信息時,直接從ARP緩存表里查找就可以了。ARP緩存表采用了老化機制,在一段時間內(nèi)如果表中的某一行沒有使用,就會被刪除,這樣可以大大減少ARP緩存表的長度,加快查詢速度。簡單地說,B的地址解析協(xié)議實現(xiàn)步驟為:

(1)A檢查自己的ARP表,判斷表中是否有B的IP地址與MAC地址的映射關(guān)系。若找到,則完成APR地址解析,否則轉(zhuǎn)下一步。

(2)A廣播含有自身IP地址與MAC地址映射關(guān)系的請求信息包,請求解析B的IP地址與MAC地址的映射關(guān)系。

(3)所有計算機收到A的請求信息,然后將A的IP地址與MAC地址的映射關(guān)系存入各自的ARP表中。

(4)?B發(fā)送ARP響應(yīng)信息,通知自己的IP也址與MAC地址的對應(yīng)關(guān)系。

(5)?A收到B的響應(yīng)信息,并將B的IP地址與MAC地址的映射關(guān)系存入自己的ARP表中,從而完成B的地址解析。

2.ARP緩存

為使廣播量最小,ARP維護IP地址到媒體訪問控制地址映射的緩存,以便將來使用。ARP緩存包含動態(tài)項目和靜態(tài)項目。動態(tài)項目隨時間推移自動添加和刪除。靜態(tài)項目一直保留在緩存中,直到重新啟動計算機為止。每個動態(tài)ARP緩存項的潛在生命周期是10分鐘。新加到緩存中的項目帶有時間戳。如果某個項目添加后2分鐘內(nèi)沒有再使用,則此項目過期,并從ARP緩存中刪除。如果某個項目已在使用,則又收到2分鐘的生命周期。如果某個項目始終在使用,則會另外收到2分鐘的生命周期,一直到10分鐘的最長生命周期。

可以使用“arp”命令查看ARP緩存。要查看ARP緩存,就要在命令提示符下鍵入“arp–a”;要查看“arp”命令行選項,就要在命令提示符下鍵入“arp/?”。注意,每個網(wǎng)絡(luò)適配器都有自己的ARP緩存。為提高效率,ARP使用了高速緩存技術(shù)。在每臺使用ARP的主機中,都保留了一個專用的內(nèi)存區(qū),存放最近取得的IP地址,與物理地址對應(yīng)。一旦收到ARP應(yīng)答,主機就將獲得的IP地址和物理地址存入緩存。欲發(fā)送報文時,首先去緩存中查找相應(yīng)的項,若找不到,再利用ARP進行地址解析。由于多數(shù)網(wǎng)絡(luò)通信都要連續(xù)發(fā)送多個報文,因此高速緩存大大提高了ARP的效率。另外,在ARP請求報文中放入源主機的IP地址與物理地址對應(yīng),以防止目的主機接著為源主機的物理地址再來一次ARP請求(死鎖)。源主機在廣播自己的地址映射時,網(wǎng)絡(luò)上所有主機都可以將它存入自己的緩存。在新機入網(wǎng)時,令其主動廣播其地址映射,以減少其它主機進行ARP。

3.ARP代理

如果ARP請求是從一個網(wǎng)絡(luò)的主機發(fā)往另一個網(wǎng)絡(luò)上的主機的,那么連接這兩個網(wǎng)絡(luò)的路由器就可以回答該請求,這個過程稱作委托ARP或ARP代理(ProxyARP)。這樣,可以“欺騙”發(fā)起ARP請求的發(fā)送端,使它誤以為路由器就是目的主機,而事實上目的主機在路由器的“另一邊”。路由器的功能相當于目的主機的代理,把分組從其它主機轉(zhuǎn)發(fā)給目的主機。下面舉例說明ARP代理的方法。例如,系統(tǒng)sun與兩個以太網(wǎng)相連(但是,我們也指出過,事實上并不存在這種情況)。在sun和子網(wǎng)140.252.1之間實際存在一個路由器,就是這個具有ARP代理功能的路由器使得sun就好像在子網(wǎng)140.252.1上一樣。路由器取名為netb,在子網(wǎng)和主機sun之間。當子網(wǎng)140.252.1(稱作gemini)上的其它主機有一份IP數(shù)據(jù)報要傳給地址為9的sun時,gemini比較網(wǎng)絡(luò)號140.252和子網(wǎng)號1,因為它們都是相同的,因而在以太網(wǎng)中發(fā)送IP地址9的ARP請求。路由器netb識別出該IP地址屬于它的一個撥號主機,于是把它的以太網(wǎng)接口地址140.252.1作為硬件地址來回答。主機gemini通過以太網(wǎng)發(fā)送IP數(shù)據(jù)報到netb,netb通過拔號鏈路把數(shù)據(jù)報轉(zhuǎn)發(fā)到sun。這個過程對于所有140.252.1子網(wǎng)上的主機來說都是透明的,主機sun實際上是在路由器netb后面進行配置的。如果我們在主機gemini上執(zhí)行arp命令,則經(jīng)過與主機sun通信以后,我們會發(fā)現(xiàn)在同一個子網(wǎng)140.252.1上的netb和sun的IP地址映射的硬件地址是相同的。這通常是使用委托ARP的線索。

ARP代理可以把數(shù)據(jù)報傳送到路由器sun上,但是子網(wǎng)140.252.13上的其它主機是如何處理的呢?路由選擇必須使數(shù)據(jù)報能到達其它主機。這里需要特殊處理,路由選擇表中的表項必須在網(wǎng)絡(luò)140.252的某個地方制定,使所有數(shù)據(jù)報的目的端要么是子網(wǎng)140.252.13,要么是子網(wǎng)上的某個主機,這樣就都指向路由器netb。路由器netb可以把數(shù)據(jù)報傳到最終的目的端,即通過路由器sun。

ARP代理也稱作混合ARP(PromiscuousARP)或ARP出租(ARPHack)。這些名字來自于ARP代理的其它用途:通過兩個物理網(wǎng)絡(luò)之間的路由器可以互相隱藏物理網(wǎng)絡(luò)。在這種情況下,兩個物理網(wǎng)絡(luò)可以使用相同的網(wǎng)絡(luò)號,只要把中間的路由器設(shè)置成一個ARP代理即可,以響應(yīng)一個網(wǎng)絡(luò)到另一個網(wǎng)絡(luò)主機的ARP請求。這種技術(shù)在過去用來隱藏一組在不同物理電纜上運行舊版TCP/IP的主機。分開這些舊主機有兩個共同的理由:其一是它們不能處理子網(wǎng)劃分;其二是它們使用舊的廣播地址(所有比特值為0的主機號,而不是目前使用的所有比特值為1的主機號)。

4.免費ARP

我們可以看到的另一個ARP特性稱作免費ARP(GratuitousARP),指主機發(fā)送ARP查找自己的IP地址。通常,它發(fā)生在系統(tǒng)引導(dǎo)期間進行接口配置的時候。

對于ARP請求中的各字段來說,發(fā)送端的協(xié)議地址和目的端的協(xié)議地址是一致的,即主機bsdi的地址為5。另外,以太網(wǎng)報頭中的源地址0:0:c0:6f:2d:40等于發(fā)送端的硬件地址。免費ARP可以有兩個方面的作用:

(1)一個主機可以通過它來確定另一個主機是否設(shè)置了相同的IP地址。主機bsdi并不希望對此請求有一個回答。但是,如果收到一個回答,那么就會在終端日志上產(chǎn)生一個錯誤消息“以太網(wǎng)地址:a:b:c:d:e:f發(fā)送來重復(fù)的IP地址”。這樣就可以警告系統(tǒng)管理員,某個系統(tǒng)有不正確的設(shè)置。

(2)如果發(fā)送免費ARP的主機正好改變了硬件地址(很可能是主機關(guān)機了,并換了一塊接口卡,然后重新啟動),那么這個分組就可以使其它主機高速緩存中舊的硬件地址進行相應(yīng)的更新。一個比較著名的ARP協(xié)議事實是,如果主機收到某個IP地址的ARP請求,而且它已經(jīng)在接收者的高速緩存中,那么就要用ARP請求中的發(fā)送端硬件地址(如以太網(wǎng)地址)對高速緩存中相應(yīng)的內(nèi)容進行更新。主機接收到任何ARP請求時都要完成這個操作。(ARP請求是在網(wǎng)絡(luò)上廣播的,因此每次發(fā)送ARP請求時,網(wǎng)絡(luò)上的所有主機都要這樣做。)通過發(fā)送含有備份硬件地址和故障服務(wù)器的IP地址的免費ARP請求,使得備份文件服務(wù)器可以順利地接替故障服務(wù)器進行工作。這使得所有目的地為故障服務(wù)器的報文都被送到備份服務(wù)器那里,客戶程序不用關(guān)心原來的服務(wù)器是否出了故障。

盡管免費ARP有以上一些作用,但并不是所有協(xié)議都可以使用免費ARP,因為這要求所有不同類型的客戶端都由正確的ARP協(xié)議實現(xiàn),而有時客戶端的ARP協(xié)議實現(xiàn)與規(guī)范是不一致的。4.3.2逆地址解析協(xié)議

逆地址解析協(xié)議(ReverseAddressResolutionProtocol,即RARP),是在TCP/IP網(wǎng)絡(luò)環(huán)境下,把物理地址轉(zhuǎn)換成相應(yīng)的IP地址的一種協(xié)議。

從物理地址到IP地址:在網(wǎng)絡(luò)中有一類站點,叫作無盤機(DisklessMachine)。無盤機本身不需要大量的磁盤操作,文件放在網(wǎng)絡(luò)中某臺指定的帶盤機中,該帶盤機是它的文件服務(wù)器。一般情況下,無盤機的IP地址都存放在服務(wù)器的硬盤中(IP地址實際上是高層協(xié)議的內(nèi)容,一般不由硬件實現(xiàn),而放在外存中)。那么,如何取得IP地址呢?首先,無盤機與服務(wù)器是通過IP地址通信的(文件訪問顯然是高層軟件的事),因此,不知道IP地址便不可能與服務(wù)器通信,IP地址也就無從獲取。

第二,多數(shù)無盤機都是通過標準的TCP/IP文件傳輸協(xié)議獲取其自舉映象(BootMap)的,即在操作系統(tǒng)運行之前,必須首先獲取并使用IP地址。

在操作系統(tǒng)都沒有的情況下由誰來執(zhí)行查找IP地址的操作呢?讓我們來設(shè)想一下一臺無盤機在不知道自身的IP地址和操作系統(tǒng)啟動之前,能干些什么事情。顯然,它擁有一個物理地址,另外,在ROM中還有一個基本輸入輸出系統(tǒng),能依賴于物理地址進行本地網(wǎng)絡(luò)通信。那么,無盤機獲取IP地址可以采取的方法為:

由ROM基本輸入輸出系統(tǒng)向服務(wù)器發(fā)送(確切地說是廣播,因為此時服務(wù)器的物理地址也是不知道的)請求報文以獲得應(yīng)答;在廣播IP請求時,無盤機使用機器的物理地址作為其標志(因為對于一個物理網(wǎng)絡(luò)來說,物理地址是唯一的,而且可以從硬件中讀取)。

1.RARP的原理

給出一個物理地址,如何通過服務(wù)器解析出對應(yīng)的IP地址,這就是所謂的逆地址解析,其TCP/IP標準為RARP(ReverseAddressResolutionProtocol)。RARP服務(wù)器要響應(yīng)請求,首先必須知道物理地址與IP地址的對應(yīng)關(guān)系。為此,在RARP服務(wù)器中維持著一個本網(wǎng)“物理地址-IP地址”映射表。無盤機發(fā)出的RARP請求中攜帶著本網(wǎng)的物理網(wǎng)絡(luò)地址,當某無盤機發(fā)出RARP請求后,網(wǎng)上所有機器均收到該請求,但只有RARP服務(wù)器處理請求,并根據(jù)請求者的物理地址響應(yīng)請求。服務(wù)器此時已經(jīng)知道無盤機的物理地址,因此不再采用廣播方式,而是直接向無盤機發(fā)送應(yīng)答。這樣,當無盤機收到該回答報文時,便知道了自己的IP地址。到現(xiàn)在,我們已經(jīng)討論了兩個方向上的地址解析問題(ARP與RARP):ARP用于從IP地址到物理地址的轉(zhuǎn)換;RARP用于從物理地址到IP地址的轉(zhuǎn)換。ARP和RARP幾乎是可逆的,因此報文格式完全相同。在具有本地磁盤的系統(tǒng)引導(dǎo)下,一般是從磁盤上的配置文件中讀取IP地址的。但是無盤機,如X終端或無盤工作站,則需要采用其它方法來獲得IP地址。網(wǎng)絡(luò)上的每個系統(tǒng)都具有唯一的硬件地址,它是由網(wǎng)絡(luò)接口生產(chǎn)廠家配置的。無盤系統(tǒng)的RARP實現(xiàn)過程是:從接口卡上讀取唯一的硬件地址,然后發(fā)送一份RARP請求(一幀在網(wǎng)絡(luò)上廣播的數(shù)據(jù)),請求某個主機響應(yīng)該無盤系統(tǒng)的IP地址(在RARP應(yīng)答中)。

2.RARP的分組格式

RARP分組的格式與ARP分組的格式基本一致,它們之間主要的差別是RARP請求或應(yīng)答的幀類型代碼為0x8035,而且RARP請求的操作代碼為3,應(yīng)答操作代碼為4。對應(yīng)于ARP,RARP請求以廣播方式傳送,而RARP應(yīng)答一般是單播(Unicast)傳送的。

3.RARP服務(wù)器的設(shè)計

RARP是由應(yīng)用軟件來實現(xiàn)的,運行RARP應(yīng)用軟件的主機稱為RARP服務(wù)器。

一個新啟動的工作站可以在引導(dǎo)程序的控制下,通過網(wǎng)卡廣播其以太網(wǎng)地址,并請求獲得其IP地址。網(wǎng)絡(luò)上的所有計算機都接收到該請求,但只有被授權(quán)提供RARP服務(wù)的計算機(RARP服務(wù)器)才能處理請求并發(fā)送應(yīng)答。服務(wù)器發(fā)現(xiàn)這個請求后,在其配置文件中找到以太網(wǎng)地址,填寫目標協(xié)議地址字段,并把報文類型從“請求”改為“應(yīng)答”,直接把應(yīng)答發(fā)給提出請求的計算機。發(fā)出請求的計算機可能收到了所有RARP服務(wù)器的應(yīng)答,但是只需記住第一個即可。雖然RARP在概念上很簡單,但是一個RARP服務(wù)器的設(shè)計與系統(tǒng)相關(guān),而且比較復(fù)雜。相反,提供一個ARP服務(wù)器很簡單,通常是TCP/IP在內(nèi)核中實現(xiàn)的一部分。由于內(nèi)核知道IP地址和硬件地址,因此當它收到一個詢問IP地址的ARP請求時,只需用相應(yīng)的硬件地址來提供應(yīng)答就可以了。

作為用戶進程的RARP服務(wù)器的復(fù)雜性在于,服務(wù)器一般要為多個主機(網(wǎng)絡(luò)上所有的無盤系統(tǒng))提供硬件地址到IP地址的映射。該映射包含在一個磁盤文件中(在Unix系統(tǒng)中,一般位于/etc/ethers目錄中)。由于內(nèi)核一般不讀取和分析磁盤文件,因此RARP服務(wù)器的功能就由用戶進程來提供,而不是作為內(nèi)核的TCP/IP實現(xiàn)的一部分。更為復(fù)雜的是,RARP請求是作為一個特殊類型的以太網(wǎng)數(shù)據(jù)幀來傳送的(幀類型字段值為0x8035)。這說明RARP服務(wù)器必須能夠發(fā)送和接收這種類型的以太網(wǎng)數(shù)據(jù)幀。

每個網(wǎng)絡(luò)有多個RARP服務(wù)器,RARP服務(wù)器實現(xiàn)的一個復(fù)雜因素是RARP請求是在硬件層上進行廣播的,這意味著它們不經(jīng)過路由器進行轉(zhuǎn)發(fā)。為了讓無盤系統(tǒng)在RARP服務(wù)器關(guān)機的狀態(tài)下也能引導(dǎo),通常在一個網(wǎng)絡(luò)上(例如一根電纜)要提供多個RARP服務(wù)器。當服務(wù)器的數(shù)目增加時(以提供冗余備份),網(wǎng)絡(luò)流量也隨之增加,因為每個服務(wù)器對每個RARP請求都要發(fā)送RARP應(yīng)答。發(fā)送RARP請求的無盤系統(tǒng)一般采用最先收到的RARP應(yīng)答(對于ARP,我們從來沒有遇到這種情況,因為只有一臺主機發(fā)送ARP應(yīng)答)。另外,還有一種可能發(fā)生的情況是,每個RARP服務(wù)器同時應(yīng)答,這樣會增加以太網(wǎng)發(fā)生沖突的概率。

Internet控制報文協(xié)議ICMP(InternetControlMessageProtocol)是網(wǎng)絡(luò)層的一部分。它由網(wǎng)絡(luò)中的主機和路由器使用,用來交換支持數(shù)據(jù)報傳輸?shù)男畔nternet組管理協(xié)議IGMP(InternetGroupManagem

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論