如何計算IP地址及CIDR

一、 IP地址概念

IP地址是一個32位的二進制數,它由網絡ID和主機ID兩部份組成,用來在網絡中唯一的標識的一臺計算機。網絡ID用來標識計算機所處的網段;主 機ID用來標識計算機在網段中的位置。IP地址通常用4組3位十進制數表示,中間用“.”分隔。比如,192.168.0.1。

補充(IPv6):前面所講的32位IP地址稱之爲IPv4,隨着信息技術的發展,IPv4可用IP地址數目已經不能滿足人們日常的需要,據權威機 構預測到2010年要充分應用信息技術,每個人至少需要10個IP地址,比如:計算機、筆記本、手機和智能化冰箱等。爲了解決該問題開發了IPv6規 範,IPv6用128位表示IP地址,其表示爲8組4位16進制數,中間爲“:”分隔。比 如,AB32:33ea:89dc:cc47:abcd:ef12:abcd:ef12。 

二、IP地址分類

爲了方便IP尋址將IP地址劃分爲A、B、C、D和E五類,每類IP地址對各個IP地址中用來表示網絡ID和主機ID的位數作了明確的規定。當主機ID的位數確定之後,一個網絡中是多能夠包含的計算機數目也就確定,用戶可根據企業需要靈活選擇一類IP地址構建網絡結構。

A類

A類地址用IP地址前8位表示網絡ID,用IP地址後24位表示主機ID。A類地址用來表示網絡ID的第一位必須以0開始,其他7位可以是任意值, 當其他7位全爲0是網絡ID最小,即爲0;當其他7位全爲1時網絡ID最大,即爲127。網絡ID不能爲0,它有特殊的用途,用來表示所有網段,所以網絡 ID最小爲1;網絡ID也不能爲127;127用來作爲網絡迴路測試用。所以A類網絡網絡ID的有效範圍是1-126共126個網絡,每個網絡可以包含 224-2臺主機。

B類

B類地址用IP地址前16位表示網絡ID,用IP地址後16位表示主機ID。B類地址用來表示網絡ID的前兩位必須以10開始,其他14位可以是任 意值,當其他14位全爲0是網絡ID最小,即爲128;當其他14位全爲1時網絡ID最大,第一個字節數最大,即爲191。B類IP地址第一個字節的有效 範圍爲128-191,共16384個B類網絡;每個B類網絡可以包含216-2臺主機(即65534臺主機)。

C類

C類地址用IP地址前24位表示網絡ID,用IP地址後8位表示主機ID。C類地址用來表示網絡ID的前三位必須以110開始,其他22位可以是任 意值,當其他22位全爲0是網絡ID最小,IP地址的第一個字節爲192;當其他22位全爲1時網絡ID最大,第一個字節數最大,即爲223。C類IP地 址第一個字節的有效範圍爲192-223,共2097152個C類網絡;每個C類網絡可以包含28-2臺主機(即254臺主機)。

D類

D類地址用來多播使用,沒有網絡ID和主機ID之分,D類IP地址的第一個字節前四位必須以1110開始,其他28位可以是任何值,則D類IP地址的有效範圍爲224.0.0.0到239.255.255.255。

E類

E類地址保留實驗用,沒有網絡ID和主機ID之分,E類IP地址的第一字節前四位必須以1111開始,其它28位可以是任何值,則E類IP地址的有效範圍爲240.0.0.0至255.255.255.254。其中255.255.255.2555表示廣播地址。

在實際應用中,只有A、B和C三類IP地址能夠直接分配給主機,D類和E類不能直接分配給計算機。 

三、 網絡ID、主機ID和子網掩碼

網絡ID用來表示計算機屬於哪一個網絡,網絡ID相同的計算機不需要通過路由器連接就能夠直接通信,我們把網絡ID相同的計算機組成一個網絡稱之爲本地網絡(網段);網絡ID不相同的計算機之間通信必須通過路由器連接,我們把網絡ID不相同的計算機稱之爲遠程計算機。

當爲一臺計算機分配IP地址後,該計算機的IP地址哪部份表示網絡ID,哪部份表示主機ID,並不由IP地址所屬的類來確定,而是由子網掩碼確定。子網確定一個IP地址屬於哪一個子網。

子網掩碼的格式是以連續的255後面跟連續的0表示,其中連續的255這部份表示網絡ID;連續0部份表示主機ID。比如,子網掩碼255.255.0.0和255.255.255.0。

根據子網掩碼的格式可以發現,子網掩碼有0.0.0.0、255.0.0.0、255.255.0.0、255.255.255.0和 255.255.255.255共五種。採用這種格式的子網掩碼每個網絡中主機的數目相差至少爲256倍,不利於靈活根據企業需要分配IP地址。比如,一 個企業有2000臺計算機,用戶要麼爲其分配子網掩爲255.255.0.0,那麼該網絡可包含65534臺計算機,將造成63534個IP地址的浪費; 要麼用戶爲其分配8個255.255.255.0網絡,那麼必須用路由器連接這個8個網絡,造成網絡管理和維護的負擔。

網絡ID是IP地址與子網掩碼進行與運算獲得,即將IP地址中表示主機ID的部份全部變爲0,表示網絡ID的部份保持不變,則網絡ID的格式與IP地址相同都是32位的二進制數;主機ID就是表示主機ID的部份。

例1:IP地址:192.168.23.35 子網掩碼:255.255.0.0

        網絡ID:192.168.0.0 主機ID:23.35

例2:IP地址:192.168.23.35 子網掩碼:255.255.255.0
        網絡ID:192.168.23.0 主機ID:35 

四、子網和CIDR

將常規的子網掩碼轉換爲二進制,將發現子網掩格式爲連續的二進制1跟連續0,其中子網掩碼中爲1的部份表示網絡ID,子網掩中爲0的表示主機ID。比如255.255.0.0轉換爲二進制爲11111111 11111111 00000000 00000000。

在前面所舉的例子中爲什麼不用連續的1部份表示網絡ID,連續的0部份表示主機ID呢?答案是肯定的,採用這種方案的IP尋址技術稱之爲無類域間路 由(CIDR)。CIDR技術用子網掩碼中連續的1部份表示網絡ID,連續的0部份表示主機ID。比如,網絡中包含2000臺計算機,只需要用11位表示 主機ID,用21位表網絡ID,則子網掩碼錶示爲11111111.11111111.11100000.00000000,轉換爲十進制則爲 255.255.224.0。此時,該網絡將包含2046臺計算機,既不會造成IP地址的浪費,也不會利用路由器連接網絡,增加額外的管理維護量。

CIDR表示方法:IP地址/網絡ID的位數,比如192.168.23.35/21,其中用21位表示網絡ID。

例1:192.168.23.35/21

        子網掩碼:11111111 11111111 11111000 00000000則爲255.255.248.0

   網絡ID:192.168.00010111.0(其中第三個字節紅色部分表示網絡ID,其他表示主機ID,網絡ID是表示網絡ID部份保持不變主機ID全部變爲0)則網絡ID爲192.168.16.0

起始IP地址:192.168.16.1(主機ID不能全爲0,全爲0表示網絡ID最後一位爲1)

結束IP地址:192.168.00010111.11111110(主機ID不能全爲1,全爲1表示本地廣播)則結束IP地址爲:192.168.23.254。

例2:將163.135.0.0劃分爲16個子網,計算前兩個子網的網絡ID、子網掩碼、起止IP地址。

第1步:用CIDR表示163.135.0.0/20,則子網掩碼爲255.255.240(11110000).0。

第2步:第一網絡ID(子網掩碼與IP地址與運算):163.135.0.0

    第一個IP地址:163.135.0.1 結束IP地址:163.135.15.254;

第3步:第二網絡ID:163.135.16.0

            第一個IP地址:163.135.16.1 結束IP地址:163.135.31.254。 

五、子網掩碼和網絡ID的快速計算方法

CIDR的子網掩碼都是連續的1跟連接的0表示,則子網掩碼有以下幾種表示方法:

0000 0000   0

1000 0000   128

1100 0000   128+64=192

1110 0000   128+64+32=224

1111 0000   255-15=240

1111 1000   255-7=248

1111 1100   255-3=252

1111 1110   255-1=254

1111 1111   255

大家都知道11111111的十進制數爲255,那麼我們怎麼來快速計算子網掩碼呢?二進制的1=1,11=3,111=7,1111=15;那麼 1111 1110=255-1,1111 1100=255-3,1111 1000=255-8,1111 0000=255-15這樣是不是就很快呢?只要我們一旦確定子網掩碼中有多少位表示網絡ID,那麼我們馬上就可以寫出子網掩碼了。那麼,對於1000 0000,1100 0000和1110 0000 我們又該怎麼計算呢?27=8則1000 0000=128,1100 0000=128+64,1110 0000=128+64+32,所以我們不需要去記住每一個爲多少,只需要做做簡單的加減法就搞定子網掩碼的計算。

網絡ID的結果大家都知道網絡ID部份不變,主機ID部分全部變爲0,那麼在計算網絡ID時,首先看子網掩碼中有多少位用來表示網絡,相應在將IP 地址轉換爲二進制時就只轉換前面幾位,比如192.168.176.15/19,網絡ID一共19位,則網絡ID前兩個字節爲192.168.X.0發生 變化的爲第三個字節。那麼怎樣快速計算出這個變化的X的值呢?我們知道第三字節只有三位表示網絡ID,轉換時176>128,第1位爲 1,176-128=48<64,第2位爲0,48>32第3位爲1,剩下的計算就沒有意義了,全都要轉換爲0,則網絡ID爲10100000,則網絡 ID爲192.168.160.0,這樣計算反而出錯的可能性很小。

六、 本地和遠程網絡概念

網絡ID相同的計算機稱之爲本地網絡,本地網絡中的計算機相互通信不需要路由器連接;網絡ID不相同的計算機稱之爲遠程網絡,遠程網絡中的計算機要相互通信必須通過路由器連接。

例1:192.168.10.14/28,192.168.10.15/28,192.168.10.16/28,192.168.10.31/28哪些是合法IP,哪些是非法IP地址?

主機ID全爲0和主機ID全爲1的爲非法IP地址:192.168.10.15/28、192.158.10.16/28、192.168.10.31/28都是非法IP地址。

例2:192.168.10.14/28,192.168.10.15/28,192.168.10.16/28哪個不是同一網段?

網絡ID相同的就屬於同一網段,則192.168.10.16/28不屬於同一網段。

七、子網數和主機數的計算方法

例:172.168.34.56/20,一共劃分爲了多少個子網,各子網可以包含多少臺主機。

172.168.34.56是一個B類地址,B類地址用16位表示網絡ID,題目中20位表示網絡ID,則子網位數爲4位,那麼子網就有24次個(即從0000、0001到1111的16種變化)。

由於IP地址是32位,用20位表示網絡ID,則主機ID的位數爲12位,則每個子網可以包含212-2個IP地址,即可以包含4096個IP地址。

注意:爲什麼計算IP地址時要減2,而計算子網數目時不減2呢?IP地址減2的原因是主機ID不能全爲0也不能全爲1;子網就不存在這個問題。

八、 公共IP和私有IP地址

IP地址由IANA(Internet地址分配機構)管理和分配,任何一個IP地址要能夠在Internet上使用就必須由IANA分配,IANA 分配的能夠在Internet上正常使用的IP地址稱之爲公共IP地址;IANA保留了一部份IP地址沒有分配給任何機構和個人,這部份IP地址不能在 Internet上使用,此類IP地址就稱之爲私有IP地址。爲什麼私有IP地址不能在Internet上使用呢?因爲Internet上沒有私有IP地 址的路由。私有IP地址範圍包括:

A類:10.0.0.0/8

B類:172.16.0.0/12 即172.16.0.1-172.31.255.254共16個B類網絡

C類:192.168.0.0/16即192.168.0.1-192.168.255.254共256個C類網絡

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章