dddabad7212e562de70061f62c7c11b7.png

专注分享Linux后台服务器开发,包括C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等等


一个IP地址一共有32位(二进制),其中靠前的某些位表示网络号,后面的某些位表示主机号,网络位数+主机位数=IP地址位数=32,简单来说,子网掩码就是网络号的位数,不会理解的,我可以举个例子:192.168.0.0/24,这一看我们就知道小型公司常用的网段,可用IP地址:192.168.0.1-192.168.0.254,子网掩码:255.255.255.0,斜杠后面的24指的是网络号,那么显然可用的主机号就变成8位,那么可用的主机数就是2的8次方-2=254。

计算子网掩码的方法就是:已知子网内IP数的多少,求出主机位的位数,用32减去主机位数就等于网络位数,也就是子网掩码。举最简单的例子。一个C类网络,包括256个主机位置,256是2 的8次方,所以主机位是8,那么网络位就是32-8=24,也就是说子网掩码是24位,用二进制表示就是11111111.11111111.11111111.00000000,换算成十进制就是255.255.255.0。再比如一个C类网络划分的子网,每个网络主机IP数是32, 而32是2的5次方,所以主机位是5,那么网络位就是32-5=27,也就是说子网掩码是27位,用二进制表示就是11111111.11111111.11111111.11100000,换算成十进制就是255.255.255.224。再比如一个B类网络划分的子网,每个网络主机IP数是1024, 而1024是2的10次方,所以主机位是10,那么网络位就是32-10=22,也就是说子网掩码是22位,用二进制表示就是11111111.11111111.11111100.00000000,换算成十进制就是255.255.252.0。


关注我,每天分享Linux后台服务器开发,包括C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐