網路規劃與管理技術第 四章 TCP/IP 協定與分析  上一頁    下一頁

4-3 IP 協定 概述

內容:

  • 4-3-1 IP 協定功能

  • 4-3-2 IP 位址與分級

  • 4-3-3 IP 次網路位址

  • 4-3-4 IP 保留與私有位址

  • 4-3-5 IP 封包結構

4-3-1 IP 協定功能

IP Internet 網路之中最主要的協定,功能是在廣泛複雜的網路上,如何尋找到所欲連接之工作站,並負責雙方的連線。IP 協定所採用的非連接方式的『電報傳輸』(Datagram,主要的工作有二:

  • (1) 每一部工作站如何去定名?使成為網路唯一的識別名稱,有了這個呼叫名稱,才可以連結其它工作站,或被其它工作站所連結,宛如電話號碼一般;

  • (2) 如何尋找連結路徑?在廣泛複雜網路之中,如何尋找出可以到達目的地的最佳路徑。

這裡有兩個重點必須釐清它:

(1) IP 位址。一個合法的 IP 位址是全網際網路上通用的,雖然它只有 32 bits,但絕對不可以重複。這與 Ethernet 位址有很大不同,它有 48 bits,但僅侷限於網路區段內不可重複。

(2) IP 繞路功能IP 協定最大的功能是如何在廣泛的網際網路上,尋到所欲傳輸的目地位址所在位置,這就是 IP Routing 功能。它並非由某一裝置主導而成(集中控制型),而是由訊息所經過的路由器(Router)共同協力而成(分散式控制型)

   

圖 4-8-1 路徑選擇

由此可見,IP 協定並非完全可靠的通訊模式,它的安全性必須仰賴上一層 TCP 協定來達成。

4-3-2 IP 位址與分級

(A) IP 位址結構

IP 網路中,任何一部連線的電腦或工作站設備都稱為主機(host)。早期 TCP/IP 被設計成適合在不同類型、位置之全球各地的電腦系統之間連接,為了方便標定每部主機,TCP/IP 定義了一套通用的定址方法。當時理想的定址格式必須能提供足夠的路徑選擇(routing)資訊,而且不要佔用太多記憶體空間,因此,將 IP 位址(IP Address)的長度設定為 32 位元。為方便表達,我們將此 32 位元分割成四段,連續 8 位元為一組,每組並以十進位值(0 ~ 255)表示,每組之間以點(dot)分隔。整個 IP 位主表示法就如下所示:

dec3.dec2.dec1.dec0(如 163.15.2.1

雖然 IP 位址長為 32 位元,但其中包含兩種號碼:網路號碼(Network number)及主機號碼(Host number,因此 IP 位址也可以表示成:(如圖 4-8 所示)

network number, host number

4-8 IP 位址結構

        在實務連接上,並非每一部主機上都只有一個 IP 位址,一般 IP 位址都依照網路介面卡(Ethernet 網路卡)設定。如主機有特殊需要安裝多個網路介面卡(如當路由器使用),每只網路介面卡上都必須設定一個 IP 位址,因此,一部主機上就擁有多個 IP 位址,同時也容許類似虛擬主機的設定,表示一只網路介面卡上可設定多個 IP 位址。

(B) IP 位址分級

32 位元長度的位址之中,應該多少位址長度來表示網路位址或主機位址。TCP/IP 網路依照所能容納的主機和網路的數量多寡分成 ABC D E 五種類級(class),如圖 4-9 所示,其中 Class D 目前為實驗性多點廣播(Multicast)位址,Class E 則保留未來發展之用。分級技巧是配置不同數目的網路位址,網路位址的位元數愈多,所能指定的網路數量就愈多,但相對應的主機位址就愈少。Class C 所能容納的網路位址最多,所以在 Internet 網路上定址方式皆採用 Class C 模式。Class A 所能容納的主機位址最多,但相對應的所能容納的網路位址最少,一般使用在區域網路的定址模式。各類級的特性如下:

4-9 各類級的 IP 位址結構

(1) Class A以最高位元(第 31 位元)為0 表示 Class A 模式。前一位元組(8 位元)表示網路位址;而後 24 位元表示主機位址。網路位址由 1.0.0.0 ~ 126.0.0.0,所能表示的主機位址是 1.0.0.0 ~ 126.255.255.255 的範圍之內。Netmask = 255.0.0.0(下小節說明)。

(2) Class B:以二個最高位元為 10 表示 Class B 模式。前 16 位元表示網路位址;而後 16 位元表示主機位址。網路位址由 128.0.0.0 ~ 191.255.0.0,所能表示的主機位址為 128.0.0.0 ~ 191.255.255.255 的範圍之內。Netmask = 255.255.0.0

(3) Class C:以前三個最高位元為 110 表示 Class C 模式。前 24 位元是網路位址;而後 8 位元為主機位址。網路位址由 192.0.0.0 ~ 223.255.255.0,所能表示的主機位址為 192.0.0.0 ~ 223.255.255.255 的範圍之內。Netmask = 255.255.255.0

(4) Class D以前四個位元為 1110 表示 Class D 模式。其主要應用於多點廣播(Multicast),一些特殊應用軟體皆用此模式,來對某些定點(工作站)廣播,如隨選視訊(VOD)就用此定址模式,對若干個定點工作站廣播視訊。

(5) Class E以前四個最高位元為 1111 表示 Class E 模式。目前保留尚未使用。

(C) 網路位址與主機位址

經過 IP 分級後,IP 位址可分為兩大部份:網路位址和主機位址。如以 Class B 中的 163.15.3.42 為例,此 IP 位址可區分為下列兩種位址:

網路位址163.15.0.0

主機位址0.0.3.42

如果僅由 IP 位址來觀察,如此分類好像不是很重要,但是在路徑選擇時就非常重要,因為一般路徑選擇只觀察網路位址,而不用理會主機位址是多少。

(D) 網路遮罩(Network Mask, Netmask

IP 位址是由網路號碼和主機號碼組成的 32 位元,為方便起見,一般都用 [network#, host#] 表示。網路號碼決定主機所屬的網路位址,因此主機在傳遞封包之前,會先過濾出網路號碼,再決定封包應該往哪一個網路傳送。為使能由 IP 位址中過濾出網路號碼,我們使用『網路遮罩』(Netmask來過濾。網路遮罩亦為 32 位元,在位元中 "1" 表示網路位址;而 "0" 表示主機位址,其遮罩方式如圖 4-10 所示。如IP 分級方式,各等級之網路遮罩為:

Class A網路遮罩為 255.0.0.0

Class B網路遮罩為 255.255.0.0

Class C網路遮罩為 255.255.255.0

在一般網路遮罩,皆是 IP 位址的前面若干位元設定為 "1",因此,我們以網路號碼的長度(也是網路遮罩的長度)來代表網路位址的範圍,以『主機號碼/網路號碼長度』來表示一個網路位址,如:

IP = 163.15.2.3/16 表示網路遮罩長度為 16 位元,則:

網路位址 = 163.15.0.0

主機位址 = 0.0.2.3

4-10 IP Netmask

4-3-3 次網路位址

如果硬是將網路位址區分為三個類級(Class A ~ C),恐怕很難滿足各種環境需求。例如,目前 TANet 使用 Class B 的定址模式,分配到每一個學校 2 ~3 個網路號碼。每一個學校裡的網路,是由多個系所的區域網路所構成,在技術上,每一個區域網路都要有一個網路號碼,因此網路號碼一定不符所需,這也是 IP 分級所衍生的問題。解決的方法就是再劃分次網路(Subnet,產生次網路的基本原理,是將原有主機號碼的幾個位元拿來當網路號碼,並沒有改變原來 32 位元的 IP 位址格式。

如欲劃分次網路,就必須有次網路的編號,原來 IP 位址所表達的是 [network#, host#] 方式,就必須更換為 [network#, subnet#, host#] 形式。而增加次網路號碼,就必須犧牲原來主機號碼的數量,次網路號碼增加愈多,主機號號碼就減少愈多。對整個位址格式並未改變,因為原來網路號碼並未改變,對外部網路而言,次網路位址也被視為主機位址,因此連結到外部網路並不影響。我們以一個例子說明,假使希望在 163.15.0.0 的網路上增加 8 個次網路,基本上,163.15.0.0/16 網路是屬於 Class B 格式,它原來的 IP Netmask 255.255.0.0。我們為了增加 8 個次網路,必須將 3 個位元的主機號碼拿來當次網路號碼,因此 Netmask 255.255.224.0,如圖 4-11 所示。

4-11 次網路號碼

分割後所產生的網路位址為:(Network number = 163.15.0.0Netmask = 255.255.224.0

163.15.0.0/19163.15.32.0/19163.15.64.0/19163.15.96.0/19163.15.128.0/19163.15.160.0/19163.15.192.0/19162.15.224.0/19

4-3-4 IP 保留與私有位址

(A) 保留位址

除了上述 IP 分級外,還有一些網路位址保留為特殊使用,其它應用必需避免使用下列位址:

預定閘門(Default Router):以網路0 保留特殊使用,並以0.0.0.0作為預定閘門位址。

回繞位址(Loopback Address):網路 127 也保留於特殊用途,並以127.0.0.0作為回繞位址,127.0.0.1表示主機位址,主要作為測試網路使用。

廣播位址(Broadcast Address):IP 位址全部為1 時,表示是對所有主機的廣播位址255.255.255.255。一般應用上只對本網路廣播,因此,將所有主機位址設定為 1 時,表示對本網路所有主機管播,譬如,163.15.0.0 網路的廣播位址為163.15.255.255

剛開始設計 TCP/IP 網路時,電腦還未普及,網路也非常少,TCP/IP 協定開始應用時也只連結大型主機,因此 32 位元容量的 IP 位址對當時來講已足足有餘。但沒有想到 Internet 網路大風行,理論上,任何一部電腦連結上 Internet 網路都需要一個獨一無二的 IP 位址,因此 IP 位址將會在短期內被耗盡。雖然目前已提出 IPv6 的解決方案,但要網路上使用中的路由器和主機都更新為 IPv6 的通訊協定,也並非易事。目前網路上大多透過『網路位址轉換器』(Network Address Translator, NAT來增加私人網路位址,以解決 IP 位址不足的問題。

 (B) IP 私有位址

IP 位址又分為『公共 IP(Public IP)與『私有 IP(Private IP) 兩種,在網路上通行的 IP 位址必須是屬於 Public IP 才行,Private IP 大多應用於私有網路內使用,不能通行於網際網路。在 ABC 這三個網路層級裡,個劃出一些位址範圍保留給私有位址使用,如下表:

網路層級

私有位址範圍

Class A

10.0.0.0 ~ 10.255.255.255

Class B

172.16.0.0 ~ 172.31.255.255

Class C

192.168.0.0 ~ 192.168.255.255

4-3-5 IP 封包結構

5-10 IP 封包之資料結構,其中包含 IP 標頭和 IP 承載(IP Payload)(圖中 Data)兩大部份。IP 標頭的長度可以由 20 Bytes 60 Bytes 不等(由 IHL 欄位登錄),對整個 IP 封包長度可以是 46 ~ 1500 Bytes之間(如圖 4-12 所示)。IP 標頭的各欄位功能如下:

4-12 IP 封包結構

版本(Version):4 位元。表示 IP 封包的 IP 版本。

網際標頭長度(Internet Header Length, IHL):4 位元。表示本 IP 封包標頭的長度(位元組表示)。範圍為 5 ~ 15,預設值為 5

服務型態(Type of Service, TOS):8 位元。其內容為 "PPPDTRUU"PPP 表示本 IP 封包的優先權(Precedence);D = 0 表示一般延遲(Delay),D = 1 表示低延遲;T = 0 為一般傳送量(Throughput),T = 1 為高傳送量;R = 0 為一般可靠度,R = 1 為高可靠度(Reliability);UU 保留未用。

總長度(Total Length):16 位元。是指該封包的總長度,包括封包標頭及資料的長度,範圍由 576 ~ 65535 位元組。

辨識碼(Identification):8 位元。表示資料分割(fragmentation)的識別編號。同一筆資料如被分割成若干個區段,每段給予相同的辨識碼,接收端再依辨識碼組合回原來資料封包。

旗標(Flags):3 位元。其格式為 "0DM"D = 0 表示可以分段,D = 1 為不可分段(Dont fragment);M = 0 表示最後分段,M = 1 為不是最後分段(More fragment)。

分段偏移(Fragment Offset):13 位元。表示目前的分段在原始的資料中所在的位址。原始分段允許有 8192 個分段,以每 8 個位元為一個基本偏移量,所以最大容許 65536 位元資料,此值和總長度一樣。因此範圍為 0 ~ 8191,預設值為 0

存活時間(Time to Live, TTL):8 位元。表示該封包在網路上的存活時間,封包每經過一個路由器(或網路閘門),該值就被減一。如路由器發現某封包的 TTL = 0,便將該資料片丟棄而不轉送。範圍 0 ~ 255

協定號碼(Protocol Number):8 位元。表示該 IP 封包所承載通訊協定的協定號碼。在 TCP/IP 協定中,任何通訊協定(如IPICMPTCPUDP等等)的資料在傳送中都被包裝成 IP 封包,而以 IP 通訊協定發送。所以,在IP 封包裡必須有協定號碼欄位,來表示目前所承載之資料是屬於哪一個通訊協定(IPICMPTCP 等等)。一些較常用著名(well-known)的協定號碼如表 4-1 所示。

標頭檢查集(Header Checksum):16 位元。做標頭錯誤檢查用。

來源位址(Source Address):32 位元。發送此 IP 封包的來源位址。

目的位址(Destination Address):32 位元。目的主機之位址。

選項欄位(Options):可變長度。提供多種選擇性服務。目前已定義使用有下列:

(1) 安全處理機制:有關資料加密與認證。

(2) 路由紀錄: IP 封包經過路由器時,讓該路由器登錄其 IP 位址。當封包到達目的地時,可追蹤它所經過的路徑。

(3) 時間戳記: IP 封包經過路由器時,讓路由器登錄其 IP 位址和時間。

(4) 寬鬆來源路由(Loose Source Routing):記錄該封包所必須經由之路徑,為一 IP 位址的序列表。

(5) 嚴格來源路由(Strict Source Routing):如同寬鬆來源路由,但嚴格規定祇能依照 IP 序列表傳送該封包。

填補欄位(Padding):IP 資料片的標頭一定是 32 位元的整數倍,當 Options 欄位不足 32 位元整數倍時由 Padding 欄位補足。

4-1 著名協定號碼(節錄)

協定名稱

協定號碼

協定全名(協定包裝在 IP 資料片內)

ICMP

1

Internet Control Message Protocol

IGMP

2

Internet Group Management Protocol

GGP

3

Gateway-to –Gateway Protocol

IP

4

IP in IP encapsulation

TCP

6

Transmission Control Protocol

EGP

8

Exterior Gateway Protocol

翻轉工作室:粘添壽

 

網路規劃與管理技術:

 

 

翻轉電子書系列: