本篇文章转自
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 地址。
下面做详细展开,需要做一些基础知识的铺垫:
IP地址的种类
需要上网,连接上 internet,必须要有公共 ip,它是别人分配给你的,我们可以百度自己的公共 IP 是多少,如:
因为人类依赖十进制,所以这里的 IP 地址用十进制的方式表示要让机器识别,还是得转为二进制:
- 十进制 IP 地址:
14.145.184.184
; - 二进制 IP 地址:
00001110 . 10010001 . 10111000 . 10111000
;
这种 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 亿的 IPv4 地址,预计将会在 2020 年年前后分配完毕 (具体数字记不清)。
为了解决公网 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 地址的分类】。
看了我自己电脑的私有IP:
它属于 C 类型的网络。
再看问题“10.10.10.1/24
和 10.10.10.1/25
是同一个 IP 地址吗?”,这里可以看到,10 开头的,自然就是 A 类型的网络了。
IP地址是怎样构成的?
寻找 IP 地址,可以用快递寻找门牌号码类比每栋楼有楼号,比如 4 号楼,5 号楼等。
每栋楼有门牌号,比如 101 号房,102 号房等 IP 地址同样有两部分地址组成,分别是网络地址(网络号)和主机地址(主机号)。
不同的分类(A、B、C)划分的网络号和主机号是不同的,这里有个表:
只要 IP 地址的网络号(network ip,紫色)相同,我们就把这几个 IP 地址称之为在同一个网段彼此可以相互访问,比如联机打游戏当主机号全为 0 的时候,代表着整栋楼第一个房子,又叫做网络地址(network ip),当主机号全为 1 的时候,代表着整栋楼最后一个房子,又叫做广播地址(broadcast ip)。
子网掩码是啥?有什么作用?
还是用楼房号来打比方好了,在现实中,我们可以这样表示,1 号楼 201 房间,IP 地址中,数字都是连在一起的,10101010.10101010.10101010.00000001
,我们怎么知道哪部分是楼号?哪部分是房间号呢?怎样划分呢?答案是:
- 通过Netmask 子网掩码~
掩码的意思,就是把一部分的代码掩盖住,同时露出另一部分代码,我想到佐罗用黑布把眼睛掩盖住只露出半张脸的样子...........
子网掩码,是为了掩盖住“网络号net_id”,暴露出“主机号host_id”:
- 用 1 表示掩盖;
- 用 0 表示暴露;
回到题目 IP 地址写法10.10.10.1/24
和 10.10.10.1/25
,24 说明了子网掩码遮住了 24 位,也说明了这个 IP 的“网络号network id”是 24 位,网段占了 24 位,25 说明了子网掩码遮住了 25 位,也说明了这个 IP的“网络号 network 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
,所以 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
。
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 地址。
评论区