子网划分与CIDR(斜杠加数字的表示与IP 的关系)(改进)

子网和CIDR

将常规的子网掩码转换为二进制,将发现子网掩格式为连续的二进制1跟连续0,其中子网掩码中为1的部份表示网络ID,子网掩中为0的表示主机ID。比如255.255.0.0转换为二进制为11111111 11111111 00000000 00000000。

在前面所举的例子中为什么不用连续的1部份表示网络ID,连续的0部份表示主机ID呢?答案是肯定的,采用这种方案的IP寻址技术称之为无类域间路 由(CIDR)。CIDR技术用子网掩码中连续的1部份表示网络ID,连续的0部份表示主机ID。比如,网络中包含2000台计算机,只需要用11位表示 主机ID,用21位表网络ID,则子网掩码表示为11111111.11111111.11100000.00000000,转换为十进制则为 255.255.224.0。此时,该网络将包含2046台计算机,既不会造成IP地址的浪费,也不会利用路由器连接网络,增加额外的管理维护量。

CIDR表示方法:IP地址/网络ID的位数,比如192.168.23.35/21,其中用21位表示网络ID。

例1:192.168.23.35/21

 子网掩码:11111111 11111111 11111000 00000000则为255.255.248.0

网络ID:192.168.00010111.0(其中第三个字节红色部分表示网络ID,其他表示主机ID,网络ID是表示网络ID部份保持不变主机ID全部变为0)则网络ID为192.168.16.0

起始IP地址:192.168.16.1(主机ID不能全为0,全为0表示网络ID最后一位为1)

结束IP地址:192.168.00010111.11111110(主机ID不能全为1,全为1表示本地广播)则结束IP地址为:192.168.23.254。

例2:将163.135.0.0划分为16个子网,计算前两个子网的网络ID、子网掩码、起止IP地址。

第1步:用CIDR表示163.135.0.0/20,则子网掩码为255.255.240(11110000).0。

第2步:第一网络ID(子网掩码与IP地址与运算):163.135.0.0

    第一个IP地址:163.135.0.1 结束IP地址:163.135.15.254;

第3步:第二网络ID:163.135.16.0

第一个IP地址:163.135.16.1 结束IP地址:163.135.31.254。 

五、子网掩码和网络ID的快速计算方法

CIDR的子网掩码都是连续的1跟连接的0表示,则子网掩码有以下几种表示方法:

0000 0000   0

1000 0000   128

1100 0000   128+64=192

1110 0000   128+64+32=224

1111 0000   255-15=240

1111 1000   255-7=248

1111 1100   255-3=252

1111 1110   255-1=254

1111 1111   255

大家都知道11111111的十进制数为255,那么我们怎么来快速计算子网掩码呢?二进制的1=1,11=3,111=7,1111=15;那么 1111 1110=255-1,1111 1100=255-3,1111 1000=255-8,1111 0000=255-15这样是不是就很快呢?只要我们一旦确定子网掩码中有多少位表示网络ID,那么我们马上就可以写出子网掩码了。那么,对于1000 0000,1100 0000和1110 0000 我们又该怎么计算呢?27=8则1000 0000=128,1100 0000=128+64,1110 0000=128+64+32,所以我们不需要去记住每一个为多少,只需要做做简单的加减法就搞定子网掩码的计算。

网络ID的结果大家都知道网络ID部份不变,主机ID部分全部变为0,那么在计算网络ID时,首先看子网掩码中有多少位用来表示网络,相应在将IP 地址转换为二进制时就只转换前面几位,比如192.168.176.15/19,网络ID一共19位,则网络ID前两个字节为192.168.X.0发生 变化的为第三个字节。那么怎样快速计算出这个变化的X的值呢?我们知道第三字节只有三位表示网络ID,转换时176>128,第1位为 1,176-128=48<64,第2位为0,48>32第3位为1,剩下的计算就没有意义了,全都要转换为0,则网络ID为10100000,则网络 ID为192.168.160.0,这样计算反而出错的可能性很小。

eg.

200.100.48.0--200.100.55.0

超网IP为  200.100.48.0/21

48=0011 0 000

49=0011 0 001

...       ...

55=0011 0 111

除了标红的IP 二进制位  其他作为子网的时候都是1  那么就有21个

主题转自(http://www.2cto.com/net/201303/192100.html)

时间: 2024-10-30 05:37:43

子网划分与CIDR(斜杠加数字的表示与IP 的关系)(改进)的相关文章

详解IP地址后面斜杠加具体数字

hzhsan:通俗一点就是,斜杠后面的数字代表32位子网掩码(二进制形式)中前面的"1"的个数. 而且前面的"ip地址"也不是一个ip地址,而是一个ip网段.通过后面数字可以将前面的网段进一步细划分成具体的子网. 其实这个就是用CIDR的形式表示的一个网段,或者说子网. CIDR:无类别域间路由选择,Classless and Subnet Address Extensions and Supernetting 我们知道确定一个子网需要知道主机地址和子网掩码,但用C

IP地址后面斜杠加具体数字详解

其实这种形式就是用CIDR(无类别域间路由选择,Classless and Subnet Address Extensions and Supernetting))的形式表示的一个网段,或者说子网. 我们知道确定一个子网需要知道主机地址和子网掩码,但用CIDR的形式,可以简单得到两个数值.举例说吧,192.168.0.0/24”就表示,这个网段的IP地址从192.168.0.1开始,到192.168.0.254结束(192.168.0.0和192.168.0.255有特殊含义,不能用作IP地址)

正则表达式 反斜杠的匹配 2018-11-30

问题引入: 在学习正则表达式的过程中,遇到了一直无法正确匹配反斜杠\,初始使用的是下面两种方法: 使用普通字符串,匹配一个反斜杠,需要再用一个反斜杠来转义:\\ 使用带r的原始字符串,这样就不用再转义:r'\' 使用上面两种方法一直无法匹配 4\5 中的反斜杠,最终经过查询,发现自己理解错误,字符串存在转义,正则也存在转义 1. 字符串转义: 在字符串中,我们会用一反斜杠加特定的字符来表达一些特定的功能,比如,\n表示换行,\"表示双引号等等,而如果要输出反斜杠本身,则用\\如下所示: >

彻底搞懂反斜杠“\”和正斜杠"/"的区别

正斜杠,符号是"/";反斜杠,符号是"\". 在知乎中看到一个答案如下: 知乎用户:"在绝大多数地方,用的都是/(slash),包括Mac/Linux,也包括URL.你唯一需要记住的是,Microsoft这个怪鸡在自己的操作系统里面偏要用\(backslash),使得自己与众不同. Unix使用正斜杠/作为路径分割符,而Web应用最先是使用在Unix系统上面,所以目前所有的网络地址都采用正斜杠/作为分隔符. Windows由于使用正斜杠/作为DOS命令提示

JS正则四个反斜杠的含义

我们首先来看如下代码,在浏览器中输出的是什么? // 在浏览器中输出的 console.log('\\'); // 输出 \ console.log('\\\\'); // 输出 \\ 一:js正则直接量语法对 反斜杠的含义 1.1  \. 一个反斜杠加点号(.)  var reg1 = /^\.$/g; console.log(reg1.test('.')); // 输出 true, 因为 \. 是对元字符.进行转义,因此匹配字符串中的. console.log(reg1.test('a'))

用cp命令拷贝文件,源目录后带不带斜杠的区别

当我还是Linux超级傻白的时候,需要拷贝一个很大的数据集,然后再拷贝源文件夹的后面跟了一个前倾斜杠,然后就发现居然拷贝的是整个文件夹里的东西,而不是文件夹本身.事儿倒是不大,我重新建一个文件夹,把这些东西挪进去就行了.后来,等我记住这一招后,发现有的时候居然也不是这样.于是,做做实验,干脆搞搞清楚. 两个文件夹,各自内容如下: 使用命令cp –R dir_src/ dir_target后,结果如下: 重做一遍,使用cp –R dir_src dir_target后,结果如下: 于是我就记住了这

路由寻址--子网划分/CIDR

路由器一定要实现:可以从路由表中查出应当到达其他网络的下一条路由器,所以一定要指明在整个网络下到达所有其他网络的下一条地址.子网选择.子网路由选择的问题:子网划分的思想: 一个单位划分子网后,对内显示多个网络,对外显示为一个网络 有二级IP变为三级IP 凡是其他网络发到本单位的IP数据包,仍然是通过本单位的网络号找到的,但是路由器在收到IP数据包后,再按照目的网络和子网号找到主机 注:对一个网络进行第一次划分是时,其子网掩码都是相同的子网划分是建立在分类网络上的,而cidr是一种无分类编制,我不

wordpress代码实现分类目录末尾加斜杠/

wordpress代码实现分类目录末尾加斜杠/ ,最近看到许多同学使用wordpress时候有很多问题,比如就添加斜杠来说:很多博客都使用了插件形式,我们知道插件形式会拖慢速度,第二因素:别人编辑的插件长久时间不更新,导致更PHP开源程序不融洽.那么为了用代码实现小慕给大家贴出了以下代码,直接复制到主题的functions.php文件下即可. 1 <?php 2 //wordpress目录自动增加斜杠 3 if (is_admin()) return; 4 $permalink_structur

ereg()替换为preg_match(),ereg_repalce替换为preg_replace得加斜杠

PHP 5.3 ereg() 无法正常使用,提示“Function ereg() is deprecated Error”是因为它长ereg 函数进行了升级处理,需要像preg_match使用/ /来规则了,当然也是php5.3把ereg给废掉的节奏了. PHP 5.3 ereg() 无法正常使用,提示“Function ereg() is deprecated Error”.问题根源是php中有两种正则表示方法,一个是posix,一个是perl,php6打算废除posix的正则表示方法所以后来