第 4 課

你住在哪裡?IP Address(網絡位址):IPv4 與 IPv6

已經有名牌了,為什麼還需要地址?

帶路角色:阿麥、路路閱讀時間約 10 分鐘

1. 漫畫開場

也可以直接點擊任何一格
漫畫文字版(畫面及對白)
格 畫面 對白
1 小比在路路的郵局櫃位前,信封上只寫著名牌號碼 00:00:5E:00:53:01;路路一臉為難。 字幕:「小比想寄信給住在遠方的阿麥。」
小比:「路路,請幫我把信送給阿麥!」
路路:「只有名牌,沒有地址……我不知道他在哪個網絡啊!」
2 阿麥在家,胸前是名牌,手上拿著地址卡 Private IP(私人位址)192.168.1.10;家中 Router 的 Public IP(公共位址)是 203.0.113.1。 字幕:「IP Address(網絡位址)就像郵寄地址。」
阿麥:「名牌說明我是誰,地址說明我在哪裡!」
3 阿麥在咖啡店,名牌不變;舊地址卡 192.168.1.10 被劃上交叉,換成新地址卡 192.168.0.23;咖啡店 Router 的 Public IP 是 198.51.100.1。 字幕:「阿麥帶著電腦到咖啡店上網。」
阿麥:「換了網絡,名牌不變,地址就變了!」
4 路路站在分岔路口,路牌寫著 203.0.113.0/24(家)和 198.51.100.0/24(咖啡店);小比的信寫上咖啡店的 Public IP 198.51.100.1。 字幕:「在互聯網上,Router(路由器)看 Public IP 的網絡部分指路;到了咖啡店,再由那裡的 Router 轉交阿麥。」
路路:「198.51.100 這一區?這邊走,這條路最快!」

2. 重點概念

MAC Address(硬體位址)是裝置的名牌,說明「你是誰」;但要把信送到遠方,還需要一個郵寄地址,說明「你在哪裡」。

IP Address(網絡位址)就是裝置在網絡上的位址。它由你所在的網絡分配,換了網絡就會改變。Router(路由器)就是靠它,把資料一站一站送到正確的網絡。

3. 看深一點

為什麼有了名牌,還要地址?

上一課學過,MAC Address 只在同一個 LAN(區域網絡)裡有用。它好像名牌:你知道對方的名字,卻不知道他住在哪一區、哪一條街。

想像全世界的郵差手上只有幾十億個名字,卻沒有地址,信根本無從送起。IP Address 就解決了這個問題:位址本身已經說明了「在哪個網絡」,Router 只要看位址,就知道下一步往哪個方向送。

MAC Address(硬體位址) IP Address(網絡位址)
比喻 縫在身上的名牌 郵寄地址
回答的問題 你是誰? 你在哪裡?
誰決定 製造商出廠時寫好(或系統隨機產生) 你所在的網絡分配
換了網絡 通常不變 會改變
有用的範圍 同一個 LAN 之內 跨越網絡,直到互聯網另一端
長度 48 位元 IPv4 32 位元;IPv6 128 位元

兩者是合作關係:在每一段 LAN 裡,資料靠 MAC Address 送到下一站;在整段旅程中,靠 IP Address 決定方向。

IPv4:四個數字的位址

今天最常見的 IP Address 是 IPv4,它有 32 位元,寫成四個由「.」分隔的十進制數字,例如阿麥在家的位址:

192.168.1.10

  • 每個數字代表 8 位元,所以只可以是 0 至 255。
  • 四組 × 8 位元 = 32 位元。
  • 32 位元一共可以組合出 4,294,967,296 個(約 43 億個)位址。

這種寫法叫「點分十進制」。192.168.1.300 就是錯的,因為 300 大過 255。

位址的兩部分:網絡部分與主機部分

一個 IP Address 可以分成兩部分,好像郵寄地址有「地區和街道」,也有「門牌號碼」:

部分 意思 192.168.1.10/24 的例子
網絡部分 你在哪一個網絡 192.168.1
主機部分 網絡裡的哪一部裝置 10

位址後面的 /24,表示前 24 位元(即前三個數字)是網絡部分。在同一個網絡部分之下的所有位址,就是同一個 Subnet(子網絡)。Subnet 就是把一個大網絡切成較細小的部分,好像把城市劃分成一條條街。

有些裝置不寫 /24,而是寫成 Subnet Mask(子網絡遮罩):255.255.255.0。Subnet Mask 就是另一種標示「哪些位元屬於網絡部分」的寫法,255.255.255.0 和 /24 的意思完全一樣。

圖解:IPv4 位址 192.168.1.10/24 的結構,以及 IPv6 位址的寫法和縮寫

圖解:上半部是 IPv4,四組各 8 位元,/24 表示前三組是網絡部分;下半部是 IPv6,八組各 16 位元,以及如何把它縮寫成 2001:db8::1。

同一個 Subnet(子網絡),還是要找 Router(路由器)?

裝置送資料前,會先比較自己和對方的網絡部分:

  • 相同 → 對方在同一個 Subnet 裡,直接在 LAN 內送過去(用上一課的 MAC Address)。
  • 不同 → 對方在其他網絡,先交給 Router,由 Router 幫忙轉送。

裝置預設把「外出的信」交給的那部 Router,叫 Default Gateway(預設閘道)。Default Gateway 就是你的網絡通往外面世界的大門,在家中通常就是那部家用 Router。

留意:Router 同時站在兩個網絡之間,所以它有兩個 IP Address。以阿麥的家為例:

  • 對內(家中 LAN):Private IP 192.168.1.1,這就是家中裝置的 Default Gateway。
  • 對外(互聯網):Public IP 203.0.113.1,由 ISP(互聯網服務供應商)分配。

例子(阿麥在家,/24):

我的位址 對方的位址 網絡部分相同嗎? 怎樣送
192.168.1.10 192.168.1.77(家中的電視) 相同(192.168.1) 直接在 LAN 內送
192.168.1.10 198.51.100.1(咖啡店的 Public IP) 不同 交給 Default Gateway 192.168.1.1

在 /24 的 Subnet 裡,主機部分由 0 至 255,但 .0 用來代表整個網絡,.255 是這個 Subnet 的 Broadcast Address(廣播位址),所以真正可以分給裝置的有 254 個。

Public IP(公共位址)與 Private IP(私人位址)

IPv4 位址分成兩類:一類在互聯網上使用,另一類只在家中、學校或公司內部使用。

Public IP(公共位址) Private IP(私人位址)
比喻 大廈的街道地址 大廈內的室號
在哪裡使用 互聯網上 家中、學校、公司的內部網絡
由誰分配 ISP 你的 Router
是否獨一無二 在互聯網上獨一無二 不同的家可以重複使用
互聯網上可以直接找到嗎? 可以 不可以

Private IP 只能在以下三個範圍內使用。互聯網上的 Router 不會轉送以這些位址為目的地的資料,所以它們不會在互聯網上出現:

範圍 常見於
10.0.0.0 至 10.255.255.255 大型公司、學校
172.16.0.0 至 172.31.255.255 公司網絡
192.168.0.0 至 192.168.255.255 家用 Router,例如 192.168.1.x

你家的手機和電腦用的多數是 Private IP;整個家庭出外上網時,則共用 Router 上的一個 Public IP。這個「共用」的技巧叫 NAT(網絡位址轉換),第 8 課再詳細介紹。

圖解:兩個家庭各自使用相同的 Private IP,經 Router 上的 Public IP 連到互聯網

圖解:阿麥的家和鄰居的家,裡面都有 192.168.1.10 和 192.168.1.11,連 Router 對內的位址也同樣是 192.168.1.1,但不會混亂,因為 Private IP 只在各自家中有效。兩家出外上網時,分別用 Router 對外的 Public IP 203.0.113.1 和 203.0.113.2。

怎樣一眼分辨 Public IP(公共位址)和 Private IP(私人位址)?

看 IPv4 位址的開頭:

  • 以 10. 開頭 → Private IP
  • 以 172. 開頭,而第二個數字是 16 至 31 → Private IP
  • 以 192.168. 開頭 → Private IP
  • 其他一般位址 → Public IP

圖表:Private IP 的三個範圍、Public IP 的例子,以及分辨時要小心的陷阱

圖表:Private IP 只有三個範圍,其他一般位址都是 Public IP。留意 192 或 172 開頭的位址不一定是 Private,要看清楚後面的數字。

本課出現過的位址,全部可以這樣對照:

位址 是誰的位址 種類
192.168.1.10 阿麥在家的電腦 Private IP
192.168.1.1 家中 Router(對內) Private IP
203.0.113.1 家中 Router(對外) Public IP
192.168.0.23 阿麥在咖啡店的電腦 Private IP
192.168.0.1 咖啡店 Router(對內) Private IP
198.51.100.1 咖啡店 Router(對外) Public IP

所以,漫畫中阿麥換了網絡,他的 Private IP 由 192.168.1.10 變成 192.168.0.23;互聯網上的其他人看到的,則由家中的 203.0.113.1 變成咖啡店的 198.51.100.1。

為什麼要有 Private IP(私人位址)?一個「暫時」方案的故事

43 億個 IPv4 位址聽起來很多,但全世界的手機、電腦、電視加起來,早已遠遠超過這個數目。工程師其實很早就預見到這個問題:

年份 發生了什麼事
1981 IPv4 正式成為標準。當時全世界只有很少電腦,43 億個位址看來用之不盡。
1990 年代初 互聯網急速增長,工程師發現 IPv4 位址遲早會用完。
1994 有工程師提出 NAT,讓很多部裝置共用一個 Public IP。提出者當時說明,這只是一個短期方案。
1996 三個 Private IP 範圍正式定下,任何家庭和機構都可以在內部免費重複使用。
1998 長遠的解決方法 IPv6 正式發表。
2011 年 2 月 負責全球位址分配的國際機構,把最後一批 IPv4 位址分發給各地區。
2011 年 4 月 負責亞太區(包括香港)的位址分配機構也只剩最後一批,開始嚴格限量分配。

有了 Private IP 和 NAT,一個家庭、一間學校甚至一整間公司,出外上網時可能只需要一個 Public IP。這大大減慢了 IPv4 位址用完的速度,所以 IPv4 撐到 2011 年才分發完畢。

有趣的是,這個「暫時」的方法到今天已經用了三十年,仍然是家家戶戶都在用的技術。不過,它也有缺點:家中的裝置躲在 Router 後面,互聯網上的其他人不能直接找到它們(第 8 課再詳談)。所以長遠來說,大家正慢慢轉用位址多到用不完的 IPv6。

本課的範例位址 本課的 Public IP 範例使用文件專用位址(203.0.113.x、198.51.100.x、2001:db8::);Private IP 範例使用真正的私人位址範圍 192.168.x.x,因為私人位址不會在互聯網上出現,不會指向任何人的裝置。這樣,每個例子的種類都和現實一致。

IPv6:更長的位址

為了徹底解決位址不夠用的問題,工程師設計了 IPv6。它有 128 位元,寫成八組、每組四個十六進制數字,組與組之間用「:」分隔:

2001:0db8:0000:0000:0000:0000:0000:0001

128 位元可以組合出約 3.4 × 10³⁸ 個位址,即 34 後面再加 37 個零,足夠為地球上每一粒沙分配很多個位址。

這麼長的位址很難寫,所以有兩條縮寫規則:

  1. 每組前面的 0 可以省略:0db8 → db8,0000 → 0,0001 → 1。
  2. 連續幾組都是 0,可以用「::」代替,但整個位址只可以用一次。

2001:0db8:0000:0000:0000:0000:0000:0001 → 2001:db8:0:0:0:0:0:1 → 2001:db8::1

為什麼「::」只可以用一次?因為如果用兩次,就無法知道每個「::」各代表幾組 0。IPv6 的英文字母通常用細楷。

今天,很多手機網絡和家居寬頻已經同時支援 IPv4 和 IPv6,你的手機很可能兩種位址都有。

位址從哪裡來?

你的裝置通常不用自己設定 IP Address。接上 Wi-Fi(無線網絡)時,Router 會自動派一個位址給你,就好像酒店前台派房卡。負責這件事的是 DHCP(動態主機設定協定),第 8 課會詳細介紹。

4. 動手試試

任務一:找出你的 IP Address(網絡位址)

裝置 步驟
iPhone/iPad 設定 → Wi-Fi → 點一下已連接網絡旁的 ⓘ → 看「IPv4 位址」一欄
Android 設定 → 網絡和互聯網 → Wi-Fi → 點已連接的網絡 → 詳細資料(不同品牌名稱略有不同)
Windows 打開「命令提示字元」,輸入 ipconfig,找「IPv4 位址」、「子網路遮罩」、「預設閘道」
macOS 系統設定 → 網絡 → Wi-Fi → 按已連接網絡旁的「詳細資料」→ TCP/IP

把三個數字抄下來:

  1. 你的 IP Address
  2. Subnet Mask(子網絡遮罩),或者像 /24 的寫法
  3. Default Gateway(預設閘道),iPhone 上顯示為「路由器」

然後想一想:

  • 你的 IP Address 是不是在三個 Private IP 範圍之內?
  • 你的 IP Address 和 Default Gateway 的網絡部分是不是一樣?(應該一樣,因為它們在同一個 Subnet 裡。)
  • 如果你看到很長、用「:」分隔的位址(例如以 fe80 或 2 開頭),那就是你的 IPv6 位址!

任務二:互聯網看到的是哪個位址?

  1. 用搜尋器搜尋「我的 IP 位址」,很多搜尋器或網站會顯示你在互聯網上的 IP Address。
  2. 把它和任務一找到的位址比較:兩個一樣嗎?
  3. 如果不一樣,任務一的是你家中的 Private IP,任務二的是 Router 在互聯網上的 Public IP。

私隱提示: Public IP 可以大約看出你用哪間 ISP、在哪個城市上網。不要把它貼到網上公開的地方。

小互動

IPv4、IPv6,還是都不是?

把以下六張卡分成三組:

  1. 1192.168.1.10

  2. 2198.51.100.256

  3. 32001:db8::1

  4. 42001:db8::1::2

  5. 500:00:5E:00:53:01

  6. 6198.51.100.7

小互動

Public IP 還是 Private IP?

用「怎樣一眼分辨」的方法,把以下六個 IPv4 位址分成兩組:

  1. 1192.168.1.10

  2. 2203.0.113.1

  3. 310.0.0.8

  4. 4198.51.100.1

  5. 5172.20.0.5

  6. 6192.168.0.23

5. 比喻的極限

  • 位址不一定跟著地點改變。 郵寄地址只在搬屋時才會變;但 IP Address 由網絡分配,就算你坐在原位不動,Router 重新開機或過了一段時間,也可能派一個新位址給你。
  • 一部裝置可以有好幾個位址。 一個人通常只有一個住址;但一部手機可以同時有 IPv4 和 IPv6 位址,Wi-Fi 和流動數據也各有自己的位址。
  • Private IP 不是獨一無二的。 郵寄地址全世界只有一個;但 192.168.1.10 可以同時出現在千千萬萬個家庭裡,只要同一個網絡內不重複就可以。
  • IP Address 不能準確找出你的家。 郵寄地址可以找到你家門口;但透過 Public IP,一般只能大約估計你在哪個城市、用哪間 ISP。
  • 網絡部分不一定是「前三個數字」。 本課的例子都用 /24,但真實網絡可以是 /16、/20、/26 等不同長度,界線不一定剛好落在「.」上。
  • 路路並不知道整條路線。 漫畫中路路一看位址就指路;現實中每部 Router 只負責決定「下一站」,它是靠一張 Routing Table(路由表)來查的,第 6 課再詳談。

6. 小測驗

第 1 題,共 3 題以下哪一個是正確的 IPv4 位址?
第 2 題,共 3 題阿麥帶著電腦由家中去到咖啡店上網,而且沒有開啟 Random MAC Address(隨機 MAC 位址)。哪一項最可能改變?
第 3 題,共 3 題在 /24 的情況下,192.168.1.10 和 192.168.1.77 是否在同一個 Subnet(子網絡)?

7. 重點筆記

  • MAC Address 說明「你是誰」,IP Address(網絡位址)說明「你在哪裡」;換了網絡,IP Address 就會改變。
  • IPv4 有 32 位元,寫成四個 0 至 255 的數字,例如 192.168.1.10;IPv6 有 128 位元,寫成八組十六進制數字,例如 2001:db8::1。
  • IP Address 分成網絡部分和主機部分;/24(即 Subnet Mask 255.255.255.0)表示前 24 位元是網絡部分。網絡部分相同,就在同一個 Subnet(子網絡)。
  • 要送到其他網絡的資料,會先交給 Default Gateway(預設閘道),即你的 Router。
  • 家中裝置多數用 Private IP(私人位址),出外上網時經 NAT 共用 Router 的 Public IP(公共位址);這是為了延遲 IPv4 位址用完而想出的「暫時」方法,長遠方案是 IPv6。

下一站

小比已經知道收件人是誰、住在哪裡。但這些資料寫在哪裡?為什麼他的背包要一層包一層?