文档章节

子网掩码讲解

fengsehng
 fengsehng
发布于 2016/11/09 09:12
字数 2214
阅读 8
收藏 0
点赞 0
评论 0

定义:

子网掩码(subnet mask)又叫网络掩码、地址掩码、子网络遮罩,它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。

子网掩码是一个32位地址,用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在远程网上。

默认子网掩码:

子网掩码——屏蔽一个IP地址的网络部分的“全1”比特模式。对于A类地址来说,默认的子网掩码是255.0.0.0;对于B类地址来说默认的子网掩码是255.255.0.0;对于C类地址来说默认的子网掩码是255.255.255.0。

构成

互联网是由许多小型网络构成的,每个网络上都有许多主机,这样便构成了一个有层次的结构。IP地址在设计时就考虑到地址分配的层次特点,将每个IP地址都分割成网络号和主机号两部分,以便于IP地址的寻址操作。

IP地址的网络号和主机号各是多少位呢?如果不指定,就不知道哪些位是网络号、哪些是主机号,这就需要通过子网掩码来实现。

规则

子网掩码的设定必须遵循一定的规则。与二进制IP地址相同,子网掩码由1和0组成,且1和0分别连续。子网掩码的长度也是32位,左边是网络位,用二进制数字“1”表示,1的数目等于网络位的长度;右边是主机位,用二进制数字“0”表示,0的数目等于主机位的长度。这样做的目的是为了让掩码与ip地址做按位与运算时用0遮住原主机数,而不改变原网络段数字,而且很容易通过0的位数确定子网的主机数

(2的主机位数次方-2,因为主机号全为1时表示该网络广播地址,全为0时表示该网络的网络号,这是两个特殊地址)

。只有通过子网掩码,才能表明一台主机所在的子网与其他子网的关系,使网络正常工作。

定义子网掩码

用于子网掩码的位数决定于可能的子网数目和每个子网的主机数目。在定义子网掩码前,必须弄清楚本来使用的子网数和主机数目。

定义子网掩码的步骤为:

A、确定哪些组地址归我们使用。比如我们申请到的网络号为 “210.73.a.b”,该网络地址为c类IP地址,网络标识为“210.73.a”,主机标识为“b”。

B、根据我们所需的子网数以及将来可能扩充到的子网数,用宿主机的一些位来定义子网掩码。比如我们需要12个子网,将来可能需要16个。用第四个字节的前四位确定子网掩码。前四位都置为“1”,即第四个字节为“11110000”,这个数我们暂且称作新的二进制子网掩码。

C、把对应初始网络的各个位都置为“1”,即前三个字节都置为“1”,则子网掩码的间断二进制形式为:“11111111.11111111.11111111.11110000” 。

D、把这个数转化为间断十进制形式为:“255.255.255.240” 。

如何用子网掩码得到网络 / 主机地址

过程如下:

  1. 将 IP 地址与子网掩码转换成二进制;

  2. 将二进制形式的 IP 地址与子网掩码做 ’ 与 ’ 运算,将答案化为十进制便得到网络地址;

  3. 将二进制形式的子网掩码取 ’ 反 ’ ;

  4. 将取 ’ 反 ’ 后的子网掩码与 IP 地址做 ’ 与 ’ 运算,将答案化为十进制便得到主机地址。

下面我们用一个例子给大家演示:

假设有一个 I P 地址: 192.168.0.1

子网掩码为: 255.255.255.0

化为二进制为: I P 地址 11000000.10101000.00000000.00000001

子网掩码 11111111.11111111.11111111.00000000

将两者做 ’ 与 ’ 运算得: 11000000.10101000.00000000.00000000

将其化为十进制得: 192.168.0.0

这便是上面 IP 的网络地址,主机地址以此类推。

如何计算子网数量?

这个问题大家会常常提到,还是从子网掩码入手,主要有两个步骤:

  1. 观察子网掩码的二进制形式,确定作为子网号的位数 n ;

  2. 子网数量为 2^n - 2 。(为什么减 2 ,继续往下看)

举个例子来说,比如有这样一个子网掩码: 255.255.255.224 其二进制为:

11111111.11111111.11111111.11100000

可见 n=3,2 的 3 次方为 8 ,说明子网地址可能有

如下 8 种情况:

000 001 010 011 100 101 110 111

但其中代表网络自身的 000 ;代表广播地址的 111 是被保留的,所以要减 2 。

如何计算总主机数量,子网内主机数量?

总主机数量=子网数量×子网内主机数量

再用一个例子给大家说明,比如子网掩码为 255.255.255.224

上面的讨论知道它最多可以划分 6 个子网,那么每个子网内最多有多少个主机呢?其实上面我已经给大家算过了,由于网络被划分为 6 个子网,占用了主机号的前 3 位,且是 C 类地址,则主机号只能用 5 位来表示主机号,因此子网内的主机数量=( 2 的 5 次方)- 2 = 30.

因此通过这个子网掩码我们可以算出这个网络最多可以标识 6*30=180 个主机(可见,在化分子网后,整个网络所能标识的主机数量将减少)。

计算方式

由于子网掩码的位数决定于可能的子网数目和每个子网的主机数目。在定义子网掩码前,必须弄清楚本来使用的子网数和主机数目。

根据子网数

利用子网数来计算
在求子网掩码之前必须先搞清楚要划分的子网数目,以及每个子网内的所需主机数目。

1)将子网数目转化为二进制来表示
2)取得该二进制的位数,为 N
3)取得该IP地址的类子网掩码,将其主机地址部分的前N位置1 即得出该IP地址划分子网的子网掩码。
如欲将B类IP地址168.195.0.0划分成27个子网:
1)27=11011
2)该二进制为五位数,N = 5
3)将B类地址的子网掩码255.255.0.0的主机地址前5位置1(B类地址的主机位包括后两个字节,所以这里要把第三个字节的前5位置1),得到 255.255.248.0
即为划分成27个子网的B类IP地址 168.195.0.0的子网掩码(实际上是划成了32-2=30个子网)。
这一段介绍的是旧标准下计算的方法,关于旧的标准后文在介绍,在新标准中则可以先将27减去1,因为计算机是从0开始计算的,从0到27实际上是有28个,所以说如果需要27个就需要将27减去1。

根据主机数

利用主机数来计算

1)将主机数目转化为二进制来表示
2)如果主机数小于或等于254(注意去掉保留的两个IP地址),则取得该主机的二进制位数,为 N,这里肯定N<8。如果大于254,则 N>8,这就是说主机地址将占据不止8位。
3)使用255.255.255.255来将该类IP地址的主机地址位数全部置1,然后从后向前的将N位全部置为 0,即为子网掩码值。
如欲将B类IP地址168.195.0.0划分成若干子网,每个子网内有主机700台:
1) 700=1010111100
2)该二进制为十位数,N = 10
3)将该B类地址的子网掩码255.255.0.0的主机地址全部置1,得到255.255.255.255
然后再从后向前将后10位置0,即为: 11111111.11111111.11111100.00000000
即255.255.252.0。这就是该欲划分成主机为700台的B类IP地址168.195.0.0的子网掩码。

参考:
http://baike.baidu.com/view/878.htm
http://blog.csdn.net/jason314/article/details/5447743

我的微信二维码如下,欢迎交流讨论

这里写图片描述

欢迎关注《IT面试题汇总》微信订阅号。每天推送经典面试题和面试心得技巧

微信订阅号二维码如下:

这里写图片描述

© 著作权归作者所有

共有 人打赏支持
fengsehng
粉丝 4
博文 284
码字总数 214494
作品 0
朝阳
程序员
网络管理基础

之前写了篇文章讲解了IPv4地址跟无符号整型的相互转换:PHP: 详解ip2long和long2ip 。本篇将详细讲解IPv4地址的分类和子网、子网掩码以及单播、广播和多播。本文只从IPv4的角度去考虑问题,不...

陈亦 ⋅ 2014/02/12 ⋅ 2

RIP协议的详细讲解

RIP协议 RIP协议 在所有路由器上启动RIP协议,路由器便会自动向邻居通告自己所知道的路由信息,同时接收邻居通告过来的路由信息,最终自动建立完整的路由表。 1. 路由信息的通告: 每30秒周期...

天涯悠客 ⋅ 2015/01/11 ⋅ 0

子网数、主机数与子网掩码的关系

直接拿实际的例子说吧,这样容易理解。 1、利用子网数目计算子网掩码 把B类地址172.16.0.0划分成30个子网络,它的子网掩码是多少? ①将子网络数目30转换成二进制表示11110 ②统计一下这个二...

taotie_ksl ⋅ 2015/05/11 ⋅ 0

IP分配及网段划分

ipv4地址分为A,B,C,D,E类: 参考文档: A类:1.0.0.0~126.255.255.255,默认子网掩码/8,即255.0.0.0(其中127.0.0.0~127.255.255.255为环回地址,用于本地环回测试等用途);B类:128.0.0.0~191.25...

想飞的鱼8 ⋅ 2017/09/16 ⋅ 0

ip的划分,超详细.[经典]

IP和子网掩码 我们都知道,IP是由四段数字组成,在此,我们先来了解一下3类常用的IP A类IP段 0.0.0.0 到127.255.255.255 B类IP段 128.0.0.0 到191.255.255.255 C类IP段 192.0.0.0 到223...

长平狐 ⋅ 2012/09/03 ⋅ 0

ip的划分,超详细

ip的划分,超详细. IP和子网掩码 我们都知道,IP是由四段数字组成,在此,我们先来了解一下3类常用的IP A类IP段 0.0.0.0 到127.255.255.255 B类IP段 128.0.0.0 到191.255.255.255 C类IP段...

芒果龙 ⋅ 2011/10/24 ⋅ 0

让你一目了然的ip划分!

IP和子网掩码 我们都知道,IP是由四段数字组成,在此,我们先来了解一下3类常用的IP   A类IP段  0.0.0.0 到127.255.255.255   B类IP段  128.0.0.0 到191.255.255.255   C类IP段 ...

gaoge ⋅ 2008/09/02 ⋅ 0

IP子网划分与子网汇聚

1. 主机通信 在网络中不同主机之间通信的情况可以分为两种: ① 同一网段中两台主机之间相互通信。 ② 不同网段中两台主机之间相互通信。 为了区分这两种情况,进行通信的计算机就需要获取远...

5431039 ⋅ 2017/07/02 ⋅ 0

用python实现子网掩码地址与位长的相互转换

某日,使用centos7,发现网络配置时,子网掩码需要手动转换;因为centos7的网络配置方式为: nmcli connection enp4s0 modify ipv4.methord manual ipv4.address "192.168.1.120/24" ipv4.ga...

黑色时间 ⋅ 2016/11/22 ⋅ 0

子网划分实例分析(二)

上一节主要是了解了下IP地址以及子网划分的理论,这一节来结合具体的实例来分析,这个练习也是我从网上找的,感觉还不错。好了,开始了。 实例分析 1、192.168.1.0/24 使用掩码255.255.255.2...

笑看天空 ⋅ 2014/07/17 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

RabbitMQ学习以及与Spring的集成(三)

本文介绍RabbitMQ与Spring的简单集成以及消息的发送和接收。 在RabbitMQ的Spring配置文件中,首先需要增加命名空间。 xmlns:rabbit="http://www.springframework.org/schema/rabbit" 其次是模...

onedotdot ⋅ 13分钟前 ⋅ 0

JAVA实现仿微信红包分配规则

最近过年发红包拜年成为一种新的潮流,作为程序猿对算法的好奇远远要大于对红包的好奇,这里介绍一种自己想到的一种随机红包分配策略,还请大家多多指教。 算法介绍 一、红包金额限制 对于微...

楠木楠 ⋅ 25分钟前 ⋅ 0

Python 数电表格格式化 xlutils xlwt xlrd的使用

需要安装 xlutils xlwt xlrd 格式化前 格式化后 代码 先copy读取的表格,然后按照一定的规则修改,将昵称中的学号提取出来替换昵称即可 from xlrd import open_workbookfrom xlutils.copy ...

阿豪boy ⋅ 54分钟前 ⋅ 0

面试题:使用rand5()生成rand7()

前言 读研究生这3 年,思维与本科相比变化挺大的,这几年除了看论文、设计方案,更重要的是学会注重先思考、再实现,感觉更加成熟吧,不再像个小P孩,人年轻时总会心高气傲。有1 道面试题:给...

初雪之音 ⋅ 54分钟前 ⋅ 0

Docker Toolbox Looks like something went wrong

Docker Toolbox 重新安装后提示错误:Looks like something went wrong in step ´Checking if machine default exists´ 控制面板-->程序与应用-->启用或关闭windows功能:找到Hyper-V,如果处......

随你疯 ⋅ 今天 ⋅ 0

Guacamole 远程桌面

本文将Apache的guacamole服务的部署和应用,http://guacamole.apache.org/doc/gug/ 该链接下有全部相关知识的英文文档,如果水平ok,可以去这里仔细查看。 一、简介 Apache Guacamole 是无客...

千里明月 ⋅ 今天 ⋅ 0

nagios 安装

Nagios简介:监控网络并排除网络故障的工具:nagios,Ntop,OpenVAS,OCS,OSSIM等开源监控工具。 可以实现对网络上的服务器进行全面的监控,包括服务(apache、mysql、ntp、ftp、disk、qmail和h...

寰宇01 ⋅ 今天 ⋅ 0

AngularDart注意事项

默认情况下创建Dart项目应出现以下列表: 有时会因为不知明的原因导致列表项缺失: 此时可以通过以下步骤解决: 1.创建项目涉及到的包:stagehand 2.执行pub global activate stagehand或pub...

scooplol ⋅ 今天 ⋅ 0

Java Web如何操作Cookie的添加修改和删除

创建Cookie对象 Cookie cookie = new Cookie("id", "1"); 修改Cookie值 cookie.setValue("2"); 设置Cookie有效期和删除Cookie cookie.setMaxAge(24*60*60); // Cookie有效时间 co......

二营长意大利炮 ⋅ 今天 ⋅ 0

【每天一个JQuery特效】淡入淡出显示或隐藏窗口

我是JQuery新手爱好者,有时间就练练代码,防止手生,争取每天一个JQuery练习,在这个博客记录下学习的笔记。 本特效主要采用fadeIn()和fadeOut()方法显示淡入淡出的显示效果显示或隐藏元...

Rhymo-Wu ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部