




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
人民郵電出版社
第3章 互聯(lián)網(wǎng)絡(luò)層13.1 網(wǎng)絡(luò)層的互聯(lián)技術(shù)3.1.1 網(wǎng)絡(luò)互聯(lián)概述1.互聯(lián)網(wǎng)隨著網(wǎng)絡(luò)技術(shù)的發(fā)展與應(yīng)用普及,人們提出了“網(wǎng)絡(luò)孤島”的概念。如果一個(gè)物理網(wǎng)絡(luò)不能與其他的網(wǎng)絡(luò)相互連接,這樣當(dāng)該網(wǎng)絡(luò)上的用戶與另一個(gè)網(wǎng)絡(luò)上的用戶需要通信或共享網(wǎng)絡(luò)資源時(shí),就不能滿足用戶的需求,這樣一個(gè)網(wǎng)絡(luò)就成了“網(wǎng)絡(luò)孤島”,其應(yīng)用范圍和作用就受到了限制。如果利用網(wǎng)絡(luò)互聯(lián)設(shè)備將兩個(gè)或多個(gè)物理網(wǎng)絡(luò)相互連接,就成了互聯(lián)網(wǎng)絡(luò)(internetwork),簡(jiǎn)稱互聯(lián)網(wǎng)(internet,注意“i”為小寫(xiě),當(dāng)“I”為大寫(xiě)時(shí),即Internet,特指全球范圍內(nèi)的互聯(lián)網(wǎng))。將多個(gè)物理網(wǎng)絡(luò)互聯(lián)的最常用設(shè)備是路由器(Router),如圖3-1所示,該示意圖有4個(gè)物理網(wǎng)絡(luò),這4個(gè)物理網(wǎng)絡(luò)通過(guò)R1、R2、R3、R4和R5共5個(gè)路由器來(lái)實(shí)現(xiàn)其互聯(lián)互通的作用。3.1 網(wǎng)絡(luò)層的互聯(lián)技術(shù)3.1 網(wǎng)絡(luò)層的互聯(lián)技術(shù)3.1.1 網(wǎng)絡(luò)互聯(lián)概述2. Intranet與Extranet如果一個(gè)企業(yè)內(nèi)部網(wǎng)絡(luò),使用了Internet中的TCP/IP協(xié)議及其網(wǎng)絡(luò)互聯(lián)技術(shù),就是一個(gè)Intranet。簡(jiǎn)單地說(shuō),Intranet就是一個(gè)有限的、封閉的計(jì)算機(jī)網(wǎng)絡(luò),而該網(wǎng)絡(luò)使用Internet技術(shù)共享數(shù)據(jù),一個(gè)Intranet可以是一個(gè)Internet的子網(wǎng),不過(guò)在子網(wǎng)與Internet的交界處增加了訪問(wèn)控制,以防止不受歡迎的訪問(wèn)。由于Internet技術(shù)的成熟與普及,使使用了Internet技術(shù)的Intranet實(shí)現(xiàn)和維護(hù)費(fèi)用較低。如果一個(gè)Intranet通過(guò)防火墻等技術(shù)與外部Internet相連,該Intranet就是一個(gè)開(kāi)放的,通過(guò)外部可以訪問(wèn)的網(wǎng)絡(luò),這時(shí)它就成了一個(gè)Extranet,因此從某種程度上說(shuō),Extranet就是公司與公司之間的網(wǎng)絡(luò)。3.1 網(wǎng)絡(luò)層的互聯(lián)技術(shù)3.1.2 路由器路由器是用于連接多個(gè)邏輯上分開(kāi)的網(wǎng)絡(luò)。路由器具有轉(zhuǎn)發(fā)報(bào)文和路由選擇兩大功能,它能在異種網(wǎng)絡(luò)互聯(lián)環(huán)境中,建立靈活的連接。路由器不關(guān)心各子網(wǎng)使用的硬件設(shè)備,但要求各網(wǎng)絡(luò)層協(xié)議要運(yùn)行功能一致的軟件。一般來(lái)說(shuō),異種網(wǎng)絡(luò)互聯(lián)與多個(gè)子網(wǎng)互聯(lián)都應(yīng)采用路由器來(lái)完成。1. 路由器的工作原理當(dāng)IP子網(wǎng)中的一臺(tái)主機(jī)發(fā)送IP報(bào)文給同一子網(wǎng)的另一臺(tái)主機(jī)時(shí),它將直接把IP報(bào)文送到網(wǎng)絡(luò)上,對(duì)方就能收到。而要送給不同IP子網(wǎng)上的主機(jī)時(shí),它要選擇一個(gè)能到達(dá)目的子網(wǎng)的路由器,把IP報(bào)文送給該路由器,由路由器負(fù)責(zé)把IP報(bào)文送到目的地。如果沒(méi)有找到這樣的路由器,主機(jī)就把IP報(bào)文送給一個(gè)稱為“默認(rèn)網(wǎng)關(guān)”(defaultgateway)的路由器上。“默認(rèn)網(wǎng)關(guān)”是每臺(tái)主機(jī)上的一個(gè)配置參數(shù),它是接在同一個(gè)網(wǎng)絡(luò)上的某個(gè)路由器端口的IP地址。3.1 網(wǎng)絡(luò)層的互聯(lián)技術(shù)3.1.2 路由器路由器轉(zhuǎn)發(fā)IP報(bào)文時(shí),只根據(jù)IP報(bào)文中目的IP地址的網(wǎng)絡(luò)號(hào)部分,選擇合適的端口,把IP報(bào)文送出去。每個(gè)路由器在收到IP報(bào)文后也要判定端口所連接的是否是目的子網(wǎng),如果是,就直接把報(bào)文通過(guò)端口送到網(wǎng)絡(luò)上,否則,也要選擇下一個(gè)路由器來(lái)轉(zhuǎn)發(fā)IP報(bào)文。路由器也有它的“默認(rèn)網(wǎng)關(guān)”,用來(lái)傳送不知道往哪兒送的IP報(bào)文。這樣,通過(guò)路由器把知道如何傳送的IP正確轉(zhuǎn)發(fā)出去,不知道如何傳送的IP報(bào)文送給“默認(rèn)網(wǎng)關(guān)”,這樣一級(jí)級(jí)地傳送,IP報(bào)文最終將送到目的地,送不到目的地的IP報(bào)文則被網(wǎng)絡(luò)丟棄了。3.1 網(wǎng)絡(luò)層的互聯(lián)技術(shù)3.1.2 路由器2. 路由器的功能路由器是互聯(lián)網(wǎng)中最常用的網(wǎng)絡(luò)連接設(shè)備,在圖3-1中,不同的物理網(wǎng)絡(luò)之間通過(guò)路由器互相連接起來(lái)。顧名思義,路由器的起網(wǎng)絡(luò)尋找路由的作用,即它為經(jīng)過(guò)路由器的每個(gè)IP報(bào)文尋找一條最佳的傳輸路徑,最終將該IP報(bào)文傳輸?shù)侥康墓?jié)點(diǎn)??傊酚善鞯墓δ苤饕ㄏ旅鎺讉€(gè)方面:(1)在網(wǎng)絡(luò)之間接收和發(fā)送數(shù)據(jù)包。將接收到的數(shù)據(jù)包根據(jù)包中所包含的源地址和目的地址,對(duì)照自己的路由信息表,把數(shù)據(jù)包向目的節(jié)點(diǎn)轉(zhuǎn)發(fā)。3.1 網(wǎng)絡(luò)層的互聯(lián)技術(shù)3.1.2 路由器2. 路由器的功能(2)為網(wǎng)際間通信選擇最合理的路由。(3)根據(jù)需要可對(duì)數(shù)據(jù)包進(jìn)行拆分或組裝。(4)對(duì)于支持多通信協(xié)議的路由器,可以將兩個(gè)使用不同協(xié)議的網(wǎng)絡(luò)連接起來(lái)。(5)網(wǎng)絡(luò)安全功能,目前大部分路由器都具備一定的防火墻功能,能夠屏蔽內(nèi)部網(wǎng)絡(luò)的IP地址,自由設(shè)定IP地址、通信端口過(guò)濾等,使網(wǎng)絡(luò)更加安全。3.1 網(wǎng)絡(luò)層的互聯(lián)技術(shù)3.1.3 面向連接的互聯(lián)技術(shù)圖3-1所示的互聯(lián)網(wǎng)絡(luò),如果網(wǎng)絡(luò)1中的主機(jī)A要與網(wǎng)絡(luò)4中的主機(jī)D進(jìn)行通信,可以通過(guò)“主機(jī)A→網(wǎng)絡(luò)1→路由器R3→網(wǎng)絡(luò)4→主機(jī)D”這樣的一條固定線路來(lái)完成,路由器R3就要保存一條這樣的信息,所有由網(wǎng)絡(luò)1中的主機(jī)要傳輸?shù)骄W(wǎng)絡(luò)4中主機(jī)的信息,都要由路由器R3接收并轉(zhuǎn)發(fā)。這種解決方案就好像在通信的源端和目標(biāo)端之間建立了一條邏輯通路,一般稱為虛電路(virtualcircuit),即“網(wǎng)絡(luò)1→路由器R3→網(wǎng)絡(luò)4”,當(dāng)然也可以反過(guò)來(lái)“網(wǎng)絡(luò)4→路由器R3→網(wǎng)絡(luò)1”,說(shuō)明網(wǎng)絡(luò)4中主機(jī)要與網(wǎng)絡(luò)1中主機(jī)通信時(shí),也要由路由器R3轉(zhuǎn)發(fā)。這就是所謂面向連接(connect-oriented)的互聯(lián)技術(shù),這種方式看似簡(jiǎn)單,易于實(shí)現(xiàn),但其最大的缺點(diǎn)是如果不能保證虛電路中沿途經(jīng)過(guò)的節(jié)點(diǎn)都能可靠的發(fā)送數(shù)據(jù),就可能使網(wǎng)絡(luò)崩潰。由于互聯(lián)網(wǎng)所連網(wǎng)絡(luò)的復(fù)雜性和多樣性,很難保證所節(jié)點(diǎn)都能可靠的發(fā)送數(shù)據(jù)。3.1 網(wǎng)絡(luò)層的互聯(lián)技術(shù)3.1.4 無(wú)連接的互聯(lián)技術(shù)無(wú)連接的(connectionless)的互聯(lián)網(wǎng)解決方案在源端和目標(biāo)端之間不需要建立一條邏輯通路,而是送到網(wǎng)絡(luò)中的每個(gè)分組帶有完整的目標(biāo)主機(jī)地址,收到分組的節(jié)點(diǎn)(主要是路由器)根據(jù)目標(biāo)地址和當(dāng)前網(wǎng)絡(luò)狀況(如通信量等),選擇一條合適的線路把分組發(fā)送到接近目標(biāo)端的下一個(gè)節(jié)點(diǎn),通過(guò)多個(gè)節(jié)點(diǎn)的轉(zhuǎn)發(fā),最終把分組送達(dá)目標(biāo)節(jié)點(diǎn)。例如圖3-1所示網(wǎng)絡(luò)中,如果網(wǎng)絡(luò)1中的主機(jī)A要與網(wǎng)絡(luò)4中的主機(jī)D進(jìn)行通信,可能通過(guò)“主機(jī)A→網(wǎng)絡(luò)1→路由器R3→網(wǎng)絡(luò)4→主機(jī)D”這樣的一條邏輯鏈路來(lái)完成,也可能通過(guò)“主機(jī)A→網(wǎng)絡(luò)1→路由器R2→網(wǎng)絡(luò)3→路由器R4→網(wǎng)絡(luò)4→主機(jī)D”這樣的一條邏輯鏈路來(lái)完成,當(dāng)然還可以有其他的邏輯鏈路,這就是所謂無(wú)連接的互聯(lián)技術(shù)。3.1 網(wǎng)絡(luò)層的互聯(lián)技術(shù)3.1.5 IP互聯(lián)原理不同的網(wǎng)絡(luò)使用的協(xié)議不同、地址長(zhǎng)度和尋址方式不同、數(shù)據(jù)幀的長(zhǎng)度不同。物理網(wǎng)絡(luò)的這些差別是無(wú)法改變的,也就是說(shuō),我們無(wú)法做到物理網(wǎng)絡(luò)的“統(tǒng)一”。但是,我們可以對(duì)互聯(lián)的不同物理網(wǎng)絡(luò)(具體表現(xiàn)就是不同網(wǎng)絡(luò)的網(wǎng)絡(luò)接口卡和設(shè)備驅(qū)動(dòng)程序互不相同)上傳輸?shù)臄?shù)據(jù)幀,都加上一層相同的“包裝”,使加了“包裝”后的網(wǎng)絡(luò)數(shù)據(jù)幀對(duì)外有統(tǒng)一的“外表”(為了區(qū)別數(shù)據(jù)幀,我們就把它叫“數(shù)據(jù)報(bào)”),并且有足夠的地址信息(即IP地址)用來(lái)識(shí)別數(shù)據(jù)報(bào)從何而來(lái)(信源),要到什么地方去(信宿)。這樣的數(shù)據(jù)報(bào),不同網(wǎng)絡(luò)中的節(jié)點(diǎn)(主要是路由器)都可以識(shí)別,因此,就可以根據(jù)數(shù)據(jù)報(bào)的目標(biāo)地址,把它從一個(gè)節(jié)點(diǎn)轉(zhuǎn)發(fā)到另一個(gè)節(jié)點(diǎn),直到目標(biāo)主機(jī)。最后由目標(biāo)主機(jī)對(duì)數(shù)據(jù)報(bào)的內(nèi)容進(jìn)行解釋。3.2 IP協(xié)議3.2.1 IP協(xié)議概述IP協(xié)議是TCP/IP協(xié)議簇中最重要的協(xié)議,從協(xié)議體系結(jié)構(gòu)來(lái)看,向下它屏蔽了不同物理網(wǎng)絡(luò)的低層,向上它提供了一個(gè)邏輯上統(tǒng)一的互聯(lián)網(wǎng)。TCP/IP網(wǎng)絡(luò)中的IP就如同郵政服務(wù)中的“標(biāo)準(zhǔn)信封”,在這個(gè)基本的、有效的傳送機(jī)制中,任何種類(lèi)的數(shù)據(jù)都能放入到該“標(biāo)準(zhǔn)信封”中,如圖3-3所示。IP協(xié)議頭被封裝在內(nèi)的高層數(shù)據(jù)圖3-3IP協(xié)議示意圖3.2 IP協(xié)議3.2.1 IP協(xié)議概述1. IP協(xié)議的主要功能IP協(xié)議所完成的主要功能包括以下內(nèi)容:將上層數(shù)據(jù)(如TCP,UDP數(shù)據(jù))或同層的其它數(shù)據(jù)(如ICMP數(shù)據(jù))封裝到IP數(shù)據(jù)報(bào)中。將IP數(shù)據(jù)報(bào)傳送到最終目的地。為了使數(shù)據(jù)能夠在鏈路層上進(jìn)行傳輸,對(duì)數(shù)據(jù)進(jìn)行分段。確定數(shù)據(jù)報(bào)到達(dá)其它網(wǎng)絡(luò)的路徑。3.2 IP協(xié)議3.2.1 IP協(xié)議概述2. IP協(xié)議在TCP/IP協(xié)議棧中的地位與特點(diǎn)互聯(lián)網(wǎng)上的所有數(shù)據(jù)報(bào)都要經(jīng)過(guò)IP協(xié)議進(jìn)行傳輸,它是通信網(wǎng)絡(luò)與高層協(xié)議的分界,如圖3-4所示。圖3-4 IP協(xié)議在TCP/IP協(xié)議簇中的地位物理傳輸介質(zhì)應(yīng)用層傳輸層網(wǎng)絡(luò)層鏈路層應(yīng)用程序應(yīng)用程序應(yīng)用程序應(yīng)用程序TCPUDPICMPIPIGMPARP硬件接口RARP3.2 IP協(xié)議3.2.1 IP協(xié)議概述2. IP協(xié)議在TCP/IP協(xié)議棧中的地位與特點(diǎn)使用IP協(xié)議的互聯(lián)網(wǎng)具有以下重要特點(diǎn):IP協(xié)議是一種無(wú)連接(connectionless)不可靠(unreliable)的數(shù)據(jù)報(bào)傳輸協(xié)議。說(shuō)它不可靠是因?yàn)镮P協(xié)議不能保證數(shù)據(jù)報(bào)能正確的傳輸?shù)侥繕?biāo)主機(jī)。它負(fù)責(zé)數(shù)據(jù)報(bào)在網(wǎng)絡(luò)中的傳輸,而不管傳輸?shù)恼_與否,不進(jìn)行數(shù)據(jù)報(bào)的確認(rèn),也不能保證數(shù)據(jù)報(bào)按正確的順序到達(dá)(即先發(fā)的不一定先到達(dá)),但同時(shí)它也是“盡最大努力”的傳輸數(shù)據(jù),因?yàn)樗浑S便丟棄傳輸中的數(shù)據(jù)報(bào)。3.2 IP協(xié)議3.2.1 IP協(xié)議概述2. IP協(xié)議在TCP/IP協(xié)議棧中的地位與特點(diǎn)使用IP協(xié)議的互聯(lián)網(wǎng)具有以下重要特點(diǎn):IP互聯(lián)網(wǎng)中的計(jì)算機(jī)沒(méi)有主次之分,所有主機(jī)地位平等(因?yàn)槲┮粯?biāo)識(shí)它們的是IP地址),當(dāng)然從邏輯上來(lái)說(shuō),所有網(wǎng)絡(luò)不管規(guī)模大小也沒(méi)有主次之分。IP互聯(lián)網(wǎng)沒(méi)有確定的拓?fù)浣Y(jié)構(gòu),就像圖3-1所示的哪樣。在IP互聯(lián)網(wǎng)中的任何一臺(tái)主機(jī),都至少有一個(gè)獨(dú)一無(wú)二的IP地址,有多個(gè)網(wǎng)絡(luò)接口卡的計(jì)算機(jī)每個(gè)接口可以有一個(gè)IP地址,這樣一臺(tái)主機(jī)可能就有多個(gè)IP地址,有多個(gè)IP地址的主機(jī)叫多宿主機(jī)(multi-homehost)。在互聯(lián)網(wǎng)中有IP地址的設(shè)備,不一定就是一臺(tái)計(jì)算機(jī),如IP路由器、網(wǎng)關(guān)等,因?yàn)榕c互聯(lián)網(wǎng)有獨(dú)立連接的設(shè)備都要有IP地址。3.2 IP協(xié)議3.2.1IP數(shù)據(jù)報(bào)格式IP協(xié)議是TCP/IP協(xié)議族中最為核心的協(xié)議,前面我們已經(jīng)討論過(guò),它提供不可靠、無(wú)連接的數(shù)據(jù)報(bào)傳輸服務(wù)。IP層提供的服務(wù)是通過(guò)IP層對(duì)數(shù)據(jù)報(bào)的封裝與拆封來(lái)實(shí)現(xiàn)的。IP數(shù)據(jù)報(bào)的格式分為報(bào)頭區(qū)和數(shù)據(jù)區(qū)兩大部分,其中數(shù)據(jù)區(qū)包括高層協(xié)議需要傳輸?shù)臄?shù)據(jù),報(bào)頭區(qū)是為了正確傳輸高層數(shù)據(jù)而加的各種控制信息。IP數(shù)據(jù)報(bào)的格式如圖3-5所示。版本號(hào)(4位)頭長(zhǎng)度(4位)服務(wù)類(lèi)型TOS(8位)總長(zhǎng)度(16位)標(biāo)識(shí)(16位)標(biāo)志(3位)片偏移(13位)生存時(shí)間TTL(8位)上層協(xié)議標(biāo)識(shí)(8位)頭部校驗(yàn)和(16位)源IP地址(32位)目標(biāo)IP地址(32位)選項(xiàng)數(shù)據(jù)3.2 IP協(xié)議3.2.1IP數(shù)據(jù)報(bào)格式圖3-5中所表示的數(shù)據(jù),最高位在左邊,記為第0位;最低位在右邊,記為第31位。在網(wǎng)絡(luò)中傳輸時(shí),先傳輸0~7位,其次傳輸8~15位,然后傳輸16~23位,最后傳輸?shù)氖?4~31位。由于TCP/IP協(xié)議首部中所有的二進(jìn)制數(shù)在網(wǎng)絡(luò)中傳輸時(shí)都要求以這種次序進(jìn)行,因此把它稱為網(wǎng)絡(luò)字節(jié)序。在進(jìn)行程序設(shè)計(jì)時(shí)以其他形式存儲(chǔ)的二進(jìn)制數(shù),必須在傳輸數(shù)據(jù)之前,使用網(wǎng)絡(luò)編程API提供的函數(shù)(這些函數(shù)在第2篇中介紹)把首部轉(zhuǎn)換成網(wǎng)絡(luò)字節(jié)順序。IP數(shù)據(jù)報(bào)中的每一個(gè)域包含了IP報(bào)文所攜帶的一些信息,正是這些信息來(lái)完成IP協(xié)議功能的,現(xiàn)說(shuō)明如下:3.2 IP協(xié)議3.2.1IP數(shù)據(jù)報(bào)格式1.版本號(hào)占用4位二進(jìn)制數(shù),表示該IP數(shù)據(jù)報(bào)使用的是哪個(gè)版本的IP協(xié)議。目前在Internet中使用的TCP/IP協(xié)議簇中,IP協(xié)議的版本號(hào)為4,所以也常稱為IPv4。下一個(gè)IP協(xié)議的版本號(hào)為6,即IPv6,當(dāng)前正在試驗(yàn)中,在本章的最后一節(jié)介紹有關(guān)IPv6的知識(shí)。2. 頭長(zhǎng)度用4位二進(jìn)制數(shù)表示,此域指出整個(gè)報(bào)文頭的長(zhǎng)度(包括選項(xiàng)),該長(zhǎng)度是以32位二進(jìn)制數(shù)為一個(gè)計(jì)數(shù)單位的,接收端通過(guò)此域可以計(jì)算出報(bào)文頭在何處結(jié)束及從何處開(kāi)始讀數(shù)據(jù)。普通IP數(shù)據(jù)報(bào)(沒(méi)有任何選項(xiàng))該字段的值是5(即20個(gè)字節(jié)的長(zhǎng)度)。3.2 IP協(xié)議3.2.1IP數(shù)據(jù)報(bào)格式3. 服務(wù)類(lèi)型(TOS-TypeofService)用8位二進(jìn)制數(shù)表示,規(guī)定對(duì)本數(shù)據(jù)報(bào)的處理方式。服務(wù)類(lèi)型字段的8位分成了五個(gè)子域,如圖3-6所示。(1)優(yōu)先權(quán):占0~2位,這3位二進(jìn)制數(shù)表示的數(shù)據(jù)范圍為000~111(0~7),數(shù)越大,表示該數(shù)據(jù)報(bào)優(yōu)先權(quán)越高,如0表示一般的優(yōu)先權(quán),7表示網(wǎng)絡(luò)控制優(yōu)先權(quán)。網(wǎng)絡(luò)中的路由器可以使用優(yōu)先權(quán)進(jìn)行擁塞控制,如當(dāng)網(wǎng)絡(luò)發(fā)生擁塞時(shí)可以根據(jù)數(shù)據(jù)報(bào)的優(yōu)先權(quán)來(lái)決定數(shù)據(jù)報(bào)的取舍。3.2 IP協(xié)議3.2.1IP數(shù)據(jù)報(bào)格式3. 服務(wù)類(lèi)型(TOS-TypeofService)(2) 短延遲位D(Delay):該位被置1時(shí),數(shù)據(jù)報(bào)請(qǐng)求以短延時(shí)信道傳輸,0表示正常延時(shí)。(3) 高吞吐量位T(Throughput):該位被置1時(shí),數(shù)據(jù)報(bào)請(qǐng)求以高吞吐量信道傳輸,0表示普通。(4) 高可靠性位R(Reliability):該位被置1時(shí),數(shù)據(jù)報(bào)請(qǐng)求以高可靠性信道傳輸,0表示普通。(5) 低費(fèi)用位C(Cost):該位被置1時(shí)表示低費(fèi)用的路由。(6) 保留位:目前未用,需置0。3.2 IP協(xié)議3.2.1IP數(shù)據(jù)報(bào)格式4.總長(zhǎng)度用16位二進(jìn)制數(shù)表示,總長(zhǎng)度字段是指整個(gè)IP數(shù)據(jù)報(bào)的長(zhǎng)度,以字節(jié)為單位。利用首部長(zhǎng)度字段和總長(zhǎng)度字段,就可以計(jì)算出IP數(shù)據(jù)報(bào)中數(shù)據(jù)內(nèi)容的起始位置和長(zhǎng)度。由于該字段長(zhǎng)度為16位二進(jìn)制,所以從理論上來(lái)說(shuō),IP數(shù)據(jù)報(bào)最長(zhǎng)可達(dá)65535字節(jié)(實(shí)際由于受物理網(wǎng)絡(luò)的限制,要比這個(gè)數(shù)值小得多)。3.2 IP協(xié)議3.2.1IP數(shù)據(jù)報(bào)格式5. 生存時(shí)間(TTL-TimetoLive)用8位二進(jìn)制數(shù)表示,它指定了數(shù)據(jù)報(bào)可以在網(wǎng)絡(luò)中傳輸?shù)淖铋L(zhǎng)時(shí)間。在實(shí)際應(yīng)用中為了簡(jiǎn)化處理過(guò)程,把生存時(shí)間字段設(shè)置成了數(shù)據(jù)報(bào)可以經(jīng)過(guò)的最大路由器數(shù)。TTL的初始值由源主機(jī)設(shè)置(通常為32、64、128或者256),一旦經(jīng)過(guò)一個(gè)處理它的路由器,它的值就減去1,當(dāng)該字段的值減為0時(shí),數(shù)據(jù)報(bào)就被丟棄,并發(fā)送ICMP報(bào)文(第4節(jié)介紹)通知源主機(jī),這樣可以防止數(shù)據(jù)報(bào)進(jìn)入一個(gè)循環(huán)回路時(shí),數(shù)據(jù)報(bào)無(wú)休止的傳輸。6. 上層協(xié)議標(biāo)識(shí)用8位二進(jìn)制數(shù)表示,從圖3-4我們知道,IP協(xié)議可以承載多種上層協(xié)議,目標(biāo)端根據(jù)協(xié)議標(biāo)識(shí),就可以把收到的IP數(shù)據(jù)報(bào)送TCP或UDP等處理此報(bào)文的上層協(xié)議。表3-2給出了常用的網(wǎng)際協(xié)議編號(hào)。3.2 IP協(xié)議3.2.1IP數(shù)據(jù)報(bào)格式十進(jìn)制編號(hào)協(xié)議說(shuō)明0無(wú)保留1ICMP網(wǎng)際控制報(bào)文協(xié)議2IGMP網(wǎng)際組管理協(xié)議3GGP網(wǎng)關(guān)-網(wǎng)關(guān)協(xié)議4無(wú)未分配5ST流6TCP傳輸控制協(xié)議8EGP外部網(wǎng)關(guān)協(xié)議9IGP內(nèi)部網(wǎng)關(guān)協(xié)議11NVP網(wǎng)絡(luò)聲音協(xié)議17UDP用戶數(shù)據(jù)報(bào)協(xié)議3.2 IP協(xié)議3.2.1IP數(shù)據(jù)報(bào)格式7.校驗(yàn)和用16位二進(jìn)制數(shù)表示,這個(gè)域用于協(xié)議頭數(shù)據(jù)有效性的校驗(yàn),可以保證IP報(bào)頭區(qū)在傳輸時(shí)的正確性和完整性。頭部校驗(yàn)和字段是根據(jù)IP協(xié)議頭部計(jì)算的校驗(yàn)和碼,它不對(duì)頭部后面的數(shù)據(jù)進(jìn)行計(jì)算。為了計(jì)算一份數(shù)據(jù)報(bào)的IP校驗(yàn)和,首先把校驗(yàn)和字段置為0,然后對(duì)首部中每16位二進(jìn)制數(shù)進(jìn)行反碼求和(整個(gè)首部看成是由多個(gè)16二進(jìn)制數(shù)組成)的運(yùn)算,結(jié)果存在檢驗(yàn)和字段中。接收端在收到一個(gè)IP數(shù)據(jù)報(bào)后,同樣對(duì)首部中每個(gè)16位二進(jìn)制數(shù)進(jìn)行反碼求和運(yùn)算。3.2 IP協(xié)議3.2.1IP數(shù)據(jù)報(bào)格式8. 源地址用32位二進(jìn)制數(shù)表示的發(fā)送端IP地址。9. 目的地址用32位二進(jìn)制數(shù)表示的目的端IP地址。3.2 IP協(xié)議3.2.3IP數(shù)據(jù)報(bào)的分片與重組1. 最大傳輸單元MTU正如圖3-1所示,IP數(shù)據(jù)報(bào)在互聯(lián)網(wǎng)上傳輸,可能要經(jīng)過(guò)多個(gè)物理網(wǎng)絡(luò)數(shù)據(jù)報(bào)才能從源端傳輸?shù)侥繕?biāo)端。不同的網(wǎng)絡(luò)由于鏈路層和介質(zhì)的物理特性不同,因此在進(jìn)行數(shù)據(jù)傳輸時(shí),對(duì)數(shù)據(jù)幀的最大長(zhǎng)度都有一個(gè)限制,這個(gè)限制值叫最大傳輸單元MTU(MaximumTransmissionUnit)。同一個(gè)網(wǎng)絡(luò)上的兩臺(tái)主機(jī)之間通信時(shí),該網(wǎng)絡(luò)的MTU是確定,不存在分片問(wèn)題。分片問(wèn)題一般只存在于具有不同MTU值的互聯(lián)網(wǎng)中。由于現(xiàn)在互聯(lián)網(wǎng)主要使用路由器進(jìn)行網(wǎng)絡(luò)連接,所以分片工作通常由路由器進(jìn)行。3.2 IP協(xié)議3.2.3IP數(shù)據(jù)報(bào)的分片與重組1. 最大傳輸單元MTU如果兩臺(tái)主機(jī)之間的通信要通過(guò)多個(gè)具有不同MTU值的網(wǎng)絡(luò)時(shí),重要的不是兩臺(tái)主機(jī)所在網(wǎng)絡(luò)的MTU值,而是兩臺(tái)通信主機(jī)路徑上的最小MTU值,它被稱作路徑MTU。兩臺(tái)主機(jī)之間的路徑MTU不一定是個(gè)常數(shù),它取決于數(shù)據(jù)報(bào)所經(jīng)過(guò)的路徑。由于路由選擇不一定是對(duì)稱的(從A到B的路由可能與從B到A的路由不同),因此,路徑MTU在兩個(gè)方向上不一定是一致的。表3-3列出了幾種常用網(wǎng)絡(luò)的MTU值。3.2 IP協(xié)議3.2.3IP數(shù)據(jù)報(bào)的分片與重組網(wǎng)絡(luò)名稱MTU(單位:字節(jié))以太網(wǎng)1500IEEE802.3/802.21492FDDI4352ATM(信元)48X.25576點(diǎn)到點(diǎn)(低延時(shí))296令牌環(huán)網(wǎng)(IBM16MB/s)17914令牌環(huán)網(wǎng)(IEEE802.5IBM16MB/s)44643.2 IP協(xié)議3.2.3IP數(shù)據(jù)報(bào)的分片與重組2. 分片當(dāng)一個(gè)IP數(shù)據(jù)報(bào)要通過(guò)鏈路層進(jìn)行傳輸時(shí),如果IP數(shù)據(jù)報(bào)的長(zhǎng)度比鏈路層MTU的值大,那么IP層就需要對(duì)將要發(fā)送的IP數(shù)據(jù)報(bào)進(jìn)行分片,把一個(gè)IP數(shù)據(jù)報(bào)分成若干個(gè)長(zhǎng)度小于或等于鏈路層MTU的IP數(shù)據(jù)報(bào),才能經(jīng)過(guò)鏈路層進(jìn)行傳輸。這種把一個(gè)數(shù)據(jù)報(bào)為了適合網(wǎng)絡(luò)傳輸而分成多個(gè)數(shù)據(jù)報(bào)的過(guò)程,叫分片(fragmentation)。一定要注意,被分片后的各個(gè)IP數(shù)據(jù)報(bào),可能經(jīng)過(guò)不同的路徑到達(dá)目標(biāo)主機(jī)。一個(gè)IP數(shù)據(jù)報(bào)在傳輸過(guò)程中可能被分片,也可能不被分片。如果被分片,分片后的IP數(shù)據(jù)報(bào)和原來(lái)沒(méi)有分片的IP數(shù)據(jù)報(bào)結(jié)構(gòu)是相同的,即也是由IP頭部和IP數(shù)據(jù)區(qū)兩部分組成。3.2 IP協(xié)議3.2.3IP數(shù)據(jù)報(bào)的分片與重組3. 重組當(dāng)分了片的IP數(shù)據(jù)報(bào)被傳輸?shù)阶罱K目標(biāo)主機(jī)時(shí),目標(biāo)主機(jī)要對(duì)收到的各分片重新進(jìn)行組裝,以恢復(fù)成源主機(jī)發(fā)送時(shí)的IP數(shù)據(jù)報(bào),這個(gè)過(guò)程叫IP數(shù)據(jù)報(bào)的重組。重組時(shí)如何知道收到的分片(IP數(shù)據(jù)報(bào))屬于原來(lái)哪個(gè)IP數(shù)據(jù)報(bào)呢?解決這個(gè)問(wèn)題就要使用IP數(shù)據(jù)報(bào)頭部的標(biāo)識(shí)字段。在IP數(shù)據(jù)報(bào)頭部中,標(biāo)識(shí)用16位二進(jìn)制數(shù)表示,它惟一地標(biāo)識(shí)主機(jī)發(fā)送的每一份數(shù)據(jù)報(bào)。通常在源端保持著一個(gè)計(jì)數(shù)器,每發(fā)送一個(gè)數(shù)據(jù)報(bào)它的值就會(huì)加1,以保證每個(gè)數(shù)據(jù)報(bào)有一個(gè)惟一的標(biāo)識(shí),而在一個(gè)數(shù)據(jù)報(bào)被分片時(shí),每個(gè)分片僅把原數(shù)據(jù)報(bào)標(biāo)識(shí)字段的值原樣復(fù)制一份,所以一個(gè)數(shù)據(jù)報(bào)的所有分片具有相同的標(biāo)識(shí)。3.2 IP協(xié)議3.2.3IP數(shù)據(jù)報(bào)的分片與重組3. 重組目標(biāo)端主機(jī)重組數(shù)據(jù)報(bào)的原理是:根據(jù)標(biāo)識(shí)可以確定收到的分片屬于哪個(gè)原IP數(shù)據(jù)報(bào);根據(jù)標(biāo)志字段的片未完MF子字段可以確定分片是不是最后一個(gè)分片;根據(jù)偏移量就可以確定分片在原數(shù)據(jù)報(bào)中的位置。3.2 IP協(xié)議3.2.4IP數(shù)據(jù)報(bào)選項(xiàng)IP數(shù)據(jù)報(bào)選項(xiàng)主要有兩大功能:一個(gè)可以用來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)報(bào)傳輸過(guò)程的控制,如規(guī)定數(shù)據(jù)報(bào)要經(jīng)過(guò)的路由;二是進(jìn)行網(wǎng)絡(luò)測(cè)試,如一個(gè)數(shù)據(jù)報(bào)傳輸過(guò)程中經(jīng)過(guò)了哪些路由器。IP選項(xiàng)域共分為四大類(lèi),見(jiàn)表3-4所示,每類(lèi)分為若干個(gè)選項(xiàng),每個(gè)選項(xiàng)有確定的編號(hào)。0類(lèi)表示數(shù)據(jù)報(bào)或網(wǎng)絡(luò)控制,有6個(gè)選項(xiàng)在使用。2類(lèi)表示調(diào)試與測(cè)量,有1個(gè)選項(xiàng)在使用。1類(lèi)和3類(lèi)未使用。3.2 IP協(xié)議選項(xiàng)類(lèi)用途選項(xiàng)號(hào)長(zhǎng)度功能0類(lèi)數(shù)據(jù)報(bào)或網(wǎng)絡(luò)控制0-IP數(shù)據(jù)報(bào)頭中的任選項(xiàng)域結(jié)束1-無(wú)操作211字節(jié)安全和處理限制(用于軍事領(lǐng)域,詳細(xì)內(nèi)容參見(jiàn)RFC1108[Kent1991])3可變?cè)O(shè)置寬松源路由選擇7可變記錄數(shù)據(jù)報(bào)經(jīng)過(guò)的路由9可變?cè)O(shè)置嚴(yán)格源路由選擇1類(lèi)未用2類(lèi)調(diào)試與測(cè)量可變記錄Internet時(shí)戳3類(lèi)未用選項(xiàng)類(lèi)用途選項(xiàng)號(hào)長(zhǎng)度功能0類(lèi)數(shù)據(jù)報(bào)或網(wǎng)絡(luò)控制0-IP數(shù)據(jù)報(bào)頭中的任選項(xiàng)域結(jié)束1-無(wú)操作211字節(jié)安全和處理限制(用于軍事領(lǐng)域,詳細(xì)內(nèi)容參見(jiàn)RFC1108[Kent1991])3可變?cè)O(shè)置寬松源路由選擇7可變記錄數(shù)據(jù)報(bào)經(jīng)過(guò)的路由9可變?cè)O(shè)置嚴(yán)格源路由選擇1類(lèi)未用2類(lèi)調(diào)試與測(cè)量可變記錄Internet時(shí)戳3類(lèi)未用3.2 IP協(xié)議3.2.4IP數(shù)據(jù)報(bào)選項(xiàng)IP數(shù)據(jù)報(bào)選項(xiàng)由三個(gè)部分組成:選項(xiàng)碼、選項(xiàng)長(zhǎng)度和選項(xiàng)數(shù)據(jù)。選項(xiàng)碼和選項(xiàng)長(zhǎng)度各占一個(gè)字節(jié),選項(xiàng)長(zhǎng)度用于確定整個(gè)選項(xiàng)部分的長(zhǎng)度,如圖3-9所示。圖3-9 IP數(shù)據(jù)報(bào)頭標(biāo)志位2位1位5位選項(xiàng)碼選項(xiàng)長(zhǎng)度選項(xiàng)數(shù)據(jù)
復(fù)制選項(xiàng)類(lèi)選項(xiàng)號(hào)3.2 IP協(xié)議3.2.4IP數(shù)據(jù)報(bào)選項(xiàng)其中,選項(xiàng)碼由復(fù)制、選項(xiàng)類(lèi)和選項(xiàng)號(hào)三個(gè)部分組成。(1) 復(fù)制:占1位,用來(lái)控制一個(gè)帶有選項(xiàng)的IP數(shù)據(jù)報(bào)被分片時(shí),分片后對(duì)選項(xiàng)的處理方式。如果該位被置1,將選項(xiàng)復(fù)制到所有分片中;被置0,將選項(xiàng)僅復(fù)制到第一個(gè)分片中。(2) 選項(xiàng)類(lèi)和選項(xiàng)號(hào):選項(xiàng)類(lèi)占2位,選項(xiàng)號(hào)占5位,用于確定該選項(xiàng)是哪類(lèi)選項(xiàng)中的哪個(gè)選項(xiàng)。其實(shí)就是用于確定該選項(xiàng)的功能。如表3-4所示。3.2 IP協(xié)議3.2.4IP數(shù)據(jù)報(bào)選項(xiàng)對(duì)幾種常用的選項(xiàng)說(shuō)明如下:1. 源路由選擇所謂源路由選擇(sourcerouting)是指IP數(shù)據(jù)報(bào)在互聯(lián)網(wǎng)中傳輸時(shí),所經(jīng)過(guò)的路由是由發(fā)出IP數(shù)據(jù)報(bào)的源主機(jī)指定,以區(qū)別于數(shù)據(jù)報(bào)在互聯(lián)網(wǎng)中傳輸時(shí),由路由器的IP層自動(dòng)尋徑所得到的路由。通過(guò)設(shè)置源路由選擇選項(xiàng),可進(jìn)行測(cè)試網(wǎng)絡(luò)中指定路由的連通性,以使數(shù)據(jù)報(bào)繞開(kāi)出錯(cuò)的網(wǎng)絡(luò),也可用于測(cè)試特定網(wǎng)絡(luò)的吞吐量。源路由選擇分為兩類(lèi),一類(lèi)是嚴(yán)格源路由選擇(strictsourcerouting),另一類(lèi)是寬松源路由選擇(loosesource.routing)。3.2 IP協(xié)議3.2.4IP數(shù)據(jù)報(bào)選項(xiàng)(1) 嚴(yán)格源路由選擇嚴(yán)格源路由選擇由發(fā)送端規(guī)定IP數(shù)據(jù)報(bào)必須要經(jīng)過(guò)的路徑上的每一個(gè)路由器,相鄰路由器之間不得有中間路由器,并且所經(jīng)過(guò)路由器的順序不可更改。如果一個(gè)路由器發(fā)現(xiàn)源路由所指定的下一個(gè)路由器不在其直接連接的網(wǎng)絡(luò)上,那么它就返回一個(gè)“源站路由失敗”的ICMP差錯(cuò)報(bào)文。其選項(xiàng)格式如圖3-10所示。1字節(jié)1字節(jié)1字節(jié)4字節(jié)4字節(jié)4字節(jié)4字節(jié)選項(xiàng)碼選項(xiàng)長(zhǎng)度指針第1站IP地址第2站IP地址第3站IP地址……第9站IP地址3.2 IP協(xié)議3.2.4IP數(shù)據(jù)報(bào)選項(xiàng)其中,選項(xiàng)碼為10001001(0X89),即為0類(lèi)9號(hào)選項(xiàng),最高位為1,是因?yàn)榉制蟮臄?shù)據(jù)也要按嚴(yán)格源路由傳輸。選項(xiàng)長(zhǎng)度最大為39,可存放9個(gè)IP地址。因?yàn)镮P首部長(zhǎng)度字段只有4位二進(jìn)制,因此整個(gè)IP首部最長(zhǎng)只能包括15個(gè)32位長(zhǎng)的字(即60個(gè)字節(jié))。由于IP首部固定長(zhǎng)度為20字節(jié),選項(xiàng)碼、選項(xiàng)長(zhǎng)度和指針共用去3個(gè)字節(jié),這樣只剩下37個(gè)字節(jié)(=60-20-3)來(lái)存放IP地址清單,也就是說(shuō)只能存放9個(gè)IP地址。指針字段指向當(dāng)前的IP地址,每經(jīng)過(guò)一個(gè)路由器,指針的數(shù)值加1,以指向下一個(gè)IP地址的位置。在指針之后是IP數(shù)據(jù)報(bào)所要經(jīng)過(guò)路由器的IP地址列表。3.2 IP協(xié)議3.2.4IP數(shù)據(jù)報(bào)選項(xiàng)(2) 寬松源路由選擇寬松源路由選擇由發(fā)送端指明一個(gè)數(shù)據(jù)報(bào)經(jīng)過(guò)的IP地址清單,但是在數(shù)據(jù)報(bào)傳輸?shù)穆窂缴?,可以在選項(xiàng)中指定的兩個(gè)IP地址之間有其它IP地址的路由器。寬松源路由選擇選項(xiàng)的格式與圖3-13所示的嚴(yán)格源路由選擇選項(xiàng)的格式相同,各字段的含意也一樣,但選項(xiàng)碼字段的值為0x83。3.2 IP協(xié)議3.2.4IP數(shù)據(jù)報(bào)選項(xiàng)2. 記錄路由通過(guò)設(shè)置記錄路由選項(xiàng),IP數(shù)據(jù)報(bào)就可以記錄數(shù)據(jù)報(bào)從源主機(jī)傳輸?shù)侥繕?biāo)主機(jī)時(shí),所經(jīng)過(guò)路徑上各個(gè)路由器的IP地址。記錄路由選項(xiàng)的數(shù)據(jù)格式與圖3-9所示的格式相同,但選項(xiàng)碼字段的值為0x87,指針的初值為4,指向存放第一個(gè)IP地址的位置。IP數(shù)據(jù)報(bào)經(jīng)過(guò)各路由器時(shí),每個(gè)路由器的IP地址存入選項(xiàng)的數(shù)據(jù)區(qū)中,指針字段的值也隨著增加(從4開(kāi)始到8、12、16、最大到36),它始終指向下一個(gè)存放IP地址的位置,當(dāng)記錄了9個(gè)IP地址后,指針字段的值為40,表示數(shù)據(jù)區(qū)已滿。3.2 IP協(xié)議3.2.4IP數(shù)據(jù)報(bào)選項(xiàng)3. 記錄時(shí)間戳所謂記錄時(shí)間戳就是IP數(shù)據(jù)報(bào)每經(jīng)過(guò)一個(gè)路由器都記下它的IP地址和時(shí)間。時(shí)間戳中的時(shí)間以ms為單位,時(shí)間戳的取值一般為格林威治時(shí)間(universaltime)自午夜開(kāi)始計(jì)時(shí)的毫秒數(shù)。時(shí)間戳選項(xiàng)的選項(xiàng)代碼為0x44。選項(xiàng)長(zhǎng)度表示選項(xiàng)的總長(zhǎng)度(一般為36或40),指針指向下一個(gè)可用空間的指針(值為5,9,13等)。接下來(lái)的兩個(gè)字段各占4位:溢出字段OF(OverFlow)表示因時(shí)間戳選項(xiàng)數(shù)據(jù)區(qū)空間不夠,而未能記錄下來(lái)的時(shí)間戳個(gè)數(shù)。標(biāo)志字段FL用于控制時(shí)間戳選項(xiàng)的格式。3.3 IP地址3.3.1IP地址的表示格式互聯(lián)網(wǎng)是由很多網(wǎng)絡(luò)連接而成的,互聯(lián)網(wǎng)中的數(shù)據(jù)報(bào)有些是在本網(wǎng)內(nèi)主機(jī)之間傳輸?shù)?,有些是要送到互?lián)網(wǎng)中其它網(wǎng)絡(luò)中主機(jī)的數(shù)據(jù)報(bào),因此,IP地址不但要標(biāo)識(shí)在本網(wǎng)內(nèi)的主機(jī)號(hào),還要標(biāo)識(shí)在互聯(lián)網(wǎng)中的網(wǎng)絡(luò)號(hào)。一個(gè)IP地址由網(wǎng)絡(luò)號(hào)和主機(jī)號(hào)兩部分組成,網(wǎng)絡(luò)號(hào)標(biāo)識(shí)互聯(lián)網(wǎng)中的一個(gè)特定網(wǎng)絡(luò),主機(jī)號(hào)標(biāo)識(shí)該網(wǎng)絡(luò)中的一臺(tái)特定主機(jī)。這樣給定一個(gè)IP地址,就可以很方便的知道它是哪個(gè)網(wǎng)絡(luò)上的哪一臺(tái)主機(jī)。3.3 IP地址3.3.1IP地址的表示格式表示方法舉例說(shuō)明二進(jìn)制10000110000110000000100001000010計(jì)算機(jī)內(nèi)部使用十進(jìn)制2249721922很少使用十六進(jìn)制0X86180842較少使用點(diǎn)分十進(jìn)制134.24.8.66最常用3.3 IP地址3.3.2IP地址的分類(lèi)在Internet發(fā)展的初期,人們用IP地址的前8位用來(lái)定義所在的網(wǎng)絡(luò),后24位用來(lái)定義該主機(jī)在當(dāng)?shù)鼐W(wǎng)絡(luò)中的地址。這樣互聯(lián)網(wǎng)中最多只能有255(應(yīng)該有256個(gè),但全1的IP地址用于廣播)個(gè)網(wǎng)絡(luò)。后來(lái)由于這種方案可以表示的網(wǎng)絡(luò)數(shù)太少,而每個(gè)網(wǎng)絡(luò)中可以連入的主機(jī)又非常多,這不符合互聯(lián)網(wǎng)的實(shí)際情況。于是,人們?cè)O(shè)計(jì)了一種新的編碼方案,該方案中用IP地址高位字節(jié)的若干位來(lái)表示不同類(lèi)型的網(wǎng)絡(luò),以適應(yīng)大型、中型、小型網(wǎng)絡(luò)對(duì)IP地址的需求。這種IP地址分類(lèi)法把IP地址共分為A、B、C、D和E共五類(lèi),用IP地址的高位來(lái)區(qū)分。3.3 IP地址3.3.2IP地址的分類(lèi)類(lèi)別類(lèi)標(biāo)識(shí)第一字節(jié)網(wǎng)絡(luò)地址長(zhǎng)度主機(jī)地址長(zhǎng)度最大網(wǎng)絡(luò)數(shù)最大主機(jī)數(shù)選用范圍A類(lèi)01~1261字節(jié)3字節(jié)12616777214大型網(wǎng)絡(luò)B類(lèi)10128~1912字節(jié)2字節(jié)1638265534中型網(wǎng)絡(luò)C類(lèi)110192~2233字節(jié)1字節(jié)2097150254小型網(wǎng)絡(luò)D類(lèi)1110224~239----多點(diǎn)播送E類(lèi)11110240~247----保留地址3.3 IP地址3.3.3子網(wǎng)的劃分1. 子網(wǎng)與子網(wǎng)地址IP地址最初使用兩層地址結(jié)構(gòu)(包括網(wǎng)絡(luò)地址和主機(jī)地址),在這種結(jié)構(gòu)中A類(lèi)和B類(lèi)網(wǎng)絡(luò)所能容納的主機(jī)數(shù)非常龐大,但使用C類(lèi)IP地址的網(wǎng)絡(luò)只能接入254臺(tái)主機(jī)。隨著時(shí)間的推移,計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)不斷普及,有大量的個(gè)人用戶和小型局域網(wǎng)接入互聯(lián)網(wǎng),對(duì)于這樣的用戶,即使分配一個(gè)C類(lèi)網(wǎng)絡(luò)地址仍然會(huì)造成IP地址的很大浪費(fèi)。因此,人們提出了三層結(jié)構(gòu)的IP地址,把每個(gè)網(wǎng)絡(luò)可以進(jìn)一步劃分成若干個(gè)子網(wǎng)(subnet),子網(wǎng)內(nèi)主機(jī)的IP地址由三部分組成。一個(gè)網(wǎng)絡(luò)可以劃分成多少個(gè)子網(wǎng),由子網(wǎng)地址位數(shù)決定,當(dāng)然一種給定類(lèi)型的IP地址,如果子網(wǎng)占用的位數(shù)越多,子網(wǎng)內(nèi)主機(jī)就越少。劃分子網(wǎng)進(jìn)一步減少了可用的IP地址數(shù)量,這是因?yàn)?,把主機(jī)地址的一部分拿走用于識(shí)別子網(wǎng)和進(jìn)行子網(wǎng)內(nèi)廣播.3.3 IP地址3.3.3子網(wǎng)的劃分2. 子網(wǎng)掩碼對(duì)于劃分了子網(wǎng)的網(wǎng)絡(luò),由于子網(wǎng)地址是由兩級(jí)地址結(jié)構(gòu)中主機(jī)地址的若干位組成的,具體子網(wǎng)所占位數(shù)的多少,要根據(jù)子網(wǎng)的規(guī)模來(lái)決定,如果一個(gè)網(wǎng)絡(luò)內(nèi)的子網(wǎng)數(shù)較少,而子網(wǎng)內(nèi)主機(jī)數(shù)較多,就應(yīng)該把兩級(jí)地址結(jié)構(gòu)中主機(jī)地址的大部分位數(shù)分配給子網(wǎng)內(nèi)的主機(jī),少量位用來(lái)表示子網(wǎng)號(hào)。那么,究竟在一個(gè)IP地址中哪些位用來(lái)表示網(wǎng)絡(luò)號(hào),哪些位用來(lái)表示子網(wǎng)號(hào),以及哪些位用來(lái)表示主機(jī)號(hào)呢?這就要使用子網(wǎng)掩碼(subnetmask)來(lái)標(biāo)識(shí)。3.3 IP地址3.3.3子網(wǎng)的劃分2. 子網(wǎng)掩碼子網(wǎng)掩碼用32位二進(jìn)制數(shù)表示,常用點(diǎn)分十進(jìn)制數(shù)格式來(lái)書(shū)寫(xiě),掩碼中用于標(biāo)識(shí)網(wǎng)絡(luò)號(hào)和子網(wǎng)號(hào)的位置為1,主機(jī)位為0。舉例來(lái)說(shuō),一個(gè)C類(lèi)地址取主機(jī)號(hào)的兩位為子網(wǎng)號(hào),則掩碼為11111111.11111111.11111111.11000000(255.255.255.192),子網(wǎng)可以產(chǎn)生64個(gè)可能的主機(jī)地址,實(shí)際上只有62個(gè)地址是可用的,另外兩個(gè)地址,一個(gè)用于識(shí)別子網(wǎng)自身,另一個(gè)用于子網(wǎng)的廣播,因此得到子網(wǎng)內(nèi)最大可用的主機(jī)數(shù)時(shí)總要減去2。如2位的子網(wǎng)號(hào)數(shù)學(xué)上的組合為00、01、10和11共四種,第一種和最后一種組合有特殊用處,只剩下01和10可用于識(shí)別子網(wǎng),得到2個(gè)可用的子網(wǎng)地址。3.3 IP地址3.3.4特殊IP地址IP地址用來(lái)標(biāo)識(shí)互聯(lián)網(wǎng)中的主機(jī),但少數(shù)IP地址有特殊用途,不能分配給主機(jī),共有如下幾種(以下用Netid表示網(wǎng)絡(luò)號(hào),用Hostid表示主機(jī)號(hào))。1. 網(wǎng)絡(luò)地址(Netid=特定網(wǎng)絡(luò)號(hào),Hostid=0)在互聯(lián)網(wǎng)中經(jīng)常要使用某個(gè)網(wǎng)絡(luò)的網(wǎng)絡(luò)地址。在IP地址編碼方案中,網(wǎng)絡(luò)地址由一個(gè)有效的網(wǎng)絡(luò)號(hào)和全“0”的主機(jī)地址組成。例如,某主機(jī)的IP地址為100.1.1.110,它是一個(gè)A類(lèi)地址,則該主機(jī)所在網(wǎng)絡(luò)的地址為100.0.0.0,某主機(jī)的IP地址為157.34.12.56,它是一個(gè)B類(lèi)地址,則主機(jī)所在網(wǎng)絡(luò)的地址為157.34.0.0。3.3 IP地址3.3.4特殊IP地址2. 直接廣播地址(Netid=特定網(wǎng)絡(luò)號(hào),Hostid=全1)當(dāng)IP地址由一個(gè)有效的網(wǎng)絡(luò)號(hào)和全“1”的主機(jī)地址組成時(shí),這樣的IP地址用于廣播通信,即同時(shí)向指定網(wǎng)絡(luò)中的所有主機(jī)發(fā)送數(shù)據(jù)報(bào),叫直接廣播(directedbroadcasting),具有這種特點(diǎn)的IP地址叫直接廣播地址。例如,當(dāng)互聯(lián)網(wǎng)中的一臺(tái)主機(jī)如果使用157.34.255.255為目標(biāo)地址發(fā)送數(shù)據(jù)報(bào)時(shí),則網(wǎng)絡(luò)號(hào)為157.34.0.0的網(wǎng)絡(luò)中的所有主機(jī)都能收到該數(shù)據(jù)報(bào)。3.3 IP地址3.3.4特殊IP地址3. 有限廣播地址(Netid=全1,Hostid=全1)有限廣播(limitedbroadcast)地址也稱為本網(wǎng)廣播地址,如果IP地址的32位二進(jìn)制數(shù)全為“1”,這樣的地址用于對(duì)本網(wǎng)廣播通信。也就是說(shuō),如果一臺(tái)主機(jī)發(fā)送的數(shù)據(jù)報(bào),目標(biāo)IP地址為255.255.255.255,則該數(shù)據(jù)報(bào)被送到本網(wǎng)中的每一臺(tái)主機(jī)。4. 本網(wǎng)特定主機(jī)地址(Netid=全0,Hostid=特定主機(jī)號(hào))在本網(wǎng)內(nèi)部主機(jī)之間通信時(shí),可以用網(wǎng)絡(luò)地址全為“0”的IP地址。這有兩種情況:一是可能主機(jī)想進(jìn)行本網(wǎng)內(nèi)主機(jī)之間的通信,但又不知道本網(wǎng)的網(wǎng)絡(luò)地址;二是為了簡(jiǎn)單起見(jiàn),在本網(wǎng)絡(luò)內(nèi)通信時(shí)只給出目標(biāo)主機(jī)的主機(jī)號(hào)。例如,某主機(jī)發(fā)送數(shù)據(jù)報(bào)時(shí),目標(biāo)IP地址為0.0.123.42(B類(lèi)地址),則表示該數(shù)據(jù)報(bào)要送到本網(wǎng)主機(jī)號(hào)為123.42的主機(jī)上。3.3 IP地址3.3.4特殊IP地址5. 回送地址(Netid=127,Hostid=任意值)A類(lèi)地址中網(wǎng)絡(luò)地址為127的地址是一個(gè)保留地址,用于網(wǎng)絡(luò)軟件測(cè)試或本機(jī)進(jìn)程間通信,發(fā)送到這種地址的數(shù)據(jù)報(bào)不輸出到線路上,而是數(shù)據(jù)報(bào)被立即返回,又當(dāng)作輸入數(shù)據(jù)報(bào),在本機(jī)內(nèi)部進(jìn)行處理,所以稱為回送(lookback)地址。在任何網(wǎng)絡(luò)上不可能出現(xiàn)網(wǎng)絡(luò)地址為127的數(shù)據(jù)報(bào)在傳輸,一般用來(lái)對(duì)本機(jī)協(xié)議的正確性進(jìn)行測(cè)試。3.3 IP地址3.3.4特殊IP地址6. 本網(wǎng)絡(luò)本主機(jī)(Netid=全0,Hostid=全0)全“0”的IP地址表示本網(wǎng)絡(luò)上的本主機(jī)。從上面可以看出,IP地址網(wǎng)絡(luò)地址或主機(jī)地址中值“全0”和值“全1”有特別的含意,值“全0”表示本網(wǎng)絡(luò)或本主機(jī);值“全1”表示一個(gè)廣播地址。如果用戶網(wǎng)絡(luò)不與互聯(lián)網(wǎng)相連,從原理上來(lái)說(shuō),可以由用戶自行分配IP地址,但最好還是使用互聯(lián)網(wǎng)地址分配管理機(jī)構(gòu)保留的私有IP地址,這些地址范圍是:A類(lèi)地址:10.0.0.1~10.255.255.254B類(lèi)地址:172.13.0.1~172.32.255.254C類(lèi)地址:192.168.0.1~192.168.255.2543.4Internet控制報(bào)文協(xié)議(ICMP)3.4.1ICMP報(bào)文的封裝與格式1. ICMP報(bào)文的封裝ICMP報(bào)文和其它協(xié)議的報(bào)文一樣,也由ICMP報(bào)文頭區(qū)和數(shù)據(jù)區(qū)兩部分組成。ICMP報(bào)文是封裝在IP數(shù)據(jù)報(bào)中通過(guò)鏈路層在網(wǎng)絡(luò)進(jìn)行傳輸?shù)?。這與高層其它協(xié)議(如TCP、UDP等)相似,它在IP數(shù)據(jù)報(bào)頭中的協(xié)議標(biāo)識(shí)是1。我們通常還是把ICMP看成是網(wǎng)絡(luò)層(IP層)協(xié)議,主要有兩個(gè)原因:一是ICMP只傳送差錯(cuò)與控制報(bào)文,不可能在TCP/IP協(xié)議簇中構(gòu)成一個(gè)單獨(dú)的層;二是ICMP報(bào)文處理與傳輸?shù)亩际怯嘘P(guān)IP層的信息,收到ICMP報(bào)文的主機(jī)一般也把報(bào)文交給IP層的ICMP模塊進(jìn)行處理,因此從協(xié)議邏輯層次來(lái)說(shuō),ICMP屬于網(wǎng)絡(luò)層協(xié)議。3.4Internet控制報(bào)文協(xié)議(ICMP)3.4.1ICMP報(bào)文的封裝與格式2. ICMP報(bào)文的格式ICMP報(bào)文的格式如圖3-17所示,其中報(bào)文頭分為三個(gè)部分:類(lèi)型、代碼和校驗(yàn)和。類(lèi)型(8位)代碼(8位)校驗(yàn)和(16位)ICMP數(shù)據(jù)區(qū)3.4Internet控制報(bào)文協(xié)議(ICMP)3.4.2ICMP差錯(cuò)報(bào)文1. ICMP差錯(cuò)報(bào)文的特點(diǎn)報(bào)告IP數(shù)據(jù)報(bào)在傳輸中的差錯(cuò)是ICMP報(bào)文最基本的功能,ICMP差錯(cuò)報(bào)文有如下特點(diǎn):(1)ICMP差錯(cuò)報(bào)文都是由路由器發(fā)送到源主機(jī)的,因?yàn)镮P數(shù)據(jù)報(bào)中含有源主機(jī)的IP地址,報(bào)告給源主機(jī)是最可行的方案,另外,發(fā)出IP數(shù)據(jù)報(bào)的源主機(jī)最需要知道數(shù)據(jù)是否到達(dá)目標(biāo)主機(jī)。(2)ICMP差錯(cuò)報(bào)文只提供IP數(shù)據(jù)報(bào)在傳輸過(guò)程中的差錯(cuò)報(bào)告,并不規(guī)定對(duì)各類(lèi)差錯(cuò)應(yīng)采取什么樣的處理措施。具體對(duì)差錯(cuò)的處理,由收到ICMP差錯(cuò)報(bào)文的源主機(jī)將相應(yīng)的差錯(cuò)與應(yīng)用程序聯(lián)系起來(lái)才能進(jìn)行相應(yīng)的差錯(cuò)處理。(3)ICMP差錯(cuò)報(bào)文不享受任何優(yōu)先權(quán),也沒(méi)有特別的可靠性保證措施,與普通的IP數(shù)據(jù)報(bào)一樣進(jìn)行傳輸,傳輸過(guò)程中可能被丟失、損壞,甚至被拋棄。(4)ICMP差錯(cuò)報(bào)文是伴隨著拋棄出錯(cuò)的IP數(shù)據(jù)報(bào)而產(chǎn)生的。3.4Internet控制報(bào)文協(xié)議(ICMP)3.4.2ICMP差錯(cuò)報(bào)文1. ICMP差錯(cuò)報(bào)文的特點(diǎn)(5)當(dāng)路由器發(fā)送一份ICMP差錯(cuò)報(bào)文時(shí),ICMP報(bào)文數(shù)據(jù)區(qū)始終包含產(chǎn)生ICMP差錯(cuò)報(bào)文的IP數(shù)據(jù)報(bào)的首部和其數(shù)據(jù)區(qū)的前8個(gè)字節(jié)(64位)。這樣做的目的是,接收到ICMP差錯(cuò)報(bào)文的模塊就會(huì)把它與某個(gè)特定的上層協(xié)議TCP或UDP(根據(jù)IP數(shù)據(jù)報(bào)首部中的協(xié)議字段來(lái)判斷)聯(lián)系起來(lái),再根據(jù)包含在IP數(shù)據(jù)報(bào)數(shù)據(jù)區(qū)前8個(gè)字節(jié)中的內(nèi)容,把TCP或UDP報(bào)文首部的端口號(hào)與某應(yīng)用程序聯(lián)系起來(lái)(端口在下一章介紹,讀者可以學(xué)習(xí)完下一章內(nèi)容后,回過(guò)頭來(lái)再學(xué)習(xí)該內(nèi)容),這樣就可以知道是哪個(gè)應(yīng)用程序發(fā)送的數(shù)據(jù)未送到目標(biāo)主機(jī),由應(yīng)用程序做出相應(yīng)的處理。(6)在有些情況下,為了防止在網(wǎng)絡(luò)中產(chǎn)生大量的ICMP差錯(cuò)報(bào)文(廣播風(fēng)暴),影響網(wǎng)絡(luò)的正常工作,即使發(fā)生差錯(cuò),也不會(huì)產(chǎn)生ICMP差錯(cuò)報(bào)文。3.4Internet控制報(bào)文協(xié)議(ICMP)3.4.2ICMP差錯(cuò)報(bào)文2. 目標(biāo)不可達(dá)ICMP報(bào)文目標(biāo)不可達(dá)是指當(dāng)一個(gè)路由器檢測(cè)出一個(gè)IP數(shù)據(jù)報(bào)不能發(fā)往它的目的地時(shí),路由器發(fā)出一個(gè)目標(biāo)不可達(dá)的ICMP差錯(cuò)報(bào)文。3. IP數(shù)據(jù)報(bào)超時(shí)ICMP報(bào)文當(dāng)IP數(shù)據(jù)報(bào)報(bào)頭中生存時(shí)間TTL的值減為0時(shí),路由器則拋棄該IP數(shù)據(jù)報(bào),并且產(chǎn)生一個(gè)ICMP超時(shí)報(bào)文,向源主機(jī)報(bào)告超時(shí)錯(cuò)誤。ICMP超時(shí)報(bào)文的格式與圖3-18所示的ICMP不可達(dá)報(bào)文格式相同,類(lèi)型字段取值為11,代碼字段為0或?yàn)?。為0時(shí)表示IP數(shù)據(jù)報(bào)傳輸期間TTL超時(shí),為1時(shí)表示分片重組時(shí)超時(shí)。4. 參數(shù)錯(cuò)誤ICMP報(bào)文當(dāng)IP數(shù)據(jù)報(bào)在傳輸過(guò)程中發(fā)生數(shù)據(jù)報(bào)報(bào)頭錯(cuò)誤或數(shù)據(jù)報(bào)選項(xiàng)區(qū)缺少必要的參數(shù)時(shí),路由器則拋棄該IP數(shù)據(jù)報(bào),并且產(chǎn)生一個(gè)ICMP參數(shù)出錯(cuò)報(bào)文。類(lèi)型字段為12,代碼字段為0或1,為0時(shí)表示IP數(shù)據(jù)報(bào)報(bào)頭錯(cuò)誤,引起錯(cuò)誤的字節(jié)用一個(gè)指針字段指出,3.4Internet控制報(bào)文協(xié)議(ICMP)3.4.3ICMP控制報(bào)文1. 擁塞控制與源站抑制報(bào)文當(dāng)一個(gè)路由器接收IP數(shù)據(jù)報(bào)的速度比其處理IP數(shù)據(jù)報(bào)的速度快,或一個(gè)路由器傳入數(shù)據(jù)報(bào)的速率大于傳出數(shù)據(jù)報(bào)的速率時(shí),就會(huì)產(chǎn)生擁塞(congestion)現(xiàn)象。這時(shí)路由器可以通過(guò)發(fā)送源站抑制(sourcequench)報(bào)文來(lái)抑制源主機(jī)發(fā)送IP數(shù)據(jù)報(bào)的速率,避免可能產(chǎn)生的差錯(cuò)。源站抑制技術(shù)是如何進(jìn)行擁塞控制的呢?當(dāng)路由器發(fā)現(xiàn)擁塞時(shí),發(fā)出ICMP源站抑制報(bào)文。擁塞的判別可以用這幾種方法:一是根據(jù)路由器緩存區(qū)已滿,二是給緩存區(qū)輸出隊(duì)列設(shè)置一個(gè)閾值,當(dāng)隊(duì)列中數(shù)據(jù)報(bào)的個(gè)數(shù)超過(guò)閾值時(shí),三是檢測(cè)到某輸入線路傳輸率過(guò)高時(shí)。源主機(jī)收到抑制報(bào)文后,按一定的速率降低發(fā)往目標(biāo)主機(jī)的數(shù)據(jù)報(bào)傳輸率。如果在一定的時(shí)間間隔內(nèi)源主機(jī)沒(méi)有收到抑制報(bào)文,便認(rèn)為擁塞已解除,源主機(jī)可以逐漸恢復(fù)到原來(lái)數(shù)據(jù)報(bào)的流量。3.4Internet控制報(bào)文協(xié)議(ICMP)3.4.3ICMP控制報(bào)文2. 路由控制與重定向報(bào)文在主機(jī)啟動(dòng)后,一般通過(guò)默認(rèn)的路由器把IP數(shù)據(jù)報(bào)發(fā)送出去,但不能保證是最優(yōu)的路由,因?yàn)榫W(wǎng)絡(luò)中的路由器或網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)都可能隨網(wǎng)絡(luò)的調(diào)整而以生變化。ICMP重向定報(bào)文的格式如圖3-21所示,它的類(lèi)型字段為5,代碼字段為0~3。路由器IP地址為源主機(jī)向目標(biāo)主機(jī)發(fā)送IP數(shù)據(jù)報(bào)時(shí)的優(yōu)化路由。類(lèi)型(8位)代碼(8位)校驗(yàn)和(16位)路由器IP地址IP數(shù)據(jù)報(bào)頭部(一般為20個(gè)字節(jié))IP數(shù)據(jù)報(bào)數(shù)據(jù)區(qū)前8個(gè)字節(jié)3.4Internet控制報(bào)文協(xié)議(ICMP)3.4.4ICMP請(qǐng)求與應(yīng)答報(bào)文差錯(cuò)報(bào)文和控制報(bào)文都是送往源主機(jī)的單向報(bào)文,并且對(duì)源主機(jī)來(lái)說(shuō)都是被動(dòng)的接受。ICMP請(qǐng)求與應(yīng)答報(bào)文可以由源主機(jī)主動(dòng)發(fā)出請(qǐng)求報(bào)文,為了響應(yīng)一個(gè)請(qǐng)求,ICMP軟件需要發(fā)送一個(gè)ICMP應(yīng)答報(bào)文。通過(guò)這種方法可以獲得網(wǎng)絡(luò)中某些有用的信息,以便進(jìn)行故障診斷和網(wǎng)絡(luò)控制。3.5IP數(shù)據(jù)報(bào)路由選擇與路由協(xié)議3.5.1路由表網(wǎng)絡(luò)層進(jìn)行路由選擇的依據(jù)是保存在路由器中的路由表。路由表保存了通過(guò)該路由器可能到達(dá)的目標(biāo)網(wǎng)絡(luò)以及如何到達(dá)該目標(biāo)網(wǎng)絡(luò)的信息。路由表中的基本表項(xiàng)包括目標(biāo)網(wǎng)絡(luò)地址、子網(wǎng)掩碼以及到達(dá)目標(biāo)網(wǎng)絡(luò)的下一跳路由器地址。目標(biāo)地址一般為目標(biāo)網(wǎng)絡(luò)地址,因?yàn)橥粋€(gè)網(wǎng)絡(luò)中的主機(jī)網(wǎng)絡(luò)號(hào)相同,這樣做的優(yōu)點(diǎn)是可以減少路由表的規(guī)模,提高對(duì)路由表的搜索速度。子網(wǎng)掩碼可以使路由器以網(wǎng)絡(luò)中的子網(wǎng)為目標(biāo)網(wǎng)絡(luò)(該例中沒(méi)有劃分子網(wǎng))。下一站路由器是一個(gè)與該路由器連接在同一個(gè)網(wǎng)絡(luò)上的路由器,為了把路由器收到的數(shù)據(jù)報(bào)送到目標(biāo)網(wǎng)絡(luò),路由器必須把數(shù)據(jù)報(bào)傳輸?shù)皆摰刂分付ǖ慕涌?,下一站路由器并不一定與目標(biāo)網(wǎng)絡(luò)直接相連,但是通過(guò)它可以把數(shù)據(jù)報(bào)轉(zhuǎn)發(fā)到最終目的主機(jī)。對(duì)與該路由器直接相連的網(wǎng)絡(luò)則可直接投遞。路由表的目標(biāo)地址主要是目標(biāo)網(wǎng)絡(luò)地址,但也可以包含兩種特殊的路由表項(xiàng)。一種是默認(rèn)路由,它可以進(jìn)一步簡(jiǎn)化路由表,當(dāng)路由表中沒(méi)有表項(xiàng)能與目標(biāo)網(wǎng)絡(luò)相匹配時(shí),就把數(shù)據(jù)報(bào)發(fā)送到默認(rèn)路由。3.5IP數(shù)據(jù)報(bào)路由選擇與路由協(xié)議3.5.2路由選擇算法路由器具體如何實(shí)現(xiàn)路由選擇,由路由選擇算法來(lái)完成。路由選擇算法(routingalgorithm)工作在網(wǎng)絡(luò)層,它負(fù)責(zé)確定對(duì)所收到的IP數(shù)據(jù)報(bào)應(yīng)通過(guò)哪條傳輸線傳出(轉(zhuǎn)發(fā))。下面給出路由選擇的一般算法:1. 路由器從收到的IP數(shù)據(jù)報(bào)中取出目標(biāo)IP地址;2. 搜索路由表,尋找能與目的IP地址完全匹配的表目(網(wǎng)絡(luò)號(hào)和主機(jī)號(hào)都要匹配)。如果找到,則把報(bào)文發(fā)送給該表目指定的下一站路由器或直接連接的網(wǎng)絡(luò)接口,路由選擇過(guò)程結(jié)束;如果找不到,則執(zhí)行下一步操作;3. 搜索路由表,把目標(biāo)IP地址與子網(wǎng)掩碼逐位求“與”后,尋找能與目的網(wǎng)絡(luò)號(hào)相匹配的表目。如果找到,則把報(bào)文發(fā)送給該表目指定的下一站路由器或直接連接的網(wǎng)絡(luò)接口,路由選擇過(guò)程結(jié)束;如果找不到,則執(zhí)行下一步操作;4. 搜索路由表,尋找標(biāo)為“默認(rèn)(default)”的表目。如果找到,則把報(bào)文發(fā)送給該表目指定的下一站路由器;如果找不到,則本次選路失敗,發(fā)送一個(gè)“目標(biāo)不可達(dá)”的ICMP報(bào)文給源主機(jī)。3.5IP數(shù)據(jù)報(bào)路由選擇與路由協(xié)議3.5.3路由表的建立與刷新路由器是根據(jù)路由表對(duì)所收到的數(shù)據(jù)報(bào)進(jìn)行轉(zhuǎn)發(fā)的,那么路由表是如何建立并更新的呢?本小節(jié)我們將回答這個(gè)問(wèn)題。路由可分為靜態(tài)路由和動(dòng)態(tài)路由兩種,它們的建立和維護(hù)方式不同。1. 靜態(tài)路由靜態(tài)路由是由互聯(lián)網(wǎng)網(wǎng)絡(luò)管理員,根據(jù)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)和連接方式人工建立的。靜態(tài)路由在目的地址和路由器端口之間的關(guān)系配置好之后,到達(dá)一個(gè)特定目標(biāo)網(wǎng)絡(luò)的IP數(shù)據(jù)報(bào)的路徑就固定了。靜態(tài)路由的優(yōu)點(diǎn)是可以使網(wǎng)絡(luò)更安全,因?yàn)橹挥幸粭l流進(jìn)和流出網(wǎng)絡(luò)的路徑(除非定義多條靜態(tài)路由)。另一個(gè)優(yōu)點(diǎn)是靜態(tài)路由配置簡(jiǎn)單,系統(tǒng)開(kāi)銷(xiāo)少,因?yàn)樗皇褂寐酚善魃系腃PU來(lái)計(jì)算路由,需要很少的存儲(chǔ)器就可以保存靜態(tài)路由。因此在互聯(lián)網(wǎng)中的很多設(shè)備都使用了靜態(tài)路由,大多數(shù)操作系統(tǒng)提供了路由的配置命令route,用于查看、修改、增加或刪除路由。靜態(tài)路由的缺點(diǎn)是配置靜態(tài)路由工作量大,并且要求網(wǎng)絡(luò)管理員熟悉互聯(lián)網(wǎng)的結(jié)構(gòu),一旦配置有錯(cuò)誤就可能造成網(wǎng)絡(luò)無(wú)法正常工作。當(dāng)網(wǎng)絡(luò)發(fā)生問(wèn)題或拓?fù)浣Y(jié)構(gòu)發(fā)生變化時(shí),網(wǎng)絡(luò)管理員要對(duì)路由信息重新進(jìn)行設(shè)置。另外,在靜態(tài)路由配置完成后,由于去往某一目標(biāo)網(wǎng)絡(luò)的路徑是固定的,如果該路徑出現(xiàn)故障,即使有其它路徑存在,目標(biāo)網(wǎng)絡(luò)也是不可達(dá)的。3.5IP數(shù)據(jù)報(bào)路由選擇與路由協(xié)議3.5.3路由表的建立與刷新2. 動(dòng)態(tài)路由動(dòng)態(tài)路由指互聯(lián)網(wǎng)中的路由器可以通過(guò)自身的學(xué)習(xí),自動(dòng)修改和刷新路由表。它是通過(guò)相鄰路由器之間的通信,以告知對(duì)方每個(gè)路由器當(dāng)前所連接的網(wǎng)絡(luò),收到路由信息的路由器就用這些信息對(duì)自己的路由進(jìn)行更新。路由器之間必須采用選路協(xié)議進(jìn)行通信,這樣的選路協(xié)議有很多種。在路由器上有一個(gè)進(jìn)程稱為路由守護(hù)程序(routingdaemon),它運(yùn)行選路協(xié)議,并與其相鄰的一些路由器進(jìn)行通信。路由守護(hù)程序如果發(fā)現(xiàn)前往同一目標(biāo)系統(tǒng)存在多條路由,那么它以某種方法,選擇最佳路由并加入到內(nèi)核路由表中。如果路由守護(hù)程序發(fā)現(xiàn)一條鏈路已經(jīng)斷開(kāi)(可能是路由器崩潰或通信線路不好造成的),那么它可以刪除受影響的路由或增加另一條路由。3.5IP數(shù)據(jù)報(bào)路由選擇與路由協(xié)議3.5.3路由表的建立與刷新2. 動(dòng)態(tài)路由路由守護(hù)程序在選擇最佳路由時(shí),是根據(jù)一定的選路策略(routingpolicy)來(lái)進(jìn)行的。選路策略與線路的速度、帶寬、延遲、可靠性、跳數(shù)(IP數(shù)據(jù)報(bào)到達(dá)目標(biāo)站必須經(jīng)過(guò)的路由器個(gè)數(shù))等因素有關(guān),每條線路的好壞用一個(gè)數(shù)字來(lái)表示,這個(gè)數(shù)字稱為度量值(Metric),度量值小的線路,說(shuō)明通過(guò)該線路到目標(biāo)的代價(jià)就小。這樣在動(dòng)態(tài)路由表中每個(gè)表項(xiàng)必須增加度量值這一屬性。為了簡(jiǎn)化對(duì)度量值的計(jì)算,有些路由協(xié)議用跳數(shù)(hopcount)代替度量值。動(dòng)態(tài)路由的刷新要通過(guò)執(zhí)行路由選擇協(xié)議來(lái)實(shí)現(xiàn),在互聯(lián)網(wǎng)中,目前采用了許多不同的選路協(xié)議。但每個(gè)自治系統(tǒng)AS(AutonomousSystem,自治系統(tǒng)通常指是由單個(gè)實(shí)體管理的系統(tǒng),如一個(gè)公司或一個(gè)大學(xué)校園都可以定義為一個(gè)自治系統(tǒng))必須使用相同的選路協(xié)議。用戶自治系統(tǒng)最常用的路由協(xié)議有兩種:一種是基于距離-向量路由算法的路由信息協(xié)議RIP(RoutingInformationProtocol);另一種中是基于鏈路-狀態(tài)路由算法的開(kāi)放式最短路徑優(yōu)先OSPF(OpenShortestPathFirst)協(xié)議。3.5IP數(shù)據(jù)報(bào)路由選擇與路由協(xié)議3.5.3路由選擇協(xié)議1. 距離-向量路由算法和路由信息協(xié)議RIP距離-向量算法,有時(shí)也稱為Bellman-Ford算法。該算法的基本思想是路由器會(huì)周期性地把自己的路由表拷貝傳送給與其直接相連的網(wǎng)絡(luò)中的各個(gè)路由器。也就是說(shuō),每個(gè)路由器都會(huì)把自己可以到達(dá)的目標(biāo)網(wǎng)絡(luò)(或主機(jī))以及到達(dá)這些網(wǎng)絡(luò)的代價(jià)(一般為跳數(shù))告訴給與它相鄰的其它路由器,相鄰路由器根據(jù)收到的路由信息修改或刷新自己的路由表。刷新的原則是使該路由器到其它目標(biāo)網(wǎng)絡(luò)的代價(jià)最小。舉一個(gè)例子,如果路由器A告訴路由器B它到路由器C的代價(jià)是2,而路由器B自己記錄的去路由器C的代價(jià)是6,那么,路由器B就會(huì)發(fā)現(xiàn)它經(jīng)過(guò)路由器A去路由器C的代價(jià)只有3(因?yàn)槁酚善鰾到路由器A為1,路由器A到路由器C為2),所以路由器B就會(huì)刷新自己去路由器C的路由,改為通過(guò)路由器A到路由器C,代價(jià)為3。3.5IP數(shù)據(jù)報(bào)路由選擇與路由協(xié)議3.5.3路由選擇協(xié)議距離-向量算法的具體內(nèi)容描述如下:(1) 在初始啟動(dòng)路由器時(shí),各路由器的路由表中只包含了與本路由器直接相連網(wǎng)絡(luò)的路由,因?yàn)楦髀酚善鬟€不知道去其它網(wǎng)絡(luò)的信息,并把距離設(shè)為0(與本路由器直接相連)。(2) 各路由器周期性地向相鄰的路由器廣播自己的路由表信息,收到廣播路由信息的其它路由器,根據(jù)這些信息對(duì)自己的路由表進(jìn)行刷新。如果路由器A收到了發(fā)自路由器B的路由信息(以下用A和B表示),則路由器A路由表的刷新可以分為以下幾種情況: 添加表項(xiàng):A收到的路由信息中包含A原來(lái)路由表中沒(méi)有的表項(xiàng)(不可達(dá)),則A增加該表項(xiàng)。表項(xiàng)中的目標(biāo)網(wǎng)絡(luò)與B的目標(biāo)網(wǎng)絡(luò)一樣,下一個(gè)路由器為B,距離為B到該目標(biāo)網(wǎng)絡(luò)的距離加1。 修改表項(xiàng):A收到的路由信息中的某表項(xiàng)在原來(lái)A的路由表中已經(jīng)存在,也就是說(shuō)A可達(dá)該表項(xiàng)中指出的目標(biāo)網(wǎng)絡(luò)??煞譃閮煞N情況,一種情況是A原來(lái)沒(méi)有經(jīng)過(guò)B到該目標(biāo)網(wǎng)絡(luò),如果經(jīng)過(guò)B到該目標(biāo)網(wǎng)絡(luò)則距離更短,路由表的修改方法是,表項(xiàng)中的目標(biāo)網(wǎng)絡(luò)不變,下一個(gè)路由器為B,距離為B到該目標(biāo)網(wǎng)絡(luò)的距離加1。另一種情況是A原來(lái)路由表中到達(dá)該目標(biāo)網(wǎng)絡(luò)經(jīng)過(guò)B,但新收到B發(fā)來(lái)的路由信息中距離更短,A的路由表只修改該表項(xiàng)的距離,變?yōu)锽的距離加1。3.5IP數(shù)據(jù)報(bào)路由選擇與路由協(xié)議3.5.3路由選擇協(xié)議 刪除表項(xiàng):原來(lái)A的路由表包含經(jīng)過(guò)B去某目標(biāo)網(wǎng)絡(luò)的表項(xiàng),但新收到的B發(fā)送的路由信息中沒(méi)有該表項(xiàng),說(shuō)明經(jīng)過(guò)B已經(jīng)不能到達(dá)該目標(biāo)網(wǎng)絡(luò),則該表項(xiàng)必須從A的路由表中刪除。距離-向量路由選擇算法在網(wǎng)絡(luò)中的具體使用是通過(guò)RIP協(xié)議來(lái)實(shí)現(xiàn),該協(xié)議規(guī)定了路由器之間廣播發(fā)送路由信息(報(bào)文)的時(shí)間間隔(一般為30秒)、信息格式、錯(cuò)誤處理等內(nèi)容。另外,該協(xié)議對(duì)于相同開(kāi)銷(xiāo)的路由采用了先入為主為原則,還給路由表中的每條路由增加了一個(gè)定時(shí)器,如果在180秒內(nèi)沒(méi)有收到關(guān)于該路由的信息,則認(rèn)為該路由已過(guò)時(shí),從路由表中刪除。距離-向量路由的優(yōu)點(diǎn)是算法簡(jiǎn)單、易于實(shí)現(xiàn),缺點(diǎn)是當(dāng)網(wǎng)絡(luò)失敗或發(fā)生其他變化時(shí),路由器需要較長(zhǎng)的時(shí)間才能收斂到對(duì)網(wǎng)絡(luò)拓?fù)涞恼_認(rèn)識(shí)。在收斂過(guò)程中,網(wǎng)絡(luò)可能是脆弱的,產(chǎn)生不一致的路由,甚至路由環(huán)。有許多措施(如限制路由的最大距離、水平分割、保持對(duì)策、毒性逆轉(zhuǎn)等,讀者可參看專門(mén)介紹網(wǎng)絡(luò)知識(shí)的書(shū)籍)來(lái)防止這些情況發(fā)生,但在收斂過(guò)程中,網(wǎng)絡(luò)的性能仍處于危險(xiǎn)之中。RIP協(xié)議要求路由器每隔30秒鐘無(wú)向地廣播其路由表,在具有許多節(jié)點(diǎn)的大型網(wǎng)絡(luò)中,這會(huì)消耗掉相當(dāng)數(shù)量的帶寬,它采用先入為主的原則,缺乏負(fù)載均衡的能力。最大距離規(guī)定為15,等于或超過(guò)16的距離視為不可達(dá)路由,限制了網(wǎng)絡(luò)規(guī)模。路由度量值以跳數(shù)代替,并且默認(rèn)跳數(shù)使用1(相鄰路由之間),沒(méi)有考慮其它因素。3.5IP數(shù)據(jù)報(bào)路由選擇與路由協(xié)議2. 鏈路-狀態(tài)路由算法和開(kāi)放式最短路徑優(yōu)先OSPF協(xié)議鏈路-狀態(tài)路由算法也叫最短路徑優(yōu)先算法,它的基本思想是每個(gè)路由器主動(dòng)地測(cè)試與其相連鏈路的狀態(tài),并將這些信息發(fā)送給其它相鄰的路由器,這樣利用擴(kuò)散,每個(gè)路由器可以告訴它所在區(qū)域的其它路由器,與它相鄰的路由器及其開(kāi)銷(xiāo),每個(gè)路由器接收這些鏈路狀態(tài)信息并保存在一個(gè)數(shù)據(jù)庫(kù)中。根據(jù)這些數(shù)據(jù),每個(gè)路由器都可以構(gòu)造出一個(gè)關(guān)于網(wǎng)絡(luò)結(jié)構(gòu)的拓?fù)鋱D,根據(jù)該圖和每條鏈路的代價(jià),利用最短路徑算法,每個(gè)路由器都可以求得以自己為根的一棵最短路徑生成樹(shù),再利用該樹(shù)生成路由表。開(kāi)放式最短路徑優(yōu)先OSPF協(xié)議是基于鏈路-狀態(tài)路由算法的,它的收斂速度比距離向量協(xié)議更快,也就是說(shuō)在路由發(fā)生變化后(如在路由器關(guān)閉或鏈路出故障),它可以較快的穩(wěn)定下來(lái)。它還可以根據(jù)吞吐率、往返時(shí)間、可靠性或其他性能來(lái)生成路由。另外,當(dāng)同一個(gè)目的地址存在著多個(gè)相同費(fèi)用的路由時(shí),OSPF在這些路由上可以平均分配流量(流量平衡)。綜上所述,OSPF是一個(gè)真正意義上的動(dòng)態(tài)路由協(xié)議,現(xiàn)在,由于大部分廠商提供的路由器支持OSPF協(xié)議,因此使用OSPF的網(wǎng)絡(luò)越來(lái)越多。3.6地址轉(zhuǎn)換協(xié)議3.6.1ARP協(xié)議1. ARP報(bào)文格式在常用的以太中,ARP報(bào)文被封裝成如圖3-26所示的以太網(wǎng)數(shù)據(jù)幀,然后以廣播方式發(fā)送到物理網(wǎng)絡(luò)。以太網(wǎng)目標(biāo)地址(6字節(jié))以太網(wǎng)源地址(6字節(jié))幀類(lèi)型(2字節(jié))ARP報(bào)文(28字節(jié))3.6地址轉(zhuǎn)換協(xié)議3.6.1ARP協(xié)議1. ARP報(bào)文格式ARP報(bào)文格式如圖3-27所示,硬件類(lèi)型(16位)協(xié)議類(lèi)型(16位)硬件地址長(zhǎng)度(8位)協(xié)議地址長(zhǎng)度(8位)操作代碼(16位)發(fā)送方硬件地址(以太網(wǎng)為6字節(jié))發(fā)送方協(xié)議地址(IP地址為4字節(jié))
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 家庭牧場(chǎng)用地合同協(xié)議
- 家小件采購(gòu)合同協(xié)議
- 2024年衛(wèi)生管理考試入門(mén)試題及答案
- 創(chuàng)新與發(fā)明的判定試題及答案
- 鄉(xiāng)村全科執(zhí)業(yè)助理醫(yī)師考試實(shí)務(wù)測(cè)試試題及答案
- 三級(jí)翻譯試題及答案
- 醫(yī)學(xué)基礎(chǔ)知識(shí)的考查方法試題及答案
- 衛(wèi)生管理考試回顧試題及答案
- 應(yīng)聘聽(tīng)力測(cè)試題及答案
- 深化對(duì)文化產(chǎn)業(yè)管理證書(shū)考試試題及答案的理解
- 職業(yè)生涯規(guī)劃課件
- 研學(xué)旅行活動(dòng)安全責(zé)任書(shū)
- 二次函數(shù)壓軸題(二)【圖像與取值范圍】
- 未帶有效居民身份證考生承諾書(shū)
- 弱電機(jī)房驗(yàn)收標(biāo)準(zhǔn)
- 樹(shù)木栽植檢查記錄表
- 安全專項(xiàng)整治三年行動(dòng)臺(tái)賬套表
- 《數(shù)據(jù)的收集與整理》說(shuō)課稿課件
- 人工智能產(chǎn)業(yè)學(xué)院建設(shè)方案
- 初中數(shù)學(xué)知識(shí)框架
- 楊福家《原子物理學(xué)》答案(共66頁(yè))
評(píng)論
0/150
提交評(píng)論