容量單位
單位 | 二進制大小 | 十進制大小 |
---|---|---|
位元數 bit | 1 bit | 1 |
位元組 byte | 2^3 bits | 8 |
K (Kilobyte) | 2^10 bytes | 10^3 |
M (Megabyte) | 2^10 K | 10^3 K |
G (Gigabyte) | 2^10 M | 10^3 M |
T (Terabyte) | 2^10 G | 10^3 G |
P (Petabyte) | 2^10 T | 10^3 T |
融入生活中的例子:
bit:燈泡的控制(0/1)
byte:文件的中文字大小
K:文字或是網路小圖片(手機圖片約 500-800K 之類)
M:手機最高解析度的圖片
G:隨身碟容量、映像檔
T:資料庫
速度單位
Hz:秒分之一
CPU 運算速度常使用 MHz 或 GHz 為單位
例:一顆標示為 3.0GHz 的 CPU,代表此 CPU 在一秒內能進行 30 億次工作(3*10^9)
但不同架構 CPU 不能只以時間次數比較運算效能,因為不同架構 CPU 的微指令不相同,每次時脈可進行的工作指令數也不同。
Mbps:Mbits per second,每秒多少 Mbit
例:8M/1M ADSL 的傳輸速度,換算成檔案容量 (byte) 時,就會變成每秒 1M byte / 每秒 125 Kbyte 的容量(除以 8)。
畫素
- 黑白:只有兩種顏色,即 0 / 1,占用 1 bit 記憶體。
- 16 色:使用 2^4 = 16 種顏色,占用 4 bits 記憶體。
- 256 色:使用 2^8 = 256 種顏色,占用 1 byte 記憶體。
- 全彩:使用 2^24 = 1677 萬種顏色,占用 3 byte 記憶體。
例:一張 100*100 px 的圖片,256 色需要 100 * 100 * 1 byte = 10000 byte,全彩需要 100 * 100 * 1 byte * 3 = 30000 byte
IP (Internet Protocal)
IP 位址是一個長度 32 bits 的二進位數值,因應閱讀需求,習慣將位址拆成四段 & 將二進位轉換成十進位表示
// 二進制表示
01111111 00000000 00000000 00000001
// 十進制表示
127.0.0.1
IP 位址用來辨識網路上的裝置,對路由器來說需要從 IP 判斷要怎麼送達封包,類似於郵差要將信件送到哪個地址的概念,設計 IPv4 初期,因應路由與管理需求,將 IP 位址分成 class a-e 五個等級,以及分成網路位址與主機位址。
網路位址 v.s 主機位址
地址這個東西獨一無二,套用在網路也是一樣,且 IP 路由架構是以網路為基礎,是一個區段的概念,一個 IP 分成網路位址與主機位址。
- 網路位址 (Network ID)
Network ID 是 IP 的前綴,可以看的出來屬於隸屬單位;以對外 IP 而言,IP 不可重複,當組織或企業單位申請 IP,會分配到專屬 Network ID,底下同網路的裝置,Network ID 都會相同。 - 主機位址 (Host ID)
Host ID 在 IP 的後端,用來辨識區段網路個別的裝置。
再以地址的例子解釋,網路位址像是台北101申請門牌號碼「臺北市信義區西村里8鄰信義路五段7號」,裡面的各樓層、商店再加上「幾樓、商店名」。
// 例子(Network ID / Host ID 會根據 IP 等級長度不同)
01111111 00000000 00000000 00000001
|<———————————————————————>||<————>|
Network ID Host ID
IP 等級
一般看到的會是 class a-c,d、e 主要是學術單位使用,根據網路規模排序由上到下,IP 管理機構可以看申請者的網路規模決定它的申請等級,而等級可以從前導位元數量及 Network ID 長度去看。
- class a
Network ID 長度 8 bits,在這前導位元會是第一個 bit,必須是 0。
class a 的 IP 從 00000000 - 01111111(2^7 個),能用的 Host ID 則有 2^24 個。
前導位元 0
v
0******* ******** ******** ********
|<————>||<———————————————————————>|
Network ID Host ID
- class b
Network ID 長度 16 bits,在這前導位元會是前 2 個 bits,必須是 10。
class b 的 IP 從 128.*.*.* - 191.*.*.*,能用的 Host ID 則有 2^16 個。
前導位元 10
v
10****** ******** ******** ********
|<——————————————>||<——————————————>|
Network ID Host ID
// 128.*.*.*
10000000 ******** ******** ********
// 191.*.*.*
10111111 ******** ******** ********
- class c
Network ID 長度 24 bits,在這前導位元會是前 3 個 bits,必須是 110。
class c 的 IP 從 192.*.*.* - 223.*.*.*,能用的 Host ID 則有 2^8 個。
前導位元 110
v
110***** ******** ******** ********
|<——————————————————————>||<——————>|
Network ID Host ID
// 192.*.*.*
11000000 ******** ******** ********
// 223.*.*.*
11011111 ******** ******** ********
class d
前導位元會是前 4 個 bits,必須是 1110。
class d 的 IP 從 224.*.*.* - 239.*.*.*。class e
前導位元會是前 4 個 bits,必須是 1111。
class e 的 IP 從 240.*.*.* - 255.*.*.*。
對外位址 v.s 對內位址
因應 IPv4 IP 會有用完的一天,除了 IPv6 的出現,組織申請對外 IP 後,內部管理會分配各裝置對內 IP(又稱虛擬 IP),慣例上各等級的私有 IP 有:
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
子網路遮罩
以一個組織的網路來說,如果所有部門都能互相通訊,難免有資安疑慮,所以需要利用子網路分類網段,進行網路的管理,除了容易維護,因為子網路的 IP 數量相對原本的少,也能增加傳遞速度。
組織網路透過子網路遮罩(Subnet Mask)分類各子網路(網段),而我們也可以使用子網路遮罩,去計算兩個 IP 是不是互通。
Mask 會使用前置碼,在 IP /
後面的數字標註辨識,例如 192.168.1.1/24,代表前面有 24 個 1,得知 Mask 是 255.255.255.0。
如果以內部的私有 IP 來看,各等級的範圍跟基本子網路遮罩會是:
class | IP 範圍 | 子網路遮罩 |
---|---|---|
class a | 10.0.0.0 - 10.255.255.255 | 255.0.0.0 |
class b | 172.16.0.0 - 172.31.255.255 | 255.255.0.0 |
class c | 192.168.0.0 - 192.168.255.255 | 255.255.255.0 |
網段計算
計算兩個 IP 是否在同網段,會使用到 AND 計算,以這三個 IP 舉例:
- 192.168.1.1
- 192.168.1.250
- 192.168.2.2
轉換成二進制計算
192.168.1.1
192.168.1.1 → 11000000 10101000 00000001 00000001
255.255.255.0 → 11111111 11111111 11111111 00000000
———————————————————————————————————————————————————
192.168.1.0 → 11000000 10101000 00000001 00000000
192.168.1.250
192.168.1.250 → 11000000 10101000 00000001 11111010
255.255.255.0 → 11111111 11111111 11111111 00000000
———————————————————————————————————————————————————
192.168.1.0 → 11000000 10101000 00000001 00000000
192.168.2.2
192.168.2.2 → 11000000 10101000 00000010 00000010
255.255.255.0 → 11111111 11111111 11111111 00000000
———————————————————————————————————————————————————
192.168.2.0 → 11000000 10101000 00000010 00000000
得到分別的子網路編號是:
- 192.168.1.1:192.168.1.0
- 192.168.1.250:192.168.1.0
- 192.168.2.2:192.168.2.0
可以看出 192.168.1.1 跟 192.168.1.250 是同網段,而兩個 IP 跟 192.168.2.2 不同網段。
網路分段
假設組織共用有 192.168.1.0 這個網段,但實務上不可能各部門共用,先單純將這網段平分切成四等分,每等分有 256/4 = 64 個 IP:
192.168.1.00000000
.00****** A: 0-63
.01****** B: 64-127
.10****** C: 128-191
.11****** D: 192-255
從 .00
、.01
、.10
、.11
,很快地就能識別這是來自哪個子網段的 IP,方便進行管理,而子網路遮罩的計算方式是從首字到辨識的位置為止(以上述例子是第 26 位)切開,左邊數字為 1,後面數字為 0,再換算成十進制 IP。
// 子網路遮罩計算
v 從這切開
11111111 11111111 11111111 11 000000
得到 255.255.255.192
因為會用切開的位置來看,網段切法就慣用以前置碼來溝通,以上述例子會是 /26。常見的網段切法有 /24、/16,稱為 CIDR,如果要更靈活的運用各網段,再細切就有所謂 VLSM 切法。
細分各子網段,每網段有 64 個 IP,但網段的首尾 IP 有特別用途:主網段與廣播,主要網段是辨識用,廣播則是用以與其他網段溝通,這兩個 IP 是不可拿來使用,因此每個網段能夠用的只有 62 個 IP。
子網段 A
主網段: 192.168.1.0
可用 IP: 192.168.1.1 - 192.168.1.62
廣播 IP: 192.168.1.63