疫情期間,網購成了我們主要的購物方式,每天都在期待著快遞小哥能快點到來。支撐我們網購的Internet網絡中,也有收發(fā)數據包的快遞站點——路由器。
路由器是連接兩個或多個網絡的硬件設備,工作在TCP/IP協(xié)議的網絡層,在網絡間扮演網關的角色。路由器的一個作用是連通Internet中各局域網、廣域網,另一個作用是選擇數據包的最佳傳送線路。
想要深入了解路由器,要從路由器的內部結構講起了。
路由器由輸入接口、輸出接口、交換結構、路由選擇處理器四個部分組成。執(zhí)行兩個最重要的基本功能:路由功能和交換(轉發(fā))功能。相應的路由器內部整體也分為路由選擇和分組轉發(fā)兩個部分。
路由選擇部分工作在控制層面,主要由軟件實現。核心組件是路由選擇處理器,通過運行路由協(xié)議維護路由表以及連接的鏈路狀態(tài)信息,并生成轉發(fā)表。
分組轉發(fā)部分工作在數據層面,主要由硬件實現。核心組件是處理芯片和交換結構,交換結構是一個路由器中的網絡,將路由器的輸入接口和輸出接口相連接。依據轉發(fā)表來轉發(fā)分組數據包,將輸入接口的數據包移送至適當的輸出接口(在路由器內部進行)。
路由表:可以是管理員手工配置的,也可以通過動態(tài)路由協(xié)議自動學習形成,通常由路由協(xié)議和路由管理模塊維護,包括IP地址/IP子網、下一跳、路由優(yōu)先級、度量值等信息。
轉發(fā)表:是基于路由表生成的,路由?實際轉發(fā)時使用轉發(fā)表,包括IP地址/IP子網和下一跳/出接口信息。
有了路由表和轉發(fā)表,就好比快遞站點根據包裹目的地查到了下一步要將包裹送到哪一個站點,由誰來負責發(fā)出。這樣本站點的工作就可以順利完成了。
值得一提的是,路由表被存放在路由器的RAM上,這就意味著路由器如果要維護的路由信息較多時,必須有足夠的RAM,并且路由器重新啟動后原來的路由信息都會消失。
數據包在網絡上的傳送就好像是快遞公司運送包裹一樣,通過多個快遞站點的收發(fā)最終將包裹送到客戶手中。類似的,每一個路由器只負責本站數據包通過最佳路徑轉發(fā),通過多個路由器一站一站的收發(fā)將數據包通過最佳路徑轉發(fā)到目的地。
每個路由器都有多個輸入接口和多個輸出接口,它的輸入接口收到數據包后去除數據鏈路層封裝,交給網絡層處理。網絡層首先檢查報文是否是送給本機的,如果是,去掉網絡層封裝,送給上層協(xié)議處理。如果不是,則根據報文的目的地址將報文交給相應輸出接口的數據鏈路層,封裝接口對應的鏈路層協(xié)議后,將報文發(fā)送給下一個路由器。下一個路由器也重復此動作,直至傳給路徑上最后的路由器,再由其將數據包送交目的主機。
講到這里我們發(fā)現,怎樣實現“最佳路徑”是個關鍵,別急,路由器是有自己的選路原則的。快來一起了解下吧。
我們先從了解IP數據包開始。IP數據包結構如下:
IP數據包中的目的IP地址是IP數據包的重要字段,路由器會根據數據包中的目的IP地址查找路由表,決定數據包的轉發(fā)方向。
路由器在決定數據包轉發(fā)路徑的時候會依次按照三大規(guī)則來選擇路由,以確保實現“最佳路徑”。
最長匹配原則就是在路由查找時,使用路由表中到達同一目的地的子網掩碼最長的路由。如下所示,去往20.1.1.1的數據包在路由表中同時有3條路由可以為此數據包進行轉發(fā),分別是20.0.0.0、20.1.0.0和20.1.1.0。由于它們依次匹配到了網段的前8位、16位、24位,根據最長匹配原則,去往20.1.1.1的數據包會用20.1.1.0的路由條目進行轉發(fā),也就是從接口gei_0/1/0/3進行轉發(fā)。
一臺路由器上可以同時運行多個路由協(xié)議。不同的路由協(xié)議都根據自己的標準來選擇路由,有的采用下一跳次數、有的采用帶寬,并且每個路由協(xié)議都把自己認為是最好的路由送到路由表中。這樣到達一個同樣的目的地址,可能由多條分別由不同路由協(xié)議學習來的路由,路由器必須選擇其中的一條路由加入到路由表中。由于這些路由的子網掩碼相同,最長匹配原則已無法用來挑選路由,路由器應該如何做呢?這時該路由優(yōu)先級上場了。
路由器上的不同的路由協(xié)議默認有自己的路由優(yōu)先級,數值小的優(yōu)先級高。當我們有到達同一個目的地址的多條路由時,可以根據優(yōu)先級的大小,選擇優(yōu)先級數值最小的作為最優(yōu)路由,同時將這條路由寫進路由表中。
在上圖中,一臺路由器上同時運行兩個路由協(xié)議: RIP(優(yōu)先級120)和OSPF(優(yōu)先級110)。 RIP與OSPF協(xié)議都發(fā)現并計算出了到達同一條網絡20.0.0.0/16的最佳路徑,但由于選路算法不同選擇了不同的路徑。由于OSPF具有比RIP高的路由優(yōu)先級(數值較?。?,所以路由器將OSPF學到的這條路由加入到路由表中。
在路由器中,路由協(xié)議會學習到所有可能的路由,當同一個路由協(xié)議學習到的路由不止一條時,路由優(yōu)先級就不管用了,路由器該如何處理呢?這時輪到Metric值出場了。路由協(xié)議根據選路算法賦予每一跳一個metric值,每條路由的metric值等于路徑上每一跳metric值的和。比較各條路由的metric值,選擇metric值最小的路由為最佳路由。
例如,R1到R4有三條路由:R1-R2-R4、R1-R4和R1-R3-R4,R1-R2-R4路由的metric值為20(10+10),其他兩條路由的metric值為30,路由器會優(yōu)先選擇R1-R2-R4作為最佳路由。
講完路由,我們再來談談轉發(fā)。傳統(tǒng)的IP轉發(fā)表已不能滿足電信骨干網的高速轉發(fā)需求,為了提升轉發(fā)效率,路由器采用MPLS技術,在路由表的基礎上生成MPLS標簽轉發(fā)表,MPLS為每個IP數據包提供一個標簽,與IP數據包一起封裝到新的MPLS數據包,標簽決定IP數據包的傳輸路徑以及優(yōu)先順序。通過MPLS標簽轉發(fā)數據,路由器只需讀取數據包中的MPLS標簽,無需讀取每個IP數據包中的IP地址信息,因此數據包的轉發(fā)速度大大提升。
5G網絡正在如火如荼地建設,網絡中的數據量也會越來越大。路由器將會與SR、SDN等技術結合,提供更為簡捷、高效的數據傳送。
免責聲明:本文內容由21ic獲得授權后發(fā)布,版權歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯系我們,謝謝!