天天看點

計算機網絡(4)網絡層

計算機網絡(1)概述

計算機網絡(2)實體層

計算機網絡(3)資料鍊路層

網絡層提供的兩種服務

計算機網絡(4)網絡層

網際網路采用的設計思路是這樣的:網絡層向上隻提供簡單靈活的、無連接配接的、盡最大努力傳遞的 資料報服務 。網絡在發送分組時不需要先建立連接配接。每一個分組(也就是IP資料報)獨立發送,與其前後的分組無關(不進行編号)。網絡層不提供服務品質的承諾。也就是說,所傳送的分組可能出錯、丢失、重複和失序(即不按序到達終點),當然也不保證分組傳遞的時限。

計算機網絡(4)網絡層

網際協定IP

與IP協定配套使用的還有三個協定:

● 位址解析協定ARP (Address Resolution Protocol)

● 網際控制封包協定ICMP (Internet Control Message Protocol)

● 網際組管理協定IGMP (Internet Group Management Protocol)

下圖畫出了這三個協定和網際協定IP的關系。在這一層中,ARP畫在最下面,因為IP經常要使用這個協定。ICMP和IGMP畫在這一層的上部,因為它們要使用IP協定。。由于網際協定IP是用來使互連起來的許多計算機網絡能夠進行通信,是以TCP/IP體系中的網絡層常常稱為 網際層 (internetlayer),或 IP層 。

計算機網絡(4)網絡層

虛拟互連網絡

從一般的概念來講,将網絡互相連接配接起來要使用一些 中間裝置 。根據中間裝置所在的層次,可以有以下四種不同的中間裝置:

(1) 實體層使用的中間裝置叫做 轉發器 (repeater)。

(2) 資料鍊路層使用的中間裝置叫做 網橋 或 橋接器 (bridge)。

(3) 網絡層使用的中間裝置叫做 路由器 (router)。

(4) 在網絡層以上使用的中間裝置叫做 網關 (gateway)。用網關連接配接兩個不相容的系統需要在高層進行協定的轉換。

TCP/IP體系在網絡互連上采用的做法是在網絡層(即IP層)采用了标準化協定,但互相連接配接的網絡則可以是異構的。

圖(a)表示有許多計算機網絡通過一些路由器進行互連。由于參加互連的計算機網絡都使用相同的 網際協定 IP (InternetProtocol), 是以可以把互連以後的計算機網絡看成如圖(b)所示的一個 虛拟互連網絡 (internet)。所謂虛拟互連網絡也就是邏輯互連網絡,它的意思就是互連起來的各種實體網絡的異構性本來是客觀存在的,但是我們利用IP協定就可以使這些性能各異的網絡 在網絡層上看起來好像是一個統一的網絡 。這種使用IP協定的虛拟互連網絡可簡稱為 IP網(IP網是虛拟的,但平常不必每次都強調“虛拟”二字)。

使用IP網的好處是:當IP網上的主機進行通信時,就好像在一個單個網絡上通信一樣,它們看不見互連的各網絡的具體異構細節(如具體的編址方案、路由選擇協定,等等)。

計算機網絡(4)網絡層

分類的IP位址

“分類的IP位址”就是将IP位址劃分為若幹個固定類,每一類位址都由兩個固定長度的字段組成。

其中第一個字段是 網絡号 (net-id),它标志主機(或路由器)所連接配接到的網絡。一個網絡号在整個網際網路範圍内必須是唯一的。

第二個字段是 主機号 (host-id),它标志該主機(或路由器)。一個主機号在它前面的網絡号所指明的網絡範圍内必須是唯一的。

由此可見,一個IP位址 在整個網際網路範圍内是唯一的 。

這種兩級的IP位址可以記為:

計算機網絡(4)網絡層

式中的符号“::=”表示“定義為”。

下圖給出了各種IP位址的網絡号字段和主機号字段,這裡A類、B類和C類位址都是單點傳播位址(一對一通信),是最常用的。

計算機網絡(4)網絡層

● A類、B類和C類位址的網絡号字段(在圖中這個字段是灰色的)分别為1,2和3位元組長,而在網絡号字段的最前面有1∼3位的類别位,其數值分别規定為0,10和110。

● A類、B類和C類位址的主機号字段分别為3個、2個和1個位元組長。

● D類位址(前4位是1110)用于多點傳播(一對多通信)。我們将在本章4.6節讨論IP多點傳播。

● E類位址(前4位是1111)保留為以後用。

從IP位址的結構來看, IP位址并不僅僅指明一個主機,而是還指明了主機所連接配接到的網絡 。

計算機網絡(4)網絡層
計算機網絡(4)網絡層

IP位址具有以下一些重要特點:

(1) 每一個IP位址都由網絡号和主機号兩部分組成。從這個意義上說,IP位址是一種 分等級的位址結構 。分兩個等級的好處是:第一,IP位址管理機構在配置設定IP位址時 隻配置設定網絡号(第一級),而剩下的主機号(第二級)則由得到該網絡号的機關自行配置設定。這樣就友善了IP位址的管理。第二,路由器 僅根據目的主機所連接配接的網絡号來轉發分組(而不考慮目的主機号),這樣就可以使路由表中的項目數大幅度減少,進而 減小了路由表所占的存儲空間以及查找路由表的時間。

(2) 實際上IP位址是标志一個主機(或路由器)和一條鍊路的 接口 。當一個主機同時連接配接到兩個網絡上時,該主機就必須同時具有兩個相應的IP位址,其網絡号必須是不同的。這種主機稱為 多歸屬主機 (multihomed host)。由于一個路由器至少應當連接配接到兩個網絡,是以一個路由器至少應當有兩個不同的IP位址。

(3) 按照網際網路的觀點,一個網絡是指具有相同網絡号net-id的主機的集合,是以,用轉發器或網橋連接配接起來的若幹個區域網路仍為一個網絡 ,因為這些區域網路都具有同樣的網絡号。具有不同網絡号的區域網路必須使用路由器進行互連。

(4) 在IP位址中,所有配置設定到網絡号的網絡(不管是範圍很小的區域網路,還是可能覆寫很大地理範圍的廣域網)都是平等的。所謂平等,是指網際網路同等對待每一個IP位址。

下圖畫出了三個區域網路(LAN1、LAN2和LAN3)通過三個路由器(R1、R2和R3)互連起來所構成的一個網際網路(此網際網路用虛線圓角方框表示)。其中區域網路LAN2是由兩個網段通過網橋B互連的。圖中的小圓圈表示需要有一個IP位址。

應當注意到:

● 在同一個區域網路上的主機或路由器的IP位址中的網絡号必須是一樣的。圖中所示的網絡号就是IP位址中的網絡号字段的值,這也是文獻中常見的一種表示方法。另一種表示方法是用主機号為全0的網絡IP位址。

● 用網橋(它隻在鍊路層工作)互連的網段仍然是一個區域網路,隻能有一個網絡号。

● 路由器總是具有兩個或兩個以上的IP位址。即路由器的每一個接口都有一個不同網絡号的IP位址。

● 當兩個路由器直接相連時(例如通過一條租用線路),在連線兩端的接口處,可以配置設定也可以不配置設定IP位址。如配置設定了IP位址,則這一段連線就構成了一種隻包含一段線路的特殊“網絡”(如圖中的N1, N2和N3)。之是以叫做“網絡”是因為它有IP位址。但為了節省IP位址資源,對于這種僅由一段連線構成的特殊“網絡”,現在也常常不配置設定IP位址。通常把這樣的特殊網絡叫做 無編号網絡 (unnumberednetwork)或 無名網絡 (anonymous network)。

計算機網絡(4)網絡層

IP位址與硬體位址

從層次的角度看,實體位址是資料鍊路層和實體層使用的位址 ,而 IP位址是網絡層和以上各層使用的位址,是一種邏輯位址(稱IP位址是邏輯位址是因為IP位址是用軟體實作的)。

在發送資料時,資料從高層下到低層,然後才到通信鍊路上傳輸。使用IP位址的IP資料報一旦交給了資料鍊路層,就被封裝成MAC幀了。MAC幀在傳送時使用的源位址和目的位址都是硬體位址,這兩個硬體位址都寫在MAC幀的首部中。

計算機網絡(4)網絡層

連接配接在通信鍊路上的裝置(主機或路由器)在接收MAC幀時,其根據是MAC幀首部中的硬體位址。在資料鍊路層看不見隐藏在MAC幀的資料中的IP位址。隻有在剝去MAC幀的首部和尾部後把MAC層的資料上交給網絡層後,網絡層才能在IP資料報的首部中找到源IP位址和目的IP位址。

總之,IP 位址放在 IP 資料報的首部,而硬體位址則放在 MAC幀的首部。在網絡層和網絡層以上使用的是 IP 位址,而資料鍊路層及以下使用的是硬體位址 。在上圖中,當IP資料報放入資料鍊路層的MAC幀中以後,整個的IP資料報就成為MAC幀的資料,因而在 資料鍊路層看不見資料報的IP位址。

在IP層抽象的網際網路上隻能看到IP資料報。

路由器隻根據目的站的IP位址的網絡号進行路由選擇。

在區域網路的鍊路層,隻能看見MAC幀。

盡管互連在一起的網絡的硬體位址體系各不相同,但IP層抽象的網際網路卻屏蔽了下層這些很複雜的細節。隻要我們在網絡層上讨論問題,就能夠使用統一的、抽象的IP位址研究主機和主機或路由器之間的通信。

位址解析協定ARP

已經知道了一個機器(主機或路由器)的IP位址,需要找出其相應的硬體位址。位址解析協定ARP就是用來解決這樣的問題的。

計算機網絡(4)網絡層

由于傳送ARP分組使用是IP協定,是以應當把ARP協定劃歸網絡層。但ARP協定的用途是為了從網絡層使用的IP位址解析出在資料鍊路層使用的硬體位址。

還有一個舊的協定叫做逆位址解析協定RARP,它的作用是使隻知道自己硬體位址的主機能夠通過RARP協定找出其IP位址。現在的DHCP協定已經包含了RARP協定的功能。

網絡層使用的是IP位址,但在實際網絡的鍊路上傳送資料幀時,最終還是必須使用該網絡的硬體位址。但IP位址和下面的網絡的硬體位址之間由于格式不同而不存在簡單的映射關系(例如,IP位址有32位,而區域網路的硬體位址是48位)。此外,在一個網絡上可能經常會有新的主機加入進來,或撤走一些主機。更換網絡擴充卡也會使主機的硬體位址改變。位址解析協定ARP 解決這個問題的方法是在主機ARP高速緩存中應存放一個從IP位址到硬體位址的映射表,并且這個映射表還經常動态更新(新增或逾時删除)。

每一個主機都設有一個 ARP高速緩存 (ARP cache),裡面有 本區域網路上 的各主機和路由器的IP位址到硬體位址的映射表,這些都是該主機目前知道的一些位址。

當主機A要向本區域網路上的某個主機B發送IP資料報時,就先在其ARP高速緩存中檢視有無主機B的IP位址。如有,就在ARP高速緩存中查出其對應的硬體位址,再把這個硬體位址寫入MAC幀,然後通過區域網路把該MAC幀發往此硬體位址。

也有可能查不到主機B的IP位址的項目。這可能是主機B才入網,也可能是主機A剛剛加電,其高速緩存還是空的。在這種情況下,主機A就自動運作ARP, 然後按以下步驟找出主機B的硬體位址。

(1) ARP程序在本區域網路上廣播發送一個ARP請求分組。圖(a)是主機A廣播發送ARP請求分組的示意圖。

ARP請求分組的主要内容是:“我的IP位址是209.0.0.5,硬體位址是00-00-C0-15-AD-18。我想知道IP位址為209.0.0.6的主機的硬體位址。”

計算機網絡(4)網絡層

(2) 在本區域網路上的所有主機上運作的ARP程序都收到此ARP請求分組。

(3) 主機B的IP位址與ARP請求分組中要查詢的IP位址一緻,就收下這個ARP請求分組,并向主機A發送ARP響應分組,并在這個ARP響應分組中寫入自己的硬體位址。

由于其餘的所有主機的IP位址都與ARP請求分組中要查詢的IP位址不一緻,是以都不理睬這個ARP請求分組,見圖(b)。

ARP響應分組的主要内容是表明:“我的IP位址是209.0.0.6,我的硬體位址是08-00-2B-00-EE-0A。”請注意:雖然ARP請求分組是廣播發送的,但ARP響應分組是普通的單點傳播,即從一個源位址發送到一個目的位址。

(4) 主機A收到主機B的ARP響應分組後,就在其ARP高速緩存中寫入主機B的IP位址到硬體位址的映射。

當主機A向B發送資料報時,很可能以後不久主機B還要向A發送資料報,因而主機B也可能要向A發送ARP請求分組。為了減少網絡上的通信量,主機A在發送其ARP請求分組時,就把自己的IP位址到硬體位址的映射寫入ARP請求分組。當主機B收到A的ARP請求分組時,就把主機A的這一位址映射寫入主機B自己的ARP高速緩存中。以後主機B向A發送資料報時就很友善了。

ARP把儲存在高速緩存中的每一個映射位址項目都設定 生存時間(例如,10~20分鐘)。凡超過生存時間的項目就從高速緩存中删除掉。

從IP位址到硬體位址的解析是自動進行的,主機的使用者對這種位址解析過程是不知道的 。隻要主機或路由器要和本網絡上的另一個已知IP位址的主機或路由器進行通信,ARP協定就會自動地把這個IP位址解析為鍊路層所需要的硬體位址。

IP資料報的格式

一個IP資料報由首部和資料兩部分組成。

首部的前一部分是固定長度,共20位元組,是所有IP資料報必須具有的。

在首部的固定部分的後面是一些可選字段,其長度是可變的。

計算機網絡(4)網絡層

IP資料報首部的固定部分中的各字段

(1) 版本 占4位,指IP協定的版本。通信雙方使用的IP協定的版本必須一緻。

(2) 首部長度 占4位,可表示的最大十進制數值是15。當IP分組的首部長度不是4位元組的整數倍時,必須利用最後的填充字段加以填充。是以IP資料報的資料部分永遠在4位元組的整數倍時開始,這樣在實作IP協定時較為友善。首部長度限制為60位元組的缺點是有時可能不夠用。但這樣做是希望使用者盡量減少開銷。最常用的首部長度就是20位元組(即首部長度為0101),這時不使用任何選項。

(3) 區分服務 占8位,用來獲得更好的服務。

(4) 總長度 總長度指首部和資料之和的長度,機關為位元組。總長度字段為16位,是以資料報的最大長度為2 ^16 - 1 = 65 535位元組。 然而實際上傳送這樣長的資料報在現實中是極少遇到的。

在IP層下面的每一種資料鍊路層協定都規定了一個資料幀中的資料字段的最大長度,這稱為 最大傳送單元 MTU (Maximum Transfer Unit)。當一個IP資料報封裝成鍊路層的幀時,此資料報的總長度(即首部加上資料部分)一定不能超

(5) 辨別 (identification) 占16位。IP軟體在存儲器中維持一個計數器,每産生一個資料報,計數器就加1,并将此值賦給辨別字段。但這個“辨別”并不是序号,因為IP是無連接配接服務,資料報不存在按序接收的問題。當資料報由于長度超過網絡的MTU而必須分片時,這個辨別字段的值就被複制到所有的資料報片的辨別字段中。

(6) 标志 (flag) 占3位,但目前隻有兩位有意義。

● 标志字段中的最低位記為 MF (More Fragment)。MF = 1即表示後面“ 還有分片 ”的資料報。MF = 0表示這已是若幹資料報片中的最後一個。

● 标志字段中間的一位記為 DF (Don’t Fragment),意思是“ 不能分片 ”。隻有當DF = 0時才允許分片。

(7) 片偏移 占13位。片偏移指出:較長的分組在分片後,某片在原分組中的相對位置。也就是說,相對于使用者資料字段的起點,該片從何處開始。片偏移以8個位元組為偏移機關。這就是說,每個分片的長度一定是8位元組(64位)的整數倍。

(8) 生存時間 占8位,生存時間字段常用的英文縮寫是TTL (Time To Live),表明是資料報在網絡中的壽命。由發出資料報的源點設定這個字段。其目的是防止無法傳遞的資料報無限制地在網際網路中兜圈子(例如從路由器R1轉發到R2,再轉發到R3,然後又轉發到R1),因而白白消耗網絡資源。最初的設計是以秒作為TTL值的機關。每經過一個路由器時,就把TTL減去資料報在路由器所消耗掉的一段時間。若資料報在路由器消耗的時間小于1秒,就把TTL值減1。當TTL值減為零時,就丢棄這個資料報。

(9) 協定 占8位,協定字段指出此資料報攜帶的資料是使用何種協定,以便使目的主機的IP層知道應将資料部分上交給哪個處理過程。

(10) 首部檢驗和 占16位。這個字段隻檢驗資料報的首部,但不包括資料部分。

(11) 源位址 占32位。

(12) 目的位址 占32位。

IP層轉發分組的流程

分組轉發算法:

(1) 從資料報的首部提取目的主機的IP位址D, 得出目的網絡位址為N。

(2) 若N就是與此路由器直接相連的某個網絡位址,則進行直接傳遞,不需要再經過其他的路由器,直接把資料報傳遞目的主機(這裡包括把目的主機位址 D 轉換為具體的硬體位址,把資料報封裝為MAC幀,再發送此幀);否則就是間接傳遞,執行(3)。

(3) 若路由表中有目的位址為D的特定主機路由,則把資料報傳送給路由表中所指明的下一跳路由器;否則,執行(4)。

(4) 若路由表中有到達網絡N的路由,則把資料報傳送給路由表中所指明的下一跳路由器;否則,執行(5)。

(5) 若路由表中有一個預設路由,則把資料報傳送給路由表中所指明的預設路由器;否則,執行(6)。

(6) 報告轉發分組出錯。

劃分子網和構造超網

劃分子網

劃分子網的基本思路如下:

(1) 一個擁有許多實體網絡的機關,可将所屬的實體網絡劃分為若幹個 子網 (subnet)。劃分子網純屬一個機關内部的事情。本機關以外的網絡 看不見 這個網絡是由多少個子網組成,因為這個機關 對外仍然表現為一個網絡 。

(2) 劃分子網的方法是從網絡的主機号借用若幹位作為子網号subnet-id,當然主機号也就相應減少了同樣的位數。于是兩級IP位址在 本機關内部 就變為 三級 IP位址:網絡号、子網号和主機号。也可以用以下記法來表示:

計算機網絡(4)網絡層

(3) 凡是從其他網絡發送給本機關某個主機的IP資料報,仍然是根據IP資料報的目的網絡号找到連接配接在本機關網絡上的路由器。但此路由器在收到IP資料報後,再按目的網絡号和子網号找到目的子網,把IP資料報傳遞目的主機。

下圖表示某機關擁有一個B類IP位址,網絡位址是145.13.0.0(網絡号是145.13)。凡目的位址為145.13.x.x的資料報都被送到這個網絡上的路由器R1。

計算機網絡(4)網絡層

現把圖4-18的網絡劃分為三個子網。這裡假定子網号占用8位,是以在增加了子網号後,主機号就隻有8位。所劃分的三個子網分别是:145.13.3.0,145.13.7.0和145.13.21.0。在劃分子網後,整個網絡對外部仍表現為一個網絡,其網絡位址仍為145.13.0.0。但網絡145.13.0.0上的路由器R1在收到外來的資料報後,再根據資料報的目的位址把它轉發到相應的子網。

計算機網絡(4)網絡層

當沒有劃分子網時,IP位址是兩級結構。劃分子網後IP位址變成了三級結構。劃分子網隻是把IP位址的主機号這部分進行再劃分,而不改變IP位址原來的網絡号。

子網路遮罩

計算機網絡(4)網絡層

使用子網路遮罩的好處就是:不管網絡有沒有劃分子網,隻要把子網路遮罩和IP位址進行逐位的“ 與 ”運算(AND),就立即得出網絡位址來。這樣在路由器處理到來的分組時就可采用同樣的算法。

從網絡145.13.0.0 外面 看,這就是一個普通的B類網絡,其子網路遮罩為16個連1後面跟上16和連0。但 進入 到這個網絡後(即到了路由器R1),就看到了還有許多網絡(即劃分了子網後的許多網絡),其網絡位址是145.13.x.0(這裡x可以表示不同的數值),而這些網絡的子網路遮罩都是24個連1後面跟上8個連0。總之,在這個B類網絡的外面和裡面,看到的網絡是不一樣的。

所有的網絡都必須使用子網路遮罩,同時在路由器的路由表中也必須有子網路遮罩這一欄。如果一個網絡不劃分子網,那麼該網絡的子網路遮罩就使用 預設子網路遮罩 。預設子網路遮罩中1的位置和IP位址中的網絡号字段net-id正好相對應。是以,若用預設子網路遮罩和某個不劃分子網的IP位址逐位相“與”(AND),就應當能夠得出該IP位址的網絡位址來。這樣做可以不用查找該位址的類别位就能知道這是哪一類的IP位址。顯然,

A類位址的預設子網路遮罩是255.0.0.0,或0xFF000000;

B類位址的預設子網路遮罩是255.255.0.0,或0xFFFF0000;

C類位址的預設子網路遮罩是255.255.255.0,或0xFFFFFF00。

計算機網絡(4)網絡層
計算機網絡(4)網絡層

子網數是根據子網号subnet-id計算出來的。若subnet-id有n位,則共有2 ^n種可能的排列。除去全0和全1這兩種情況,就得出表中的子網數。

“子網号的位數”中沒有0, 1, 15和16這四種情況,因為這沒有意義。

劃分子網增加了靈活性,但卻減少了能夠連接配接在網絡上的主機總數。

使用子網時分組的轉發

使用子網劃分後,路由表必須包含以下三項内容:目的網絡位址 、子網路遮罩 和 下一跳位址。

在劃分子網的情況下,路由器轉發分組的算法如下:

(1) 從收到的資料報的首部提取目的IP位址D。

(2) 先判斷是否為直接傳遞。對路由器直接相連的網絡逐個進行檢查:用各網絡的子網路遮罩和 D 逐位相“ 與 ”(AND操作),看結果是否和相應的網絡位址比對。若比對,則把分組進行直接傳遞(當然還需要把 D 轉換成實體位址,把資料報封裝成幀發送出去),轉發任務結束。否則就是間接傳遞,執行(3)。

(3) 若路由表中有目的位址為D的特定主機路由,則把資料報傳送給路由表中所指明的下一跳路由器;否則,執行(4)。

(4) 對路由表中的每一行(目的網絡位址,子網路遮罩,下一跳位址),用其中的子網路遮罩和D逐位相“ 與 ”(AND操作),其結果為N。若N與該行的目的網絡位址比對,則把資料報傳送給該行指明的下一跳路由器;否則,執行(5)。

(5) 若路由表中有一個預設路由,則把資料報傳送給路由表中所指明的預設路由器;否則,執行(6)。

(6) 報告轉發分組出錯。

無分類編址CIDR(構成超網)

  1. 網絡字首

    網際網路仍然面臨三個必須盡早解決的問題:

    (1) B類位址在1992年已配置設定了近一半,眼看很快就将全部配置設定完畢!

    (2) 網際網路主幹網上的路由表中的項目數急劇增長(從幾千個增長到幾萬個)。

    (3) 整個IPv4的位址空間最終将全部耗盡。在2011年2月3日,IANA宣布IPv4位址已經耗盡了。

    無分類編址的方法來解決前兩個問題。IPv6工作組負責研究解決新版本IP協定的問題。

使用變長子網路遮罩VLSM(Variable Length Subnet Mask)可進一步提高IP位址資源的使用率。在VLSM的基礎上又進一步研究出無分類編址方法,它的正式名字是 無分類域間路由選擇 CIDR (Classless Inter-DomainRouting,CIDR的讀音是“sider”)。

CIDR最主要的特點有兩個:

(1) CIDR 消除了傳統的A類、B類和C類位址以及劃分子網的概念 ,因而可以更加有效地配置設定IPv4的位址空間,并且可以在新的IPv6使用之前容許網際網路的規模繼續增長。CIDR把32位的IP位址劃分為兩個部分。前面的部分是“ 網絡字首 ”(network-prefix)(或簡稱為“ 字首 ”),用來指明網絡,後面的部分則用來指明主機。是以CIDR使IP位址從三級編址(使用子網路遮罩)又回到了兩級編址,但這已是 無分類的兩級編址 。它的記法是:

計算機網絡(4)網絡層

CIDR還使用“ 斜線記法 ”(slash notation),或稱為CIDR記法,即在IP位址後面加上斜線“/”,然後寫上網絡字首所占的位數。

(2) CIDR把 網絡字首都相同 的連續的IP位址組成一個“CIDR位址塊”。我們隻要知道CIDR位址塊中的任何一個位址,就可以知道這個位址塊的起始位址(即最小位址)和最大位址,以及位址塊中的位址數。

為了更友善地進行路由選擇,CIDR使用32位的 位址掩碼 (address mask)。位址掩碼由一串1和一串0組成,而1的個數就是網絡字首的長度。斜線記法中,斜線後面的數字就是位址掩碼中1的個數。

由于一個CIDR位址塊中有很多位址,是以在路由表中就利用CIDR位址塊來查找目的網絡。這種位址的聚合常稱為 路由聚合 (route aggregation),它使得路由表中的一個項目可以表示原來傳統分類位址的很多個(例如上千個)路由。路由聚合也稱為構成 超網 (supernetting)。

計算機網絡(4)網絡層
計算機網絡(4)網絡層

網絡字首越短,其位址塊所包含的位址數就越多。

  1. 最長字首比對

    在使用CIDR時,由于采用了網絡字首這種記法,IP位址由網絡字首和主機号這兩個部分組成,是以在路由表中的項目也要有相應的改變。這時,每個項目由“ 網絡字首 ”和“ 下一跳位址 ”組成。但是在查找路由表時 可能會得到不止一個比對結果。

    應當從比對結果中選擇具有最長網絡字首的路由 。這叫作 最長字首比對 (longest-prefix matching),這是因為網絡字首越長,其位址塊就越小,因而路由就越具體(morespecific)。最長字首比對又稱為 最長比對 或 最佳比對 。

網際控制封包協定ICMP

為了更有效地轉發IP資料報和提高傳遞成功的機會,在網際層使用了 網際控制封包協定 ICMP (Internet Control MessageProtocol) 。

ICMP允許主機或路由器報告差錯情況和提供有關異常情況的報告。ICMP是網際網路的标準協定。但ICMP不是高層協定(看起來好像是高層協定,因為ICMP封包是裝在IP資料報中,作為其中的資料部分),而是IP層的協定。ICMP封包作為IP層資料報的資料,加上資料報的首部,組成IP資料報發送出去。ICMP封包格式如圖所示。

計算機網絡(4)網絡層

ICMP封包的種類

ICMP封包的種類有兩種,即 ICMP差錯報告封包 和 ICMP詢問封包。

ICMP封包的前4個位元組是統一的格式,共有三個字段:即類型、代碼和檢驗和。接着的4個位元組的内容與ICMP的類型有關。最後面是資料字段,其長度取決于ICMP的類型。下表給出了幾種常用的ICMP封包類型。

計算機網絡(4)網絡層

ICMP差錯報告封包共有五種,即:

(1) 終點不可達 當路由器或主機不能傳遞資料報時就向源點發送終點不可達封包。

(2) 源點抑制 當路由器或主機由于擁塞而丢棄資料報時,就向源點發送源點抑制封包,使源點知道應當把資料報的發送速率放慢。

(3) 時間超過 當路由器收到生存時間為零的資料報時,除丢棄該資料報外,還要向源點發送時間超過封包。當終點在預先規定的時間内不能收到一個資料報的全部資料報片時,就把已收到的資料報片都丢棄,并向源點發送時間超過封包。

(4) 參數問題 當路由器或目的主機收到的資料報的首部中有的字段的值不正确時,就丢棄該資料報,并向源點發送參數問題封包。

(5) 改變路由(重定向) 路由器把改變路由封包發送給主機,讓主機知道下次應将資料報發送給另外的路由器(可通過更好的路由)。

常用的ICMP詢問封包有兩種,即:

(1) 回送請求和回答 ICMP回送請求封包是由主機或路由器向一個特定的目的主機發出的詢問。收到此封包的主機必須給源主機或路由器發送ICMP回送回答封包。這種詢問封包用來測試目的站是否可達以及了解其有關狀态。

(2) 時間戳請求和回答 ICMP時間戳請求封包是請某個主機或路由器回答目前的日期和時間。在ICMP時間戳回答封包中有一個32位的字段,其中寫入的整數代表從1900年1月1日起到目前時刻一共有多少秒。時間戳請求與回答可用來進行時鐘同步和測量時間。

ICMP的一個重要應用就是 分組網間探測PING (PacketInterNet Groper),用來測試兩個主機之間的連通性。PING使用了ICMP回送請求與回送回答封包。PING是應用層直接使用網絡層ICMP的一個例子。它沒有通過運輸層的TCP或UDP。

網際網路的路由選擇協定

理想的路由算法:

(1) 算法必須是正确的和完整的。

(2) 算法在計算上應簡單。

(3) 算法應能适應通信量和網絡拓撲的變化 ,這就是說,要有 自适應性。

有時稱這種自适應性為“ 穩健性 ”(robustness)。

(4) 算法應具有 穩定性。

(5) 算法應是 公平的。

(6) 算法應是 最佳的。所謂“最佳”隻能是相對于某一種特定要求下得出的較為合理的選擇而已。

倘若從路由算法能否随網絡的通信量或拓撲自适應地進行調整變化來劃分,則隻有兩大類,即 靜态路由選擇政策 與 動态路由選擇政策 。

靜态路由選擇也叫做 非自适應路由選擇 ,其特點是簡單和開銷較小,但不能及時适應網絡狀态的變化。對于很簡單的小網絡,完全可以采用靜态路由選擇,用人工配置每一條路由。

動态路由選擇也叫做 自适應路由選擇 ,其特點是能較好地适應網絡狀态的變化,但實作起來較為複雜,開銷也比較大。是以,動态路由選擇适用于較複雜的大網絡。

分層次的路由選擇協定

網際網路将整個網際網路劃分為許多較小的 自治系統 (autonomous system),一般都記為AS。

一個AS對其他AS表現出的是一個單一的和一緻的路由選擇政策。

在目前的網際網路中,一個大的ISP就是一個自治系統。這樣,網際網路就把路由選擇協定劃分為兩大類,即:

(1) 内部網關協定IGP (Interior Gateway Protocol) 即在一個自治系統内部使用的路由選擇協定,而這與在網際網路中的其他自治系統選用什麼路由選擇協定無關。目前這類路由選擇協定使用得最多,如RIP和OSPF協定。

(2) 外部網關協定EGP (External Gateway Protocol) 若源主機和目的主機處在不同的自治系統中(這兩個自治系統可能使用不同的内部網關協定),當資料報傳到一個自治系統的邊界時,就需要使用一種協定将路由選擇資訊傳遞到另一個自治系統中。這樣的協定就是外部網關協定EGP。

自治系統之間的路由選擇也叫做 域間路由選擇 (interdomainrouting),而在自治系統内部的路由選擇叫做 域内路由選擇 (intradomain routing)。

下圖是兩個自治系統互連在一起的示意圖。每個自治系統自己決定在本自治系統内部運作哪一個内部路由選擇協定(例如,可以是RIP,也可以是OSPF)。但每個自治系統都有一個或多個路由器(圖中的路由器R1和R2)除運作本系統的内部路由選擇協定外,還要運作自治系統間的路由選擇協定(BGP-4)。

計算機網絡(4)網絡層

内部網關協定RIP

RIP (Routing Information Protocol)是内部網關協定IGP中最先得到廣泛使用的協定,它的中文名稱很少使用,叫做 路由資訊協定。 RIP是一種分布式的 基于距離向量的路由選擇協定 ,是網際網路的标準協定,其最大優點就是簡單。

RIP協定要求網絡中的每一個路由器都要維護從它自己到其他每一個目的網絡的距離記錄(是以,這是 一組距離 ,即“ 距離向量 ”)。

從一路由器到直接連接配接的網絡的距離定義為1。從一路由器到非直接連接配接的網絡的距離定義為所經過的路由器數加1。“加1”是因為到達目的網絡後就進行直接傳遞,而到直接連接配接的網絡的距離已經定義為1。

RIP協定的“距離”也稱為“ 跳數 ”(hop count),因為每經過一個路由器,跳數就加1。RIP認為好的路由就是它通過的路由器的數目少,即“距離短”。RIP允許一條路徑最多隻能包含15個路由器。是以“距離”等于16時即相當于不可達。可見 RIP隻适用于小型網際網路。

RIP不能在兩個網絡之間同時使用多條路由。RIP選擇一條具有最少路由器的路由(即最短路由),哪怕還存在另一條高速(低延遲時間)但路由器較多的路由。

RIP協定的特點是:

(1) 僅和相鄰路由器交換資訊 。如果兩個路由器之間的通信不需要經過另一個路由器,那麼這兩個路由器就是相鄰的。RIP協定規定,不相鄰的路由器不交換資訊。

2) 路由器交換的資訊是 目前本路由器所知道的全部資訊,即自己的路由表 。也就是說,交換的資訊是:“我到本自治系統中所有網絡的(最短)距離,以及到每個網絡應經過的下一跳路由器”。

(3) 按固定的時間間隔 交換路由資訊,例如,每隔30秒。然後路由器根據收到的路由資訊更新路由表。當網絡拓撲發生變化時,路由器也及時向相鄰路由器通告拓撲變化後的路由資訊。

路由器在剛剛開始工作時,隻知道到直接連接配接的網絡的距離(此距離定義為1)。接着,每一個路由器也隻和數目非常有限的相鄰路由器交換并更新路由資訊。但經過若幹次的更新後,所有的路由器最終都會知道到達本自治系統中任何一個網絡的最短距離和下一跳路由器的位址。

路由表中最主要的資訊就是:到某個網絡的距離(即最短距離),以及應經過的下一跳位址。路由表更新的原則是找出到每個目的網絡的最短距離。這種更新算法又稱為距離向量算法。

距離向量算法

對 每一個相鄰路由器 發送過來的RIP封包,進行以下步驟:

(1) 對位址為X的相鄰路由器發來的RIP封包,先修改此封包中的 所有項目 :把“下一跳”字段中的位址都改為X,并把所有的“距離”字段的值加1。每一個項目都有三個關鍵資料,即:到目的網絡N,距離是d,下一跳路由器是X。

(2) 對修改後的RIP封包中的每一個項目,進行以下步驟:

若原來的路由表中沒有目的網絡N,則把該項目添加到路由表中。

否則(即在路由表中有目的網絡N,這時就再檢視下一跳路由器位址)

若下一跳路由器位址是X,則把收到的項目替換原路由表中的項目。

否則(即這個項目是:到目的網絡N,但下一跳路由器不是X)

若收到的項目中的距離d小于路由表中的距離,則進行更新,

否則什麼也不做。

(3) 若3分鐘還沒有收到相鄰路由器的更新路由表,則把此相鄰路由器記為不可達的路由器,即把距離置為16(距離為16表示不可達)。

(4) 傳回。

這種算法的要點是這樣的:

設X是結點A到B的最短路徑上的一個結點。若把路徑A→B拆成兩段路徑A→X和X→B,則每一段路徑A→X和X→B也都分别是結點A到X和結點X到B的最短路徑。

内部網關協定OSPF

這個協定的名字是 開放最短路徑優先 OSPF (Open ShortestPath First)。

OSPF隻是一個協定的名字 它并不表示其他的路由選擇協定不是“最短路徑優先” 。實際上,所有的在自治系統内部使用的路由選擇協定(包括RIP協定)都是要尋找一條最短的路徑。

OSPF最主要的特征就是使用分布式的 鍊路狀态協定 (link stateprotocol),而不是像RIP那樣的距離向量協定。和RIP協定相比,OSPF的三個要點和RIP的都不一樣:

  1. 向本自治系統中 所有路由器 發送資訊。這裡使用的方法是 洪泛法 (flooding),這就是路由器通過所有輸出端口向所有相鄰的路由器發送資訊。而每一個相鄰路由器又再将此資訊發往其所有的相鄰路由器(但不再發送給剛剛發來資訊的那個路由器)。這樣,最終整個區域中所有的路由器都得到了這個資訊的一個副本。

    (2)發送的資訊就是與本路由器 相鄰的所有路由器的鍊路狀态 ,但這隻是路由器所知道的 部分資訊 。所謂 “鍊路狀态”就是說明本路由器都和哪些路由器相鄰,以及該鍊路的“ 度量 ”(metric)。

    (3) 隻有當鍊路狀态 發生變化時 ,路由器才向所有路由器用洪泛法發送此資訊。而不像RIP那樣,不管網絡拓撲有無發生變化,路由器之間都要定期交換路由表的資訊。

由于各路由器之間頻繁地交換鍊路狀态資訊,是以所有的路由器最終都能建立一個 鍊路狀态資料庫 (link-state database),這個資料庫實際上就是 全網的拓撲結構圖 。這個拓撲結構圖在全網範圍内是 一緻的(這稱為 鍊路狀态資料庫的同步 )。是以,每一個路由器都知道全網共有多少個路由器,以及哪些路由器是相連的,其代價是多少,等等。每一個路由器使用鍊路狀态資料庫中的資料,構造出自己的路由表(例如,使用Dijkstra的最短路徑路由算法)。RIP協定的每一個路由器雖然知道到所有的網絡的距離以及下一跳路由器,但卻 不知道全網的拓撲結構(隻有到了下一跳路由器,才能知道再下一跳應當怎樣走)。

為了使OSPF能夠用于規模很大的網絡,OSPF将一個自治系統再劃分為若幹個更小的範圍,叫作 區域 (area)。下圖就表示一個自治系統劃分為四個區域。每一個區域都有一個32位的區域辨別符(用點分十進制表示)。當然,一個區域也不能太大,在一個區域内的路由器最好不超過200個。

計算機網絡(4)網絡層

為了使每一個區域能夠和本區域以外的區域進行通信,OSPF使用 層次結構的區域劃分 。在上層的區域叫作 主幹區域 (backbone area)。主幹區域的辨別符規定為0.0.0.0。主幹區域的作用是用來連通其他在下層的區域。從其他區域來的資訊都由 區域邊界路由器 (area borderrouter)進行概括。

在上圖中,路由器R3,R4和R7都是區域邊界路由器,而顯然,每一個區域至少應當有一個區域邊界路由器。在主幹區域内的路由器叫做 主幹路由器 (backbonerouter),如R3,R4,R5,R6和R7。一個主幹路由器可以同時是區域邊界路由器,如R3,R4和R7。在主幹區域内還要有一個路由器專門和本自治系統外的其他自治系統交換路由資訊。這樣的路由器叫作 自治系統邊界路由器(如圖中的R6)。

采用分層次劃分區域的方法雖然使交換資訊的種類增多了,同時也使OSPF協定更加複雜了。但這樣做卻能使每一個區域内部交換路由資訊的通信量大大減小,因而使OSPF協定能夠用于規模很大的自治系統中。

OSPF不用UDP而是 直接用IP資料報傳送 (其IP資料報首部的協定字段值為89)。OSPF構成的資料報很短。這樣做可減少路由資訊的通信量。資料報很短的另一好處是可以不必将長的資料報分片傳送。分片傳送的資料報隻要丢失一個,就無法組裝成原來的資料報,而整個資料報就必須重傳。

OSPF具有下列的一些特點:

(1) OSPF允許管理者給每條路由指派不同的代價。 OSPF 對于不同類型的業務可計算出不同的路由 。鍊路的代價可以是1至65 535中的任何一個無量綱的數,是以十分靈活。商用實作OSPF通常是根據鍊路帶寬來計算鍊路的代價。這種靈活性是RIP所沒有的。

2) 如果到同一個目的網絡有多條相同代價的路徑,那麼可以将通信量配置設定給這幾條路徑。這叫作多路徑間的 負載平衡 (loadbalancing)。在代價相同的多條路徑上配置設定通信量是通信量工程中的簡單形式。RIP隻能找出到某個網絡的一條路徑。

(3)所有在OSPF路由器之間交換的分組(例如,鍊路狀态更新分組)都具有 鑒别 的功能,因而保證了僅在可信賴的路由器之間交換鍊路狀态資訊。

(4) OSPF支援可變長度的子網劃分和無分類的編址CIDR。

(5) 由于網絡中的鍊路狀态可能經常發生變化,是以OSPF讓每一個鍊路狀态都帶上一個32位的 序号 ,序号越大狀态就越新。OSPF規定,鍊路狀态序号增長的速率不得超過每5秒鐘1次。這樣,全部序号空間在600年内不會産生重複号。

OSPF的五種分組類型

(1) 類型1,問候(Hello) 分組,用來發現和維持鄰站的可達性。

(2) 類型2,資料庫描述 (Database Description)分組,向鄰站給出自己的鍊路狀态資料庫中的所有鍊路狀态項目的摘要資訊。

(3) 類型3,鍊路狀态請求 (Link State Request)分組,向對方請求發送某些鍊路狀态項目的詳細資訊。

(4) 類型 4,鍊路狀态更新 (Link State Update)分組,用洪泛法對全網更新鍊路狀态。這種分組是最複雜的,也是OSPF協定最核心的部分。路由器使用這種分組将其鍊路狀态通知給鄰站。鍊路狀态更新分組共有五種不同的鍊路狀态[RFC 2328],這裡從略。

(5) 類型5,鍊路狀态确認 (Link State Acknowledgment)分組,對鍊路更新分組的确認。

OSPF規定,每兩個相鄰路由器每隔10秒鐘要交換一次問候分組。這樣就能确知哪些鄰站是可達的。對相鄰路由器來說,“可達”是最基本的要求,因為隻有可達鄰站的鍊路狀态資訊才存傳入連結路狀态資料庫(路由表就是根據鍊路狀态資料庫計算出來的)。在正常情況下,網絡中傳送的絕大多數OSPF分組都是問候分組。若有40秒鐘沒有收到某個相鄰路由器發來的問候分組,則可認為該相鄰路由器是不可達的,應立即修改鍊路狀态資料庫,并重新計算路由表。

其他的四種分組都是用來進行鍊路狀态資料庫的 同步 。所謂同步就是指不同路由器的鍊路狀态資料庫的内容是一樣的。兩個同步的路由器叫做“ 完全鄰接的 ”(fully adjacent)路由器。不是完全鄰接的路由器表明它們雖然在實體上是相鄰的,但其鍊路狀态資料庫并沒有達到一緻。

計算機網絡(4)網絡層

在網絡運作的過程中,隻要一個路由器的鍊路狀态發生變化,該路由器就要使用鍊路狀态更新分組,用洪泛法向全網更新鍊路狀态。OSPF使用的是可靠的 洪泛法 ,其要點見圖所示。設路由器R用洪泛法發對外連結路狀态更新分組。圖中用一些小的箭頭表示更新分組。第一次先發給相鄰的三個路由器。這三個路由器将收到的分組再進行轉發時,要将其上遊路由器除外。可靠的洪泛法是在收到更新分組後要發送确認(收到重複的更新分組隻需要發送一次确認)。圖中的空心箭頭表示确認分組。

計算機網絡(4)網絡層

由于一個路由器的鍊路狀态隻涉及到與相鄰路由器的連通狀态,因而與整個網際網路的規模并無直接關系。是以當網際網路規模很大時,OSPF協定要比距離向量協定RIP好得多。

外部網關協定BGP

内部網關協定(如RIP或OSPF)主要是設法使資料報在一個AS中盡可能有效地從源站傳送到目的站。

然而BGP使用的環境卻不同。

第一, 網際網路的規模太大,使得AS之間路由選擇非常困難 。如果使用鍊路狀态協定,則每一個路由器必須維持一個很大的鍊路狀态資料庫。

第二,AS 之間的路由選擇必須考慮有關政策 。

邊界網關協定BGP隻能是力求尋找一條能夠到達目的網絡且 比較好 的路由(不能兜圈子),而 并非要尋找一條最佳路由 。BGP采用了 路徑向量 (path vector) 路由選擇協定 ,它與距離向量協定(如RIP)和鍊路狀态協定(如OSPF)都有很大的差別。

在配置BGP時,每一個自治系統的管理者要選擇至少一個路由器作為該自治系統的“ BGP發言人 ”。一般說來,兩個BGP發言人都是通過一個共享網絡連接配接在一起的,而BGP發言人往往就是BGP 邊界路由器 ,但也可以不是BGP邊界路由器。

一個BGP發言人與其他AS的BGP發言人要交換路由資訊,就要先建立TCP連接配接(端口号為179),然後在此連接配接上交換BGP封包以建立BGP 會話 (session),利用BGP會話交換路由資訊,如增加了新的路由,或撤銷過時的路由,以及報告出差錯的情況等等。使用TCP連接配接能提供可靠的服務,也簡化了路由選擇協定。使用TCP連接配接交換路由資訊的兩個BGP發言人,彼此成為對方的 鄰站 (neighbor)或 對等站 (peer)。

計算機網絡(4)網絡層

邊界網關協定BGP所交換的網絡可達性的資訊就是要到達某個網絡(用網絡字首表示)所要經過的一系列自治系統。當BGP發言人互相交換了網絡可達性的資訊後,各BGP發言人就根據所采用的政策從收到的路由資訊中找出到達各自治系統的較好路由。

BGP協定交換路由資訊的結點數量級是 自治系統個數的量級 ,這要比這些自治系統中的 網絡數 少很多。要在許多自治系統之間尋找一條較好的路徑,就是要尋找正确的BGP發言人(或邊界路由器),而在每一個自治系統中BGP發言人(或邊界路由器)的數目是很少的。這樣就使得自治系統之間的路由選擇不緻過分複雜。

BGP支援無分類域間路由選擇CIDR,是以BGP的路由表也就應當包括目的網絡字首、下一跳路由器,以及到達該目的網絡所要經過的自治系統序列。由于使用了路徑向量的資訊,就可以很容易地避免産生兜圈子的路由。如果一個BGP發言人收到了其他BGP發言人發來的路徑通知,它就要檢查一下本自治系統是否在此通知的路徑中。如果在這條路徑中,就不能采用這條路徑(因為會兜圈子)。

在BGP剛剛運作時,BGP的鄰站是交換整個的BGP路由表。但以後隻需要在發生變化時更新有變化的部分。這樣做對節省網絡帶寬和減少路由器的處理開銷方面都有好處。

路由器的構成

路由器是一種具有多個輸入端口和多個輸出端口的專用計算機,其任務是轉發分組。從路由器某個輸入端口收到的分組,按照分組要去的目的地(即目的網絡),把該分組從路由器的某個合适的輸出端口轉發給下一跳路由器。下一跳路由器也按照這種方法處理分組,直到該分組到達終點為止。路由器的轉發分組正是網絡層的主要工作。

計算機網絡(4)網絡層

整個的路由器結構可劃分為兩大部分:路由選擇 部分和 分組轉發 部分。

路由選擇部分也叫做 控制部分 ,其核心構件是路由選擇處理機。路由選擇處理機的任務是根據所標明的路由選擇協定構造出路由表,同時經常或定期地和相鄰路由器交換路由資訊而不斷地更新和維護路由表。

分組轉發部分由三部分組成:交換結構 、一組 輸入端口 和一組 輸出端口(請注意:這裡的端口就是硬體接口)。

IP多點傳播

與單點傳播相比,在一對多的通信中,多點傳播可大大節約網絡資源。

當多點傳播組的主機數很大時(如成千上萬個),采用多點傳播方式就可明顯地減輕網絡中各種資源的消耗。

在網際網路上進行多點傳播就叫做IP多點傳播。IP多點傳播所傳送的分組需要使用多點傳播IP位址。

多點傳播位址隻能用于目的位址,而不能用于源位址。

網際組管理協定 IGMP (Internet GroupManagement Protocol)。

計算機網絡(4)網絡層

IGMP并非在網際網路範圍内對所有多點傳播組成員進行管理的協定。IGMP不知道IP多點傳播組包含的成員數,也不知道這些成員都分布在哪些網絡上,等等。IGMP協定是讓連接配接在本地區域網路上的多點傳播路由器知道本區域網路上是否有主機(嚴格講,是主機上的某個程序)參加或退出了某個多點傳播組。

僅有IGMP協定是不能完成多點傳播任務的。連接配接在區域網路上的多點傳播路由器還必須和網際網路上的其他多點傳播路由器協同工作,以便把多點傳播資料報用最小代價傳送給所有的組成員。這就需要使用 多點傳播路由選擇協定。

多點傳播轉發必須動态地适應多點傳播組成員的變化(這時網絡拓撲并未發生變化)。

多點傳播路由器在轉發多點傳播資料報時,不能僅僅根據多點傳播資料報中的目的位址,而是還要考慮這個多點傳播資料報從什麼地方來和要到什麼地方去。

多點傳播資料報可以由沒有加入多點傳播組的主機發出,也可以通過沒有組成員接入的網絡。

虛拟專用網VPN和網絡位址轉換NAT

虛拟專用網VPN

專用位址 (privateaddress)。這些位址隻能用于一個機構的内部通信,而不能用于和網際網路上的主機通信。換言之,專用位址隻能用作本地位址而不能用作全球位址。

在網際網路中的所有路由器,對目的位址是專用位址的資料報一律不進行轉發。

(1) 10.0.0.0到10.255.255.255 (或記為10.0.0.0/8,它又稱為24位塊)

(2) 172.16.0.0到172.31.255.255 (或記為172.16.0.0/12,它又稱為20位塊)

(3) 192.168.0.0到192.168.255.255 (或記為192.168.0.0/16,它又稱為16位塊)

上面的三個位址塊分别相當于一個A類網絡、16個連續的B類網絡和256個連續的C類網絡。

采用這樣的專用IP位址的互連網絡稱為 專用網際網路 或 本地網際網路 ,或更簡單些,就叫做 專用網 。專用IP位址也叫做 可重用位址(reusable address)。

利用公用的網際網路作為機構各專用網之間的通信載體,這樣的專用網又稱為 虛拟專用網 VPN (Virtual Private Network)。

之是以稱為“專用網”是因為這種網絡是為本機構的主機用于機構内部的通信,而不是用于和網絡外非本機構的主機通信。

如果專用網不同網點之間的通信必須經過公用的網際網路,但又有保密的要求,那麼 所有通過網際網路傳送的資料都必須加密 。“虛拟”表示“好像是”,但實際上并不是,因為現在并沒有使用專線而是通過公用的網際網路來連接配接分散在各場所(site)的本地網絡。VPN隻是在效果上和真正的專用網一樣。一個機構要建構自己的VPN就必須為它的每一個場所購買專門的硬體和軟體,并進行配置,使每一個場所的VPN系統都知道其他場所的位址。

使用IP隧道技術實作虛拟專用網。

計算機網絡(4)網絡層

網絡位址轉換NAT

網絡位址轉換NAT (Network Address Translation)

所有使用本地位址的主機在和外界通信時,都要在NAT路由器上将其本地位址轉換成全球IP位址,才能和網際網路連接配接。

計算機網絡(4)網絡層

NAT路由器收到從專用網内部的主機A發往網際網路上主機B的IP資料報:

源IP位址是192.168.0.3,而目的IP位址是213.18.2.4。NAT路由器把IP資料報的源IP位址192.168.0.3,轉換為新的源IP位址(即NAT路由器的全球IP位址)172.38.1.5,然後轉發出去。

是以,主機B收到這個IP資料報時,以為A的IP位址是172.38.1.5。當B給A發送應答時,IP資料報的目的IP位址是NAT路由器的IP位址172.38.1.5。B并不知道A的專用位址192.168.0.3。實際上,即使知道了,也不能使用,因為網際網路上的路由器都不轉發目的位址是專用網本地IP位址的IP資料報。

當NAT路由器收到網際網路上的主機B發來的IP資料報時,還要進行一次IP位址的轉換。通過NAT位址轉換表,就可把IP資料報上的舊的目的IP位址172.38.1.5,轉換為新的目的IP位址192.168.0.3(主機A真正的本地IP位址)。

下表給出了NAT位址轉換表的舉例。表中的前兩行資料對應于上圖中所舉的例子。第一列“方向”中的“出”表示離開專用網,而“入”表示進入專用網。表中後兩行資料(圖中沒有畫出對應的IP資料報)表示專用網内的另一主機192.168.0.7向網際網路發送了IP資料報,而NAT路由器還有另外一個全球IP位址172.38.1.6。

計算機網絡(4)網絡層

當NAT路由器具有n個全球IP位址時,專用網内最多可以同時有n個主機接入到網際網路。這樣就可以使專用網内較多數量的主機,輪流使用NAT路由器有限數量的全球IP位址。

通過NAT路由器的通信必須由專用網内的主機發起。設想網際網路上的主機要發起通信,當IP資料報到達NAT路由器時,NAT路由器就不知道應當把目的IP位址轉換成專用網内的哪一個本地IP位址。這就表明,這種專用網内部的主機不能充當伺服器用,因為網際網路上的客戶無法請求專用網内的伺服器提供服務。

計算機網絡(5)傳輸層

計算機網絡(6)應用層

繼續閱讀