三、網路層

承第一章的概述,網路層的作用主要就是「尋址」(分配 IP Address)與「路由」(把資料從來源地址傳輸到目的地址)。主要採用的通訊協定就是大家熟知的 IP(Internet Protocol)。

3-1. IPv4

IPv4 Address 由 32bit 的二進位數字組成。為了方便使用,通常大家會將每 8bit 轉為 0~255 的十進位整數,總共分為四段,使 IP Address 的格式寫為:XXX.XXX.XXX.XXX。例如,Colde Garage 的伺服器的 IP 位址是140.114.28.225

[Q]以下兩個 IP 是否合法? (A) 123.456.789.0 (B)192.168.0.0
[A](A)不合法 (B)合法

IP 地址有數個特殊或保留的位址區段,以下舉幾個比較常見或重要的進行說明:

3-1-1. 環回地址:127.0.0.1

此一地址代表本地主機的意思,也可以用localhost代替。

3-1-2. 專用網路

專用網路區段的 IP 在網際網路上不會被直接配發。這些區段的 IP 會作為私有網路的 IP 位址,在獨立的區域網路內進行配發。
專用網路位址共分為三段:

  • 10.0.0.0 ~ 10.255.255.255 :Class A * 1
  • 172.16.0.0 ~ 172.31.255.255 :Class B * 16
  • 192.168.0.0 ~ 192.168.255.255 :Class C * 256

[補充資料]
上面的 Class 是指分類網路的 Class。詳細的定義可以參考維基百科的說明頁面,這裡不做太多的討論。

3-1-3. Subnet 子網路

[補充資料]
這個小節單純是補充資料,可以看看就好,不會列入此次 System Block 的 Check List。如果看完想要深入了解,可以再自己 Google 或是問問 Mentor。

網路為了管理方便,會將一整塊網路區分為許多的子網路(Subnet)。簡單來說,區分的方式會將一個 IP 位址分段。同一個子網路中,IP 位址相同的區段,可以作為這個子網路的代表的位址稱為「網路位址」(這個子網路的位址),剩下的區段稱為「主機位址」。

用來標記「網路位址」長度有兩種方式。第一種是使用子網路遮罩,第二種是使用CIDR 表示法標記。

1. 子網路遮罩法
要標示 Subnet 的第一種方式是設定宿網很常見的「子網路遮罩」。一個遮罩會是一個 32bit 的數字,例如:
255.255.255.0 = 11111111.11111111.11111111.00000000
這個遮罩會與終端裝置擁有的 IP 進行 AND 運算,得出的結果就是網路位址。例如如果擁有的 IP 是140.114.28.225

140.114. 28.225 = 10001100.01110010.00011100.11100001
255.255.255.  0 = 11111111.11111111.11111111.00000000
-----------------------------------------------------  AND
140.114. 28.  0 = 10001100.01110010.00011100.00000000

因此得出網路位址是140.114.28.0

2. CIDR
CIDR 表示法意義上與子網路遮罩類似,只是我們直接將網路位址的長度直接附加在網址後面。承上例,CIDR 表示法就會是

140.114.28.225/24

最後的 24 表示前 24 bit 是網路位址,因此可以得出網路位址就是前 24 bit 直接抄,最後剩下的補 0,即為140.114.28.0

而每個子網路可以發配的 IP 數量,等於2n−22n−2個(n 為主機位址的 bit 數)。之所以要減 2 是因為 0 要作為網路位址使用,255 則要作為廣播位址使用。
因此上面的例子中,140.114.28.225/24所在的子網路可以發配2(32−24)−2=256−2=2542(32−24)−2=256−2=254個 IP。

想要練習 IP Subnet Mask 計算的話,可以使用 IP Calculator 這個網站試試看。

3-2. IPv6

因為 IP 地址具有唯一性,因此可以算出 IPv4 最多可以配發232=4294967296232=4294967296個位址。然而根據 UN 的報告指出,2015 年底全球上網總人數已經多達 32 億。若平均每人擁有 2 個上網裝置,IP 地址將會耗盡,因此 ICANN[3]重新研發推出 IPv6。

IPv6 為一個 128 bit 的二進位數。每 16bit 為一組,共 8 組,每組使用 16 進位表示,可能值為 0000~FFFF,以冒號分隔。例如:2001:0DB8:02DE:0:0:0:0:0E13

其中,前導數字的 0 可以省略。可以用雙冒號「::」表示一組 0 或多組連續的 0,但只能出現一次。

另外,IPv4 也可以轉換為 IPv6。轉譯地址為::ffff:x.x.x.x。例如:135.75.43.52 = 0x874B2B34,IPv6 位址就會是::ffff:874B:2B34

而在 IPv6 中的環回地址則是::1,相當於 IPv4 的127.0.0.1

results matching ""

    No results matching ""