子网掩码是作为ip地址的标识,还是本身就是ip地址的一部分?
例如10.10.10.1/24和10.10.10.1/25是同一个ip地址吗?

作者:知乎用户
链接:https://www.zhihu.com/question/29723388/answer/66737890
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

10.10.10.1/24 和 10.10.10.1/25
一个是子网掩码为24的10.10.10.1的IP地址
一个是子网掩码为25的10.10.10.1的IP地址
表面上两个IP地址是一样的,但因为子网掩码的不同,导致网段的不同
好比一号楼有201号房间,二号楼也有201房间,但这两个房间,不是同一个房间
10.10.10.1/24 和 10.10.10.1/25也是两个IP地址

-------------------------------------------------------------------------------
详细展开,需要做一些基础知识的铺垫

1.IP地址的种类?
2.IP地址是怎样构成的?
3.子网掩码是啥?
4.10.10.10.1/24和10.10.10.1/25是啥?

需要上网,连接上internet,必须要有公共ip,它是别人分配给你的

我们可以百度自己的公共IP是多少,地址:IP/域名查询 - IP归属地查询

<img src="https://pic3.zhimg.com/0a50c13d9c1bcb7a57e26e9ed325f2b2_b.png" data-rawwidth="536" data-rawheight="140" class="origin_image zh-lightbox-thumb" width="536" data-original="https://pic3.zhimg.com/0a50c13d9c1bcb7a57e26e9ed325f2b2_r.png">

因为人类依赖十进制,所以这里的IP地址用十进制的方式表示

要让机器识别,还是得转为二进制

(十进制IP地址) 14.145.184.184

(二进制IP地址) 00001110 . 10010001 . 10111000 . 10111000

手算麻烦,使用在线软件方便多了 进制转换工具

<img src="https://pic4.zhimg.com/68521180286ea5cd003f3d44c4aaffbf_b.png" data-rawwidth="499" data-rawheight="69" class="origin_image zh-lightbox-thumb" width="499" data-original="https://pic4.zhimg.com/68521180286ea5cd003f3d44c4aaffbf_r.png">

这种IP方式的表示方法,叫做IPV4,就是通过4*8=32位来表示每个IP地址

这样的话,一共有多少个IP地址呢?

最小地址 00000000 00000000 00000000 00000000 也就是 0.0.0.0

最大地址 11111111 11111111 11111111 11111111 也就是 255.255.255.255

IPV4的方式,最多可以表示 255 * 255 * 255 * 255 = 4228250625 个ip地址 = 40亿

40亿的IPV4地址,预计将会在2020年年前后分配完毕 (具体数字记不清)

所以出现下图

<img src="https://pic4.zhimg.com/7db4bcee50f2a39857bef010ac38a2ff_b.png" data-rawwidth="585" data-rawheight="607" class="origin_image zh-lightbox-thumb" width="585" data-original="https://pic4.zhimg.com/7db4bcee50f2a39857bef010ac38a2ff_r.png">

为了解决公网IP地址不足的情况,于是发明了私有IP (Private IP)

比如一个家庭(公司)有几台电脑,每台电脑都拥有 私有IP,它们之间组成一个局域网

这几个私有IP,可以通过某些技术(NAT),共同使用一个公有IP

也就是说,一个公有IP,可以分出很多个很多个私有IP,这样IPV4不足的问题就解决了

私有IP为了更好的管理,分为3种类型

CLASS A:10.0.0.0 ~ 10.255.255.255
CLASS B:172.16.0.0 ~ 172.31.255.255
CLASS C:192.168.0.0 ~ 192.168.255.255

看了我自己电脑的私有IP

<img src="https://pic2.zhimg.com/26c5cc9b60d27b8ff7c546dd94ae1ae1_b.png" data-rawwidth="373" data-rawheight="407" class="content_image" width="373">

它属于C类型的网络

例如10.10.10.1/24和10.10.10.1/25是同一个ip地址吗

这里可以看到,10开头的,自然就是A类型的网络了

2.IP地址是怎样构成的?

寻找IP地址,可以用快递寻找门牌号码类比

每栋楼有楼号,比如4号楼,5号楼等
每栋楼有门牌号,比如101号房,102号房等

IP地址同样有两部分地址组成,分别是"网络地址(网络号)"和“主机地址(主机号)”

不同的分类(A,B,C)划分的"网络号"和“主机号”是不同的,这里有个表

<img src="https://pic3.zhimg.com/19a0962a77afbf2bb4ea25ffcb0de23a_b.png" data-rawwidth="642" data-rawheight="214" class="origin_image zh-lightbox-thumb" width="642" data-original="https://pic3.zhimg.com/19a0962a77afbf2bb4ea25ffcb0de23a_r.png">

只要IP地址的"网络号net_id(紫色)"相同,我们就把这几个IP地址称之为在同一个网段

彼此可以相互访问,比如联机打游戏

当主机号全为0的时候,代表着整栋楼第一个房子,又叫做网络地址 network ip

当主机号全为1的时候,代表着整栋楼最后一个房子,又叫做广播地址broadcast ip
(我得想想该怎么说)

3.子网掩码是啥?有什么作用?

还是用楼房号来打比方好了

在现实中,我们可以这样表示,1号楼201房间
IP地址中,数字都是连在一起的,10101010.10101010.10101010.00000001
我们怎么知道哪部分是楼号?哪部分是房间号呢?怎样划分呢?

答案是通过——Netmask 子网掩码

掩码的意思,就是把一部分的代码掩盖住,同时露出另一部分代码

我想到佐罗用黑布把眼睛掩盖住只露出半张脸的样子...........

<img src="https://pic2.zhimg.com/79b7eaf7a058f5509d7bc212a5a9eb69_b.png" data-rawwidth="263" data-rawheight="192" class="content_image" width="263">

子网掩码,是为了掩盖住“网络号net_id”,暴露出“主机号host_id”

用1表示掩盖
用0表示暴露

回到题目,IP地址写法:10.10.10.1/24 10.10.10.1/25

24说明了子网掩码遮住了24位,也说明了这个IP的“网络号net_id”是24位,网段占了24位

25说明了子网掩码遮住了25位,也说明了这个IP的“网络号net_id”是25位,网段占了25位

因为10.10.10.1/24 和 10.10.10.1/25的“网络号”不同,网段不同

而网络地址(第一个IP地址),通过IP地址(二进制)和子网掩码(二进制)进行与操作得出

10.10.10.1/24中的10.10.10.1二进制为 10101010.10101010.10101010.00000001 
10.10.10.1/24中的子网掩码为 11111111 11111111 11111111 00000000  即255.255.255.0
所以10.10.10.1/24中的网络地址为 10101010.10101010.10101010.00000000,即10.10.10.0
10.10.10.1/24中的广播地址为 10101010.10101010.10101010.11111111,即10.10.10.255  
所以这个网段里,能分配给主机使用的一共有254个IP地址,从10.10.10.1~10.10.10.254

计算规则

网络地址:把IP地址转成二进制和子网掩码进行与运算(逻辑乘法:0&0=0;0&1=0;1&0=0;1&1=1 )

广播地址:把网络地址的主机位全部换成1得到广播地址

ip地址等于网络地址加上主机地址

ip地址分类

A类

个A类IP地址是指, 在IP地址的四段号码中,第一段号码为网络号码,剩下的三段号码为本地计算机的号码。如果用二进制表示IP地址的话,A类IP地址就由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”。A类IP地址中网络的标识长度为8位,主机标识的长度为24位,A类网络地址数量较少,有126个网络,每个网络可以容纳主机数达1600多万台。

A类IP地址的子网掩码为255.0.0.0,每个网络支持的最大主机数为256的3次方-2=16777214台。

B类

一个B类IP地址是指,在IP地址的四段号码中,前两段号码为网络号码。如果用二进制表示IP地址的话,B类IP地址就由2字节的网络地址和2字节主机地址组成,网络地址的最高位必须是“10”。B类IP地址中网络的标识长度为16位,主机标识的长度为16位,B类网络地址适用于中等规模的网络,有16384个网络,每个网络所能容纳的计算机数为6万多台。

B类IP地址的子网掩码为255.255.0.0,每个网络支持的最大主机数为256的2次方-2=65534台。

C类

一个C类IP地址是指,在IP地址的四段号码中,前三段号码为网络号码,剩下的一段号码为本地计算机的号码。如果用二进制表示IP地址的话,C类IP地址就由3字节的网络地址和1字节主机地址组成,网络地址的最高位必须是“110”。C类IP地址中网络的标识长度为24位,主机标识的长度为8位,C类网络地址数量较多,有209万余个网络。适用于小规模的局域网络,每个网络最多只能包含254台计算机。

C类IP地址的子网掩码为255.255.255.0,每个网络支持的最大主机数为256-2=254台

10.10.10.1/25中的10.10.10.1二进制为10101010.10101010.10101010.00000001
10.10.10.1/25中的子网掩码为11111111 11111111 11111111 10000000
所以10.10.10.1/25中的网络地址为 10101010.10101010.10101010.00000000,即10.10.10.0
10.10.10.1/25中的广播地址为10101010.10101010.10101010.01111111,即10.10.10.127
(在网络地址变广播地址的时候,因为子网掩码掩盖了25位,所以只能最后27位变成1)
所以在这个网段能,能分配给主机使用的一共有126个地址,从10.10.10.1~10.10.10.126

10.10.10.1/24 和 10.10.10.1/25
一个是子网掩码为24的10.10.10.1的IP地址
一个是子网掩码为25的10.10.10.1的IP地址
表面上两个IP地址是一样的,但因为子网掩码的不同,导致网段的不同
好比一号楼有201号房间,二号楼也有201房间,但这两个房间,不是同一个房间
10.10.10.1/24 和 10.10.10.1/25也是两个IP地址

 
 
 
            子网掩码划分子网与主机位
 
 

IP地址10.145.129.20,掩码255.255.248.0,网络地址和广播地址怎么计算?

key:网络地址 10.145.128.0      广播地址 10.145.135.255
 
 
IP转换成二进制:00001010  10010001   10000001   00010010
掩码转换成二进制:11111111 11111111 11111000 00000000
IP与掩码相与得网络地址(全1为1,见0为0):00001010 10010001 10000000 00000000
网络地址转换成十进制为:10,145,128,0
看你的掩码把后24位的前13位划成了子网,后11位划成了主机,故:
广播地址则要把网络地址的主机位全换成1,得:00001010,10010001,10000111,1111111
广播地址转换成十进制为:10,145,135,255
首先由ip地址结合子网掩码可以看出的是这是一个由A类地址,“借用”13位的主机位而得到的子网,所以很轻易地得到
网络地址是:10.145.128.0,也即:00001010.10010001.10000 000.00000000(看出来没?前21(8+13)位是网络位,后11位是主机位)
至于广播地址,网络位+全为1的主机位,即得:00001010.10010001.10000 111.11111111
10进制表达方式就是10.145.135.255
能懂吧?
 
 

子网掩码与ip有实际关系吗?的更多相关文章

  1. csharp:获取 DNS、网关、子网掩码、IP

    /// <summary> /// DNS.网关.子网掩码.IP /// 涂聚文 2015 /// </summary> public class IPAddressStrin ...

  2. 阿里云专有网络配置以及交换机配置+ip、子网掩码、ip网段计算原理讲解

    在阿里云上购买ECS或者其他服务,如redis.polardb时,需要配置专有网络,阿里的文档写的总体上还是比较抽象的,没有一定的网络基础,会一脸懵. 所以这里我来进行专有网络和交换机的配置,以及ip ...

  3. 子网掩码与ip地址的关系

    1.什么是ip地址 在网络中,所有的设备都会被分配一个地址.这个地址就相当于某条路上的XX号XX房.其中[号]对应的号码是分配了整个子网的,而[房]对应的号码是分配给子网中的计算机的,这就是网络中的地 ...

  4. php和js根据子网掩码和ip计算子网

    php $ip = '192.168.6.1'; $mask = '255.255.2.0'; $sub_net = array();//子网 $ip_explode = explode('.', $ ...

  5. 【转】IP协议详解之子网寻址、子网掩码、构造超网

    子网寻址 1. 从两级IP地址到三级IP地址 <1>. IP地址利用率有时很低. <2>. 给每一个物理网络分配一个网络号会使路由表变得太大而使网络性能变坏. <3> ...

  6. 计算机网络: IP地址,子网掩码,默认网关,DNS服务器详解

    楔子: 以Windows系统中IP地址设置界面为参考(如图1), IP地址, 子网掩码, 默认网关 和 DNS服务器, 这些都是什么意思呢? 学习IP地址的相关知识时还会遇到网络地址,广播地址,子网等 ...

  7. ip 子网掩码 网关 DNS

    这一篇文章也很好: 原文引用于:  http://www.cnblogs.com/jiqing9006/p/3365939.html 内外网ip: IP地址: IPv4地址分为A.B.C.D.E五类, ...

  8. TCP/IP——内外网IP+子网掩码作用+PING(网络总结)

    目录: 1.如何区分内网IP和外网IP? 保留字段 2.子网掩码是起什么作用的? 将DNS和IP异或,表示哪段起作用 3.ping到底起什么作用? ping本地.ping远程 下面针对上面三个问题分别 ...

  9. TCP/IP协议原理与应用笔记04:子网掩码

    1. 子网掩码 是IP 参照物:分网段用的! 比如 192.168.0.1 和192.168.0.2(1).子网掩码为 255.255.255.0那么192.168.0.X 在同一个网段,能互相访问. ...

随机推荐

  1. 【BZOJ4278】[ONTAK2015]Tasowanie 后缀数组

    [BZOJ4278][ONTAK2015]Tasowanie Description 给定两个数字串A和B,通过将A和B进行二路归并得到一个新的数字串T,请找到字典序最小的T. Input 第一行包含 ...

  2. 修改MySQL命令提示符

    当前session可以直接用prompt修改 mysql> prompt \u@\h \d \r:\m:\s>PROMPT set to '\u@\h \d \r:\m:\s>'ro ...

  3. SpringMVC Controller介绍及常用注解

    一.简介 在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ,然后再把该Mo ...

  4. move_uploaded_file() 函数

    定义和用法 move_uploaded_file() 函数将上传的文件移动到新位置. 若成功,则返回 true,否则返回 false. 语法 move_uploaded_file(file,newlo ...

  5. 使用任意的输入流(InputStream)实例,包括字符串形式的文件路径或者 file:// 的 URL 形式的文件路径来配置

    mybatis – MyBatis 3 | 入门 http://www.mybatis.org/mybatis-3/zh/getting-started.html 从 XML 中构建 SqlSessi ...

  6. 自动化工具构建vue项目

    其实之前对vue的话也有过一段时间的学习,博客园也是写了5篇vue的学习笔记.但是一直是通过CDN的方式在html文件头部引入vue.js,然后实例化vue对象绑定Dom,写组件写方法.就算是在实际项 ...

  7. python 面向对象 私有属性

    __init__构造函数 self.name = name # 属性, 实例变量,成员变量,字段 def sayhi()# 方法, 动态属性 私有属性不对外看到 前面加上__ class role() ...

  8. 004-spring cache-声明性的基于XML的缓存

    一.概述 如果注释不是选项(不能访问源代码或没有外部代码),可以使用XML进行声明式缓存.因此,不是注释用于缓存的方法,而是从外部指定目标方法和缓存指令(类似于声明式事务管理建议). <!-- ...

  9. java反射获得泛型参数getGenericSuperclass():获取到父类泛型的类型

    public class Person<T> { } import java.lang.reflect.ParameterizedType; import java.lang.reflec ...

  10. python16_day28【crm只读、权限、堡垒机】

    一.只读 二.万能权限 三.堡垒机