TCP/IP 協定與 Internet 網路:第五章 網際層協定            下一頁

 

翻轉工作室:粘添壽

 

第五章 網際層協定

5-1 網際層簡介

網際層(Internet Layer相當於 OSI 參考模式的網路層(如圖 1-6 所示),負責處理資料在工作站間傳送時的路徑選擇問題,其中包含建立、維護、以及結束兩部工作站之間的連線。我們用圖 5-1 來說明網際層在 Internet 網路之中所扮演的功能,其中,網路存取層提供兩網路端點之間的媒介存取,以及資料傳輸流動的管理,基本上還是在同一邏輯網路內。但在網際層所提供的通訊連線,也許會跨越連結許多不同型態的網路,也就是說,在浩瀚無涯的網路之中,如何達成兩部工作站之間的連線,這就是網際層所提供的功能,因此,網際層又稱之為『工作站對工作站的連線』(Station-to-Station Connection。如圖 5-1 中,工作站 A 和工作站 B 也許位於地球的兩端,如何來達到它們之間的連線,這是網際層所必須提供的服務,其中包含如何尋找到達的路徑,以及它們之間的資料傳送,在這連線之間也許會經由許多不同型態的實體網路,譬如 Ethernet 網路、Token-Ring 網路、廣域網路之傳輸網路等等,這些實體網路之間的連線問題,是由該地區的網路存取層負責。也就是說,一條網際層連線,也許是由許多不同型態的網路存取層所構成,亦或許是由多條網路存取層連線銜接而成。

5-1 網際層之工作站對工作站連線

5-1-1 網際層通訊協定

Internet 網路為了能連結遠端地區(全球網路)電腦之間的通訊,因此網際層採用變異性較高的電報傳輸(Datagram方式,亦是『網際協定』(Internet Protocol, IP,其中包含下列幾項重要通訊軟體:

IPInternet Protocol):網際通訊協定。提供複雜網路之間路徑選擇的功能,遠端之間的電腦可透過 IP 協定尋找出對方位址,並將其連接在一起。

ARPAddress Resolution Protocol):位址解析協定。工作站可透過 ARP 協定以對方(使用者)的網路位址(IP 位址),來查問它的網路實體位址(Ethernet 位址)。

RARPReverse Address Resolution Protocol):反向位址解析協定。使用者透過RARP 協定以本身的網路實體位址(Ethernet 位址),向網路上其它工作站(如名稱伺服器)詢問(或要求)本身的網路位址(IP 位址)。

5-1-2 網際層訊框包裝

        Internet 網路上,上層通訊協定(TCP UDP)、網際層的 ICMP IGMP 封包都包裝在 IP 封包之內,以 IP 方式傳輸,但 ARP RARP 因牽涉到實體網路位址,而以獨立封包格式傳送,因此,在網路存取層(如 Ethernet 網路)上,所接受的上層訊框格式有如圖 5-2 5-3 所示之三種格式。

早期 Ethernet 委員會是以圖 5-2 定義 Ethernet IP 封包格式(RFC 894),在此封包內並沒有 802.2 LLC 的標頭。當時的想法是 IP 封包為非連接方式,針對每一封包都是獨立的傳送,並不需要再闢一個連接導向的 LLC 層。後來 IEEE 委員會希望 802.3 協定也可能適用於連接導向的區域網路上,譬如,NetBIOSWindows 2000 AppleTalk 上,因此再設計圖 5-3 的訊框格式(RFC 1024),其中就包含了 IEEE 802.2 的封包標頭。

5-2 網際層封包與 Ethernet 訊框包裝

5-3 網際層封包與 802.2/802.3 訊框包裝

        一般網路卡都必須能接收與傳送這兩種訊框格式的功能,兩者最大的區分在於 Ethernet 封包並沒有長度(Length)欄位,而直接以型態(Type)欄位取代。區分這兩種訊框有兩個方法:

(1) 802.2/802.3 訊框的長度大小不可能會和型態欄位內容相同(0x08000x08060x0835),因為訊框長度最高為 1500 位元值,不可能會超過 0x08002048)。因此我們只要由該欄位的內容就可判斷出是屬於 802.2/802.3 Ethernet 訊框。

(2) 在訊框的前置訊號(Preamble)加入特殊碼代表。一般會在 Ethernet 訊框的前置訊號最後一個位元(Start Delimiter, SD)以 0xD5 表示,可用來區分兩種不同的訊框格式。

在圖 5-2 5-3 中,各欄位大小皆以位元組表示,其中 802.3 MAC 802.3 訊框的標頭;802.2 LLC 為邏輯鏈路控制的標頭包裝。802.2 SNAPSub-Network Access Protocol)為次網路存取標示包裝,其中 org code 都是 0,再以 Type 欄位分辨封包格式,以 0x0800 表示所承載之協定單元為 IP 封包;0x0806 ARP 封包;0x0835 RARP 封包。如果是 Ethernet 封裝的話,IP 最大承載的資料為 1500 位元組;而 802.3 訊框包裝,則 IP 最大傳輸量為 1492 位元組。基本上,ARP RARP 所傳送的訊息只有 28 位元組,但為了補足 802.3 的最小訊框長度,因此以 10802.3)或 18Ethernet)位元組的 PAD 欄位來填補。

5-4 是以 Windows 2000 上的網路監視器所擷取的 Ethernet 訊框格式(有關網路監視器的使用方法請參閱附錄 A),該訊框的產生是由 Windows 2000 執行下列命令所得之訊框。

> telnet 163.15.2.62  <Enter>

其中訊框長度(Frame Length)是由計算所得(66 Bytes),並非在訊框欄位上,此訊框之格式如圖 5-5 所示。

5-4 Telnet 命令所擷取之 Ethernet 封包格式

5-5 Ethernet 封裝擷取範例

 

 

<GOTOP>