版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第四章
網(wǎng)絡(luò)層
4.1網(wǎng)絡(luò)層提供的兩種服務(wù)4.2網(wǎng)絡(luò)層的功能4.3網(wǎng)絡(luò)層協(xié)議4.4IP分組的轉(zhuǎn)發(fā)4.5
網(wǎng)際控制報(bào)文協(xié)議(ICMP)4.6
互聯(lián)網(wǎng)的路由選擇協(xié)議4.7
IPv6*4.8網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)4.9虛擬專用網(wǎng)(VPN)4.10
IP多播*4.11SDN*4.12實(shí)驗(yàn)
在計(jì)算機(jī)網(wǎng)絡(luò)領(lǐng)域,網(wǎng)絡(luò)層應(yīng)該向運(yùn)輸層提供怎么樣的服務(wù)(“面向連接”還是“無(wú)連接”)曾引起了長(zhǎng)期的爭(zhēng)論。爭(zhēng)論焦點(diǎn)的實(shí)質(zhì)就是:在計(jì)算機(jī)通信中,可靠交付應(yīng)當(dāng)由誰(shuí)來(lái)負(fù)責(zé)?是網(wǎng)絡(luò)還是端系統(tǒng)?
從OSI/RM的通信角度來(lái)看,網(wǎng)絡(luò)層所提供的服務(wù)主要有兩大類,即面向連接服務(wù)和面向無(wú)連接服務(wù)。這兩種網(wǎng)絡(luò)服務(wù)的具體實(shí)現(xiàn)就是所謂的虛電路服務(wù)和數(shù)據(jù)報(bào)服務(wù)。4.1網(wǎng)絡(luò)層提供的兩種服務(wù)4.1.1虛電路服務(wù)
虛電路服務(wù)是網(wǎng)絡(luò)層向運(yùn)輸層提供的一種使所有分組按順序到達(dá)目的端系統(tǒng)的可靠的數(shù)據(jù)傳送方式。進(jìn)行數(shù)據(jù)交換的兩個(gè)端系統(tǒng)之間存在著一條為它們服務(wù)的虛電路。
我們先通過(guò)電信網(wǎng)來(lái)了解虛擬電路,電信網(wǎng)進(jìn)行的是面向連接的通信方式,使用昂貴的程控交換機(jī)(為了保證傳輸?shù)目煽啃裕?,從而向用戶提供可靠傳輸?shù)姆?wù)。電信網(wǎng)把用戶電話機(jī)產(chǎn)生的語(yǔ)音信號(hào)可靠地傳輸?shù)綄?duì)方的電話機(jī)。一條虛擬電路的組成有這些部分構(gòu)成:(1)源主機(jī)和目的主機(jī)之間的路徑(一些列鏈路和路由器)(2)路徑中每一段鏈路都有一個(gè)VC號(hào)(3)路徑中的每個(gè)路由器都有一個(gè)轉(zhuǎn)發(fā)表
每一次IP數(shù)據(jù)報(bào)跨越一臺(tái)路由器創(chuàng)建一個(gè)新的連接,就在這個(gè)路由器的轉(zhuǎn)發(fā)表中增加一個(gè)新的連接項(xiàng)。同樣,每次施放一個(gè)鏈接,就從表中刪除這一項(xiàng)。使用虛擬電路服務(wù)就一般是通過(guò)以下三個(gè)步驟:(1)虛擬電路的建立(2)數(shù)據(jù)傳送(3)虛擬電路的拆除
H1發(fā)送給H2的所有分組都沿著同一條虛電路傳送,如果這條線路斷開(kāi)了,那么H1和H2就是不通的了。如圖4-1所示。H1H2圖4-1虛電路傳送4.1.2數(shù)據(jù)報(bào)服務(wù)
數(shù)據(jù)報(bào)服務(wù)是由數(shù)據(jù)報(bào)交換網(wǎng)來(lái)提供。端系統(tǒng)的網(wǎng)絡(luò)層同網(wǎng)絡(luò)節(jié)點(diǎn)中的網(wǎng)絡(luò)層之間,一致地按照數(shù)據(jù)報(bào)操作方式交換數(shù)據(jù)。當(dāng)端系統(tǒng)要發(fā)送數(shù)據(jù)時(shí),網(wǎng)絡(luò)層給該數(shù)據(jù)附加上地址、序號(hào)等信息,然后作為數(shù)據(jù)報(bào)發(fā)送給網(wǎng)絡(luò)節(jié)點(diǎn);目的端系統(tǒng)收到數(shù)據(jù)報(bào)可能是不按照順序到達(dá),也有可能出現(xiàn)數(shù)據(jù)報(bào)丟失。數(shù)據(jù)報(bào)服務(wù)與OSI的無(wú)連接網(wǎng)絡(luò)服務(wù)類似。數(shù)據(jù)報(bào)服務(wù)是由數(shù)據(jù)報(bào)交換網(wǎng)來(lái)提供。端系統(tǒng)的網(wǎng)絡(luò)層同網(wǎng)絡(luò)節(jié)點(diǎn)中的網(wǎng)絡(luò)層之間,一致地按照數(shù)據(jù)報(bào)操作方式交換數(shù)據(jù)。當(dāng)端系統(tǒng)要發(fā)送數(shù)據(jù)時(shí),網(wǎng)絡(luò)層給該數(shù)據(jù)附加上地址、序號(hào)等信息,然后作為數(shù)據(jù)報(bào)發(fā)送給網(wǎng)絡(luò)節(jié)點(diǎn);目的端系統(tǒng)收到數(shù)據(jù)報(bào)可能是不按照順序到達(dá),也有可能出現(xiàn)數(shù)據(jù)報(bào)丟失。數(shù)據(jù)報(bào)服務(wù)與OSI的無(wú)連接網(wǎng)絡(luò)服務(wù)類似。由于傳輸網(wǎng)絡(luò)不提供端到端的可靠傳輸服務(wù),這就使網(wǎng)絡(luò)中的路由器可以做得比較簡(jiǎn)單,且價(jià)格低廉(與電信網(wǎng)的交換機(jī)相比較)。如果主機(jī)(即端系統(tǒng))中的進(jìn)程之間的通信需要是可靠的,那么就由網(wǎng)絡(luò)的主機(jī)中的運(yùn)輸層負(fù)責(zé)(包括差錯(cuò)處理、流量控制等)。采用這種設(shè)計(jì)思路的好處是:網(wǎng)絡(luò)的造價(jià)大大降低,運(yùn)行方式靈活,能夠適應(yīng)多種應(yīng)用。互聯(lián)網(wǎng)能夠發(fā)展到今日的規(guī)模,充分證明了當(dāng)初采用這種設(shè)計(jì)思路的正確性。H1發(fā)送給H2的分組可能沿著不同的路徑傳送,就算里面有一條路線是斷開(kāi)了,那么數(shù)據(jù)報(bào)就會(huì)走其他的路線進(jìn)行傳送,兩臺(tái)主機(jī)不會(huì)無(wú)法連接。如圖4-2所示。H1H2丟失IP數(shù)據(jù)報(bào)圖4-2數(shù)據(jù)報(bào)傳送虛電路服務(wù)與數(shù)據(jù)報(bào)服務(wù)的不同點(diǎn):對(duì)比的方面虛電路服務(wù)數(shù)據(jù)報(bào)服務(wù)思路可靠通信應(yīng)當(dāng)由網(wǎng)絡(luò)來(lái)保證可靠通信應(yīng)當(dāng)由用戶主機(jī)來(lái)保證連接的建立必須有不需要終點(diǎn)地址僅在連接建立階段使用,每個(gè)分組使用短的虛電路號(hào)每個(gè)分組都有終點(diǎn)的完整地址分組的轉(zhuǎn)發(fā)屬于同一條虛電路的分組均按照同一路進(jìn)行轉(zhuǎn)發(fā)每個(gè)分組獨(dú)立選擇路由進(jìn)行轉(zhuǎn)發(fā)當(dāng)節(jié)點(diǎn)出故障時(shí)所有通過(guò)故障的節(jié)點(diǎn)的虛電路均不能工作出故障的節(jié)點(diǎn)可能會(huì)丟失分組,一些路由可能會(huì)發(fā)生變化分組時(shí)的順序總是按發(fā)送順序達(dá)到終點(diǎn)到達(dá)終點(diǎn)的時(shí)間,不一定按發(fā)送順序端到端的差錯(cuò)處理和流量控制可以由網(wǎng)絡(luò)負(fù)責(zé),也可以由用戶主機(jī)負(fù)責(zé)有用戶主機(jī)負(fù)責(zé)4.2.1異構(gòu)網(wǎng)絡(luò)互聯(lián)
所謂異構(gòu)是指兩個(gè)或以上的無(wú)線通信系統(tǒng)采用了不同的接入技術(shù),或者是采用相同的無(wú)線接入技術(shù)但屬于不同的無(wú)線運(yùn)營(yíng)商。利用現(xiàn)有的多種無(wú)線通信系統(tǒng),通過(guò)系統(tǒng)間融合的方式,使多系統(tǒng)之間取長(zhǎng)補(bǔ)短是滿足未來(lái)移動(dòng)通信業(yè)務(wù)需求一種有效手段,能夠綜合發(fā)揮各自的優(yōu)勢(shì)。由于現(xiàn)有的各種無(wú)線接入系統(tǒng)在很多區(qū)域內(nèi)都是重疊覆蓋的,所以可以將這些相互重疊的不同類型的無(wú)線接入系統(tǒng)智能地結(jié)合在一起,利用多模終端智能化的接入手段,使多種不同類型的網(wǎng)絡(luò)共同為用戶提供隨時(shí)隨地的無(wú)線接入,從而構(gòu)成了如圖4-3所示的異構(gòu)無(wú)線網(wǎng)絡(luò)。4.2網(wǎng)絡(luò)層的功能圖4-3異構(gòu)無(wú)線網(wǎng)絡(luò)
我們?cè)谶B接不同網(wǎng)絡(luò)的時(shí)候需要一些中間設(shè)備。中間設(shè)備又稱中間系統(tǒng)或中繼系統(tǒng),根據(jù)其所在的層次,可以有一下四種:物理層使用的中間設(shè)備叫做轉(zhuǎn)發(fā)器(集線器)。數(shù)據(jù)鏈路層使用的中間設(shè)備叫做網(wǎng)橋(包括交換機(jī))或橋接器。網(wǎng)絡(luò)層使用的中間設(shè)備叫做路由器。在網(wǎng)絡(luò)層以上使用的中間設(shè)備叫做網(wǎng)關(guān)。用網(wǎng)關(guān)來(lái)連接兩個(gè)不兼容的系統(tǒng)需要在高層進(jìn)行協(xié)議的轉(zhuǎn)換。
使用轉(zhuǎn)發(fā)器或網(wǎng)橋不稱為網(wǎng)絡(luò)互連,通過(guò)轉(zhuǎn)發(fā)器和網(wǎng)橋進(jìn)行連接的網(wǎng)絡(luò),僅僅是把一個(gè)局域網(wǎng)擴(kuò)大了,從網(wǎng)絡(luò)層的角度看,仍然還是一個(gè)網(wǎng)絡(luò)。一般把用路由器進(jìn)行互連的網(wǎng)絡(luò)稱為網(wǎng)絡(luò)互連。如圖所示。圖4-4互聯(lián)網(wǎng)絡(luò)
TCP/IP體系在網(wǎng)絡(luò)互連上采用的做法是在網(wǎng)絡(luò)層(即IP層)采用了標(biāo)準(zhǔn)化協(xié)議,但相互連接的網(wǎng)絡(luò)可以是異構(gòu)的。這樣,參加互連的計(jì)算機(jī)網(wǎng)絡(luò)都使用相同的網(wǎng)際協(xié)議IP,因此可以把互連以后的計(jì)算機(jī)網(wǎng)絡(luò)看成如下圖所示的一個(gè)虛擬互連網(wǎng)絡(luò)。如圖4-5所示。
當(dāng)互聯(lián)網(wǎng)上的主機(jī)進(jìn)行通信時(shí),就好像在一個(gè)網(wǎng)絡(luò)上通信一樣,看不見(jiàn)互連的各具體的網(wǎng)絡(luò)異構(gòu)細(xì)節(jié)。如果在這種覆蓋全球的IP網(wǎng)的上層使用TCP協(xié)議,那么就是現(xiàn)在的互聯(lián)網(wǎng)(Internet)?;ヂ?lián)網(wǎng)可以由多種異構(gòu)網(wǎng)絡(luò)互連組成。圖4-5虛擬互聯(lián)網(wǎng)絡(luò)4.2.2路由與轉(zhuǎn)發(fā)
路由器主要完成兩個(gè)功能是路由選擇和分組轉(zhuǎn)發(fā)。路由選擇:確定數(shù)據(jù)報(bào)走那一條路徑,即路由器根據(jù)不同的算法生成動(dòng)態(tài)的路由表。分組轉(zhuǎn)發(fā):路由器根據(jù)轉(zhuǎn)發(fā)表將用戶的IP數(shù)據(jù)從合適的端口報(bào)轉(zhuǎn)發(fā)出去。
路由表是根據(jù)路由選擇算法得出的,需要對(duì)網(wǎng)絡(luò)拓?fù)渥兓挠?jì)算最優(yōu)化。而轉(zhuǎn)發(fā)表是從路由表得出的,轉(zhuǎn)發(fā)表的結(jié)構(gòu)應(yīng)當(dāng)使查找過(guò)程最優(yōu)化。在討論路由選擇的原理時(shí),往往不去區(qū)分轉(zhuǎn)發(fā)表和路由表,而是籠統(tǒng)地使用路由表一詞。
轉(zhuǎn)發(fā)是一個(gè)節(jié)點(diǎn)在本地執(zhí)行的一個(gè)相對(duì)簡(jiǎn)單的過(guò)程,即報(bào)文從某臺(tái)設(shè)備的一個(gè)端口進(jìn)入而從另一個(gè)端口出去。路由選擇依賴于網(wǎng)絡(luò)發(fā)展過(guò)程中的不斷演進(jìn)的、復(fù)雜的分布式算法。最簡(jiǎn)單的路由選擇可以決定報(bào)文發(fā)送的下一跳主機(jī)的地址,復(fù)雜的路由協(xié)議可以選擇一條從主機(jī)1和主機(jī)2之間經(jīng)過(guò)若干主機(jī)的路徑。如圖4-6所示。圖4-6路由轉(zhuǎn)發(fā)轉(zhuǎn)發(fā)表和路由表的區(qū)別:(1)轉(zhuǎn)發(fā)表中的一行包括從網(wǎng)絡(luò)號(hào)到發(fā)出接口的映射和一些MAC信息,而路由表作為建立轉(zhuǎn)發(fā)表的前奏,是由路由選擇算法建立的一個(gè)表,它通常包含從網(wǎng)絡(luò)號(hào)到下一跳的映射。對(duì)于單個(gè)主機(jī)來(lái)說(shuō),轉(zhuǎn)發(fā)表比路由表更詳細(xì);(2)二者建立的目的也不同:構(gòu)造轉(zhuǎn)發(fā)表-目的是為了優(yōu)化轉(zhuǎn)發(fā)分組時(shí)查找網(wǎng)絡(luò)號(hào)的過(guò)程;優(yōu)化路由表是為了計(jì)算拓?fù)浣Y(jié)構(gòu)的改變;(3)實(shí)現(xiàn)方式不同:轉(zhuǎn)發(fā)表可以由特殊的硬件來(lái)實(shí)現(xiàn),而路由表很少這樣。簡(jiǎn)單說(shuō)路由是根據(jù)路由表查找到達(dá)目標(biāo)網(wǎng)絡(luò)的最佳路由表項(xiàng),轉(zhuǎn)發(fā)是根據(jù)最佳路由中的出口及下一跳IP轉(zhuǎn)發(fā)數(shù)據(jù)包的過(guò)程。因此,路由選擇是轉(zhuǎn)發(fā)的基礎(chǔ),數(shù)據(jù)轉(zhuǎn)發(fā)是路由的結(jié)果。4.3.1網(wǎng)絡(luò)層協(xié)議簡(jiǎn)介
網(wǎng)絡(luò)層協(xié)議,OSI參考模型的第三層。它控制通信子網(wǎng)進(jìn)行工作,提供建立、保持和釋放連接的手段,保證傳輸層實(shí)體之間進(jìn)行透明的數(shù)據(jù)傳輸。
TCP/IP協(xié)議棧的網(wǎng)絡(luò)層位于網(wǎng)絡(luò)接口層和傳輸層之間,主要協(xié)議包括IP、ARP、ICMP、IGMP等。其中IP協(xié)議是TCP/IP網(wǎng)絡(luò)層的核心協(xié)議,它規(guī)定了數(shù)據(jù)的封裝方式和網(wǎng)絡(luò)節(jié)點(diǎn)的標(biāo)識(shí)方法,于網(wǎng)絡(luò)上數(shù)據(jù)的端到端的傳遞。4.3網(wǎng)絡(luò)層協(xié)議TCP/IP的網(wǎng)絡(luò)層主要定義了以下協(xié)議:(1)IP:負(fù)責(zé)網(wǎng)絡(luò)層尋址、路由選擇、分段及包重組;(2)ARP:負(fù)責(zé)把IP地址解析成物理地址。在實(shí)際進(jìn)行通信時(shí),物理網(wǎng)絡(luò)所使用的是物理地址,IP地址是不能被物理網(wǎng)絡(luò)識(shí)別的。對(duì)于以太網(wǎng)而言,當(dāng)IP數(shù)據(jù)包通過(guò)以太網(wǎng)發(fā)送時(shí),以太網(wǎng)設(shè)備是以MAC地址傳輸數(shù)據(jù)的,ARP協(xié)議就是用來(lái)將IP地址解析成MAC地址的;(3)ICMP:定義了網(wǎng)絡(luò)層控制和傳遞消息的功能,可以報(bào)告IP數(shù)據(jù)包傳送過(guò)程中發(fā)生的錯(cuò)誤、失敗等信息,提供網(wǎng)絡(luò)診斷功能。ping和tracert兩個(gè)使用極其斯泛的測(cè)試工具就是ICMP消息的應(yīng)用;(4)IGMP:負(fù)責(zé)管理IP組播組。于支持在主機(jī)和路由器之間進(jìn)行組播傳輸數(shù)據(jù),它讓一個(gè)物理網(wǎng)絡(luò)上的所有路由器知道當(dāng)前網(wǎng)絡(luò)中有哪些主機(jī)需要組播。組播路由器需要這些信息以便知道組播數(shù)據(jù)包應(yīng)該像哪些接口轉(zhuǎn)發(fā)。4.3.2IP地址的含義及表示方法
人們?yōu)榱送ㄐ诺睦憬o每一臺(tái)計(jì)算機(jī)都事先分配一個(gè)類似我們的電話號(hào)碼一樣的標(biāo)識(shí)地址,該標(biāo)識(shí)地址就是IP地址。根據(jù)TCP/IP協(xié)議劃定,IP地址是由32位二進(jìn)制數(shù)組成。
互聯(lián)網(wǎng)上的每臺(tái)主機(jī)(或路由器)的每個(gè)接口分配一個(gè)在全世界唯一的IP地址。由互聯(lián)網(wǎng)名字和數(shù)字分配機(jī)構(gòu)ICANN(InternetCorporationforAssignedNamesandNumbers)進(jìn)行分配。
如:某IP地址為10000000000010110000001100011111為了方便記憶,人們把32位的IP地址分成四段,每段8位,中間用小數(shù)點(diǎn)“.”隔開(kāi),然后再將每8位二進(jìn)制換成十進(jìn)制,即128.11.3.31。如圖4-7和4-8所示。圖4-7點(diǎn)分十進(jìn)制圖4-8點(diǎn)分十進(jìn)制記法舉例
網(wǎng)絡(luò)標(biāo)識(shí):同一物理網(wǎng)絡(luò)上的所有主機(jī)都用同一個(gè)網(wǎng)絡(luò)標(biāo)識(shí),網(wǎng)絡(luò)上每一個(gè)主機(jī)都有一個(gè)主機(jī)標(biāo)識(shí)與其對(duì)應(yīng)。
主機(jī)標(biāo)識(shí):網(wǎng)絡(luò)中特定的計(jì)算機(jī)號(hào)碼。例:一個(gè)主機(jī)服務(wù)器的IP地址為192.168.10.2,其中網(wǎng)絡(luò)標(biāo)識(shí)為192.168.10.0主機(jī)標(biāo)識(shí)為2。
同一個(gè)局域網(wǎng)上的主機(jī)或路由器的IP地址中的網(wǎng)絡(luò)號(hào)必須一樣。路由器的每一個(gè)接口都有一個(gè)不同網(wǎng)絡(luò)號(hào)的IP地址。兩個(gè)路由器直接相連的接口處,可指明也可不指明IP地址。如指明IP地址,則這一段連線就構(gòu)成了一種只包含一段線路的特殊“網(wǎng)絡(luò)”。這種網(wǎng)絡(luò)僅需兩個(gè)IP地址,可以使用/31地址塊,主機(jī)號(hào)可以是0或1,如圖4-9所示。圖4-9網(wǎng)絡(luò)拓?fù)鋱D4.3.3地址解析協(xié)議(ARP)
網(wǎng)絡(luò)層以上的協(xié)議用IP地址來(lái)標(biāo)識(shí)網(wǎng)絡(luò)接口,但以太數(shù)據(jù)幀傳輸時(shí),以物理地址來(lái)標(biāo)識(shí)網(wǎng)絡(luò)接口。因此我們需要進(jìn)行IP地址與物理地址之間的轉(zhuǎn)化。對(duì)于IPv4來(lái)說(shuō),我們使用ARP地址解析協(xié)議來(lái)完成IP地址與物理地址的轉(zhuǎn)化(IPv6使用鄰居發(fā)現(xiàn)協(xié)議進(jìn)行IP地址與物理地址的轉(zhuǎn)化,它包含在ICMPv6中)。ARP協(xié)議提供了網(wǎng)絡(luò)層地址(IP地址)到物理地址(MAC地址)之間的動(dòng)態(tài)映射。ARP協(xié)議是地址解析的通用協(xié)議。如果4-10所示。圖4-10
IP地址與物理地址的轉(zhuǎn)化
Mac地址由設(shè)備制造商定義、分配,每一個(gè)硬件設(shè)備都有一個(gè)鏈路層主地址(MAC地址),保存在設(shè)備的永久內(nèi)存中。設(shè)備的mac地址不會(huì)改變(現(xiàn)在可以進(jìn)行mac地址偽裝)。
IP地址由用戶配置給網(wǎng)絡(luò)接口,網(wǎng)絡(luò)接口的IP地址是可以發(fā)生變化的(通過(guò)DHCP獲取IP,變化速度比較快)。在一個(gè)以太網(wǎng)中獲取目的端的MAC地址步驟如圖4-11所示。圖4-11獲取目的端的MAC地址(1)發(fā)送ARP請(qǐng)求的以太網(wǎng)數(shù)據(jù)幀給以太網(wǎng)上的每個(gè)主機(jī),即廣播(以太網(wǎng)源地址填全1)。ARP請(qǐng)求幀中包含了目的主機(jī)的IP地址。(2)目的主機(jī)收到了該ARP請(qǐng)求之后,會(huì)發(fā)送一個(gè)ARP應(yīng)答,里面包含了目的主機(jī)的MAC地址。ARP協(xié)議工作原理如圖12所示:圖4-12主機(jī)A向本局域網(wǎng)上的某個(gè)主機(jī)B發(fā)送IP數(shù)據(jù)報(bào)(1)每個(gè)主機(jī)都會(huì)在自己的ARP緩沖區(qū)中建立一個(gè)ARP列表,以表示IP地址和MAC地址之間的對(duì)應(yīng)關(guān)系。(2)主機(jī)(網(wǎng)絡(luò)接口)新加入網(wǎng)絡(luò)時(shí)(也可能只是mac地址發(fā)生變化,接口重啟等),會(huì)發(fā)送免費(fèi)ARP報(bào)文把自己IP地址與Mac地址的映射關(guān)系廣播給其他主機(jī)。(3)網(wǎng)絡(luò)上的主機(jī)接收到免費(fèi)ARP報(bào)文時(shí),會(huì)更新自己的ARP緩沖區(qū)。將新的映射關(guān)系更新到自己的ARP表中。(4)某個(gè)主機(jī)需要發(fā)送報(bào)文時(shí),首先檢查ARP列表中是否有對(duì)應(yīng)IP地址的目的主機(jī)的MAC地址,如果有,則直接發(fā)送數(shù)據(jù),如果沒(méi)有,就向本網(wǎng)段的所有主機(jī)發(fā)送ARP數(shù)據(jù)包,該數(shù)據(jù)包包括的內(nèi)容有:源主機(jī)IP地址,源主機(jī)MAC地址,目的主機(jī)的IP地址等。(5)當(dāng)本網(wǎng)絡(luò)的所有主機(jī)收到該ARP數(shù)據(jù)包時(shí):①首先檢查數(shù)據(jù)包中的IP地址是否是自己的IP地址,如果不是,則忽略該數(shù)據(jù)包。②如果是,則首先從數(shù)據(jù)包中取出源主機(jī)的IP和MAC地址寫入到ARP列表中,如果已經(jīng)存在,則覆蓋。③然后將自己的MAC地址寫入ARP響應(yīng)包中,告訴源主機(jī)自己是它想要找的MAC地址。(6)源主機(jī)收到ARP響應(yīng)包后。將目的主機(jī)的I和MAC地址寫入ARP列表,并利用此信息發(fā)送數(shù)據(jù)。如果源主機(jī)一直沒(méi)有收到ARP響應(yīng)數(shù)據(jù)包,表示ARP查詢失敗。
ARP高速緩存(即ARP表)是ARP地址解析協(xié)議能夠高效運(yùn)行的關(guān)鍵,(如果有多次ARP響應(yīng)時(shí),以最后一次響應(yīng)為準(zhǔn))
ARP給IP地址和MAC地址中間做了動(dòng)態(tài)映射,也就是說(shuō)緩存了一個(gè)ARP表,將得到的IP地址和MAC地址對(duì)應(yīng)起來(lái),如果在表中沒(méi)有查到IP地址對(duì)應(yīng)的MAC地址,就會(huì)發(fā)廣播去找。隨著用戶的使用,ARP表如果不做任何措施,就會(huì)變得越來(lái)越臃腫緩慢,就降低了網(wǎng)絡(luò)傳輸數(shù)據(jù)的效率,所以ARP緩存中每一項(xiàng)被設(shè)置了生存時(shí)間,一般是20分鐘,從被創(chuàng)建時(shí)開(kāi)始計(jì)算,到時(shí)則清除,如果在計(jì)時(shí)期間又被使用了,計(jì)時(shí)會(huì)重置。超過(guò)生存時(shí)間的項(xiàng)目都從高速緩存中刪除,以適應(yīng)網(wǎng)絡(luò)適配器變化。如表4-2所示.<IP地址;MAC地址;生存時(shí)間(age);類型等>IP地址MAC地址生存時(shí)間類型10.4.9.20030.7131.abfc00:08:55Dynamic10.4.9.10000.0c07.ac2400:02:55Dynamic10.4.9.990007.ebea.44d000:06:12Dynamic表4-2映射表
ARP高速緩存的作用:(1)存放最近獲得的IP地址到MAC地址的綁定。(2)減少ARP廣播的通信量。(3)為進(jìn)一步減少ARP通信量,主機(jī)A在發(fā)送其ARP請(qǐng)求分組時(shí),就將自己的IP地址到MAC地址的映射寫入ARP請(qǐng)求分組。(4)當(dāng)主機(jī)B收到A的ARP請(qǐng)求分組時(shí),就將主機(jī)A的IP地址及其對(duì)應(yīng)的MAC地址映射寫入主機(jī)B自己的ARP高速緩存中。不必在發(fā)送ARP請(qǐng)求。
ARP用于解決同一個(gè)局域網(wǎng)上的主機(jī)或路由器的IP地址和MAC地址的映射問(wèn)題。
通信的路徑:A→經(jīng)過(guò)R1轉(zhuǎn)發(fā)→B。因此主機(jī)A必須知道路由器R1的IP地址,解析出其MAC地址。然后把IP數(shù)據(jù)報(bào)傳送到路由器R1。如圖4-13所示。圖4-13通信途徑使用ARP的四種典型情況:(1)發(fā)送方是主機(jī),要把IP數(shù)據(jù)報(bào)發(fā)送到本網(wǎng)絡(luò)上的另一個(gè)主機(jī)。這時(shí)用ARP找到目的主機(jī)的硬件地址。(2)發(fā)送方是主機(jī),要把IP數(shù)據(jù)報(bào)發(fā)送到另一個(gè)網(wǎng)絡(luò)上的一個(gè)主機(jī)。這時(shí)用ARP找到本網(wǎng)絡(luò)上的一個(gè)路由器的硬件地址。剩下的工作由這個(gè)路由器來(lái)完成。(3)發(fā)送方是路由器,要把IP數(shù)據(jù)報(bào)轉(zhuǎn)發(fā)到本網(wǎng)絡(luò)上的一個(gè)主機(jī)。這時(shí)用ARP找到目的主機(jī)的硬件地址。(4)發(fā)送方是路由器,要把IP數(shù)據(jù)報(bào)轉(zhuǎn)發(fā)到另一個(gè)網(wǎng)絡(luò)上的一個(gè)主機(jī)。這時(shí)用ARP找到本網(wǎng)絡(luò)上另一個(gè)路由器的硬件地址。剩下的工作由這個(gè)路由器來(lái)完成。4.3.4分類IP地址
IP地址根據(jù)網(wǎng)絡(luò)ID的不同分為5種類型,A類地址、B類地址、C類地址、D類地址和E類地址,如圖4-14所示。圖4-14
IP地址分類A類IP地址:一個(gè)A類IP地址由1字節(jié)的網(wǎng)絡(luò)地址和3字節(jié)主機(jī)地址組成,網(wǎng)絡(luò)地址的最高位必須是“0”,地址范圍從1.0.0.0到126.0.0.0??捎玫腁類網(wǎng)絡(luò)有126個(gè),每個(gè)網(wǎng)絡(luò)能容納1億多個(gè)主機(jī)。B類IP地址:一個(gè)B類IP地址由2個(gè)字節(jié)的網(wǎng)絡(luò)地址和2個(gè)字節(jié)的主機(jī)地址組成,網(wǎng)絡(luò)地址的最高位必須是“10”,地址范圍從128.0.0.0到191.255.255.255??捎玫腂類網(wǎng)絡(luò)有16382個(gè),每個(gè)網(wǎng)絡(luò)能容納6萬(wàn)多個(gè)主機(jī)。C類IP地址:一個(gè)C類IP地址由3字節(jié)的網(wǎng)絡(luò)地址和1字節(jié)的主機(jī)地址組成,網(wǎng)絡(luò)地址的最高位必須是“110”。范圍從192.0.0.0到223.255.255.255。C類網(wǎng)絡(luò)可達(dá)209萬(wàn)余個(gè),每個(gè)網(wǎng)絡(luò)能容納254個(gè)主機(jī)。D類IP地址:用于多點(diǎn)廣播(Multicast),D類IP地址第一個(gè)字節(jié)以“1110”開(kāi)始,它是一個(gè)專門保留的地址。它并不指向特定的網(wǎng)絡(luò),目前這一類地址被用在多點(diǎn)廣播中。多點(diǎn)廣播地址用來(lái)一次尋址一組計(jì)算機(jī),它標(biāo)識(shí)共享同一協(xié)議的一組計(jì)算機(jī)。E類IP地址:以“1111”開(kāi)始,研究和試驗(yàn)用,為將來(lái)使用保留。
各類IP地址的指派范圍:A類地址最大可指派的網(wǎng)絡(luò)數(shù)為126(27-2),第一個(gè)可指派的網(wǎng)絡(luò)號(hào)為1,最后一個(gè)可指派的網(wǎng)絡(luò)號(hào)為126,每個(gè)網(wǎng)絡(luò)中最大主機(jī)數(shù)為16777214;B類地址最大可指派的網(wǎng)絡(luò)數(shù)為16383(214-1),第一個(gè)可指派的網(wǎng)絡(luò)號(hào)為128.1,最后一個(gè)可指派的網(wǎng)絡(luò)號(hào)為191.255,每個(gè)網(wǎng)絡(luò)中最大主機(jī)數(shù)為65534;C類地址最大可指派的網(wǎng)絡(luò)數(shù)為2097151(221-1),第一個(gè)可指派的網(wǎng)絡(luò)號(hào)為192.0.1,最后一個(gè)可指派的網(wǎng)絡(luò)號(hào)為223.255.255,每個(gè)網(wǎng)絡(luò)中最大主機(jī)數(shù)為254。注意指派時(shí)要扣除全0和全1的主機(jī)號(hào)。一般不使用的特殊的IP地址如表4-3所示。表4-3一般不使用的特殊的IP地址分類的IP地址的優(yōu)點(diǎn)有:管理簡(jiǎn)單;使用方便;轉(zhuǎn)發(fā)分組迅速;劃分子網(wǎng),靈活地使用。缺點(diǎn)有:設(shè)計(jì)上不合理:大地址塊,浪費(fèi)地址資源;即使采用劃分子網(wǎng)的方法,也無(wú)法解決IP地址枯竭的問(wèn)題。4.3.5無(wú)類別域間路由(CIDR)
無(wú)類別域間路由(ClasslessInter-DomainRouting、CIDR)是一個(gè)用于給用戶分配IP地址以及在互聯(lián)網(wǎng)上有效地路由IP數(shù)據(jù)包的對(duì)IP地址進(jìn)行歸類的方法。消除了傳統(tǒng)的A類、B類和C類地址以及劃分子網(wǎng)的概念,可以取IP地址的任意前綴作為網(wǎng)絡(luò)號(hào),更加有效地分配IPv4的地址空間,但無(wú)法解決IP地址枯竭的問(wèn)題。CIDR可以利用層次網(wǎng)絡(luò)和路由匯總減小路由器中路由表的規(guī)模,提高轉(zhuǎn)發(fā)速度。
CIDR地址的網(wǎng)絡(luò)地址由網(wǎng)絡(luò)前綴和主機(jī)號(hào)決定。前綴的位數(shù)n不固定,可以在0~32之間選取任意值。如圖4-15所示。圖4-15
CIDR地址CIDR還采用斜線記法,在IP地址后面加斜線之后寫上網(wǎng)絡(luò)前綴所占的位數(shù)。a.b.c.d/n:二進(jìn)制IP地址的前n位是網(wǎng)絡(luò)前綴。例如:220.78.168.0/24
我們從這個(gè)IP地址可以看出由于主機(jī)號(hào)是8位,故此時(shí)最多有2^8-2=254個(gè)主機(jī)可以使用。但當(dāng)這個(gè)IP地址表示為220.78.168.0/23時(shí)我們可以看到此時(shí)從網(wǎng)絡(luò)號(hào)中借了一位出來(lái)作為主機(jī)號(hào)。所以此時(shí)網(wǎng)絡(luò)中的主機(jī)個(gè)數(shù)最多為2^9-2。
通過(guò)斜線記法,我們可以知道網(wǎng)絡(luò)前綴的個(gè)數(shù),由此可以知道子網(wǎng)掩碼(把網(wǎng)絡(luò)前綴的位置都標(biāo)上1即為子網(wǎng)掩碼)。之后讓子網(wǎng)掩碼與該IP地址做與運(yùn)算可以計(jì)算得出網(wǎng)絡(luò)地址。由此也可以推出最大的地址和最小的地址。
注意:當(dāng)主機(jī)號(hào)全為0和全為1的時(shí)候,不使用這兩個(gè)地址,使用這兩個(gè)地址之間的地址。這里強(qiáng)調(diào)的是主機(jī)號(hào)不能全為0和全為1,但是網(wǎng)絡(luò)號(hào)是可以全為0的。CIDR把網(wǎng)絡(luò)前綴都相同的所有連續(xù)的IP地址組成一個(gè)CIDR地址塊一個(gè)CIDR地址塊包含的IP地址數(shù)目,取決于網(wǎng)絡(luò)前綴的位數(shù)。4.3.6子網(wǎng)掩碼
子網(wǎng)掩碼(subnetmask)又叫網(wǎng)絡(luò)掩碼、地址掩碼,它用來(lái)指明一個(gè)IP地址的哪些位標(biāo)識(shí)的是主機(jī)所在的子網(wǎng),以及哪些位標(biāo)識(shí)的是主機(jī)的位掩碼。子網(wǎng)掩碼不能單獨(dú)存在,它必須結(jié)合IP地址一起使用。
子網(wǎng)掩碼是一個(gè)32位地址,用于屏蔽IP地址的一部分以區(qū)別網(wǎng)絡(luò)標(biāo)識(shí)和主機(jī)標(biāo)識(shí),并說(shuō)明該IP地址是在局域網(wǎng)上,還是在廣域網(wǎng)上。
子網(wǎng)掩碼是由由一連串1和接著的一連串0組成,而1的個(gè)數(shù)就是網(wǎng)絡(luò)前綴的長(zhǎng)度。例如:/20地址塊的地址掩碼:11111111111111111111000000000000點(diǎn)分十進(jìn)制記法:255.255.240.0,CIDR記法:255.255.240.0/20。
子網(wǎng)掩碼不能單獨(dú)存在,它必須結(jié)合IP地址一起使用。對(duì)于A類地址來(lái)說(shuō),默認(rèn)的子網(wǎng)掩碼是255.0.0.0;對(duì)于B類地址來(lái)說(shuō)默認(rèn)的子網(wǎng)掩碼是255.255.0.0;對(duì)于C類地址來(lái)說(shuō)默認(rèn)的子網(wǎng)掩碼是255.255.255.0。如圖4-16所示。圖4-16子網(wǎng)掩碼
將子網(wǎng)掩碼二進(jìn)制和IP地址二進(jìn)制進(jìn)行邏輯“與”(AND)運(yùn)算,得到的就是主機(jī)地址。如:192.168.10.11AND255.255.255.0,結(jié)果為192.168.10.0,其表達(dá)的含義為:該IP地址屬于192.168.10.0這個(gè)網(wǎng)絡(luò),其主機(jī)號(hào)為11,即這個(gè)網(wǎng)絡(luò)中編號(hào)為11的主機(jī)。
子網(wǎng)掩碼一定是配合IP地址來(lái)使用的。對(duì)于常用網(wǎng)絡(luò)A、B、C類IP地址其默認(rèn)子網(wǎng)掩碼的二進(jìn)制與十進(jìn)制對(duì)應(yīng)關(guān)系如上圖所示。子網(wǎng)掩碼工作過(guò)程是:將32位的子網(wǎng)掩碼與IP地址進(jìn)行二進(jìn)制形式的按位邏輯“與”運(yùn)算得到的便是網(wǎng)絡(luò)地址。如圖4-17所示。
網(wǎng)絡(luò)地址=(二進(jìn)制的IP地址)AND(地址掩碼)圖4-17網(wǎng)絡(luò)地址計(jì)算4.3.7子網(wǎng)劃分與路由聚合
為了減少網(wǎng)絡(luò)上的通信量,節(jié)省IP地址,又增加了一個(gè)“子網(wǎng)號(hào)字段”,使兩級(jí)IP地址變?yōu)槿?jí)IP地址,這種做法叫做劃分子網(wǎng)。如圖4-18所示。圖4-18劃分子網(wǎng)
使用子網(wǎng)掩碼劃分子網(wǎng)后,子網(wǎng)內(nèi)可以通信,跨子網(wǎng)不能通信,子網(wǎng)間通信應(yīng)該使用路由器,并正確配置靜態(tài)路由信息。劃分子網(wǎng),就應(yīng)遵循子網(wǎng)劃分結(jié)構(gòu)的規(guī)則。就是用連續(xù)的1在IP地址中增加表示網(wǎng)絡(luò)地址,同時(shí)減少表示主機(jī)地址的位數(shù)。
劃分子網(wǎng)的基本思路:(1)一個(gè)擁有許多物理網(wǎng)絡(luò)的單位,可將所屬的物理網(wǎng)絡(luò)劃分為若干個(gè)子網(wǎng),劃分子網(wǎng)純屬一個(gè)單位內(nèi)部的事情,本單位以外的網(wǎng)絡(luò)看不見(jiàn)這個(gè)網(wǎng)絡(luò)是由多少個(gè)子網(wǎng)組成。(2)從網(wǎng)絡(luò)的主機(jī)號(hào)中借用若干位作為子網(wǎng)號(hào),當(dāng)然主機(jī)號(hào)也就相應(yīng)的減少了同樣的位數(shù)。于是兩級(jí)IP地址在本單位內(nèi)部就變?yōu)槿?jí)IP地址。IP地址::={<網(wǎng)絡(luò)號(hào)>,<子網(wǎng)號(hào)>,<主機(jī)號(hào)>}(3)凡是從其他網(wǎng)絡(luò)發(fā)送給本單位某臺(tái)主機(jī)的IP數(shù)據(jù)報(bào),仍然是根據(jù)IP數(shù)據(jù)報(bào)的目的網(wǎng)絡(luò)號(hào)找到連接在本單位網(wǎng)絡(luò)上的路由器。但此路由器在收到IP數(shù)據(jù)報(bào)后,再按目的網(wǎng)絡(luò)號(hào)和子網(wǎng)號(hào)找到目的子網(wǎng),把IP數(shù)據(jù)報(bào)交付目的主機(jī)。
例如,IP地址為130.39.37.100,網(wǎng)絡(luò)地址為130.39.37.0、子網(wǎng)地址為130.39.37.0、子網(wǎng)掩碼為255.255.255.0,網(wǎng)絡(luò)地址部分和子網(wǎng)標(biāo)識(shí)部分為“1”所對(duì)應(yīng),主機(jī)標(biāo)識(shí)部分為“0”所對(duì)應(yīng)。使用CIDR表示為:130.39.37.100/24即IP地址/掩碼長(zhǎng)度。其中第三個(gè)字節(jié)上的255所對(duì)應(yīng)的8位二進(jìn)制數(shù)值就是將主機(jī)地址位數(shù)借給了網(wǎng)絡(luò)地址部分,充當(dāng)了劃分子網(wǎng)的位數(shù)。
在今天如此大規(guī)模的網(wǎng)絡(luò)互聯(lián)環(huán)境下,尤其是負(fù)責(zé)核心網(wǎng)建設(shè)的運(yùn)營(yíng)商,處在核心網(wǎng)的路由器要處理海量的數(shù)據(jù),必然它就要存儲(chǔ)特別長(zhǎng)的路由表(可能會(huì)包含幾萬(wàn)條路由項(xiàng)),路由表過(guò)長(zhǎng)就會(huì)引起匹配條目的時(shí)間過(guò)長(zhǎng),也就導(dǎo)致了數(shù)據(jù)轉(zhuǎn)發(fā)延遲過(guò)長(zhǎng),造成網(wǎng)絡(luò)質(zhì)量差的效果,為了解決這個(gè)問(wèn)題,提出了路由聚合的技術(shù),也稱為超網(wǎng)。如圖4-19所示。圖4-19超網(wǎng)
聚合前:16個(gè)C類地址,地址掩碼=255.255.255.0,路由表中需要16個(gè)路由項(xiàng)目。
聚合后:聚合為1個(gè)地址,地址掩碼=255.255.240.0,路由表中只需1個(gè)路由項(xiàng)目。
超網(wǎng)的功能是將多個(gè)連續(xù)的C類的網(wǎng)絡(luò)地址聚合起來(lái)映射到一個(gè)物理網(wǎng)絡(luò)上。這樣,這個(gè)物理網(wǎng)絡(luò)就可以使用這個(gè)聚合起來(lái)的C類地址的共同地址前綴作為其網(wǎng)絡(luò)號(hào)。
超網(wǎng)創(chuàng)建用來(lái)解決路由列表超出現(xiàn)有軟件和管理人力的問(wèn)題以及提供B類網(wǎng)絡(luò)地址空間耗盡的解決辦法。超網(wǎng)允許一個(gè)路由列表入口表示一個(gè)網(wǎng)絡(luò)集合,就如一個(gè)區(qū)域代碼表示一個(gè)區(qū)域的電話號(hào)碼的集合一樣。
超網(wǎng)(路由聚合)技術(shù)是為了解決路由表的內(nèi)容冗余問(wèn)題,使用路由聚合能夠縮小路由表的規(guī)模,減少路由表的內(nèi)存。
某大學(xué)的ISP共有64個(gè)C類網(wǎng)絡(luò)。如果不采用CIDR技術(shù),則在與該ISP的路由器交換路由信息的每一個(gè)路由器的轉(zhuǎn)發(fā)表中,需要有64行。采用地址聚合后,轉(zhuǎn)發(fā)表中只需要用1行來(lái)指出到206.0.64.0/18地址塊的下一跳。在ISP內(nèi)的路由器的轉(zhuǎn)發(fā)表中,也僅需用206.0.68.0/22這1個(gè)項(xiàng)目,就能把外部發(fā)送到這個(gè)大學(xué)各系的所有分組,都轉(zhuǎn)發(fā)到大學(xué)的路由器。如圖4-20所示。
可見(jiàn):網(wǎng)絡(luò)前綴越短,地址塊所包含的地址數(shù)越多。圖4-20
CIDR地址塊劃分舉例4.3.8IP數(shù)據(jù)報(bào)的格式
TCP/IP協(xié)議定義了一個(gè)在互聯(lián)網(wǎng)上傳輸?shù)陌Q為IP數(shù)據(jù)報(bào)(IPDatagram)。這是一個(gè)與硬件無(wú)關(guān)的虛擬包,由首部和數(shù)據(jù)兩部分組成。首部的前一部分是固定長(zhǎng)度,共20字節(jié),是所有IP數(shù)據(jù)報(bào)必須具有的.在首部的固定部分的后面是一些可選字段,其長(zhǎng)度是可變的,如圖4-21所示。圖4-21
IP數(shù)據(jù)報(bào)首部的前一部分是固定長(zhǎng)度,共20字節(jié),是所有IP數(shù)據(jù)報(bào)必須具有的??蛇x字段,其長(zhǎng)度是可變的。版本——占4位,指IP協(xié)議的版本,目前的IP協(xié)議版本號(hào)為4(即IPv4)。首部長(zhǎng)度——占4位,可表示的最大數(shù)值是15個(gè)單位(一個(gè)單位為4字節(jié)),因此IP的首部長(zhǎng)度的最大值是60字節(jié)。區(qū)分服務(wù)——占8位,用來(lái)獲得更好的服務(wù),只有在使用區(qū)分服務(wù)(DiffServ)時(shí),這個(gè)字段才起作用,在一般的情況下都不使用這個(gè)字段??傞L(zhǎng)度——占16位,指首部和數(shù)據(jù)之和的長(zhǎng)度,單位為字節(jié),因此數(shù)據(jù)報(bào)的最大長(zhǎng)度為65535字節(jié),總長(zhǎng)度必須不超過(guò)最大傳送單元MTU。標(biāo)識(shí)(identification)——占16位,它是一個(gè)計(jì)數(shù)器,用來(lái)產(chǎn)生IP數(shù)據(jù)報(bào)的標(biāo)識(shí)。標(biāo)志(flag)——占3位,目前只有前兩位有意義。標(biāo)志字段的最低位是MF(MoreFragment),MF=1表示后面還有分片,MF=0表示最后一個(gè)分片。標(biāo)志字段中間的一位是DF(Don'tFragment),只有當(dāng)DF=0時(shí)才允許分片。片偏移——占13位,指出:較長(zhǎng)的分組在分片后某片在原分組中的相對(duì)位置,片偏移以8個(gè)字節(jié)為偏移單位。生存時(shí)間——占8位,生存時(shí)間字段常用的英文縮寫是TTL(TimeToLive),其表明數(shù)據(jù)報(bào)在網(wǎng)絡(luò)中的壽命,由發(fā)出數(shù)據(jù)報(bào)的源點(diǎn)設(shè)置這個(gè)字段,其目的是防止無(wú)法交付的數(shù)據(jù)報(bào)無(wú)限制地在互聯(lián)網(wǎng)中兜圈子,因而白白消耗網(wǎng)絡(luò)資源。最初的設(shè)計(jì)是以秒作為TTL的單位,每經(jīng)過(guò)一個(gè)路由器時(shí),就把TTL減去數(shù)據(jù)報(bào)在路由器消耗掉的一段時(shí)間。若數(shù)據(jù)報(bào)在路由器消耗的時(shí)間小于1秒,就把TTL值減1。當(dāng)TTL值為0時(shí),就丟棄這個(gè)數(shù)據(jù)報(bào)。協(xié)議——占8位,協(xié)議字段指出此數(shù)據(jù)報(bào)攜帶的數(shù)據(jù)是使用何種協(xié)議,以便使目的主機(jī)的IP層知道應(yīng)將數(shù)據(jù)部分上交給哪個(gè)處理過(guò)程。首部檢驗(yàn)和——占16位,這個(gè)字段只檢驗(yàn)數(shù)據(jù)報(bào)的首部,但不包括數(shù)據(jù)部分。這是因?yàn)閿?shù)據(jù)報(bào)每經(jīng)過(guò)一個(gè)路由器,都要重新計(jì)算一下首都檢驗(yàn)和(一些字段,如生存時(shí)間、標(biāo)志、片偏移等都可能發(fā)生變化),不檢驗(yàn)數(shù)據(jù)部分可減少計(jì)算的工作量。源地址——占32位,表示發(fā)送端IP地址。目的地址——占32位,表示目的端IP地址。IP首部的可變部分就是一個(gè)可選字段。選項(xiàng)字段用來(lái)支持排錯(cuò),測(cè)量以及安全等措施,內(nèi)容很豐富。此字段的長(zhǎng)度可變,從1個(gè)字節(jié)到40個(gè)字節(jié)不等,取決于所選擇的項(xiàng)目。某些選項(xiàng)項(xiàng)目只需要1個(gè)字節(jié),它只包括1個(gè)字節(jié)的選項(xiàng)代碼。但還有些選項(xiàng)需要多個(gè)字節(jié),這些選項(xiàng)一個(gè)個(gè)拼接起來(lái),中間不需要有分隔符,最后用全0的填充字段補(bǔ)齊成為4字節(jié)的整數(shù)倍。增加首部的可變部分是為了增加IP數(shù)據(jù)報(bào)的功能,但這同時(shí)也使得IP數(shù)據(jù)報(bào)的首部長(zhǎng)度成為可變的。這就增加了每一個(gè)路由器處理數(shù)據(jù)報(bào)的開(kāi)銷,實(shí)際上這些選項(xiàng)很少被使用。新的IP版本IPv6就將IP數(shù)據(jù)報(bào)的首部長(zhǎng)度做成固定的。4.4.1基于終點(diǎn)的轉(zhuǎn)發(fā)
基于終點(diǎn)的轉(zhuǎn)發(fā)是一種傳統(tǒng)的方式,目前的主流方式。這種轉(zhuǎn)發(fā)方式要求主機(jī)或者路由器具有一張路由表。當(dāng)主機(jī)有分組要轉(zhuǎn)發(fā)時(shí),或者路由器收到分組要進(jìn)行轉(zhuǎn)發(fā)時(shí),就要搜索路由表找到最后終點(diǎn)的路由。分組在互聯(lián)網(wǎng)中是逐跳轉(zhuǎn)發(fā)的。如圖4-22所示。4.4
IP分組的轉(zhuǎn)發(fā)圖4-22分組轉(zhuǎn)發(fā)基于終點(diǎn)的轉(zhuǎn)發(fā):基于分組首部中的目的地址傳送和轉(zhuǎn)發(fā)。為了壓縮轉(zhuǎn)發(fā)表的大小,轉(zhuǎn)發(fā)表中最主要的路由是(目的網(wǎng)絡(luò)地址,下一跳地址)而不是(目的地址,下一跳地址)。查找轉(zhuǎn)發(fā)表的過(guò)程就是逐行尋找前綴匹配。如圖4-23所示。圖4-23查找轉(zhuǎn)發(fā)表主機(jī)H1發(fā)送出的、目的地址是128.1.2.132的分組轉(zhuǎn)發(fā)過(guò)程如圖4-24所示。圖4-24分組轉(zhuǎn)發(fā)路由器R1收到分組后檢查轉(zhuǎn)發(fā)表。先檢查第1行:255.255.255.192AND128.1.2.132!=128.1.2.128/26,不匹配。接著檢查第2行:255.255.255.128AND128.1.2.132=128.1.2.128/25,匹配。進(jìn)行分組的直接交付(通過(guò)路由器R1的接口1)。如圖4-25所示。圖4-25轉(zhuǎn)發(fā)過(guò)程4.4.2IP分組的匹配
最長(zhǎng)前綴匹配機(jī)制(LongestPrefixMatchAlgorithm)是目前行業(yè)內(nèi)幾乎所有的路由器都缺省采用的一種路由查詢機(jī)制。在使用CIDR時(shí),路由表的每個(gè)項(xiàng)目的組成,<網(wǎng)絡(luò)前綴,下一跳地址>。在查找路由的時(shí)候可能會(huì)得到不止一個(gè)匹配的結(jié)果。此時(shí)應(yīng)當(dāng)從匹配結(jié)果中選擇具有最長(zhǎng)網(wǎng)絡(luò)前綴的路由。因?yàn)榫W(wǎng)絡(luò)前綴越長(zhǎng),其地址塊就越小,路由就越具體。
主機(jī)路由(hostroute)又叫做特定主機(jī)路由。是對(duì)特定目的主機(jī)的IP地址專門指明的一個(gè)路由。網(wǎng)絡(luò)前綴就是a.b.c.d/32放在轉(zhuǎn)發(fā)表的最前面。
默認(rèn)路由(defaultroute)不管分組的最終目的網(wǎng)絡(luò)在哪里,都由指定的路由器R來(lái)處理,用特殊前綴0.0.0.0/0表示。
只要目的網(wǎng)絡(luò)不是N1和N2,就一律選擇默認(rèn)路由,把IP數(shù)據(jù)報(bào)先間接交付默認(rèn)路由器R1,讓R1再轉(zhuǎn)發(fā)給下一個(gè)路由器。如圖4-26所示。圖4-26路由器R1充當(dāng)?shù)竭_(dá)互聯(lián)網(wǎng)的默認(rèn)路由器路由器的分組轉(zhuǎn)發(fā)算法如圖4-27所示。圖4-27路由器分組轉(zhuǎn)發(fā)算法(1)從數(shù)據(jù)報(bào)的首部提取目的主機(jī)的IP地址D,得出目的網(wǎng)絡(luò)地址為N。(2)若網(wǎng)絡(luò)N與此路由器直接相連,則把數(shù)據(jù)報(bào)直接交付目的主機(jī)D;否則是間接交付,執(zhí)行(3)。(3)若路由表中有目的地址為D的特定主機(jī)路由,則把數(shù)據(jù)報(bào)傳送給路由表中所指明的下一跳路由器;否則,執(zhí)行(4)。(4)若路由表中有到達(dá)網(wǎng)絡(luò)N的路由,則把數(shù)據(jù)報(bào)傳送給路由表指明的下一跳路由器;否則,執(zhí)行(5)。(5)若路由表中有一個(gè)默認(rèn)路由,則把數(shù)據(jù)報(bào)傳送給路由表中所指明的默認(rèn)路由器;否則,執(zhí)行(6)。(6)報(bào)告轉(zhuǎn)發(fā)分組出錯(cuò)。4.4.3查找轉(zhuǎn)發(fā)表
二叉線索:一種特殊結(jié)構(gòu)的樹(shù),可以快速在轉(zhuǎn)發(fā)表中找到匹配的葉節(jié)點(diǎn)。從二叉線索的根節(jié)點(diǎn)自頂向下的深度最多有32層,每一層對(duì)應(yīng)于IP地址中的一位。為簡(jiǎn)化二叉線索的結(jié)構(gòu),可以用唯一前綴來(lái)構(gòu)造二叉線索。唯一前綴是指,在表中所有的IP地址中,該前綴是唯一的。為了提高二叉線索的查找速度,廣泛使用了各種壓縮技術(shù)。
查找規(guī)則為先檢查IP地址左邊的第一位,如為0,則第一層的節(jié)點(diǎn)就在根節(jié)點(diǎn)的左下方;如為1,則在右下方。然后再檢查地址的第二位,構(gòu)造出第二層的節(jié)點(diǎn)。依此類推,直到唯一前綴的最后一位。每個(gè)葉節(jié)點(diǎn)代表一個(gè)唯一前綴。如圖4-28所示。
為檢查網(wǎng)絡(luò)前綴是否匹配,必須使二叉線索中的每一個(gè)葉節(jié)點(diǎn)包含所對(duì)應(yīng)的網(wǎng)絡(luò)前綴和子網(wǎng)掩碼。圖4-28二叉線索4.5.1ICMP報(bào)文解析
ICMP允許主機(jī)或路由報(bào)告差錯(cuò)情況和提供有關(guān)異常情況。ICMP是互聯(lián)網(wǎng)的標(biāo)準(zhǔn)協(xié)議,但I(xiàn)CMP不是高層協(xié)議,而是IP層的協(xié)議。如圖4-29所示。4.5網(wǎng)際控制報(bào)文協(xié)議(ICMP)圖4-29各層協(xié)議通常ICMP報(bào)文被IP層或更高層協(xié)議(TCP或UDP)使用。一些ICMP報(bào)文把差錯(cuò)報(bào)文返回給用戶進(jìn)程。ICMP報(bào)文作為IP層數(shù)據(jù)報(bào)的數(shù)據(jù),加上數(shù)據(jù)報(bào)的首部,組成數(shù)據(jù)報(bào)發(fā)送出去。ICMP報(bào)文的種類有兩種,即ICMP差錯(cuò)報(bào)告報(bào)文和ICMP詢問(wèn)報(bào)文。ICMP所有報(bào)文的前4個(gè)字節(jié)都是一樣的,但是剩下的其他字節(jié)則互不相同。其他字段都因ICMP報(bào)文類型不同而不同。ICMP報(bào)文共有三個(gè)字段:即類型,代碼和檢驗(yàn)和。8位類型和8位代碼字段一起決定了ICMP報(bào)文的類型。如圖4-30所示。圖4-30
ICMP報(bào)文類型8,代碼0:表示回顯請(qǐng)求(ping請(qǐng)求)。類型0,代碼0:表示回顯應(yīng)答(ping應(yīng)答)。類型11,代碼0:超時(shí)。16位的檢驗(yàn)和字段:包括數(shù)據(jù)在內(nèi)的整個(gè)ICMP數(shù)據(jù)包的檢驗(yàn)和;其計(jì)算方法和IP頭部檢驗(yàn)和的計(jì)算方法一樣的。ICMP報(bào)文具體分為查詢報(bào)文和差錯(cuò)報(bào)文(對(duì)ICMP差錯(cuò)報(bào)文有時(shí)需要做特殊處理,因此要對(duì)其進(jìn)行區(qū)分。如:對(duì)ICMP差錯(cuò)報(bào)文進(jìn)行響應(yīng)時(shí),永遠(yuǎn)不會(huì)生成另一份ICMP差錯(cuò)報(bào)文,否則會(huì)出現(xiàn)死循環(huán))。ICMP差錯(cuò)報(bào)告報(bào)文共有5種:(1)終點(diǎn)不可達(dá):終點(diǎn)不可達(dá)分為:網(wǎng)絡(luò)不可達(dá),主機(jī)不可達(dá),協(xié)議不可達(dá),端口不可達(dá),需要分片但DF比特已置為1,以及源路由失敗等六種情況,其代碼字段分別置為0至5。當(dāng)出現(xiàn)以上六種情況時(shí)就向源站發(fā)送終點(diǎn)不可達(dá)報(bào)文。(2)源站抑制:當(dāng)路由器或主機(jī)由于擁塞而丟棄數(shù)據(jù)報(bào)時(shí),就向源站發(fā)送源站抑制報(bào)文,使源站知道應(yīng)當(dāng)將數(shù)據(jù)報(bào)的發(fā)送速率放慢。(3)時(shí)間超過(guò):當(dāng)路由器收到生存時(shí)間為零的數(shù)據(jù)報(bào)時(shí),除丟棄該數(shù)據(jù)報(bào)外,還要向源站發(fā)送時(shí)間超過(guò)報(bào)文。當(dāng)目的站在預(yù)先規(guī)定的時(shí)間內(nèi)不能收到一個(gè)數(shù)據(jù)報(bào)的全部數(shù)據(jù)報(bào)片時(shí),就將已收到的數(shù)據(jù)報(bào)片都丟棄,并向源站發(fā)送時(shí)間超過(guò)報(bào)文。(4)參數(shù)問(wèn)題:當(dāng)路由器或目的主機(jī)收到的數(shù)據(jù)報(bào)的首部中的字段的值不正確時(shí),就丟棄該數(shù)據(jù)報(bào),并向源站發(fā)送參數(shù)問(wèn)題報(bào)文。(5)改變路由(重定向)路由器將改變路由報(bào)文發(fā)送給主機(jī),讓主機(jī)知道下次應(yīng)將數(shù)據(jù)報(bào)發(fā)送給另外的路由器。所有的ICMP差錯(cuò)報(bào)告報(bào)文中的數(shù)據(jù)字段都具有同樣的格式。將收到的需要進(jìn)行差錯(cuò)報(bào)告IP數(shù)據(jù)報(bào)的首部和數(shù)據(jù)字段的前8個(gè)字節(jié)提取出來(lái),作為ICMP報(bào)文的數(shù)據(jù)字段。再加上響應(yīng)的ICMP差錯(cuò)報(bào)告報(bào)文的前8個(gè)字節(jié),就構(gòu)成了ICMP差錯(cuò)報(bào)告報(bào)文。提取收到的數(shù)據(jù)報(bào)的數(shù)據(jù)字段的前8個(gè)字節(jié)是為了得到運(yùn)輸層的端口號(hào)(對(duì)于TCP和UDP)以及運(yùn)輸層報(bào)文的發(fā)送序號(hào)(對(duì)于TCP)。如圖4-31所示。圖4.31
ICMP差錯(cuò)報(bào)文以下幾種情況都不會(huì)導(dǎo)致產(chǎn)生ICMP差錯(cuò)報(bào)文(1)ICMP差錯(cuò)報(bào)文(但是,ICMP查詢報(bào)文可能會(huì)產(chǎn)生ICMP差錯(cuò)報(bào)文)(2)目的地址是廣播地址或多播地址的IP數(shù)據(jù)報(bào)(3)作為鏈路層廣播的數(shù)據(jù)報(bào)(4)不是IP分片的第一片(5)源地址不是單個(gè)主機(jī)的數(shù)據(jù)報(bào)。即源地址不能為零地址、環(huán)回地址、廣播地址或多播地址。這些規(guī)則是為了防止過(guò)去允許ICMP差錯(cuò)報(bào)文對(duì)廣播分組響應(yīng)所帶來(lái)的廣播風(fēng)暴。4.5.2ICMP應(yīng)用舉例
PING(PacketInterNetGroper)用來(lái)測(cè)試兩個(gè)主機(jī)之間的連通性。使用了ICMP回送請(qǐng)求與回送回答報(bào)文。是應(yīng)用層直接使用網(wǎng)絡(luò)層ICMP的例子,沒(méi)有通過(guò)運(yùn)輸層的TCP或UDP。該程序發(fā)送一份ICMP回顯請(qǐng)求報(bào)文給主機(jī),并等待返回ICMP回顯應(yīng)答。Ping程序還能測(cè)出到這臺(tái)主機(jī)的往返時(shí)間,以表明該主機(jī)離我們有多遠(yuǎn)。我們將發(fā)送回顯請(qǐng)求的ping程序?yàn)榭蛻簦Q被ping的主機(jī)為服務(wù)器。如圖4.32所示。圖4.32
PING命令
Traceroute命令用來(lái)獲得從本地計(jì)算機(jī)到目的主機(jī)的路徑信息。在MSWindows中該命令為Tracert,而UNIX系統(tǒng)中為Traceroute。Tracert先發(fā)送TTL為1的回顯請(qǐng)求報(bào)文,并在隨后的每次發(fā)送過(guò)程將TTL遞增1,直到目標(biāo)響應(yīng)或TTL達(dá)到最大值,從而確定路由。如圖4.33所示。圖4.33
Traceroute命令4.6.1概述
互聯(lián)網(wǎng)采用的是分層次的、分布式的動(dòng)態(tài)路由協(xié)議。其中又劃分為許多較小的自治系統(tǒng),如圖4.36所示。每一個(gè)小的自治系統(tǒng)中采用的是內(nèi)部網(wǎng)關(guān)協(xié)議(IGPInteriorGatewayProtocol),也稱為域內(nèi)路由選擇,多個(gè)小的自治系統(tǒng)間采用的是外部網(wǎng)關(guān)協(xié)議(EGPExternalGatewayProtocol),也稱為域間路由選擇。其中,常用的內(nèi)部網(wǎng)關(guān)協(xié)議有RIP(RoutinginformationProtocol)和OSPF(OpenShortestPathFitst)等,常用的外部網(wǎng)關(guān)協(xié)議有BGP(BGPBorderGatewayProtocol)等,如圖4-34所示。4.6互聯(lián)網(wǎng)的路由選擇協(xié)議圖4-34內(nèi)部網(wǎng)關(guān)協(xié)議與外部網(wǎng)關(guān)協(xié)議4.6.2內(nèi)部網(wǎng)關(guān)協(xié)議——RIP協(xié)議
1.RIP協(xié)議路由信息協(xié)議(RoutingInformationProtocal)RIP是一種分布式的、基于距離向量的路由選擇協(xié)議,協(xié)議要求網(wǎng)絡(luò)中的每個(gè)路由器都要維護(hù)從它自己到其他每一個(gè)目的網(wǎng)絡(luò)的距離記錄,以便傳給相鄰的路由器,并且僅與相鄰的路由器交換信息,交換的信息就是當(dāng)前本路由器的路由表。相鄰的路由器之間會(huì)按照固定的時(shí)間進(jìn)行信息交換,當(dāng)網(wǎng)絡(luò)發(fā)生變化時(shí),路由器也會(huì)及時(shí)向相鄰路由器發(fā)送變化后的路由信息。在RIP協(xié)議中,路由器到直接連接的網(wǎng)絡(luò)的距離=1。路由器到非直接連接的網(wǎng)絡(luò)的距離=所經(jīng)過(guò)的路由器數(shù)+1。RIP協(xié)議中的“距離”也稱為“跳數(shù)”。因?yàn)榫W(wǎng)絡(luò)規(guī)模有限,一條路徑最多只能包含15個(gè)路由器。跳數(shù)的最大值為16時(shí)即相當(dāng)于不可達(dá)。RIP協(xié)議的局限在于只把路徑長(zhǎng)度作為唯一的度量標(biāo)準(zhǔn),如果遇到速度很快但是長(zhǎng)度較長(zhǎng)的路徑就不作考慮。RIP協(xié)議還有一個(gè)主要缺點(diǎn):壞消息傳的慢,即當(dāng)網(wǎng)絡(luò)出現(xiàn)故障時(shí),要經(jīng)過(guò)較長(zhǎng)的時(shí)間才能將此信息傳到所有的路由器。2.路由表的建立路由器在剛剛開(kāi)始工作的時(shí)候,路由表是空的,因?yàn)橐婚_(kāi)始還沒(méi)有和其他路由器建立連接,也無(wú)法得知下一跳的具體地址,之后才能得到直連網(wǎng)絡(luò)的距離。在RIP協(xié)議中,每個(gè)路由器都只和自己相鄰的路由器進(jìn)行數(shù)據(jù)交換路由表。在經(jīng)過(guò)若干次更新后,所有的路由器都會(huì)知道到達(dá)本自治系統(tǒng)中任何一個(gè)網(wǎng)絡(luò)的最短距離和下一跳的路由地址。路由表的主要信息包括:目的網(wǎng)絡(luò)、最短距離、下一跳地址。路由表的更新則取決于距離向量算法找出到達(dá)每個(gè)目的網(wǎng)絡(luò)的最短距離。3.距離向量算法對(duì)每個(gè)相鄰路由器(假設(shè)其地址為X)發(fā)送過(guò)來(lái)的RIP報(bào)文,路由器:(1)修改報(bào)文中的所有路由地址:把“下一跳”字段中的地址都改為X,因?yàn)槎嘟?jīng)過(guò)一個(gè)路由器,所以把所有的“距離”字段的值加1。(2)對(duì)修改后的報(bào)文中的每一個(gè)項(xiàng)目,重復(fù)以下步驟:若路由表中沒(méi)有目的網(wǎng)絡(luò)N,則把該項(xiàng)目添加到路由表中。若路由器的路由表中,存在到N的路由,再進(jìn)行如下步驟若路由表中的下一跳地址就是X,那么將修改過(guò)的表項(xiàng)替換原來(lái)的路由(壞消息傳的慢)。若路由表中的下一跳地址不是X,則將自己的路由的距離與修改過(guò)的表項(xiàng)中的距離相比,若修改過(guò)的表項(xiàng)中的距離比自己的小,那么替換路由,否則什么也不做。若三分鐘還沒(méi)有收到相鄰路由器發(fā)過(guò)來(lái)的報(bào)文,則將此相鄰路由標(biāo)記為不可到達(dá),即把距離設(shè)置為16。4.6.3內(nèi)部網(wǎng)關(guān)協(xié)議——OSPF協(xié)議
開(kāi)放式最短路徑優(yōu)先OSPF(OpenShortestPathFirst)是為克服RIP的缺點(diǎn)在1989年開(kāi)發(fā)出來(lái)的,使用的是Dijkstra提出的SPF算法,可以快速響應(yīng)網(wǎng)絡(luò)變化。OSPF路由協(xié)議是一種典型的鏈路狀態(tài)(Link-state)的路由協(xié)議,一般用于同一個(gè)路由域內(nèi),對(duì)網(wǎng)絡(luò)沒(méi)有跳數(shù)限制。其中鏈路指的是路由器接口,鏈路狀態(tài)(LSA)就是OSPF接口上的描述信息,例如接口上的IP地址,子網(wǎng)掩碼,網(wǎng)絡(luò)類型,Cost值等等。OSPF路由器之間交換的并不是路由表,而是鏈路狀態(tài)(LSA),OSPF通過(guò)獲得網(wǎng)絡(luò)中所有的鏈路狀態(tài)信息,從而計(jì)算出到達(dá)每個(gè)目標(biāo)精確的網(wǎng)絡(luò)路徑。OSPF將一個(gè)自治系統(tǒng)再劃分為若干個(gè)更小的范圍,叫作區(qū)域。劃分區(qū)域的好處就是把利用洪泛法交換鏈路狀態(tài)信息的范圍局限于每一個(gè)區(qū)域而不是整個(gè)的自治系統(tǒng),這就減少了整個(gè)網(wǎng)絡(luò)上的通信量。OSPF路由器會(huì)將自己所有的鏈路狀態(tài)毫不保留地全部發(fā)給鄰居,鄰居將收到的鏈路狀態(tài)全部放入鏈路狀態(tài)數(shù)據(jù)庫(kù),鄰居再發(fā)給自己的所有鄰居,并且在傳遞過(guò)程種,絕對(duì)不會(huì)有任何更改。最終,網(wǎng)絡(luò)中所有的OSPF路由器都擁有網(wǎng)絡(luò)中所有的鏈路狀態(tài),并且所有路由器的鏈路狀態(tài)應(yīng)該能描繪出相同的網(wǎng)絡(luò)拓?fù)洹?/p>
OSPF簡(jiǎn)單地說(shuō)就是兩個(gè)相鄰的路由器通過(guò)發(fā)報(bào)文的形式成為鄰居關(guān)系,鄰居再相互發(fā)送鏈路狀態(tài)信息形成鄰接關(guān)系,之后各自根據(jù)最短路徑算法算出路由,放在OSPF路由表,OSPF路由與其他路由比較后優(yōu)的加入全局路由表。整個(gè)過(guò)程使用了五種報(bào)文、三個(gè)階段、四張表。
(1)五種報(bào)文 Hello報(bào)文:建立并維護(hù)鄰居關(guān)系。 DBD報(bào)文:發(fā)送鏈路狀態(tài)頭部信息。 LSR報(bào)文:把從DBD中找出需要的鏈路狀態(tài)頭部信息傳給鄰居,請(qǐng)
求完整信息。 LSU報(bào)文:將LSR請(qǐng)求的頭部信息對(duì)應(yīng)的完整信息發(fā)給鄰居。 LSACK:收到LSU報(bào)文后確認(rèn)該報(bào)文。
(2)三個(gè)階段 鄰居發(fā)現(xiàn):通過(guò)發(fā)送Hello報(bào)文形成鄰居關(guān)系。 路由通告:鄰居間發(fā)送鏈路狀態(tài)信息形成鄰接關(guān)系。 路由計(jì)算:根據(jù)最短路徑算法算出路由表。
(3)四張表 鄰居表:主要記錄形成鄰居關(guān)系路由器。 鏈路狀態(tài)數(shù)據(jù)庫(kù):記錄鏈路狀態(tài)信息。 OSPF路由表:通過(guò)鏈路狀態(tài)數(shù)據(jù)庫(kù)得出。 全局路由表:OSPF路由與其他比較得出。
1.OSPF七種狀態(tài)Down(停止):各路由器未與任何鄰居交換信息,開(kāi)始從運(yùn)行OSPF的接口以組播地址224.0.0.5發(fā)送Hello包。Init(初始):各路由器收到第一個(gè)Hello數(shù)據(jù)包后,把該路由器添加到自己的鄰居Neighbor列表中。Two-Way(雙向狀態(tài)屬于鄰居關(guān)系):收到的Hello包中有自己的RouterID,將該路由器加入自己鄰居列表中,進(jìn)入2-Way狀態(tài)。在這個(gè)過(guò)程中同時(shí)選舉出DR和BDR。若不形成鄰接關(guān)系則一直停留在該狀態(tài)。Exstart(準(zhǔn)啟動(dòng)):DROther與DR/BDR發(fā)送DBD包確定Master/Slave關(guān)系,RID大的的成為Master(不一定是DR)。Exchange(交換):Master與Slave之間相互單播發(fā)送一個(gè)或多個(gè)DBD數(shù)據(jù)庫(kù)描述數(shù)據(jù)包(Slave沿用Master的序列號(hào)先發(fā)送),進(jìn)行DBD的同步。DBD有序號(hào),由Master決定DBD的序號(hào)。相互收到DBD后,通過(guò)序列號(hào)進(jìn)行隱式確認(rèn)已收到DBD。Exchange狀態(tài)結(jié)束的最后一個(gè)DBD包是Slave發(fā)送的。Loading(加載):將收到的信息同LSDB中的信息進(jìn)行比較。如果DBD中有更新的鏈路狀態(tài)條目,則向?qū)Ψ桨l(fā)送一個(gè)LSR,用于請(qǐng)求新的LSA,對(duì)方回復(fù)相應(yīng)的LSU,當(dāng)所有LSR都得到LSU答復(fù)后向?qū)Ψ交貞?yīng)LSAck進(jìn)行顯示確認(rèn)。Full(完全狀態(tài),屬于鄰接關(guān)系):相鄰的路由器在Loading完成同步后進(jìn)入Full狀態(tài),開(kāi)始正常轉(zhuǎn)發(fā)數(shù)據(jù)。此時(shí)區(qū)域內(nèi)的每個(gè)鏈路應(yīng)該都有相同的數(shù)據(jù)鏈路狀態(tài)數(shù)據(jù)庫(kù)。后續(xù)只有Hello包、LSU包、LSAck包。
2.OSPF協(xié)議工作過(guò)程概述圖4-35
OSPF協(xié)議工作過(guò)程
OSPF協(xié)議工作過(guò)程主要有4個(gè)階段:(1)尋找鄰居;(2)建立鄰接關(guān)系;(3)傳遞鏈路狀態(tài)信息;(4)進(jìn)行路由計(jì)算。(1)尋找鄰居,如圖4-36所示。圖4-36尋找鄰居
(2)建立鄰接關(guān)系,如圖4-37所示。圖4-37建立鄰接關(guān)系
(3)傳遞鏈路狀態(tài)信息,如圖4-38所示。圖4-38鏈路狀態(tài)信息傳遞
(3)傳遞鏈路狀態(tài)信息,如圖4-38所示。圖4-38鏈路狀態(tài)信息傳遞
(4)進(jìn)行路由計(jì)算,如圖4-39所示。圖4-39路由計(jì)算
3.Router-ID每一臺(tái)路由器只有一個(gè)Router-ID,Router-ID使用IP地址的形式來(lái)表示,確定Router-ID的方法為:(1)手工指定Router-ID。(2)路由器上活動(dòng)的Loopback接口的IP地址最大,也就是數(shù)字最大,如C類地址優(yōu)先于B類地址,一個(gè)非活動(dòng)的接口的IP地址是不能被選為Router-ID的。(3)如果沒(méi)有活動(dòng)的Loopback接口,則選擇活動(dòng)的物理接口的IP地址最大的。如果一臺(tái)路由器收到一條鏈路狀態(tài),無(wú)法到達(dá)該Router-ID的位置,就無(wú)法到達(dá)鏈路狀態(tài)中的目標(biāo)網(wǎng)絡(luò)。Router-ID只在OSPF啟動(dòng)時(shí)計(jì)算,或者重置OSPF進(jìn)程后計(jì)算。
4.OSPF區(qū)域
OSPF中劃分區(qū)域的目的就在于控制鏈路狀態(tài)信息LSA洪泛的范圍,減小鏈路狀態(tài)數(shù)據(jù)庫(kù)LSDB的大小,改善網(wǎng)絡(luò)的可擴(kuò)展性,快速收斂。當(dāng)網(wǎng)絡(luò)中包含多個(gè)區(qū)域時(shí),OSPF協(xié)議有特殊的規(guī)定,即其中必須有一個(gè)Area0,通常也叫作骨干區(qū)域,當(dāng)設(shè)計(jì)OSPF網(wǎng)絡(luò)時(shí),一個(gè)很好的方法就是從骨干區(qū)域開(kāi)始,然后再擴(kuò)展到其他區(qū)域。骨干區(qū)域在所有其他區(qū)域的中心,即所有區(qū)域都必須與骨干區(qū)域物理或邏輯上相連,因?yàn)镺SPF協(xié)議要把所有區(qū)域的路由信息引入骨干區(qū)域,然后再依次將路由信息從骨干區(qū)域分發(fā)到其他區(qū)域中。OSPF將區(qū)域劃分為以下幾種類型。骨干區(qū)域:作為中央實(shí)體,其他區(qū)域與之相連。骨干區(qū)域編號(hào)為0,在該區(qū)域中,各種類型的LSA均允許發(fā)布。標(biāo)準(zhǔn)區(qū)域:除骨干區(qū)域外的默認(rèn)的區(qū)域類型,在該類型區(qū)域中,各種類型的LSA均允許發(fā)布。末梢區(qū)域:即STUB區(qū)域,該類型區(qū)域中不接受關(guān)于AS外部的路由信息,即不接受類型5的AS外部LSA,需要路由到自治系統(tǒng)外部的網(wǎng)絡(luò)時(shí),路由器使用默認(rèn)路由(0.0.0.0)。末梢區(qū)域中不能包含有自治系統(tǒng)邊界路由器ASBR。完全末梢區(qū)域:該類型區(qū)域中不接受關(guān)于AS外部的路由信息,同時(shí)也不接受來(lái)自AS中其他區(qū)域的匯總路由,即不接受類型3、類型4、類型5的LSA。完全末梢區(qū)域也不能包含自治系統(tǒng)邊界路由器ASBR。劃分區(qū)域的優(yōu)缺點(diǎn)如下。優(yōu)點(diǎn):(1)減少了整個(gè)網(wǎng)絡(luò)上的通信量。(2)減少了需要維護(hù)的狀態(tài)數(shù)量。缺點(diǎn):(1)交換信息的種類增多了。(2)使OSPF協(xié)議更加復(fù)雜了。
5.OSPF協(xié)議和RIP協(xié)議的不同點(diǎn)
(1)OSPF協(xié)議向本自治系統(tǒng)中的所有路由器發(fā)送信息使用的方法是洪泛法,而RIP協(xié)議采用的則是距離向量法。(2)OSPF協(xié)議發(fā)送的信息是與本路由器相鄰的所有路由器的鏈路狀態(tài),但這只是路由器所知道的部分信息。“鏈路狀態(tài)”就是說(shuō)明本路由器都和哪些路由器相鄰,以及該鏈路的度量。RIP協(xié)議發(fā)送的信息是本路由器的路由表。(3)只有當(dāng)鏈路狀態(tài)發(fā)生變化時(shí),OSPF路由器才向所有路由器用洪泛法發(fā)送此信息。而RIP不管網(wǎng)絡(luò)拓?fù)溆袩o(wú)發(fā)生變化,路由器之間都要定期交換路由表的信息。(4)距離矢量路由協(xié)議的根本特征就是自己的路由表是完全從其他路由器學(xué)來(lái)的,并且將收到的路由條目一絲不變地放進(jìn)自己的路由表中,運(yùn)行距離矢量路由協(xié)議的路由器之間交換的是路由表,距離矢量路由協(xié)議是沒(méi)有大腦的,路由表從來(lái)不會(huì)自己計(jì)算,總是把別人的路由表拿來(lái)就用;而OSPF完全拋棄了這種不可靠的算法,OSPF是典型的鏈路狀態(tài)路由協(xié)議,路由器之間交換的并不是路由表,而是鏈路狀態(tài),OSPF通過(guò)獲得網(wǎng)絡(luò)中所有的鏈路狀態(tài)信息,從而計(jì)算出到達(dá)每個(gè)目標(biāo)精確的網(wǎng)絡(luò)路徑。(5)OSPF允許管理員給每條鏈路指派不同的代價(jià)。這種靈活性是RIP所沒(méi)有的。4.6.4外部網(wǎng)關(guān)協(xié)議——BGP協(xié)議
外部網(wǎng)關(guān)協(xié)議BGP是不同自治系統(tǒng)的路由器之間交換路由信息的協(xié)議。BGP只是力求尋找一條能夠到達(dá)目的網(wǎng)絡(luò)且比較好的路由(不能兜圈子),而并非要尋找一條最佳路由。BGP采用了路徑向量(PathVector)路由選擇協(xié)議。在AS之間的連接是eBGP,iBGP則用于將AS內(nèi)部的信息傳到eBGP,AS內(nèi)部無(wú)法通過(guò)iBGP交換信息。eBGP和iBGP使用的報(bào)文類型、屬性、狀態(tài)機(jī)等都完全一樣。但它們?cè)谕▓?bào)前綴時(shí)采用的規(guī)則不同:從eBGP連接的對(duì)等端得知的前綴信息可以通報(bào)給一個(gè)iBGP連接的對(duì)等端。反過(guò)來(lái)也是可以的。但從iBGP連接的對(duì)等端得知的前綴信息則不能夠通報(bào)給另一個(gè)iBGP連接的對(duì)等端。為了防止AS間產(chǎn)生環(huán)路,當(dāng)BGP設(shè)備接收eBGP對(duì)等端發(fā)送的路由時(shí),會(huì)將帶有本地AS號(hào)的路由丟棄。而為了防止AS內(nèi)產(chǎn)生環(huán)路,BGP設(shè)備不會(huì)將從iBGP對(duì)等端學(xué)到的路由通告給其他iBGP對(duì)等端,并與所有iBGP對(duì)等端建立全連接,如圖4-40所示。圖4-40外部網(wǎng)關(guān)協(xié)議BGP示意圖
1.三種不同的自治系統(tǒng)(AS)(1)末梢AS:不會(huì)把來(lái)自其他AS的分組再轉(zhuǎn)發(fā)到另一個(gè)AS。必須向所連接的AS付費(fèi)。(2)多歸屬AS:同時(shí)連接到兩個(gè)或兩個(gè)以上的AS。增加連接的可靠性。(3)穿越AS:為其他AS有償轉(zhuǎn)發(fā)分組。(4)對(duì)等AS:經(jīng)過(guò)事先協(xié)商的兩個(gè)AS,彼此之間發(fā)送或接收分組都不收費(fèi)。
2.BGP的路由選擇(1)本地偏好值最高的路由。(2)AS跳數(shù)最小的路由。(3)使用熱土豆路由選擇算法(在當(dāng)前AS內(nèi)的轉(zhuǎn)發(fā)次數(shù)最少)。(4)路由器BGPID數(shù)值最小的路由。
3.BGP的四種報(bào)文(1)OPEN(打開(kāi))報(bào)文:用來(lái)與相鄰的另一個(gè)BGP發(fā)言人建立關(guān)系,使通信初始化。(2)UPDATE(更新)報(bào)文:用來(lái)通告某一路由的信息,以及列出要撤銷的多條路由。(3)KEEPALIVE(?;睿﹫?bào)文:用來(lái)周期性地證實(shí)鄰站的連通。(4)NOTIFICATION(通知)報(bào)文:用來(lái)發(fā)送檢測(cè)到的差錯(cuò)。
4.BGP的優(yōu)點(diǎn)(1)BGP從多方面保證了網(wǎng)絡(luò)的安全性、靈活性、穩(wěn)定性、可靠性和高效性。(2)BGP采用認(rèn)證和GTSM的方式,保證了網(wǎng)絡(luò)的安全性。(3)BGP提供了豐富的路由策略,能夠靈活地進(jìn)行路由選路,并且能指導(dǎo)鄰居按策略發(fā)布路由。(4)BGP提供的路由聚合和路由衰減功能可防止路由震蕩,有效提高了網(wǎng)絡(luò)的穩(wěn)定性。(5)BGP使用TCP作為其運(yùn)輸層協(xié)議(目的端口號(hào)為179),提高了網(wǎng)絡(luò)的可靠性。(6)在鄰居數(shù)目多、路由量大且大部分鄰居具有相同出口的策略的場(chǎng)景下,BGP使用按組打包技術(shù),極大地提高了BGP打包、發(fā)包性能。4.7.1IPv6的特點(diǎn)
IPv6是英文“InternetProtocolVersion6”(互聯(lián)網(wǎng)協(xié)議第6版)的縮寫,是互聯(lián)網(wǎng)工程任務(wù)組(IETF)設(shè)計(jì)的用于替代IPv4的下一代IP協(xié)議,其地址數(shù)量號(hào)稱可以為全世界的每一粒沙子編上一個(gè)地址。由于IPv4最大的問(wèn)題在于網(wǎng)絡(luò)地址資源不足,嚴(yán)重制約了互聯(lián)網(wǎng)的應(yīng)用和發(fā)展,依靠NAT技術(shù)暫時(shí)緩解了IPv4地址不足的問(wèn)題,但是無(wú)法從根本上解決。IPv6的使用,不僅能解決網(wǎng)絡(luò)地址資源數(shù)量的問(wèn)題,而且也掃除了多種接入設(shè)備連入互聯(lián)網(wǎng)的障礙。4.7
IPv6*
1.地址空間豐富這是IPv6最大的特點(diǎn),IPv6地址一共有128位。作為對(duì)比,IPv4僅有32位;也就是說(shuō)IPv6的地址數(shù)量等于IPv4的地址數(shù)量再乘以三個(gè)42億。這就是有人敢說(shuō)IPv6可以為每一粒沙子都分配IP地址的原因。
2.精簡(jiǎn)報(bào)文結(jié)構(gòu)
IPv6的報(bào)文結(jié)構(gòu)相比IPv4精簡(jiǎn)了許多。IPv4的報(bào)文長(zhǎng)度不固定,有一個(gè)長(zhǎng)度可變的可選字段來(lái)實(shí)現(xiàn)一些功能;IPv6在此前提下長(zhǎng)度固定,且將可選字段、分片的字段的功能轉(zhuǎn)移到IPv6擴(kuò)展首部(或叫擴(kuò)展報(bào)頭、擴(kuò)展包頭)中。這就極大地精簡(jiǎn)了IPv6的報(bào)文結(jié)構(gòu),更多的功能通過(guò)添加不同的擴(kuò)展首部來(lái)實(shí)現(xiàn)。IPv6的報(bào)文格式如表4-4所示,IPv4的報(bào)文格式如表4-5所示。
3.實(shí)現(xiàn)自動(dòng)配置和前綴重新編址在IPv6網(wǎng)絡(luò)環(huán)境中,路由器會(huì)給終端設(shè)備通告自身接口的前綴信息;終端設(shè)備通過(guò)IPv6前綴,再通過(guò)計(jì)算生成接口標(biāo)識(shí)就可以為自己生成一個(gè)可用的IPv6地址,同時(shí)還會(huì)將該地址作為自己的默認(rèn)網(wǎng)關(guān)。就算這時(shí)需要將已經(jīng)獲得IPv6地址的終端設(shè)備移動(dòng)到另一個(gè)網(wǎng)段的網(wǎng)絡(luò)接入,那終端設(shè)備也可以通過(guò)上述過(guò)程自動(dòng)更改自己的IPv6地址。
4.支持層次化網(wǎng)絡(luò)結(jié)構(gòu)IPv6不再像IPv4一樣按照A、B、C等分類來(lái)劃分地址,而是按照IANA、RIR、ISP這樣的順序來(lái)分配。IANA是國(guó)際互聯(lián)網(wǎng)號(hào)碼分配機(jī)構(gòu),RIR是區(qū)域互聯(lián)網(wǎng)注冊(cè)管理機(jī)構(gòu),ISP是一些運(yùn)營(yíng)商(例如電信、移動(dòng)、聯(lián)通)。IANA會(huì)給五個(gè)RIR(我們所在區(qū)域的機(jī)構(gòu)是APNIC(亞太網(wǎng)絡(luò)信息中心))合理分配IPv6地址,然后五個(gè)RIR再向區(qū)域內(nèi)的國(guó)家合理分配地址,每個(gè)國(guó)家分配到的地址再交給ISP運(yùn)營(yíng)商,然后運(yùn)營(yíng)商再來(lái)合理地給用戶分配資源。在這個(gè)分配過(guò)程中將能夠盡力避免出現(xiàn)網(wǎng)絡(luò)地址子網(wǎng)不連續(xù)的情況,這樣可以更好地聚合路由,減少骨干網(wǎng)絡(luò)上的路由條目。5.更好地支持QoSIPv6支持QoS(QualityofService),意味著可以確保重要的數(shù)據(jù)獲得更好的服務(wù)質(zhì)量。6.原生支持端到端的安全I(xiàn)Pv6的擴(kuò)展首部中有認(rèn)證首部、封裝安全凈載首部,這兩個(gè)首部是IPSec定義的。通過(guò)這兩個(gè)首部,網(wǎng)絡(luò)層自己就可以實(shí)現(xiàn)端到端的安全通信,而無(wú)須像IPv4協(xié)議一樣需要其他協(xié)議的幫助。4.7.2IPv6地址
IPv6地址總共有128位。為了便于人工閱讀和輸入,和IPv4地址一樣,IPv6地址也可以用一串字符表示。IPv6地址使用十六進(jìn)制形式表示,IPv6地址劃分成8塊,每塊16位,塊與塊之間用“:”隔開(kāi)。1.IPv6地址化簡(jiǎn)(1)多個(gè)連續(xù)的全0地址可以化簡(jiǎn)為“::”。(2)一個(gè)IPv6地址中只能出現(xiàn)一個(gè)“::”。這里無(wú)明確規(guī)定,所以刪除全0地址長(zhǎng)度。(3)“::”可以出現(xiàn)在地址開(kāi)頭或者結(jié)尾,也可以出現(xiàn)在中間。IPv6地址化簡(jiǎn)如表4-6所示?;?jiǎn)前化簡(jiǎn)后ABCD:0000:2345:0000:ABCD:0000:2345:0000ABCD:0:2345:0:ABCD:0:2345:0ABCD:EF01:0:0:0:0:0:6789ABCD:EF01::6789ABCD:0:0:0:ABCD:0:0:6789ABCD::ABCD:0:0:6789ABCD:0:0:6789:ABCD:0:0:6789ABCD::6789:ABCD:0:0:67890:0:0:0:0:0:0:1::12001:0:0:0:0:0:0:02001::表4-6
IPv6地址化簡(jiǎn)2.IPv6地址類型IPv6地址整體上分為三類:?jiǎn)尾サ刂贰⒍嗖サ刂?、任播地址。單播地址:一個(gè)單播地址對(duì)應(yīng)一個(gè)接口,發(fā)往單播地址的數(shù)據(jù)報(bào)會(huì)被對(duì)應(yīng)的接口接收。多播地址:一個(gè)多播地址對(duì)應(yīng)一組接口,發(fā)往多播地址的數(shù)據(jù)報(bào)會(huì)被這組的所有接口接收。任播地址:IPv6增加的一種類型。任播的終點(diǎn)是一組計(jì)算機(jī),但數(shù)據(jù)報(bào)在交付時(shí)只交付其中的一個(gè),通常是按照路由算法得出的距離最近的那個(gè)。4.7.3IPv4向IPv6過(guò)渡
雖然IPv4目前仍是主流協(xié)議,但隨著時(shí)間的推移以及技術(shù)的發(fā)展,IPv6終會(huì)取代IPv4,但這不是一蹴而就的,需要經(jīng)歷一個(gè)漫長(zhǎng)的過(guò)程。因此,人們也研究出了IPv4向IPv6過(guò)渡的方法。1.雙協(xié)議棧雙協(xié)議棧(DualStack)是指在完全過(guò)渡到IPv6之前,使一部分主機(jī)(或路由器)裝有兩個(gè)協(xié)議棧:IPv4和IPv6。雙協(xié)議棧主機(jī)在和IPv6主機(jī)通信時(shí)采用IPv6地址,而和IPv4主機(jī)通信時(shí)就采用IPv4地址。它用域名系統(tǒng)DNS來(lái)查詢。若DNS返回的是IPv4地址,則雙協(xié)議棧的源主機(jī)就使用IPv4地址。若DNS返回的是IPv6地址,源主機(jī)就使用IPv6地址。其實(shí)相當(dāng)于是多了一種選擇,既能接受IPv4,也能接受IPv6。2.隧道技術(shù)在IPv6數(shù)據(jù)報(bào)要進(jìn)入IPv4網(wǎng)絡(luò)時(shí),將IPv6數(shù)據(jù)報(bào)封裝成IPv4數(shù)據(jù)報(bào)(整個(gè)IPv6數(shù)據(jù)報(bào)變成了IPv4數(shù)據(jù)報(bào)的數(shù)據(jù)部分)。然后,IPv6數(shù)據(jù)報(bào)就在IPv4網(wǎng)絡(luò)的隧道中傳輸,當(dāng)IPv4數(shù)據(jù)報(bào)離開(kāi)IPv4網(wǎng)絡(luò)中的隧道時(shí)再把數(shù)據(jù)部分(即原來(lái)的IPv6數(shù)據(jù)報(bào))交給主機(jī)的IPv6協(xié)議棧。IPv6會(huì)慢慢成為主流協(xié)議,但這個(gè)過(guò)程會(huì)是一個(gè)緩慢的過(guò)程,IPv6會(huì)一點(diǎn)點(diǎn)擴(kuò)大自己的勢(shì)力范圍。在這漫長(zhǎng)的歲月里,NAT技術(shù)會(huì)繼續(xù)存在,既用于NAT44,也用于NAT64,這樣就可以保證IPv4的主機(jī)與IPv6通信。這個(gè)過(guò)程可以概括為“兼容并蓄、蠶食市場(chǎng)、取而代之”。網(wǎng)絡(luò)地址轉(zhuǎn)換(NetworkAddressTranslation,NAT)方法是在1994年提出的。這種方法需要在專用網(wǎng)連接到互聯(lián)網(wǎng)的路由器上安裝NAT軟件。裝有NAT軟件的路由器叫作NAT路由器,它至少有一個(gè)有效的外部全球IP地址。這樣,所有使用本地地址的主機(jī)在和外界通信時(shí),都要在NAT路由器上將其本地地址轉(zhuǎn)換成全球IP地址,才能和互聯(lián)網(wǎng)連接。使用網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)技術(shù),可以在專用網(wǎng)內(nèi)部使用專用IP地址,而僅在連接到互聯(lián)網(wǎng)的路由器上使用全球IP地址。這樣就節(jié)約了IP地址。4.8
網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)4.8.1NAT的三種類型NAT有三種類型:靜態(tài)地址NAT(StaticNAT)、動(dòng)態(tài)地址NAT(PooledNAT)、網(wǎng)絡(luò)地址與端口號(hào)轉(zhuǎn)換NAPT(Port-LevelNAT)。其中,NAPT把內(nèi)部地址映射到外部網(wǎng)絡(luò)的一個(gè)IP地址的不同端口上。它可以將中小型的網(wǎng)絡(luò)隱藏在一個(gè)合法的IP地址后面。NAPT與動(dòng)態(tài)地址NAT不同,它將內(nèi)部連接映射到外部網(wǎng)絡(luò)中的一個(gè)單獨(dú)的IP地址上,同時(shí)在該地址上加上一個(gè)由NAT設(shè)備選定的端口號(hào)。在內(nèi)部主機(jī)與外部主機(jī)通信時(shí),在NAT路由器上發(fā)生了兩次地址轉(zhuǎn)換。(1)離開(kāi)專用網(wǎng)時(shí):替換源地址,將內(nèi)部地址替換為全球地址。(2)進(jìn)入專用網(wǎng)時(shí):替換目的地址,將全球地址替換為內(nèi)部地址。4.8.2NAT的特性1.優(yōu)點(diǎn)(1)NAT允許企業(yè)內(nèi)部網(wǎng)使用私有地址,并通過(guò)設(shè)置合法的地址集,使內(nèi)部網(wǎng)可以與互聯(lián)網(wǎng)進(jìn)行通信,從而節(jié)省合法注冊(cè)地址。(2)NAT可以減少規(guī)劃地址時(shí)發(fā)生的地址重疊情況。(3)NAT增強(qiáng)了內(nèi)部網(wǎng)與公用網(wǎng)絡(luò)連接時(shí)的靈活性。(4)NAT支持地址重疊。2.缺點(diǎn)(1)NAT會(huì)使延遲增大。(2)NAT增加了配置和排錯(cuò)的復(fù)雜性。(3)NAT也可能會(huì)使某些需要使用內(nèi)嵌IP地址的應(yīng)用不能正常工作,因?yàn)樗[藏了端到端的IP地址。4.8.3NAPTNAPT(NetworkAddressPortTranslation,網(wǎng)絡(luò)地址與端口號(hào)轉(zhuǎn)換)可將多個(gè)內(nèi)部地址映射為一個(gè)合法公網(wǎng)地址,但以不同的協(xié)議端口號(hào)與不同的內(nèi)部地址相對(duì)應(yīng),也就是<內(nèi)部地址+內(nèi)部端口>與<外部地址+外部端口>之間的轉(zhuǎn)換。NAPT普遍用于接入設(shè)備中,它可以將中小型的網(wǎng)絡(luò)隱藏在一個(gè)合法的IP地址后面。NAPT也被稱為“多對(duì)一”的NAT,或者叫PAT(PortAddressTranslation,端口地址轉(zhuǎn)換)、地址超載(AddressOverloading)。NAPT算得上是一種較流行的NAT變體,通過(guò)轉(zhuǎn)換TCP或UDP協(xié)議端口號(hào)以及地址來(lái)提供并發(fā)性。除了一對(duì)源IP地址和目的IP地址,還包括一對(duì)源協(xié)議端口號(hào)和目的協(xié)議端口號(hào),以及NAT使用的一個(gè)協(xié)議端口號(hào)。NAPT的主要優(yōu)勢(shì)在于,能夠使用一個(gè)全球有效IP地址來(lái)獲得通用性;主要缺點(diǎn)在于其通信僅限于TCP或UDP。當(dāng)所有通信都采用TCP或UDP時(shí),NAPT允許一臺(tái)內(nèi)部計(jì)算機(jī)訪問(wèn)多臺(tái)外部計(jì)算機(jī),并允許多臺(tái)內(nèi)部計(jì)算機(jī)訪問(wèn)同一臺(tái)外部計(jì)算機(jī),相互之間不會(huì)發(fā)生沖突。4.8.4NAT的應(yīng)用NAT主要可以實(shí)現(xiàn)以下幾個(gè)功能:數(shù)據(jù)包偽裝、負(fù)載均衡、端口轉(zhuǎn)發(fā)和透明代理。數(shù)據(jù)包偽裝:可以將內(nèi)網(wǎng)數(shù)據(jù)包中的地址信息更改成統(tǒng)一的對(duì)外地址信息,不讓內(nèi)網(wǎng)主機(jī)直接暴露在互聯(lián)網(wǎng)上,保證內(nèi)網(wǎng)主機(jī)的安全。同時(shí),該功能也常用來(lái)實(shí)現(xiàn)共享上網(wǎng)。例如,內(nèi)網(wǎng)主機(jī)訪問(wèn)外網(wǎng)時(shí),為了隱藏內(nèi)網(wǎng)拓?fù)浣Y(jié)構(gòu),使用全局地址替換私有地址。負(fù)載均衡:目的地址轉(zhuǎn)換NAT可以重定向一些服務(wù)器的連接到其他隨機(jī)選定的服務(wù)器上。端口轉(zhuǎn)發(fā):當(dāng)內(nèi)網(wǎng)主機(jī)對(duì)外提供服務(wù)時(shí),由于使用的是內(nèi)部私有IP地址,外網(wǎng)無(wú)法直接訪問(wèn)。因此,需要在網(wǎng)關(guān)上進(jìn)行端口轉(zhuǎn)發(fā),將特定服務(wù)的數(shù)據(jù)包轉(zhuǎn)發(fā)給內(nèi)網(wǎng)主機(jī)。透明代理:如自己架設(shè)的服務(wù)器空間不足,需要將某些鏈接指向存在另外一臺(tái)服務(wù)器的空間;或者某臺(tái)計(jì)算機(jī)上沒(méi)有安裝IIS服務(wù),但是卻想讓網(wǎng)友訪問(wèn)該臺(tái)計(jì)算機(jī)上的內(nèi)容,這個(gè)時(shí)候利用IIS的Web站點(diǎn)重定向即可輕松地搞定。由于IP地址的緊缺,一個(gè)機(jī)構(gòu)能夠申請(qǐng)到的IP地址數(shù)往往遠(yuǎn)小于本機(jī)構(gòu)所擁有的主機(jī)數(shù)??紤]到互聯(lián)網(wǎng)并不很安全,一個(gè)機(jī)構(gòu)也并不需要把所有的主機(jī)都接入外部的互聯(lián)網(wǎng)。如果一個(gè)機(jī)構(gòu)內(nèi)部的計(jì)算機(jī)通信也采用TCP/IP協(xié)議,那么這些僅在機(jī)構(gòu)內(nèi)部使用的計(jì)算機(jī)就可以由本機(jī)構(gòu)自行分配其IP地址。利用公用的互聯(lián)網(wǎng)作為本機(jī)構(gòu)各專用網(wǎng)之間的通信載體,這樣的專用網(wǎng)又稱為虛擬專用網(wǎng)(VirtualPrivateNetwork,VPN)。VPN內(nèi)部使用互聯(lián)網(wǎng)的專用地址。一個(gè)VPN至少要有一個(gè)路由器具有合法的全球IP地址,這樣才能和本系統(tǒng)的另一個(gè)VPN通過(guò)互聯(lián)網(wǎng)進(jìn)行通信。所有通過(guò)互聯(lián)網(wǎng)傳送的數(shù)據(jù)都必須加密。4.9
虛擬專用網(wǎng)(VPN)4.9.1VPN的工作原理在VPN網(wǎng)關(guān)對(duì)數(shù)據(jù)包進(jìn)行處理時(shí),有兩個(gè)參數(shù)對(duì)于VPN通信十分重要:原始數(shù)據(jù)包的目標(biāo)地址(VPN目標(biāo)地址)和遠(yuǎn)程VPN網(wǎng)關(guān)地址。根據(jù)VPN目標(biāo)地址、VPN網(wǎng)關(guān)地址能夠判斷對(duì)哪些數(shù)據(jù)包進(jìn)行VPN處理,對(duì)于不需要處理的數(shù)據(jù)包通常情況下可直接轉(zhuǎn)發(fā)到上級(jí)路由;遠(yuǎn)程VPN網(wǎng)關(guān)地址則指定了處理后的VPN數(shù)據(jù)包發(fā)送的目標(biāo)地址,即VPN隧道的另一端VPN網(wǎng)關(guān)地址。由于網(wǎng)絡(luò)通信是雙向的,在進(jìn)行VPN通信時(shí),隧道兩端的VPN網(wǎng)關(guān)都必須知道VPN目標(biāo)地址和與此對(duì)應(yīng)的遠(yuǎn)端VPN網(wǎng)關(guān)地址。4.9.2VPN的工作過(guò)程VPN的工作過(guò)程如下:(1)要保護(hù)主機(jī)發(fā)送明文信息到其他VPN設(shè)備。(2)VPN設(shè)備根據(jù)網(wǎng)絡(luò)管理員設(shè)置的規(guī)則,確定對(duì)數(shù)據(jù)進(jìn)行加密還是直接傳輸。(3)對(duì)需要加密的數(shù)據(jù),VPN設(shè)備將其整個(gè)數(shù)據(jù)包(包括要傳輸?shù)臄?shù)據(jù)、源IP地址和目的lP地址)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 沿街門店衛(wèi)生三包制度
- 前廳部衛(wèi)生工作管理制度
- 幼兒園衛(wèi)生與隔離制度
- 幼兒園食堂倉(cāng)庫(kù)衛(wèi)生制度
- 鄉(xiāng)村少年宮財(cái)務(wù)制度
- 資產(chǎn)減值準(zhǔn)備財(cái)務(wù)制度
- 小學(xué)衛(wèi)生管理各種制度
- 幼兒園廚房用水衛(wèi)生制度
- 人事行政單位財(cái)務(wù)制度
- 農(nóng)村環(huán)境衛(wèi)生督導(dǎo)制度
- 道路工程檢測(cè)培訓(xùn)大綱
- 鋰離子電池用再生黑粉編制說(shuō)明
- (正式版)DB61∕T 5033-2022 《居住建筑節(jié)能設(shè)計(jì)標(biāo)準(zhǔn)》
- 公路工程質(zhì)量風(fēng)險(xiǎn)識(shí)別及控制措施
- 2025年育嬰師三級(jí)試題及答案
- 2025年陜西省中考數(shù)學(xué)試題【含答案、解析】
- 民間敘事理論建構(gòu)-洞察及研究
- 征地拆遷部管理制度
- 2025至2030年中國(guó)機(jī)器人關(guān)節(jié)模組行業(yè)市場(chǎng)競(jìng)爭(zhēng)態(tài)勢(shì)及前景戰(zhàn)略研判報(bào)告
- 水箱清洗服務(wù)合同范本
- TCQAE11011-2019軟件工程造價(jià)評(píng)估指南
評(píng)論
0/150
提交評(píng)論