【筆記】謝希仁—計(jì)網(wǎng)五版:chapter four 網(wǎng)絡(luò)層(二)

五宽档、因特網(wǎng)的路由選擇協(xié)議

1.有關(guān)路由選擇協(xié)議的幾個(gè)基本概念

Ⅰ、理想的路由算法

路由表中的路由是怎樣得出的呢翩活?核心是路由算法。一個(gè)理想的路由算法要正確且完整便贵、計(jì)算簡(jiǎn)單菠镇、能適應(yīng)通信量和網(wǎng)絡(luò)拓?fù)涞淖兓⑺惴ㄒ蟹€(wěn)定性承璃、公平利耍、最佳(這里指相對(duì)于某一種特定要求下得出的較為合理的選擇)。

路由選擇是復(fù)雜的盔粹,因?yàn)樗蔷W(wǎng)絡(luò)中的所有結(jié)點(diǎn)共同協(xié)調(diào)工作的結(jié)果堂竟,而且環(huán)境一直在變,可能發(fā)生擁堵玻佩。這樣很難從網(wǎng)絡(luò)中的各結(jié)點(diǎn)獲得所需的路由選擇信息出嘹。

靜態(tài)路由選擇策略:也叫非自適應(yīng)路由選擇,簡(jiǎn)單咬崔、開(kāi)銷(xiāo)小税稼、但不能及時(shí)適應(yīng)網(wǎng)絡(luò)狀態(tài)的變化,適應(yīng)于簡(jiǎn)單的小網(wǎng)絡(luò)

動(dòng)態(tài)路由選擇策略:也叫自適應(yīng)路由選擇垮斯,能較好適應(yīng)網(wǎng)絡(luò)狀態(tài)變化郎仆,但實(shí)現(xiàn)復(fù)雜、開(kāi)銷(xiāo)大兜蠕。

Ⅱ扰肌、分層次的路由選擇協(xié)議

因特網(wǎng)采用的路由選擇協(xié)議主要是自適應(yīng)的、分布式的熊杨。分層原因:①因特網(wǎng)大曙旭,路由表大,處理起來(lái)耗時(shí)晶府;②許多單位不愿意外界了解自己?jiǎn)挝痪W(wǎng)絡(luò)的布局細(xì)節(jié)桂躏。

于是因特網(wǎng)將整個(gè)互聯(lián)網(wǎng)劃分為許多較小的自治系統(tǒng)(autonomous system),記為AS川陆。AS經(jīng)典定義是在單一技術(shù)管理下的一組路由器剂习,而這些路由器使用一種AS內(nèi)部的路由選擇協(xié)議和共同的度量以確定分組在該AS內(nèi)的路由,同時(shí)還用一種AS之間的路由選擇協(xié)議用以確定分組在AS之間的路由。一個(gè)AS對(duì)其他AS表現(xiàn)出的是一個(gè)單一的和一致的路由選擇策略鳞绕。

(1)內(nèi)部網(wǎng)關(guān)協(xié)議IGP(interior gateway protocol):與外部無(wú)關(guān)失仁,多用RIP、OSRF们何,自治系統(tǒng)之間的路由選擇也叫域內(nèi)路由選擇萄焦。

(2)外部網(wǎng)關(guān)協(xié)議EGP(external gateway protocol):若源主機(jī)和目的主機(jī)處在不同自治系統(tǒng)中(這兩個(gè)自治系統(tǒng)可使用不同的網(wǎng)關(guān)協(xié)議),當(dāng)數(shù)據(jù)報(bào)傳到一個(gè)自治系統(tǒng)的邊界時(shí)垂蜗,就需要使用一種協(xié)議將路由器選擇信息傳遞到另一個(gè)自治系統(tǒng)中楷扬,這樣的協(xié)議就是外部網(wǎng)關(guān)協(xié)議EGP。自治系統(tǒng)之間的路由選擇也叫域間路由選擇贴见。多用BGP(外界網(wǎng)關(guān)協(xié)議BGP烘苹,border gateway protocol)。

2.內(nèi)部網(wǎng)關(guān)協(xié)議RIP

Ⅰ片部、工作原理

路由信息選擇協(xié)議RIP(routing information protocol)是內(nèi)部網(wǎng)關(guān)協(xié)議IGP中最先得到廣泛使用的協(xié)議镣衡,是一種分布式的基于距離向量的路由選擇協(xié)議,是因特網(wǎng)的標(biāo)準(zhǔn)協(xié)議档悠,其最大優(yōu)點(diǎn)是簡(jiǎn)單廊鸥。

要求網(wǎng)絡(luò)中的每一個(gè)路由器都要維護(hù)從它自己到其他每一個(gè)目的網(wǎng)絡(luò)的距離記錄。從一路由器到直接連接的網(wǎng)絡(luò)的距離定義為1辖所,從一路由器到非直接連接的網(wǎng)絡(luò)的距離定義為所經(jīng)過(guò)的路由器加1惰说。也有定義:到直接連接的網(wǎng)絡(luò)的距離為0。距離也稱(chēng)跳數(shù)(hop count)缘回。

RIF協(xié)議和哪些路由器交換信息——僅和相鄰路由器交換信息

交換什么信息吆视?——交換信息是當(dāng)前本路由器所知道的全部信息,即自己的路由表酥宴。即:我到本自治系統(tǒng)中所有網(wǎng)絡(luò)的(最短)距離啦吧,以及到每個(gè)網(wǎng)絡(luò)應(yīng)經(jīng)過(guò)的下一跳路由器。

什么時(shí)候交換信息拙寡?——按固定的時(shí)間間隔交換路由信息授滓。如每隔30s,或者網(wǎng)絡(luò)拓?fù)浒l(fā)生變化時(shí)肆糕。

它主要信息是什么般堆?——到達(dá)某個(gè)網(wǎng)絡(luò)的距離(即最短距離),以及應(yīng)經(jīng)過(guò)的下一跳地址擎宝。更新原則是找到每個(gè)目的網(wǎng)絡(luò)的最短距離郁妈,這種更新算法又稱(chēng)為距離向量算法

路由器只知道直接連接的網(wǎng)絡(luò)的距離绍申,接著每一個(gè)路由器也只和數(shù)目非常有限的相鄰路由器交換并更新路由信息,這樣多次以后,所有路由器知道到達(dá)本自治系統(tǒng)中任何一個(gè)網(wǎng)絡(luò)的最短距離和下一跳路由器的地址极阅。它有點(diǎn)像市場(chǎng)里聒噪的人胃碾,但又收斂,即在自治系統(tǒng)中所有的結(jié)點(diǎn)都得到正確的路由選擇信息的過(guò)程筋搏。

Ⅱ仆百、距離向量算法

(1)對(duì)每一個(gè)相鄰路由器發(fā)送過(guò)來(lái)的RIP報(bào)文,先修改此報(bào)文中的所有項(xiàng)目:把“下一跳”字段中的地址都改為X奔脐,并把所有的“距離”字段的值加1俄周。每一個(gè)項(xiàng)目都有三個(gè)關(guān)鍵數(shù)據(jù),即:到目的網(wǎng)絡(luò)N髓迎,距離是d峦朗,下一跳路由器是X。

[這樣做原因——便于進(jìn)行本路由的更新排龄,假設(shè)從位于地址X的相鄰路由器發(fā)來(lái)的RIP報(bào)文的某一個(gè)項(xiàng)目是:“Net2波势,3,Y”橄维,意思是“我經(jīng)過(guò)路由器Y到網(wǎng)絡(luò)Net2的距離是3”尺铣,那么本路由器就可推斷出:“我經(jīng)過(guò)X到網(wǎng)絡(luò)Net2的距離應(yīng)為3+1=4”。于是争舞,本路由器就把收到的RIP報(bào)文的這一個(gè)項(xiàng)目修改為“Net2凛忿,4,X”竞川,作為下一步和路由器原有項(xiàng)目進(jìn)行比較時(shí)使用(只有比較后才知道是否需要更新)店溢。]

(2)對(duì)修改后的RIP報(bào)文中的每一個(gè)項(xiàng)目,進(jìn)行一下步驟:

若原來(lái)路由表中沒(méi)有目的網(wǎng)絡(luò)N流译,則把該項(xiàng)目添加到路由表中逞怨。

[這樣做的目的——表明這是新的目的網(wǎng)絡(luò),應(yīng)當(dāng)加入到路由器中福澡。]

否則(即在路由表中有目的網(wǎng)絡(luò)N叠赦,這時(shí)就再查看下一跳路由器地址)

若下一跳地址路由器地址是X,則把收到的項(xiàng)目替換原路由表中的項(xiàng)目革砸。

[替換的目的——這是最新的消息除秀,要以最新的消息為準(zhǔn)。到目的網(wǎng)絡(luò)的距離有可能增大或減小算利,但有可能沒(méi)有改變册踩。]

否則(即這個(gè)項(xiàng)目是:到目的網(wǎng)絡(luò)N,但下一跳路由器不是X)

若收到的項(xiàng)目中的距離d小于路由器中的距離效拭,則進(jìn)行更新暂吉。

[這樣做的目的——使距離最短]

否則什么也不做胖秒。

[這樣做的原因——若距離更大了,顯然不應(yīng)更新慕的。若距離不變阎肝,更新后得不到好處,因此也不更新肮街。]

(3)若3分鐘還沒(méi)有收到相鄰路由器的更新路由表风题,則把此相鄰路由器記為不可達(dá)的路由器,則把距離置為16(距離為16表示不可達(dá))嫉父。

(4)返回沛硅。

上述算法基礎(chǔ):Bellman-Ford算法。設(shè)X是結(jié)點(diǎn)A到B的最短路徑上的一個(gè)結(jié)點(diǎn)绕辖,若把路徑A→B拆成兩段路徑A→X和X→B摇肌,則每一段路徑A→X和X→B也都分別是結(jié)點(diǎn)A到X和結(jié)點(diǎn)X到B的最短路徑。

Ⅲ引镊、舉例

R6收到相鄰路由器R4發(fā)來(lái)的路由更新信息朦蕴,現(xiàn)在更新R6的路由表。

:如同路由器一樣弟头,我們不需要知道該網(wǎng)絡(luò)的拓?fù)浞宰ァO劝丫嚯x加1,并把下一跳路由器都改為R4赴恨,得出下表:

把這個(gè)表和a比較疹娶。第一行在a中沒(méi)有,就添加到a中伦连。第二行的Net2在表中有雨饺,且下一跳路由器也是R4,因此要更新(距離增大了)惑淳。第三行的Net3在a中有额港,但下一跳路由器不同,于是比較距離歧焦,新的路由信息的距離是2移斩,小于原來(lái)表中的4,因此要更新绢馍。這樣更新后的R6的路由表如下:

RIP協(xié)議讓一個(gè)自治系統(tǒng)中的所有路由器都和自己的相鄰路由器定期交換路由信息向瓷,并不斷更新其路由表,使得從每一個(gè)路由器到每一個(gè)目的網(wǎng)絡(luò)的路由都是最短的(即跳數(shù)最少)舰涌。這里還應(yīng)注意:雖然所有的路由器最終都擁有了整個(gè)自治系統(tǒng)的全局路由信息猖任,但由于每一個(gè)路由器的位置不同,它們的路由表當(dāng)然也是不同的瓷耙。

Ⅳ朱躺、RIP協(xié)議的報(bào)文格式

較新版本是RIF2刁赖,可支持變長(zhǎng)子網(wǎng)掩碼和CIDR,還提供簡(jiǎn)單的鑒別過(guò)程支持多播室琢。RIF2和RIF1的首部相同乾闰,但后面的路由部分不一樣落追,它使用運(yùn)輸層的用戶(hù)數(shù)據(jù)報(bào)UDP進(jìn)行傳送(使用UDP的端口520)盈滴。

解釋?zhuān)好钭侄?/b>指出報(bào)文意義,1表示請(qǐng)求路由信息轿钠,2表示對(duì)請(qǐng)求路由信息的響應(yīng)或未被請(qǐng)求而發(fā)出的路由更新報(bào)文巢钓。首部后面“必為0”是為了4字節(jié)字的對(duì)齊。地址族標(biāo)識(shí)符(又稱(chēng)為地址類(lèi)別)字段用來(lái)標(biāo)志所使用的地址協(xié)議疗垛。如采用IP地址就令這個(gè)字段的值為2(原來(lái)考慮RIP也可用于其他非TCP/IP協(xié)議的情況)症汹。路由標(biāo)記填入自治系統(tǒng)號(hào)ASN(autonomous system number),這是考慮使RIP有可能收到本自治系統(tǒng)以外的路由選擇信息贷腕。

一個(gè)報(bào)文最多可包括25個(gè)路由背镇,因而RIP報(bào)文的最大長(zhǎng)度是4+20*25=504字節(jié)。如超過(guò)泽裳,必須再用一個(gè)RIP報(bào)文來(lái)傳送瞒斩。

鑒別功能時(shí)報(bào)文怎么變?——把原來(lái)寫(xiě)入第一個(gè)路由信息(20字節(jié))的位置用作鑒別涮总,這時(shí)應(yīng)將地址族標(biāo)識(shí)符置為全1胸囱,而路由標(biāo)記寫(xiě)入鑒別類(lèi)型,剩下的16字節(jié)為鑒別數(shù)據(jù)瀑梗。在鑒別數(shù)據(jù)之后才寫(xiě)入路由信息烹笔,但這時(shí)最多只能再放入24個(gè)路由信息。

Ⅴ抛丽、評(píng)價(jià)

缺點(diǎn)——當(dāng)網(wǎng)絡(luò)出現(xiàn)故障時(shí)谤职,要經(jīng)過(guò)很長(zhǎng)時(shí)間才能將此信息傳送到所有的路由器。好消息傳播得快亿鲜,而壞消息傳播得慢允蜈。舉例如下:

在R1將“1,16,直接”傳遞到R2之前狡门,有30s陷寝,然而R2可能已經(jīng)把自己的路由表信息發(fā)送給了R1。R1收到后誤認(rèn)為R2可能到達(dá)網(wǎng)1其馏,所以把路由信息修改為“1,3凤跑,R2”,表明“我到網(wǎng)1的距離是3叛复,下一跳經(jīng)過(guò)R2”仔引,并把更新的信息發(fā)送給R2扔仓。等等。

為使壞消息傳播得更快咖耘,可以讓路由器記錄收到某特定路由信息的接口翘簇,而不讓同一路由信息再通過(guò)此接口向反方向傳送。

優(yōu)點(diǎn):實(shí)現(xiàn)簡(jiǎn)單儿倒,開(kāi)銷(xiāo)小

缺點(diǎn):①RIF限制了網(wǎng)絡(luò)的規(guī)模版保,它能使用的最大距離為15(16表示不可達(dá))

②路由器間交換的路由信息是路由器中的完整路由表,因而隨著網(wǎng)絡(luò)規(guī)模的擴(kuò)大夫否,開(kāi)銷(xiāo)也就增加彻犁。

③壞消息傳播得慢,使更新過(guò)程的收斂時(shí)間過(guò)長(zhǎng)凰慈。

3.內(nèi)部網(wǎng)關(guān)協(xié)議OSPF

Ⅰ汞幢、OSPF協(xié)議的基本特點(diǎn)

名字:最短路徑優(yōu)先OSPF(open shortest path first),使用了Dijkstra提出的最短路徑算法SPF微谓。它不表示其他的路由選擇協(xié)議不是“最短路徑優(yōu)先”森篷。實(shí)際上,所有自治系統(tǒng)內(nèi)部使用的路由選擇協(xié)議(包括RIF協(xié)議)都是要尋找一條最短的路徑豺型。

最主要特征——使用分布式的鏈路狀態(tài)協(xié)議(link state protocol)仲智,而不是像RIF那樣的距離向量協(xié)議。

和RIP相比的特點(diǎn):

如何發(fā)送信息触创?——向本自治系統(tǒng)中所有路由器發(fā)送信息坎藐。這里用洪泛法,路由器通過(guò)所有輸出端口向所有相鄰的路由器發(fā)送信息哼绑,而每一個(gè)相鄰路由器又將此信息發(fā)往其所有的相鄰路由器(但不再發(fā)送給剛剛發(fā)來(lái)信息的那個(gè)路由器)岩馍。這樣,最終整個(gè)區(qū)域中所有的路由器都得到了這個(gè)信息的一個(gè)副本抖韩。而RIP只是向自己相鄰的幾個(gè)路由器發(fā)送信息蛀恩。

發(fā)送什么信息?——與本路由器相鄰的所有路由器的鏈路狀態(tài)茂浮,但這只是路由器所知道的部分信息双谆。所謂“鏈路狀態(tài)”就是說(shuō)明本路由器都和哪些路由器相鄰,以及該鏈路的“度量”(表示費(fèi)用席揽、距離顽馋、時(shí)延、帶寬等)幌羞。

什么時(shí)候發(fā)送信息寸谜?——當(dāng)鏈路狀態(tài)發(fā)生變化時(shí),而RIP是定期交換路由表的信息属桦。它優(yōu)點(diǎn)是更新過(guò)程收斂得快熊痴。

各路由器頻繁交換鏈路狀態(tài)信息他爸,所以所有的路由器最終都能建立一個(gè)鏈路狀態(tài)數(shù)據(jù)庫(kù)(link-state database),這個(gè)數(shù)據(jù)庫(kù)實(shí)際上就是全網(wǎng)的拓?fù)浣Y(jié)構(gòu)圖果善,這個(gè)拓?fù)浣Y(jié)構(gòu)圖在全網(wǎng)范圍內(nèi)是一致的(這稱(chēng)為鏈路狀態(tài)數(shù)據(jù)庫(kù)的同步)诊笤,于是每個(gè)路由器都能使用鏈路狀態(tài)數(shù)據(jù)庫(kù)中的數(shù)據(jù),構(gòu)造出自己的路由表(使用Dijkstra的最短路徑路由算法)巾陕。而RIP協(xié)議的每一個(gè)路由只知道所有網(wǎng)絡(luò)的距離以及下一跳路由器讨跟,但卻不知道全網(wǎng)的拓?fù)浣Y(jié)構(gòu)

Ⅱ惜论、劃分區(qū)域

劃分原因:為使OSPF能夠用于規(guī)模更大的網(wǎng)絡(luò)许赃,它將一個(gè)自治系統(tǒng)再劃分為若干個(gè)更小的范圍,叫作區(qū)域馆类。每個(gè)區(qū)域都有一個(gè)32位的區(qū)域標(biāo)識(shí)符(點(diǎn)分十進(jìn)制表示)。一個(gè)區(qū)域不要太大弹谁,在一個(gè)區(qū)域內(nèi)的路由器最好不超過(guò)200個(gè)乾巧。

區(qū)域內(nèi)部通信——利用洪泛法交換鏈路狀態(tài)信息的范圍局限于每一個(gè)區(qū)域而不是整個(gè)的自治網(wǎng)絡(luò),這樣大大減少了通信量预愤。一個(gè)區(qū)域內(nèi)的路由器只知道本區(qū)域的完整網(wǎng)絡(luò)拓?fù)涔涤冢恢榔渌麉^(qū)域的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。

區(qū)域間如何通信植康?——OSPF使用層次結(jié)構(gòu)的區(qū)域劃分旷太。上層的區(qū)域叫作主干區(qū)域(backhome area),主干區(qū)域的標(biāo)識(shí)符規(guī)定為0.0.0.0销睁,它是用來(lái)連通其他在下層的區(qū)域供璧,從其他區(qū)域來(lái)的信息都由區(qū)域邊界路由器進(jìn)行概括,R3冻记,R4睡毒,R7都是區(qū)域邊界路由器。每一個(gè)區(qū)域至少有一個(gè)區(qū)域邊界路由器冗栗。主干區(qū)域內(nèi)的路由器叫作主干路由器演顾,如R3,R4隅居,R5钠至,R6,R7胎源。一個(gè)主干路由器可以同時(shí)是區(qū)域邊界路由器棉钧。在主干路由器內(nèi)還要有一個(gè)路由器專(zhuān)門(mén)和本自治系統(tǒng)外的其他自治系統(tǒng)交換路由信息。這樣的路由器叫作自治系統(tǒng)邊界路由器(如R6)乒融。

區(qū)域劃分優(yōu)點(diǎn)掰盘?——使交換信息的種類(lèi)增多了摄悯,但協(xié)議復(fù)雜了。每一個(gè)區(qū)域內(nèi)部交換路由信息的通信量大大減小愧捕,這樣使OSPF協(xié)議能夠用于規(guī)模很大的自治系統(tǒng)中奢驯。

Ⅲ、OSPF直接用IP數(shù)據(jù)報(bào)傳送(而不是UDP)

原因——構(gòu)成的數(shù)據(jù)報(bào)很短次绘,能減少路由信息的通信量瘪阁。還不必將長(zhǎng)的數(shù)據(jù)報(bào)分片傳送,分片傳送的數(shù)據(jù)報(bào)只要丟失一個(gè)邮偎,就無(wú)法組裝成原來(lái)的數(shù)據(jù)報(bào)管跺,而真?zhèn)€數(shù)據(jù)報(bào)就必須重傳。

版本:當(dāng)前版本號(hào)是2禾进。

類(lèi)型:五種類(lèi)型分組中的一種但荤。

分組長(zhǎng)度:包括OSPF首部在內(nèi)的分組長(zhǎng)度,以字節(jié)為單位雀哨。

路由器標(biāo)識(shí)符:標(biāo)志發(fā)送該分組的路由器的接口的IP地址头谜。

區(qū)域標(biāo)識(shí)符:分組屬于的區(qū)域的標(biāo)識(shí)符。

檢驗(yàn)和:用來(lái)檢測(cè)分組中的差錯(cuò)宠纯。

鑒別類(lèi)型:目前只有兩種卸夕,0(不用)和1(口令)。

鑒別:類(lèi)型為0時(shí)就填入0婆瓜,為1時(shí)就填入8個(gè)字符的口令快集。

OSPF的其他特點(diǎn):

①靈活性:對(duì)不同的鏈路可根據(jù)IP分組的不同服務(wù)類(lèi)型(TOS)而設(shè)置成不同的代價(jià),它對(duì)于不同類(lèi)型的業(yè)務(wù)可計(jì)算出不同的路由廉白。這是RIP沒(méi)有的个初。

②負(fù)載平衡:如果到同一個(gè)目的網(wǎng)絡(luò)有多條相同代價(jià)的路徑,那么可以將通信量分配給這幾條路徑蒙秒。在代價(jià)相同的多條路徑上分配通信量是通信量工程中的簡(jiǎn)單形式勃黍。而RIP只能找到某個(gè)網(wǎng)絡(luò)的一條路徑。

③所有OSPF路由器之間交換的分組都具有鑒別的功能晕讲,因而保證了僅在可信賴(lài)的路由器之間交換鏈路狀態(tài)信息覆获。

④支持可變長(zhǎng)度的子網(wǎng)劃分和無(wú)分類(lèi)的編址CIDR。

⑤由于網(wǎng)絡(luò)中的鏈路狀態(tài)可能經(jīng)常發(fā)生變化瓢省,因此OSPF讓每一個(gè)鏈路狀態(tài)都帶上一個(gè)32位的序號(hào)弄息,序號(hào)越大狀態(tài)就越新。

Ⅳ勤婚、OSPF的五種分組類(lèi)型

類(lèi)型一:?jiǎn)柡颍╤ello)分組摹量。用來(lái)發(fā)現(xiàn)和維持鄰站的可達(dá)性

類(lèi)型二:數(shù)據(jù)庫(kù)描述(database description)分組。向鄰站給出自己的鏈路狀態(tài)數(shù)據(jù)庫(kù)中的所有鏈路狀態(tài)項(xiàng)目的摘要信息。

類(lèi)型三:鏈路狀態(tài)請(qǐng)求(link state request)分組缨称。向?qū)Ψ秸?qǐng)求發(fā)送某些鏈路狀態(tài)項(xiàng)目的詳細(xì)信息凝果。

類(lèi)型四:鏈路狀態(tài)更新(link state update)分組。用洪泛法對(duì)全網(wǎng)更新鏈路狀態(tài)睦尽。這種分組復(fù)雜器净、核心。路由器用這種分組將其鏈路狀態(tài)通知給鄰站当凡。共有五種不同的鏈路狀態(tài)山害。

類(lèi)型五:鏈路狀態(tài)確認(rèn)(link state acknowledgment)分組。對(duì)鏈路更新分組的確認(rèn)沿量。

問(wèn)候分組的用處——OSPF規(guī)定每?jī)蓚€(gè)相鄰路由器每隔10秒鐘要交換一次問(wèn)候分組浪慌,這樣就能確知哪些鄰站是可達(dá)的。只有可達(dá)才能將鄰站的鏈路狀態(tài)信息存入鏈路狀態(tài)數(shù)據(jù)庫(kù)朴则。若有40秒未收到鄰路由器發(fā)來(lái)的問(wèn)候分組权纤,則認(rèn)為該鄰站是不可達(dá)的,應(yīng)立即修改鏈路狀態(tài)數(shù)據(jù)庫(kù)佛掖,并重新計(jì)算路由表妖碉。

其他四種分組都是用來(lái)進(jìn)行鏈路狀態(tài)數(shù)據(jù)庫(kù)的同步同步是指不同路由器的鏈路狀態(tài)數(shù)據(jù)庫(kù)的內(nèi)容是一樣的芥被。兩個(gè)同步的路由器叫作“完全鄰接的”(fully adjacent)路由器。不是完全鄰接的路由器表明它們雖然在物理上是相鄰的坐榆,但其鏈路狀態(tài)數(shù)據(jù)庫(kù)并沒(méi)有達(dá)到一致拴魄。

其他四種分組用來(lái)進(jìn)行鏈路狀態(tài)數(shù)據(jù)庫(kù)同步的原因?

①一個(gè)路由器開(kāi)始工作時(shí)席镀,它只能通過(guò)問(wèn)候分組得知它有哪些相鄰的路由器在工作匹中,以及將數(shù)據(jù)發(fā)往相鄰路由器所需的“代價(jià)”。如果所有路由器都把自己的本地鏈路狀態(tài)信息對(duì)全網(wǎng)進(jìn)行廣播豪诲,那么各路由器只要將這些鏈路狀態(tài)信息綜合起來(lái)就可得出鏈路狀態(tài)數(shù)據(jù)庫(kù)顶捷。但這樣開(kāi)銷(xiāo)太大。

②所以屎篱,OSPF讓每一個(gè)路由器用數(shù)據(jù)庫(kù)描述分組和相鄰路由器交換本數(shù)據(jù)庫(kù)中已有的鏈路狀態(tài)摘要信息服赎。摘要信息主要就是指出有哪些路由器的鏈路狀態(tài)信息已經(jīng)寫(xiě)入了數(shù)據(jù)庫(kù)。經(jīng)過(guò)與相鄰路由器交換數(shù)據(jù)庫(kù)描述分組后交播,路由器就使用鏈路狀態(tài)請(qǐng)求分組重虑,向?qū)Ψ秸?qǐng)求發(fā)送自己所缺少的某些鏈路狀態(tài)項(xiàng)目的詳細(xì)信息。通過(guò)一系列的這種分組交換秦士,全網(wǎng)同步的數(shù)據(jù)鏈路數(shù)據(jù)庫(kù)就建立了缺厉。

在網(wǎng)絡(luò)運(yùn)行的過(guò)程中,只要一個(gè)路由器的鏈路狀態(tài)發(fā)生變化,該路由器就要使用鏈路狀態(tài)更新分組提针,用洪泛法向全網(wǎng)更新鏈路狀態(tài)命爬。OSPF用的是可靠的洪泛法。如下圖辐脖,小箭頭表示更新分組饲宛,空心箭頭表示確認(rèn)分組。

?為確保鏈路狀態(tài)數(shù)據(jù)庫(kù)與全網(wǎng)的狀態(tài)保持一致揖曾,OSPF還規(guī)定每隔一段時(shí)間落萎,如30分鐘,要刷新一次數(shù)據(jù)庫(kù)中的鏈路狀態(tài)炭剪。

由于一個(gè)路由器的鏈路狀態(tài)只涉及到與相鄰路由器的連通狀態(tài)练链,因而與整個(gè)互聯(lián)網(wǎng)的規(guī)模并無(wú)直接關(guān)系。因此當(dāng)互聯(lián)網(wǎng)規(guī)模很大時(shí)奴拦,OSPF協(xié)議要比距離向量協(xié)議RIP好很多媒鼓。它也沒(méi)有“壞消息傳播得慢”的問(wèn)題。

若N個(gè)路由器連接在一個(gè)以太網(wǎng)上错妖,則每個(gè)路由器要向其他(N—1)個(gè)路由器發(fā)送鏈路狀態(tài)信息绿鸣,因而共有(N—1)^2個(gè)鏈路狀態(tài)要在這個(gè)以太網(wǎng)上傳送。OSPF協(xié)議對(duì)這種多點(diǎn)接入的局域網(wǎng)采用了指定的路由器的方法暂氯,使廣播的信息量大大減少潮模。指定的路由器代表該局域網(wǎng)上所有的鏈路向連接到該網(wǎng)絡(luò)上的各路由器發(fā)送狀態(tài)信息

4.外部網(wǎng)關(guān)協(xié)議BGP

Ⅰ痴施、背景

BGP是不同AS的路由器之間交換路由信息的協(xié)議擎厢。那不同AS之間的路由選擇為什么不用內(nèi)部網(wǎng)關(guān)協(xié)議?

內(nèi)部網(wǎng)關(guān)協(xié)議主要是設(shè)法使數(shù)據(jù)報(bào)在一個(gè)AS中盡可能有效地從源站傳送到目的站辣吃。在一個(gè)AS內(nèi)部也不需要考慮其他方面的策略动遭。然而B(niǎo)GP使用的環(huán)境卻不同。這是因?yàn)椋?/p>

①因特網(wǎng)的規(guī)模太大神得,使得AS之間路由選擇非常困難厘惦。

原因有兩點(diǎn),一點(diǎn)是連接在因特網(wǎng)主干上的路由器哩簿,必須對(duì)任何有效的IP地址都能在路由表中找到匹配目的的網(wǎng)絡(luò)宵蕉。而主干路由器中,一個(gè)路由器的項(xiàng)目數(shù)早已超過(guò)了5萬(wàn)個(gè)網(wǎng)絡(luò)前綴卡骂。如果使用鏈路狀態(tài)協(xié)議国裳,則每一個(gè)路由器必須維持一個(gè)河大的鏈路狀態(tài)數(shù)據(jù)庫(kù)。對(duì)于這樣大的主干網(wǎng)用Dijkstra算法計(jì)算最短路徑時(shí)花費(fèi)的時(shí)間也太長(zhǎng)全跨。

另一點(diǎn)是缝左,AS各自運(yùn)行自己選定的內(nèi)部路由選擇協(xié)議,并使用本AS指明的路徑度量,因此渺杉,當(dāng)一條路徑通過(guò)幾個(gè)不同AS時(shí)蛇数,要想對(duì)這樣的路徑計(jì)算出有意義的代價(jià)是不太可能的。比如是越,對(duì)某AS來(lái)說(shuō)耳舅,代價(jià)為1000可能表示一條比較長(zhǎng)的路由,但對(duì)另一AS代價(jià)為1000卻不可能表示不可接受的壞路由倚评。因此浦徊,對(duì)于AS之間的路由選擇,要用“代價(jià)”作為度量來(lái)尋找最佳路由也是很不現(xiàn)實(shí)的天梧。比較合理的做法是在AS之間交換“可達(dá)性”信息盔性。例如,告訴相鄰路由器:“到達(dá)目的網(wǎng)絡(luò)N可經(jīng)過(guò)ASx”呢岗。

②AS之間的路由選擇必須考慮有關(guān)政策冕香。

比如AS1要發(fā)數(shù)據(jù)報(bào)給AS2,本來(lái)最好是經(jīng)過(guò)AS3后豫,但是AS3不愿意讓這些數(shù)據(jù)報(bào)經(jīng)過(guò)本AS的網(wǎng)絡(luò)悉尾。又比如,僅在到達(dá)某些地址時(shí)才經(jīng)過(guò)ASx挫酿。

于是构眯,邊界網(wǎng)關(guān)協(xié)議BGP只能是力求尋找一條能夠到達(dá)目的網(wǎng)絡(luò)且比較好的路由(不能兜圈子),而并非要尋找一條最佳路由早龟。BGP采用了路徑向量(path ?vector)路由選擇協(xié)議鸵赖,它與距離向量協(xié)議和鏈路狀態(tài)選擇協(xié)議都有很大區(qū)別。

Ⅱ拄衰、路徑向量選擇協(xié)議

在配置BGP時(shí),每一個(gè)AS的管理員要選擇至少一個(gè)路由器作為該AS的“BGP發(fā)言人”饵骨。一般說(shuō)來(lái)翘悉,兩個(gè)BGP發(fā)言人是通過(guò)一個(gè)共享網(wǎng)絡(luò)連接在一起的,而B(niǎo)GP發(fā)言人往往就是BGP邊界路由器居触,但也可以不是BGP邊界路由器妖混。

一個(gè)BGP發(fā)言人與其他AS的BGP發(fā)言人要交換路由信息,就要先建立TCP連接轮洋,然后在此連接上交換BGP報(bào)文以建立BGP會(huì)話(huà)(session)制市,利用BGP會(huì)話(huà)交換路由信息,如增加了新的路由弊予,或撤銷(xiāo)過(guò)時(shí)的路由祥楣,以及報(bào)告出差錯(cuò)的情況等等。使用TCP連接能提供可靠的服務(wù),也簡(jiǎn)化了路由選擇協(xié)議误褪。使用TCP連接交換路由信息的兩個(gè)BGP發(fā)言人责鳍,彼此成為對(duì)方的鄰站(neighbor)或?qū)Φ日荆╬eer)。每一個(gè)BGP發(fā)言人除了必須運(yùn)行BGP協(xié)議外兽间,還必須運(yùn)行該AS所使用的內(nèi)部網(wǎng)關(guān)協(xié)議历葛,如OSPF或RIP。

BGP所交換的網(wǎng)絡(luò)可達(dá)性的信息就是要到達(dá)某個(gè)網(wǎng)絡(luò)(用網(wǎng)絡(luò)前綴表示)所要經(jīng)過(guò)的一系列AS嘀略。當(dāng)BGP發(fā)言人互相交換了網(wǎng)絡(luò)可達(dá)性的信息后恤溶,各BGP發(fā)言人就根據(jù)所采用的策略從收到的路由信息中找出到達(dá)各AS的較好路由。下圖是上圖AS1上的一個(gè)BGP發(fā)言人構(gòu)造出的AS連通圖帜羊,它是樹(shù)形結(jié)構(gòu)咒程,不存在回路。

因特網(wǎng)的多級(jí)結(jié)構(gòu)的網(wǎng)絡(luò)拓?fù)錄Q定了BGP路由選擇協(xié)議的特點(diǎn)逮壁。看下圖孵坚,自治系統(tǒng)AS2的BGP發(fā)言人通知主干網(wǎng)的BGP發(fā)言人:“要到達(dá)網(wǎng)絡(luò)N1,N2窥淆,N3和N4卖宠,可經(jīng)過(guò)AS2∮欠梗”主干網(wǎng)在收到這個(gè)通知后扛伍,就發(fā)出通知:“要到達(dá)網(wǎng)絡(luò)N1,N2词裤,N3和N4可沿路徑(AS1刺洒,AS2)『鹕埃”同理逆航,主干網(wǎng)還可以發(fā)出通知:“要到達(dá)網(wǎng)絡(luò)N5,N6和N7可沿路徑(AS1渔肩,AS3)因俐。”

從上面的討論可以看出周偎,BGP協(xié)議交換路由信息的結(jié)點(diǎn)數(shù)量級(jí)是自治系統(tǒng)AS數(shù)的量級(jí)抹剩,這要比這些AS中的網(wǎng)絡(luò)數(shù)少很多。要在許多AS之間尋找一條較好的路徑蓉坎,就是要尋找正確的BGP發(fā)言人(或邊界路由器)澳眷,而在每一個(gè)AS中BGP發(fā)言人(或邊界路由器)的數(shù)目是很少的。這就使得AS之間的路由選擇不致過(guò)分復(fù)雜蛉艾。

BGP支持CIDR钳踊,因此BGP的路由表也就應(yīng)當(dāng)包括目的網(wǎng)絡(luò)前綴衷敌、下一跳路由器,以及到達(dá)該目的網(wǎng)絡(luò)所要經(jīng)過(guò)的AS序列箍土。由于使用了路徑向量的信息逢享,就可以很容易地避免產(chǎn)生兜圈子的理由。如果一個(gè)BGP發(fā)言人收到了其他BGP發(fā)言人發(fā)來(lái)的路徑通知吴藻,它就要檢查一下本AS是否在此通知的路徑中瞒爬。如果在這條路徑中,就不能采用這條路徑(因?yàn)闀?huì)兜圈子)沟堡。

在BGP剛剛運(yùn)行時(shí)侧但,BGP的鄰站是交換整個(gè)的BGP路由表。但以后只需要在發(fā)生變化時(shí)更新有變化的部分航罗。這樣做對(duì)節(jié)省網(wǎng)絡(luò)帶寬和減少路由器的處理開(kāi)銷(xiāo)方面都有好處禀横。

BGP—4的四種報(bào)文:OPEN(打開(kāi))報(bào)文,用來(lái)與相鄰的另一個(gè)BGP發(fā)言人建立關(guān)系粥血,使通信初始化柏锄。UPDATE(更新)報(bào)文,用來(lái)通告某一路由的信息复亏,以及列出要撤銷(xiāo)的多條路由趾娃。KEEPALIVE(保活報(bào)文)缔御,用來(lái)周期性地證實(shí)鄰站的連通性抬闷。NOTIFICATION(通知報(bào)文),用來(lái)發(fā)送檢測(cè)到的差錯(cuò)耕突。

若兩個(gè)鄰站屬于兩個(gè)不同AS笤成,而其中一個(gè)鄰站打算和另一個(gè)鄰站定期地交換路由信息,這就應(yīng)當(dāng)有一個(gè)商談的過(guò)程(因?yàn)楹芸赡軐?duì)方路由器的負(fù)荷已很重因而不愿意再加重負(fù)擔(dān))眷茁。因此炕泳,一開(kāi)始向鄰站進(jìn)行商談時(shí)就必須發(fā)送OPEN報(bào)文。如果鄰站接收這種鄰站關(guān)系上祈,就用KEEPALIVE報(bào)文響應(yīng)喊崖。這樣,兩個(gè)BGP發(fā)言人的鄰站關(guān)系就建立了雇逞。

一旦鄰站關(guān)系建立了,就要繼續(xù)維持這種關(guān)系茁裙。雙方中的每一方都要確信對(duì)方是存在的塘砸,且一直在保持這種鄰站關(guān)系。為此晤锥,這兩個(gè)BGP發(fā)言人彼此要周期性地交換KEEPALIVE報(bào)文(一般每隔30秒)掉蔬。KEEPALIVE報(bào)文只有19字節(jié)長(zhǎng)(只用BGP報(bào)文的首部)廊宪,因此不會(huì)造成網(wǎng)絡(luò)上太大的開(kāi)銷(xiāo)。

UPDATE報(bào)文是BGP協(xié)議的核心內(nèi)容女轿。BGP發(fā)言人可以用UPDATE報(bào)文撤銷(xiāo)它以前曾經(jīng)通知過(guò)的路由箭启,也可以宣布增加新的路由。撤銷(xiāo)路由可以一次撤銷(xiāo)許多條蛉迹,但增加新路由時(shí)傅寡,每個(gè)更新報(bào)文只能增加一條。

BGP可以很容易解決距離向量路由選擇算法中的“壞消息傳播得慢”這一問(wèn)題北救。當(dāng)某個(gè)路由器或鏈路出故障時(shí)荐操,由于BGP發(fā)言人可以從不止一個(gè)鄰站獲得路由信息,因此很容易選出新的路由珍策。距離向量算法往往不能給出正確的選擇托启,是因?yàn)檫@些算法不能指出哪些鄰站到目的站的路由是獨(dú)立的。

Ⅲ攘宙、BGP報(bào)文的格式

通用首部分:

標(biāo)記字段——鑒別收到的BGP報(bào)文(假定將來(lái)會(huì)有人發(fā)明出合理的鑒別方案)屯耸,當(dāng)不使用鑒別時(shí),標(biāo)記字段要置為全1蹭劈。

長(zhǎng)度字段——指出包括通用首部在內(nèi)的整個(gè)BGP報(bào)文以字節(jié)為單位的長(zhǎng)度疗绣,最小值是19,最大值是4096链方。

類(lèi)型字段——值為1到4持痰,分別對(duì)應(yīng)于上述四種BGP報(bào)文中的一種。

OPEN報(bào)文:

共6字段祟蚀,即版本(1字節(jié)工窍,現(xiàn)在的值是4)、本自治系統(tǒng)號(hào)(2字節(jié)前酿,使用全球唯一的16為自治系統(tǒng)號(hào))患雏、保持時(shí)間(2字節(jié),以秒計(jì)算的保持為鄰站關(guān)系的時(shí)間)罢维、BGP標(biāo)識(shí)符(4字節(jié)淹仑,通常就是該路由器的IP地址)、可選參數(shù)長(zhǎng)度(1字節(jié))和可選參數(shù)肺孵。

UPDATE報(bào)文:

共有5個(gè)字段匀借,即不可行路由長(zhǎng)度(2字節(jié),指明下一個(gè)字段的長(zhǎng)度)平窘、撤銷(xiāo)的路由(列出所有要撤銷(xiāo)的路由)吓肋、路徑屬性總長(zhǎng)度(2字節(jié),指明下一個(gè)字段的長(zhǎng)度)瑰艘、路徑屬性(定義在這個(gè)報(bào)文中增加的路徑的屬性)和網(wǎng)絡(luò)層可達(dá)性信息NLRI(network layer reachability information)是鬼。最后這個(gè)字段定義發(fā)出此報(bào)文的網(wǎng)絡(luò)肤舞,包括網(wǎng)絡(luò)前綴的位數(shù)、IP地址前綴均蜜。

KEEPALIVE報(bào)文:

只有BGP的19字節(jié)長(zhǎng)的通用首部

NOTIFICATION報(bào)文:

有3個(gè)字段李剖,即差錯(cuò)代碼(1字節(jié))、差錯(cuò)子代碼(1字節(jié))和差錯(cuò)數(shù)據(jù)(給出有關(guān)差錯(cuò)的診斷信息)囤耳。

5.路由器的構(gòu)成

Ⅰ篙顺、路由器的結(jié)構(gòu)、查找轉(zhuǎn)發(fā)表紫皇、轉(zhuǎn)發(fā)分組

是一種具有多個(gè)輸入端口和多個(gè)輸出端口的專(zhuān)用計(jì)算機(jī)慰安,其任務(wù)是轉(zhuǎn)發(fā)分組。

整個(gè)路由器結(jié)構(gòu)可劃分為兩大部分:路由選擇部分和分組轉(zhuǎn)發(fā)部分聪铺。

路由選擇部分:

也叫控制部分化焕,核心構(gòu)件是路由選擇處理機(jī),其任務(wù)是根據(jù)所選定的路由選擇協(xié)議構(gòu)造出路由表铃剔,同時(shí)經(jīng)橙鼋埃或定期地和相鄰路由器交換路由信息而不斷地更新和維護(hù)路由表。(如何根據(jù)路由選擇協(xié)議和更新路由表键兜?)

分組轉(zhuǎn)發(fā)部分:

由三部分組成:交換結(jié)構(gòu)凤类、一組輸入端口和一組輸出端口(端口指硬件接口)。

交換結(jié)構(gòu)——switching fabric普气,又稱(chēng)交換組織谜疤,作用是根據(jù)轉(zhuǎn)發(fā)表(forwarding table)對(duì)分組進(jìn)行處理,將某個(gè)輸入端口進(jìn)入的分組從一個(gè)合適的輸出端口轉(zhuǎn)發(fā)出去现诀。它本身是網(wǎng)絡(luò)夷磕,但又包含在路由器中,所以叫“路由器中的網(wǎng)絡(luò)”仔沿。

轉(zhuǎn)發(fā)和路由選擇區(qū)別——“轉(zhuǎn)發(fā)”就是路由器根據(jù)轉(zhuǎn)發(fā)表把收到的IP數(shù)據(jù)報(bào)從路由器合適的端口轉(zhuǎn)發(fā)出去坐桩,只涉及到一個(gè)路由器。但“路由選擇”則涉及到很多路由器封锉,路由表則是許多路由器協(xié)同工作的結(jié)果绵跷。這些路由器按照復(fù)雜的路由算法,得出整個(gè)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)變化情況成福,因而能夠動(dòng)態(tài)地改變所選擇的路由碾局,并由此構(gòu)造出整個(gè)的路由表。路由表一般僅包含從目的網(wǎng)絡(luò)到下一跳(用IP地址表示奴艾,后面寫(xiě))的映射擦俐,而轉(zhuǎn)發(fā)表是從路由表中得出的。轉(zhuǎn)發(fā)表包含完成轉(zhuǎn)發(fā)功能所必須的信息握侧。這就是說(shuō)蚯瞧,在轉(zhuǎn)發(fā)表的每一行必須包含從要到達(dá)的目的網(wǎng)絡(luò)到輸出端口和某些MAC地址信息(如下一跳的以太網(wǎng)地址)的映射。將轉(zhuǎn)發(fā)表和路由表用不同的數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)會(huì)帶來(lái)一些好處品擎,這是因?yàn)樵谵D(zhuǎn)發(fā)分組時(shí)埋合,轉(zhuǎn)發(fā)表的結(jié)構(gòu)應(yīng)當(dāng)使查找過(guò)程最優(yōu)化,但路由表則需要對(duì)網(wǎng)絡(luò)拓?fù)渥兓挠?jì)算最優(yōu)化萄传。路由表總是用軟件實(shí)現(xiàn)的甚颂,但轉(zhuǎn)發(fā)表可以由特殊的硬件來(lái)實(shí)現(xiàn)。注意:在討論路由選擇原理時(shí)秀菱,往往不去區(qū)分轉(zhuǎn)發(fā)表和路由表的區(qū)別振诬,而可以籠統(tǒng)地都使用路由表這一名詞。

輸入輸出端口——有三個(gè)方框衍菱,1赶么、2、3分別代表物理層脊串、數(shù)據(jù)鏈路層辫呻、網(wǎng)絡(luò)層的處理模塊。物理層進(jìn)行比特幣的接收琼锋。數(shù)據(jù)鏈路層則按照鏈路層協(xié)議接收傳送分組的幀放闺。在把幀的首部和尾部剝?nèi)ズ螅纸M就被送入網(wǎng)絡(luò)層的處理模塊缕坎。若接收到的分組是路由器之間交換路由信息的分組(如RIP或OSPF分組等)怖侦,則把這種分組送交路由器的路由選擇部分中的路由選擇處理機(jī)。若收到的是數(shù)據(jù)分組谜叹,則按照分組首部中的目的地址查找轉(zhuǎn)發(fā)表匾寝,根據(jù)得出的結(jié)果,分組就經(jīng)過(guò)交換結(jié)構(gòu)到達(dá)合適的輸出端口叉谜。一個(gè)路由器的輸入端口和輸出端口就做在路由器的線(xiàn)路接口卡上旗吁。

輸入端口中的查找和轉(zhuǎn)發(fā)功能在路由器的交換功能中是最重要的。為了使交換功能分散化停局,往往把復(fù)制的轉(zhuǎn)發(fā)表放在每一個(gè)輸入端口中(如上圖中的虛線(xiàn)箭頭)很钓。路由選擇處理機(jī)負(fù)責(zé)對(duì)各轉(zhuǎn)發(fā)表的副本進(jìn)行更新。這些副本稱(chēng)為“影子副本”(shadow copy)董栽。分散化交換可以避免在路由器中的某一點(diǎn)上出現(xiàn)瓶頸码倦。

Ⅱ、查找轉(zhuǎn)發(fā)表和轉(zhuǎn)發(fā)分組實(shí)現(xiàn)中的困難

上述已介紹了查找轉(zhuǎn)發(fā)表和轉(zhuǎn)發(fā)分組的概念锭碳。問(wèn)題就在于路由器必須以很高的速率轉(zhuǎn)發(fā)分組袁稽,最理想的情況就是輸入端口的處理速率能夠跟上線(xiàn)路把分組傳送到路由器的速率。這種速率稱(chēng)為線(xiàn)速(line speed或wire speed)擒抛。重點(diǎn)在于提高轉(zhuǎn)發(fā)表的速率推汽。

看下圖补疑,輸出端口從交換結(jié)構(gòu)接收分組,然后把它們發(fā)送到路由器外面的線(xiàn)路上歹撒。在網(wǎng)絡(luò)層的處理模塊中設(shè)有一個(gè)緩沖區(qū)莲组,實(shí)際上它就是一個(gè)隊(duì)列。當(dāng)交換結(jié)構(gòu)傳送過(guò)來(lái)的分組速率超過(guò)輸出鏈路的發(fā)送速率時(shí)暖夭,來(lái)不及發(fā)送的分組就必須暫時(shí)存放在這個(gè)隊(duì)列中锹杈。數(shù)據(jù)鏈路層處理模塊把分組加上鏈路層的首部和尾部,交給物理層后發(fā)送到外部線(xiàn)路迈着。

若分組處理的速率趕不上分組進(jìn)入隊(duì)列的速率竭望,則隊(duì)列的存儲(chǔ)空間最終必定減少到零,這就使后面再進(jìn)入隊(duì)列的分組由于沒(méi)有存儲(chǔ)空間而只能被丟棄裕菠。以前我們提到過(guò)的分組丟失就是發(fā)生在路由器中的輸入或輸出隊(duì)列產(chǎn)生溢出的時(shí)候咬清。當(dāng)然,設(shè)備或線(xiàn)路出故障也可能使分組丟失糕韧。

Ⅲ枫振、交換結(jié)構(gòu)

作用:將分組從一個(gè)輸入端口轉(zhuǎn)移到某個(gè)合適的輸出端口。

下面介紹三種常用的交換方法萤彩,它們都是將輸入端口I1收到的分組轉(zhuǎn)發(fā)到輸出端口O2粪滤。

(a)通過(guò)存儲(chǔ)器

最早使用的路由器就是利用普通的計(jì)算機(jī),用計(jì)算機(jī)的CPU作為路由器的路由選擇處理機(jī)雀扶。路由器的輸入和輸出端口的功能和傳統(tǒng)的操作系統(tǒng)中的I/O設(shè)備一樣杖小。當(dāng)路由器的某個(gè)輸入端口收到一個(gè)分組時(shí),就用中斷方式通知路由選擇處理機(jī)愚墓。然后分組就從輸入端口復(fù)制到存儲(chǔ)器中予权。路由器處理機(jī)從分組首部提取目的地址,查找路由表浪册,再將分組復(fù)制到合適的輸出端口的緩存中扫腺。若存儲(chǔ)器的帶寬(讀或?qū)懀槊棵隡個(gè)分組,那么路由器的交換速率(即分組從輸入端口傳送到輸出端口的速率)一定小于M/2村象。這是因?yàn)榇鎯?chǔ)器對(duì)分組的讀和寫(xiě)需要花費(fèi)的時(shí)間是同一個(gè)數(shù)量級(jí)笆环。

圖中,分組通過(guò)存儲(chǔ)器進(jìn)行交換厚者。與早期的路由器的區(qū)別就是躁劣,目的地址的查找和分組在存儲(chǔ)器中的緩存都是在輸入端口中進(jìn)行的

(b)通過(guò)總線(xiàn)

數(shù)據(jù)報(bào)從輸入端口通過(guò)共享的總線(xiàn)直接傳送到合適的輸出端口库菲,而不需要路由選擇處理機(jī)的干預(yù)账忘。但是,由于總線(xiàn)是共享的,因此在同一時(shí)間之能有一個(gè)分組在總線(xiàn)上傳送鳖擒。當(dāng)分組到達(dá)輸入端口時(shí)若發(fā)現(xiàn)總線(xiàn)忙(因?yàn)榭偩€(xiàn)正在傳送另一個(gè)分組)溉浙,則被阻塞而不能通過(guò)交換結(jié)構(gòu),并在輸入端口排隊(duì)等待蒋荚。因?yàn)槊恳粋€(gè)要轉(zhuǎn)發(fā)的分組都要通過(guò)這一條總線(xiàn)放航,因此路由器的轉(zhuǎn)發(fā)帶寬就受總線(xiàn)速率的限制。

(c)通過(guò)互連網(wǎng)絡(luò)

它有2N條總線(xiàn)圆裕,可以使N個(gè)輸入端口和N個(gè)輸出端口相連接,這取決于相應(yīng)的交叉結(jié)點(diǎn)是使水平總線(xiàn)和垂直總線(xiàn)連通還是斷開(kāi)荆几。當(dāng)輸入端口收到一個(gè)分組時(shí)吓妆,就將它發(fā)送到與該輸入端口相連的水平總線(xiàn)上辰妙。若通向所要轉(zhuǎn)發(fā)的輸出端口的垂直總線(xiàn)是空閑的镊辕,則在這個(gè)結(jié)點(diǎn)將垂直總線(xiàn)與水平總線(xiàn)連通澎蛛,然后將該分組轉(zhuǎn)發(fā)到這個(gè)輸出端口澳泵。但若該垂直總線(xiàn)已被占用(有另一個(gè)分組正在轉(zhuǎn)發(fā)到同一個(gè)輸出端口)裂逐,則后到達(dá)的分組就被阻塞宙暇,必須在輸入端口排隊(duì)儒洛。

六鞍恢、IP多播

1.IP多播的概念

圖a是視頻服務(wù)器用單播方式向90個(gè)主機(jī)傳送同樣的視頻節(jié)目房维。為此沼瘫,需要發(fā)送90個(gè)單播,即同一個(gè)視頻分組要發(fā)送90個(gè)副本咙俩。路由器R1在轉(zhuǎn)發(fā)分組時(shí)耿戚,需要把收到的分組復(fù)制成3個(gè)副本,分別向R2阿趁、R3膜蛔、R4各轉(zhuǎn)發(fā)1個(gè)副本。當(dāng)分組到達(dá)目的局域網(wǎng)時(shí)脖阵,由于局域網(wǎng)具有硬件多播功能皂股,因此不需要復(fù)制分組,在局域網(wǎng)上的多播組成員都能收到這個(gè)視頻分組命黔。

圖b是視頻服務(wù)器用多播方式向同一個(gè)多播組的90個(gè)成員傳送節(jié)目呜呐。這時(shí),視頻服務(wù)器只需把視頻分組當(dāng)做多播數(shù)據(jù)報(bào)來(lái)發(fā)送纷铣,并且只需發(fā)送一次卵史。主機(jī)很大時(shí),能減輕網(wǎng)絡(luò)中各種資源的消耗搜立。在因特網(wǎng)范圍的多播要靠路由器來(lái)實(shí)現(xiàn)以躯,這些路由器必須增加一些能夠識(shí)別多播數(shù)據(jù)報(bào)的軟件。能夠運(yùn)行多播協(xié)議的路由器稱(chēng)為多播路由器(multicast router)。多播路由器當(dāng)然也可以轉(zhuǎn)發(fā)普通的單播IP數(shù)據(jù)報(bào)忧设。

在因特網(wǎng)上進(jìn)行多播就叫做IP多播刁标。IP多播所傳送的分組需要使用多播IP地址,而一個(gè)主機(jī)有唯一的IP地址址晕。如果某個(gè)主機(jī)想接受某個(gè)特定多播組的分組膀懈,那么怎么才能使這個(gè)多播數(shù)據(jù)報(bào)傳送到這個(gè)主機(jī)?

顯然谨垃,這個(gè)多播數(shù)據(jù)報(bào)的目的地址一定不能寫(xiě)入這個(gè)主機(jī)的IP地址启搂。這是因?yàn)樵谕粫r(shí)間可能有成千上萬(wàn)個(gè)主機(jī)加入到同一個(gè)多播組。多播數(shù)據(jù)報(bào)不可能在其首部寫(xiě)入這樣多的主機(jī)的IP地址刘陶。在多播數(shù)據(jù)報(bào)的目的地址寫(xiě)入的是多播組的標(biāo)識(shí)符胳赌,然后設(shè)法讓加入到這個(gè)多播組的主機(jī)的IP地址與多播組的標(biāo)識(shí)符關(guān)聯(lián)起來(lái)。

其實(shí)多播組的標(biāo)識(shí)符就是IP地址中的D類(lèi)地址匙隔,我們用每一個(gè)D類(lèi)地址標(biāo)識(shí)一個(gè)多播組疑苫。它是“盡最大努力交付”,不保證一定能夠交付給多播組內(nèi)的所有成員纷责。因此捍掺,多播數(shù)據(jù)報(bào)和一般的IP數(shù)據(jù)報(bào)的區(qū)別就是它使用D類(lèi)IP地址作為目的地址,并且首部中的協(xié)議字段值是2再膳,表明使用IGMP協(xié)議挺勿。

顯然,多播地址只能用于目的地址饵史,而不能用于源地址满钟。此外,對(duì)多播數(shù)據(jù)報(bào)不產(chǎn)生ICMP差錯(cuò)報(bào)文胳喷。因此湃番,若在PING命令后面鍵入多播地址,將永遠(yuǎn)不會(huì)收到響應(yīng)吭露。

D類(lèi)地址中有一些不能隨意使用吠撮,因?yàn)橛械牡刂芬呀?jīng)被IANA指派為永久組地址了。

IP多播可分為兩種讲竿,一種是只在本局域網(wǎng)上進(jìn)行硬件多播泥兰,另一種則是在因特網(wǎng)的范圍進(jìn)行多播。前一種比較簡(jiǎn)單题禀,但很重要鞋诗,因?yàn)楝F(xiàn)在大部分主機(jī)都是通過(guò)局域網(wǎng)接入因特網(wǎng)的。在因特網(wǎng)上進(jìn)行多播的最后階段迈嘹,還是要把多播數(shù)據(jù)報(bào)在局域網(wǎng)上用硬件多播交付給多播組的所有成員(看圖b)削彬。下面討論硬件多播全庸。

2.在局域網(wǎng)上進(jìn)行硬件多播

因特網(wǎng)號(hào)碼指派局IANA擁有的以太網(wǎng)地址塊的高24位為00-00-5E,因此TCP/IP協(xié)議使用的以太網(wǎng)多播地址塊的范圍是從00-00-5E-00-00-00到00-00-5E-FF-FF-FF融痛。在3.4.3講過(guò)壶笼,以太網(wǎng)硬件地址字段中的第1字節(jié)的最低位為1時(shí)即為多播地址,這種多播地址數(shù)占IANA分配到的地址數(shù)的一半雁刷。因此IANA擁有的以太網(wǎng)多播地址的范圍是從01-00-5E-00-00-00到01-00-5E-7F-FF-FF覆劈。不難看出,在每一個(gè)地址中沛励,只有23位可用作多播责语。這只能和D類(lèi)IP地址中的23位有一一對(duì)應(yīng)的關(guān)系。D類(lèi)IP地址可供分配的有28位目派,可見(jiàn)在這28位中的前5位不能用來(lái)構(gòu)成以太網(wǎng)硬件地址鹦筹。由于多播IP地址與以太網(wǎng)硬件地址的映射關(guān)系不是唯一的,因此收到多播數(shù)據(jù)報(bào)的主機(jī)址貌,還要在IP層利用軟件進(jìn)行過(guò)濾,把不是本主機(jī)要接收的數(shù)據(jù)報(bào)丟棄徘键。

下面討論IP多播所需要的協(xié)議练对。

3.網(wǎng)際組管理協(xié)議IGMP和多播路由選擇協(xié)議

Ⅰ、IP多播需要兩種協(xié)議

看下圖吹害,標(biāo)有IP地址的四個(gè)主機(jī)都參加了一個(gè)多播組螟凭,其組地址是226.15.37.123。顯然它呀,多播數(shù)據(jù)報(bào)應(yīng)當(dāng)傳送到路由器R1螺男,R2,R3纵穿,而不應(yīng)當(dāng)傳送到R4下隧,因?yàn)榕cR4連接的局域網(wǎng)上現(xiàn)在沒(méi)有這個(gè)多播組的成員。但這些路由器又怎樣知道多播組的成員信息呢谓媒?這需要網(wǎng)際組管理協(xié)議IGMP(internet group management protocol)淆院。

IGMP并非在因特網(wǎng)范圍內(nèi)對(duì)所有多播組成員進(jìn)行管理的協(xié)議,它不知道IP多播組包含的成員數(shù)句惯,也不知道這些成員都分布在哪些網(wǎng)絡(luò)上土辩。它是讓連接在本地局域網(wǎng)上的多播路由器知道本局域網(wǎng)上是否有主機(jī)(嚴(yán)格講,是主機(jī)上的某個(gè)進(jìn)程)參加或退出了某個(gè)多播組抢野。

顯然拷淘,僅有IGMP協(xié)議是不能完成多播任務(wù)的,連接在局域網(wǎng)上的多播路由器還必須和因特網(wǎng)上的其他多播路由器協(xié)同工作指孤,以便把多播數(shù)據(jù)報(bào)用最小代價(jià)傳送給所有的組成員启涯。這就需要使用多播路由選擇協(xié)議。它比單播路由選擇協(xié)議復(fù)雜得多。

舉例:看上圖逝嚎,多播組①的成員有主機(jī)A扁瓢,B,C补君,多播組②的成員有主機(jī)D引几,E,F(xiàn)挽铁。這些主機(jī)分布在三個(gè)網(wǎng)絡(luò)N1伟桅、N2、N3上叽掘。

路由器R不應(yīng)當(dāng)向網(wǎng)絡(luò)N3轉(zhuǎn)發(fā)多播組①的分組楣铁,因?yàn)榫W(wǎng)絡(luò)N3上沒(méi)有多播組①的成員。但是每一個(gè)主機(jī)可以隨時(shí)加入或離開(kāi)一個(gè)分組更扁。例如盖腕,主機(jī)G現(xiàn)在加入了多播組①。從這時(shí)起浓镜,路由器R就必須也向網(wǎng)絡(luò)N3轉(zhuǎn)發(fā)多播組①的分組溃列。這就是說(shuō),多播轉(zhuǎn)發(fā)必須動(dòng)態(tài)地適應(yīng)多播組成員的變化(這時(shí)網(wǎng)絡(luò)拓?fù)洳⑽窗l(fā)生變化)膛薛。請(qǐng)注意听隐,單播路由選擇通常是在網(wǎng)絡(luò)拓?fù)浒l(fā)生變化時(shí)才需要更新路由。

再看一種情況哄啄。主機(jī)E和F都是多播組②的成員雅任。當(dāng)E向F發(fā)送多播數(shù)據(jù)報(bào)時(shí),路由器R把這個(gè)多播數(shù)據(jù)報(bào)轉(zhuǎn)發(fā)到網(wǎng)絡(luò)N3咨跌。但當(dāng)F向E發(fā)送多播數(shù)據(jù)報(bào)時(shí)沪么,路由器R則把多播數(shù)據(jù)報(bào)轉(zhuǎn)發(fā)到網(wǎng)絡(luò)N2。如果路由器R收到來(lái)自主機(jī)A的多播數(shù)據(jù)報(bào)(A不是多播組②的成員锌半,但也可向多播組發(fā)送多播數(shù)據(jù)報(bào))成玫,那么路由器R就應(yīng)當(dāng)把多播數(shù)據(jù)報(bào)轉(zhuǎn)發(fā)到N2和N3。由此可見(jiàn)拳喻,多播路由器在轉(zhuǎn)發(fā)多播數(shù)據(jù)報(bào)時(shí)哭当,不能僅僅根據(jù)多播數(shù)據(jù)報(bào)中的目的地址,而是要考慮這個(gè)多播數(shù)據(jù)報(bào)從什么地方來(lái)和要到什么地方去冗澈。

還有一種情況钦勘。主機(jī)G沒(méi)有參加任何多播組,但G卻可向任何多播組發(fā)送多播數(shù)據(jù)報(bào)亚亲。例如彻采,G可向多播組①和②發(fā)送多播數(shù)據(jù)報(bào)腐缤。主機(jī)G所在的局域網(wǎng)上可以沒(méi)有任何多播組的成員。顯然肛响,多播數(shù)據(jù)報(bào)所經(jīng)過(guò)的許多網(wǎng)絡(luò)岭粤,也不一定非要有多播組成員√厮瘢總之剃浇,多播數(shù)據(jù)報(bào)可以由沒(méi)有加入多播組的主機(jī)發(fā)出,也可以通過(guò)沒(méi)有組成員接入的網(wǎng)絡(luò)猎物。

所以虎囚,IP多播復(fù)雜了。

Ⅱ蔫磨、網(wǎng)際組管理協(xié)議IGMP

和ICMP相比淘讥,IGMP使用IP數(shù)據(jù)報(bào)傳遞其報(bào)文(即IGMP報(bào)文加上IP首部構(gòu)成了IO數(shù)據(jù)報(bào)),但它也向IP提供服務(wù)堤如。因此蒲列,我們不把IGMP看成是一個(gè)單獨(dú)的協(xié)議,而是屬于整個(gè)網(wǎng)際協(xié)議IP的一個(gè)組成部分搀罢。

從概念上講嫉嘀,IGMP的工作可分為兩個(gè)階段

第一階段:當(dāng)某個(gè)主機(jī)加入到新的多播組時(shí),該主機(jī)應(yīng)向多播組的多播地址發(fā)送一個(gè)IGMP報(bào)文魄揉,聲明自己要成為改組的成員。本地的多播路由器收到IGMP報(bào)文后拭宁,還要利用多播路由器選擇協(xié)議把這種組成員關(guān)系轉(zhuǎn)發(fā)給因特網(wǎng)上的其他多播路由器洛退。

第二階段:組成員關(guān)系是動(dòng)態(tài)的。本地多播路由器要周期性地探尋本地局域網(wǎng)上的主機(jī)杰标,以便知道這些主機(jī)是否還繼續(xù)是組的成員兵怯。只要有一個(gè)主機(jī)對(duì)某個(gè)組響應(yīng),那么多播路由器就認(rèn)為這個(gè)組是活躍的腔剂。但一個(gè)組在經(jīng)過(guò)幾次的探尋后仍然沒(méi)有一個(gè)主機(jī)響應(yīng)媒区,多播路由器就認(rèn)為本網(wǎng)絡(luò)上的主機(jī)已經(jīng)都離開(kāi)了這個(gè)組,因此也就不再把這個(gè)組的成員關(guān)系轉(zhuǎn)發(fā)給其他的多播路由器掸犬。

IGMP設(shè)計(jì)得很仔細(xì)袜漩,避免了多播控制信息給網(wǎng)絡(luò)增加大量的開(kāi)銷(xiāo)。采用的措施有如下:

(1)在主機(jī)和多播路由器之間的所有通信都是使用IP多播湾碎。只要有可能宙攻,攜帶IGMP報(bào)文的數(shù)據(jù)報(bào)都用硬件多播來(lái)傳送。因此在支持硬件多播的網(wǎng)絡(luò)上介褥,沒(méi)有參加IP多播的主機(jī)不會(huì)收到IGMP報(bào)文座掘。

(2)多播路由器在探詢(xún)組成員關(guān)系時(shí)递惋,只需要對(duì)所有的組發(fā)送一個(gè)請(qǐng)求信息的詢(xún)問(wèn)報(bào)文,而不需要對(duì)每一個(gè)組發(fā)送一個(gè)詢(xún)問(wèn)報(bào)文(雖然也允許對(duì)一個(gè)特定組發(fā)送詢(xún)問(wèn)報(bào)文)溢陪。默認(rèn)的詢(xún)問(wèn)速率是每125秒發(fā)送一次(通信量并不太大)萍虽。

(3)當(dāng)同一個(gè)網(wǎng)絡(luò)上連接有幾個(gè)多播路由器時(shí),它們能夠迅速和有效地選擇其中的一個(gè)來(lái)探詢(xún)主機(jī)的成員關(guān)系形真。因此杉编,網(wǎng)絡(luò)上多個(gè)多播路由器并不會(huì)引起IGMP通信量的增大。

(4)在IGMP的詢(xún)問(wèn)報(bào)文中有一個(gè)數(shù)值N没酣,它指明一個(gè)最長(zhǎng)響應(yīng)時(shí)間(默認(rèn)值為10秒)王财。當(dāng)收到詢(xún)問(wèn)時(shí),主機(jī)在0到N之間隨機(jī)選擇發(fā)送響應(yīng)所需經(jīng)過(guò)的時(shí)延裕便。因此绒净,若一個(gè)主機(jī)同時(shí)參加了幾個(gè)多播組,則主機(jī)對(duì)每一個(gè)多播組選擇不同的隨機(jī)數(shù)偿衰。對(duì)應(yīng)于最小時(shí)延的響應(yīng)最先發(fā)送挂疆。

(5)同一個(gè)組內(nèi)的每一個(gè)主機(jī)都要監(jiān)聽(tīng)響應(yīng),只要有本組的其他主機(jī)先發(fā)送了響應(yīng)下翎,自己就可以不再發(fā)送響應(yīng)了缤言。這樣就抑制了不必要的通信量。

多播路由器并不需要保留組成員關(guān)系的準(zhǔn)確記錄视事,因?yàn)橄蚓钟蚓W(wǎng)上的組成員轉(zhuǎn)發(fā)數(shù)據(jù)報(bào)使用硬件多播胆萧。多播路由器只需知道網(wǎng)絡(luò)上是否還有一個(gè)主機(jī)是本組成員即可。對(duì)詢(xún)問(wèn)報(bào)文實(shí)際上每一個(gè)組只有一個(gè)主機(jī)發(fā)送響應(yīng)俐东。

如果一個(gè)主機(jī)上有多個(gè)進(jìn)程都加入了某個(gè)多播組跌穗,那么這個(gè)主機(jī)對(duì)發(fā)送給這個(gè)多播組的每個(gè)多播數(shù)據(jù)報(bào)只接收一個(gè)副本,然后給主機(jī)中的每一個(gè)進(jìn)程發(fā)送一個(gè)本地復(fù)制的副本虏辫。

強(qiáng)調(diào)指出蚌吸,多播數(shù)據(jù)報(bào)的發(fā)送者和接受者都不知道(也無(wú)法找出)一個(gè)多播組的成員有多少,以及這些成員是哪些主機(jī)砌庄。因特網(wǎng)中的路由器和主機(jī)都不知道那個(gè)應(yīng)用進(jìn)程將要向哪個(gè)多播器發(fā)送多播數(shù)據(jù)報(bào)羹唠,因?yàn)槿魏螒?yīng)用進(jìn)程都可以在任何時(shí)候向任何一個(gè)多播組發(fā)送多播數(shù)據(jù)報(bào),而這個(gè)應(yīng)用進(jìn)程并不需要加入這個(gè)多播組娄昆。

Ⅲ佩微、多播路由選擇協(xié)議

在多播過(guò)程中一個(gè)多播組中的成員是動(dòng)態(tài)變化的,例如在收聽(tīng)網(wǎng)上某個(gè)廣播節(jié)目時(shí)萌焰,隨時(shí)會(huì)有主機(jī)加入或離開(kāi)這個(gè)多播組喊衫。多播路由選擇實(shí)際上就是要找出以源主機(jī)為根節(jié)點(diǎn)的多播轉(zhuǎn)發(fā)樹(shù)。在多播轉(zhuǎn)發(fā)樹(shù)上杆怕,每一個(gè)多播路由器向樹(shù)的葉節(jié)點(diǎn)方向轉(zhuǎn)發(fā)收到的多播數(shù)據(jù)報(bào)族购,但在多播轉(zhuǎn)發(fā)樹(shù)上的路由器不會(huì)收到重復(fù)的多播數(shù)據(jù)報(bào)(即多播數(shù)據(jù)報(bào)不應(yīng)在互聯(lián)網(wǎng)中兜圈子)壳贪。不難看出,對(duì)不同的多播組對(duì)應(yīng)于不同的多播轉(zhuǎn)發(fā)樹(shù)寝杖。同一個(gè)多播組违施,對(duì)不同的源點(diǎn)也會(huì)有不同的轉(zhuǎn)發(fā)樹(shù)。

多播路由選擇協(xié)議在轉(zhuǎn)發(fā)多播數(shù)據(jù)報(bào)時(shí)采用了以下三種辦法:

(1)洪泛與剪除

適合于較小的多播組瑟幕,而所有的組成員接入的局域網(wǎng)也是相鄰接的磕蒲。一開(kāi)始,路由器轉(zhuǎn)發(fā)多播數(shù)據(jù)報(bào)使用洪泛的方法只盹。為了避免兜圈子辣往,采用了反向路徑廣播RPB(reverse path broadcasting)的策略。它要點(diǎn)是:每一個(gè)路由器在收到一個(gè)多播數(shù)據(jù)報(bào)時(shí)殖卑,先檢查數(shù)據(jù)報(bào)是否從源點(diǎn)經(jīng)最短路徑傳送過(guò)來(lái)的站削。進(jìn)行這種檢查很容易,只要從本路由器尋找到源點(diǎn)的最短路徑上(之所以叫做反向路徑孵稽,因?yàn)樵谟?jì)算最短路徑時(shí)是把源點(diǎn)當(dāng)作終點(diǎn))的第一個(gè)路由器是否就是剛才把多播數(shù)據(jù)報(bào)傳送過(guò)來(lái)的路由器许起。若是,就向所有其他方向轉(zhuǎn)發(fā)剛才收到的多播數(shù)據(jù)報(bào)(但進(jìn)入的方向除外)菩鲜,否則就丟棄而不轉(zhuǎn)發(fā)园细。如果本路由器又好幾個(gè)相鄰路由器都處在到源點(diǎn)的最短路徑上(也就是說(shuō),存在幾條同樣長(zhǎng)度的最短路徑)接校,那么只能選擇一條最短路徑猛频,選擇的準(zhǔn)則就是看這幾條最短路徑中的相鄰路由器誰(shuí)的IP地址最小。

(2)隧道技術(shù)

適用于多播組的位置在地理上很分散的情況蛛勉。R1對(duì)多播數(shù)據(jù)報(bào)進(jìn)行再次封裝鹿寻,即再加上普通數(shù)據(jù)報(bào)首部,使之成為向單一目的站發(fā)送的單播數(shù)據(jù)報(bào)董习,然后通過(guò)“隧道”從R1發(fā)送到R2。這種使用隧道技術(shù)傳送數(shù)據(jù)報(bào)又叫做IP中的IP(IP-in-IP)爱只。

(3)基于核心的發(fā)現(xiàn)技術(shù)

對(duì)于多播組的大小在較大范圍內(nèi)變化時(shí)都適合皿淋。它是對(duì)每一個(gè)多播組G指定一個(gè)核心路由器,給出它的IP單播地址恬试。核心路由器按照前面講過(guò)的方法創(chuàng)建出對(duì)應(yīng)于多播組G的轉(zhuǎn)發(fā)樹(shù)窝趣。如果有一個(gè)路由器R1向這個(gè)核心路由器發(fā)送數(shù)據(jù)報(bào),那么它在途中經(jīng)過(guò)的每一個(gè)路由器都要檢查其內(nèi)容训柴。當(dāng)數(shù)據(jù)報(bào)到達(dá)參加了多播組G的路由器R2時(shí)哑舒,R2就處理這個(gè)數(shù)據(jù)報(bào)。如果R1發(fā)出的是一個(gè)多播數(shù)據(jù)報(bào)幻馁,其目的地址是G的組地址洗鸵,R2就向多播組G的成員轉(zhuǎn)發(fā)這個(gè)多播數(shù)據(jù)報(bào)越锈。如果R1發(fā)出的數(shù)據(jù)報(bào)是一個(gè)請(qǐng)求加入多播組G的數(shù)據(jù)報(bào),R2就把這個(gè)信息加到它的路由中膘滨,并用隧道技術(shù)向R1轉(zhuǎn)發(fā)每一個(gè)多播數(shù)據(jù)報(bào)的一個(gè)副本甘凭。這樣,參加到多播組G的路由器就從核心向外增多了火邓,擴(kuò)大了多播轉(zhuǎn)發(fā)樹(shù)的覆蓋范圍丹弱。

多播路由選擇協(xié)議:

(1)距離向量多播路由選擇協(xié)議DVMRP(distance vector multicast routing protocol)

(2)基于核心的轉(zhuǎn)發(fā)樹(shù)CBT(core basted tree)

使用核心路由器作為轉(zhuǎn)發(fā)樹(shù)的根節(jié)點(diǎn)。一個(gè)大的自治系統(tǒng)AS可劃分為幾個(gè)區(qū)域铲咨,每一個(gè)區(qū)域選擇一個(gè)核心路由器躲胳。

(3)開(kāi)放最短通路優(yōu)先的多播擴(kuò)展MOSPF(multicast extensions to OSPF)

是OSPF的擴(kuò)充。它使用多播鏈路狀態(tài)路由選擇創(chuàng)建出基于源點(diǎn)的多播轉(zhuǎn)發(fā)樹(shù)纤勒。

(4)協(xié)議無(wú)關(guān)多播-稀疏方式PIM-SM(protocol independent multicast-space mode)

使用和CBT同樣的方法構(gòu)成多播轉(zhuǎn)發(fā)樹(shù)坯苹,采用“協(xié)議無(wú)關(guān)”是強(qiáng)調(diào):雖然在建立多播轉(zhuǎn)發(fā)樹(shù)時(shí)是使用單播數(shù)據(jù)報(bào)來(lái)和遠(yuǎn)程路由器來(lái)聯(lián)系,但這并不要求使用特定的單播路由選擇協(xié)議踊东。這個(gè)協(xié)議適用于組成員的分布非常分散的情況北滥。

(5)協(xié)議無(wú)關(guān)多播-密集方式PIM-DM(protocol independent multicast-dense mode)

適用于組成員的分布非常集中的情況,例如組成員都在一個(gè)機(jī)構(gòu)內(nèi)闸翅。不使用核心路由器再芋,而使用洪泛方式轉(zhuǎn)發(fā)數(shù)據(jù)報(bào)。


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末坚冀,一起剝皮案震驚了整個(gè)濱河市济赎,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌记某,老刑警劉巖司训,帶你破解...
    沈念sama閱讀 223,207評(píng)論 6 521
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異液南,居然都是意外死亡壳猜,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,455評(píng)論 3 400
  • 文/潘曉璐 我一進(jìn)店門(mén)滑凉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)统扳,“玉大人,你說(shuō)我怎么就攤上這事畅姊≈渲樱” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 170,031評(píng)論 0 366
  • 文/不壞的土叔 我叫張陵若未,是天一觀的道長(zhǎng)朱嘴。 經(jīng)常有香客問(wèn)我,道長(zhǎng)粗合,這世上最難降的妖魔是什么萍嬉? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,334評(píng)論 1 300
  • 正文 為了忘掉前任乌昔,我火速辦了婚禮,結(jié)果婚禮上帚湘,老公的妹妹穿的比我還像新娘玫荣。我一直安慰自己,他們只是感情好大诸,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,322評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布捅厂。 她就那樣靜靜地躺著,像睡著了一般资柔。 火紅的嫁衣襯著肌膚如雪焙贷。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,895評(píng)論 1 314
  • 那天贿堰,我揣著相機(jī)與錄音辙芍,去河邊找鬼。 笑死羹与,一個(gè)胖子當(dāng)著我的面吹牛故硅,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播纵搁,決...
    沈念sama閱讀 41,300評(píng)論 3 424
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼吃衅,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了腾誉?” 一聲冷哼從身側(cè)響起徘层,我...
    開(kāi)封第一講書(shū)人閱讀 40,264評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎利职,沒(méi)想到半個(gè)月后趣效,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,784評(píng)論 1 321
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡猪贪,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,870評(píng)論 3 343
  • 正文 我和宋清朗相戀三年跷敬,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片热押。...
    茶點(diǎn)故事閱讀 40,989評(píng)論 1 354
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡西傀,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出楞黄,到底是詐尸還是另有隱情池凄,我是刑警寧澤抡驼,帶...
    沈念sama閱讀 36,649評(píng)論 5 351
  • 正文 年R本政府宣布鬼廓,位于F島的核電站,受9級(jí)特大地震影響致盟,放射性物質(zhì)發(fā)生泄漏碎税。R本人自食惡果不足惜尤慰,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,331評(píng)論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望雷蹂。 院中可真熱鬧伟端,春花似錦、人聲如沸匪煌。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,814評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)萎庭。三九已至霜医,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間驳规,已是汗流浹背肴敛。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,940評(píng)論 1 275
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留吗购,地道東北人医男。 一個(gè)月前我還...
    沈念sama閱讀 49,452評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像捻勉,于是被迫代替她去往敵國(guó)和親镀梭。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,995評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容