要理解網(wǎng)絡(luò)領(lǐng)域的知識(shí),你必須先理解網(wǎng)絡(luò)要解決的問題。在你真正理解路由協(xié)議在做什么之前,記住某些路由協(xié)議的設(shè)置選項(xiàng)對(duì)你不會(huì)有什么幫助。本次網(wǎng)絡(luò)講座旨在介紹路由領(lǐng)域的一些問題和概念。這是網(wǎng)絡(luò)領(lǐng)域最有趣和最重要的一部分內(nèi)容。本篇講座將解釋路由協(xié)議要解決的問題,這樣,你就理解了路由協(xié)議的工作原理。
在我們詳細(xì)討論之前,先做一下說明。當(dāng)你聽說人們提到“不可路由的地址”的時(shí)候,他們是在談?wù)揜FC 1918 IP地址,例如私有地址。雖然有這種容易引起誤導(dǎo)的標(biāo)簽,但是,這些地址仍是可以路由的。你很可能有一些10.x.x.x網(wǎng)絡(luò)用于本地接入和管理。這些地址甚至可以同你真正的路由器混合在一起。將這些地址稱作“不可路由的地址”是因?yàn)榛ヂ?lián)網(wǎng)路由器會(huì)拋棄這些地址。你應(yīng)該在你的網(wǎng)絡(luò)邊界拋棄這些數(shù)據(jù)包。許多人對(duì)這一點(diǎn)都有些迷惑不解。
言歸正傳,路由實(shí)際上是找到數(shù)據(jù)包從一個(gè)地方傳輸?shù)搅硪粋€(gè)地方的路經(jīng)。要找到這個(gè)路徑,我們需要一些算法。算法需要很多分布式的路由器共同參預(yù),使它們能夠一起共享信息。路由包含三個(gè)要素:
•路由協(xié)議。路由協(xié)議能夠允許收集和發(fā)布信息。
•路由算法。路由算法用來確定路徑。
•路由數(shù)據(jù)庫。路由數(shù)據(jù)庫用來存儲(chǔ)算法找到的信息。路由數(shù)據(jù)庫有時(shí)候?qū)β酚杀砣肟谧龀龇磻?yīng),有時(shí)候沒有反應(yīng)。
在我們以前介紹層的概念時(shí)實(shí)際上已經(jīng)談到了一些關(guān)于路由的問題,當(dāng)談?wù)揑P數(shù)據(jù)包通過不同的系統(tǒng)和路由器的路徑時(shí)我們已經(jīng)接觸到了路由。不過,當(dāng)時(shí)還沒有明確的提到路由的概念。
還記得我們以前以前論壇過的子網(wǎng)嗎?大多數(shù)路由器在為你的數(shù)據(jù)包查詢路徑的時(shí)候都是查找路由表中最短的前綴。如果存在一個(gè)“主機(jī)路由”,或者一個(gè)32位路由器條目,路由器會(huì)優(yōu)先選擇這個(gè)路由。在選擇默認(rèn)的轉(zhuǎn)發(fā)路徑之前,任何更具體的路徑信息都被優(yōu)先采用,例如到你所有特定子網(wǎng)的路由。
我們還需要理解一些有關(guān)路由的最基本的問題。就像在第二層一樣,路由器也需要冗余。冗余的路由器可能造成環(huán)路問題。每一個(gè)路由協(xié)議都要處理這個(gè)問題。由于我們將在今后的網(wǎng)絡(luò)講座中介紹具體的路由協(xié)議,因此,本期講座先不詳討論這個(gè)問題。
路由器的整個(gè)思路就是按照正確的方向把數(shù)據(jù)包傳遞過去,或者把數(shù)據(jù)包發(fā)送給更加智能化的路由器。如果你的網(wǎng)絡(luò)核心連接了一些分支網(wǎng)絡(luò)根路由器,這些分支網(wǎng)絡(luò)的根路由器相互之間并不了解。但是,這些路由器都知道可以通過網(wǎng)絡(luò)核心將數(shù)據(jù)包發(fā)送到任何一個(gè)節(jié)點(diǎn),因此它們只是簡單地向這個(gè)通道發(fā)送數(shù)據(jù)包。我們把這種方式稱作“星狀拓?fù)?#8221;。這是一個(gè)默認(rèn)的路由概念,雖然非常簡單。但是,這里需要注意的是:這是許多動(dòng)態(tài)路由協(xié)議工作的方式。當(dāng)然,路由器并不總是把數(shù)據(jù)包發(fā)送給默認(rèn)路由。有時(shí)候,路由器會(huì)把數(shù)據(jù)轉(zhuǎn)發(fā)給與已知的與特定子網(wǎng)相連的路由器
當(dāng)路由數(shù)據(jù)包的時(shí)候,我們有一些方案可以選擇。當(dāng)你撥打電話的時(shí)候,電信公司立即為你的電話建立一個(gè)線路。這個(gè)路徑總是相同并且非??煽康?。而IP領(lǐng)域不是這樣,它能夠處理更多的通信。其代價(jià)就是你會(huì)遇到阻塞的情況,并且有時(shí)候不能訪問某些站點(diǎn),而你的電話卻永遠(yuǎn)不會(huì)因?yàn)樽枞鴶嗑€。IP領(lǐng)域也可以通過一種名為松散源路由的機(jī)制基本上做到這一點(diǎn)。這個(gè)機(jī)制是這樣的:每一個(gè)端點(diǎn)的節(jié)點(diǎn)都知道它需要利用什么跳點(diǎn)來到達(dá)其目的地?;谠吹穆酚蓻]有可伸縮性并且?guī)硪恍┌踩珕栴}。因此,我們使用動(dòng)態(tài)路由協(xié)議找出我們的路徑。請(qǐng)注意,每一個(gè)方向都可以使用一個(gè)不同的路徑。
路由協(xié)議可以按不同的標(biāo)準(zhǔn)分別分為兩種類型。按路由協(xié)議的作用范圍,我們可以把路由協(xié)議分為內(nèi)部網(wǎng)關(guān)協(xié)議(IGP)和域間路由協(xié)議。路由信息協(xié)議(RIP)、開放式最短路徑優(yōu)先(OSPF)和ISIS等是你可能聽說過的IGP。這些是處理域內(nèi)部路由的一些路由協(xié)議。外部網(wǎng)關(guān)協(xié)議(EGP)是處理域之間的和企業(yè)之間的路由的協(xié)議?,F(xiàn)在這個(gè)協(xié)議已經(jīng)停止使用了。BGP(邊界網(wǎng)關(guān)協(xié)議)現(xiàn)在是一個(gè)標(biāo)準(zhǔn)的域之間的協(xié)議。
按另一種標(biāo)準(zhǔn)路由協(xié)議可以分為另外兩種類型:鏈路狀態(tài)協(xié)議或者距離向量協(xié)議。距離向量的方法是“告訴你的鄰居你所知道的整個(gè)網(wǎng)絡(luò)的狀況”。這就意味著你要向所有的鄰居廣播整個(gè)路由表。這個(gè)“向量”就是目的地。“距離”實(shí)際上就是一個(gè)計(jì)量單位,可以是跳數(shù)。鏈路狀態(tài)路由協(xié)議的方法“告訴外界有關(guān)你的鄰居的情況”。整體思路就是要搞清楚周圍有誰在線并向其它路由器廣播這個(gè)信息。鏈路狀態(tài)路由協(xié)議需要更大的運(yùn)算量,但它為網(wǎng)絡(luò)中所有的路由器關(guān)于整個(gè)網(wǎng)絡(luò)的清晰全景圖。
大多數(shù)人喜歡鏈路狀態(tài)協(xié)議,因?yàn)檫@些協(xié)議的收斂性更佳。這就意味著所有的路由器能更快的同步信息。不過,鏈路狀態(tài)的計(jì)算過程需要花費(fèi)較長的時(shí)間,而且這種計(jì)算在每次更新信息的時(shí)候都會(huì)發(fā)生,因此,鏈路狀態(tài)協(xié)議不適合在整個(gè)互聯(lián)網(wǎng)范圍內(nèi)使用。在將來我們介紹OSPF協(xié)議時(shí)候?qū)?huì)看到鏈路狀態(tài)協(xié)議是為什么如此消耗CPU資源。我們下個(gè)星期將介紹第一個(gè)路由協(xié)議:RIP。
小結(jié)
路由器向其目的地發(fā)送數(shù)據(jù)包,一般是把數(shù)據(jù)包發(fā)送給更多地知道一些目的地拓?fù)浣Y(jié)構(gòu)的路由器。
路由是一種單向的問題。你的數(shù)據(jù)包采取不對(duì)稱的路徑是很常見的。
鏈路狀態(tài)路由協(xié)議:收斂速度快、消耗CPU。距離向量:收斂速度慢,CPU比較容易處理。問題是你對(duì)于這臺(tái)路由器后面的告訴你“我是某某網(wǎng)絡(luò)”的其它路由器一無所知。
聯(lián)系客服