IP 位址的組成與分級 - daniel-qa/Network GitHub Wiki
IP 位址的組成與分級
現在我們知道 IP (Internet Protocol) 其實是一種網路封包,而這個封包的表頭最重要的就是那個 32 位元的來源與目標位址! 為了方便記憶,所以我們也稱這個 32 bits 的數值為 IP 網路位址就是了。因為網路是人類發明的,所以很多概念與郵務系統類似! 那這個 IP 其實就類似所謂的『門牌號碼』啦!那麼這個 IP 有哪些重要的地方需要瞭解的呢?底下我們就來談一談吧!
既然 IP 的組成是 32 bits 的數值,也就是由 32 個 0 與 1 組成的一連串數字!那麼當我們思考所有跟 IP 有關的參數時,你就應該要將該參數想成是 32 位元的資料喔! 不過,因為人類對於二進位實在是不怎麼熟悉,所以為了順應人們對於十進位的依賴性,因此,就將 32 bits 的 IP 分成四小段,每段含有 8 個 bits ,將 8 個 bits 計算成為十進位,並且每一段中間以小數點隔開,那就成了目前大家所熟悉的 IP 的書寫模樣了。如下所示:
IP 的表示式:
00000000.00000000.00000000.00000000 ==> 0.0.0.0
11111111.11111111.11111111.11111111 ==> 255.255.255.255
所以 IP 最小可以由 0.0.0.0 一直到 255.255.255.255 哩!但在這一串數字中,其實還可以分為兩個部分喔! 主要分為 Net_ID(網域號碼)與 Host_ID (主機號碼) 兩部份。我們先以 192.168.0.0 ~ 192.168.0.255 這個 Class C 的網域當作例子來說明好了:
192.168.0.0~192.168.0.255 這個 Class C 的說明:
11000000.10101000.00000000.00000000
11000000.10101000.00000000.11111111
|----------Net_ID---------|-host--|
在上面的範例當中,前面三組數字 (192.168.0) 就是網域號碼,最後面一組數字則稱為主機號碼。
至於同一個網域的定義是『在同一個物理網段內,主機的 IP 具有相同的 Net_ID ,並且具有獨特的 Host_ID』,那麼這些 IP 群就是同一個網域內的 IP 網段啦!
- Tips
什麼是物理網段呢?當所有的主機都是使用同一個網路媒體串在一起, 這個時候這些主機在實體裝置上面其實是連線在一起的,
那麼就可以稱為這些主機在同一個物理網段內了!
同時並請注意,同一個物理網段之內,可以依據不同的 IP 的設定,而設定成多個『IP 網段』喔!
上面例子當中的 192.168.0.0, 192.168.0.1, 192.168.0.2, ...., 192.168.0.255 (共 256 個) 這些 IP 就是同一個網域內的 IP 群(同一個網域也稱為同一個網段!),請注意,同一個 Net_ID 內,不能具有相同的 Host_ID ,否則就會發生 IP 衝突,可能會造成兩部主機都沒有辦法使用網路的問題!
- IP 在同一網域的意義
那麼同一個網域該怎麼設定,與將 IP 設定在同一個網域之內有什麼好處呢?
Net_ID 與 Host_ID 的限制:
在同一個網段內,Net_ID 是不變的,而 Host_ID 則是不可重複,此外,Host_ID 在二進位的表示法當中,不可同時為 0 也不可同時為 1 ,因為全為 0 表示整個網段的位址 (Network IP),而全為 1 則表示為廣播的位址 (Broadcast IP)。
例如上面的例子當中,192.168.0.0 (Host_ID 全部為 0)以及 192.168.0.255 (Host_ID 全部為 1) 不可用來作為網段內主機的 IP 設定,也就是說,這個網段內可用來設定主機的 IP 是由 192.168.0.1 到 192.168.0.254;
在區網內透過 IP 廣播傳遞資料
在同物理網段的主機如果設定相同的網域 IP 範圍 (不可重複),則這些主機都可以透過 CSMA/CD 的功能直接在區網內用廣播進行網路的連線,亦即可以直接網卡對網卡傳遞資料 (透過 MAC 訊框);
設定不同區網在同物理網段的情況
在同一個物理網段之內,如果兩部主機設定成不同的 IP 網段,則由於廣播位址的不同,導致無法透過廣播的方式來進行連線。 此時得要透過路由器 (router) 來進行溝通才能將兩個網域連結在一起。
網域的大小 當 Host_ID 所佔用的位元越大,亦即 Host_ID 數量越多時,表示同一個網域內可用以設定主機的 IP 數量越多。
所以說,貴單位公司內的電腦群,或者是你宿舍或家裡面的所有電腦,當然都設定在同一個網域內是最方便的, 因為如此一來每一部電腦都可以直接透過 MAC 來進行資料的交流,而不必經由 Router (路由器) 來進行封包的轉遞呢!(Router 這部份在第八章才會提及)。
IP 與門牌號碼的聯想
剛接觸到 IP 組成的朋友都很困擾,又分啥網域號碼與主機號碼,煩死了!其實,你不用煩惱啊!使用門牌號碼的概念來想即可。 既然 IP 是門牌,那拿我們崑山科技大學的門牌來說好了,我們的門牌是:『台南市永康區大灣路 949 號』, 假設整個大灣路是同一個巷弄,那麼我們這個門牌的網域號碼『台南市永康區大灣路』而我的主機號碼就是『 949 號』, 那麼整條大灣路上面只要是開頭為『台南市永康區大灣路』的,就是跟我們同一個網域囉!當然啦,門牌號碼不可能有第二個 949 號啊!這樣理解否?
另外,Host_ID 全為 0 與全為 1 (二進位的概念) 時,代表整條巷子的第一個與最後一個門牌,而第一個門牌我們讓他代表整條巷子, 所以又稱為 Network IP,就是巷子口那個 XXX 巷的立牌啦!至於最後一個 IP ,則代表巷子尾,亦即本條巷子的最後一個門牌, 那就是我們在巷子內廣播時的最後一個 IP ,又稱為 Broadcast IP 的囉。
在我們這個巷子內,我們可以透過大聲公用廣播的方式跟大家溝通訊息,例如前幾年很熱門的張君雅小妹妹的泡麵廣告, 在巷子內透過廣播告訴張君雅小妹妹,你阿嬤將泡麵煮好了,趕快回家吃麵去!那如果不是張君雅小妹妹呢?就將該訊息略過啊! 這樣有沒有聯想到 CSMA/CD 的概念呢?
那如果你的資料不是要給本巷子內的門牌呢?此時你就得要將資料拿給巷子內的郵局 (路由器),由郵局幫你傳送, 你只要知道巷子內的那間郵局在哪裡即可,其他的就讓郵局自己幫你把信件傳出去即可啊!這就是整個區網與門牌對應的想法! 這樣有沒有比較清晰啊?
IP 的分級
你應該要想到一個問題,那就是我的總門牌『台南市永康區大灣路 949 號』中,到哪裡是巷子而到哪裡是門牌? 如果到『台南市』是巷子,那麼我的門牌將有好多鄉鎮的組成,如果巷子號碼到『台南市永康區』時, 那麼我們的門牌就又少了點。所以說,這個**『巷子』的大小,將會影響到我們主機號碼的數量**!
為了解決這個問題,以及為了 IP 管理與發放註冊的方便性,InterNIC 將整個 IP 網段分為五種等級, 每種等級的範圍主要與 IP 那 32 bits 數值的前面幾個位元有關,基本定義如下:
以二進位說明 Network 第一個數字的定義:
Class A : 0xxxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx ==> NetI_D 的開頭是 0
|--net--|---------host------------|
Class B : 10xxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx ==> NetI_D 的開頭是 10
|------net-------|------host------|
Class C : 110xxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx ==> NetI_D 的開頭是 110
|-----------net-----------|-host--|
Class D : 1110xxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx ==> NetI_D 的開頭是 1110
Class E : 1111xxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx ==> NetI_D 的開頭是 1111
五種分級在十進位的表示:
Class A : 0.xx.xx.xx ~ 127.xx.xx.xx
Class B : 128.xx.xx.xx ~ 191.xx.xx.xx
Class C : 192.xx.xx.xx ~ 223.xx.xx.xx
Class D : 224.xx.xx.xx ~ 239.xx.xx.xx
Class E : 240.xx.xx.xx ~ 255.xx.xx.xx
根據上表的說明,我們可以知道,你只要知道 IP 的第一個十進位數字,就能夠約略瞭解到該 IP 屬於哪一個等級, 以及同網域 IP 數量有多少。這也是為啥我們上頭選了 192.168.0.0 這一 IP 網段來說明時,會將巷子定義到第三個數字之故。 不過,上表中你只要記憶三種等級,亦即是 Class A, B, C 即可,因為 Class D 是用來作為群播 (multicast) 的特殊功能之用 (最常用在大批電腦的網路還原),至於 Class E 則是保留沒有使用的網段。因此,能夠用來設定在一般系統上面的,就只有 Class A, B, C 三種等級的 IP囉!