National Central University
Uedu Main Site
Explore Uedu
Student Console
Register as Member/Login
Research Informed Consent Center
Survey Center
Educational Big Data Challenge
Claim or create a course
Try an AI Scenario Task
Support & Messages
Uptime Data

UeduGPTs

--

Jupyters

3

Local AI

--

Uedu Code

--

中央大學 AQI 80 24°C PM2.5 21
AI Reply Desktop Notifications

Show a desktop notification when the AI TA finishes replying

Chat Message Notifications

Notify me when classmates post messages in the forum

Sound notification

Play an alert sound whenever there is a new notification

Unit 05

IPv4 位址

位址結構、網路與主機部分、私有位址與特殊位址
Interaction 25 minute(s)

Learning Objectives

  • 說明 IPv4 位址是 32 位元,並在點分十進位與二進位之間換算
  • 分辨位址的網路部分與主機部分,說明它們各自決定什麼
  • 說明舊制 A、B、C 類的分法,以及它為什麼被 CIDR 取代
  • 認得 RFC 1918 私有位址與常見的特殊位址(0.0.0.0、127.0.0.0/8、169.254.0.0/16、255.255.255.255)
  • 從設定錯誤的位址找出兩台電腦為什麼不通

每台主機都需要一個 IP 位址

前幾課的交換器用 MAC 位址找到同一個區域網路上的設備。可是 MAC 位址是網路卡出廠時決定的, 從號碼看不出設備在哪裡;網際網路上有數十億台設備,路由器不可能記住每一張網卡。

所以網路層另外給每個介面一個 IP 位址。它像郵遞地址:前半段說「在哪一區」,後半段說「是那一區的哪一戶」。 路由器只要看前半段就知道往哪裡送,不必認識每一台主機。(計算機概論第 30 課介紹過 TCP/IP 的分層,這一課往下看位址本身。)

這一課講的是 IPv4,規格在 1981 年的 RFC 791:

特性 內容
長度 32 個位元(4 個位元組)
寫法 每 8 位元一段,換成 0~255 的十進位,用點隔開,叫點分十進位(dotted decimal),例如 192.168.1.10
總數 2^32 = 4,294,967,296 個,大約 43 億
後繼 IPv6(128 位元),第 13 課介紹

43 億看起來很多,但扣掉保留的範圍、再分給全世界的業者與組織,早就不夠用了。這也是後面「私有位址」與第 12 課 NAT 出現的原因。

點分十進位與二進位

電腦裡的位址是 32 個 0 和 1;點分十進位只是方便人讀的寫法。每一段 8 個位元,從左到右的權重是:

位元 第 1 個 第 2 個 第 3 個 第 4 個 第 5 個 第 6 個 第 7 個 第 8 個
權重 128 64 32 16 8 4 2 1

二進位轉十進位:把是 1 的位元的權重加起來。00001010 = 8 + 2 = 10。

十進位轉二進位:從 128 開始往下減,減得下去就寫 1。以 192 為例:192 ≥ 128 寫 1,剩 64;64 ≥ 64 寫 1,剩 0;其餘寫 0,得到 11000000。

所以 192.168.1.10 的二進位是:

11000000.10101000.00000001.00001010
   192      168       1       10

每一段最大是 8 個 1,也就是 128+64+…+1 = 255,所以每段的範圍是 0~255;192.168.1.256 不是合法的位址。

互動練習:點位元,看十進位怎麼變

下方把位址拆成 4 段,每段 8 個位元。藍色底線的位元是網路部分、橘色底線是主機部分(這裡先用前 24 位元當網路部分,下一節說明)。 點一個位元可以切換 0 和 1;也可以直接在位址欄輸入。

網路部分、主機部分,以及舊制的 A、B、C 類

IP 位址分成兩部分:

  • 網路部分(前面的位元):同一個網段裡的主機都一樣,路由器靠它決定往哪裡送。
  • 主機部分(後面的位元):網段裡每台主機都不同。

192.168.1.10 如果前 24 位元是網路部分,網段就是 192.168.1.x,.10 是這個網段裡的第 10 號主機; 同一個網段的電腦可以直接送(第 8 課的 ARP),不同網段就要交給路由器。網路部分有幾個位元要另外說明,下一課的子網路遮罩就是在做這件事。

早期(RFC 791)用位址開頭的幾個位元決定分界,這叫分類式(classful)位址:

類別 開頭位元 第 1 段範圍 網路部分 每個網段的主機數
A 0 0~127 前 8 位元 2^24 − 2 = 16,777,214
B 10 128~191 前 16 位元 2^16 − 2 = 65,534
C 110 192~223 前 24 位元 2^8 − 2 = 254
D 1110 224~239 (群播用)
E 1111 240~255 (保留)

主機數要減 2,是因為主機部分全為 0 的位址代表網段本身、全為 1 的是廣播位址,這兩個不能給主機(下一課詳細說明)。

分類式的問題:大小只有三種,差距太大。一個需要 2,000 台主機的組織,C 類(254 台)不夠,只好拿一個 B 類(65,534 台),六萬多個位址就這樣閒置; 另一方面,網際網路上的 C 類網段越來越多,每一個都要在路由表裡占一條。1993 年的 RFC 1519 提出 CIDR(Classless Inter-Domain Routing,無類別域間路由), 網路部分的長度可以是任意位元數,寫成 192.168.1.0/24 這樣的形式(2006 年由 RFC 4632 更新)。現在的網路都是無類別的, A、B、C 類只剩歷史意義;你還是會在舊文件或設備的預設值看到它。

小測驗:位址的結構

1.

下列哪一個是合法的 IPv4 位址?

2.

11000000.10101000.00001010.00000001 的點分十進位是?

3.

依舊制分類,150.20.1.1 是哪一類?

4.

分類式位址被 CIDR 取代,主要的原因是什麼?

第 1 次作答

私有位址與特殊位址

並不是每個位址都能在網際網路上使用。1996 年的 RFC 1918 保留了三段私有位址(private address), 任何組織都可以在內部自由使用、不必申請;網際網路上的路由器不轉送它們,所以不同組織重複使用也不會衝突:

範圍 CIDR 常見用途
10.0.0.0~10.255.255.255 10.0.0.0/8 大型組織、雲端內部網路
172.16.0.0~172.31.255.255 172.16.0.0/12 企業、校園
192.168.0.0~192.168.255.255 192.168.0.0/16 家用路由器

注意 172 這段只到 172.31,172.32.0.1 已經不是私有位址。家裡的電腦拿到 192.168.x.x,要上網時由路由器換成業者給的公有位址,這是第 12 課的 NAT。

另外還有幾段特殊位址(IANA 的特殊用途位址登錄表 RFC 6890 有完整清單):

位址 意義
0.0.0.0 「還沒有位址」或「本機的所有介面」;例如 DHCP 取得位址前,封包的來源就是 0.0.0.0
127.0.0.0/8 迴路位址(loopback),最常用 127.0.0.1;送出去的封包不離開本機,用來測試自己電腦上的程式
169.254.0.0/16 鏈路本地位址(link-local,RFC 3927);電腦拿不到 DHCP 位址時自己挑一個,只能和同一條鏈路上的設備通訊。看到電腦是 169.254.x.x,通常代表 DHCP 出了問題
255.255.255.255 有限廣播:送給同一個區域網路上的所有主機,路由器不轉送
192.0.2.0/24、198.51.100.0/24、203.0.113.0/24 文件與教材專用(RFC 5737),這門課的範例也用它們

互動練習:認得特殊位址

按「試試看」的位址,或自己輸入,看下方的「位址種類」。

互動練習:位址打錯一個數字

PC1 和 PC2 接在同一台交換器上,卻 ping 不通。點拓撲圖上的設備可以切換命令列,輸入 help 看指令。 設備指令是本課程自訂的教學用指令,各廠牌與作業系統實際的指令以手冊為準。

小測驗:私有與特殊位址

1.

下列哪一個不是 RFC 1918 的私有位址?

2.

在自己的電腦上執行網頁伺服器,用瀏覽器連 http://127.0.0.1:8000,封包會送到哪裡?

3.

設定主機位址 192.168.1.0/24 時被拒絕,原因是?

第 1 次作答

重點整理

  • IPv4 位址是 32 位元,每 8 位元寫成一段 0~255 的十進位,用點隔開;換算靠權重 128、64、32、16、8、4、2、1。
  • 位址分成網路部分(決定在哪個網段)與主機部分(決定是哪一台);同網段直接送,不同網段交給路由器。
  • 舊制 A、B、C 類用開頭位元決定網路部分的長度,大小只有三種,浪費位址也讓路由表變大,已被 CIDR 取代。
  • 私有位址:10.0.0.0/8、172.16.0.0/12、192.168.0.0/16(RFC 1918);網際網路上不轉送。
  • 特殊位址:0.0.0.0(還沒有位址)、127.0.0.0/8(迴路)、169.254.0.0/16(拿不到 DHCP 時自己挑的)、255.255.255.255(有限廣播)。

這一課的「前 24 位元是網路部分」是先講好的。下一課說明怎麼用子網路遮罩與 /24 這種寫法告訴電腦分界在哪裡,並算出網段的網路位址、廣播位址與可用主機數。

這一課完成了!
Next lesson:子網路遮罩與 CIDR
你目前沒有登入,學習進度只存在這個瀏覽器。 Login 後,進度會跟著帳號,換電腦也看得到。