1. 程式人生 > >第三層IP協議和路由功能的介紹上

第三層IP協議和路由功能的介紹上

在過去的20多年的時間裡,網路技術不斷髮展,從最初的X.25、幀中繼,到乙太網FDDI,再到目前流行的ATM,不同的技術提供了多樣化的網路選擇。為了能夠在眾多不同型別的區域網和廣域網之間實現網路的互操作性,就需要使用網路協議

Internet所採用的網路協議棧不僅具有低層次的協議規範,如TCP和IP協議等,而且還物件電子郵件、模擬終端和檔案傳輸這樣的高層次應用也制定了相應的規範。下圖中顯示了較為重要的Internet協議和OSI參考模型之間的對應關係。


本文將主要講述TCP、IP協議,以及其它一些相關協議協議使用環境。本文的重點將放在對第三層IP協議和路由功能的介紹上,而對於第四層的TCP
協議只做簡單說明。


TCP協議

TCP,即傳輸控制協議,是一種面向連線的傳輸層協議。通過使用序列號和確認資訊,TCP協議能夠向傳送方提供到達接收方的資料包的傳送資訊。當傳送過程中出現數據包丟失情況時,TCP協議可以重新發送丟失的資料包直到資料成功到達接收方或者出現網路超時。TCP協議還可以識別重複資訊,丟棄不需要的多餘資訊,使網路環境得到優化。如果傳送方傳送資料的速度大大快於接收方接收資料的速度,TCP協議可以採用資料流控制機制減慢資料的傳送速度,協調發送和接收方的資料響應。TCP協議能夠把資料傳送資訊傳遞給所支援的更高層次的協議或應用使用。


IP協議

IP協議位於Internet協議棧的第三層,最早於1970年在UNIX系統平臺上開發成功。今天,IP
協議
已經發展成為網路作業系統相互之間進行通訊的標準機制,是HTTP和TCP等高層協議的基礎。除了可以提供網路路由之外,IP協議還具有錯誤控制以及網路分段等眾多功能,是整個Internet協議棧的核心。

一個完整的IP地址由4位元組,即32位數字組成,為了方便人們的使用,IP地址經常被寫成10進位制的形式,中間使用符號“.”分開不同的位元組。例如採用32位形式的IP地址如下:

00001010000000000000000000000001

如果使用十進位制的形式則為:

10.0.0.1

IP地址可以被劃分成不同的類,根據最左邊4個地址位的值決定具體的網路型別。例如,所有的A類網路的地址最左邊一位的值均為0,而其它剩餘31位的值既可以取0也可以取1。即:

0xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

(x代表0或1)

根據A類網路地址的規定,我們可以推算出該型別網路的有效地址範圍是從0.0.0.0到127.255.255.255。

B類網路地址從左向右第一位必須為1,第二為必須為0,其它30位則可以自由取值。例如:

10xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

因此,B型別網路地址的有效取值範圍是從128.0.0.0到191.255.255.255。同樣的,除第一位必須為1之外,C、D和E類網路地址的第二、三和四位都應當分別為1。我們在下表中對不同網路型別IP地址的劃分進行了總結:


域名

域名是一種更加方便,更易於記憶的可以唯一標識網路上任何一臺計算機的方法。Internet使用域名系統(即DNS)給IP地址指定名稱,並且可以根據不同的命令在域名和IP地址之間進行對映和轉換。域名系統採用類似目錄樹的等級結構,所有的域名和地址資訊都被儲存在遍佈Internet的分散式資料庫中。

作為公用網路的Internet,所有的域名和地址都必須在使用前向授權域名註冊商註冊,然後才能使用。象.com,.net,和.org這樣的頂級域名只有那些具有頂級域名註冊權的註冊商才能夠註冊。


IPv4IPv6

目前所普遍採用的IP協議又被成為IPv4,即版本4。更高版本的IPv6已經開始在小範圍的網路環境內開始試用,將在今後的幾年內逐步取代IPv4IPv6對整個地址分配系統進行了改進,支援128位(32位元組)的地址長度,在效能和安全性上有所增強。

我們已經知道IPv4只能支援32位(8位元組)的地址長度,因此所能分配的地址數目也是有限的,大致相當於4,294,967,296,即2的32次方。當然,在IP協議最早開始使用的時候,這個數字還是相當可觀的,但是隨著近幾年全球範圍內計算機網路的爆炸性增長,可以使用的IPv4地址空間已經越來越有限。雖然目前可以暫時採用類似作業系統虛擬記憶體的虛擬地址技術,但是還是不能緩解日益增長的壓力。因此,為了從根本上解決IP地址空間不足的問題,提供更加廣闊的網路發展空間,人們對IPv4進行改進,推出功能更加完善和可靠的IPv6


網路地址

由於受到網線電氣效能上的侷限,計算機網路一般都是由一些單獨的網段組成。路由器和網橋等網路裝置則被用來連線不同的網段。除了使用網線在物理上劃分網路之外,還可以使用更高層次的軟體協議來劃分子網。子網不僅可以與物理網段一一對應,還可以跨網段劃分。

即使不劃分子網,任何IP網路上的主機都屬於一個由網路地址決定的對等網路(多宿主主機因為具有多塊網絡卡可以同時屬於多個對等網路)。具有相同網路地址上的主機既可以位於同一個物理網段也可以分散在不同的地方,通過網路地址組合在一起,可以方便相互之間進行通訊。

網路地址和IP地址非常相似,但是我們不能把兩者混為一談。網路地址由主機的IP地址和網路型別決定。例如,對於10.0.0.1這個主機地址,預設情況下最左邊的8位代表網路地址,其它各位為0,即網路地址為10.0.0.0。

我們在下表中給出了A、B和C類網路的網路地址劃分方法。因為D和E類網路只用於網路管理目的,我們在這裡就不進行說明了。


子網

除了由主機地址和網路型別決定的網路地址之外,IP協議還支援使用者根據自己網路的實際需要,建立子網路。子網與網路地址相結合,不僅可以把位於不同物理位置的主機組合在一起,還可以通過分離關鍵裝置或者優化資料傳送等措施提高網路安全效能,降低網路流量。


子網掩碼

子網一個最顯著的特徵就是具有子網掩碼。與IP地址相同,子網掩碼的長度也是32位,也可以使用十進位制的形式。例如,以下二進位制形式的子網掩碼

11111111111111111111111100000000

採用十進位制的形式為:255.255.255.0


掩碼規則

子網掩碼既不能作為IP地址使用,也不同單獨存在,必須結合IP地址一起使用。子網掩碼的作用就是對IP地址進行劃分,形成擴充套件網路地址和主機地址兩部分。

一個有效的子網掩碼由兩部分組成,分別是左邊的擴充套件網路地址位(用數字1表示)和右邊的主機地址位(用數字0表示)。象下面這兩個子網掩碼都是無效的。

00000000000000000000000000000000

11111111111111111111111111111111

擴充套件網路地址由我們上文所講的基本網路地址和多出的子網地址組成。通過使用子網地址可以在主機地址空間內劃分出一部分地址位作為子網路的地址。舉例來說,一個小型企業計劃使用192.168.1.0網路建立企業內部網,並且希望為不同的部門分配不同的網段,這就需要使用子網掩碼對網路進行劃分。我們已經知道這是一個C類網路,網路地址為24位,如果要對其進行分段,必須要求擴充套件網路地址的位數超過24。例如,如果我們決定使用25位的子網掩碼255.255.255.128,就會建立兩個新的子網路,而原先用於主機的地址位則會相應減少。具體可見下表:



如果我們在主機地址中取兩位作為子網掩碼,可以建立4個子網;如果取三位作為子網掩碼,可以建立8個子網,按此類推。使用者可以根據需要建立子網數和每個子網上可以連線的主機數權衡決定設定多少位的子網掩碼。


ARP和RARP

在一些象乙太網這樣的網路結構中,可以使用Internet協議棧中的兩個子協議ARP(地址解析協議)和RARP(逆向地址解析協議)動態的獲得網路主機的IP地址。ARP協議可以通過傳送網路廣播資訊的方式,確定與某個網路層IP地址相對應的物理層地址(即MAC地址)。RARP是ARP的反向協議,同樣通過網路廣播的方式決定與某個硬體地址相對應的網路層IP地址。RARP協議對於無盤工作站尤為重要,因為無盤工作站系統啟動時不知道本機的網路層地址,但是可以通過RARP協議找到與本機硬體層地址相對應的IP地址。


路由

Internet是由遍佈全球的無數個大大小小的網路相互連線而成,可以在不同的網路之間進行資料的傳送。作為連線不同網路的介面裝置,路由器已經得到了非常廣泛的應用,其主要功能就是連線多個獨立的網路或子網,實現網際網路間的最佳尋徑及資料傳送。根據路由器作用範圍的不同,我們可以將其分為內部路由器和外部路由器兩種。其中,內部路由器主要用於網路內部(又稱自主系統)資訊的交換,而外部路由器則主要用於網路之間的資訊傳送。

IP路由協議是一種動態協議,要求路由裝置能夠根據網路環境計算路由,並且當網路發生變化時可以自動選擇最佳路徑。與動態路由不同,靜態路由則要求網路管理人員手動配置路由資訊,當網路環境改變時,除非網管人員更改路由,否則靜態路由保持不變。

路由資訊一般被儲存在路由表中,其中每一條都包含目標接收方地址和下一個路由器的地址等資訊。因為網路環境的狀況隨時隨地都在發生變化,資料在傳送過程中所經過的完整路徑很難事先預知,所以不可能在路由表中羅列出所有的路徑資訊。因此,路由表一般只給出可以到達資料接收方的下一臺路由器的路徑,這樣就可以通過網路上每一臺路由器之間形成的連續關係,為資料傳送提供最終的最佳完整路徑。

當路由過程中出現異常情況時,IP協議本身並不提供任何的錯誤監控措施,而主要由ICMP(Internet控制資訊協議)負責錯誤情況的報告和處理。ICMP協議具有多項功能,除了可以向資料傳送方傳回路由錯誤資訊之外,還可以檢測網路節點的可達性(使用ICMPEcho和Reply資訊),提高路由效率(使用ICMPRedirect資訊),以及提醒傳送方資料包超出存活時間(使用ICMPTimeExceeded資訊)等。總之,ICMP協議是整個IP網路必不可少的組成部分,尤其對那些執行路由器的網路環境來說作用更為重要。

最後,我們來簡單介紹一下各種路由協議


內部路由協議

內部路由協議又稱IGP(內部閘道器協議),主要在自主系統內部使用。目前,TCP/IP網路中較為常用的IGP主要有以下幾種:

RIP

如果要談到IP網路的路由協議,就不能不提到RIP(路由資訊協議)。RIP協議最早是由施樂公司在80年代推出,當時主要用於施樂公司自己開發的一種網路系統。如今,RIP協議已經被眾多的計算機網路所採用,成為一種基本的路由協議

RIP主要適用於小規模的網路環境,如果應當到大型網路中則存在很多限制。例如,RIP協議規定任何兩臺網路主機之間的路由跳躍次數(每通過一臺路由器定為跳躍一次)不得超過16。此外,RIP的聚斂速度很慢,這就意味著當網路發生變化時,變動資訊需要經過很長時間才能傳送到所有的路由器。最後,RIP是通過檢視兩個節點之間的路由跳數來確定最佳路由,而不考慮線路速度、使用率等其它因素,從而導致結果往往不是最佳路徑。正是基於上述原因,許多原先採用RIP協議的大型網路已經逐步轉向其它功能更加完善的路由協議

IGRP

IGRP(內部閘道器路由協議)是由Cisco公司在80年代開發的一種內部路由協議,對RIP協議中存在的一些問題進行了改進。IGRP可以通過檢視路由器之間的網路頻寬和延遲來確定最佳路徑。IGRP的聚斂速度要明顯快於RIP,因而可以有效的避免由於路由資訊的不一致而導致的路由迴路。此外,IGRP不存在RIP對路由長度的限制,更加適合那些大型、複雜的網路拓撲結構。

為了更好的滿足執行關鍵任務的大型網路的需要,Cisco對IGRP協議的功能進行了加強,將傳統距離向量路由協議易於使用的特點和鏈路狀態路由協議的高速度結合在一起,優化了路由資訊的傳送,降低了網路頻寬的佔用量。此外,除了IP路由之外,增強型IGRP協議還可以支援AppleTalk和NovellIPX路由資訊。

OSPF

OSPF即最短路徑優先協議由Internet工程任務組(IETF)推出以取代RIPOSPF是一種基於鏈路狀態,採用分級結構的域間路由協議,支援自主系統內部的分級路由。自主系統可以被劃分成多個路由區域,其中每一個路由區域都是由相互連線的一個或多個子網組成,並且都與主幹區域連線。此外,OSPF協議支援可變長度子網延碼(VLSM),提供網路地址空間轉換和基於頻寬的量的計算。


外部路由協議

外部路由協議提供了自主系統之間的路由,在TCP/IP網路中最為常用的主要有以下兩種:

EGP

第一代廣為使用的外部路由協議就是EGP(外部閘道器協議)。EGP可以提供動態連通性,但是要求所有連線的自主系統都必須採用樹形結構,這在Internet發展的初期還是可以使用的。

雖然EGP是一種動態路由協議,但是其設計原理非常簡單,沒有采用任何形式的度量標準,因而也就無法真正做出智慧化的路由決定。由於EGP協議已經無法滿足當今複雜網路的需要,因此正逐漸被另一種協議�BGP所替代。

BGP

BGP協議對EGP中的很多關鍵性問題進行了改進。與EGP一樣,BGP也是一種域間路由協議,主要用於網路核心路由器。但是與EGP不同,BGP被設計成可以在任何網路拓撲結構工作,對網路結構的支援更加靈活。