为什么要有子网掩码

网络上,数据从一个地方传到另外一个地方,是依靠 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

linux子网掩码和ip计算,子网掩码的计算 - winglok的个人页面 - OSCHINA - 中文开源技术交流社区...相关推荐

  1. 用计算机做科学计算是绝对精确的吗,科学计算与数学建模 - osc_3gfjojb2的个人空间 - OSCHINA - 中文开源技术交流社区...

    一.数学的作用 数学是科学之母,科学技术离不开数学,它通过建立数学模型与数学产生紧密联系.数学又以各种形式应用于科学技术各领域.数学擅长于处理各种复杂的依赖关系,精细刻画量的变化以及可能性的评估.它可 ...

  2. Linux环境变量隔代,python基础题 - osc_vwtuqll7的个人空间 - OSCHINA - 中文开源技术交流社区...

    47.metaclass作用?以及应用场景? metaclass,直译为元类,简单的解释就是:当我们定义了类以后,就可以根据这个类创建出实例, 所以:先定义类,然后创建实例.但是如果我们想创建出类呢? ...

  3. linux中nfs存储权限,NFS权限管理 - 麦苗的个人空间 - OSCHINA - 中文开源技术交流社区...

    对于NFS中权限管理的理解,首先需要熟悉Linux中关于文件或文件夹的访问控制策略,其次要认识NFS中服务器如何控制客户端的访问. 默认情况下,Linux对于文件或文件夹的权限管理分为所属者(ownu ...

  4. linux rmi端口,RMI 两个端口 - 差不多先生的个人空间 - OSCHINA - 中文开源技术交流社区...

    在项目中使用rmi,发布到linux,unix,由于开了防火墙.需要配置防火墙端口.刚开始配置了一个固定端口,死都连接不通,后来同netstat -antup |grep pid 查看进程监听的端口, ...

  5. linux fflush函数,fflush - wwliu的个人页面 - OSCHINA - 中文开源技术交流社区

    概述 函数名: fflush 功 能: 清除文件缓冲区,文件以写方式打开时将缓冲区内容写入文件 头文件: #include 原型:int fflush(FILE *stream) #include # ...

  6. linux vi刷新页面,vim的神级配置 - bubifengyun的个人页面 - OSCHINA - 中文开源技术交流社区...

    有传言:vim是编辑器之神,(xxx)是神之编辑器.意思就是说vim是编辑器中最好的,而一般的大神级别的人都是使用(xxx)这个编辑器.咱不是神人,就使用vim吧.该配置是从别处搞来的,并作了部分修改 ...

  7. 重定向linux编译,linux重定向 - 悟性的个人页面 - OSCHINA - 中文开源技术交流社区...

    linux重定向: 0.1和2分别表示标准输入.标准输出和标准错误信息输出,可以用来指定需要重定向的标准输入或输出. 在一般使用时,默认的是标准输出,既1.当我们需要特殊用途时,可以使用其他标号.例如 ...

  8. linux命令eric,linux命令杂记 - erichd的个人页面 - OSCHINA - 中文开源技术交流社区

    查找最近24小时内修改过的文件 find / -type f -mtime 0 将nginx日志输出成html报表 goaccess -f access.log-20151201 -a > /r ...

  9. linux冒泡算法程序,用蛮力法解决冒泡排序 - linux-tao的个人空间 - OSCHINA - 中文开源技术交流社区...

    冒泡排序是蛮力法的另一个经典体现. 算法思想:比较列表中相邻的元素,如果是逆序的话,就交换他们的位置.重复多次之后,最大的元素就排到了最后一个位置.第二遍操作将第二个元素排到了倒数第二个位置上,这样一 ...

最新文章

  1. 有关完全二叉树求节点数和前缀树求字符串是否重复的两道算法题
  2. idea中没有j2ee_idea神器功能大全
  3. [置顶]LGame框架问题汇总,有疑问请发至此文
  4. 操作系统概念学习笔记一 进程
  5. 【渝粤教育】电大中专电商运营实操 (5)作业 题库
  6. qt初步---Qt实现软件从Windows到Linux跨平台
  7. 【运动学】基于matlab斜抛物体斜坡射程【含Matlab源码 980期】
  8. Word打开后出现乱码
  9. 【dp-背包】背包问题九讲
  10. 将内存ffff:0~ffff:b单元中的数据复制到0:200~0:20b单元中
  11. tweak环境安装及编写
  12. 滴滴-2019+快手2020(A)-校园招聘算法工程师笔试题
  13. Angular 4入门教程系列:14:PrimeNG的使用方式
  14. Dubbo Cloud Native 实践与思考 1
  15. ubuntu16.04不能访问新加卷
  16. 微信小程序video组件调用腾讯视频的解决方案
  17. 员工考勤管理系统html,一种员工考勤管理系统的制作方法
  18. 纯CSS实现粉红爱心动画
  19. Joomla安装及使用
  20. 【一文弄懂】优先经验回放(PER)论文-算法-代码

热门文章

  1. 收藏文章 写的很好 可惜有些还是看看不懂额。。。
  2. Android事件机制全然解析
  3. [置顶] Android玄铁剑之TextView之图文并茂
  4. delphi listbox 使用
  5. 第12章类和动态内存分配
  6. python连接传感器_树莓派4B之光敏传感器模块(python3)
  7. Linux指纹识别程序,linux上应用指纹识别(转载)
  8. service network restart重启失败_NodeManager 启动失败问题处理
  9. executorservice 重启_iPhone7使用久了突然手机自动重启,多半原因出在这儿,进来看看...
  10. 跨域问题_跨域问题如何解决?