當前位置:股票大全官網 - 資訊咨詢 - 計算機網絡-網絡層-超網

計算機網絡-網絡層-超網

在劃分了子網的網絡中,可以同時使用多個不同的子網掩碼。使用VLSM(可變長度子網掩碼)可以進壹步提高IP地址資源的利用率。在VLSM的基礎上,進壹步研究了不分類尋址方法。它的正式名稱是無類域間路由(CIDR讀作“sider”)。

CIDR有兩個主要特點:

(I)CIDR將32位IP地址分為兩部分。前面部分是“網絡-前綴”(或簡稱“前綴”),用來表示網絡,後面部分用來表示主機。因此,CIDR使IP地址從三級尋址(使用子網掩碼)回歸到二級尋址,但這是沒有分類的二級尋址。它的符號是:

IP地址:= {;,& lt主機號> } (4-3)

CIDR也使用斜線記法,或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為最小地址,寫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位地址掩碼。地址掩碼由壹串1和壹串0組成,1的數字就是網絡前綴的長度。雖然CIDR不再使用子網,但壹些網絡仍然使用子網劃分和子網掩碼,因此CIDR使用的地址掩碼可以繼續稱為子網掩碼。比如/20地址塊的地址掩碼是:1111111165438。在斜線記法中,斜線後面的數字是地址掩碼中1的數字。

在“CIDR不使用子網”中,它表示CIDR沒有將32位地址中的幾個位指定為子網字段。但是,分配給CIDR地址塊的設備仍然可以根據需要劃分成壹些子網。這些子網也只有壹個網絡前綴和壹個主機號字段,但是子網的網絡前綴比整個單元的網絡前綴長。例如,如果壹個單元分配給地址塊/20,則可以進壹步劃分為8個子網(即需要借用主機號的3位來劃分子網)。此時每個子網的網絡前綴變成了23位(原來的20位加上主機號借用的3位),比單位的網絡前綴多了3位。

因為CIDR地址塊中有許多地址,所以路由表中會使用CIDR地址塊來查找目的網絡。這種地址聚合通常被稱為路由聚合,使路由表中的壹個條目能夠代表原傳統分類地址的多條路由(例如最後壹條),路由聚合也被稱為supemetting。路由聚合有利於減少路由器之間路由信息的交換,從而提高整個互聯網的性能。

CIDR記譜法有多種形式。例如,地址塊10.0.0/10可以縮寫為10/10,即省略點分十進制中連續的零。另壹種簡化表示是在網絡前綴後面加壹個星號*,如: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/60。然後大學可以自由分配地址塊給大學的所有部門,每個部門可以進壹步劃分自己部門的地址塊。

從圖4-25中可以清楚地看到地址聚合的概念。這家ISP***擁有64個C類網絡。如果不使用CIDR技術,每臺路由器的路由表中會有64個條目與SP的路由器交換路由信息。但是地址聚合後,路由聚合後只需壹個條目就能找到ISP,即206.0.64.0/18。同樣,這所大學有4個系,18。這個項目就像壹個大學郵件收發室。郵差不考慮本校所有部門的地址,而是集中投遞到本校收發室,然後由本校收發室進行下壹次投遞。這就減少了V送人員的工作量(相當於簡化了路由表的查找)。

從圖4-25下面的表格中的二進制地址可以看出,將四個系的路由聚合成大學的壹個路由(即形成壹個超網)就是縮短網絡前綴。網絡前綴越短,其地址塊包含的地址就越多。在P地址的三級結構中,劃分子網是為了讓chromium前綴更長。

使用CIDR時,由於網絡前綴的表示法,IP地址由網絡前綴和主機號組成,所以路由表中的條目要做相應的改變。此時,每壹項都由“網絡前綴”和“下壹跳地址”組成。但是在查找路由表時,您可能會得到多個匹配結果。這就給我們帶來了壹個問題:我們應該從這些匹配結果中選擇哪條路線?

答案是應該從匹配結果中選擇網絡前綴最長的路由。這叫做最長前綴匹配(longest prefix matching),因為chromium前綴越長,地址塊越小,所以路由越具體。最長前綴匹配也稱為最長匹配或最佳匹配,以說明最長前綴匹配的概念。

假設大學下面的第四系想要的是把轉發給第四系的數據報不經過大學的路由器直接發給第四系,但是不願意改變自己使用的P地址塊。所以SP的路由器路由表中至少要有兩項,分別是206.0.68.0/22(大學)和206.0.71.128/25(四個系統)。現在假設ISP收到目的IP地址為D=206.0.71.130的數據報。與路由表中這兩項的掩碼進行按位AND D運算。按以下順序寫出按位AND運算的結果:

d和111111111165438+。0000逐位和= 206.0.68.0/22匹配

d和111111111165438+。38+01111000000按位AND = 206 . 0 . 71.128/25匹配。

不難看出,路由表中有兩個目的網絡(大學和4系)匹配同壹個IP地址D。根據最長前綴(1位數)匹配的原則,應選擇後者,並將收到的數據報轉發到後者的目的網絡(四元),即應選擇兩個匹配地址中更具體的壹個。

從上面的討論可以看出,如果壹開始就在IP地址的分配中使用CIDR,那麽我們就可以根據網絡的地理位置來分配地址塊,這樣可以大大減少路由表中的路由項。例如,世界可以分為四個地區,每個地區都分配有壹個CIDR地址塊:

地址塊194/7 (194.0.0到195255.255,25)分配給歐洲:

地址塊198/7 (198.0.0至199.255.255,255)分配給貝勒大陸。

地址塊2007 (200.0.0到201255.255.255)分配給中美洲和南美洲:

地址塊202/7 (202.0.0到203255.255.255)分配給亞洲和太平洋地區。

上面的每個地址塊包含3200萬個地址,這種分配地址的方法使IP地址與地理位置相關聯。它的優點是可以大大減少路由表中的條目數量。比如任何壹個從中國到北美的IP數據報(不管是地址塊198/7中的哪個地址)都是先送到美國的壹個路由器,所以用路由表中的壹項就夠了。

使用CIDR後,查找最長前綴匹配變得更加復雜。當路由表中的條目數量很大時,如何減少路由表的搜索時間成為壹個非常重要的問題。例如,如果連接路由器的線路速度為10Gbit/s,平均數據包長度為2000位,那麽路由器平均每秒應能處理500萬個數據包(通常為5 Mbps)。換句話說,路由器處理壹個數據包的平均時間只有200 s (1ns = 10-9秒)。因此,找到每條路線所需的時間非常短。

對於未分類尋址的路由表,最簡單的搜索算法是循環搜索所有可能的前綴。例如,給定目的地址d。對於每個可能的網絡前綴長度m,路由器從d中提取前m位到網絡前綴中,然後在路由表中查找網絡前綴。找到的最長匹配對應於要找到的路線。

“這個最簡單算法的明顯缺點是搜索次數太多。最壞的情況是,該路由不在路由表中。在這種情況下,算法仍然需要做32次(32位的網絡前綴是特定的主機路由)。即使要找傳統的B類地址(即/16),也要搜索16次。這個算法對於經常使用的歌曲識別路由,要經過31次不必要的搜索。”

為了更有效地搜索,未分類尋址的路由表通常被存儲在壹個分層的數據結構中,然後從上到下進行分層搜索。這裏最常用的是二叉trie,是壹種結構特殊的樹。IP地址中從左到右的比特值決定了從根節點向下層逐層延伸的路徑,二進制線索中的每條路徑都代表了路由表中存儲的每個地址。

圖4-26舉例說明了二元線索的結構。圖中顯示了五個IP地址。為了簡化二進制線索的結構,可以先找出每個P地址對應的唯壹前綴。所謂唯壹前綴,是指在表中所有P地址中是唯壹的。這樣,這些唯壹的前綴就可以用來構建二元線索。搜索時,只要能匹配唯壹前綴。

二進制線程的根節點從上到下的深度最多32層,每壹層對應IP地址中的壹位。在IP地址中存儲二進制線索的規則很簡單。首先,檢查IP地址左邊的第壹位。如果為0,則第壹層的節點位於根節點的左下方。如果是1,在右下方。然後檢查地址的第二位來構造第二層的節點。依此類推,直到唯壹前綴的最後壹位數字。因為唯壹前綴壹般小於32位,所以用唯壹前綴構造的二進制線索的深度往往小於32層。圖中較粗的虛線是這個二進制線索中前綴0101的路徑。二進制線索中的小圓圈是中間節點,路徑末端的小方框是葉節點(也稱為外部節點)。每個葉節點代表壹個唯壹的前綴。節點間連接線旁邊的數字表示該邊在唯壹前綴中的對應位是0或1。

假設有壹個IP地址是1001 101 011 1010000000?0000000000,我們需要找出地址是否在這個二進制線索中。讓我們從最左邊開始。很容易發現,當找到第三個字符(前綴10後的0)時,二進制線索中沒有匹配,說明這個地址不在這個二進制線索中。

上面只給出了二進制線索作為數據結構的用法,並沒有說明“用唯壹前綴匹配”和“用網絡前綴匹配”的關系。顯然,為了在路由表中使用二進制線程,二進制線程中的每個葉節點還必須包含相應的網絡前綴和子網掩碼。當搜索葉節點時,該葉節點的目的地址和子網掩碼必須進行逐位and運算,以查看結果是否與相應的網絡前綴匹配。如果匹配,則根據下壹跳的接口轉發數據包。否則,數據包將被丟棄。

總之,二進制線索只是提供了壹種在路由表中快速找到匹配葉子節點的機制。但是這是否匹配網絡前綴需要與子網掩碼進行邏輯AND運算。

“為了提高尋找二進制線索的速度,各種壓縮技術被廣泛使用。例如,圖4-26中最後兩個地址的前四位是1011。因此,只要壹個地址的前四位是1011,就可以跳過前四位(即壓縮四級),直接從第五位開始比較。這可以減少搜索時間。當然,制作壓縮的二進制線索需要更多的計算,但這是值得的,因為它可以提高每次查找路由表時的搜索速度。”