Ⅰ 描述一下在路由轉發中最長前綴匹配原則的作用
最長前綴匹配原則在路由轉發中的作用是確保網路數據包能夠被准確、高效地傳送到目標地址,同時維護網路的穩定性和可靠性。
在計算機網路中,路由轉發是指網路設備(如路由器)根據路由表中的信息,將接收到的數據包轉發到下一個合適的網路節點。路由表是路由器進行轉發決策的依據,其中包含了網路地址和下一跳地址的映射關系。為了確保數據包能夠正確送達,路由表中的每一條記錄都對應著一個特定的網路前綴。
最長前綴匹配原則要求路由器在查找路由表時,選擇具有最長匹配前綴的路由條目進行數據包的轉發。這意味著路由器會優先選擇與目標地址匹配位數最多的網路前綴。例如,如果路由表中存在兩條記錄,一條對應前綴192.168.1.0/24(255.255.255.0),另一條對應前綴192.168.1.0/16(255.255.0.0),當目標地址為192.168.1.5時,根據最長前綴匹配原則,路由器會選擇第一條記錄進行轉發,因為它的前綴長度更長(24位),與目標地址的匹配度更高。
採用最長前綴匹配原則的好處主要有以下幾點:
1. 准確性:通過選擇匹配位數最多的前綴,可以確保數據包被發送到正確的子網或網路段,減少誤傳和丟失的可能性。
2. 高效性:在網路拓撲復雜的情況下,使用最長前綴匹配可以快速定位到最佳的下一跳地址,提高數據包的轉發效率。
3. 靈活性:隨著網路規模的不斷擴大和變化,最長前綴匹配原則可以適應不同長度的網路前綴,保持良好的可擴展性。
4. 可靠性:當網路中存在多條可行路徑時,最長前綴匹配有助於選擇更具體、更可靠的路由路徑,減少網路擁塞和故障的風險。
在實際應用中,路由器會根據接收到的數據包的目標IP地址,按照最長前綴匹配原則在路由表中查找對應的條目。找到匹配項後,路由器會將數據包轉發到指定的下一跳地址。這樣一級一級地轉發下去,最終數據包會到達目標主機。整個過程是自動完成的,用戶無需手動干預。
Ⅱ 關於計算機四級網路工程師最後一題,照片上畫紅線圈起來地方為什麼CIDR聚合是28位,
路由選擇的網路前綴和主機掩碼問題解腔鋒臘釋幾點:
1、基斗這個核心路由器與匯聚路由器之間的地址段確實是152.26.63.0/28,但是網路前綴卻是152.26.63.0,只不過主機號是由掩碼255.255.255.240決定的,也就是說152.26.63.0/28的可用IP地址是152.26.63.1------152.26.63.14,「IP地址由網路前綴和主機號兩部分組成」就是這個意思。
2、對於「路由選擇就變成從匹配結果中選擇具有最長網路前綴的路由的過程」,這句話針對的伍滑是Re、Rf、Rg的路由器,比如:ip route 156.26.3.0 255.255.255.0 156.26.63.2 這條靜態路由是Re上的,這條路由選擇的匹配過程中選擇最長網路前綴就是156.26.3.0 ,下一跳是156.26.63.2。
所以152.26.63.0/28這個地址段是給匯聚路由器Re與接入路由器(Ra、Rb。。)上的介面做IP設置用的,即152.26.63.1------152.26.63.14這些地址全是路由的下一跳地址。
3、同理,匯聚路由器Rf與接入路由器(Rc、Rd...)介面IP地址段是152.26.63.16/28,即152.26.63.17------152.26.63.30這些地址分配給Rc的E2地址是152.26.63.17,Rf的E0地址是152.26.63.19,Rd的152.26.63.18,Rx的152.26.63.20(21).。。。
因此,網路前綴概念要清楚,掩碼的概念能幫助你理解IP地址的概念,這些是網路考試的根本。
Ⅲ 設某路由器建立了如表所示的路由表,(下一跳地址若直接交付則表示應當從哪一個介面轉發出去)
路由表有最長前綴匹配原則。
解:
(1)分組的目的站IP地址為:128.96.39.10。先與子網掩碼255.255.255.128相與,得128.96.39.0,可見該分組經介面0轉發。
(2)分組的目的IP地址為:128.96.40.12。
① 與子網掩碼255.255.255.128相與得128.96.40.0,不等於128.96.39.0。
② 與子網掩碼255.255.255.128相與得128.96.40.0,經查路由表可知,該項分組經R2轉發。
(3)分組的目的IP地址為:128.96.40.151,與子網掩碼255.255.255.128相與後得128.96.40.128,與子網掩碼255.255.255.192相與後得128.96.40.128,經查路由表知,該分組轉發選擇默認路由,經R4轉發。
路由轉發時,使用的是遞歸查找、最長匹配,並不想能想像的那麼智能。會將目的IP地址與所有子網掩碼與,然後選擇匹配最長的作為最佳路徑,轉發數據包。如果不做產品研發的話,這些東西不需要詳細了解的。
(3)計算機網路前綴匹配習題擴展閱讀:
在計算機網路中,路由表或稱路由擇域信息庫(RIB)是一個存儲在路由器或者聯網計算機中的電子表格(文件)或類資料庫。路由表存儲著指向特定網路地址的路徑(在有些情況下,還記錄有路徑的路由度量值)。路由表中含有網路周邊的拓撲信息。路由表建立的主要目標是為了實現路由協議和靜態路由選擇。
在現代路由器構造中,路由表不直接參與數據包的傳輸,而是用於生成一個小型指向表,這個指向表僅僅包含由路由演算法選擇的數據包傳輸優先路徑,這個表格通常為了優化硬體存儲和查找而被壓縮或提前編譯。
Ⅳ 計算機網路-網路層-超網
在一個劃分子網的網路中可同時使用幾個不同的子網掩碼。使用變長子網掩碼VLSM(Variable Length Subnet Mask)可進一步提高IP地址資源的利用率。在VLSM的基礎上又進一步研究出無分類編址方法,它的正式名字是 無分類域間路由選擇CIDR (Classless Inter-Domain Routing,CIDR的讀音是「sider'」)。
CIDR最主要的特點有兩個:
(I)CIDR把32位的IP地址劃分為前後兩個部分。前面部分是「網路前綴」(network-prefix)(或簡稱為「前綴」),用來指明網路,後面部分則用來指明主機。因此CIDR使IP地址從三級編址(使用子網掩碼)又回到了兩級編址,但這已是無分類的兩級編址。其記法是:
IP地址:={<網路前綴>,<主機號>} (4-3)
CIDR還使用「斜線記法」(slash notation),或稱為CIDR記法,即在IP地址後面加上斜線「/」,然後寫上網路前綴所佔的位數。
(2)CIDR把網路前綴都相同的連續的IP地址組成一個「CIDR地址塊」。我們只要知道CIDR地址塊中的任何一個地址,就可以知道這個地址塊的起始地址(即最小地址)和最大地址,以及地址塊中的地址數。例如,已知IP地址128.14.35.7/20是某CIDR地址塊中的一個地址,現在把它寫成二進製表示,其中的前20位是網路前綴,而後面的12位是主機號:
128.14.35.7/20= 1000 0000 0000 1110 0010 0011 0000 0111
這個地址所在的地址塊中的最小地址和最大地址可以很方便地得出:找出 地址掩碼(斜線後面的數字個數是掩碼地址1的個數, 20位)中1和0的交界處 發生在地址中的哪一個位元組。現在是在第三個位元組,取後面12 都寫成0是最小地址,寫成1為最大地址。
最小地址:128.14.32.0 1000 0000 0000 1110 0010 0000 0000 0000
最大地址:128.14.47.255 1000 0000 0000 1110 0010 1111 1111 1111
以上這兩個特殊地址的主機號是全0和全1的地址。一般並不使用。通常只使用在這兩個特殊地址之間的地址。 這個地址塊共有2^12個地址(2 的主機號位數次冪) 。我們可以用地址塊中的最小地址和網路前綴的位數指明這個地址塊。例如,上面的地址塊可記為128.14.32.0/20。在不需要指出地址塊的起始地址時,也可把這樣的地址塊簡稱為「/20地址塊」。
為了更方便地進行路由選擇,CIDR使用32位的地址掩碼(address mask)。地址掩碼由一串1和一串0組成,而1的個數就是網路前綴的長度。雖然CIDR不使用子網了,但由於目前仍有一些網路還使用子網劃分和子網掩碼,因此CIDR使用的地址掩碼也可繼續稱為子網掩碼。例如,/20地址塊的地址掩碼是:1111 1111 1111 1111 1111 0000 0000 0000(20個連續的1)。 斜線記法中,斜線後面的數字就是地址掩碼中1的個數。
在「CIDR不使用子網」是指CIDR並沒有在32位地址中指明若干位作為子網欄位。但分配到一個CIDR地址塊的單位,仍然可以在本單位內根據需要劃分出一些子網。這些子網也都只有一個網路前綴和一台主機號欄位,但子網的網路前綴比整個單位的網路前綴要長些。例如,某單位分配到地址塊/20,就可以再繼續劃分為8個子網(即需要從主機號中借用3位來劃分子網)。這時每一個子網的網路前綴就變成23位(原來的20位加上從主機號借來的3位),比該單位的網銘前綴多了3位。
由於一個CIDR地址塊中有很多地址,所以在路由表中就利用CIDR地址塊來查找目的網路。這種地址的聚合常稱為 路由聚合 (route aggregation),它使得路由表中的一個項目可以表示原來傳統分類地址的很多個(例如上干個)路由, 路由聚合也稱為構成超網 (supemetting)。路由聚合有利於減少路由器之間的路由選擇信息的交換,從而提高了整個互聯網的性能。
CIDR記法有多種形式,例如,地址塊10.0.0.0/10可簡寫為10/10,也就是把點分十進制中低位連續的0省略。另一種簡化表示方法是在網路前綴的後面加一個星號*,如:0000101000*意思是:在星號*之前是網路前綴,而星號◆表示P地址中的主機號,可以是任意值。
前綴位數不是8的整數倍時,需要進行簡單的計算才能得到一些地址信息。表47給出了最常用的CIDR地址塊。表中的K表示2^10=1024,網路前綴小於13或大於27都較少使用。在「包含的地址數」中沒有把全1和全0的主機號除外。
從表4-7可看出,每一個CIDR地址塊中的地址數一定是2的整數次冪。CIDR地址塊多數可以包含多個C類地址(是一個C類地址的2」倍,n是整數),這就是「 構成超網 」這一名詞的來源。
使用CIDR的一個好處就是可以更加有效地分配PV4的地址空間,可根據客戶的需要分配適當大小的CIDR地址塊。假定某ISP已擁有地址塊206.0.64.0/18(相當於有64個C類網路)。現在某大學需要800個IP地址。ISP可以給該大學分配一個地址塊206.0.68.0/22,它包括1024(即2^10)個1P地址,相當於4個連續的C類(/24地址塊),占該ISP擁有的地址空間的1/16。這個大學然後可自由地對本校的各系分配地址塊,而各系還可再劃分本系的地址塊。
從圖4-25可以清楚地看出地址聚合的概念。這個ISP共擁有64個C類網路。如果不採用CIDR技術,則在與該SP的路由器交換路由信息的每一個路由器的路由表中,就需要有64個項目,但採用地址聚合後,就只需用路由聚合後的一個項目206.0.64.0/18就能找到該ISP,同理,這個大學共有4個系,在1SP內的路由器的路由表中,也需使用206.0.68.022這個項目。這個項目好比是大學的收發室。凡寄給這個大學任何一個系的郵件,郵遞員都不考慮大學各個系的地址,而是把這些郵件集中投遞到大學的收發室,然後由大學的收發室再進行下一步的投遞。這樣就減輕了v遞員的工作量(相當於簡化了路由表的查找)。
從圖4-25下面表格中的二進制地址可看出,把四個系的路由聚合為大學的一個路由(即構成超網),是將網路前綴縮短。 網路前綴越短,其地址塊所包含的地址數就越多。而在三級結構的P地址中,劃分子網是使網鉻前綴變長。
在使用CIDR時,由於採用了網路前綴這種記法,IP地址由網路前綴和主機號這兩個部分組成,因此在路由表中的項目也要有相應的改變。這時, 每個項目由「網路前綴」和「下一跳地址」組成 。但是在查找路由表時可能會得到不止一個匹配結果。這樣就帶來一個間題:我們應當從這些匹配結果中選擇哪一條路由呢?
答案是:應當從匹配結果中 選擇具有最長網路前綴的路由 。這叫做 最長前綴匹 配longest-.prefix matching) ,這是因為網鉻前綴越長,其地址塊就越小,因而路由就越具體(more specific)。最長前綴匹配又稱為最長匹配或最佳匹配,為了說明最長前綴匹配的概念。
假定大學下屬的四系希望IS把轉發給四系的數據報直接發到四系面不要經過大學的路由器,但又不願意改變自己使用的P地址塊。因此,在SP的路由器的路由表中,至少要有以下兩個項目,即206.0.68.0/22(大學)和206.0.71.128/25(四系)。現在假定ISP收到一個數據報,其目的IP地址為D=206.0.71.130。把D分別和路由表中這兩個項目的掩碼逐位相「與」(AND操作)。將所得的逐位AND操作的結果按順序寫在下面:
D和 1111 1111 1111 1111 1111 11 00 0000 0000逐位相「與」 = 206.0.68.0/22 匹配
D和 1111 1111 1111 1111 1111 1111 1 000 0000逐位相「與」 = 206.0.71.128/25 匹配
不難看出,現在同一個IP地址D可以在路由表中找到兩個目的網路(大學和四系)和該地址相匹配。根據 最長前綴(1的位數) 匹配的原理,應當選擇後者,把收到的數據報轉發到後一個目的網路(四系),即選擇兩個匹配的地址中更具體的一個。
從以上的討論可以看出,如果IP地址的分配一開始就採用CIDR,那麼我們可以按網路所在的地理位置來分配地址塊,這樣就可大大減少路由表中的路由項目。例如,可以將世界劃分為四大地區,每一地區分配一個CIDR地址塊:
地址塊194/7(194.0.0.0至195255.255,25)分配給歐洲:
地址塊198/7(198.0.0.0至199.255.255,255)分配給北類洲
地址塊2007(200.0.0.0至201255.255.255)分配給中美洲和南美洲:
地址塊202/7(202.0.0.0至203255.255.255)分配給亞洲和太平洋地區,
上面的每一個地址塊包含有釣3200萬個地址,這種分配地址的方法就使得IP地址與地理位置相關聯。它的好處是可以大大壓縮路由表中的項目數。例如,凡是從中國發往北美的IP數據報(不管它是地址塊198/7中的哪一個地址)都先送交位於美國的一個路由器,因此在路由表中使用一個項目就行了。
使用CIDR後,由於要尋找最長前綴匹配,使路由表的查找過程變得更加復雜了。當路由表的項目數很大時,怎樣設法減小路由表的查找時間就成為一個非常重要的問題。例如,連接路由器的線路的速率為10Gbit/s,而分組的平均長度為2000bit,那麼路由器就應當平均每秒鍾能夠處理500萬個分組(常記為5Mpps)。或者說,路由器處理一個分組的平均時間只有200s(1ns=10^-9秒)。因此,查找每一個路由所需的時間是非常短的。
對無分類編址的路由表的最簡單的查找演算法就是對所有可能的前綴進行循環查找。例如,給定一個目的地址D。對每一個可能的網路前綴長度M,路由器從D中提取前M個位成一個網路前綴,然後查找路由表中的網路前綴。所找到的最長匹配就對應於要查找的路由。
"這種最簡單的演算法的明顯缺點就是查找的次數太多。最壞的情況是路由表中沒有這個路由。在這種情況下,演算法仍要進行32次(具有32位的網路前綴是一個特定主機路由)。就是要找到一個傳統的B類地址(即/16),也要查找16次。對於經常使用的歌認路由,這種演算法都要經歷31次不必要的查找。"
為了進行更加有效的查找,通常是把無分類編址的路由表存放在一種層次的數據結構中,然後自上而下地按層次進行查找。這里最常用的就是 二叉線索 (binary trie),它是一種特殊結構的樹。IP地址中從左到右的比特值決定了從根節點逐層向下層延伸的路徑,而二叉線索中的各個路徑就代表路由表中存放的各個地址。
圖4-26用一個例子來說明二叉線索的結構。圖中給出了5個IP地址。為了簡化二叉線索的結構,可以先找出對應於每一個P地址的唯一前綴(unique prefix)。所謂唯一前綴就是在表中所有的P地址中,該前綴是唯一的。這樣就可以用這些唯一前綴來構造二叉線索。在進行查找時,只要能夠和唯一前綴相匹配就行了。
從二叉線索的根節點自頂向下的深度最多有32層,每一層對應於IP地址中的一位。一個IP地址存入二叉線索的規則很簡單。先檢查IP地址左邊的第一位,如為0,則第一層的節點就在根節點的左下方;如為1,則在右下方。然後再檢查地址的第二位,構造出第二層的節點。依此類推,直到唯一前綴的最後一位。由於唯一前綴一般都小於32位,因此用唯一前綴構造的二叉線索的深度往往不到32層。圖中較粗的折線就是前綴0101在這個二叉線索中的路徑。二叉線索中的小圓圈是中間節點,而在路徑終點的小方框是葉節點(也叫做外部節點)。每個葉節點代表一個唯一前綴。節點之間的連線旁邊的數字表示這條邊在唯一前綴中對應的比特是0或1。
假定有一個IP地址是1001 1011 0111 1010 0000 0000 0000 0000,需要查找該地址是否在此二叉線索中。我們從最左邊查起。很容易發現,查到第三個字元(即前綴10後面的0)時,在二叉線索中就找不到匹配的,說明這個地址不在這個二叉線索中。
以上只是給出了二叉線索這種數據結構的用法,而並沒有說明「與唯一前綴匹配」和「與網路前綴匹配」的關系。顯然,要將二叉線索用於路由表中,還必須使二叉線索中的每一個葉節點包含所對應的網路前綴和子網掩碼。當搜索到一個葉節點時,就必須 將尋找匹配的目的地址和該葉節點的子網掩碼進行逐位「與」運算,看結果是否與對應的網路前綴相匹配 。若匹配,就按下一跳的介面轉發該分組。否則,就丟棄該分組。
總之,二叉線索只是提供了一種可以快速在路由表中找到匹配的葉節點的機制。但這是否和網路前綴匹配,還要和子網掩碼進行一次邏輯與的運算。
「為了提高二叉線索的查找速度,廣泛使用了各種 壓縮技術 。例如,在圖4-26中的最後兩個地址,其最前面的4位都是1011。因此,只要一個地址的前4位是1011,就可以跳過前面4位(即壓縮了4個層次)而直接從第5位開始比較。這樣就可以減少查找的時間。當然,製作經過壓縮的二叉線索需要更多的計算,但由於每一次查找路由表時都可以提高查找速度,因此這樣做還是值得的。」