什麼是子網掩碼?

"子網"掩碼,顧名思義,它就是拿來劃分子網的,更準確的說,劃分子網的同時,還能通過它知道主機在子網裏面的具體ip的具體地址。

用途

那麼劃分這個子網有什麼用呢?

  1. 方便管理,不同的子網可以相互隔離
  2. 我們知道,IPv4的ip地址資源比較緊張,實際上整個互聯網就是一個巨大的局域網,ip地址有限,那麼通過劃分子網,如何再在子網裏面分配ip地址給子網的主機,這個時候同一一個ip就可以給一整個子網所共用,就解決了互聯網ip不夠的問題

原理

既然要劃分子網,要有一個規則,告訴路由器,IP的哪一部分是表示子網,哪一部分表示我在這個子網裏面具體的地址

所以,實際上IP細來講又分爲三部分:網絡部分(network)子網段部分(subnetwork)和主機部分(host)

一般大家喜歡把網絡部分和子網部分合併成爲網絡地址(網絡號),把子網看做是網絡的一部分,主機部分稱爲主機地址(主機號)

通俗理解:

  • 網絡號(subnetwork),表示我住哪個小區
  • 主機號(host),表示我家門牌號是多少

或者說網絡號就是我們平時打電話的區號,主機號是你的電話號碼,如010-80220110, 010是網絡號,80220110是主機號

我們平常看到的192.168.0.x這樣的IP,這是給我們看的地址,計算機內部計算把ip變成二進制,每一個IP被4個點分成4部分,每一部分有8位,也就是一個IP實際上是一個一共32位的二進制數

如 192.168.0.3 換成二進制是 11000000 10101000 00000000 00000011

然後,這個32位的數根據需要被分爲五大類分,由IANA(全球互聯網地址指派機構)配給大家使用

一般來說這五類的用途大致分爲:
A類保留給政府機構(0.0.0.0到127.255.255.255)
B類分配給中等規模的公司(128.0.0.0到191.255.255.255)
C類分配給任何需要的人(192.0.0.0到223.255.255.255)
D類用於組播(224.0.0.0---239.255.255.255)
E類用於實驗(240.0.0.0---247.255.255.255)
A、B、C三類中IP地址=網絡地址+主機地址,而D、E兩類不區分網絡地址和主機地址
特殊說明:
(1)A類中的 10.X.X.X是私有地址;127.X.X.X是保留地址
(2)B類中的 172.16.0.0~172.31.255.255是私有地址
(3)C類中的 192.168.X.X是私有地址

那麼,是怎麼樣計算出來網絡號和主機號的呢?

子網掩碼會把一個IP地址按這個劃分成這兩部分,計算方法是通過把IP地址變成二進制,子網掩碼也轉成二進制後,兩個二進制數按位做 與運算。

比如,一個C類地址,ip: 192.168.0.3 ,子網掩碼是:255.255.255.0

  1. 第一步先轉而進制
ip:   192.168.0.3   >  11000000 10101000 00000000 00000011
網掩碼:255.255.255.0 >  11111111 11111111 00000000 00000000

2. 然後兩個二進制按位做與計算

11000000 10101000 00000000 00000011
&
11111111 11111111 00000000 00000000
=
11000000 10101000 00000000 00000000

3. 把這個而結果 : 11000000 10101000 00000000 00000000 每個8位轉化回變成: 192.168.0.0

192.168.0.0 這個就是我們的網絡段(包括了上面說的網絡部分和子網部分)
3 就是我們的主機號(主機在子網絡裏面的標識)

CIDR(無類別域間路由)/VLSM(可變長子網掩碼)

上面這個算法看起來有點難理解,另外一種CIDR(無類別域間路由)/VLSM(可變長子網掩碼)的表示法跟容易看懂,如下面這個:

192.168.0.3/24

24表示這個ip的32位二進制數的前24位是網絡標識的前綴,剩下的8位是主機標識,嚴格來,剩下的8位裏面,全部是0是這個網絡的標識,全部是1是這個網絡的子網內廣播地址,其他是這個子網網絡的可用地址

192.168.0.3   =>  11000000 10101000 00000000 00000011

網絡標識的前綴: 11000000 10101000 00000000 --(前24位)換算位10進制:192.168.0
網絡標識: 11000000 10101000 00000000 00000000 --剩下8位全是0,轉10進制是:192.168.0.0
廣播地址  11000000 10101000 00000000 11111111 --剩下8位全是1,轉10進制是:192.168.0.255

大家看,這個就很容易理解了,除了網絡標識和廣播地址這兩個特殊地址,剩下8位裏面其他二進制數就是其他主機的標識。

實際上,這個192.168.0.3/24 ,前24位全1,就是等於255.255.255.0,這個就是這個網絡的子網掩碼,而無類別域間路由是基於可變長子網掩碼(VLSM)來進行任意長度的前綴的分配的,所以這個24也可以變成其他數,如16

192.168.0.3/16

只有前16位是網絡,後面是地址16標識,換算回來就是

192.168.0.0 是網絡標識(後16位二進制全位0)
192.168.255.255這個是域內廣播地址(後16位二進制全爲1)

那麼192.168.0.0 - 192.168.255.255 間所有的其他地址就是這個子網的可以容納的主機地址

所以這個子網的地址數量明顯比192.168.0.3/24那個要大多了

那麼的子網掩碼也很容易計算,就是前面16位全是1後面16位全是0,換算成10進制就是255.255.0.0

更多的CIDR/VLSM例子:


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