- 網絡互連與互聯網(第2版)
- 劉化君等
- 6471字
- 2020-07-02 15:27:27
第四節 IP網絡
IP是TCP/IP協議體系中的網絡層協議。TCP/IP是國際通用的網絡標準,是廣泛用于為眾多廠商的設備提供連接的網絡技術。IP為工作站之間提供無連接的包(數據報)傳輸服務,其中每個包帶有完整的目的地址,在網絡中的路由獨立于所有其他包;在傳輸過程中不建立連接或虛電路;鑒于技術或管理的原因,需要規劃、建立子網,即將一個網絡分成多個不同的網絡,然后通過路由器將這些獨立的網絡連接起來。
IP軟件模塊駐留在連入Internet的每個主機和路由器上。這些模塊共享相同的地址解析和Internet包處理規則,通過從一臺主機的IP進程將包傳輸到另一臺主機的IP進程直至終點來提供Internet通信。根據其IP頭部的Internet地址,數據包被從一臺主機路由到另一臺主機。在到達最終目的地之前,數據包可能經過幾個網絡。
學習目標
?熟悉建立子網的基本原則,掌握IP地址的子網掩碼的使用及子網劃分方法;
?熟悉IP路由操作的基本模型,能夠解釋數據包如何通過IP網絡從一臺主機傳輸到另一臺主機;
?掌握TCP/IP網絡的聯網方法和網絡應用技術。
關鍵知識點
?子網是某個網絡的分支部分;
?Internet是通過IP路由器相互連接在一起的主機和網絡的集合。
TCP/IP網絡互連
在TCP/IP網絡環境下,任何連接到網絡上的最終用戶計算機系統都稱為IP主機。IP主機既可以是個人計算機、終端服務器上的端口、UNIX工作站,也可以是超級計算機。
IP地址又稱邏輯地址,它和MAC地址一樣,也是獨一無二的。每臺網絡設備用IP地址來唯一地標識。一些設備(如路由器)具有到多個網絡的物理連接,每個網絡接口分配一個地址。偶爾通過撥號連到Internet的計算機由提供撥號服務的Internet服務提供商(ISP)分配一個臨時的IP地址。
由于IP地址由32個二進制位組成,理論上可以有232個IP地址可以使用,即大約43億個可用IP地址。在互聯網上,如果每臺3層網絡設備(如路由器)為了彼此通信而儲存每個結點的IP地址,可以想象路由器會有一張多么大的路由表,這對路由器來說是不可能的。
為了減少路由器的路由表條目數,更加有效地進行路由,清晰地區分各個網段,需要對IP地址采用結構化的分層方案。IP地址的結構化分層方案將IP地址分為網絡部分和主機部分,區分網絡部分和主機部分需要借助地址掩碼(Mask)。網絡部分位于IP地址掩碼前面的連續二進制“1”位,主機部分位于后面的連續二進制“0”位。在子網連接中,IP地址的主機部分被分為以下兩部分:
?左邊部分用于識別子網編號;
?右邊分用于識別該子網上的主機。
主機或路由器用IP地址的引導位確定其地址類別。一旦確定了地址的類別,主機就可以很容易地區分用于識別地址網絡編號部分的位和用于識別地址主機部分的位。主機或路由器可通過設置一個32位子網掩碼,從地址的本地主機部分中確定哪些位用于定義子網編號。
圖1.6所示通過一個B類IP地址建立了2個子網。它使用IP地址的第3個字節識別網絡135.15.0.0的2個子網。路由器可接收網絡135.15.0.0的所有業務,并根據地址的第3字節(子網標識符)選擇正確的接口。

圖1.6 子網尋址
子網掩碼和IP地址中的位一一對應。如果檢查地址的設備將IP地址中的對應位看作原來網絡編號的一部分或子網編號的一部分,就將子網掩碼中的位設置成1;如果將對應位看作子網主機編號的一部分,則將掩碼中的位設置成0。換句話說,IP地址類別確定之后,任何在子網掩碼中設置了對應位的原主機編號的所有位均被用來識別子網編號。
建議子網位應當連續,并設置成本地主機地址的最重要的位。圖1.7示出了用于網絡編號的2個字節。其中,一個字節用于子網編號,另一個字節用于主機編號。

圖1.7 子網掩碼
IP地址采用分層設計。這樣,每臺第3層網絡設備就不必儲存每臺主機的IP地址,而只需儲存每個網段的網絡地址(網絡地址代表了該網段內的所有主機),因此大大減少了路由表條目數,增加了路由的靈活性。
子網規劃與建立
無子網編址是指使用自然掩碼,不對網段進行細分。例如,B類網段172.16.0.0,采用255.255.0.0作為掩碼。對于沒有子網的IP地址機構,外部將該機構看作單一網絡,不需要知道內部結構。例如,所有到地址172.16.x.x的路由被認為同一方向,不考慮地址的第3個和第4個8位分組,這種方案的好處是可以減少路由表的條目數。但這種方案沒法區分一個大的網絡內不同的子網網段,使網絡內所有主機都能收到在該大網絡內的廣播,因此會降低網絡的性能,另外也不利于管理。例如,一個B類網可在網絡內容納65000臺主機,但沒有任何一個機構能夠同時管理這么多臺主機。這就需要一種方法將這種網絡分為不同的網段,然后就可以按照各個子網段進行管理。
從地址分配的角度看,子網是網段地址的擴充。網絡管理員根據本機構發展的需要決定子網的大小。網絡設備使用子網掩碼決定IP地址中哪部分為網絡部分,哪部分為主機部分。下面給出一些示例,說明如何在不同的網絡尋址情況下實現子網組網。
【例1-1】在InterNIC分配了一個B類IP地址128.1.0.0的情況下,需要建立254個子網,每個子網最多能夠支持254臺主機。這是一個最簡單的子網組網形式。IP地址的第1個和第2個字節用于識別網絡,第3個字節用于識別子網,而第4個字節用于識別子網中的主機。
【解析】用二進制格式表示InterNIC分配的地址:

其中,下面畫線的二進制位表示InterNIC分配的IP地址的網絡部分。
定義254個子網需要8個二進制數字位。子網編號應當從1到254。全“0”和全“1”的子網字段值不能分配給實際的(物理)子網,如表1.1所示。
表1.1 用十進制和二進制表示的子網編號

選擇IP地址主機部分最重要的8位定義子網,下面用黑體顯示這些位:

定義一個子網掩碼,將網絡和未來子網字段的所有位設置成1,將未來的主機字段的所有位設置成0:

在每臺主機上都要設置此子網掩碼,在每臺路由器上都要定義此子網掩碼。共享相同IP地址的整個物理網絡使用相同的掩碼。
254個子網將具有以下地址:

可以分配給子網1的地址范圍是:

注意:IP地址的主機部分不能全部都是“1”或者全部都是“0”。
可以分配給子網35的地址范圍是:

可以分配給子網129的地址范圍是:

【例1-2】在InterNIC分配了1個B類Internet地址128.001.000.000的情況下,需要建立2個子網,每個子網最多能夠支持16381臺主機。

【解析】用二進制格式表示InterNIC分配的地址:
其中,下面畫線的二進制位表示InterNIC分配的IP地址的網絡部分。定義2個子網需要2個二進制位。子網編號應當是1和2。全“0”和全“1”的子網字段值不能分配給實際的(物理)子網,如表1.2所示。
表1.2 值1和值2的子網編號

選擇IP地址主機部分最重要的2位定義子網,下面用黑體顯示這些位:

定義一個子網掩碼,將網絡和未來子網字段的所有位設置成1,將未來主機字段的所有位設置成0,即

在每臺主機上都要設置此子網掩碼,在每臺路由器上都要定義此子網掩碼。共享相同IP地址的整個物理網絡使用相同的掩碼。
兩個子網將具有以下地址:

可以分配給子網1的地址范圍是:

注意:IP地址的主機部分不能全部都是“1”或者全部都是“0”。
可以分配給子網2的地址范圍是:

【例1-3】在InterNIC分配了一個B類IP地址128.001.000.000的情況下,需要建立6個子網,每個子網最多能夠支持8190臺主機。
【解析】用二進制格式表示InterNIC分配的地址:

其中,下面畫線的二進制位表示InterNIC分配的IP地址的網絡部分。
定義6個子網需要3個二進制位。子網編號應當從1到6。全“0”和全“1”的子網字段值不能分配給實際的(物理)子網,如表1.3所示。
選擇IP地址主機部分最重要的3位定義子網,下面用黑體顯示這些位:

定義一個子網掩碼,將網絡和未來子網字段的所有位設置成1,將未來的主機字段的所有位設置成0,即

表1.3 值1~6的子網編號

在每臺主機上都要設置此子網掩碼,在每臺路由器上都要定義此子網掩碼。共享相同IP地址的整個物理網絡使用相同的掩碼。
6個子網將具有以下地址:

可以分配給子網3的地址范圍是:

注意:IP地址的主機部分不能全部都是“1”或者全部都是“0”。
可以分配給子網5的地址范圍是:

IP網絡路由
Internet可以看成由IP路由器互相連接的主機和網絡的集合。如圖1.8所示,主機A能直接與主機B通信,因為它們都連在同一個物理網絡上。然而,如果主機A想與主機C通信,它就必須將包傳遞給最近的路由器;然后由這個路由器將包投入到連接Internet的路由器系統中;該包從一個路由器轉移到另一個路由器,直到與主機C的物理網絡相連接的那臺路由器。

圖1.8 互聯網組成結構
為了判斷目的主機是否在某個直接相連的網絡上,源主機檢查目的主機Internet地址的網絡標識,并將目的主機的網絡號與直接連接該主機的網絡的網絡號相比較。
如果網絡號相同,源主機將包封裝在目的地址為目標硬件地址的幀中直接發送給目的主機。如果網絡號不同,源主機必須將包發送給路由器來傳輸,然后將包封裝在目的地址為路由器的硬件地址的幀中;路由器收到此幀以后,抽取出包,然后將包投入Internet路由器系統。
通常,網絡管理員會為網上的每一臺主機配置一個默認路由器,即“默認網關”。默認路由器提供了到達遠端網絡上所有主機的訪問。
路由表
IP路由器根據自己路由表中的信息決定是否轉發包。路由表包括每個目的網絡的IP地址,而不是每個目的主機的地址。這樣減小了路由表的大小,因為路由表中的信息數量直接與構成Internet的網絡數量(而不是主機數量)成正比。
當一個路由器接收到包時,它檢查該包的目的IP地址,在其路由表中搜索匹配目標。如果目標在遠端網絡,路由器就將該包發送到距最終目標更近的另一個路由器;如果目標在與路由器某個端口直接相連的網絡上,路由器則將該包發送到這個端口上。
在巨大的Internet上維護所有路由器上的路由表是很困難的。在多數情況下,對路由表的維護是動態的,以反映當前Internet系統的拓撲結構,并且允許數據包繞過失效的連接進行路由。路由器一般通過與其他路由器一起分擔路由來實現這樣的功能。TCP/IP環境下常用的路由協議包括:
?路由信息協議(RIP);
?開放最短路徑優先(OSPF)協議;
?邊界網關協議(BGP)。
圖1.9所示是一個典型的用RIP建立的路由表示例。路由表中的每一行是一個單獨的條目,其中包括如下信息:

圖1.9 路由表示例
?Destination(目的地址)——目的網絡的IP地址。路由器搜索包頭部中的目的IP地址與這個域的值匹配。
?Next Router(下一個路由器)——距離最終目標更近的鄰接路由器的IP地址。要到達目的地址,本地路由器必須把包傳送給這個路由器。這個域中的“連接”值表示網絡直接和本地路由器的某個端口直接相連。
?Hops(跳步)——路由器和目的網絡之間的跳步數。包必須經過的每一個中間路由器算作一個跳步。
?Time(時間)——本條目從上次更新到現在的時間。路由器每次接收到某個路由的更新信息,都拋棄該路由舊的條目,然后重新初始化時間。
?Source(源地址)——為本條目提供信息的路由協議名稱。
IP包的路由和轉發
下面的例子描述了IP包在Internet上是如何從一臺主機路由到另一臺主機的。圖1.10示出了其拓撲結構,其中包括源主機(主機A)、目的主機(主機B)、3個中間路由器和4個不同的物理網絡。

圖1.10 縮微Internet拓撲結構
假設,在網絡128.1.0.0上的主機A希望采用Telnet協議連接網絡128.4.0.0上的主機B。Telnet是一個遠程終端訪問協議,它允許一臺主機與另一臺主機上的程序通信。
1.網絡128.1.0.0上主機A的包
由于主機A和主機B在不同的網絡上,網絡A必須使用IP路由器的服務把包傳輸給主機B。根據初始設置,主機A知道它自己的默認網關是路由器A,IP地址為128.1.0.2。因此,主機A知道所有到主機B的包都必須送到路由器A。
如果主機A的地址解析協議(ARP)緩存中沒有路由器A的硬件地址,它就發出ARP請求并等待路由器A的響應。當地址映射存在后,主機A將所要傳送給主機B的包封裝到目的MAC地址為080002001231(路由器A的端口1)、源MAC地址為080002001111(主機A)和類型域為0800(IP)的以太網幀中,如圖1.11所示。

圖1.11 網絡128.1.0.0上的包
注意:在本例中,由主機A定義的IP包頭一直保持不變。在數據包向其最終目的前進的過程中,變化的地址僅僅是源以太網地址和目的以太網地址。
類型域在功能上就像一個“包裝卡”,告訴路由器A以太網幀中的數據域包含IP包。路由器A用這個信息來決定使用何種協議來處理以太網幀中的內容。
2.網絡128.2.0.0上的包
當接收到來自主機A的包時,路由器A刪除以太網報頭,檢查類型域,然后將包傳送給IP模塊(軟件進程)。IP模塊檢查IP包報頭中的目的網絡號并且在其路由表(如表1.4所示)中定位于128.4.0.0的路由上。
表1.4 路由表1

由表1.4可知,路由器A知道目標網絡有2個跳步的距離,它必須將包轉發給路由器B,IP地址為128.2.0.3。如果路由器A的ARP緩存中沒有路由器B的硬件地址,它會發出一個ARP請求并且等待路由器B響應。在得到地址之后,路由器A將包封裝在以太網幀中,目的MAC地址為080002001233(路由器B的端口1),源MAC地址為080002001232(路由器A的端口2),類型域為0800(IP),如圖1.12所示。然后,路由器A將幀發送到端口2。

圖1.12 網絡128.2.0.0上的包
3.網絡128.3.0.0上的包
當接收到來自路由器A的包后,路由器B刪除以太網報頭,查看類型域,并且把包傳送給它的IP模塊。路由器的IP模塊檢查IP包報頭中的目的網絡號并且在其路由表(如表1.5所示)中定位于網絡128.4.0.0的路由上。
表1.5 路由表2

根據表1.5可知,路由器B知道目的網絡有1個跳步的距離,它必須將包轉發給路由器C,IP地址為128.3.0.3。如果路由器B的ARP緩存中沒有路由器C的硬件地址,它會發出一個ARP請求并且等待路由器C的響應。在得到硬件地址后,路由器B將包封裝在以太網幀中,目的MAC地址為080002001235(路由器C的端口1),源MAC地址為080002001234(路由器B的端口2),類型域為0800(IP),如圖1.13所示。然后,路由器B將幀發送到端口2。

圖1.13 網絡128.3.0.0上的包
4.網絡128.4.0.0上的包
當收到來自路由器B的包后,路由器C刪除以太網報頭,檢查類型域,將包傳送給其IP模塊。IP模塊檢查IP包報頭中的目的網絡號并且在它的路由表(如表1.6所示)中定位于網絡128.4.0.0的路由上。
表1.6 路由表3

由表1.6可知,路由器C發現目的網絡直接連在端口2上,它能夠直接發送數據包。如果路由器C的ARP緩存中沒有主機B的硬件地址,它會發出一個ARP請求,并且等待主機B的響應。在得到硬件地址后,路由器C將包封裝在以太網幀中,目的MAC地址為080002002222(主機B),源MAC地址為080002001236(路由器C的端口2),類型域為0800(IP),如圖1.14所示。然后,路由器C將包發送到端口2。

圖1.14 網絡128.4.0.0上的包
5.網絡128.4.0.0上主機B的包
主機B收到此幀后,刪除以太網報頭,檢查類型域,將包傳送給它的IP模塊。IP模塊確認該包是發給本機的之后,刪除IP包報頭,將TCP消息傳送給TCP模塊。TCP模塊檢查端口號,將消息送給本地Telnet程序訪問的Telnet端口。
最后,當主機B的Telnet程序做好響應主機A的準備之后,整個過程將反向進行。
Internet組成結構
Internet是由許多單個的TCP/IP網絡構成的一個世界范圍的網絡。構成Internet的公用網絡、專用網絡、大學網絡、軍事網絡和公司網絡,通過地區的、美國的和國際的數據傳輸主干互相連接。事實上,Internet增長非???,以至無法統計每年增加的Internet用戶數。
近年來,Internet的拓撲結構隨著其規模的增長而變得越來越復雜。目前,Internet不再僅僅是圖1.15所示的掛在中央核心網絡上的一堆簡單的樹結構集合,而是一個圖1.16所示的多層系統。

圖1.15 早期Internet的組成結構

圖1.16 目前Internet的組成結構
這個分層的Internet,其組織結構從大到小依次為:
?主干網絡——為幾個大型的區域網絡和ISP提供服務。
?地區網絡——提供Internet接入服務,即從特定的Internet服務提供商(ISP)連接到撥號上網的單用戶。
?自治系統(AS)——一組專用的網絡和路由器,使Internet的不同部分可以分開管理;不同自治系統內的路由器可以在內部使用不同的路由協議。
練習
1.雖然IP是無連接的,但是其結點之間還是建立了邏輯上的連接。判斷正誤。
2.當路由包通過Internet時,中間的路由器要檢查其網絡地址和主機地址。判斷正誤。
3.考慮兩個連接到Internet上的相隔數千千米的結點,它們要使用IP互相通信。簡要描述IP路由器是如何從一個結點向另一個結點傳輸信息的。
4.如果有一個路由器被用作默認網關,其一邊連接一個以太局域網,另一邊通過幀中繼協議連接一個廣域網。當路由器要轉發一個來自局域網的包到使用幀中繼的廣域網時,簡述它將怎么做。
5.簡述Internet的組成結構。
6.某公司需要將1059個結點從37個地點(分散的物理網絡)連接到網絡中,請完成以下要求:
a.將地址如何分配給37個物理網絡使用
b.這個網絡能否分為子網以備增長?如果能,請描述如何操作
c.說出每個地址中可以單獨分配地址的結點數目
d.給出地址的子網部分和主機部分
補充練習
使用自己的計算機對至少兩個目的地址執行路由追蹤操作。追蹤其Internet路徑,研究追蹤結果,記錄每個目的地址的路由經過了多少跳步(指經過的路由器)。