子網掩碼的計算

爲何要有子網掩碼算法

網絡上,數據從一個地方傳到另一個地方,是依靠 IP 尋址。
從邏輯上來說,是兩步的。
第一步,從 IP 中找到所屬的網絡,比如是去找這我的是哪一個小區的;
第二布,再從 IP 中找到主機在這個網絡中的位置,比如是在小區裏面找到這我的。

第一步中的網絡,就稱之爲「子網」(Subnet)。
從邏輯上來說,通常同一子網(Subnet)是使用相同的網關。就比如,一個小區的入口。

IPv4 的 IP 地址是 32 位的,形式如 xxx.xxx.xxx.xxx,每個 xxx 取值都是 0 - 255。
究竟是前三個 xxx 相同,就表明同一個子網,仍是前兩個,仍是其餘?這個並不必定。
就比如小區有大有小,有的小區有上千戶人家,有的小區只有區區幾個。
因此,就引入「子網掩碼」(Subnet Mask)來標識該子網的大小。

咱們通常看到的 IP 地址是十進制的編碼,因此若是換一個視角,從二進制的角度看,每個 IP 地址就是 32 位 1 或 0。
子網掩碼,就是用來告訴這個子網的覆蓋區間。這 32 位中,前多少位是網絡段?固然,餘下的就是主機段。

舉典型的例子:
IP 中前 24 位表明子網號,後 8 位表明主機號。
因此子網掩碼就是 24 個 1(表明前 24 位是子網部分),加 8 個 0(後 8 位是主機部分)。
若是沿用 IP 的標識方式,就是 255.255.255.0 。
每個 255 對應 8 個二進制 1,最後一個 0 對應 8 個二進制 0。
該子網能夠容納最多 256 臺主機,也就是主機號從 0 到 255。
固然,實際狀況沒有這麼多,有一些特殊數字有保留用處(廣播、網關等)。網絡

子網掩碼的做用是劃分網段地址與主機地址。他的做用至關於面具,擋住面孔,只露出眼睛;若是把1當作面具,把0當作孔,子網掩碼就擋住了網段地址,只露出主機地址(255對應的二進制數是11111111)。若是把子網掩碼與IP地址作邏輯與運算,獲得的結果剛好就是網段地址。路由器就是這麼工做的。這是爲何叫掩碼。
子網與網段的關係就至關於切開的扇形餅與沒切開大塊圓形大餅的關係。這樣子網掩碼的做用就是掩蓋去圓形大餅的屬性,露出扇形餅的屬性。編碼

子網掩碼的兩種表示方法路由

1. 點分十進制。eg:255.255.0.0或者255.255.255.0路由器

2. 在IP地址後加上"/"符號以及1-32的數字,其中1-32的數字表示子網掩碼中網絡標識位的長度。eg:192.168.1.1/24,表示掩碼位爲24位,每一個點分是8位,點分最大值是2^8 = 256 轉化成點分就是 255.255.255.0。二進制

子網IP地址範圍和點分掩碼的計算方法

192.168.33.50/29數據

1. 計算可用IP數工作

掩碼最多32位,(每一個點是8位,4*8),那麼還剩32 - 29 = 3 位, 3位能夠表示 2 ^ 3 = 8個IP地址,除去首尾兩個,真正可用的就是 6個。數字

2. 計算IP範圍。

IP末尾是50,上面算出有8個可用的IP地址,50 \ 8 = 6 , 6 * 8 = 48 ,網絡地址從192.168.33.48-192.168.33.55 總共8個,去掉首尾兩個,恰好6個。

3. 計算點分子網掩碼

看最後一位,最多2 ^ 8 = 256個,第一步知道咱們表示8個IP,那麼256 - 8 = 248,對應的掩碼就是 256 - 2 ^ (32 -29) = 248 , 255.255.255.248

 更復雜點的:

上面的是簡單的c類地址,表示的網絡地址有限,那若是想表示更多的呢?

192.168.33.50/22

按照上面的算法 32 - 22 =  10 ,每一個點分只有8位,最後一個點分表示不完,那就只能取倒數第二個點分的後 10 -8 =2 位,最後一個點分只能表示256個地址,還不夠,因此不用遮掩這個段了,就是0,算倒數第二個點分 第二個點分用2位,那麼表示 2 ^ 2 = 4個網絡地址,256 - 4 = 252,對應的掩碼就是 255.255. 252.0

同理:4個網絡地址,倒數第二個點分,33 \ 4 = 8 , 8 * 4 =32, 那麼網絡地址範圍就是:

192.168.32.0 - 192.168. 35. 255。

看看對不對:

192.168.32.0 - 192.168.32.255

192.168.33.0 - 192.168.32.255

192.168.34.0 - 192.168.32.255

192.168.35.0 - 192.168.32.255

 

256 * 4 = 1024 = 2 ^ 10

相關文章
相關標籤/搜索