子网/子网掩码原理简介

只有在一个网络号下的计算机之间才能"直接"互通,

IP地址是以网络号和主机号来标示网络上的主机的,只有在一个网络号下的计算机之间才能"直接"互通,不同网络号的计算机要通过网关(Gateway)才能互通


子网掩码的作用就是用来判断任意两个IP地址是否属于同一子网络,

为此IP网络还允许划分成更小的网络,称为子网(Subnet),这样就产生了子网掩码。子网掩码的作用就是用来判断任意两个IP地址是否属于同一子网络,这时只有在同一子网的计算机才能"直接"互通。那么怎样确定子网掩码呢?


怎样确定子网掩码呢?

要将一个网络划分为多个子网,因此网络号将要占用原来的主机位,如对于一个C类地址,它用21位来标识网络号,要将其划分为2个子网则需要占用1位原来的主机标识位。


子网掩码和IP地址一样有32bit,确定子网掩码的方法是其与IP地址中标识网络号的所有对应位都用"1",而与主机号对应的位都是"0"。如分为2个子网的C类IP地址用22位来标识网络号,则其子网掩码为:11111111 11111111 11111111 10000000即255.255.255.128。


下表是C类地址子网划分及相关子网掩码:  

子网位数 子网掩码 主机数 可用主机数  

1 255.255.255.128 128 126  

2 255.255.255.192 64 62  

3 255.255.255.224 32 30  

4 255.255.255.240 16 14  

5 255.255.255.248 8 6  

6 255.255.255.252 4 2

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

 定义子网掩码的步骤为:   

A、确定哪些组地址归我们使用。比如我们申请到的网络号为“210.73.124.89”,该网络地址为C类IP地址,网络标识为“210.73.124”,主机标识为“89”。  

 B、根据我们现在所需的子网数以及将来可能扩充到的子网数,用宿主机的一些位来定义子网掩码。比如我们现在需要12个子网,将来可能需要16个。用第四个字节的前四位确定子网掩码。前四位都置为“1”(即把第四字节的最后四位作为主机位,其实在这里有个简单的规律,非网络位的前几位置1原网络就被分为2的几次方个网络,这样原来网络就被分成了2的4次方16个子网),即第四个字节为“11110000”,这个数我们暂且称作新的二进制子网掩码。  

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

D、把这个数转化为间断十进制形式为:“255.255.255.240”  这个数为该网络的子网掩码。


1、利用子网数来计算

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

 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,得到 255.255.248.0   即为划分成27个子网的B类IP地址 168.195.0.0的子网掩码。


子网掩码(subnet mask)是每个使用互联网的人必须要掌握的基础知识,只有掌握它,才能够真正理解TCP/IP协议的设置。以下我们就来深入浅出地讲解什么是子网掩码。

子网掩码——屏蔽一个IP地址的网络部分的“全1”比特模式。对于A类地址来说,默认的子网掩码是255.0.0.0;对于B类地址来说默认的子网掩码是255.255.0.0;对于C类地址来说默认的子网掩码是255.255.255.0。利用子网掩码可以把大的网络划分成子网,也可以把小的网络归并成大的网络。


2、利用主机数来计算

   1)将主机数目转化为二进制来表示  2)如果主机数小于或等于254(注意去掉保留的两个IP地址),则取得该主机的二进制位数,为 N,这里肯定N<8。如果大于254,则 N>8,这就是说主机地址将占据不止8位。  3)使用255.255.255.255来将该类IP地址的主机地址位数全部置1,然后从后向前的将N位全部置为 0,即为子网掩码值。

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


子网掩码的设定必须遵循一定的规则。与二进制IP地址相同,子网掩码由1和0组成,且1和0分别连续。子网掩码的长度也是32位,左边是网络位,用二进制数字“1”表示,1的数目等于网络位的长度;右边是主机位,用二进制数字“0”表示,0的数目等于主机位的长度。这样做的目的是为了让掩码与ip地址做AND运算时用0遮住原主机数,而不改变原网络段数字,而且很容易通过0的位数确定子网的主机数(2的主机位数次方-2,因为主机号全为1时表示该网络广播地址,全为0时表示该网络的网络号,这是两个特殊地址)。只有通过子网掩码,才能表明一台主机所在的子网与其他子网的关系,使网络正常工作。


根据子网掩码格式可以发现,子网掩码有:0.0.0.0;255.0.0.0;255.255.0.0;255.255.255.0;255.255.255.255五种,其中A类地址的默认子网掩码为255.0.0.0;B类地址的默认子网掩码为255.255.0.0;C类地址的默认子网掩码为:255.255.255.0。


作用

  子网掩码是一个32位地址,是与IP地址结合使用的一种技术。它的主要作用有两个,一是用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在 局域网上,还是在远程网上。二是用于将一个大的IP网络划分为若干小的子网络。


和ip地址的关系

  以下均为C类网   子网掩码是用来判断任意两台计算机的IP地址是否属于同一子网络的根据。   最为简单的理解就是两台计算机各自的IP地址与子网掩码进行AND运算后,如果得出的结果是相同的,则说明这两台计算机是处于同一个子网络上的,可以进行直接的通讯。就这么简单。



运算示例

  运算演示之一:aa   

I P 地址 192.168.0.1   

子网掩码 255.255.255.0   

AND运算(AND运算法则:1 与1 = 1 ,1 与0 = 0 ,0 与1 = 0 ,0 与0 = 0 ,即当对应位均为1时结果为1,其余为0。)  

转化为二进制进行运算:  

I P 地址 11000000.10101000.00000000.00000001  

 子网掩码 11111111.11111111.11111111.00000000   

AND运算  11000000.10101000.00000000.00000000   

转化为十进制后为:  192.168.0.0  

 

运算演示之二:  

I P 地址 192.168.0.254   

子网掩码 255.255.255.0   

AND运算  

转化为二进制进行运算:   

I P 地址 11000000.10101000.00000000.11111110   

子网掩码 11111111.11111111.11111111.00000000   

AND运算  11000000.10101000.00000000.00000000   

转化为十进制后为:  192.168.0.0   


运算演示之三: 

 I P 地址 192.168.0.4   

子网掩码 255.255.255.0   

AND运算  

转化为二进制进行运算:   

I P 地址 11000000.10101000.00000000.00000100   

子网掩码 11111111.11111111.11111111.00000000   

AND运算  11000000.10101000.00000000.00000000   

转化为十进制后为:  192.168.0.0   

通过以上对三组计算机IP地址与子网掩码的AND运算后,我们可以看到它运算结果是一样的。均为192.168.0.0   所以计算机就会把这三台计算机视为是同一子网络,然后进行通讯的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/451355.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Map.putAll方法——追加另一个Map对象到当前Map集合

该方法用来追加另一个Map对象到当前Map集合对象&#xff0c;它会把另一个Map集合对象中的所有内容添加到当前Map集合对象。 语法 putAll(Map<? extends K,? extends V> m) m&#xff1a;一个Map集合对象。 典型应用 本示例创建一个Map集合对象&#xff0c;为它添加一…

Clipboard.js实现点击自动复制内容的功能

Clipboard.js实现点击自动复制内容的功能 点击非文本框&#xff0c;自动复制&#xff0c;代码如下value:<span id"bar" class"btn" data-clipboard-target"#bar">value</span> <script src"clipboard.min.js"></…

PLSQL的表窗口开启(不小心把PLSQL的表窗口关了,在哪里打开)

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 菜单条---工具---浏览器。

Django的视图层

一、视图函数 一个视图函数&#xff0c;简称视图&#xff0c;是一个简单的python函数&#xff0c;它接受Web请求并且返回Web响应。响应可以是一张网页的HTML内容&#xff0c;一个重定向&#xff0c;一个404错误&#xff0c;一个XML文档&#xff0c;或者一张图片...是任何东西都…

技术债务真正的代价

无论你是否喜欢把它想成技术债务或是对冲期权&#xff0c;在我们的周围都充斥着糟糕的代码&#xff0c;糟糕的决定&#xff0c;以及这些东西给我们每天的生活带来的影响。但是这些决定所带来的长期影响会是什么&#xff1f;我们真的做了明智的选择吗&#xff1f;Martin Fowler谈…

Java 8 Stream的性能到底如何?

Java 8提供的流的基于Lambda表达式的函数式的操作写法让人感觉很爽&#xff0c;笔者也一直用的很开心&#xff0c;直到看到了Java8 Lambda表达式和流操作如何让你的代码变慢5倍&#xff0c;笔者当时是震惊的&#xff0c;我读书少&#xff0c;你不要骗我。瞬间我似乎为我的Serve…

【linux】使用swap文件恢复非正常关闭的文件

前言 使用vim的时候&#xff0c;文件编辑过程中可能会出现bug&#xff0c;导致非正常关闭。为了保存刚刚修改的内容&#xff0c;需要对文件进行恢复。 操作过程 1.查看目录文件 zrjzrj-ThinkPad-E470:~/work/code/facedetection/src$ ll total 48 drwxrwxr-x 2 xxx xxx 4096 S…

js中比较时间字串大小

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 var start Date.parse($("#str_atBeginDate").val().replace("-","/"));var end Date.parse($("#…

MySQL运维系列 之 如何监控大事务

long transaction背景 大家有没有遇到这样的情况 某个SQL执行特别慢&#xff0c;导致整个transaction一直处于running阶段某个Session的SQL已经执行完了&#xff0c;但是迟迟没有commit&#xff0c;一直处于sleep阶段某个Session处于lock wait阶段&#xff0c;迟迟没有结束以上…

再见腾讯,创业我来了!!!

发现好久没有更新博客了&#xff0c;确实自从进了腾讯以后博客写的寥寥无几&#xff0c;一来是忙&#xff0c;而来是写博客没以前那么有成就感了。但是今天在半夜我又鬼使神差的想写了&#xff0c;因为尼玛欧冠巴萨 VS AC米兰还有将近一个小时&#xff0c;哥实在是等的蛋疼。有…

“docker-app”实用工具分享,大大提高 Compose 文件复用率

本文首发自“Docker公司”公众号&#xff08;ID&#xff1a;docker-cn&#xff09;编译丨小东每周一、三、五 与您不见不散&#xff01; Docker Compose 在开发人员中非常流行&#xff0c;它用来描述应用程序。目前&#xff0c;GitHub 上有超过30万个 Docker Compose 文件。通过…

9.11学习笔记

备注&#xff1a; <span class"kp"> <a href""></a></san>a 是特殊的 要改变a里面的颜色&#xff0c;必须直接给a设置&#xff0c;给a的父级设置不行 属性继承&#xff1a;明明是父级上设置样式&#xff0c;结果后代标签也跟着发生…

bootstrap-validator 验证一个标签同时验证另一个指定标签

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 如图 验证 str_atBeginDate 同时把 str_atTermDate 也作一次验证&#xff1a; 注意 红框中 " value “ 不能少&#xff0c;我之…

solr基本查询和高级查询

查询参数常用&#xff1a; q - 查询字符串&#xff0c;必须的。fl - 指定返回那些字段内容&#xff0c;用逗号或空格分隔多个。start - 返回第一条记录在完整找到结果中的偏移位置&#xff0c;0开始&#xff0c;一般分页用。rows - 指定返回结果最多有多少条记录&#xff0c;配…

送给“苦逼”的IT人系列

送给“苦逼”的IT人系列1&#xff1a;IT人的“钱”景以及收入的两道坎 虽然IT工作五花八门&#xff0c;而且年纪有老有少&#xff0c;但IT人的收入总体还是比较有规律的&#xff0c;很明显的可以看出有两道坎&#xff0c;分别是10W&#xff0c;和30W&#xff0c;当然&#xff…

锐动SDK应用于行车记录仪

方案架构手机端直播与录播功能忠实记录旅途中各种突发事件&#xff0c;还原事实真相&#xff0c;与家人和朋友分享沿途美景&#xff0c;一同感受美妙之旅。强大的视频编辑功能&#xff0c;像编辑图片一样给视频添加各种滤镜&#xff0c;配音&#xff0c;配乐&#xff0c;标题文…

Angular4 存储访问路由栈信息

一、实现方法1.可以通过路由守卫&#xff0c;可以给父级路由添加&#xff0c;若无父级路由&#xff0c;则需要每个路由都需要添加守卫&#xff0c;即每个页面都需要调该方法例如&#xff1a;jdb-app端上的tool.service.ts是每个页面都会调取的方法&#xff0c;可以将监听路由函…

python基本语法:字典

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 一、数据类型和对应符号&#xff1a; 元组 ( ) 列表 [ ] 字典 { } 二、字典是python中唯一的映射类型&#xff08;哈希表&#xf…

网址URL中特殊字符转义编码

字符 - URL编码值 空格 - %20" - %22# - %23% - %25& - %26( - %28) - %29 - %2B, - %2C/ - %2F: - %3A; - %3B< - %3C - %3D> - %3E? - %3F - %40\ - %5C| - %7C…

无病呻吟系列

无病呻吟1&#xff1a;给应届生的话 讲到第一份工作&#xff0c;自然要给应届毕业生一点建议。 其实这不是我的初衷&#xff0c;写这篇文章的主要目的&#xff0c;是给那些工作了3,5年&#xff0c;正进入迷茫期或已经进入迷茫期的人看的。至于应届毕业生&#xff0c;我想&…