"子網(wǎng)"掩碼,顧名思義,它就是拿來(lái)劃分子網(wǎng)的,更準(zhǔn)確的說(shuō),劃分子網(wǎng)的同時(shí),還能通過(guò)它知道主機(jī)在子網(wǎng)里面的具體ip的具體地址。
用途
那么劃分這個(gè)子網(wǎng)有什么用呢?
方便管理,不同的子網(wǎng)可以相互隔離
我們知道,IPv4的ip地址資源比較緊張,實(shí)際上整個(gè)互聯(lián)網(wǎng)就是一個(gè)巨大的局域網(wǎng),ip地址有限,那么通過(guò)劃分子網(wǎng),如何再在子網(wǎng)里面分配ip地址給子網(wǎng)的主機(jī),這個(gè)時(shí)候同一一個(gè)ip就可以給一整個(gè)子網(wǎng)所共用,就解決了互聯(lián)網(wǎng)ip不夠的問(wèn)題
原理
既然要?jiǎng)澐肿泳W(wǎng),要有一個(gè)規(guī)則,告訴路由器,IP的哪一部分是表示子網(wǎng),哪一部分表示我在這個(gè)子網(wǎng)里面具體的地址
所以,實(shí)際上IP細(xì)來(lái)講又分為三部分:網(wǎng)絡(luò)部分(network)子網(wǎng)段部分(subnetwork)和主機(jī)部分(host)
一般大家喜歡把網(wǎng)絡(luò)部分和子網(wǎng)部分合并成為網(wǎng)絡(luò)地址(網(wǎng)絡(luò)號(hào)),把子網(wǎng)看做是網(wǎng)絡(luò)的一部分,主機(jī)部分稱(chēng)為主機(jī)地址(主機(jī)號(hào)) 通俗理解:
網(wǎng)絡(luò)號(hào)(subnetwork),表示我住哪個(gè)小區(qū)
主機(jī)號(hào)(host),表示我家門(mén)牌號(hào)是多少
或者說(shuō)網(wǎng)絡(luò)號(hào)就是我們平時(shí)打電話(huà)的區(qū)號(hào),主機(jī)號(hào)是你的電話(huà)號(hào)碼,如010-80220110, 010是網(wǎng)絡(luò)號(hào),80220110是主機(jī)號(hào)
我們平常看到的192.168.0.x這樣的IP,這是給我們看的地址,計(jì)算機(jī)內(nèi)部計(jì)算把ip變成二進(jìn)制,每一個(gè)IP被4個(gè)點(diǎn)分成4部分,每一部分有8位,也就是一個(gè)IP實(shí)際上是一個(gè)一共32位的二進(jìn)制數(shù)
如 192.168.0.3 換成二進(jìn)制是 11000000 10101000 00000000 00000011
然后,這個(gè)32位的數(shù)根據(jù)需要被分為五大類(lèi)分,由IANA(全球互聯(lián)網(wǎng)地址指派機(jī)構(gòu))配給大家使用
一般來(lái)說(shuō)這五類(lèi)的用途大致分為:
A類(lèi)保留給政府機(jī)構(gòu)(0.0.0.0到127.255.255.255)
B類(lèi)分配給中等規(guī)模的公司(128.0.0.0到191.255.255.255)
C類(lèi)分配給任何需要的人(192.0.0.0到223.255.255.255)
D類(lèi)用于組播(224.0.0.0---239.255.255.255)
E類(lèi)用于實(shí)驗(yàn)(240.0.0.0---247.255.255.255)
A、B、C三類(lèi)中IP地址=網(wǎng)絡(luò)地址+主機(jī)地址,而D、E兩類(lèi)不區(qū)分網(wǎng)絡(luò)地址和主機(jī)地址
特殊說(shuō)明:
(1)A類(lèi)中的 10.X.X.X是私有地址;127.X.X.X是保留地址
(2)B類(lèi)中的 172.16.0.0~172.31.255.255是私有地址
(3)C類(lèi)中的 192.168.X.X是私有地址
那么,是怎么樣計(jì)算出來(lái)網(wǎng)絡(luò)號(hào)和主機(jī)號(hào)的呢?
子網(wǎng)掩碼會(huì)把一個(gè)IP地址按這個(gè)劃分成這兩部分,計(jì)算方法是通過(guò)把IP地址變成二進(jìn)制,子網(wǎng)掩碼也轉(zhuǎn)成二進(jìn)制后,兩個(gè)二進(jìn)制數(shù)按位做 與運(yùn)算。
比如,一個(gè)C類(lèi)地址,ip: 192.168.0.3 ,子網(wǎng)掩碼是:255.255.255.0
1.第一步先轉(zhuǎn)而進(jìn)制
ip: 192.168.0.3 > 11000000 10101000 00000000 00000011
網(wǎng)掩碼:255.255.255.0 > 11111111 11111111 11111111 00000000
2.然后兩個(gè)二進(jìn)制按位做與計(jì)算
11000000 10101000 00000000 00000011
&
11111111 11111111 11111111 00000000
=
11000000 10101000 00000000 00000000
3.把這個(gè)而結(jié)果 : 11000000 10101000 00000000 00000000 每個(gè)8位轉(zhuǎn)化回變成: 192.168.0.0
192.168.0.0 這個(gè)就是我們的網(wǎng)絡(luò)段(包括了上面說(shuō)的網(wǎng)絡(luò)部分和子網(wǎng)部分)
3 就是我們的主機(jī)號(hào)(主機(jī)在子網(wǎng)絡(luò)里面的標(biāo)識(shí))
CIDR(無(wú)類(lèi)別域間路由)/VLSM(可變長(zhǎng)子網(wǎng)掩碼)
上面這個(gè)算法看起來(lái)有點(diǎn)難理解,另外一種CIDR(無(wú)類(lèi)別域間路由)/VLSM(可變長(zhǎng)子網(wǎng)掩碼)的表示法跟容易看懂,如下面這個(gè):
192.168.0.3/24
24表示這個(gè)ip的32位二進(jìn)制數(shù)的前24位是網(wǎng)絡(luò)標(biāo)識(shí)的前綴,剩下的8位是主機(jī)標(biāo)識(shí),嚴(yán)格來(lái),剩下的8位里面,全部是0是這個(gè)網(wǎng)絡(luò)的標(biāo)識(shí),全部是1是這個(gè)網(wǎng)絡(luò)的子網(wǎng)內(nèi)廣播地址,其他是這個(gè)子網(wǎng)網(wǎng)絡(luò)的可用地址
192.168.0.3 => 11000000 10101000 00000000 00000011
網(wǎng)絡(luò)標(biāo)識(shí)的前綴: 11000000 10101000 00000000 --(前24位)換算位10進(jìn)制:192.168.0
網(wǎng)絡(luò)標(biāo)識(shí): 11000000 10101000 00000000 00000000 --剩下8位全是0,轉(zhuǎn)10進(jìn)制是:192.168.0.0
廣播地址 11000000 10101000 00000000 11111111 --剩下8位全是1,轉(zhuǎn)10進(jìn)制是:192.168.0.255
大家看,這個(gè)就很容易理解了,除了網(wǎng)絡(luò)標(biāo)識(shí)和廣播地址這兩個(gè)特殊地址,剩下8位里面其他二進(jìn)制數(shù)就是其他主機(jī)的標(biāo)識(shí)。
實(shí)際上,這個(gè)192.168.0.3/24 ,前24位全1,就是等于255.255.255.0,這個(gè)就是這個(gè)網(wǎng)絡(luò)的子網(wǎng)掩碼,而無(wú)類(lèi)別域間路由是基于可變長(zhǎng)子網(wǎng)掩碼(VLSM)來(lái)進(jìn)行任意長(zhǎng)度的前綴的分配的,所以這個(gè)24也可以變成其他數(shù),如16
192.168.0.3/16
只有前16位是網(wǎng)絡(luò),后面是地址16標(biāo)識(shí),換算回來(lái)就是
192.168.0.0 是網(wǎng)絡(luò)標(biāo)識(shí)(后16位二進(jìn)制全位0)
192.168.255.255這個(gè)是域內(nèi)廣播地址(后16位二進(jìn)制全為1)
那么192.168.0.0 - 192.168.255.255 間所有的其他地址就是這個(gè)子網(wǎng)的可以容納的主機(jī)地址
所以這個(gè)子網(wǎng)的地址數(shù)量明顯比192.168.0.3/24那個(gè)要大多了
那么的子網(wǎng)掩碼也很容易計(jì)算,就是前面16位全是1后面16位全是0,換算成10進(jìn)制就是255.255.0.0