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

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   所以计算机就会把这三台计算机视为是同一子网络,然后进行通讯的。

子网/子网掩码原理简介相关推荐

  1. javascript原理_JavaScript程序包管理器工作原理简介

    javascript原理 by Shubheksha 通过Shubheksha JavaScript程序包管理器工作原理简介 (An introduction to how JavaScript pa ...

  2. Nginx 反向代理工作原理简介与配置详解

    Nginx 反向代理工作原理简介与配置详解 测试环境 CentOS 6.8-x86_64 nginx-1.10.0 下载地址:http://nginx.org/en/download.html 安装 ...

  3. DeepLearning tutorial(1)Softmax回归原理简介+代码详解

    FROM: http://blog.csdn.net/u012162613/article/details/43157801 DeepLearning tutorial(1)Softmax回归原理简介 ...

  4. DeepLearning tutorial(3)MLP多层感知机原理简介+代码详解

    FROM:http://blog.csdn.net/u012162613/article/details/43221829 @author:wepon @blog:http://blog.csdn.n ...

  5. DeepLearning tutorial(4)CNN卷积神经网络原理简介+代码详解

    FROM: http://blog.csdn.net/u012162613/article/details/43225445 DeepLearning tutorial(4)CNN卷积神经网络原理简介 ...

  6. 【Android 异步操作】Handler ( 主线程中的 Handler 与 Looper | Handler 原理简介 )

    文章目录 一.主线程中的 Handler 与 Looper 二.Handler 原理简介 一.主线程中的 Handler 与 Looper Android 系统中 , 点击图标启动一个应用进程 , 就 ...

  7. 量子计算机编程原理简介 和 机器学习

    量子计算机编程原理简介 和 机器学习 本文翻译自D-Wave公司网站 www.dwavesys.com/en/dev-tutorial-intro.html D-wave公司在2007年就声称实现了1 ...

  8. DL之CNN:卷积神经网络算法简介之原理简介——CNN网络的3D可视化(LeNet-5为例可视化)

    DL之CNN:卷积神经网络算法简介之原理简介--CNN网络的3D可视化(LeNet-5为例可视化) CNN网络的3D可视化 3D可视化地址:http://scs.ryerson.ca/~aharley ...

  9. DL之CNN:卷积神经网络算法简介之原理简介(步幅/填充/特征图)、七大层级结构(动态图详解卷积/池化+方块法理解卷积运算)、CNN各层作用及其可视化等之详细攻略

    DL之CNN:卷积神经网络算法简介之原理简介(步幅/填充/特征图).七大层级结构(动态图详解卷积/池化+方块法理解卷积运算).CNN各层作用及其可视化等之详细攻略 目录 CNN 的层级结构及相关概念 ...

最新文章

  1. 在macOS 10.13.6上安装go 1.13.8实录
  2. 查看手机截图的坐标信息
  3. Spark RDD在Spark中的地位和作用如何?
  4. java 末级递归树_如何递归获取json里末级章节名称
  5. WEB API异常处理
  6. Ceph OSD处理客户端写操作处理流程
  7. 51单片机c语言正弦波,用51单片机产生正弦波,那个数据表怎么得到的?谢谢!...
  8. JS生成二维码,以下介绍3种方法
  9. V-layout 卡顿消除
  10. 《算法和数据结构》学习路线指引
  11. matlab怎么使用 spm_vol,SPM12批量处理预处理数据
  12. xp系统怎么弄清微软服务器名称,xp系统如何做远程服务器呢
  13. HDU - 1546 Idiomatic Phrases Game(dijkstra最短路)
  14. wkhtmltopdf参数详解
  15. 边云协同的优点_探析云边协同的九大应用场景
  16. 《从零构建前后分离的web项目》:前端完善 - 手把手教你快速构建网站布局
  17. 明星志愿3入门经典教程
  18. Linux 设备驱动
  19. HNU程序设计-图书馆信息管理系统设计以及实验报告
  20. 数学术语——指数的发展历程

热门文章

  1. 同步与异步系列之二 导读目录
  2. rsync算法原理及使用
  3. VSTS TFS 强制删除签出锁定项 解除 锁定
  4. 一步步编写操作系统 08 bios跳转到神奇的内存地址0x7c00
  5. android contentprovider api,Content Provider Basics
  6. 用java查询excel表格_如何把java查询出的内容导入到excel表格
  7. 【JS 逆向百例】网洛者反爬练习平台第一题:JS 混淆加密,反 Hook 操作
  8. php新手用7.2,总结PHP升级7.2之后需要注意的事情
  9. 【HDU - 1301】Jungle Roads(并查集+最小生成树)(内附最小生成树两种算法 克鲁斯特尔算法amp;amp;普里姆算法)
  10. 升级bios_华硕B350PLUS升级BIOS更换AMD 3900X步骤