- 計算機網(wǎng)絡(luò)原理與應(yīng)用(第2版)
- 王艷淼 袁禮 王黎主編
- 3379字
- 2020-06-30 17:11:09
2.4 網(wǎng)絡(luò)層
數(shù)據(jù)鏈路層主要研究和解決的是相鄰兩節(jié)點間的通信問題,實現(xiàn)的任務(wù)是兩節(jié)點間透明地傳輸信息幀。數(shù)據(jù)鏈路層不能解決由多條鏈路組成的兩主機之間通路的數(shù)據(jù)傳輸問題,因為兩主機間的通路多由多條鏈路組成,涉及路由選擇和流量控制問題;跨網(wǎng)傳輸時還會出現(xiàn)網(wǎng)絡(luò)互聯(lián)問題,而這些問題在網(wǎng)絡(luò)層可以得到解決。
2.4.1 網(wǎng)絡(luò)層的功能
網(wǎng)絡(luò)層是OSI參考模型的第3層,介于傳輸層和數(shù)據(jù)鏈路層之間。網(wǎng)絡(luò)層又稱為通信子網(wǎng)層,是通信子網(wǎng)的最高層,其主要功能是控制通信子網(wǎng)的工作,實現(xiàn)網(wǎng)絡(luò)節(jié)點之間穿越通信子網(wǎng)的數(shù)據(jù)傳輸。網(wǎng)絡(luò)層數(shù)據(jù)的傳輸單位是分組。網(wǎng)絡(luò)層主要的任務(wù)是選擇合適的路徑,把分組從源端傳送到目的端,提供的是端到端的服務(wù)。
網(wǎng)絡(luò)層的主要功能有以下幾項。
①建立、維持和拆除網(wǎng)絡(luò)連接兩終端用戶之間的通路是由一個或多個通信子網(wǎng)的多條鏈路串聯(lián)而成,還涉及虛電路連接的建立、維持和拆除。
②組包/拆包。它規(guī)定分組的類型和具體格式。在發(fā)送系統(tǒng)中將傳輸層傳遞過來的長的數(shù)據(jù)信息拆分為若干個分組,在接收系統(tǒng)端將各分組原來加上的分組頭/尾等控制信息拆掉(即拆包),組合成報文送至上層。
③路由選擇。它又叫路徑選擇,是根據(jù)一定的原則和路由選擇算法,在多節(jié)點的通信子網(wǎng)中選擇一條從源節(jié)點到目的節(jié)點的最佳路徑。最佳路徑是相對而言的,一般是選擇時延小、路徑短、中間節(jié)點少的路徑作為最佳路徑。
④擁塞控制。網(wǎng)絡(luò)層的擁塞控制是對整個通信子網(wǎng)內(nèi)的流量進行控制,對進入分組交換網(wǎng)的流量進行控制。
網(wǎng)絡(luò)層向上層可提供兩類服務(wù),即無連接的網(wǎng)絡(luò)服務(wù)和面向連接的網(wǎng)絡(luò)服務(wù)。無連接的網(wǎng)絡(luò)服務(wù)是不可靠的,而面向連接的網(wǎng)絡(luò)服務(wù)是可靠的。在網(wǎng)絡(luò)層中,這兩種服務(wù)的具體實現(xiàn)是數(shù)據(jù)報服務(wù)和虛電路服務(wù)。
典型的網(wǎng)絡(luò)層協(xié)議是CCITT X.25,它是用于公用數(shù)據(jù)網(wǎng)的分組交換(包交換)協(xié)議,另一個常用的網(wǎng)絡(luò)層協(xié)議是TCP/IP中的IP協(xié)議。
2.4.2 路由選擇算法
任何IP網(wǎng)絡(luò)最重要的一項功能就是路由。路由是發(fā)現(xiàn)、比較、選擇通過網(wǎng)絡(luò)到達任何目的IP地址的路徑的過程。在一個通信子網(wǎng)中,網(wǎng)絡(luò)源節(jié)點到目的節(jié)點可有多條傳輸路徑。網(wǎng)絡(luò)節(jié)點在收到一個分組后,要確定向下一節(jié)點傳送的路徑,這就是路由選擇。路由的核心是路由協(xié)議。路由協(xié)議的核心是路由算法。路由算法是指確定路由選擇的策略。
路由算法的目的就是找出源節(jié)點到目的節(jié)點的最佳路徑。最佳路徑就是兩個節(jié)點所有可能路由中具有最小度量值的那條路徑。常用的度量值包括路徑長度、可靠性或可用性、傳輸時延、帶寬、負(fù)載、通信成本。如果一個站點想與另一個并未與之直接連接的站點通信,網(wǎng)絡(luò)協(xié)議必須找出一條路徑來連接它們。通常根據(jù)通過每條路徑發(fā)送信息所需的費用和時間的比較來最終確定哪條路徑。這種比較是相當(dāng)復(fù)雜的。小型網(wǎng)絡(luò)中可通過人工計算完成,但對于大型網(wǎng)絡(luò)則必須用軟件來計算完成。
路由算法分為以下兩種。
(1)靜態(tài)路由算法。路由器只在啟動時計算和設(shè)置路由,此后路由不再改變或者路由改變很慢,通常只有在人的干涉下才能發(fā)生改變,即由管理員手動改變路由表。
①靜態(tài)路由選擇策略:靜態(tài)路由選擇策略不用測量也無須利用網(wǎng)絡(luò)信息,這種策略按某種固定規(guī)則進行路由選擇,其中還可分為泛射路由選擇、固定路由選擇和隨機路由選擇3種算法。
②靜態(tài)路由的優(yōu)點:可以使網(wǎng)絡(luò)更安全,只有一條流進和流出網(wǎng)絡(luò)的路徑(除非定義多條靜態(tài)路由);可以更有效地利用資源,它幾乎不占用傳輸帶寬,不使用路由器上的CPU來計算路由,需要的存儲器也很少。
③靜態(tài)路由的缺點:在網(wǎng)絡(luò)發(fā)生問題或拓?fù)浣Y(jié)構(gòu)發(fā)生變化時,網(wǎng)絡(luò)管理員負(fù)責(zé)手動適應(yīng)這種變化。只適用于小型網(wǎng)絡(luò)。
(2)動態(tài)路由算法。路由器在啟動時只建立一個初始路由,當(dāng)網(wǎng)絡(luò)變化時隨時更新,路由動態(tài)地發(fā)生改變。除了網(wǎng)絡(luò)發(fā)生改變外,當(dāng)發(fā)生路由循環(huán)或是路由振動時,路由也會隨之發(fā)生改變。動態(tài)路由也稱為自適應(yīng)路由。
動態(tài)路由選擇策略:節(jié)點的路由選擇要依靠網(wǎng)絡(luò)當(dāng)前的狀態(tài)信息來決定的策略稱為動態(tài)路由選擇策略,這種策略能較好地適應(yīng)網(wǎng)絡(luò)流量、拓?fù)浣Y(jié)構(gòu)的變化,有利于改善網(wǎng)絡(luò)的性能。
根據(jù)算法是全局的還是分散的,又將動態(tài)路由算法分為全局路由算法(Global Routing Algorithm)和分散路由算法(Decentralized Routing Algorithm)。
①全局路由算法要求每一個節(jié)點都必須獲悉網(wǎng)絡(luò)中所有連接情況以及每條鏈路的信息、權(quán)值和開銷等。通常情況下,全局路由算法是指鏈路狀態(tài)算法(Link State Algorithms),在這種算法中,初始輸入值必須包括網(wǎng)絡(luò)中所有鏈路的信息。
②采用分散路由算法的每個路由僅僅知道與它相連的鏈路信息,而不是像全局路由算法那樣,每個節(jié)點都必須獲悉網(wǎng)絡(luò)中所有的連接情況以及每條鏈路的權(quán)值。通常情況下,分散的路由算法是指距離矢量算法。
下面介紹幾種典型的動態(tài)路由算法。
1.Dijkstra算法
Dijkstra算法把網(wǎng)絡(luò)看成一張圖。該算法從圖中一個源點出發(fā),計算沿最短路徑到圖中其他各點的距離,在計算最短路徑的過程中構(gòu)造下一站路由表。對每個路由表都必須用算法計算一次。
2.距離矢量路由算法
距離矢量路由算法(Distance Vector Routing Algorithm)是著名的分布式路由計算算法。路由器周期性地通過網(wǎng)絡(luò)向鄰居發(fā)送路由信息,每條信息包括目的地、距離等。當(dāng)信息從鄰居到達包交換機時,路由器就檢查信息中的每一項,如果鄰居到某目的地有比原來更短的路徑,就更新路由表。算法會周期性地把自己的路由表復(fù)制傳給與其直接相連的網(wǎng)絡(luò)鄰居。每一個接收者加上一個距離向量或它自己的距離“值”到表上,并把它轉(zhuǎn)發(fā)給它的直接鄰居。這個過程在所有直接相連的路由器之間進行。這樣一步一步做下去,最后每一個路由器都得到了其他路由器的信息,最終形成一個網(wǎng)絡(luò)“距離”的積累視圖。
3.鏈路狀態(tài)路由
鏈接狀態(tài)路由也可稱為最短路徑優(yōu)先(Shortest Path First, SPF)或SPF路由(SPF Routing)。與距離矢量算法一樣,SPF算法也能適應(yīng)硬件故障的情況。而且SPF是所有計算同時進行,在鏈接狀態(tài)改變之后,所有路由器都收到該狀態(tài)信息,每個交換機都開始計算自己的路由表。SPF通過和網(wǎng)絡(luò)中的其他路由器交換鏈路狀態(tài)通告(LSA)來形成和維護網(wǎng)絡(luò)路由器的全部信息。LSA交換由網(wǎng)絡(luò)中的事件驅(qū)動,而不是周期性地進行。
SPF算法的思想是:如果要求節(jié)點1~5之間的最短路徑,節(jié)點1和5之間經(jīng)過了節(jié)點2、3、4、5。如用minC(x,y)來表示節(jié)點x到y之間的最短路徑,則minC(1,5)=minC(1,2)+minC(2,3)+minC(3,4)+minC(4,5)。
算法描述如下。
(1)置N={A},對于每個節(jié)點V∈M.A,置D(V)=C(A,V)。
(2)找出D(V)中最小值的節(jié)點W,將W加入到N。對于每一個節(jié)點V∈M.N,置D(V)=min(D(V),D(W)+C(W,V))。如果D(W)+C(W,V)<D(V),則從A到V的路徑就變成了A到W的路徑再加上W到V的鏈路的路徑。
(3)重復(fù)執(zhí)行(2),直到N中包括所有的節(jié)點,即N=M。
整個搜索算法中的符號定義如下。
●N=已知其與源節(jié)點的最優(yōu)路徑的節(jié)點的集合。
●A=源節(jié)點。
●M=所有的節(jié)點的集合。
●V=宿節(jié)點。
●D(v)=算法求得的當(dāng)前從源節(jié)點A到宿節(jié)點V的最優(yōu)路徑的代價。
●C(i,j)=節(jié)點i與j之間鄰接的鏈路的權(quán)值;若兩個節(jié)點之間無直接相連的鏈路,則等于∞。
●P(v)=算法求得的當(dāng)前從源節(jié)點A到宿節(jié)點V的最優(yōu)路徑的宿節(jié)點的前一個節(jié)點。
4.分級路由
將路由器分成自治系統(tǒng)(Autonomy System, AS),在AS內(nèi)部,路由器運行同一個路由算法(如LS或DV算法),本AS的路由器相互擁有彼此的信息,這個在AS內(nèi)部運行的路由算法稱為Inter-AS路由協(xié)議(即內(nèi)部路由協(xié)議IGP)。當(dāng)然,這些AS之間還必須能夠相互連接,這樣在每個AS之內(nèi)就有一個或多個路由器除完成內(nèi)部路由運算以外,還要承擔(dān)額外的將一些數(shù)據(jù)包送到本AS之外的目的地的任務(wù),在AS內(nèi)具有這種功能的路由器稱為網(wǎng)關(guān)路由器。為了使網(wǎng)關(guān)路由器能夠?qū)⒁粋€數(shù)據(jù)包從一個AS路由到另一個AS(這中間可能經(jīng)過很多個AS),網(wǎng)關(guān)路由器必須知道怎樣在AS之間進行路由。網(wǎng)關(guān)路由器用來實現(xiàn)在各個AS之間尋路的路由算法叫Intra-AS路由協(xié)議(即外部路由協(xié)議EGP)。
將網(wǎng)絡(luò)分為一個一個自治系統(tǒng),自治系統(tǒng)內(nèi)和自治系統(tǒng)間采取不同的路由算法,稱此為層次路由算法。在層次路由算法中將每個自治系統(tǒng)稱為一個域。
層次路由算法具有以下特點。
①所有節(jié)點被都劃分到不同的稱為域(Domain)的組中,可將域視為是分離的、獨立的網(wǎng)絡(luò)。
②同一個域中的兩個節(jié)點的路由根據(jù)此域或網(wǎng)絡(luò)的協(xié)議決定。
③每個域都有一個或多個特定的節(jié)點,稱為路由器(有時也稱為網(wǎng)關(guān)),它們決定了域間的路徑。實際上,這些路由器本身也構(gòu)成了一個網(wǎng)絡(luò)。
④如果一個域很大,它可以再由多個子域構(gòu)成。每個子域含有它自己的路由器。它們決定了在同一個域中各子域的路徑。
- EJB 3.1從入門到精通
- CorelDRAW X6 中文版圖形設(shè)計實戰(zhàn)從入門到精通
- 物聯(lián)網(wǎng)網(wǎng)絡(luò)安全及應(yīng)用
- Hands-On Chatbot Development with Alexa Skills and Amazon Lex
- 計算機網(wǎng)絡(luò)安全實訓(xùn)教程(第二版)
- 農(nóng)產(chǎn)品物聯(lián)網(wǎng)研究與應(yīng)用
- Windows Server 2003 Active Directory Design and Implementation: Creating, Migrating, and Merging Networks
- SD-WAN架構(gòu)與技術(shù)(第2版)
- 物聯(lián)網(wǎng)安全技術(shù)
- 射頻通信系統(tǒng)
- 2018網(wǎng)信發(fā)展報告
- 物聯(lián)網(wǎng)與無線傳感器網(wǎng)絡(luò)
- 數(shù)字調(diào)制解調(diào)技術(shù)的MATLAB與FPGA實現(xiàn):Altera/Verilog版(第2版)
- 深入理解Nginx:模塊開發(fā)與架構(gòu)解析
- 云工廠:開啟中國制造云時代