IP Address

如果您要組建一個單一的 IP 網路﹐那麼您得分配相同的 Net ID 給所有主機﹐而各主機的 Host ID 卻必須是唯一的﹐也就是說沒有任何兩個 Host ID 會是一樣的。您的網路還要連上 internet 或其它網路的話﹐那麼您使用的 Net ID 也必須是唯一的﹐也就是必需經過註冊才能獲得否則就會造成衝突了。下面的圖示大致可以說明 Net ID & Host ID 的概念。

NetworkPrefixes.png  

IP Address 的範圍大致可以分成 A、B、C 三個Class

‧A Class 的 IP 使用最前面一組數字來做 Net ID﹐其餘三組做 Host ID
‧B Class 的 IP 使用前面兩組數字來做 Net ID﹐另兩組做 Host ID
‧C Class 的 IP 使用前面三組數字來做 Net ID﹐剩下的一組做 Host ID

Net Mask

等級 開首 網路數目 主機數目 使用範圍
A 0 127 16,777,214 1.x.x.x 到 126.x.x.x
B 10 16,384 16,382 128.x.x.x 到 191.x.x.x
C 110 2,097,152 256 192.x.x.x 到 223.x.x.x
D 1110 - - 224.- 到 239.-
E 1111 - - 240.- 到 255.-

 在我們進行 IP 位址劃分的時候﹐IP 和 Net Mask 都必須一對使用的﹐兩者缺一不可,Net Mask 的作用是來判斷彼此的 IP Address 是否在於同一網段。

‧A Class 的 Net Mask 是 255.0.0.0
‧B Class 的 Net Mask 是 255.255.0.0
‧C Class 的 Net Mask 是 255.255.255.0

例如:139.175.152.254/16 是一個 B Class IP,Net Mask 是255.255.0.0。

IP Address 換成二進位是﹕
10001011.10101111.10011000.11111110

其 Net Mask 是 255.255.0.0 ﹐換成二進位﹕
11111111.11111111.00000000.00000000

然後將 IP 和 mask 加以 AND 運算﹕
10001011.10101111.10011000.11111110
AND
11111111.11111111.00000000.00000000

得出﹕
10001011.10101111.00000000.00000000

換成十進位就是 139.175.0.0 ﹐這個就是 Net ID了。

那麼,怎麼求 Host ID 呢﹖也很簡單﹕

先將 Net Mask 做一個 NOT 運算﹐可以得出﹕
00000000.00000000.11111111.11111111

然後再和 IP 做一次 AND 運算﹐就可以得到 Host ID:
00000000.00000000.10011000.11111110 ﹐

換成十進位就成了﹕0.0.152.254。


然而,由於 Internet 的爆炸性成長﹐IP 的位址買少見少﹐而且在很多機構裡﹐也不是所有機器都有必要使用註冊的 IP 位址。於是﹐我們就在 A﹑B﹑C 這三個層級裡面﹐各劃出一些位址範圍保留給私有位址所用﹐它們分別是﹕

‧10.0.0.0 - 10.255.255.255
‧172.16.0.0 - 172.31.255.255
‧192.168.0.0 - 192.168.255.255

CIDR (Classless Inter-Domain Routing)

原來 IP 位址的分配依功能、應用及範圍的不同,有A、B、C、D、E 五種等級的區分,但也因此導致許多 IP 位址的浪費,因此 IETF (Internet Engineering Task Force) 提出 CIDR (Classless Inter-Domain Routing) 的架構,打破以往等級分類的藩籬,網路規劃完全依照網路遮罩進行定義,使得原來A、B、C等級網路固定長度區塊的劃分,成為變動長度區塊的架構 (超網路,Supernet),讓網路位址的的運用更有彈性。

參考文件:
http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#IPv4_CIDR_blocks

http://www.pcnet.idv.tw/pcnet/network/network_ip_addr.htm

 

文章標籤
創作者介紹
MIS

MISTECH 技術手抄本

MIS 發表在 痞客邦 PIXNET 留言(0) 人氣()