ICT 筆記 01 - 容量單位、速度單位、IP


Posted by vickyh1315 on 2024-04-27

容量單位

單位 二進制大小 十進制大小
位元數 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

#ict







Related Posts

Day 63 - SQLAlchemy & Bookshelf Project

Day 63 - SQLAlchemy & Bookshelf Project

Python 程式設計入門共學營學習計劃

Python 程式設計入門共學營學習計劃

短網址系統設計

短網址系統設計


Comments