1.IP地址的表示形式
事实上在计算机内部IP地址是32位比特位的数字,为了方便表示,就会采用点分十进制的形式
上面这个是万变不离其中的。
本节重点介绍 IPv4 地址,该地址以四个十进制数字(以句点分隔)的形式表示,例如 203.0.113.112。(IPv6 地址更长,并且使用字母和数字。)
每个 IP 地址都有两个部分。第一部分指示地址所属的网络。第二部分指定该网络中的设备。但是,“第一部分”的长度根据网络的类别而变化。
网络被分为不同的类别,标记为 A 到 E。A 类网络可以连接数百万台设备。B 类网络和 C 类网络的规模逐渐减小。(不经常使用 D 类和 E 类网络。)
让我们分解一下这些类如何影响 IP 地址的构造:
- A 类网络:第一个句点之前的所有内容均表示该网络,而其后的所有内容指定该网络中的设备。以 203.0.113.112 为例,网络用“203”表示,设备用“0.113.112”表示。
- B 类网络:第二个句点之前的所有内容均表示该网络。同样以 203.0.113.112 为例,“203.0”表示网络,“113.112”表示该网络中的设备。
- C 类网络:对于 C 类网络,第三个句点之前的所有内容均表示该网络。使用相同的例子,“203.0.113”表示 C 类网络,而“112”表示设备。
2.为什么要划分子网
如上例所示,IP 地址的构造方式使互联网路由器可以相对容易地找到将数据路由到其中的正确网络。但是,作为示例,在 A 类网络中可能有数百万个已连接的设备,并且数据可能需要一些时间才能找到合适的设备。这就是子网划分派上用场的原因:子网划分缩小了 IP 地址范围,将其限定在一定范围内的设备。
由于 IP 地址仅限于表示网络和设备地址,因此,IP 地址不能用于表示 IP 数据包应访问哪个子网。网络中的路由器使用一种称为子网掩码的东西将数据划归到子网中。
3.什么是子网掩码
子网掩码类似于 IP 地址,但仅在网络内部使用。路由器使用子网掩码将数据包路由到正确的位置。在互联网上传输的数据包中并不含子网掩码——这些数据包仅指示目标 IP 地址,路由器会将其与子网进行匹配。
假设 Bob 回复了 Alice 的来信,但他将l回复发送到 Alice 的工作地点而不是她的家。Alice 的办公室很大,里面有许多不同的部门。为了确保员工能够迅速收到他们的信件,Alice 的工作场所管理团队按部门而不是按单个员工对邮件进行归类。收到 Bob 的来信后,他们看了一眼 Alice 所在部门,发现她在客户支持部门工作。于是他们将信件发送给客户支持部门而不是给 Alice,然后客户支持部门将其发送给 Alice。
在这个类比当中,“Alice”好比一个IP地址,“客户支持部门”好比一个子网掩码。通过将 Alice 与其所在部门匹配,Bob 的信很快被分拣到一组正确的潜在收件人当中。没有这个步骤,办公室管理员将不得不花费时间来寻找 Alice 办公桌的确切位置,而它可能在建筑物的任何地方。
举个实际例子,假设一个 IP 数据包的目标地址是 192.0.2.15。该 IP 地址是一个 C 类网络,因此该网络由“192.0.2”标识(或从技术上精确地讲是 192.0.2.0/24)。网络路由器将数据包转发到由“192.0.2”表示的网络上的一台主机。
数据包到达该网络后,网络内的路由器将查询路由表。用其子网掩码 255.255.255.0 进行一些二进制数学运算,看到设备地址是“15”(IP 地址的其余部分表示网络),再计算数据包要发送到哪个子网。它将数据包转发到负责在该子网内传递数据包的路由器或交换机,数据包到达IP地址 192.0.2.15(了解有关路由器和交换机的更多信息)。
4.子网掩码
IP地址本身不再记录划分信息,而是通过一个独立的数字序列来辅助标记,这就是子网掩码。
子网掩码同样由32位二进制组成,例如:
11111111 11111111 11111111 00000000
连续的1代表网络位,连续的0代表主机位。
注意了!子网掩码必须是连续的1后面跟着连续的0,在二进制中不能有1和0交错的情况。例如不能是:11111111.11111111.11111111.00111111
但在展示时通常转化为十进制形式,例如上面的转化为十进制后:
255.255.255.0
转换后前三组的255,就表示一个IP地址中前三组数是网络号,而最后一组的0表示一个IP地址中后一组是主机号。
比如我这里有一个IP地址以及它对应的子网掩码:
// IP:
192.168.33.112
// 子网掩码:
255.255.255.0
说明这个IP地址192.168.33
是网络位,112
是主机位。这就子网掩码的功能之一。
其实子网掩码还能判断IP是否在同一个子网以及划分子网
先大致的了解一下什么是子网。
比如两台笔记本电脑连接同一个WIFI,那么他们就在同一个子网中或者说是同一个局域网中,即使路由器断开外网连接,这两台电脑仍能够相互通讯。
- 前面提到子网掩码可以判断设备是否在同一个子网,怎么判断呢?
假如我们有一台A笔记本,一台B笔记本,不知道连接的是不是同一个WIFI,可以通过查询我们得知:
A笔记本的信息如下
// IP:
192.168.33.112
// 子网掩码:
255.255.255.0
B笔记本的信息如下:
// IP:
192.168.33.223
// 子网掩码:
255.255.255.0
通过IP地址的二进制格式与子网掩码的二进制格式进行and运算,如果相等,说明AB笔记本处于同一个子网,同一个WIFI,可以直接通信。
来来来,我们来算下,先算A笔记本:
11000000 10101000 00100001 01110000 // IP
11111111 11111111 11111111 00000000 // 子网掩码
// and运算理解为位相乘就可以了,上下每一位都相乘得
11000000 10101000 00100001 00000000
// 转成十进制为
192.168.33.0
同理B运算完并转成十进制后为:
192.168.33.0
A和B笔记本的运算结果相等,证明在同一个子网。
当然我们不会每次比较两个设备的时候都去这么计算,有子网掩码的分类快速去判断。
5.IP的分类与子网掩码的关系
首先IP地址有如下分类:
- A类:255.0.0.0
- B类:255.255.0.0
- C类:255.255.255.0
如果一个IP地址192.172.3.64配套的子网掩码是255.255.255.0,那么这个IP就是属于C类,也就是说IP的最后一组是主机位,那么可能在同个子网下所有设备的IP地址范围为192.172.3.0 ~ 192.172.3.255。
但在这个范围内:
- 192.172.3.0是网络地址,用于标识子网本身,不分配给任何设备。
- 192.172.3.255是广播地址,用于发送到该子网内所有设备的广播消息。
- 其余的地址(192.172.3.1到192.172.3.254)可以分配给子网内的设备。
6.子网掩码的相关计算公式
例子: 给定IP地址和子网掩码 172.31.128.255 / 18
1、网络号
公式:将IP地址的二进制和子网掩码的二进制进行“&”(and)运算,得到的结果就是网络号。“&运算”的规则是1&1=1,0&1=0,1&0=0,0&0=0。
ip: 10101100.00011111.10000000.11111111 子网掩码: 11111111.11111111.11000000.00000000 ---------------------------------------------------- 网络号: 10101100.00011111.10000000.00000000 & 网络号点分法表示: 172.31.128.0
2、主机号
公式:用IP地址的二进制和(子网掩码的二进制的反码)进行“&”运算,得到的结果就是主机号。反码就是将原本是0的变为1,原本是1的变为0。
ip: 10101100.00011111.10000000.11111111 子网掩码取反: 00000000.00000000.00111111.11111111 ---------------------------------------------------- 主机号: 00000000.00000000.00000000.11111111 & 主机号点分法表示: 0.0.0.255
3、广播地址
公式:在得到网络号的基础上,将网络号右边的表示IP地址的主机部分的二进制位全部填上1,再将得到的二进制数转换为十进制数就可以得到广播地址。
因为本题中子网掩码是11111111.11111111.11000000.00000000, 0有14个,主机位是14,我们将网络号172.31.128.0,转换为二进制是 10101100.00011111.10000000.00000000,从右边数起,将14个0全部替换为1, 即:10101100.00011111.10111111.11111111,这就是这个子网的广播地址的二进制表示法。
将这个二进制广播地址转换为十进制就是172.31.191.255
网络号: 10101100.00011111.10000000.00000000 子网掩码: 11111111.11111111.11000000.00000000 ---------------------------------------------------- 广播地址: 10101100.00011111.10111111.11111111 网络号从右向左0填为1,个数为掩码中的0 广播地址点分法表示: 172.31.191.255
4、可用IP地址范围
因为网络号是172.31.128.0,广播地址是172.31.191.255,所以子网中可用的IP地址范围就是从网络号+1 ~广播地址-1,所以子网中的可用IP地址范围就是从172.31.128.1-172.31.191.254。
7.可变长子网掩码/子网划分——子网个数的计算
我们知道IP地址有如下分类:
- A类:255.0.0.0
- B类:255.255.0.0
- C类:255.255.255.0
新版的IP地址比之前的IP分类灵活的地方在于每一类还可以继续划分子网,被称为可变长子网掩码
比如C类中,我想再划分出子网,可以通过网络位的扩展,占用主机位:
下面都是子网掩码:
- 255.255.255.128 (/25) - 二进制表示:11111111.11111111.11111111.10000000
- 255.255.255.192 (/26) - 二进制表示:11111111.11111111.11111111.11000000
- 255.255.255.224 (/27) - 二进制表示:11111111.11111111.11111111.11100000
- 255.255.255.240 (/28) - 二进制表示:11111111.11111111.11111111.11110000
- 255.255.255.248 (/29) - 二进制表示:11111111.11111111.11111111.11111000
- 255.255.255.252 (/30) - 二进制表示:11111111.11111111.11111111.11111100
- 255.255.255.254 (/31) - 二进制表示:11111111.11111111.11111111.11111110
- 255.255.255.255 (/32) - 二进制表示:11111111.11111111.11111111.11111111
有点懵?我们慢慢来,就拿第二个举例好了。
- 255.255.255.192 (/26) - 二进制表示:11111111.11111111.11111111.11000000
我们发现子网掩码有26位网络位。26>24,所以这个IP地址属于C类IP地址,且最后8位里面前两位是网络位,后6位是主机位。
所以255.255.255.192 (/26) 就表示这个是个可变长子网掩码,且网络位为26。当然真正电脑里展示的子网掩码只会是255.255.255.192。
一般我们写IP地址为了突出子网掩码的信息,可以这么写:192.168.11.30/26,从后面这个/26就能够看出是一个C类的可变长子网。
注意了!子网掩码必须是连续的1后面跟着连续的0,在二进制中不能有1和0交错的情况。例如不能是:11111111.11111111.11111111.00111111
那子网掩码255.255.255.192究竟划分了几个子网呢?
我们要知道我们的子网掩码的1代表的是主机位,这个子网掩码是26位网络位,代表它是用于C类IP的,而C类IP的前24位是确定了的,那么还有在这个确定的网络下面有几个子网就只需要看剩下的八位里面被占用的主机位有多少种组合,这里就有00,10,01,11四种组合,也就是划分了4个子网。
对应到IP地址的最后一组分别为:
- 00情况下的00000000-00111111 转为 0-63
- 01情况下的01000000-01111111 转为 64-127
- 10情况下的10000000-10111111 转为128-191
- 11情况下的11000000-11111111 转为192-255
假设我有个IP地址的主机位是192.163.1,那么4个子网的地址范围将是:
- 第一个子网:192.163.1.0 到 192.163.1.63
- 第二个子网:192.163.1.64 到 192.163.1.127
- 第三个子网:192.163.1.128 到 192.163.1.191
- 第四个子网:192.163.1.192 到 192.163.1.255
在每个子网中:
- 第一个地址(如192.163.1.0, 192.163.1.64, 等)是子网的网络地址,用于标识子网,不分配给设备。
- 最后一个地址(如192.163.1.63, 192.163.1.127, 等)是子网的广播地址,用于发送到该子网内所有设备的广播消息。
- 其余的地址(如192.163.1.1到192.163.1.62, 192.163.1.65到192.163.1.126, 等)可以分配给子网内的设备。
7.1.练习一
练习一:
假如有两个设备的IP和子网掩码信息:
// A 192.168.11.30 //IP地址 255.255.255.192 //子网掩码 // B 192.168.11.61 255.255.255.192
判断AB主机是不是在同一子网下面!!
在解答这个问题时,我们需要明确几个关键点:
子网掩码的作用:子网掩码用于将IP地址划分为网络部分和主机部分。在这个例子中,两个主机的子网掩码都是255.255.255.192,即/26,它表明前24位是网络部分(属于C类子网掩码),/26比C类(/24)多出26-24=2个网络位,所以后8位中的前2位用于子网划分,剩下的6位用于主机地址。
子网数量的计算:由于子网部分有2位,因此可以排列组合划分出个子网。即00,01,11,10四个子网。这4个子网是真实存在的,包括那些其网络地址或广播地址看似“特殊”的(如全0或全1的子网)。
确定每个子网的IP地址范围:每个子网包含个有效主机地址(排除网络地址和广播地址)。
首先我们要明白IP地址是点分十进制的,是类似于192.168.11.1的,我们上面这个子网掩码都有26位网络位了,已经超过C类的24位了,所以这个子网掩码是用于C类IP的,所以点分十进制IP的前3部分(一共4部分)是确定了的,
192.168.11
这一部分是已经给定的,不需要通过子网划分来确定。子网划分是在这个基础上,通过修改子网掩码来进一步细化IP地址的使用,使得同一网络中的不同设备可以通过不同的子网来隔离或管理。我们列举4个子网对应的IP地址后8位对应的情况分别为:
- 00情况下的00000000-00111111 转为 0-63(包含子网的网络地址和子网的广播地址)
- 01情况下的01000000-01111111 转为 64-127(包含子网的网络地址和子网的广播地址)
- 10情况下的10000000-10111111 转为128-191(包含子网的网络地址和子网的广播地址)
- 11情况下的11000000-11111111 转为192-255(包含子网的网络地址和子网的广播地址)
现在,我们来具体确定这4个子网的IP地址范围:
第一个子网:
- 网络地址:192.168.11.0
- 广播地址:192.168.11.63
- 可用IP范围:192.168.11.1 到 192.168.11.62(除去子网的网络地址和子网的广播地址)
第二个子网:
- 网络地址:192.168.11.64
- 广播地址:192.168.11.127
- 可用IP范围:192.168.11.65 到 192.168.11.126(除去子网的网络地址和子网的广播地址)
第三个子网:
- 网络地址:192.168.11.128
- 广播地址:192.168.11.191
- 可用IP范围:192.168.11.129 到 192.168.11.190(除去子网的网络地址和子网的广播地址)
第四个子网:
- 网络地址:192.168.11.192
- 广播地址:192.168.11.255
- 可用IP范围:192.168.11.193 到 192.168.11.254(除去子网的网络地址和子网的广播地址)
接下来,我们看看主机A和主机B
A:192.168.11.30 //IP地址 B:192.168.11.61
主机A和主机B都位于第一个子网里面
7.2.练习2
练习2
例子: 给定IP地址和子网掩码 172.31.128.255 / 18,求这个IP地址的网络号,划分的子网数目
首先将/18换成为我们习惯的表示法:
11111111.11111111.11000000.000000转为十进制就是255.255.192.0,可以看到这个掩码的左边两节和B类IP默认掩码是一致的,所以这个掩码是在B类默认掩码的范围内,意味着我们将对B类大网进行子网划分。
B类掩码默类是用16位(16个0)来表示可分配的IP 地址,这里的掩码在B类默认掩码的基础上多出了两个表示网络号的1,也就是向主机位借了两个1这就是说是将B类大网划分为2的2次方个子网(2^n,n表示所借1的个数),所以最终的子网数目是4
7.3.练习3
例子: 已知IP 192.168.1.133 ,子网掩码为255.255.255.192;求划分的子网的个数和范围
首先将子网掩码写为二进制的形式方便观察将其转换成二进制后和255.255.255.0对比可发现,前掩码的前24位没有变化,只是在原来表示主机号的部分头两位变成了1。
192.168.1.113: 11000000.10101000.00000001.10000101 (1) 255.255.255.192: 11111111.11111111.11111111.11000000 (2) ---------------------------------------------------- 255.255.255.0: 11111111.11111111.11111111.00000000 (3)
这个子网掩码是26位网络位,比C类IP的默认子网掩码24位还多,所以这个掩码是用于C类IP的范围里面。
所以我们把IP地址中的前24位(192.168.1)先不关注,因为前24位对应掩码没有变化它们始终表示网络号。原本255.255.255.192在192为0,及255.255.255.0的情况下属于C类地址的默认子网掩码
按照子网掩码的定义,子网掩码1所对应的位为网络号位,而0所对应的位为主机号位
主机号中被借走了两位用来表示网络号了,这就是子网号。二进制一位用0或1表示,那么占用了两位就有2*2=4种表示,这里占用了2位,也就是说我们将原有的192.168.1.0这个网络分成了四份,即4个子网)这四段的网络号分别是00000000、01000000、10000000、11000000,现在我们将它们转换成10进制就分别是0、64、128、192,现在把前24位加进来。
192.168.1.0 192.168.1.64 192.168.1.128 192.168.1.192
此时再来看广播地址,既然我们把一个网段分成了四份,它就应该有4个广播地址。
广播地址的定义是主机号位全位1的地址就是广播地址。
所以这四个网段的广播地址末八位就是00111111、01111111、10111111、11111111,转换成10进制分别为63、127、191、255。加上原来的网络号位,广播地址就是
192.168.1.63 192.168.1.127 192.168.1.191 192.168.1.255
四个网段中去除网络地址和广播地址中间的部分就是可用的主机IP地址了。则可用IP为
192.168.1.1 ------> 192.168.1.62 192.168.1.65-------> 192.168.1.126 192.168.1.129------> 192.168.1.190 192.168.1.193------> 192.168.1.254
7.4.如何使用子网掩码来划分子网个数
例: 学校新建5个机房,每个房间有30台机器,如果给定一C类网络地址:192.168.1.0,问如何将其划分为5个子网,子网掩码该如何设置?
在学校新建5个机房,每个房间有30台机器的情况下,我们需要将给定的C类网络地址192.168.1.0划分为5个子网,并确保每个子网能够容纳至少30台主机。以下是如何进行子网划分及设置子网掩码的详细步骤:
1. 确定子网数量和主机数量
- 子网数量:5个
- 每个子网主机数量:至少30台
2. 计算子网掩码
C类地址默认的子网掩码是255.255.255.0(或/24),其中前24位是网络部分,后8位是主机部分。为了划分5个子网,我们需要从主机部分借用一些位作为子网号。
由于,我们需要借用3位主机位来划分子网,这样可以产生个子网(其中5个被使用)。因此,新的子网掩码将是24(原有的网络部分)+ 3(新增的子网部分)= 27位网络位。
3. 划分子网
使用新的子网掩码255.255.255.224,我们可以将192.168.1.0/24划分为8个子网(但实际上我们只需要5个)。每个子网将有25−2=30个可用主机地址(减去网络地址和广播地址)。
以下是前5个子网的详细信息:
子网编号 子网地址 广播地址 可用IP范围 1 192.168.1.0/27 192.168.1.31 192.168.1.1 - 192.168.1.30 2 192.168.1.32/27 192.168.1.63 192.168.1.33 - 192.168.1.62 3 192.168.1.64/27 192.168.1.95 192.168.1.65 - 192.168.1.94 4 192.168.1.96/27 192.168.1.127 192.168.1.97 - 192.168.1.126 5 192.168.1.128/27 192.168.1.159 192.168.1.129 - 192.168.1.158
4. 分配子网给机房
每个机房可以分配一个子网。例如,机房1可以使用192.168.1.0/27子网,机房2使用192.168.1.32/27子网,以此类推。
总结
通过借用3位主机位,我们可以将C类网络地址192.168.1.0划分为5个子网,每个子网具有足够的IP地址来容纳至少30台机器。子网掩码设置为255.255.255.224,确保了子网之间的独立性和地址的有效利用。