計算機網絡:網間互聯協議

因特網協議體系TCP/IP是由若干協議組成的互聯網絡協議標準,爲異構計算機網絡的互連和數據通信提供了統一的準則。IP協議是TCP/IP的核心。如圖3-1所示,網際層的常用協議主要包括IP協議、地址解析協議ARP、逆地址解析協議RARP、因特網控制報文協議ICMP和因特網組管理協議IGMP等。

圖3-1構成網際層的協議

ICMP和IGMP協議在網際層的最上面,ICMP用於通告IP層分組傳輸狀態,IGMP用於實現網絡中的組管理與多播應用。ARP和RARP協議位於網際層的最下面,ARP用於把節點的IP地址解析爲物理地址,RARP用於把節點的物理地址解析爲IP地址。

一、IP協議

IP協議是網際層的核心協議,它定義了網際層所使用的分組格式。

IP協議提供“盡力交付”的網絡服務,不保證傳輸的可靠性,由上層的協議或應用程序提供傳輸可靠性的保證。不同網絡的技術差別主要體現在數據鏈路層和物理層,如不同的局域網技術和廣域網技術。而IP協議能夠將不同的網絡技術在TCP/IP的網際層統一,以一致的IP分組支持異構網絡互聯。IP協議實際上是一套由軟件程序組成的協議軟件,把各種不同“幀”統一轉換成“IP數據報”格式,使各種計算機都能在因特網上實現互聯互通。

1.IP數據報

IP數據報又稱IP分組,其具體格式如圖3-2所示。一個IP分組由首部和數據兩部分組成,首部的固定部分爲20個字節,首部的可變部分最長爲40個字節,若長度不夠4個字節的整數倍,則需要利用最後一個字段進行填充,以方便定界與識別。

IP分組的固定首部包含12個字段,具體包括:

1)版本:佔4bit,指的是IP協議的版本。目前常用的IP數據報的版本是IPv4。

圖3-2 IP協議數據報的格式

2)首部長度:佔4bit,允許的最大值爲15。在IP數據報中,4個字節爲一個單元,可得出首部長度最大值爲60(15×4)字節。如果IP分組的首部長度不是4字節的整數倍時,需要在填充字段加以填充,使得整個首部長度爲4個字節的整數倍。

3)服務類型:佔8bit,保證提供的QoS級別。

4)總長:佔16bit,單位爲1個字節。總長指首部和數據部分的總長度,因此,數據報的最大長度爲65535(216-1)字節,即64KB。

5)標識:佔16bit,它是一個計數器,用來產生數據報的標識。由於在網絡中有時需要傳送大容量數據,而鏈路都有最大的傳送單元長度限制,所以要進行數據報的拆分。當同一個數據報進行拆分後,報頭標識字段的值均相同。當到達目的地時,具有相同標識字段的各個數據片就能夠正確地重裝爲原來的數據包。

6)標誌:佔3bit。它具有如下含義:當標識字段的最低位爲1時,表示後面還有分片,當最低位爲0時,表示這已經是若干數據片的最後一個;當標識字段的中間一位爲1時,表示不能分片,爲0時,則表示可以分片。

7)段位移:段偏移的單位爲8個字節,表示的是當數據報在分片後,某個分片在原數據報的相對位置。

8)生存時間:佔8bit,數據報在網絡傳輸時,爲避免數據報長期滯留在網絡中,爲其設置了生存時間(TTL,Time ToLive),它的最大值是255。在網絡中,當數據包每經過一臺路由器時,生存時間TTL值就減1,當TTL減至爲0時,若該數據包仍沒有到達目的地,則丟棄該數據包。

9)類型:佔8bit,指明在IP數據報中封裝的是何種協議,如ICMP、IGMP、TCP和UDP等,以便目的主機能夠將數據包交付給上層應用程序。

10)頭部校驗和:這個字段只校驗報頭在傳輸過程中是否發生差錯。數據包在整個網絡傳輸過程中,每經過一個節點都會對數據報進行拆封,報頭的TTL字段的值會變化,引起報頭信息變化,如果數據部分也進行校驗,則計算的工作量就很大。

11)源IP地址:佔4個字節,IP數據報來源的IP地址。

12)目的IP地址:佔4個字節,IP數據報將要發往的IP地址。

2.IP地址

IPv4協議約定,網絡中的每臺主機都需要通過一個Internet接口,該接口用32位全局唯一的IP地址來標識。TCP/IP的網際層通過IP數據報中的源IP地址和目的IP地址來標識網絡中的主機,又稱邏輯地址。

與邏輯地址對應的,數據鏈路層的MAC地址稱爲硬件地址,又可稱爲物理地址,它被固化在網卡的硬件結構中,只要主機和設備的網卡不變,則其MAC地址就不變。物理地址的特點是:無論具有該地址的網絡設備從一個網絡移動到另一個網絡,或從地球的一端移動到另一端,該網絡設備的物理地址均保持不變。而邏輯地址會隨着設備所處的網絡位置不同而發生變化,即IP地址會隨着設備從一個網絡移動到另一個網絡而相應地發生改變。

邏輯地址和物理地址的關係就如用戶的手機號碼與手機間的關係一樣,用戶購買了一臺手機,這臺手機的物理標識從出廠就一直不變,而手機號碼及SIM卡則可更換。對於網絡設備,其IP地址類似於手機號碼,均爲統一的格式,而屏蔽網絡設備的類型。

●爲方便快速地尋址找到目的地,一個IP地址劃分爲兩部分:

1)網絡號(net-id):標識設備位於網絡中的哪個網段。

2)主機號(host-id):標識該網段的某個設備。

網絡號和主機號組成了網絡IP地址,尋址時,首先應在整個網絡中尋找目標網絡號,再在目標網絡中尋找目標主機號。爲了更簡單迅速地尋址,將網絡號劃分爲[A類地址]、[B類地址]、[C類地址]、[D類地址]和[E類地址],其中每一類地址都具有自己的網絡號和主機號。

IPv4地址採用32位二進制數表示,爲便於記憶,將其分爲4段,每段爲一個字節且字節之間用小數點隔開,再將這4段二進制數分別轉化爲十進制表示。比如一個IP地址,用二進制表示爲:11111111111111110000000000000000,分解爲4個8位位組後爲:11111111.11111111.00000000.00000000,轉化爲十進制的結果爲255.255.0.0,這種地址格式通常稱爲點分十進制。

●A類、B類、C類地址所佔地址空間:

1)[A類地址空間];

2)[B類地址空間];

3)[C類地址空間]。

A類地址空間:以IP地址二進制表示的數爲基準,第一位爲0的地址規定爲A類IP地址,A類IP地址空間共有231個地址,而整個IP地址空間爲232,所以A類IP地址的數量佔整個IP地址總數的1/2。其中,A類IP地址中存在兩個特殊的IP地址,0.0.0.0表示網絡中的所有主機;127.0.0.1表示環回地址,該地址主要用來測試主機的協議棧TCP/IP是否正確安裝,所以A類IP地址最大的網絡數爲27-2=126個。

B類地址空間:B類IP地址的網絡號佔2個字節,第1個字節的前2位確定爲1和0,則B類IP地址的網絡數爲214個。B類IP地址的主機號同樣佔2個字節,共16位,由於主機號不允許全爲0或者全爲1,所以每個網絡上最多的主機數爲216-2=65534臺,整個B類IP地址約佔整個地址空間的1/4。

C類地址空間:C類IP地址的網絡號佔3個字節,第1字節的前3位爲1、1和0,C類IP地址的網絡數爲221個。C類IP地址的主機號佔1個字節,每個具有C類IP地址的網絡中包含的最多主機數爲28-2=254,C類IP地址佔整個地址空間的1/8。

●IP地址的使用範圍如圖3-3所示。

圖3-3 IP地址的使用範圍

二、ARP協議

地址解析協議ARP是網際層協議之一,它的作用是把IP地址映射到MAC地址。

ARP協議的作用是將接收到的IP地址解析爲數據鏈路層的MAC地址。

數據在網際層進行傳輸採用的是IP尋址,而在MAC層則使用MAC尋址。對於利用以太網通信的兩臺設備,數據鏈路層則使用MAC地址區分網段上的機器,在彼此通信時,需要知道彼此的MAC地址。ARP地址解析分爲同一網段和不同網段兩類情形,不同網段的情形還需要考慮路由器的ARP請求與應答。

如圖3-4所示,假設在同一網段上有3臺PC機,它們的IP地址均屬於192.168.1.0網段。現有PC2需要向PC3發送數據,PC2僅知道PC3的IP地址,但是數據是通過MAC地址進行傳送的,PC2爲了獲知PC3的MAC地址,則需要採用ARP協議將IP地址映射到MAC地址。

圖3-4同一網段的ARP實例

首先,PC2生成一個ARP請求,其中的源IP地址是192.168.1.2,目的地址是192.168.1.3。數據報被封裝在一個以太網幀中,幀的源MAC地址是0000.AAAA.2222,幀的目的地址是廣播地址FF:FF:FF:FF:FF:FF。同一網段的PC1和PC3都會收到此數據幀,PC1和PC3識別出該數據報是一個ARP的請求幀,對其進行解封裝,並將帶有ARP請求的IP數據報向上傳送到網際層。PC1在ARP請求幀中看到的目的地址並不是自己的IP地址,將採取忽略並丟棄此幀策略,而PC3在發現ARP請求幀是自己的IP地址192.168.1.3時,向PC2發送ARP的應答幀,並附上自己的MAC地址。

通過上述過程,PC1和PC3都將PC2的MAC地址加入到本機的ARP緩存表中,若需要向PC2發送數據,則可以直接在ARP緩存表中找到PC2的MAC地址併發送數據。但是,ARP緩存表存在一個更新週期,經過一定時間就會進行刷新,這個時間週期取決於所使用的操作系統。

三、RARP協議

逆地址解析協議RARP是網際層的協議之一,RARP與ARP工作方式互逆。發送方首先向RARP服務器發送RARP請求幀,以解析從物理地址得到對應的IP地址。

如圖3-5所示,PC是一個無盤工作站,配置了MAC地址,期望獲得IP地址。

首先,PC發送一個本地RARP廣播,幀的源MAC地址和目的MAC地址均被設置爲0000.CCCC.1111,並在廣播中請求RARP的服務器分配一個IP地址。RARP服務器收到此請求後,檢查RARP列表是否存在該MAC地址到IP地址192.168.1.2的映射。若存在該映射,則RARP服務器向PC發送一個響應幀,並將地址192.168.1.2提供給對方使用;若不存在,則RARP服務器對此不做任何的響應。在PC收到從RARP服務器的響應信息後,則利用得到的IP地址進行通信;如果一直沒有得到RARP服務器的響應信息,則表示初始化失敗。

圖3-5 RARP實例

四、ICMP協議

Internet控制報文協議ICMP是網際層協議之一,該協議主要用於控制IP數據報的傳輸,在網絡設備之間傳輸錯誤提醒和控制信息,是檢測網絡連通性和工作狀態的重要協議之一。

ICMP協議報文類型主要分爲差錯報告報文和詢問報文。

差錯報告報文分爲目的站不可達、源站抑制、時間超時、參數問題和改變路由;

詢問報文分爲回送請求或應答、時間戳請求或應答、地址掩碼請求或回答和路由詢問或通告。

Ping是ICMP最常用的應用。

Ping是通過發送回送、回送請求和目的不可達信息來測試目的主機是否可達的。如圖3-6所示,若測試PC1與PC2之間的連通性,則PC1生成一個ICMP回送分組。若此回送分組可以到達PC2,則PC2會生成一個回送應答分組,以通知PC1其與PC2之間的鏈路是相通的;若中間的路由器不知道如何轉發PC1發送的回送分組,則路由器將以一個目的不可達信息作爲迴應;若路由器知道如何轉發PC1發送的回送分組,但是目的主機沒有收到回送分組,則PC1將收到一條請求超時信息。

圖3-6 PC1和PC2連通性測試

五、IGMP協議

Internet組管理協議IGMP是網際層協議之一,也是一個組播協議,它運行於主機和與主機直接相連的組播路由器之間。

GMP協議包含成員關係查詢和成員關係應答兩種數據報文。

成員關係查詢報文是由網段中的組播路由器週期性地向該共享網段發送,主機在收到查詢消息後,生成IGMP成員關係應答報文,然後組播路由器依據收到的響應來刷新組成員的存在信息。

如圖3-7所示,PC1和PC2屬於組播地址爲224.10.1.1的多播組,PC3不屬於224.10.1.1多播組。組播路由器會週期性地發送成員關係查詢報文,此報文的目的地址是224.0.0.1。網絡上的PC1、PC2和PC3都會收到這個查詢報文,同屬一組的PC1和PC2會發送組員關係應答報文,但是它們的發送時間是錯開的。

若PC1先發送應答報文,報文的目的地址是224.10.1.1,組播標識爲224.10.1.1。組播路由器在收到此應答報文後,知道網絡上存在224.10.1.1這個組,則會繼續保存在組播表中。PC2同樣也會收到PC1發送的應答報文,此時PC2會延遲發送組播應答報文,因爲組播路由器已經知道224.10.1.1組的存在。假如PC3想加入組播224.10.1.1組,則其會主動地發送組播關係請求報文,其目的地址是224.10.1.1,組播標識是0.0.0.0。

圖3-7多播組的應用實例

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