Ⅰ 計算機網路-4-4-轉發分組,構建子網和劃分超網
上圖是一個路由器怎麼進行分組轉發的例子:有四個A類網路通過三個路由器連接在一起,每一個網路上都可能會有成千上萬台主機。若路由表指出每一台主機該進行怎樣的轉發。則要維護的路由表是非常的龐大。 如果路由表指定到某一個網路如何轉發,則路由表中只有4行,每一行對應一個網路。 以路由器2的路由表為例:由於R2同時連接在網路2和網路3上,因此只要目標主機在網路2或者網路3上,都可以通過介面0或者1或者路由器R2直接交付(當然還有使用ARP協議找到這些主機相應的MAC地址)。若目標主機在網路1中,則下一跳路由器為R1,其IP地址為20.0.0.7。路由器R2和R1由於同時連接在網路2上,因此從路由器2把轉發分組給R1是很容易的。 我們應當注意到:每一個路由器至少都要擁有兩個不同的IP地址。 總之,在路由表中,對每一條路由最主要的是以下兩條信息: (目的網路,下一跳地址) 我們根據目的網路地址來確定下一跳路由器,這樣可以得到以下結論:
雖然互聯網上所有的分組轉發都是 基於目的主機所在的網路 ,但是在大多數情況下都允許這樣的實例: 對特定的主機指明一個路由 ,這種路由叫 特定主機路由 。採用特定主機路由可以使網路人員方便管理控制網路和測試網路
路由器還可以採用 默認路由 以減少路由表所佔用的空間和搜索路由表所使用的時間。
當路由器接收到一個待轉發的數據報,在從路由表中得出下一跳路由器的IP地址後,不是把這個地址寫入IP數據報,而是送交 數據鏈路層的網路介面軟體 ,網路介面軟體把負責下一跳的路由器IP地址轉化為硬體地址(必須使用ARP),將硬體地址寫入MAC幀的首部,然後根據這個硬體地址找到下一跳路由器。由此可見,當發送一連串的數據報時,上述的這種查找路由表,用ARP得到硬體地址,把硬體地址寫入MAC地址首部等過程,將不斷地重復進行,造成了一定的開銷。
根據以上幾點,我們提出 分組轉發演算法:
這里我們需要強調一下,路由表並沒有給分組指明某個網路的完整路徑(即先經過哪一個路由器,然後再經過哪一個路由器,等等)。路由表指出,到達某個網路應該先到達某個路由器(下一條路由器),在到達下一跳路由器之後,再繼續查找路由表,知道再下一步應當到達哪一個路由器。這樣一步步的查找下去,直到最後到達目的網路。
為什麼劃分子網?
為解決上述問題,從1985年引出 子網路號欄位 ,使得兩級IP地址變為三級IP地址,這種做法叫做 劃分子網(subnetting)【RFC950】 。
劃分子網的基本思路:
劃分子網的用例
如上圖為某單位擁有一個B類IP地址,網路地址為145.13.0.0(網路號為145.13),凡是目的網路為145.13.x.x的數據報都會送到這個網路上路由器R1上。
現在把該網路劃分為三個字網,這里假設子網路號佔用8位,因此主機號就只剩下16-8=8位了,所劃分的三個字網為145.13.3.0,145.13.7.0,145.3.21.0。路由器在接受到145.13.0.0上的路由器數據後,再根據數據報的目的地址把它轉化到相應的子網。
總之,當沒有劃分子網的時候,IP地址是兩節結構。劃分子網後IP地址就變成了三級結構。劃分子網只是把IP地址的主機號這部分進行再劃分,而不改變IP地址原來的網路號。
假定有一個IP數據報(其目的地址為145.13.3.10)已經到達了路由器R1,那麼這個路由器如何把它轉發到子網145.13.3.0呢?
我們知道,從IP數據包報的首部無法看出源主機的目的主機所連接的網路是否進行了子網劃分。這是因為32位IP地址本身以及數據報的首部沒有包含任何關於子網劃分的信息。因此必須另想辦法,這就是使用 子網掩碼 。
把三級IP地址的子網掩碼和收到的目的地址的IP地址 逐位進行與(AND)運算,就可以立即得到網路地址,剩下的步驟就交給路由器處理分組。
使用子網掩碼的好處是:不管網路有沒有劃分子網,只要把子網掩碼和IP地址進行逐位 與(AND) 運算,就立即得出網路地址來,這樣在路由器處理到來的分組時就可採取同樣的做法。
在不劃分子網時,為什麼還要使用子網掩碼?這就是為了更便於查找路由表。現在互聯網規定:所有網路都必須使用子網掩碼,同時在路由器的路由表中也必須有子網掩碼這一欄。如果一個網路不劃分子網,那麼該網路的子網掩碼就是用 默認的子網掩碼 ,默認子網掩碼中1的位置和IP地址中的網路號欄位net-id正好相對應。因此,若用默認子網掩碼和某個不劃分子網的IP地址逐位相"與",就應該能夠得出該IP地址的網路地址來,這樣做可以不用查找該地址的類別位就能夠知道這是哪一類的IP地址。顯然:
圖4-21是這三類IP地址的網路地址和相應的默認子網掩碼:
子網掩碼是一個網路或者一個子網的重要屬性 。在RFC950成為互聯網標准後,路由器在和相鄰路由器交換路由信息時,必須把自己所在的網路(或子網)的子網掩碼告訴相鄰路由器,在路由器的路由表中的每一個項目,除了要給出目的網路地址外,還必須同時給出該網路的子網掩碼。若一個路由器連接在兩個子網上就擁有兩個網路地址和兩個子網掩碼。
例4-2:
已知IP地址是141.14.72.24,子網掩碼是255.255.192.0,求網路地址:
解: 255.255.192.0的二進制:11111111 11111111 11000000 00000000
IP 141.14.72.24二進制: 11111111 11111111 01001000
00000000
將IP地址二進制與子網掩碼二進制進行 與(AND)運算 為 ::11111111 11111111 11000000 00000000
即網路IP為:141.14.64.0
在劃分子網的情況下,分組轉發的演算法必須作出改動。在使用子網劃分後,路由表應該包含以下內容:
在劃分子網的情況下,路由器轉發分組的演算法如下:
例4-4:
圖4-24有三個字網,兩個路由器,以及路由器R1的部分路由表。現在源主機H1向目的主機H2發送分組。試討論R1收到H1向H2發送的分組後查路由表的過程。
解:
源主機H1向目標主機H2發送的分組的目的地址為128.30.33.138。
源主機H1把本子網的子網掩碼255.255.255.128與H2的IP地址128.30.33.128相與得到128.30.33.128,它不等於H1的網路地址(128.30.33.0)。這說明主機H2與主機H1不在同一個網段上,因此H1不能把數據包直接交付給H2。必須交給子網上的默認路由R1,由R1轉發。
路由表在接受到這個分組之後,就在其路由表中逐行匹配尋找。
首先看R1路由表的第一行:用這一行的子網掩碼255.255.255.128與H2IP地址進行互與,得到128.30.33.128,然後和這一行用樣的方法進行第二行,結果發現相與出來的結果和目的網路地址匹配,則說明這個網路(子網2)就是收到的分組所要尋找的目的網路。於是就不用繼續找了。R1把分組從介面1直接交付給主機H2(他們都在一個子網上)。
在一個劃分子網的網路中可使用幾個不同的子網掩碼。使用變長 子網掩碼VLSM(Variable Length Subnet Mask) 可進一步提高IP地址資源的利用率。在VLSM的基礎上又進一步研究出 無分類編制 方法。它的正式名字是無分類域間路由選擇CIDR(Classless Inter-Domain Routing)。
CIDR 最主要的特點有兩個:
CIDR還使用斜線記法,就是在IP地址後面加上斜線/,然後寫上 網路前綴所佔的位數 。例如IP地址為128.14.35.7/20是某CIDR地址快中的一個地址,其中前20位就是網路前綴,後面的14位是主機位。如圖所示:
當然以上地址的主機號全為0和全為1的地址,一般並不使用,這個地址塊共有2^12個地址,我們可以使用地址塊中最小的地址和網路前綴來指明這個地址快。例如,上述的地址塊可記為128.14.32.0/20。
為了更方便的進行路由選擇,CIDR使用了32位的地址掩碼(address mask)。地址掩碼是由一串1和一串0組成, 而1的個數就是網路前綴的個數。 雖然CIDR不使用子網了,但是出於某些原因,CIDR使用的地址掩碼也可以繼續稱為 子網掩碼,斜線記法中,斜線後面的數字就是1的個數 。例如,/20地址快的地址掩碼是 11111111 11111111 11110000 00000000 (20個連續的1)。 斜線記法中,斜線後面的數字就是地址掩碼中1的個數。
斜線記法還有一個好處就是它除了可以表示一個IP地址外,還提供了一些其他重要的信息。我們舉例說明如下:
例如,地址為192.199.170.82/27不僅表示IP地址是192.199.170.82,而且還表示這個地址快的網路前綴有27位(剩下的5位是主機號),因此這個地址快包含32個IP地址( =32)。通過見到那的計算還可以得出,這個地址塊的最小地址是192.199.170.64,最大地址是192.199.170.95。具體的計算方法是這樣的:找到地址掩碼中1和0的交界處發生在地址中的哪一個位元組,現在是第四個位元組,因此只要把這一個位元組的十進制82用二進製表示即可:82的二進制是01010010,取其前3位(這3位加上前3位元組的24位就夠成了27位),再把後面的5位都寫成0,即01000000,等於十進制64,這樣就找到了地址快的最小地址192.199.170.64,再把最後面5位都置為1,即01011111,等於十進制的95,這就找到了地址塊中的最大地址192.199.170.95。
由於一個CICR地址塊有很多地址,所以在路由表中就利用CIDR地址塊來查找目的網路。這種地址的聚合常稱之為 路由聚合(route aggregation) ,它使得路由表中的一個項目可以表示原來傳統分類地址的很多個路由,路由聚合也稱之為 構成超網(supernetting) ,路由聚合有利於減少路由器之間的路由選擇信息的交換,從而提高了整個互聯網的性能。
每一個CIDR地址塊中的地址數一定是2的整數次冪,這就是 構建超網 的來源。
網路前綴越短 ,其地址塊所包含的地址數就越多,而在三級結構的IP地址中,劃分子網是使網路前綴變長。
在使用了CIDR時,由於採用網路前綴這種記法,IP地址由網路前綴和主機號這兩部分組成,因此在路由表中的項目也要有相應的變化,這時,每個項目由 網路前綴 和 下一跳地址組成 , 但是在查找路由表時可能會得到不止一個匹配結果 ,這樣就帶來一個問題:我們應該從這些匹配結果中選擇哪一條路由呢?
正確的答案是: 應但從匹配結果中選擇具有最長網路前綴的路由 ,這就做 最長前綴匹配(long-prefix matching) ,這是因為網路前綴越長,說明其地址塊越小因而路由就越具體,最長前綴匹配又稱之為 最長匹配 或者 最佳匹配 。
使用CIDR後,由於要尋找最長前綴匹配,使路由表的查找過程變的十分復雜,當路由表的項目數很大的時候,怎樣設法減少路由表的平均查找時間就成為了一個非常重要的問題,現在常用的是 二叉線索(binary trie) ,它是一種特殊結構的樹,IP地址中從左到右的比特值決定了從根節點逐層向下層延伸的路徑,二二叉線索中的各個路徑就代表路由表中存放的各個地址。
圖4-26用一個例子說明二叉樹線索的結構,圖中給出了5個IP地址。為了簡化二叉線索的結構,可以先找出對應一與每一個IP地址的唯一前綴(unique prefix),所謂唯一前綴就是在表中所有的IP地址中,該前綴時唯一的,這樣就可以用這些唯一前綴來構造二叉線索。在進行查找時,只要能夠和唯一前綴匹配相匹配就可以了。
從二叉樹的根節點自頂向下的深度最多有32層,每一層對應於IP地址中的一位。
Ⅱ 計算機網路由哪些部分組成
計算機網路的組成基本上包括:計算機,網路操作系統,傳輸介質(可以是有形的,也可以是無形的,如無線網路的傳輸介質就是空氣)以及相應的應用軟體四部分。
計算機網路的組成及分類:計算機網路通俗地講就是由多台計算機(或其它計算機網路設備)通過傳輸介質和軟體物理(或邏輯)連接在一起組成的。
主要網路
雖然網路類型的劃分標准各種各樣,但是從地理范圍劃分是一種大家都認可的通用網路劃分標准。按這種標准可以把各種網路類型劃分為區域網、城域網、廣域網和互聯網四種。區域網一般來說只能是一個較小區域內,城域網是不同地區的網路互聯,不過在此要說明的一點就是這里的網路劃分並沒有嚴格意義上地理范圍的區分,只能是一個定性的概念。下面簡要介紹這幾種計算機網路。
區域網
(Local Area Network;LAN) 通常我們常見的「LAN」就是指區域網,這是我們最常見、應用最廣的一種網路。區域網隨著整個計算機網路技術的發展和提高得到充分的應用和普及,幾乎每個單位都有自己的區域網,有的甚至家庭中都有自己的小型區域網。
Ⅲ 電腦的子網掩碼和默認網關是多少
這個每個電腦都不一樣,不過可以查出來。
1.第一步在鍵盤上按win+R鍵打開運行,如下圖所示: