一年一度的雙11網(wǎng)購(gòu)盛典就要到了,不少商家推出了保價(jià)雙11的活動(dòng)。作為剁手黨的我立刻開(kāi)啟了買(mǎi)買(mǎi)買(mǎi)模式,一小波包裹已在途中。我每天都懷著迫切的心情刷幾遍物流信息,盼望著各快遞站點(diǎn)加速收發(fā),盡早將包裹送到我手中。其實(shí),在支撐我們網(wǎng)購(gòu)的Internet網(wǎng)絡(luò)中,也有收發(fā)數(shù)據(jù)包的快遞站點(diǎn)——路由器。
什么是路由器
路由器是連接兩個(gè)或多個(gè)網(wǎng)絡(luò)的硬件設(shè)備,工作在TCP/IP協(xié)議的網(wǎng)絡(luò)層,在網(wǎng)絡(luò)間扮演網(wǎng)關(guān)的角色。路由器的一個(gè)作用是連通Internet中各局域網(wǎng)、廣域網(wǎng),另一個(gè)作用是選擇數(shù)據(jù)包的最佳傳送線路。
想要深入了解路由器,要從路由器的內(nèi)部結(jié)構(gòu)講起了。
路由器由輸入接口、輸出接口、交換結(jié)構(gòu)、路由選擇處理器四個(gè)部分組成。執(zhí)行兩個(gè)最重要的基本功能:路由功能和交換(轉(zhuǎn)發(fā))功能。相應(yīng)的路由器內(nèi)部整體也分為路由選擇和分組轉(zhuǎn)發(fā)兩個(gè)部分。
路由選擇部分工作在控制層面,主要由軟件實(shí)現(xiàn)。核心組件是路由選擇處理器,通過(guò)運(yùn)行路由協(xié)議維護(hù)路由表以及連接的鏈路狀態(tài)信息,并生成轉(zhuǎn)發(fā)表。
分組轉(zhuǎn)發(fā)部分工作在數(shù)據(jù)層面,主要由硬件實(shí)現(xiàn)。核心組件是處理芯片和交換結(jié)構(gòu),交換結(jié)構(gòu)是一個(gè)路由器中的網(wǎng)絡(luò),將路由器的輸入接口和輸出接口相連接。依據(jù)轉(zhuǎn)發(fā)表來(lái)轉(zhuǎn)發(fā)分組數(shù)據(jù)包,將輸入接口的數(shù)據(jù)包移送至適當(dāng)?shù)妮敵鼋涌冢ㄔ诼酚善鲀?nèi)部進(jìn)行)。
路由表:可以是管理員手工配置的,也可以通過(guò)動(dòng)態(tài)路由協(xié)議自動(dòng)學(xué)習(xí)形成,通常由路由協(xié)議和路由管理模塊維護(hù),包括IP地址/IP子網(wǎng)、下一跳、路由優(yōu)先級(jí)、度量值等信息。
轉(zhuǎn)發(fā)表:是基于路由表生成的,路由?實(shí)際轉(zhuǎn)發(fā)時(shí)使用轉(zhuǎn)發(fā)表,包括IP地址/IP子網(wǎng)和下一跳/出接口信息。
路由器根據(jù)IP數(shù)據(jù)包的目的網(wǎng)段地址查找路由表決定轉(zhuǎn)發(fā)路徑,路由表記載著路由器所知的所有網(wǎng)段的路由信息。路由信息中包含要到達(dá)此目的網(wǎng)段需要將IP數(shù)據(jù)包轉(zhuǎn)發(fā)至哪一個(gè)下一跳相鄰設(shè)備地址。而轉(zhuǎn)發(fā)表記載著由哪個(gè)接口發(fā)出。
轉(zhuǎn)發(fā)表中每條轉(zhuǎn)發(fā)項(xiàng)都指明分組到某個(gè)網(wǎng)段或者某個(gè)主機(jī)應(yīng)該通過(guò)路由器的哪個(gè)物理接口發(fā)送,然后就可以到達(dá)該路徑的下一個(gè)路由器,或者不再經(jīng)過(guò)別的路由器而傳送到直接相連的網(wǎng)絡(luò)中的目的主機(jī)。
有了路由表和轉(zhuǎn)發(fā)表,就好比快遞站點(diǎn)根據(jù)包裹目的地查到了下一步要將包裹送到哪一個(gè)站點(diǎn),由誰(shuí)來(lái)負(fù)責(zé)發(fā)出。這樣本站點(diǎn)的工作就可以順利完成了。
值得一提的是,路由表被存放在路由器的RAM上,這就意味著路由器如果要維護(hù)的路由信息較多時(shí),必須有足夠的RAM,并且路由器重新啟動(dòng)后原來(lái)的路由信息都會(huì)消失。
路由器如何傳送數(shù)據(jù)呢
數(shù)據(jù)包在網(wǎng)絡(luò)上的傳送就好像是快遞公司運(yùn)送包裹一樣,通過(guò)多個(gè)快遞站點(diǎn)的收發(fā)最終將包裹送到客戶手中。類似的,每一個(gè)路由器只負(fù)責(zé)本站數(shù)據(jù)包通過(guò)最佳路徑轉(zhuǎn)發(fā),通過(guò)多個(gè)路由器一站一站的收發(fā)將數(shù)據(jù)包通過(guò)最佳路徑轉(zhuǎn)發(fā)到目的地。
(如果實(shí)施路由策略,數(shù)據(jù)包不一定選擇最佳路徑)
每個(gè)路由器都有多個(gè)輸入接口和多個(gè)輸出接口,它的輸入接口收到數(shù)據(jù)包后去除數(shù)據(jù)鏈路層封裝,交給網(wǎng)絡(luò)層處理。網(wǎng)絡(luò)層首先檢查報(bào)文是否是送給本機(jī)的,如果是,去掉網(wǎng)絡(luò)層封裝,送給上層協(xié)議處理。如果不是,則根據(jù)報(bào)文的目的地址將報(bào)文交給相應(yīng)輸出接口的數(shù)據(jù)鏈路層,封裝接口對(duì)應(yīng)的鏈路層協(xié)議后,將報(bào)文發(fā)送給下一個(gè)路由器。下一個(gè)路由器也重復(fù)此動(dòng)作,直至傳給路徑上最后的路由器,再由其將數(shù)據(jù)包送交目的主機(jī)。
怎樣實(shí)現(xiàn)數(shù)據(jù)包的最佳傳送呢
講到這里我們發(fā)現(xiàn),怎樣實(shí)現(xiàn)“最佳路徑”是個(gè)關(guān)鍵,別急,路由器是有自己的選路原則的。快來(lái)一起了解下吧。
我們先從了解IP數(shù)據(jù)包開(kāi)始。IP數(shù)據(jù)包結(jié)構(gòu)如下:
IP數(shù)據(jù)包中的目的IP地址是IP數(shù)據(jù)包的重要字段,路由器會(huì)根據(jù)數(shù)據(jù)包中的目的IP地址查找路由表,決定數(shù)據(jù)包的轉(zhuǎn)發(fā)方向。
路由器在決定數(shù)據(jù)包轉(zhuǎn)發(fā)路徑的時(shí)候會(huì)依次按照三大規(guī)則來(lái)選擇路由,以確保實(shí)現(xiàn)“最佳路徑”。
01
最長(zhǎng)匹配原則
最長(zhǎng)匹配原則就是在路由查找時(shí),使用路由表中到達(dá)同一目的地的子網(wǎng)掩碼最長(zhǎng)的路由。如下所示,去往20.1.1.1的數(shù)據(jù)包在路由表中同時(shí)有3條路由可以為此數(shù)據(jù)包進(jìn)行轉(zhuǎn)發(fā),分別是20.0.0.0、20.1.0.0和20.1.1.0。由于它們依次匹配到了網(wǎng)段的前8位、16位、24位,根據(jù)最長(zhǎng)匹配原則,去往20.1.1.1的數(shù)據(jù)包會(huì)用20.1.1.0的路由條目進(jìn)行轉(zhuǎn)發(fā),也就是從接口gei_0/1/0/3進(jìn)行轉(zhuǎn)發(fā)。
02
路由優(yōu)先級(jí)
一臺(tái)路由器上可以同時(shí)運(yùn)行多個(gè)路由協(xié)議。不同的路由協(xié)議都根據(jù)自己的標(biāo)準(zhǔn)來(lái)選擇路由,有的采用下一跳次數(shù)、有的采用帶寬,并且每個(gè)路由協(xié)議都把自己認(rèn)為是最好的路由送到路由表中。
這樣到達(dá)一個(gè)同樣的目的地址,可能由多條分別由不同路由協(xié)議學(xué)習(xí)來(lái)的路由,路由器必須選擇其中的一條路由加入到路由表中。由于這些路由的子網(wǎng)掩碼相同,最長(zhǎng)匹配原則已無(wú)法用來(lái)挑選路由,路由器應(yīng)該如何做呢?這時(shí)該路由優(yōu)先級(jí)上場(chǎng)了。
路由器上的不同的路由協(xié)議默認(rèn)有自己的路由優(yōu)先級(jí),數(shù)值小的優(yōu)先級(jí)高。當(dāng)我們有到達(dá)同一個(gè)目的地址的多條路由時(shí),可以根據(jù)優(yōu)先級(jí)的大小,選擇優(yōu)先級(jí)數(shù)值最小的作為最優(yōu)路由,同時(shí)將這條路由寫(xiě)進(jìn)路由表中。
在上圖中,一臺(tái)路由器上同時(shí)運(yùn)行兩個(gè)路由協(xié)議:RIP(優(yōu)先級(jí)120)和OSPF(優(yōu)先級(jí)110)。RIP與OSPF協(xié)議都發(fā)現(xiàn)并計(jì)算出了到達(dá)同一條網(wǎng)絡(luò)20.0.0.0/16的最佳路徑,但由于選路算法不同選擇了不同的路徑。由于OSPF具有比RIP高的路由優(yōu)先級(jí)(數(shù)值較?。月酚善鲗SPF學(xué)到的這條路由加入到路由表中。
03
Metric值
在路由器中,路由協(xié)議會(huì)學(xué)習(xí)到所有可能的路由,當(dāng)同一個(gè)路由協(xié)議學(xué)習(xí)到的路由不止一條時(shí),路由優(yōu)先級(jí)就不管用了,路由器該如何處理呢?這時(shí)輪到Metric值出場(chǎng)了。路由協(xié)議根據(jù)選路算法賦予每一跳一個(gè)metric值,每條路由的metric值等于路徑上每一跳metric值的和。比較各條路由的metric值,選擇metric值最小的路由為最佳路由。
例如,R1到R4有三條路由:R1-R2-R4、R1-R4和R1-R3-R4,R1-R2-R4路由的metric值為20(10+10),其他兩條路由的metric值為30,路由器會(huì)優(yōu)先選擇R1-R2-R4作為最佳路由。
講完路由,我們?cè)賮?lái)談?wù)勣D(zhuǎn)發(fā)。傳統(tǒng)的IP轉(zhuǎn)發(fā)表已不能滿足電信骨干網(wǎng)的高速轉(zhuǎn)發(fā)需求,為了提升轉(zhuǎn)發(fā)效率,路由器采用MPLS技術(shù),在路由表的基礎(chǔ)上生成MPLS標(biāo)簽轉(zhuǎn)發(fā)表,MPLS為每個(gè)IP數(shù)據(jù)包提供一個(gè)標(biāo)簽,與IP數(shù)據(jù)包一起封裝到新的MPLS數(shù)據(jù)包,標(biāo)簽決定IP數(shù)據(jù)包的傳輸路徑以及優(yōu)先順序。通過(guò)MPLS標(biāo)簽轉(zhuǎn)發(fā)數(shù)據(jù),路由器只需讀取數(shù)據(jù)包中的MPLS標(biāo)簽,無(wú)需讀取每個(gè)IP數(shù)據(jù)包中的IP地址信息,因此數(shù)據(jù)包的轉(zhuǎn)發(fā)速度大大提升。
5G網(wǎng)絡(luò)正在如火如荼地建設(shè),網(wǎng)絡(luò)中的數(shù)據(jù)量也會(huì)越來(lái)越大。路由器將會(huì)與SR、SDN等技術(shù)結(jié)合,提供更為簡(jiǎn)捷、高效的數(shù)據(jù)傳送。
責(zé)任編輯:ct
評(píng)論
查看更多