日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

动态路由选择协议(二)距离矢量路由选择协议

發(fā)布時(shí)間:2023/12/20 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 动态路由选择协议(二)距离矢量路由选择协议 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

大多數(shù)的路由選擇協(xié)議屬于下面二者之一:

距離矢量(distance vector)和鏈路狀態(tài)(link state)。

本篇學(xué)習(xí)的是距離矢量路由選擇協(xié)議的基礎(chǔ)。

?

大多數(shù)的距離矢量算法是R.E.Bellman、L.R.Ford和D.R.Fulkerson所做的工作為基礎(chǔ)的,所有有時(shí)距離矢量算法又稱(chēng)為Bellman-Ford或者Ford-Fulkerson算法。

值得注意的是EIGRP是一個(gè)例外,它是基于J.J.Garcia Luna Aceves開(kāi)發(fā)的算法實(shí)現(xiàn)的。

?

距離矢量名稱(chēng)的由來(lái)是因?yàn)槁酚善魇且允噶?#xff08;距離、方向)的方式被通告出去的,其中距離是根據(jù)度量定義的,方向是根據(jù)下一跳路由器定義的。

?

例如,"目標(biāo)A在下一跳路由器X的方向,距離5跳之遠(yuǎn)"。這個(gè)表述隱含了每臺(tái)路由器向鄰接路由器學(xué)習(xí)它們所觀察到的路由器信息,然后在向外通告自己觀察到的路由器的信息,而每臺(tái)路由器的信息又是根據(jù)鄰接的路由器,所以所有距離矢量路由選擇有時(shí)又被認(rèn)為是"依據(jù)傳聞進(jìn)行路由選擇"。

?

?

下面列舉的都屬于距離矢量路由協(xié)議:

IP路由選擇信息協(xié)議(RIP);

Xerox網(wǎng)絡(luò)系統(tǒng)的XNS RIP;

Novell的IPX RIP;

Cisco Systems的Internet網(wǎng)關(guān)路由選擇協(xié)議(IGRP)和增強(qiáng)型Internet網(wǎng)管路由選擇協(xié)議(EIGRP);

DEC的DNA階段4;

Apple Talk的路由選擇表維護(hù)協(xié)議(RTMP)。

通用屬性

典型的距離矢量路由選擇協(xié)議通常會(huì)使用一個(gè)路由選擇算法,算法中路由器通過(guò)廣播整個(gè)路由表,定期地向所有鄰居發(fā)送路由更新信息(EIGRP不是這樣的)。

?

上面表述包含了大量信息。

?

1. 定期更新

?

2. 鄰居

?

3. 廣播更新

?

4. 全路由選擇表更新

?

?

?

依照傳聞進(jìn)行路由選擇

?

在圖中正在進(jìn)行一個(gè)距離矢量算法,其中使用跳數(shù)作為度量。

?

在T0時(shí)刻,路由器A到路由器D正好可用,而且T0時(shí)刻4臺(tái)路由器所具有的惟一信息就是它們的直連網(wǎng)絡(luò)。

路由表標(biāo)識(shí)了這些網(wǎng)絡(luò),并且指明了它們沒(méi)有經(jīng)過(guò)下一跳路由器,是直接連接到路由器上的,所以跳數(shù)為0。

每臺(tái)路由器都將在它所有的鏈路上廣播這些信息。

?

在T1時(shí)刻,路由器接受并處理第1個(gè)更新信息。

?

查看此時(shí)路由器A的路由表,路由器B發(fā)給路由器A的更新信息發(fā)現(xiàn)路由器B能夠到達(dá)網(wǎng)絡(luò)10.1.2.0和10.1.3.0,而且距離都為0跳。

如果這些目標(biāo)網(wǎng)絡(luò)距離路由器B為0跳,那么距離路由器A則為1跳。

所以路由器A將跳數(shù)增加1,然后檢查自己的路由表。

路由表中顯示網(wǎng)絡(luò)10.1.2.0已知,且距離為0跳,小于路由器B通告的跳數(shù),所以路由器A忽略此信息。

?

圖 距離矢量協(xié)議逐跳收斂

?

由于網(wǎng)絡(luò)10.1.3.0對(duì)于路由器A來(lái)說(shuō)是新信息,所以路由器A將其輸入到路由表中。更新數(shù)據(jù)包的源地址是路由器B的接口地址(10.1.2.2),因此該地址連同計(jì)算的跳數(shù)一起被保存到路由表中。

?

注意T1時(shí)刻,其他路由器也進(jìn)行了類(lèi)似操作。

在T2時(shí)刻,隨著更新周期的再次到期,另一組更新消息被廣播,路由器C告知路由器B的路由信息。

路由器B發(fā)送了最新的路由表,路由器A更新此時(shí)的路由信息。

在T3時(shí)刻,網(wǎng)絡(luò)已經(jīng)收斂。每臺(tái)路由器都已經(jīng)知道了每個(gè)網(wǎng)絡(luò)以及達(dá)到每個(gè)網(wǎng)絡(luò)的下一跳路由器的地址和距離跳數(shù)。

?

距離矢量算法提供了指向網(wǎng)絡(luò)的路標(biāo)。該算法給出了方向和距離,但沒(méi)有給出沿著這條路徑行走的細(xì)節(jié)。就像交叉路口一樣,很容容易受到意外或故意的誤導(dǎo)。

?

下面給出的是距離矢量算法的困境以及一些改進(jìn)的措施。

?

路由失效計(jì)數(shù)器

?

如果網(wǎng)絡(luò)已經(jīng)收斂,那么當(dāng)部分網(wǎng)絡(luò)的拓?fù)浒l(fā)生變化時(shí),它怎樣處理重新收斂問(wèn)題呢?

如果網(wǎng)絡(luò)10.1.5.0發(fā)生故障,答案很簡(jiǎn)單——在下一個(gè)周期中,路由器D將這個(gè)網(wǎng)絡(luò)標(biāo)記為不可達(dá)并且發(fā)送該信息。

?

如果網(wǎng)絡(luò)10.1.5.0沒(méi)有發(fā)生故障,而是路由器D發(fā)生故障了?

路由器A、B、C的路由表中仍然保存著關(guān)于網(wǎng)絡(luò)10.1.5.0的信息,雖然該信息不再有用,但是卻沒(méi)有路由器通知它們。

它們將不知不覺(jué)地向一個(gè)不可達(dá)網(wǎng)絡(luò)轉(zhuǎn)發(fā)著數(shù)據(jù)包——即在網(wǎng)絡(luò)中打開(kāi)了一個(gè)黑洞。

?

處理這個(gè)問(wèn)題的方式是為路由表中的每個(gè)表項(xiàng)設(shè)置一個(gè)失效計(jì)時(shí)器。

例如,當(dāng)路由器C首次知道10.1.5.0并將其輸入到路由表中時(shí),路由器C將為該路由器設(shè)置計(jì)時(shí)器。

每隔一定時(shí)間間隔路由器C都會(huì)收到路由器D的更新信息,路由器C在丟棄有關(guān)10.1.5.0的信息的同時(shí)復(fù)位該路由的計(jì)時(shí)器。

?

如果路由器D發(fā)生故障,路由器C將不能接收到關(guān)于10.1.5.0的更新信息。這時(shí)計(jì)時(shí)器將會(huì)超時(shí),路由器C將把該路由標(biāo)記為不可達(dá),并將在下一個(gè)更新周期時(shí)傳遞該信息。

?

路由器超時(shí)的典型周期范圍是3~6個(gè)更新周期。路由器在丟失單個(gè)更新信息之后將不會(huì)使路由器無(wú)效的,因?yàn)閿?shù)據(jù)包的損壞、丟失或者某種網(wǎng)絡(luò)延遲都會(huì)造成這種事件的發(fā)生。但是如果路由失效周期太長(zhǎng),網(wǎng)絡(luò)收斂速度將會(huì)非常慢。

?

水平分隔

?

目前,每個(gè)路由器在每個(gè)更新周期都要向每個(gè)鄰居發(fā)送它的整個(gè)路由表。但是并沒(méi)有必要,如果路由器A將學(xué)自路由器B的網(wǎng)絡(luò)再?gòu)V播給路由器B,那么這是一種浪費(fèi),因?yàn)锽已經(jīng)知道這些網(wǎng)絡(luò)。

?

路由的指向與數(shù)據(jù)包流動(dòng)方向相反的路由被稱(chēng)為逆向路由(reverse route)。水平分隔(split horizon)是一種在兩臺(tái)路由器之間阻止逆向路由的技術(shù)。

?

這樣除了不會(huì)浪費(fèi)資源,還因?yàn)椴粫?huì)把從路由器學(xué)習(xí)的可達(dá)性信息再返回給這臺(tái)路由器。

動(dòng)態(tài)路由選擇協(xié)議最重要的功能就是監(jiān)測(cè)和補(bǔ)償拓?fù)渥兓绻W(wǎng)絡(luò)的最優(yōu)路徑不可用,協(xié)議必須尋找下一個(gè)最優(yōu)路徑。

?

假設(shè)路由器監(jiān)測(cè)到網(wǎng)絡(luò)10.1.5.0發(fā)生故障,將網(wǎng)絡(luò)標(biāo)記為不可達(dá)并且在下一個(gè)更新周期通知路由器C。然后在路由器D更新計(jì)時(shí)器觸發(fā)更新之前,意外的事情發(fā)生了。路由器C的更新消息到達(dá)了路由器D,聲明路由器C可以到達(dá)網(wǎng)絡(luò)10.1.5.0,距離為1跳!

?

但是路由器D并不知道路由器C通告的下一條最優(yōu)路徑并不合理,因而路由器D將跳數(shù)加1并在路由表中記錄一下信息:通過(guò)路由器C的接口(10.1.4.1)可以到達(dá)網(wǎng)絡(luò)10.1.5.0,距離為2條。

?

這樣路由器D查詢(xún)路由表又將數(shù)據(jù)包轉(zhuǎn)發(fā)給路由器C,路由器C再轉(zhuǎn)回給路由器D,一直無(wú)窮無(wú)盡地進(jìn)行下去,因而導(dǎo)致路由環(huán)路的發(fā)生。

?

執(zhí)行水平分隔可以阻止路由環(huán)路的發(fā)生。有兩類(lèi)水平分隔方法:簡(jiǎn)單水平分隔法毒性逆轉(zhuǎn)水平分隔法

?

簡(jiǎn)單水平分隔的規(guī)則是:從某接口發(fā)送的更新消息不能包含從該接口收到的更新所包含的網(wǎng)絡(luò)。

?

簡(jiǎn)單水平分隔采用的抑制信息的工作方式。毒性逆轉(zhuǎn)水平分隔法是一種改進(jìn)方法,可以提供更積極的信息。

?

毒性逆轉(zhuǎn)水平分隔法的規(guī)則是:當(dāng)更新信息被發(fā)送出某接口時(shí),信息中將指定從該接口的更新信息中獲取的網(wǎng)絡(luò)是不可達(dá)的。

?

毒性逆轉(zhuǎn)水平分隔法被認(rèn)為比簡(jiǎn)單水平分隔法更安全更健壯——一種"壞信息總比沒(méi)有消息好"的方法。

?

大部分現(xiàn)代距離矢量算法的實(shí)現(xiàn)都是用了毒性逆轉(zhuǎn)水平分隔法。缺點(diǎn)是使路由器更新數(shù)據(jù)包更大了,可能會(huì)加劇鏈路的擁塞問(wèn)題。

?

計(jì)數(shù)到無(wú)窮大

?

水平分隔法切斷的是鄰居路由器之間的環(huán)路,但是它不能隔斷網(wǎng)絡(luò)中的環(huán)路。可達(dá)網(wǎng)絡(luò)的距離在不斷地在路由器信息增大的時(shí)候會(huì)到無(wú)窮大。減輕計(jì)數(shù)到無(wú)窮大影響的方法是定義無(wú)窮大。大多數(shù)距離矢量協(xié)議定義無(wú)窮大為16跳。

?

隨著更新消息在路由器中轉(zhuǎn)圈,到某個(gè)不可達(dá)網(wǎng)絡(luò)的跳數(shù)會(huì)達(dá)到16,那時(shí)網(wǎng)絡(luò)被認(rèn)為是不可達(dá)。

?

這也是路由器如何通告一個(gè)網(wǎng)絡(luò)不可達(dá)的方法。

設(shè)置最大跳數(shù)15有助于解決計(jì)數(shù)到無(wú)窮大的問(wèn)題,但是收斂速度仍舊非常慢。假設(shè)更新周期為30s,網(wǎng)絡(luò)可能花7.5min達(dá)到收斂,在這期間容易受到路由錯(cuò)誤的影響。觸發(fā)更新可以用于減少網(wǎng)絡(luò)收斂時(shí)間。

?

?

觸發(fā)更新

?

觸發(fā)更新(Triggered Update)又叫快速更新,非常簡(jiǎn)單:如果一個(gè)度量變好或者變壞,那么路由器將立即發(fā)送更新信息,而不等更新計(jì)時(shí)超時(shí)。

?

?

抑制計(jì)時(shí)器

?

如果到一個(gè)目標(biāo)的距離增加,那么路由器將為該路由設(shè)置抑制計(jì)時(shí)器。直到計(jì)時(shí)器超時(shí),路由器才可以接受有關(guān)此路由的更新信息。

?

?

異步更新

?

?

一組連接在以太骨干網(wǎng)上的路由器,將不會(huì)同時(shí)廣播更新信息,因?yàn)闀?huì)導(dǎo)致數(shù)據(jù)包發(fā)生碰撞。但是幾個(gè)路由器共享一個(gè)廣播網(wǎng)絡(luò)時(shí)可能會(huì)發(fā)生這種情況。

?

以下兩種方法維持異步更新(Asynchronous Update):

  • 每臺(tái)路由器的更新計(jì)時(shí)器獨(dú)立于路由選擇進(jìn)程,因而不會(huì)受到路由器處理負(fù)載的影響
  • 每個(gè)更新周期中加入一個(gè)小的隨機(jī)時(shí)間或定時(shí)抖動(dòng)作為偏移

轉(zhuǎn)載于:https://www.cnblogs.com/tuhooo/p/7471548.html

總結(jié)

以上是生活随笔為你收集整理的动态路由选择协议(二)距离矢量路由选择协议的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。