如何計運算元網掩碼
理解ip地址組成
ipv4地址是32位的二進位制數,通常我們會用點分十進位制表示,例如:192.188.222.213
每個ip地址又可分為兩部分,一部分是網路號部分,另一部分是主機號,網路號表示其所屬的網路段編號,主機號則表示該網段中該主機的地址編號,按照網路規模的大小,IP地址可以分為A、B、C、D、E五類,其中A、B、C類是三種主要的型別地址,D類專供多目傳送用的多目地址,E類用於擴充套件備用地址。A、B、C三類IP地址有效範圍如下表:
類別 網路號 /佔位數 主機號 /佔位數 用途(X位網路斷,Y位主機段)
A 1~126 / 8 0~255 0~255 1~254 / 24 國家級
根據規定,A類地址的網路標識必須以“0”開頭。那麼其網段數應該為0XXXXXXX.YYYYYYYY.YYYYYYYY.YYYYYYYY即後面有七位數字
B 128~191 0~255 / 16 0~255 1~254 / 16 跨過組織
根據規定,B類地址的網路標識必須以“10”開頭。那麼其網段數應該為10XXXXXX.XXXXXXXX.YYYYYYYY.YYYYYYYY即後面有14位數字
C 192~223 0~255 0~255 / 24 1~254 / 8 企業組織
根據規定,C類地址的網路標識必須以“110”開頭。那麼其網段數應該為110XXXXX.XXXXXXXX.XXXXXXXX.YYYYYYYY即後面有21位數字
虛擬Ip地址(所有路由器對於虛擬ip地址資料表一律不轉發):
10.0.0.0~10.255.255.255
172.16.0.0~172.31.255.255
192.168.0.0. ~192.168.255.255
對於A類地址來說, 網路斷取值編號只能是1-126(127作為迴路地址使用), 主機號編號取值範圍為1-2^24, 如此大的主機編號數量,但是隻能對應一個ip使用,例如對於126.x.x.x這個ip來說,其實在126這個ip下面可以配置(2^24-1)個主機進行使用,但是很難全部進行使用和管理,為了高效率的使用這些主機編號,同時著互連網應用的不斷擴大,原先的IPv4的弊端也逐漸暴露出來,即網路號佔位太多,而主機號位太少,所以其能提供的主機地址也越來越稀缺,目前除了使用NAT在企業內部利用保留地址自行分配以外,通常都對一個高類別的IP地址進行再劃分,以形成多個子網,提供給不同規模的使用者群使用。
可以將126想象成一個小區的編號,然後主機號(2^32-1)想象成居民的房號,如果要管理這個小區將變得特別困難,為了方便管理,我們將這個小區內部再劃分出多個子區,這就是子網的由來,如果我們想給某一個子小區的成員分發資料,我們總不可能一個個的居民找過去吧, 如果我們知道這個居民在小區的哪一個子小區,不就更容易找到居民了嗎,那麼子網掩碼就是來幫我們找到當前ip所屬哪一個子網的。
子網的組成
為了在網路分段情況下有效地利用IP地址,通過對主機號的高位部分取作為子網號,從通常的網路位界限中擴充套件或壓縮子網掩碼,用來建立某類地址的更多子網。但建立更多的子網時,在每個子網上的可用主機地址數目會比原先減少
距離來說,對於126.0.0.1,我們將其轉換為32位2進位制數,前8位時網路段(即126), 然後剩下的24位可以從高位擷取位數來作為子網數量(以及編號),剩下的位數作為主機號,例如我們取24位前兩位作為子網,則子網的數量是2^2個(也就是四個),每個子網下管理的主機編號是(1-2^22),但是對於每一個子網來說,會把主機編號的開始作為網路地址,將主機編號最後一個作為廣播地址,所以每個子網可用主機數為(2^22-2)個, 此時的子網掩碼(32位)11111111,11000000,00000000,00000000轉換成點分十進位制是:255.192.0.0, 注:網路段必須是都是1
一、利用子網數來計算
在求子網掩碼之前必須先搞清楚要劃分的子網數目,以及每個子網內的所需主機數目。
1)將子網數目轉化為二進位制來表示
2)取得該二進位制的位數,為 N
3)取得該IP地址的類子網掩碼,將其主機地址部分的的前N位置 1 即得出該IP地址劃分子網的子網掩碼。
如欲將B類IP地址168.195.0.0劃分成27個子網:
1)27=11011
2)該二進位制為五位數,N = 5
3)將B類地址的子網掩碼255.255.0.0的主機地址前5位置 1(從高位擷取時必須都是1),得到 255.255.248.0
即為劃分成 27個子網的B類IP地址 168.195.0.0的子網掩碼。
方法2:
其實我們可以想一下2^位數,剛剛大於要劃分的子網數量,對於27來說,2^5=32剛剛大於27, 所以擷取主機段高位的前五位作為子網掩碼,上述地址是b類,因此前16位時網路段,此時的子網掩碼(32位)11111111,11111111,11111000,00000000轉換成點分十進位制是:255.255.248.0, 注:網路段必須是都是1
二、利用主機數來計算
1)將主機數目轉化為二進位制來表示
2)如果主機數小於或等於254(注意去掉保留的兩個IP地址),則取得該主機的二進位制位數,為 N,這裡肯定 N<8。如果大於254,則 n="">8,這就是說主機地址將佔據不止8位。
3)使用255.255.255.255來將該類IP地址的主機地址位數全部置1,然後從後向前的將N位全部置為 0,即為子網掩碼值。
如欲將B類IP地址168.195.0.0劃分成若干子網,每個子網內有主機700臺:
1) 700=1010111100
2)該二進位制為十位數,N = 10
3)將該B類地址的子網掩碼255.255.0.0的主機地址全部置 1,得到255.255.255.255
然後再從後向前將後 10位置0,即為:
11111111.11111111.11111100.00000000
即255.255.252.0。這就是該欲劃分成主機為700臺的B類IP地址 168.195.0.0的子網掩碼。
方法2:其實我們可以想一下2^位數的值,剛剛大於要劃分的主機數量,對於700來說,2^11=1024, 剛剛大於700,但是主機位是低位擷取, 所以擷取主機段低位的後十位作為主機位,上述地址是b類,因此前16位時網路段,此時的子網掩碼(32位)11111111,11111111,11111100,00000000轉換成點分十進位制是:255.255.252.0, 注:網路段必須是都是1
下面列出各類IP地址所能劃分出的所有子網,其劃分後的主機和子網佔位數,以及主機和子網的(最大)數目,注意要去掉保留的IP地址(即劃分後有主機位或子網位全為“0”或全為“1”的):
A類IP地址:
子網位 /主機位 子網掩碼 子網最大數 /主機最大數
2/22 255.192.0.0 2/4194302
3/21 255.224.0.0 6/2097150
4/20 255.240.0.0 14/1048574
5/19 255.248.0.0 30/524286
6/18 255.252.0.0 62/262142
7/17 255.254.0.0 126/131070
8/16 255.255.0.0 254/65536
9/15 255.255.128.0 510/32766
10/14 255.255.192.0 1022/16382
11/13 255.255.224.0 2046/8190
12/12 255.255.240.0 4094/4094
13/11 255.255.248.0 8190/2046
14/10 255.255.252.0 16382/1022
15/9 255.255.254.0 32766/510
16/8 255.255.255.0 65536/254
17/7 255.255.255.128 131070/126
18/6 255.255.255.192 262142/62
19/5 255.255.255.224 524286/30
20/4 255.255.255.240 1048574/14
21/3 255.255.255.248 2097150/6
22/2 255.255.255.252 4194302/2
B類IP地址:
子網位 /主機位 子網掩碼 子網最大數 /主機最大數
2/14 255.255.192.0 2/16382
3/13 255.255.224.0 6/8190
4/12 255.255.240.0 14/4094
5/11 255.255.248.0 30/2046
6/10 255.255.252.0 62/1022
7/9 255.255.254.0 126/510
8/8 255.255.255.0 254/254
9/7 255.255.255.128 510/126
10/6 255.255.255.192 1022/62
11/5 255.255.255.224 2046/30
12/4 255.255.255.240 4094/14
13/3 255.255.255.248 8190/6
14/2 255.255.255.252 16382/2
C類IP地址:
子網位 /主機位 子網掩碼 子網最大數 /主機最大數
2/6 255.255.255.192 2/62
3/5 255.255.255.224 6/30
4/4 255.255.255.240 14/14
5/3 255.255.255.248 30/6
6/2 255.255.255.252 62/2
我們看一個考試中常見的題型:一個主機的IP地址是202.112.14.137,掩碼是255.255.255.224,要求計算這個主機所在網路的網路地址和廣播地址。
方法1. 常規辦法是把這個主機地址和子網掩碼都換算成二進位制數,兩者進行邏輯與運算後即可得到網路地址,得出202.112.14.128, 上述是1個c類地址,因此主機號位後8位, 將224轉為二進位制的11100000, 也就說擷取了前3位作為子網,所以子網數位2^3=8個,主機數一個2^8=256個,分為8份,則一個子網為32個主機數,因為網路地址是一個子網的開始地址,廣播地址是一個子網的結束地址,所以128 32-1 = 159,因為廣播地址為202.112.14.159
方法2: 每個子網的主機數 = 總的主機數(2^8) - 子網值(224)=32, 題中的ip主機號為137, 你可想一下,一個子網主機數32,則每一子網的開始都是32的倍數,因為主機編號從0開始,所以只需要想一下哪個值比137小且是32倍數,得出是128,所以網路地址為202.112.14.128(主機位(不包含子網位)全是0), 廣播地址如上為202.112.14.159(主機位(不包含子網位)全是1), 該子網下的主機範圍為
202.112.14.129-202.112.14.158 = 30臺
---------------------
作者:秦絡殤
來源:CSDN
原文:
https://blog.csdn.net/qq_32239417/article/details/78660649
版權宣告:本文為博主原創文章,轉載請附上博文連結!