IPv4地址學習總結

一. IPv4地址格式

網絡互連的一個重要前提條件是要有一個有效的地址結構,並且所有的互連網絡用戶都應遵守這個地址結構。因爲只有這樣所有的互連網絡用戶才能在統一的規定下相互之間通訊。這個地址結構可以有許多不同的形式,可以用二進制表示、十進制表示,甚至用十六進制表示,如:204.71.200.68轉爲八進制形式可表示爲0314.0107.0310.0104,IP地址204.71.200.68轉爲十六進制形式可表示爲0xCC.71.0310.0x44。目前使用的IPv4地址使用32位二進制的地址,即在IPv4的地址空間中有2的32次冪(4,294,967,296,約爲43億)個地址可用。IPv4地址在1981年9月實現標準化,在計算機中用四個八位二進制位組表示,分爲網絡位主機位

爲了人們的使用方便,使用十進制地址表示,IP地址中的每個8位位組用0~255之間的一個十進制數表示,數與數之間用點(.)分割,即所謂的點分十進制格式。最小的IPv4地址是0.0.0.0,最大的IPv4地址是255.255.255.255,但這兩個值是保留的,沒有分配給私人的端系統。因爲TCP/IP協議規定全0的地址(無論有多少0)表示本地網絡,保留爲識別子網自身;32比特全爲1的地址用於本網廣播,該地址叫做有限廣播地址(limited broadcast address)。而主機位全爲1的網絡地址,叫做直接廣播(directed boradcasting)地址,在網間網上的任何一點均可向其他任何網絡進行直接廣播。所謂廣播,指同時向網上所有主機發送報文。對於 直接廣播(directed boradcasting)地址,路由器等網絡尋址設備允許其通過,並幫助其尋址,所以直接廣播(directed boradcasting)地址有穿透子網的能力。對於有限廣播地址(limited broadcast address)只能用於本網的廣播,對子網沒有穿透能力。


二. IPv4地址的結構

點分十進制數表示的IPv4分爲五類,以適應大中小不同的網絡類型,這些類的不同之處用於表示網絡的位數與用於表示主機的位數之間的差別。這五類是:
• A類地址
• B類地址
• C類地址
• D類地址
• E類地址
其中:
• A類地址:A類地址的第一個八位位組表示網絡位,且網絡位的第一個bit總是0,1-7bit表示網絡標識,即格式總爲:0××××××××。後三個八位位組表示主機位,由A類地址的格式可以知道A類地址的網絡標識有效範圍是00000001~011111111,用十進制表示即1.0.0.0到126.0.0.0 共有64+32+16+8+4+2+1=127個可能的A類網絡,主機標識爲2的24次冪減2個(去掉全0和全1的地址)。即每個網絡主機數爲16777214個,這一類地址支持巨型網絡,一般分配給具有大量主機的網絡使用。
從技術上講127.0.0.0也是一個A類地址,但他已被保留作閉環(look back)測試用而不能分配給一個網絡。TCP/IP協議規定,一、含網絡號127的分組不能出現在任何網絡上;二、主機和網關不能爲該地址廣播任何尋徑信息。


• B類地址:B類地址的前兩個八位位組表示網絡位,且網絡位的前兩個個bit總是10,3-15bit表示網絡標識,即格式總爲:10×××××× ××××××××。後兩個八位位組表示主機位,由B類地址的格式可以知道B類地址的網絡標識有效範圍是10000000 00000001~10111111 11111110,用十進制表示即128.1.0.0~191.254.0.0,主機標識個數爲2的16次冪減2個(去掉全0和全1的地址)。即每個網絡主機數爲65534個,這類地址一般分配給中等規模的網絡使用。


• C類地址:C類地址的前三個八位位組表示網絡位,且網絡位的前三個bit總是110,4-23bit表示網絡標識,即格式總爲:110××××× ×××××××× ××××××××。後一個八位位組表示主機位,由C類地址的格式可以知道C類地址的網絡標識有效範圍是11000000 00000000 00000001~11011111 11111111 11111110,用十進制表示即192.0.1.0~223.255.254.0,故其有效網絡數爲2097152。主機標識個數爲2的8次冪減2個(去掉全0和全1的地址)。即每個網絡主機數爲254個,這類地址一般分配給小型網絡使用。


• D類地址:用於在IP網絡中的組播(multicasting,又叫多目廣播),前4位bit設置恆爲1110。一個組播地址是一個唯一的網絡地址。它能指導報文到達預定義的IP地址組,這樣一臺機器可以把數據同時發送到多個接受端,從而比爲每個接受端創建一個不同的流有效的減少了網絡流量。因爲D類地址用於在一個私有網中傳輸組播報文至IP地址定義的端系統組中,而不用於互連單獨的端系統或網絡,所以沒有必要把地址中的8位位組或地址位分開來表示網絡和主機,相反,整個地址空間用於標識一個IP地址組(可以是A、B或C類地址)。因此D類地址空間的範圍從224.0.0.0到239.255.255.254。


• E類地址:被IETF保留作研究之用,Internet上沒有可用的E類地址。前4位bit設置恆爲1111。 有效地址範圍240.0.0.0到255.255.255.255




在IP地址範圍內,還有一些非路由地址。IANA(Internet Assigned Numbers Authority)將一部分地址保留作爲私人IP地址空間,專門用於內部局域網使用,這些地址如下:
A類地址中的:10.0.0.0~10.255.255.255
B類地址中的:172.16.0.0~172.31.255.255
C類地址中的:192.168.0.0~192.168.255.255

這些地址不會被Internet分配,因此它們在Internet上也從來不會被路由,雖然它們不能直接和Internet網連接,但仍舊可以被用來和Internet通訊,我們可以根據需要來選用適當的地址類,在內部局域網中將這些地址當作公用IP地址一樣地使用。在Internet上,那些不需要與Internet通訊的設備,如打印機、可管理集線器等也可以使用這些地址,以節省IP地址資源。


三.IP地址進階


1.分子網
爲了解決相對比較簡單的兩層結構IP地址帶來的問題,RFC917和RFC950提出了一個叫做分子網的(subnetting)的解決方案。
RFC950中規範的分子網方法能使A、B、C類IP地址再細分爲更小的網絡號。一個被子網化的IP地址包括三部分:
Ÿ 網絡號
Ÿ 子網號
Ÿ 主機號

具體做法是把主機部分一分爲二,用一部分用於識別子網,一部分用於標識主機,所以分子網的能力依賴於被子網化的IP地址類型。即A類的大於B類,B類的大於C類。如:一個C類地址


2.子網掩碼和ip地址
由於分子網的需要,導致了我們常說的子網掩碼在這裏出現。使用子網掩碼目的是,告訴網絡中的端系統(可能使路由器和其他主機)IP地址的多少位用於識別網絡和子網。子網掩碼中用於標識網絡號的位置爲1,主機位置爲0。
子網掩碼不能單獨存在,它必須結合IP地址一起使用。子網掩碼只有一個作用,就是將某個IP地址劃分成網絡地址和主機地址兩部分,如圖1。
各個不同的地址類有其各自的默認子網掩碼,A類爲255.0.0.0。B類爲255.255.0.0.。C類爲255.255.255.0。
子網掩碼的二進制形式與IP地址的二進制形式相與後的結果即是其IP地址的網絡的地址。由二進制與運算的性質我們很容易得到象11111111 11111111 11111111 11000000(255.255.255.192)這樣的掩碼在子網裏能產生多少個可能的主機。因爲有6位爲0的主機位所以子網可能的主機共有2的6次方減2個,減2是因爲,當主機位全0時保留爲識別子網自身(即11111111 11111111 11111111 11000000時),當主機位位全1時用於在子網內的廣播(即11111111 11111111 11111111 11111111時),


3.可變長子網掩碼(VLSM)
可變長子網掩碼(VLSM)的提出是爲了能夠使用多個子網掩碼分子網,這樣當更改子網的大小時就不必改變整個網絡的子網掩碼了,原先單純的分子網,當用戶選擇了一個子網掩碼後,就意味着整個網絡中每個子網內的的主機數已經確定。
可變長子網掩碼(VLSM)即提供一個允許使用不同大小的子網的掩碼的方法。對於擴展網絡前綴的大小能用斜槓(/)後跟一個網絡或子網位數的值表示。如192.125.61.8/24即表示有24爲網絡位,即二進制的前24位11000000.0111101.00111101表示網絡,後8位00001000表示主機。


4.無類域間路由(CIDR)
CIDR用於解決原先分類地址策略的低效性,以便使路由器更有效的匯聚不同網絡地址成單一的路由表項。
主要通過以下幾個特性來完成:
Ÿ 消除地址分類
Ÿ強化的路由匯聚 即使路由表中的一個表項能夠表示許多網絡地址空間。
Ÿ超網化 即把一塊連續的C類地址空間模擬成一個單一的更大的地址空間。
其中:
Ÿ 消除地址分類 使用網絡前綴代替IP地址中類的劃分,且前綴可以是長度,從而可以根據網絡大小分配網絡地址空間,而不是在預定義的網絡地址空間中作裁減。每一個CIDR網絡地址和一個相關的掩碼一起廣播,這個掩碼用於識別網絡前綴的長度。如以前的一個C類地址192.168.125.61.8,其網絡號是192.168.61,主機號是8。但使用了CIDR後,8位邊界的結構限制不在存在,可以變網絡位爲任意的位數,例如當網絡號爲20位時網絡號爲:11000000.01111101.0011,其主機號爲:1101.00001000.所以從數學上說這個IP地址可標識的網絡數有2的20次冪個。




四.IP地址的相關計算

在計算此之前我們應該熟悉2從0到的8的各次冪時多少。如下表:
結果 128 64 32 16 8 4 2 1
2 的冪次 7 6 5 4 3 2 1 0


如對劃分子網數的劃分,如要劃分四個子網,每個子網中有58臺主機,這是可以選擇一個 主機位有六位的C類地址,因爲2的6次冪爲64,最接近58,所以你可以用剩下的28位作網絡位,


對於一個帶子網掩碼的IP地址的網絡地址的計算,應是用IP地址的二進制形式和子網掩碼的二進制形式做相與運算,其結果即是改地址所在的子網網絡地址。如:
I P 地址  192.168.0.1
子網掩碼  255.255.255.0
AND運算
轉化爲二進制進行運算:
I P 地址 11010000.10101000.00000000.00000001
子網掩碼 11111111.11111111.11111111.00000000
AND運算
     11000000.10101000.00000000.00000000
轉化爲十進制後爲:
      192.168.0.0
即192.168.0.1 255.255.255.0所在的子網地址是192.168.0.0


子網掩碼和子網中主機數的計算:

當知道一個網絡地址和要求劃分的子網個數時,可以先確定其網絡位的位數,再從其網絡位的位數得知其主機位的位數,從而我們可以進一步得出每個網絡中的主機個數,由於所有位都是2的倍數,所以各個子網中的主機號可以累加計算,舉例說明:

例子一:
已知網絡地址爲211.134.12.0,要有4個子網,求子網掩碼及各個主機塊。
由4個子網可知,網絡位的大小最小應爲8,因爲若爲4時去掉全0和全1的網絡位,只有2個子網可用,並不滿足要求。網絡位大小位8即意味着網絡位有3位,對於地址211.134.12.0來說,它是一個C類地址,那剩下的主機位應爲8-3=5位。從數學上講即有2的5次冪,共有32個主機,這是每個子網中的主機數,但去掉全0的本地網絡和全1的廣播地址,每個子網實際可以分配的主機個數時30個。對於子網的個數來說,共有2的3次冪減2個,共6個子網,若我們把這八個子網分別用0~7標識,主機用0~255標識一下可知:

子網代碼 網絡位 主機位範圍 子網中的主機塊範圍
子網0 000 000 00000~000 11111 0~31 (本地網絡,應去除)
子網1 001 001 00000~001 11111 32~63
子網2 010 010 00000~010 11111 64~95
子網3 011 011 00000~011 11111 96~127
子網4 100 100 00000~100 11111 128~159
子網5 101 101 00000~101 11111 160~191
子網6 110 110 00000~110 11111 192~223
子網7 111 111 00000~111 11111 224~255 (子網廣播,應去除)


除去網絡位中和主機位中全0和全1的地址,實際可以應用的地址是:


子網代碼 網絡位 主機位範圍 子網中的主機塊範圍
子網1 001 001 00001~001 11110 33~62
子網2 010 010 00001~010 11110 65~94
子網3 011 011 00001~011 11110 97~126
子網4 100 100 00001~100 11110 129~158
子網5 101 101 00001~101 11110 161~190
子網6 110 110 00001~110 11110 193~222


而我們根據子網掩碼的定義可知,其作用是用來劃分子網的,所以其子網掩碼可表示爲211.134.12.X,其中X是網絡位的大小,即二進制的111,十進制的224,所以子網掩碼是211.134.12.224。其實我們由每個二進制位組的大小都是256可知,用256減去每個子網中的主機數(主機塊)即得掩碼的數值。在此例中是用256減去32即得224。


通過對以上的關係的總結可以得到如下關係的表示:
(1) 子網掩碼=256-每個子網可分配的IP地址塊大小
(2) 每個子網可分配的IP地址塊大小=256/可分配子網塊大小
(3) 可分配子網塊大小=256/I每個子網可分配的IP地址塊大小
(4) 每個子網實際可分配的IP地址數=每個子網可分配的IP地址塊大小-2
(5) 可分配子網數=可分配子網塊大小-2
其實從上例中可以知道每個子網的網絡地址就是其子網中的主機塊範圍中第一個主機的地址,而每個子網的廣播地址就是其子網中的主機塊範圍中最後一個主機的地址,如子網3中,其網絡地址就是主機位96主機的地址,而其子網的廣播地址就是其子網中的主機位是127的主機地址。當然我們在實際計算時可以利用其2的倍數的性質用加法進行計算。如我們算出每個子網的主機數是32時,即可知第一個子網範圍是0~31;第二個子網的第一個主機是32,而最後一個是在第一個子網的最後一個主機31的基礎上再加32,即31+32=63,第二個子網的範圍即是32~63;第三個子網的第一個主機是64,而最後一個是在第一個子網的最後一個主機63的基礎上再加32,即63+32=95,第三個子網的範圍即是64~95。依次類推,第四個、第五個··· ···而如此計算出的子網中的主機範圍還不能用,因爲還要除去每個子網中的主機塊的第一個和最後一個地址,即第一個子網是0和31,第二個子網是32和63,第三個子網是64和95,其中前面小的那個是本地的網絡地址,後面大的是本地的廣播地址。
其實每個子網中的本地的網絡地址必然是一偶數(因爲要全0,最後一位爲0確定了這個值是偶數),每個子網中的本地的廣播地址必然是一奇數(因爲要全1,最後一位爲1確定了這個值是奇數);同時每個子網中的第一個可用的地址是其網絡地址加1(因其網絡地址爲偶,所以其第一個可用的地址必爲奇數),每個子網中的最後一個可用的地址是其廣播地址減1(因其廣播地址爲奇,所以其最後一個可用的地址必爲偶數),且它們必定兩兩相鄰,即    第n-1個子網的網絡地址 - 第n-1個子網中第一個可用的地址………第n-1個子網中最後一個可用的地址 - 第n-1個子網的廣播地址 —— 第n個子網的網絡地址-第n個子網中第一個可用的地址…….…第n個子網中最後一個可用的地址 - 第n個子網的廣播地址 —— 第n+1個子網的網絡地址 - 第n+1個子網中第一個可用的地址………第n+1個子網中最後一個可用的地址 - 第n+1個子網的廣播地址……

例子二:
一個公司有530臺電腦,組成一個對等局域網,子網掩碼設多少最合適?
  首先,無疑,530臺電腦用B類IP最合適(A類不用說了,太多,C類又不夠,肯定是B類),但是B類默認的子網掩碼是255.255.0.0,可以容納6萬臺電腦,顯然不太合適,那子網掩碼設多少合適呢?我們先來列個公式。
  2的m次方=560
  首先,我們確定2一定是大於8次方的,因爲我們知道2的8次方是256,也就是C類IP的最大容納電腦的數目,我們從9次方一個一個試2的9次方是512,不到560,2的10次方是1024,看來2的10次方最合適了。子網掩碼一共由32位組成,已確定後面10位是0了,那前面的22位就是1,最合適的子網掩碼就是:11111111.11111111.11111100.00000000,轉換成10進制,那就是255.255.252.0。




五.附錄:



在此列出A、B、C三類網絡子網數目與子網掩碼的轉換表,以供參考。
A類:
子網數目 佔用位數    子網掩碼    子網中主機數
 2     1    255.128.0.0    8,388,606
 4     2    255.192.0.0    4,194,302
 8     3    255.224.0.0    2,097,150
 16     4    255.240.0.0    1,048,574
 32     5    255.248.0.0    524,286
 64     6    255.252.0.0    262,142
 128    7    255.254.0.0    131,070
 128    8    255.255.0.0    65,534


B類:
子網數目 佔用位數    子網掩碼    子網中主機數
 2     1    255.255.128.0   32,766
 4     2    255.255.192.0   16,382
 8     3    255.255.224.0   8,190
 16     4    255.255.240.0   4,094
 32     5    255.255.248.0   2,046
 64     6    255.255.252.0   1,022
 128    7    255.255.254.0   510
 256    8    255.255.255.0   254


C類:
子網數目 佔用位數    子網掩碼    子網中主機數
 2     1    255.255.255.128   126
 4     2    255.255.255.192   62
 8     3    255.255.255.224   30
 16     4    255.255.255.240   14
 32     5    255.255.255.248   6
 64     6    255.255.255.252   2




表ABC類地址網絡/地址的範圍/結構
A類:
|―――8位網絡位―――|―――――――――32位主機位―――――――――|
B類:
|――――――16位網絡位――――――|――――――16位主機位――――――|
C類:
|―――――――――32位網絡位―――――――――|――― 8 位主機位―――|




A類:
|―――0××××××××―――|――――――――32位主機位――――――――|
B類:
|―――10×××××× ××××××××―――|―――――― 16 位主機位―――――|
C類:
|――― 110××××× ×××××××× ×××××××× ―――|――― 8 位主機位―――|
發佈了49 篇原創文章 · 獲贊 10 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章