計算機網絡技術(五)——網絡互聯技術

摘要

  1. 網絡互聯概述
  2. 網際協議(IP)
  3. IP 地址
  4. IP 路由
  5. IP 中的其他協議
  6. IPv6 協議

一、網絡互聯概述

要讓分佈在世界各地,不同類型、不同協議的網絡相互連接起來,並且能流暢、高效地實現信息共享,就必須依靠網絡互聯技術來實現。網絡互聯技術是指所有能在物理和邏輯上實現不同網絡相互連接的技術的總稱。
實現異構網絡互聯的基本策略是協議轉換和構建虛擬互聯網絡。協議轉換實現異構網絡之間數據分組的轉換和轉發;構建虛擬互聯網絡實現在異構網絡間轉發統一的虛擬互聯網絡的數據分組。IP網絡就是此類虛擬互聯網。

二、網際協議(IP)

2.1 IP概述

網際協議(Internet Protocol,IP)是TCP/IP體系中最重要的兩個協議之一。正是由於IP的出現,才使分佈在世界各地的不同類型的網絡互聯在一起。IP屬於OSI參考模型的網絡層,與之相關的還有3個協議:

  • 地址解析協議(Address Resolution Protocol,ARP)
  • 網際控制報文協議(Internet Control Message Protocol,ICMP)
  • 網際組管理協議(Internet Group Management Protocol,IGMP)

IP中最核心的技術是IP地址和IP路由。
IP地址是標識IP網中的計算機、路由器和子網分配設備的地址。
IP路由是指收集、計算和維護到達不同網絡的路徑信息,並存在路由表裏。

IP的特點:

  1. IP是面向無連接的、不可靠的分組傳輸協議
  2. IP屏蔽了數據鏈路層和物理層的差異,使得數據的傳輸和轉發更加方便
  3. IP是點對點式網絡通信協議
2.2 IPv4協議報文格式

IPv4是第4版IP,是當前Internet網絡主要使用的IP,其數據報的格式如下圖所示。

IPv4數據報結構

各字段說明:

1)版本號:表示IP的版本號。IPv4的版本號字段值爲0100(十進制4)。
2)首部長度:IP分組首部長度,包括可變長度的選項字段,以4B爲單位。
3)區分服務:用來指示期望獲得哪種類型的服務。只在網絡提供區分服務時,才使用該字段。
4)總長度:IP分組的總字節數,包括首部和數據部分。
5)標識:標識一個IP分組。主要用途是在IP分組分片和重組過程中,用於標識屬於同一源的IP分組。
6)標誌位:用於IP分組的分片。DF是禁止分片標誌,MF是更多分片標誌。結構如下:

保留位 DF MF

7)片偏移:表示一個IP分組分片封裝源IP分組數據的相對偏移量,即封裝的數據從哪個字節開始。
8)生存時間(TTL):表示IP分組在網絡中可以通過的路由器數(或跳數)。TTL = 0 時,路由器丟棄該IP分組。
9)協議:該IP分組封裝的是哪個協議的數據包,IP利用該字段實現複用/解複用功能。
10)首部校驗和:對IP分組首部的差錯檢測。
11)源IP地址/目的IP地址:發出/接收IP分組的主機IP地址。
12)選項字段:可以攜帶安全、源選路徑、時間戳和路由記錄等內容。
13)填充:用於補齊整個首部,符合32位對齊。

三、IP 地址

IP要連接世界各地的網絡和主機,實現數據自由傳輸,必須要爲每一個主機分配一個全球唯一的標識,這個唯一的標識稱爲IP地址。目前普遍使用的是IPv4版本,由一個32位的二進制數表示。IPv4經歷了3各歷史階段:

1. 分類的IP地址
IP地址由兩個字段構成:網絡號和主機號。表示方式爲:

IP地址:: = {<網絡號>,<主機號>}

分爲5種類別:A、B、C、D和E。

  • A類地址:網絡號佔8位,主機號佔24位,其中網絡號最高位固定爲1。
  • B類地址:網絡號佔16位,主機號佔16位,其中網絡號最高2位固定爲10。
  • C類地址:網絡號佔24位,主機號佔8位,其中網絡號最高3位固定爲110。
  • D類地址:最高4位爲1110,用於IP多播。
  • E類地址:最高4位爲1111,作爲保留使用。

這5類IP地址分配示意圖如下。

IP地址分類示意圖

隨着網絡規模的發展,這種分類方式會造成巨大的地址浪費,此外,兩級IP地址也不夠靈活,因此出現了三級IP地址結構,即子網劃分。

2. 子網劃分
子網劃分的方法:
1)在原有兩級IP地址結構基礎上,從IP地址的主機號部分借用若干位作爲子網號,則IP地址的結構變爲了:網絡號、子網號和主機號3部分。表示方式爲:

IP地址 :: = {<網絡號>,<子網號>,<主機號>}

2)一個擁有多個物理網絡的單位,可以利用子網號,將物理網絡劃分爲若干個子網。
3)從其他網絡發送給某單位的某個主機的IP數據報,先根據其目的IP地址中的網絡號找到單位網絡相連接的路由器;該路由器再根據目的IP地址中的子網號找到相應的子網,最終將IP數據報發送給目的主機。

例如,某網絡地址爲215.195.45.0,將主機號中的3位作爲子網號使用,剩下5位作爲主機號,則最多可以劃分出8個子網,分別是
215.195.45.0(子網號爲000)、215.195.45.32(子網號爲001)、215.195.45.64(子網號爲010)、215.195.45.96(子網號爲011)、215.195.45.128(子網號爲100)、215.195.45.160(子網號爲101)、215.195.45.192(子網號爲110)、215.195.45.244(子網號爲111),
每個子網的最大主機數爲252=302^5 - 2 = 30個。

查找子網的方法是 ”子網掩碼“
子網掩碼是一個32位二進制數,1對應IP地址中的網絡號和子網號,0對應主機號。將IP地址與子網掩碼按位進行邏輯與(AND)運算,可得子網的網絡地址。

例如,IP地址爲202.194.20.138,其子網掩碼爲 11111111 11111111 11111111 11100000,兩者按位邏輯與運算爲:

IP地址與子網掩碼邏輯與運算

故該IP所在子網的網絡地址爲202.194.20.128。

3. 無分類編址CIDR
爲了提高IP地址資源利用率,又出現了無分類編址方法,稱爲 無分類域間路由選擇(Classless Inter-Domain Routing,CIDR) 。其基本思想爲:

1)CIDR不再按A、B、C類進行IP區分,也不再使用子網號,它把32位的IP地址劃分爲兩部分,前部分稱爲網絡前綴,用來指明網絡,後面部分用來指明主機。一種無分類的二級編址方式,表示方式如下:

IP地址 :: = {<網絡前綴>,<主機號>}

在IP地址後面加上斜線 ”/“ 加網絡前綴位數的方式來表示一個完整的IP地址,如:
202.194.20.138/27
2)網絡前綴都相同的連續IP地址稱爲一個CIDR地址塊,其中一個地址被確定,則整個地址塊的最小地址和最大地址,以及地址塊中的地址個數都可被確定。如IP地址爲202.194.20.138/27,其前27位爲網絡前綴,後5位爲主機號,則二進制表示爲:
11001010 11000010 00010100 100 01010 (加粗的是前綴)
則該IP地址所在CIDR地址塊中的最小地址爲:
11001010 11000010 00010100 100 00000 (加粗的是前綴),即
202.194.20.128
最大地址爲:
11001010 11000010 00010100 100 11111 (加粗的是前綴),即
202.194.20.159
該地址塊中總共有252^5 = 32個地址。

CIDR優點:
路由聚合 : 可以用來簡化路由器中的路由表,將衆多的IP地址聚合在一個CIDR地址塊中,從而減少路由表中的項目和路由器之間的信息交換;
靈活分配: 即從主機號中借用若干位來擴展網絡前綴位數,從而靈活分配CIDR的地址塊。

如210.32.16.0/20地址塊,可以分爲4個相等IP地址數的地址塊,也可以分爲不同IP地址數的地址塊。

分爲4個相同數量的IP地址數:

原始地址塊 210.32.16.0/20 11010010 00100000 00010000 00000000
地址塊1 210.32.16.0/22 11010010 00100000 00010000 00000000
地址塊2 210.32.20.0/22 11010010 00100000 00010100 00000000
地址塊3 210.32.24.0/22 11010010 00100000 00011000 00000000
地址塊4 210.32.28.0/22 11010010 00100000 00011100 00000000

分爲4個不同數量的IP地址數:

原始地址塊 210.32.16.0/20 11010010 00100000 00010000 00000000
地址塊1 210.32.16.0/21 11010010 00100000 00010000 00000000
地址塊2 210.32.24.0/22 11010010 00100000 00011000 00000000
地址塊3 210.32.28.0/23 11010010 00100000 00011100 00000000
地址塊4 210.32.30.0/23 11010010 00100000 00011110 00000000

當路由表中包含同一個地址塊內的多個子網地址,在使用CIDR路由查找時,應選擇具有最長網絡前綴的路由,稱爲 最長前綴匹配 。因爲前綴越長,子網就越小,路由就越具體。

除了上面三種編址方式外,還有一些特殊的IP地址,它們稱爲私有地址或專用地址。這些地址只能在內部網絡中使用。如下表:

私有地址類別 範圍
A類 10.0.0.0 ~ 10.255.255.255(或10.0.0.0/8)
B類 172.16.0.0 ~ 172.31.255.255(或172.16.0.0/12)
C類 192.168.0.0 ~ 192.168.255.255(或192.168.0.0/16)

如果使用私有地址的主機與網絡外的主機通信,必須進行地址轉換,轉換方法稱爲網絡地址轉換協議(Network Address Translation,NAT)。

四、IP路由

爲IP數據報尋找合適的通信路徑並且將其轉發出去的過程稱爲IP路由,是由路由器實現的。

4.1 路由器的結構及功能

路由器結構分爲輸入/輸出端口、交換結構和路由處理器。

1)路由處理器: 負責執行路由器指令,包括路由協議、路由運算、路由表更新維護。
2)輸入端口: 根據接收到的IP數據報的目的IP地址檢索路由表,指定數據報交換到哪個輸出端口,然後交給交換結構處理。
3)交換結構: 將輸入端口的IP數據報交換到指定的輸出端口。主要包括內存交換、總線交換和高級交叉 “網絡” 交換3種交換結構。
4)輸出端口: 重新封裝IP數據報到數據鏈路層的數據幀中,並通過物理層發送出去。

4.2 路由表與路由轉發

“路由” 與 “轉發” 是路由器最重要的兩項功能。通過靜態(人工方式)或動態(路由協議)獲取路由信息並保存在路由表中,供數據轉發時使用。

路由表基本結構:
1)目的網絡與子網掩碼: 準確描述一個目的網絡。
2)下一跳: 表示到達該目的網絡的路徑的下一個鄰居結點的接口IP地址。
3)接口: 應從哪個接口發送IP分組到目的網絡。

最長前綴匹配原則: 路由器對於接收到的IP數據報,將其目的IP地址與路由表中各路由項的掩碼按位進行邏輯與運算,將結果與路由表裏的目的網絡比較,如果出現多個與目的網絡一致的情況,則選擇其中網絡前綴最長的一項作爲路由轉發的依據。

4.3 路由算法

1. 靜態路由與動態路由
靜態路由是人工把路由信息配置到路由表中;動態路由根據路由協議動態收集網絡狀況信息,然後按照某種路由算法計算最佳路由並更新路由表。

2. 距離-向量路由算法
是一種僅需要網絡 “局部” 信息、異步的、迭代的、分散式的路由算法。每個路由器週期性地向鄰居通告形如 <目的網絡,距離> 的距離向量,每個路由器當收到鄰居的距離向量或檢測到本地鏈路的費用變化時,根據Bellman-Ford計算經過哪個鄰居可以到達每個目的網絡的最小距離,更新字節的距離向量與路由表,並把更新的距離向量交換給其所有的鄰居路由器。經過多次迭代,確定到達每個目的網絡的最佳路由。
爲了避免出現無窮計數問題,解決方法有:毒性逆轉(Poisoned Reverse)、定義最大有效距離、水平分割和阻礙時鐘等。

3. 鏈路狀態路由算法
將網絡抽象爲一個圖,然後利用Dijkstra算法求最短路徑。每個路由器檢測並收集直接相連鏈路的費用及直接相連路由器的IP地址信息,構造鏈路狀態分組,廣播擴散給網絡中其他所有路由器。每個路由器維護一個鏈路狀態數據庫,根據庫中鏈路狀態信息構建網絡拓撲圖,利用Dijkstra算法求最短路徑,確定最佳路由。

4. 層次路由
當網絡規模很大時,抽象的網絡拓撲圖不再適用,最有效的解決方案是層次劃分路由。將大規模互聯網按組織邊界、管理邊界、網絡技術邊界或功能邊界劃分爲多個自治系統(AS),自治系統之間通過網關路由器相關連接。層次路由將大規模互聯網路由劃分爲兩層:自治系統內路由和自治系統間路由。

4.4 路由協議

1. 自治系統(Autonomous system,AS)
自治系統是在統一技術管理下的一組路由器,這些路由器使用相同的AS內部路由選擇協議。

2. 域內/域間路由
域內路由協議即AS內部使用的協議,稱爲內部網關協議(Interior Gateway Protocol,IGP),如RIP和OSPF協議。
域間路由協議稱爲外部路由網關協議(External Gateway Protocol,EGP),實現不同自治系統間交換路由信息,如BGP4協議。

3. RIP 路由協議
RIP是一種分佈式的基於距離向量的IGP;RIP要求AS內每一個路由器都維護從它自己到其他每一個目的網絡的距離向量。

4. OSPF 路由協議
OSPF(Open Shortest Path First,開放式最短路徑優先),採用Dijkstra算法,收集與本路由器相鄰的所有路由器的鏈路狀態,並向本自治系統內的所有路由器廣播發送鏈路狀態信息,稱爲 “洪泛” 。
爲了使OSPF能在大規模網絡使用,可以將一個自治系統進一步劃分若干各區域。這樣就減少洪泛交換鏈路狀態信息的通信量。

5. BGP 協議
BGP是不同自治系統間交換路由信息的協議。它是力求尋找一條能夠到達目的網絡且比較好的路由,而並非要尋找一條最佳路由。
BGP在TCP上建立BGP會話來交換路由信息,會話交換包括4種類型的報文。
1)打開(OPEN)報文,用來與相鄰的另一個BGP發言人建立關係。
2)更新(UPDATE)報文,用來發送某一路由信息。
3)保活(KEEPALIVE)報文,用來確認打開報文和週期性證實鄰站關係。
4)通知(NOTIFICATION)報文,用來發送檢測到的差錯。

五、IP中的其他協議

5.1 地址解析協議(ARP)

使用IP地址通信時,發送數據的主機和轉發數據的路由器都必須要知道IP地址所對應的硬件地址才能將通信具體實現。地址解析協議(ARP)就是解決這一問題的機制。

ARP基本思想是在每一臺主機中設置專用內存區域,稱爲ARP高速緩存,裏面有該主機所在局域網中各個主機和路由器的IP地址和硬件地址的映射表,這個表會經常更新。

ARP查找硬件地址的過程:
假設局域網中主機A向主機B發送IP數據報
1)主機A首先在局域網中廣播發送一個ARP請求分組,內容形象的描述爲:“我的IP地址是A,硬件地址是a,我想知道IP地址爲B的硬件地址” 。本局域網中的所有運行ARP的主機都會收到該ARP請求。
2)主機B收到該請求後,發現請求分組中的IP地址與自己IP一致,則將主機A的硬件地址寫入自己的ARP高速緩存中,方便今後向A發送數據;其他主機發現與自己IP不符就丟棄。主機B收到ARP請求後,創建一個響應分組,並將自己硬件地址寫入響應分組,然後直接發送給A。
3)主機A收到主機B的ARP響應分組後,將分組中主機B的硬件地址寫入自己ARP高速緩存裏。

爲防止局域網中主機地址變更,ARP高速緩存中每一個地址映射都有一個生存時間(幾十分鐘),超時就被刪除,然後再重新運行ARP查找主機硬件地址。

5.2 動態主機配置協議(DHCP)

一臺新進算計要接入Internet,需要對其配置IP地址、子網掩碼、域名等,在較大規模局域網內如果人工爲每臺配置則相對繁瑣,動態主機配置協議就是用來解決這種問題的機制。

基本思想是:在一個網絡內部設置一臺DHCP服務器,其中保管着該網絡所管轄的IP地址及其他配置信息;當有一臺計算機新接入該網絡時,它在開啓後向該網絡廣播發送一個DHCP發現報文,目的IP地址全爲1,源IP地址全爲0。DHCP服務器收到此報文後,從自己保存的IP地址中取出一個,與配置信息一起,通過DHCP提供報文發送給這臺計算機,從而爲這臺計算機分配一個新的IP地址及配置信息。

5.3 網際控制報文協議(ICMP)

在數據傳送過程中經常會遇到延遲、丟失等異常情況,爲了使通信雙方能夠知道異常情況,並及時調整和控制,網際控制報文協議應運而生。
它通過讓主機或路由器發送ICMP報文,將網絡傳輸過程中的差錯和異常情況報告給參與數據通信的相關主機。ICMP報文作爲IP數據報的數據部分,封裝在IP數據報中,其報文格式爲:

ICMP報文格式

ICMP報文有兩種類型:差錯報告報文和詢問報文。

ICMP 差錯報告報文有5種情況:
1)終點不可達。當路由器或主機不能交付數據報時,向源點發送終點不可達報文。
2)源點抑制。當路由器或主機由於擁塞而丟棄數據報時,向源點發送抑制報文。
3)時間超時。當收到生存時間(TTL)值爲0的數據報時,丟棄並向源點發送超時報文。
4)參數問題。當數據報中有字段不正確時,丟棄並向源點發送參數問題報文。
5)改變路由。當路由器的路由表發生變化時,向主機發送改變路由報文。

ICMP 詢問報文有2種情況:
1)回送請求和回答。由主機向一個特定目的主機發出的詢問。收到此報文的主機必須給源主機發送回送回答報文,用於測試目的站是否可以到達。典型應用是ping命令。
2)時間戳請求和回答。用於網絡中的主機請其他主機回答當前日期和時間,用於同步時鐘和測量時間。

5.4 網際組管理協議(IGMP)

用於管理IP多播。IP多播是由一個源點向多個終點發送數據業務。

IP多播過程如下圖所示。

IP多播示意圖

假設3個不同局域網的主機A、主機B和主機C均屬於一個多播組,其多播地址爲224.30.152.62。當服務器要向這個多播組發送IP多播時,只需將IP分組發送到多播路由器R中,R根據多播路由協議,將IP分組複製並轉發到多播組成員主機A、主機B和主機C所在局域網的多播路由器中,即R1、R2和R3,從而發送到主機A、主機B和主機C。

IGMP的作用是管理某個多播分組下的主機(加入或退出分組)。

IGMP的工作過程分2個階段:
1)當某個主機加入一個新的多播組時,該主機向多播組的多播地址發送一個IGMP報文。本地多播路由器收到該報文後,根據多播路由協議將多播組成員信息告知其他多播路由器。
2)多播路由器週期性探尋本地局域網上的主機,確定是否還屬於多播組成員。如果幾次探尋後沒有一個主機迴應,則認爲本地局域網內主機都已離開了此分組,不再將組成員信息發給其他多播路由器。

六、IPv6 協議

因IPv4 協議面臨者IP地址資源嚴重不足的問題,IETF於1995年提出了IPv6協議。

IPv6 採用了新的首部格式,基本首部固定40B長度,如下圖所示。

IPv6基本首部格式

首部字段說明:

  • 版本號: 指明IP版本,在IPv6中該值爲0110(十進制6).
  • 通信業務類型: 用於區分不同的IPv6數據報的類別或優先級。
  • 流標號: IPv6提出了數據業務流的概念,將某特定源點到終點的一系列實時數據報(如音頻、視頻等)定義爲流,屬於同一個流的數據報,其流標號相同。
  • 有效載荷長度: 指明IPv6數據報除基本首部外的字節數,最大值爲64KB。
  • 下一個首部: 當沒有擴展首部時,下一個首部指明基本首部後面的數據所屬於的上層協議;當有擴展首部時,用於表示後面第一個擴展首部的類型。
  • 跳數限制: 用來防止數據報在網絡中無限制地被轉發。數據報被源點發出後,每經過一個路由器,該值就減1,當爲0時,數據報被丟棄。
  • 源地址和目的地址: 表示數據報的源點和終點。

IPv6 的表示方法:
IPv6 的地址佔128位,最多可提供3.4 x $ 10^{38} $ 個IP地址。表達方式通常是採用冒號分隔的十六進制,把每16位的值用十六進制數表示,各個數之間用冒號隔開,例如一個用冒號十六進制表示的IPv6地址:45EE:0000:78AC:FFFF:2A9B:0000:FFFF:62F4。

總結

  • 介紹了網絡互聯是什麼

  • IP的特點有哪些以及IPv4 協議報文格式

  • IPv4 地址3個階段的編址方式:分類編址、子網劃分、無分類編址CIDR

  • 路由器的結構及功能是啥,如何根據路由錶轉發數據,以及常用的路由算法和協議

  • IP中其他重要協議:ARP、DHCP、ICMP和IGMP 的功能和工作原理

  • IPv6 的報文結構及表示方法

luckluck

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章