




已閱讀5頁,還剩139頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1,第5章 IP協(xié)議和路由選擇,廣東韶關(guān)學院信息工程學院 駱耀祖,本章討論TCP/IP體系結(jié)構(gòu)的網(wǎng)際層協(xié)議,介紹了IP 地址子網(wǎng)和子網(wǎng)掩碼等概念。本章還討論了路由選擇及其原理,介紹了常用的幾種動態(tài)選路協(xié)議以及無類型域間選路方面的知識。在設(shè)計網(wǎng)絡(luò)方案時,對IP協(xié)議有較深入的了解,將會有助于網(wǎng)絡(luò)的規(guī)劃設(shè)計。,5.1 網(wǎng)際層協(xié)議,在TCP/IP協(xié)議族中,網(wǎng)際層大致對應(yīng)OSI模型的網(wǎng)絡(luò)層。網(wǎng)際層最主要的協(xié)議是IP協(xié)議,其基本功能是尋址和分片。IP協(xié)議處理了地址的問題,將多個分組交換網(wǎng)絡(luò)連接起來,在源地址和目的地址之間傳送數(shù)據(jù)報。IP提供對數(shù)據(jù)大小的重新組裝功能,以適應(yīng)不同網(wǎng)絡(luò)對數(shù)據(jù)報大小的要求。,5.1.1 IP地址,每臺TCP/IP主機由一個邏輯IP地址確定。在Ipv4中,每個IP地址的長度為32位即4字節(jié),由四個八位域(叫作octets)組成。IP地址有二進制表示和點分十進制表示兩種表示形式。使用點分十進制表示時,表示為4個0-255之間的十進制數(shù),每個Octets用句點分開。 IP地址由網(wǎng)絡(luò)號和主機號兩部分組成。其中網(wǎng)絡(luò)號標識一個物理的網(wǎng)絡(luò),同一個網(wǎng)絡(luò)上所有主機具有同一個網(wǎng)絡(luò)號,該號在互聯(lián)網(wǎng)中是唯一的;而主機號確定網(wǎng)絡(luò)中的一個工作站、服務(wù)器、路由器或其它TCP/IP主機。對于同一個網(wǎng)絡(luò)號來說,主機號是唯一的。,1. IP 地址類型,將 IP 地址按一定范圍分配,稱為將 IP 地址分類。圖 5.1 給出了四類IP地址的結(jié)構(gòu)。,A類地址:A 類地址用于非常大的網(wǎng)絡(luò)或相關(guān)網(wǎng)絡(luò)的集合,擁有很大數(shù)量的主機,最高位為0,緊跟的7位表示網(wǎng)絡(luò)號,余24位表示主機號,總共允許有126個網(wǎng)絡(luò)。 B類地址:B 類地址用于超過 254 個節(jié)點(但少于65534個節(jié)點)的中等規(guī)模和大規(guī)模的網(wǎng)絡(luò)中,最高兩位總被置于二進制的10,允許有16384個網(wǎng)絡(luò)。因為 B 類地址的數(shù)量有限,通常只能用給一個組織分配幾個C類地址的方法代替分配B類地址。 C類地址:較小的組織可采用C 類地址。C 類地址高三位被置為二進制的110,允許大約200萬個網(wǎng)絡(luò)。每個網(wǎng)絡(luò)可有254個節(jié)點。 D類地址:被用于多播組用戶,高四位總被置為1110,余下的位用于標明客戶機所屬的組。E 類地址則被保留用于實驗和開發(fā)。,表 5.1各IP類的地址范圍,2. “保留”IP 地址,因特網(wǎng)賦號管理局(Internet Assigned Numbers Authority,IANA)已經(jīng)在 A、B 和 C 類地址中保留了一些網(wǎng)絡(luò)號,無需注冊就可以使用這些地址。表5.2是保留IP 地址的范圍。對于那些完全沒有連接到因特網(wǎng)的網(wǎng)絡(luò),可從使用這些保留的網(wǎng)絡(luò)地址。如果要實現(xiàn)對另一個網(wǎng)絡(luò)(如因特網(wǎng))的訪問,可將某個主機用作網(wǎng)關(guān)。本地網(wǎng)絡(luò)通過內(nèi)部IP 地址來訪問該網(wǎng)關(guān),而外部世界則通過其正式注冊的地址(由互聯(lián)網(wǎng)服務(wù)供應(yīng)商分配)知道該網(wǎng)關(guān)。,表5.2保留地址,3. 特殊的IP地址,在 TCP/IP 網(wǎng)絡(luò)中有幾個地址具有特殊含義: 以零開頭的地址表示當前網(wǎng)絡(luò)中的本地節(jié)點。例如,3 指當前網(wǎng)絡(luò)中的 23 號工作站。地址 指當前工作站。 將地址上所有位全置為 1(也就是值 255)代表“所有地址”。所以,55 意味著將消息發(fā)送給 192.18. 網(wǎng)絡(luò)上的所有節(jié)點;類似地,55 意味著將消息發(fā)送給因特網(wǎng)上的每個節(jié)點。這些地址用于多點廣播消息和服務(wù)公告。 因此,給系統(tǒng)分配節(jié)點號時,不要使用 0 或 255,它們都是保留數(shù)字,具有特殊含義。,在進行故障排除和網(wǎng)絡(luò)診斷時,以 127 開頭的地址非常重要。形式上將網(wǎng)絡(luò)地址塊 127.x.x.x 定義為 A 類地址,保留了該地址塊用于網(wǎng)絡(luò)軟件測試以及本機進程間通信,稱為回送地址(loopback)。根據(jù)慣例,大多數(shù)系統(tǒng)把IP地址分配給這個接口,并命名為localhost。一個傳給內(nèi)部回送地址的IP數(shù)據(jù)報不能在任何網(wǎng)絡(luò)上出現(xiàn)。主機和網(wǎng)關(guān)不能為該地址廣播任何尋徑信息。,5.1.2 IP協(xié)議的特征和基本功能,1. IP協(xié)議的特征 (1)IP協(xié)議是無連接的 無需征得目的方“同意” 即可向目的方發(fā)送IP數(shù)據(jù)報。 (2)IP協(xié)議的數(shù)據(jù)報傳送服務(wù)是不可靠的 因為省略了復雜的可靠性傳輸機制,所以IP協(xié)議能盡量高效率地進行傳送,減輕了網(wǎng)關(guān)的負擔,提高了網(wǎng)關(guān)的吞吐率。 (3)IP協(xié)議隱藏了網(wǎng)絡(luò)細節(jié) IP協(xié)議不關(guān)心具體物理網(wǎng)絡(luò)是如何連接的,各個具體物理網(wǎng)絡(luò)所做的工作是將IP數(shù)據(jù)報轉(zhuǎn)換成自己的協(xié)議所要求的格式發(fā)送到網(wǎng)絡(luò)上;將網(wǎng)絡(luò)上接收的數(shù)據(jù)報提交給IP,由IP進行分析和路由處理。對各種具體物理網(wǎng)絡(luò)協(xié)議來說,IP數(shù)據(jù)報只不過是用戶數(shù)據(jù)而已。,2. IP的兩個基本功能,IP的兩個基本功能是尋址和分片。IP可以根據(jù)數(shù)據(jù)報首部中包括的目的地址將數(shù)據(jù)報傳送到目的地址,在此過程中IP負責選擇傳送的道路,這種選擇道路稱為路由功能。如果有些網(wǎng)絡(luò)內(nèi)只能傳送小數(shù)據(jù)報,IP可以將數(shù)據(jù)報重新組裝并在報首部字段內(nèi)注明。IP模塊中包括這些基本功能,這些模塊存在于網(wǎng)絡(luò)中的每臺主機和網(wǎng)關(guān)上,而且這些模塊(特別在網(wǎng)關(guān)上)有路由選擇和其它服務(wù)功能。對IP來說,數(shù)據(jù)報之間沒有什么聯(lián)系。,圖 5.2 傳輸路徑圖,(1)尋址,IP主要處理地址的問題。IP模塊將IP地址和本地網(wǎng)絡(luò)地址加以映射,把名字和地址進行映射的工作由上層協(xié)議完成。IP支持廣域網(wǎng)和本地網(wǎng)接口技術(shù),使用網(wǎng)絡(luò)設(shè)備接口規(guī)范NDIS向網(wǎng)絡(luò)接口層提交幀。 在將網(wǎng)絡(luò)地址和本地網(wǎng)絡(luò)地址進行映射時,必須考慮在網(wǎng)絡(luò)主機地址和網(wǎng)絡(luò)/主機接口之間的映射。即有些主機可能使用幾個不同的IP地址(可以把本地網(wǎng)絡(luò)地址理解為MAC地址),例如某一臺主機有幾個處理端口,而每個端口都有幾個邏輯的IP地址的情況,允許幾個IP地址對應(yīng)一個接口。同時還應(yīng)該考慮到一臺主機有多個處理接口,對于從不同路徑收到的信息應(yīng)該看作來自同一個IP地址。,(2)分片和重組,網(wǎng)絡(luò)的最大傳輸單元 MTU(Maximum Transfer Unit)是由物理網(wǎng)絡(luò)硬件決定的,它規(guī)定了在網(wǎng)絡(luò)中傳輸?shù)奈锢韼淖畲箝L度。任何時候IP層接收到一份要發(fā)送的IP數(shù)據(jù)報時,它要判斷向本地哪個接口發(fā)送數(shù)據(jù)(路由選擇),并查詢該接口獲得其MTU。IP把MTU與數(shù)據(jù)報長度進行比較,如果需要則進行分片。分片可以發(fā)生在原始發(fā)送端主機上,也可以發(fā)生在中間路由器上。 與由硬件決定的 MTU不同,IP數(shù)據(jù)報大小是由軟件所決定的,在一定范圍內(nèi)可以任意選擇。這樣,可以通過選擇適當?shù)腎P數(shù)據(jù)報大小來適應(yīng)互聯(lián)網(wǎng)中不同的 MTU。,然而,假如以最大 MTU作為數(shù)據(jù)報大小的上限,則在 MTU較小的網(wǎng)絡(luò)上不能實現(xiàn)數(shù)據(jù)封裝;假如以最小MTU作為數(shù)據(jù)報的上限,則在 MTU較大的網(wǎng)絡(luò)上必然造成硬件能力的浪費。因此,IP協(xié)議在確定數(shù)據(jù)報大小時,簡單地以“方便”為原則。也就是說,在不超過版本本身規(guī)定的數(shù)據(jù)報大小的前提下,IP協(xié)議選擇當前最合適的數(shù)據(jù)報大小(所謂“合適”指在信源機所在物理網(wǎng)絡(luò)上能進行最大限度封裝)。同時,IP協(xié)議提供分片機制,在 MTU較小的網(wǎng)絡(luò)上,將數(shù)據(jù)報分成若干較小的部分進行傳輸。這種較小的部分叫作片。,圖 5.3 數(shù)據(jù)報的分片情況,當IP數(shù)據(jù)報被分片后,每一片都成為一個分組,具有自己的IP首部,并在選擇路由時與其他分組獨立。這樣,當數(shù)據(jù)報的這些片到達目的端時有可能會失序,但是在IP首部中有足夠的信息讓接收端能正確組裝這些數(shù)據(jù)報片。 MTU大小的選擇可以根據(jù)網(wǎng)絡(luò)通信線路的質(zhì)量來考慮。如果通信線路的質(zhì)量好,則可以選擇 MTU較大一些,以提高網(wǎng)絡(luò)效率。如果通信線路質(zhì)量較差,經(jīng)常出現(xiàn)丟包或數(shù)據(jù)錯誤的情況,則 MTU要小一些,一旦在需要數(shù)據(jù)重傳時,重傳的數(shù)據(jù)量會小一些,減輕了網(wǎng)絡(luò)的負擔。,5.1.3 IP地址的規(guī)劃,如果只是設(shè)計企業(yè)或行業(yè)內(nèi)部網(wǎng),可采用保留IP地址。如果要與其它網(wǎng)絡(luò)互聯(lián),應(yīng)該與其它網(wǎng)絡(luò)的管理機構(gòu)做好IP地址規(guī)劃的協(xié)調(diào)工作。如果所設(shè)計的網(wǎng)絡(luò)要連接Internet,則應(yīng)向Internet 服務(wù)提供商ISP(Internet Service Provider)申請IP地址。 在IP地址規(guī)劃工作中,一個網(wǎng)絡(luò)實際上可能會有多個物理網(wǎng)段,把這些網(wǎng)段稱之為子網(wǎng)。每個子網(wǎng)使用不同的網(wǎng)絡(luò)號或子網(wǎng)號。劃分網(wǎng)絡(luò)的原因可能是:聯(lián)網(wǎng)技術(shù)的電氣(物理層)限制、為了將網(wǎng)絡(luò)功能邏輯地分成多個工作組、減少網(wǎng)絡(luò)段負載或是需要用高速線路連接遠程位置。所謂“劃分子網(wǎng)”就是將大型的、實際的網(wǎng)絡(luò)分成較小的邏輯網(wǎng)絡(luò)的過程。,1. 確定網(wǎng)絡(luò)中的物理段數(shù)量即子網(wǎng)數(shù),(1)以太網(wǎng) 無論是采用同軸電纜還是采用雙絞線,凡是通過集線器HUB或以太網(wǎng)交換機相連接,能直接相互通信的網(wǎng)上設(shè)備視為處在同一網(wǎng)絡(luò)中。 (2)點對點網(wǎng)絡(luò) 點對點網(wǎng)絡(luò)最常見的是DDN網(wǎng)絡(luò)或撥號網(wǎng)絡(luò),其上多運行SLIP、PPP協(xié)議,這時候連線兩端的兩臺機器構(gòu)成一個獨立的網(wǎng)絡(luò)。圖 5.4中有三臺機器,其中一臺機器的兩個串行口與另外一臺機器相連,采用SLIP協(xié)議,這三臺機器構(gòu)成兩個網(wǎng)絡(luò)。,(3)X.25網(wǎng)絡(luò)/幀中繼網(wǎng)絡(luò) 雖然X.25/FR用戶端設(shè)備(DTE)都是接入電信系統(tǒng)的分組交換機,可以將其視為處在同一個網(wǎng)絡(luò)上(當然也可看成不同網(wǎng)絡(luò),視用戶自己的需求而定),因為不需要IP尋徑,只需通過物理地址即可連接。,(4)互聯(lián)網(wǎng)絡(luò)的規(guī)劃,則該互聯(lián)網(wǎng)絡(luò)共有4個網(wǎng)絡(luò)。然后就可根據(jù)網(wǎng)絡(luò)號為設(shè)備分配IP地址。假設(shè)使用A類地址,則:,5.1.4 子網(wǎng)和子網(wǎng)掩碼,上一節(jié)對互聯(lián)網(wǎng)絡(luò)IP地址的規(guī)劃的討論,主要是因為使用高速線路連接遠程位置或受到網(wǎng)絡(luò)的電氣(物理層)限制而劃分網(wǎng)絡(luò)的過程。在局域網(wǎng)中,有時為了將網(wǎng)絡(luò)功能邏輯地分成多個工作組或為了減少網(wǎng)絡(luò)段的負載,常常也將大型的、實際的網(wǎng)絡(luò)分成較小的邏輯網(wǎng)絡(luò)。網(wǎng)段劃分的結(jié)果是使整個網(wǎng)絡(luò)變成由一些小型子網(wǎng)塊組成的網(wǎng)絡(luò),從而易于管理。這些較小的子網(wǎng)之間的通信通過網(wǎng)關(guān)和路由器進行。如圖5.6所示。,IP地址的網(wǎng)絡(luò)部分由IP地址類的網(wǎng)絡(luò)位和子網(wǎng)信息位組成。從表示主機的地址位中借用若干位表示子網(wǎng)。例如要將一個 B 類網(wǎng)絡(luò)分成 64 個單獨的子網(wǎng),需要借用主機地址的6位表示子網(wǎng)。B類網(wǎng)絡(luò)表示網(wǎng)絡(luò)部分的位數(shù)是 16,再加上子網(wǎng)部分的 6 位,表示網(wǎng)絡(luò)的共有 22 位。這種劃分的初步結(jié)果是有 64-2=62個網(wǎng)絡(luò),每個網(wǎng)絡(luò) 1024-2=1022個節(jié)點。,1. Internet地址解釋,TCP/IP上的每臺主機都需要一個子網(wǎng)掩碼。它是一個4字節(jié)的地址,用來封裝或“屏蔽”IP地址的一部分,以區(qū)分網(wǎng)絡(luò)號和主機號。 設(shè)置子網(wǎng)掩碼實際上就是確定網(wǎng)絡(luò)地址在何處結(jié)束以及主機地址在何處開始。子網(wǎng)掩碼是由全為“1”的網(wǎng)絡(luò)部分和全為零的主機部信息組成。將IP地址中的每一位與子網(wǎng)掩碼中相應(yīng)的位按邏輯“與”作比較,如果發(fā)現(xiàn)源IP地址和目的IP地址相“與”的結(jié)果相同,IP協(xié)議就知道數(shù)據(jù)報屬于本地網(wǎng)上的某臺主機;否則數(shù)據(jù)報將被送到路由器上。 默認的子網(wǎng)掩碼值用于一個還沒有劃分子網(wǎng)的網(wǎng)絡(luò)。在它的4個字節(jié)里,所有對應(yīng)網(wǎng)絡(luò)號的位都被置為1,于是每個八位體的十進制值都是255;所有對就主機號的位都置為0。例如:C類網(wǎng)地址和相應(yīng)的默認掩碼是。當網(wǎng)絡(luò)還沒有劃分為子網(wǎng)時,可以使用默認的子網(wǎng)掩碼;當網(wǎng)絡(luò)被劃分為若干個子網(wǎng)時,就要使用自定義的子網(wǎng)掩碼。,2. 定義子網(wǎng)掩碼,確定了子網(wǎng)的劃分方法后,就可按如下步驟定義子網(wǎng)掩碼: (1)確定子網(wǎng)的數(shù)量及每子網(wǎng)的主機數(shù),并將子網(wǎng)的數(shù)量轉(zhuǎn)換成二進制數(shù)。 (2)計算物理網(wǎng)段數(shù)(子網(wǎng)數(shù))的二進制位數(shù)。 (3)以高位順序(從左到右)將這個反碼轉(zhuǎn)換成相應(yīng)的十進制值。,3. 確定子網(wǎng)號 子網(wǎng)號與子網(wǎng)掩碼的位數(shù)相同。 (1)列出子網(wǎng)號按高到低的順序使用的位數(shù)。 (2)將最低的一位1轉(zhuǎn)換成十進制,用這個值來定義子網(wǎng)的增量。 (3)用這個增量迭加從0開始的子網(wǎng)號,直到下一個值為256。 4. 確定子網(wǎng)中的主機號范圍 從上面的例子看出,一旦定義了子網(wǎng)號,就已經(jīng)確定了每個子網(wǎng)的主機號范圍。在做每次增量后得出的值表明了子網(wǎng)中主機號范圍的起始值。,5. 子網(wǎng)示例,一個 C 類網(wǎng)由下列信息組成: NNNNNNNN.NNNNNNNN.NNNNNNNN.HHHHHHHH 其中:N = 網(wǎng)絡(luò),H = 主機。每一位置表示 32 位地址空間中的一位。如果將這個 C 類網(wǎng)取出m位給子網(wǎng),可形成2m-2個子網(wǎng)。因此,當m=2時可形成2個子網(wǎng)。掩碼如下: 11111111.11111111.11111111.11000000 如果用十進制數(shù)和點符號表示(即點分四組(dotted quad)這個地址,則子網(wǎng)掩碼是 92。該掩碼用于這個特定網(wǎng)絡(luò)中所有子網(wǎng)上的節(jié)點之間的通信。 相反,如果從 IP 地址的主機部分取出三位,則其網(wǎng)絡(luò)掩碼如下: 11111111.11111111.11111111.11100000 該子網(wǎng)掩碼是 24。可以使用的子網(wǎng)絡(luò)有6個(和24與原來的網(wǎng)絡(luò)或子網(wǎng)掩碼相同,不能使用)。每一個網(wǎng)絡(luò)可有30個節(jié)點。(本應(yīng)該是 32 個,但由于全為 1 和全為 0 是不合法的主機地址,所以不能使用)。,表 5.3子網(wǎng)示例的可用地址,5.1.5 可變長子網(wǎng)掩碼,上面的子網(wǎng)劃分有一個缺點:子網(wǎng)掩碼一經(jīng)選定,網(wǎng)絡(luò)地址的數(shù)目被限制在一個固定的范圍內(nèi)。如果一個組織有幾個相對大的子網(wǎng),而又有一些相對較小的子網(wǎng),每個子網(wǎng)大概只有幾臺計算機。如果將一個C類地址分成6個子網(wǎng)(每個子網(wǎng)可以包含30臺計算機)。大的子網(wǎng)基本上完全利用了IP地址范圍,但是小的子網(wǎng)卻造成了許多IP地址的浪費。 為了避免IP浪費,出現(xiàn)了允許應(yīng)用不同大小的子網(wǎng)掩碼來對IP地址空間進行子網(wǎng)劃分的解決方案。這種新的方案就叫作可變長子網(wǎng)掩碼VLSM(Variable Length Subnet Masking)。 VLSM用一個十分直觀的方法來表示,那就是在IP地址后面加上“/網(wǎng)絡(luò)號及子網(wǎng)絡(luò)號編址位數(shù)”來表示。例如:/27,就表示前27位表示網(wǎng)絡(luò)號。,5.1.6 下一代的IP,由 IPv4 到IPv6的改變主要集中在以下幾個方面: (1)地址容量的擴展 IPv6把 IP 地址的大小從32位增至128位,可以支持更多的地址層次,更大數(shù)量的節(jié)點,地址自動配置更簡單。(2)首部格式的簡化 一些 IPv4 首部字段被刪除或者成為可選字段,減少了一般情況下數(shù)據(jù)報的處理開銷以及IPv6首部占用的帶寬。 (3)支持擴展和選項的改進 IP 首部選項編碼方式的修改導致更加高效的傳輸,在選項長度方面更少的限制,以及將來引入新的選項時更強的適應(yīng)性。 (4)數(shù)據(jù)流標簽的能力 加入一個新的能力,使得那些發(fā)送者要求特殊處理的屬于特別的傳輸“流”的數(shù)據(jù)報可貼上“標簽”,如非默認質(zhì)量服務(wù)或 “實時”服務(wù)。 (5)認證和保密的能力 在IPv6中說明了為支持認證、數(shù)據(jù)完整性以及數(shù)據(jù)保密(可選)的擴展。,2. IPv4向IPv6的過渡,盡管IPv6比IPv4具有明顯的先進性,在短時間內(nèi)要將Internet和各個企業(yè)網(wǎng)絡(luò)中的所有系統(tǒng)全部從IPv4升級到IPv6是不可能的。為此,做為IPv6研究工作的一個部分,IETF制定了推動IPv4向IPv6過渡的方案,其中包括三個機制:兼容IPv4的IPv6地址、雙IP協(xié)議棧和基于IPv4通道的IPv6。 (1)兼容IPv4的IPv6地址是一種特殊的IPv6單點廣播地址,一個 IPv6節(jié)點與一個IPv4節(jié)點可以使用這種地址在IPv4網(wǎng)絡(luò)中通信。這種地址是由96個0位加上32位IPv4地址組成的,例如,假設(shè)某節(jié)點的IPv4地址是,那么兼容IPv4的IPv6地址就是: 0: 0:0:0:0:0:C038:101。,(2)雙IP協(xié)議棧是在一個系統(tǒng)(如一個主機或一個路由器)中同時使用IPv4和IPv6兩個協(xié)議棧。這類系統(tǒng)既擁有IPv4地址,也擁有IPv6地址,因而可以收發(fā)IPv4和IPv6兩種IP數(shù)據(jù)報。也就是用兩套,需要使用IPv4的時候就使用IPv4,需要使用IPv6的時候就使用IPv6。 (3) 基于IPv4通道的IPv6是一種更為復雜的技術(shù),它是將整個IPv6數(shù)據(jù)報封裝在IPv4數(shù)據(jù)報中,由此實現(xiàn)在當前的IPv4網(wǎng)絡(luò)(如Internet)中IPv6節(jié)點與IPv4節(jié)點之間的IP通信?;贗Pv4通道的IPv6實現(xiàn)過程分為三個步驟:封裝、解封和通道管理。封裝,是指由通道起始點創(chuàng)建一個IPv4首部,將IPv6數(shù)據(jù)報裝入一個新的IPv4數(shù)據(jù)報中。解封,是指由通道終節(jié)點移去IPv4首部,還原原始的IPv6數(shù)據(jù)報。通道管理,是指由通道起始點維護通道的配置信息。,當進行通信的兩個主機都有兼容IPv4的IPv6地址時,數(shù)據(jù)發(fā)送方主機將建立一個主機對主機通道。通道起始點(數(shù)據(jù)發(fā)送方主機)確定數(shù)據(jù)接收方主機就是通道終節(jié)點,并自動從其兼容I Pv4的IPv6地址中抽取后32個地址位以確定通道終節(jié)點的IPv4地址,這種類型的通道被稱為自動通道(automated tunneling)。 雙IP協(xié)議棧和基于IPv4的IPv6網(wǎng)絡(luò)使IPv4網(wǎng)絡(luò)能夠以可控的速度向IPv6遷移。在開始向IPv6過渡之前,首先必須設(shè)置一個同時支持IPv4和IPv6的新的DNS服務(wù)器。,5.2 地址解析與動態(tài)主機配置,IP地址將網(wǎng)絡(luò)地址隱藏起來,使IP表現(xiàn)出統(tǒng)一的地址格式。但在實際進行通訊時,IP地址是不能被物理層所識別的,物理網(wǎng)絡(luò)所使用的依然是物理地址。因此必須對地址進行轉(zhuǎn)換或映射。地址之間的映射叫地址解析(resolution)。地址解析包括從IP地址到物理地址的映射和從物理地址到IP地址的映射。,5.2.1 物理地址解析,數(shù)據(jù)鏈路如以太網(wǎng)或令牌環(huán)網(wǎng)都有自己的尋址機制(常常為48bit地址),這是使用數(shù)據(jù)鏈路的任何網(wǎng)絡(luò)層都必須遵從的。要在網(wǎng)絡(luò)上通信,主機就必須知道對方主機的硬件地址。所謂地址解析就是將32bit的IP地址映射為數(shù)據(jù)鏈路層使用的硬件地址的機制和過程。地址解析協(xié)議ARP(Address Resolution Protocol)把IP地址解析成MAC地址(例如48bit的以太網(wǎng)地址)。,1. 解釋本地IP地址,在在圖 5.7中的網(wǎng)絡(luò)上,A(信源機)要與B(信宿機)進行通信,但不知道B的物理地址。A主機利用ARP協(xié)議,將本地網(wǎng)絡(luò)中的B主機的IP地址解析為硬件地址。步驟如下: (1)A主機初始化ARP請求。當確定是本地IP地址時,源主機在ARP緩存中查找目標主機的硬件地址。 (2)若主機A的ARP緩存內(nèi)無此信息,則主機A會發(fā)送一個請求ARP的廣播包,此包內(nèi)包含著其欲通信的主機的IP地址,也就是主機B的IP地址。 (3)本地網(wǎng)上的每個主機都收到廣播并尋找相符的IP地址。 (4)當主機B收到此廣播包后,會將自己的硬件地址利用響應(yīng)ARP的包傳送給主機A,并更新自己的ARP緩存,也就是將主機A的IP地址/硬件地址保存起來,以供日后使用。 (5)源主機A在得到主機B的硬件地址后,就可以與主機B通信,同時也會將主機B的IP地址和硬件地址保存到自己的APR緩存內(nèi)。,2. 解析遠程IP地址,(1)通信請求初始化時,得知目標IP地址為遠程地址。源主機在本地路由表中查找,若無,源主機認為是默認網(wǎng)關(guān)的IP地址。在ARP緩存中查找符合該網(wǎng)關(guān)記錄的IP地址(硬件地址)。 (2)若沒找到該網(wǎng)關(guān)的記錄,ARP將廣播請求網(wǎng)關(guān)地址而不是目標主機的地址。路由器用自己的硬件地址響應(yīng)源主機的ARP請求。源主機則將數(shù)據(jù)包送到路由器以傳送到目標主機的網(wǎng)絡(luò),最終達到目標主機。 (3)在路由器上,由IP決定目標IP地址是本地還是遠程。如果是本地,路由器用ARP(緩存或廣播)獲得硬件地址。如果是遠程,路由器在其路由表中查找該網(wǎng)關(guān),然后運用ARP獲得此網(wǎng)關(guān)的硬件地址。數(shù)據(jù)包被直接發(fā)送到下一個目標主機。 (4)目標主機收到請求后,形成ICMP響應(yīng)。因源主機在遠程網(wǎng)上,將在本地路由表中查找源主機網(wǎng)的網(wǎng)關(guān)。找到網(wǎng)關(guān)后,ARP即獲取它的硬件地址。 (5)如果此網(wǎng)關(guān)的硬件地址不在ARP緩存中,通過ARP廣播獲得。一旦它獲得硬件地址,ICMP響應(yīng)就送到路由器上,然后傳到源主機。,圖 5.8 在不同網(wǎng)絡(luò)中應(yīng)用ARP,5.2.2 ARP的原理,1. ARP的高速緩存技術(shù) ARP高效運行的關(guān)鍵是每臺使用ARP的主機中都有一個ARP高速緩存。ARP在緩存中存放了最近被解釋的IP地址到MAC地址之間的映射記錄,以減少廣播量。由于多數(shù)網(wǎng)絡(luò)通信都要連續(xù)發(fā)送多個報文,所以高速緩存大大提高了ARP的效率。ARP緩存總是為本地子網(wǎng)保留硬件廣播地址(0xffffffffffffh)作為一個永久項。此項使主機能夠接受ARP廣播。當查看緩存時,該項不會顯示。 另外,在ARP請求報文中還放入信源機的IP地址和MAC地址的映射,以防止信宿機接著為信源機的MAC地址再來一次ARP請求,形成死鎖。信源機在廣播自己的地址映射時,網(wǎng)絡(luò)上所有主機都可以將它存入自己的緩存。在新機入網(wǎng)時,主動廣播自己的地址映射,以減少其它主機對該新主機的ARP請求廣播。,ARP 協(xié)議使用一個arp_table的表。表中每個條目描述一個 IP 和物理地址的對應(yīng)。這些條目在IP 地址需要轉(zhuǎn)換的時候創(chuàng)建,隨著時間推移變得陳舊的時候被刪除。 ARP 表包含一個指針(arp_tables 向量表)的表,把 arp_table的條目鏈接在一起。這些條目被緩存,以加速對它們的訪問。每一個條目用它的 IP地址的最后兩個字節(jié)做表的索引進行查找,然后跟蹤這個條目鏈,直到找到正確的條目。 Linux 也緩存從 arp_table條目預(yù)先建立的硬件頭,用 hh_cache 數(shù)據(jù)結(jié)構(gòu)的形式進行緩存。 為了讓ARP 表中包括最新的條目,每當需要分配一個新的條目而 ARP 表到達了它的最大尺寸的時候,就查找最舊的條目并刪除它們,從而更新緩存表。每個動態(tài)ARP高速緩存項的生存時間從被創(chuàng)建時開始算起為10分鐘。2分鐘內(nèi)未用則刪除。緩存容量滿時,刪除最老的記錄。,在ARP背后有一個基本概念,那就是網(wǎng)絡(luò)接口有一個硬件地址(一個48bit的值,以標識不同的以太網(wǎng)或令牌環(huán)網(wǎng)絡(luò)接口),在硬件層次上進行的數(shù)據(jù)幀交換必須使用正確的硬件地址。因此,僅僅知道主機的IP地址并不能讓內(nèi)核發(fā)送一幀數(shù)據(jù)給主機。內(nèi)核(如以太網(wǎng)驅(qū)動程序)必須知道目的端的硬件地址才能發(fā)送數(shù)據(jù)。ARP的功能是在32bitIP地址和采用不同網(wǎng)絡(luò)技術(shù)的硬件地址之間提供動態(tài)映射。 點對點鏈路不使用ARP。當設(shè)置這些鏈路時(一般在引導過程進行),必須告知內(nèi)核鏈路每一端的IP地址。并不涉及像以太網(wǎng)地址這樣的硬件地址。,2. ARP高速緩存超時設(shè)置 在ARP高速緩存中的表項一般都要設(shè)置超時值。從伯克利系統(tǒng)演變而來的系統(tǒng)一般對完整的表項設(shè)置超時值為20分鐘,而對不完整的表項(例如在以太網(wǎng)上對一個不存在的主機發(fā)出ARP請求)設(shè)置超時值為3分鐘。當這些表項再次使用時,這些實現(xiàn)一般都把超時值重新設(shè)為20分鐘。,3. ARP命令,Arp命令加上參數(shù)-a可顯示ARP高速緩存中的所有內(nèi)容。超級用戶可以用參數(shù)-d來刪除ARP高速緩存中的某一項內(nèi)容。(可以在運行一些例子之前使用該命令格式,以看清楚ARP的交換過程。) 另外,可以通過參數(shù)-s來增加高速緩存中的內(nèi)容。這個參數(shù)需要主機名和以太網(wǎng)地址:對應(yīng)于主機名的IP地址和以太網(wǎng)地址被增加到高速緩存中。新增加的內(nèi)容是永久性的(比如,它沒有超時值),除非在命令行的末尾附上關(guān)鍵字temp。 位于命令行末尾的關(guān)鍵字pub和-s參數(shù)一起,可以使系統(tǒng)起著主機ARP代理的作用。系統(tǒng)將回答與主機名對應(yīng)的IP地址的ARP請求,并以指定的以太網(wǎng)地址作為回答。如果廣播的地址是系統(tǒng)本身,那么系統(tǒng)就為指定的主機名起著委托ARP代理的作用。,5.2.3 逆向地址解析協(xié)議,逆向地址解析(Reverse Address Resolution Protocol, RARP )的功能是在給出一個物理網(wǎng)絡(luò)地址時,通過服務(wù)器解析出對應(yīng)的IP地址。,1. RARP的原理,無盤機的啟動文件放在網(wǎng)絡(luò)中的某臺文件服務(wù)器上。無盤機在操作系統(tǒng)運行之前,必須首先獲取并使用IP地址,然后通過標準的TCP/IP文件傳輸協(xié)議獲取在文件服務(wù)器上的自舉映象(bootmap)。 無盤機獲取IP地址的實現(xiàn)過程步驟如下: (1)由ROM基本輸入輸出系統(tǒng)向服務(wù)器發(fā)送(確切地說是廣播,因為此時服務(wù)器的物理地址也是不知道的)請求報文以獲得應(yīng)答。 (2)在廣播IP請求時,無盤機使用機器的物理地址作為其標志。因為從網(wǎng)卡中讀取的物理地址是唯一的。 (3)RARP服務(wù)器要響應(yīng)請求,首先必須知道物理地址與IP地址對應(yīng)關(guān)系.為此,在RARP服務(wù)器中維持著一個本網(wǎng) “物理地址到IP地址” 的映射表。 (4)無盤機發(fā)出的RARP請求中攜帶著本機的物理網(wǎng)絡(luò)地址,當某無盤機發(fā)出RARP請求后,網(wǎng)上所有機器均收到該請求,但只有RARP服務(wù)器處理請求并根據(jù)請求者物理地址響應(yīng)請求。此時由于服務(wù)器已經(jīng)知道無盤機的物理地址,因此直接向無盤機發(fā)送應(yīng)答。這樣,當無盤機收到該回答報文時,便知道了自己的IP地址。,ARP與RARP分別用于兩個方向上的地址解析問題:ARP用于從IP地址到物理地址的轉(zhuǎn)換,RARP用于從物理地址到IP地址的轉(zhuǎn)換。二者幾乎是可逆的,因此RARP報文的格式與ARP報文基本一致。它們之間主要的差別是RARP請求或回答的幀類型代碼為0x8035,且RARP請求的操作代碼為3,回答操作代碼為4。,RARP請求與ARP一樣以廣播方式傳送,而RARP回答一般是單播(unicast)傳送的。 當無盤系統(tǒng)從RARP回答中收到它的IP地址后,它將發(fā)送TFTP (Trivial File Transfer Protocol)請求來讀取引導映象。,2. RARP服務(wù)器的設(shè)計,(1)作為用戶進程的RARP服務(wù)器 RARP服務(wù)器一般要為多個主機(網(wǎng)絡(luò)上所有的無盤系統(tǒng))提供硬件地址到IP地址的映射。該映射包含在一個磁盤文件中(在Unix系統(tǒng)中一般位于/etc/ethers目錄中)。由于內(nèi)核一般不讀取和分析磁盤文件,因此RARP服務(wù)器的功能就由用戶進程來提供,而不是作為內(nèi)核的TCP/IP實現(xiàn)的一部分。 此外,RARP請求是作為一個特殊類型的以太網(wǎng)數(shù)據(jù)幀來傳送的(幀類型字段值為0x8035)。這說明RARP服務(wù)器必須能夠發(fā)送和接收這種類型的以太網(wǎng)數(shù)據(jù)幀。由于發(fā)送和接收這些數(shù)據(jù)幀與系統(tǒng)有關(guān),因此RARP服務(wù)器的實現(xiàn)與系統(tǒng)是捆綁在一起的。,(2)有多個RARP服務(wù)器的網(wǎng)絡(luò) RARP服務(wù)器實現(xiàn)的一個復雜因素是RARP請求是在硬件層上進行廣播的。這意味著它們不經(jīng)過路由器進行轉(zhuǎn)發(fā)。為了讓無盤系統(tǒng)在某個RARP服務(wù)器關(guān)機的狀態(tài)下也能引導,通常在一個網(wǎng)絡(luò)上要提供多個RARP服務(wù)器。 當服務(wù)器的數(shù)目增加時,網(wǎng)絡(luò)流量也隨之增加,因為每個服務(wù)器對每個RARP請求都要發(fā)送RARP回答。發(fā)送RARP請求的無盤系統(tǒng)一般采用最先收到的RARP回答。(ARP不會遇到這種情況,因為只有一臺主機發(fā)送ARP回答。)另外,還有一種可能發(fā)生的情況是每個RARP服務(wù)器同時回答,這樣會增加以太網(wǎng)發(fā)生沖突的概率。 ARP服務(wù)器通常是TCP/IP在內(nèi)核中實現(xiàn)的一部分。由于內(nèi)核知道IP地址和硬件地址,因此當它收到一個詢問IP地址的ARP請求時,只需用相應(yīng)的硬件地址來提供回答就可以了。相反的是,雖然RARP在概念上很簡單,但RARP服務(wù)器與系統(tǒng)相關(guān)而且比較復雜。因此,并不是所有的TCP/IP實現(xiàn)都提供RARP服務(wù)器。,5.2.4 動態(tài)主機配置協(xié)議,1. 動態(tài)主機配置協(xié)議概述 在TCP/IP網(wǎng)絡(luò)上,每臺工作站要能存取網(wǎng)絡(luò)上的資源之前,都必須進行基本的網(wǎng)絡(luò)配置。除了一些主要參數(shù)諸如IP地址,子網(wǎng)掩碼,默認網(wǎng)關(guān),DNS等之外,還可能需要一些附加的信息如IP管理策略之類。用手工方式分配IP地址可能出錯,由于IP地址、子網(wǎng)掩碼及默認網(wǎng)關(guān)的錯誤,導至網(wǎng)絡(luò)的錯誤,這種錯誤是很難查找的。此外,當一臺計算機從一個子網(wǎng)轉(zhuǎn)移到另一個子網(wǎng),就要重新對系統(tǒng)進行配置。對于一個稍微大點的網(wǎng)絡(luò)而言,網(wǎng)絡(luò)的管理和維護的任務(wù)是相當繁重的。因此,需要有一種機制來讓TCP/IP的配置和管理從用戶端轉(zhuǎn)移到網(wǎng)絡(luò)管理端,實現(xiàn)IP的集中式管理。 Internet任務(wù)組開發(fā)的動態(tài)主機配置協(xié)議DHCP(Dynamic Host Configuration Protocol)可以在TCP/IP網(wǎng)絡(luò)上自動為客戶機指定唯一IP地址。它對IP地址進行集中管理,克服了靜態(tài)IP地址的缺點,還可在某種程度上解決IP地址不足的問題。,2. DHCP的設(shè)計目標,(1)DHCP應(yīng)該是一種機制而不是策略,它必須允許本地系統(tǒng)管理員控制配置參數(shù),本地系統(tǒng)管理員應(yīng)該能夠?qū)λM芾淼馁Y源管理進行有效地管理。 (2)客戶不需要進行手工配置,客戶應(yīng)該在不參與的情況下發(fā)現(xiàn)合適于本地機的配置參數(shù),并利用這些參數(shù)加以配置。 (3)不需要對單個客戶配置網(wǎng)絡(luò)。在通常情況下,網(wǎng)絡(luò)管理員沒有必要輸入任何預(yù)先設(shè)計好的用戶配置參數(shù)。 (4)DHCP不需要在每個子網(wǎng)上配置一個服務(wù)器,為了經(jīng)濟的原因,DHCP服務(wù)器必須可以和路由器和BOOTP轉(zhuǎn)發(fā)代理一起工作。 (5)DHCP客戶必須可能對多個DHCP服務(wù)器提供的服務(wù)作出響應(yīng)。出于網(wǎng)絡(luò)穩(wěn)定與安全的考慮,有時需要為網(wǎng)絡(luò)加入多個DHCP服務(wù)器。,(6)DHCP必須靜態(tài)配置,且必須以現(xiàn)存的網(wǎng)絡(luò)協(xié)議實現(xiàn)。 (7)DHCP必須能夠和BOOTP轉(zhuǎn)發(fā)代理互操作。 (8)DHCP必須能夠為現(xiàn)有的BOOTP客戶提供服務(wù)。 下面幾個設(shè)計目標是對于網(wǎng)絡(luò)層參數(shù)的設(shè)計而言的,在網(wǎng)絡(luò)層參數(shù)上,DHCP必須可以做到以下幾點: (9)不允許有幾個客戶同時使用一個網(wǎng)絡(luò)地址。 (10)在DHCP客戶重新啟動后仍然能夠保留它原先的配置參數(shù),如果可能,客戶應(yīng)該可使用相同的配置參數(shù)。 (11)在DHCP服務(wù)器重新啟動后仍然能夠保留客戶的配置參數(shù),如果可能,即使DHCP機制重新啟動,也應(yīng)該能夠為客戶分配原有的配置參數(shù)。 (12)能夠為新加入的客戶自動提供配置參數(shù)。 (13)支持對特定客戶永久固定分配網(wǎng)絡(luò)地址。,3. DHCP客戶獲得IP地址的步驟,DHCP使用客戶/服務(wù)器模型。DHCP客戶提出請求后,從DHCP服務(wù)器得到IP地址需要通過4個步驟。 (1)DHCPdiscover 客戶端以廣播方式發(fā)送DHCP搜索信息包DHCPdiscover,試圖與DHCP服務(wù)器端連結(jié)。 (2)DHCPoffer 與該工作站處于相同子網(wǎng)上的每個DHCP服務(wù)器均會回應(yīng)DHCPoffer消息包括有效的IP地址、子網(wǎng)掩碼、DHCP服務(wù)器的IP地址,以及租借時限。該消息也是以廣播方式從DHCPBOOTP端口號68發(fā)送出去的。由于客戶機沒有IP地址,所以DHCP服務(wù)器不能直接把信息發(fā)送給申請IP地址的客戶機。,(3)DHCPrequest 客戶機接收它所收到的第一個DHCPoffer的IP地址,并發(fā)送廣播消息,回應(yīng)DHCPrequest訊息給DHCP服務(wù)器,通知DHCP服務(wù)器它所接受的IP地址。由于該消息是廣播式的,所以所有其他DHCP服務(wù)器會收到廣播消息,并把準備分配的IP地址重新放回可用地址組中。 (4)DHCPack 當被選中的DHCP服務(wù)器收到DHCP客戶端所傳送過來的DHCPack確認消息后,它會以廣播的方式回復一個DHCPack確認信息。該確認信息會提供更詳細信息,如客戶機也許申請了的DNS或網(wǎng)關(guān)地址。 上述處理步驟只涉及4個信息包的數(shù)據(jù)交互,因而通常不會增加客戶機登錄網(wǎng)絡(luò)的時間。,在租借期結(jié)束之前,客戶機和服務(wù)器不必重復這種信息交換過程。IP地址會保留在客戶機的TCPIP設(shè)置中,即使該設(shè)備重新啟動,也能使用已經(jīng)配置的IP地址。 DHCP是基于客戶/服務(wù)器模式的。這種模式下,把通過DHCP來獲得網(wǎng)絡(luò)配置參數(shù)的Internet主機稱為客戶(通常就是普通用戶的工作站),而將專門指定用于分配網(wǎng)絡(luò)地址、提供網(wǎng)絡(luò)設(shè)置參數(shù)給DHCP客戶的Internet主機稱為DHCP服務(wù)器。DHCP客戶和DHCP服務(wù)器之間通過收發(fā)DHCP消息進行通訊。在DHCP客戶和服務(wù)器之間轉(zhuǎn)發(fā) DHCP 消息的主機或路由器稱為DHCP/BOOTP 中繼代理。 DHCP向網(wǎng)絡(luò)主機提供配置參數(shù),它由兩個基本部分組成:一部分是向網(wǎng)絡(luò)主機傳送專用的配置信息,另一部分是給主機分配網(wǎng)絡(luò)地址。,4. IP地址的租用,對于許多擁有許多臺計算機的大型網(wǎng)絡(luò)來說,每臺計算機擁有一個IP地址有時候可能是不必要的。DHCP定義了一種可以使IP地址使用一段有限時間(租用)的機制,當租期到了的時候,服務(wù)器可以把這個IP地址分配給別的機器使用。客戶也可以當設(shè)備連接到網(wǎng)絡(luò)時,向DHCP服務(wù)器申請租用IP地址。當與網(wǎng)絡(luò)斷開連接時,客戶機就會放棄剛才所用的IP地址,DHCP服務(wù)器就可以把該IP地址分配給其他設(shè)備。 租用期間的設(shè)定決定了DHCP客戶端更新的時間。在DHCP服務(wù)器的設(shè)定時間里,若租用期限已超過一半時間,則DHCP客戶端會更新一次IP地址的數(shù)據(jù)。租用期限的處理是非常重要的一件工作。如果設(shè)定期間太長,此IP地址則會被某臺主機占著不放,而無法再提供給別的客戶端使用;如果租用期限設(shè)定太短,又使得更新頻率太高而增加網(wǎng)絡(luò)流量。當網(wǎng)絡(luò)上主機屬於固定型(如:辦公室、員工IP等)時,可以設(shè)定較長的租用時間;但如果網(wǎng)絡(luò)上主機屬於異動型(如遠程訪問服務(wù)、筆記本計算機等)時,可以設(shè)定較短的時間。,配置DHCP包括指定可以被租借給特定網(wǎng)段上任何網(wǎng)絡(luò)設(shè)備的地址范圍。網(wǎng)絡(luò)管理員可以根據(jù)實際情況在DHCP服務(wù)器的配置中設(shè)定租借時間。 DHCP支持三種IP地址分配方法。第一種是自動分配,DHCP給用戶分配一個永久的IP地址。第二種是動態(tài)分配,在這種情況下,用戶可以取得一個IP地址,但是是有時間限制的。第三種是手工分配,在這種方法下,用戶的IP地址是由管理員手工指定的,這種情況下,DHCP服務(wù)器只需要將這個指定的IP地址傳送給用戶即可。至于用什么樣的分配方法,不同的網(wǎng)絡(luò)各不相同。 動態(tài)分配是唯一一種允許自動重用地址的機制。因此,這種方法對于有臨時上網(wǎng)用戶,而且網(wǎng)絡(luò)的IP地址資源又有點緊張的時候特別有用。而手工指定對于管理不希望使用動態(tài)IP地址的用戶十分方便,不會因為手工指定而和DHCP沖突或和別的已經(jīng)分配的地址沖突。因此,DHCP是一種相對集中式的管理方式。,5. 使用DHCP的優(yōu)點,(1)降低花費在IP地址管理和規(guī)劃方面的時間。IP地址的集中式管理免除了網(wǎng)絡(luò)管理員編輯每臺網(wǎng)絡(luò)工作站、打印機或其他設(shè)備上的TCPIP配置的必要性。 (2)降低分配IP地址的錯誤率。當手工分配每臺工作站的IP地址,或者手工編輯BOOTP表時,很容易輸入錯誤地址,或者重復使用相同地址。使用DHCP,不會存在分配給工作站無效地址的可能性,并且?guī)缀醪豢赡艽嬖趦膳_工作站使用相同IP地址,并因而導致網(wǎng)絡(luò)錯誤的可能性。 (3)為使用戶在無須更改TCPIP配置的情況下隨意移動工作站和打印機。只要工作站被配置為從中心服務(wù)器獲取IP地址,則工作站可以連到網(wǎng)絡(luò)上任何地方,并且會收到有效地址。 (4)使IP分址對移動用戶透明。當客戶移動到其它子網(wǎng),重新啟動時,DHCP服務(wù)器自動提供新的TCP/IP配置信息。,5.3 Internet 控制報文協(xié)議,5.3.1 ICMP概述 5.3.2 ICMP報文的類型 5.3.3 ping 命令 5.3.4 traceroute程序,5.3.1 ICMP概述,Internet控制報文協(xié)議ICMP(Internet Control Message Protocol)經(jīng)常被認為是IP層的一個組成部分。在網(wǎng)絡(luò)上傳遞IP數(shù)據(jù)包時,如果發(fā)生了錯誤,就會用ICMP協(xié)議來報告差錯信息以及其它需要注意的信息。ICMP報文通常被IP層或更高層協(xié)議(TCP或UDP)使用。一些ICMP報文把差錯信息返回給用戶進程。 由於TCP/IP是一個開放式的網(wǎng)絡(luò)環(huán)境,其動態(tài)性極高,所以在傳遞數(shù)據(jù)包之前,確定對方是否存在以及路由路徑是否可靠就變得非常重要了。使用ICMP協(xié)議能夠檢測網(wǎng)絡(luò)的連線狀況,確保連線的準確性。其功能主要有:偵測遠端主機是否存在,建立及維護路由數(shù)據(jù),重導數(shù)據(jù)傳送路徑以及數(shù)據(jù)流量控制。,圖 5.10 ICMP封裝在IP數(shù)據(jù)報內(nèi)部,ICMP消息以基本IP首部發(fā)送。數(shù)據(jù)的第一個字節(jié)是ICMP類型字段;此字段的值決定了了其余數(shù)據(jù)的格式。任何標記為“未使用”的字段都是為以后的擴展保留的,在傳送過程中必須全部是0。ICMP報文格式如圖 5.11所示。所有ICMP報文的前4個字節(jié)都是一樣的,但是剩下的其它字節(jié)則互不相同。類型字段可以有15個不同的值,以描述特定類型的ICMP報文。某些ICMP報文還使用代碼字段的值來進一步描述不同的條件。ICMP必需檢驗和。檢驗和字段覆蓋整個ICMP報文。使用的算法與IP首部檢驗和算法相同。,5.3.2 ICMP報文的類型,ICMP在溝通之中使用不同的信息讓機器來識別,各種類型的ICMP報文如圖 5.12所示,不同類型由報文中的類型字段和代碼字段來共同決定。,當數(shù)據(jù)報不能到達目的地時,或當網(wǎng)關(guān)的已經(jīng)失去緩存功能,或者當網(wǎng)關(guān)能夠引導主機在更短路由上發(fā)送的情況下,將發(fā)送ICMP消息。ICMP以不同的錯誤碼來表示各種錯誤信息,如表 5.4所示。,ICMP協(xié)議的目的是為了當網(wǎng)絡(luò)出現(xiàn)問題的時候返回控制信息,而不是使IP協(xié)議變得絕對可靠,并不保證數(shù)據(jù)報或控制信息能夠返回。一些數(shù)據(jù)報仍將在沒有任何報告的情況下丟失。上層協(xié)議必須使用自己的差錯控制程序來判斷通信是否正確。ICMP信息通常報告在處理數(shù)據(jù)報過程中的錯誤。為了避免信息無限制地返回,對于ICMP消息不會單獨成數(shù)據(jù)報發(fā)送,而且ICMP信息只在處理數(shù)據(jù)報偏移量為0時發(fā)送。 ICMP使用IP做底層支持,好象它是一個高層協(xié)議,而實際上它是IP的一部分,必須由其它IP模塊實現(xiàn)。當要對網(wǎng)絡(luò)連接狀況進行判斷的時候,ICMP是個非常有用的協(xié)議。,5.3.3 ping 命令,ping是一個最常用的網(wǎng)絡(luò)檢查命令。當架設(shè)好一個IP網(wǎng)絡(luò),要檢查一下網(wǎng)絡(luò)是否連接成功,最常用的就是ping命令。本節(jié)用ping程序作為診斷工具來研究ICMP。ping還給提供了檢測IP記錄路由和時間戳選項的機會。 ping程序編寫的目的是為了測試另一臺主機是否可達。該程序發(fā)送一份ICMP回顯請求報文給主機,并等待返回ICMP回顯回答。一般來說,如果不能ping到某臺主機,那么就不能Telnet或者FTP到那臺主機。反過來,如果不能Telnet到某臺主機,那么通??梢杂胮ing程序來確定問題出在哪里。ping程序還能測出到這臺主機的往返時間,以表明離該主機有“多遠”。 返回信息意思分別為從哪里得到的回應(yīng)該次ping執(zhí)行的數(shù)據(jù)大小roundtrip時間(微秒)生存期限(微秒)。并顯示送出了多少個數(shù)據(jù)報,獲得的回應(yīng)是多少,丟失率是多少。還可顯示來回所需時間的最小值、最大值和平均值。,通常ping命令是送出一個echo_request(type8)的ICMP數(shù)據(jù)報給目的端。如果目的端愿意回答,則回應(yīng)一個echo_reply(type0)的ICMP數(shù)據(jù)報給查詢端,以確定連接的可行性。,隨著提供訪問控制列表的路由器和防火墻的出現(xiàn),一臺主機的可達性不只取決于IP層是否可達,還取決于使用何種協(xié)議以及端口號??赡躳ing程序的運行結(jié)果顯示某臺主機不可達,但可以用Telnet遠程登錄到該臺主機的25號端口(郵件服務(wù)器)。如果ICMP包因為某些原因(如火墻的過濾)不能到達目的端或是目的端不愿回答或是回應(yīng)給擋下來了,ping就不能順利完成,但并非代表不能連接。 通常稱發(fā)送回顯請求的ping程序為客戶,而稱被ping的主機為服務(wù)器。大多數(shù)的TCP/IP實現(xiàn)都在內(nèi)核中直接支持ping服務(wù)器。ICMP的兩種查詢服務(wù),地址掩碼和時間戳請求,也都是直接在內(nèi)核中進行處理的。,1. IP記錄路由選項 ping程序為提供了查看IP記錄路由(RR)選項的機會。大多數(shù)不同版本的ping程序都提供RR參數(shù),以提供記錄路由的功能。它使得ping程序在發(fā)送出去的IP數(shù)據(jù)報中設(shè)置IPRR選項(該IP數(shù)據(jù)報包含ICMP回顯請求報文)。這樣,每個處理該數(shù)據(jù)報的路由器都把它的IP地址放入選項字段中。當數(shù)據(jù)報到達目的端時,IP地址清單應(yīng)該復制到ICMP回顯回答中,這樣返回途中所經(jīng)過的路由器地址也被加入清單中。當ping程序收到回顯回答時,它就打印出這份IP地址清單。當原始主機(運行ping程序的主機)收到帶有RR選項的ICMP回顯回答時,它也要把它的入口IP地址放入清單中。,2. IP時間戳選項 IP時間戳選項與記錄路由選項類似。時間戳選項的代碼為0x44。其它兩個字段len和ptr與記錄路由選項相同:選項的總長度(一般為36或40)和指向下一可用空間的指針(5,9,13等)。 由于可能無法控制任何給定路由器上時間戳的正確性。這使得無法用IP選項來計算路由器之間的跳站數(shù)。traceroute程序可以提供一種更好的方法來計算路由器之間的跳數(shù)。,5.3.4 traceroute程序,另一個常用的ICMP程序traceroute是一個能更深入探索TCP/IP協(xié)議的方便工具。盡管不能保證從源端發(fā)往目的端的兩份連續(xù)的IP數(shù)據(jù)報具有相同的路由,但是大多數(shù)情況下,traceroute程序可以看到IP數(shù)據(jù)報從一臺主機傳到另一臺主機所經(jīng)過的路由。traceroute程序還可以使用IP源路由選項。,1. traceroute程序的操作,traceroute程序使用ICMP報文和IP首部中的TTL字段。TTL字段(生存周期)是由發(fā)送端初始設(shè)置一個8bit字段。推薦的初始值由分配數(shù)字RFC指定,當前值為64。較老版本的系統(tǒng)經(jīng)常初始化為15或32。從第7章中的一些ping程序例子中可以看出,發(fā)送ICMP回顯回答時經(jīng)常把TTL設(shè)為最大值255。 每個處理數(shù)據(jù)報的路由器都需要把TTL的值減1或減去數(shù)據(jù)報在路由器中停留的秒數(shù)。由于大多數(shù)的路由器轉(zhuǎn)發(fā)數(shù)據(jù)報的時延都小于1秒鐘,因此TTL最終成為一個跳站的計數(shù)器,所經(jīng)過的每個路由器都將其值減1。,在Winodws98某次執(zhí)行tracert的結(jié)果,D:WINDOWSDesktoptracert T3 overamaximumof30hops: 1154 5 2137ms134ms147ms 3131ms136ms129msR58-33.3 4137ms139ms129msR58-41.1 5146ms135ms137msR58-14.4 6144ms145ms139ms86 7149ms146ms138ms2 8145ms148ms138ms9 91503 Tracecomplete.,最左邊一行分別是跳站(hop)數(shù),然後是
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025監(jiān)理工程師《合同管理》重點考點剖析
- 2025屆畢業(yè)生簽訂就業(yè)合同新風向
- 2025年公立醫(yī)院勞動合同
- 2025建筑施工項目合同模板
- 2025中學學生食堂承包合同示例
- 2025工業(yè)用地使用權(quán)轉(zhuǎn)讓合同
- 2025杭州寫字樓租賃合同樣本
- 2025年設(shè)備借款合同模板下載
- 業(yè)務(wù)員買房合同范例
- 巧學主管護師考試試題及答案
- 高速鐵路動車組機械設(shè)備維護與檢修課件:動車組維修制度
- 新解讀《JTG H12-2015公路隧道養(yǎng)護技術(shù)規(guī)范》
- 2024年內(nèi)蒙古呼和浩特市中考英語試卷真題(含答案解析)
- 人教版中考生物一輪復習:七八年級考點復習課件480張
- (正式版)SH∕T 3548-2024 石油化工涂料防腐蝕工程施工及驗收規(guī)范
- 風電場安全工作交底制度(2篇)
- 2024新民政局離婚協(xié)議書參考樣板
- 2020-2024年安徽省初中學業(yè)水平考試中考語文試卷(5年真題+答案解析)
- 火針療法在皮膚科:國際視角
- 醫(yī)院科研誠信課件
- JBT 14449-2024 起重機械焊接工藝評定(正式版)
評論
0/150
提交評論