子网掩码的理解
本文最后更新于:2024年8月27日 上午
首先子网掩码这名字取得很好,它是用来划分子网的网段和遮掩部分IP地址。换个说法就是:它是用来划分IP地址中哪一部分是网络号,哪一部分是机器号。
那么,问题来了 :
怎么划分子网网段?
为什么要遮掩IP地址?怎么个遮掩法?
现在我们有这么个IP地址:192.168.1.129
我们并不知道它的网络号,也不知道它属于哪部分子网网段。我们现在就需要一个东西来划分出子网网段,这个东西就叫:子网掩码。
再,我们给出具体子网掩码:255.255.255.0
什么要这么给?因为子网掩码的长度要和IP地址相同32位,每8位预先被划分为一段。255的二进制就是1111 1111。
那么我们把子网掩码设置为255.255.255.193行不行?
这需要看它的二进制,子网掩码还需要满足一个条件才可以使用:它的二进制中1和0必须是连续
的。
255.255.255.193的二进制:
1111 1111.1111 1111.1111 1111.1100 0001
可以看出它1并不连续,所以255.255.255.193不能作为子网掩码使用。
255.255.255.0就很符合条件。
那子网掩码怎么用?
答:用与运算来遮掩IP地址。1&1=1、1&0=0、0&0=0、0&1=0
IP地址:192.168.1.129
二进制:
1100 0000.1010 1000.0000 0001.1000 0001
子网掩码:255.255.255.0
二进制:
1111 1111.1111 1111.1111 1111.0000 0000
计算:
1 |
|
计算后的这段二进制代码相比于原来的IP地址,后面8位被用0遮掩了。
为什么要遮掩?因为我们不必关心后面8位是1还是0了。子网网段已经被划分出来了。
1100 0000.1010 1000.0000 0001.0000 0000的十进制:192.168.1.0
也就是说,从192.168.1.0到192.168.1.255都是同一个子网网段,里面的0-255号可以分配给不同的机器,并且它们之间可以直接相互访问。
0—255号都是机器的号码,IP地址显示的就是其中129号。
192.168.1.0就是所谓的网络号,也可以写作192.168.1或者192.168.1.0\24(24指的是IP地址中有24位未被遮掩)
IP地址的意思就很明白了,网段(网络号)加上机器号码。同一个IP地址根据不同子网掩码,会划分出不同的网络号和机器号。
—————————————————————————————————————
但是,现在就出现了个问题,我子网掩码的最后8位全是0,要是最后8位不全为0怎么办?又是什么意思呢?
现在我们就要看上面子网掩码为255.255.255.0的时候机器号码是从0到255的,那如果我想在0到255里再划分一部分呢?
给出新IP地址:192.168.1.188 再给出新的子网掩码:255.255.255.224
现在IP的网络号就不是192.168.1.0了,不再是网段192.168.1.0到192.168.1.255了
1 |
|
不再是24位未被遮掩了,而是27位未被遮掩。被遮掩的后5位,我们不必再关心它是1还是0了。
这就意味着:后5位不论怎么变换,都是在同一个网段里。
后5位的变化是在
1100 0000.1010 1000.0000 0001.1010 0000
到
1100 0000.1010 1000.0000 0001.1011 1111
之间的。
它的十进制:192.168.1.160到192.168.1.191是由新的子网掩码划分出来的子网网段。
我们称192.168.1.160\27是它的网络号,它的机器号是在160到191之间任意分配出去。之前的IP地址:192.168.1.188属于其中。
总结:子网掩码就是用来遮掩IP地址并划分网段的工具,根据遮掩的位数不同来划分不同的网段,不能单独看待。
📢📢📢:文章来源于知乎用户纪言,修改了几处表述不恰当的地方。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!