网络地址和广播地址怎么求,广播地址的计算公式是什么?

题图来自Unsplash,基于CC0协议
导读
网络地址和广播地址是IP网络中的基础概念,理解它们对于网络规划、排错和维护至关重要。
网络地址是标识一个特定网络(或子网)的标准地址,该地址不属于任何单个主机,而是用来在路由器上建立路由表,指示该网络的接口位置。广播地址是网络中的一个特殊地址,它的报文会被同一物理网络(或子网)上的所有主机接收和处理。简单来说,网络地址是“这个网络是谁”的问题,广播地址是“这个网络里面大家都在听”的信号。
求解网络地址是关键的第一步。
IP地址与子网掩码的关系:如何求网络地址?
IP地址由网络部分(Net ID)和主机部分(Host ID)构成。在传统的分类IP地址(如A类、B类、C类)中,IP地址的网络部分是固定的(A类为第一个字节,B类前两个字节,C类前三字节),但现代网络主要使用子网划分和可变长子网掩码(VLSM)以及无类别域间路由(CIDR),网络部分与主机部分的分割可以通过子网掩码来定义。
一个子网掩码通常是另一个32位的数字,与IP地址同等级别。在32位掩码中,连续的1代表网络部分,从第一个0开始连续的0代表主机部分。可以通过将IP地址与子网掩码进行按位AND运算来计算网络地址:
- 准备IP地址和子网掩码: 确认并写出IP地址和要使用的子网掩码。
- 将它们转换成二进制形式: 这是最准确的方法,但这一步在手动计算时非常繁琐。
- 进行按位AND运算:
- 将IP地址的每个二进制位与子网掩码对应位置的位进行比较。
- 如果子网掩码对应位置的位是1,那么对应的IP地址位会保留到结果中。
- 如果子网掩码对应位置的位是0,那么对应的IP地址位会在结果中变为0。
- 这个按位AND运算的结果就是网络地址。
示例:以下是一个求网络地址的标准计算过程:
给定IP地址和子网掩码,求网络地址和广播地址的示例
让我们通过一个例子来更具体地理解和展示如何操作:
-
案例一(C类地址,默认子网掩码):
- 目标:给你一个IP地址 192.168.1.10,默认情况下没有子网划分的情况,找到它的网络地址和广播地址。
- 步骤:
- 确定默认子网掩码: C类地址的默认子网掩码是 255.255.255.0。
- 将IP地址和掩码转为二进制:
- 192.168.1.10:
192 -> 11000000 168 -> 10101000 1 -> 00000001 10 -> 00001010(完整为:11000000 10101000 00000001 00001010) - 255.255.255.0:
255 -> 11111111 255 -> 11111111 255 -> 11111111 0 -> 00000000(前24位是1,后8位是0)
- 192.168.1.10:
- 计算网络地址: 将IP地址和子网掩码各8位进行分组,做逐级AND运算。
- 第一组 (192 & 255 = 192)
- 第二组 (168 & 255 = 168)
- 第三组 (1 & 255 = 1)
- 第四组 (10 & 0 = 0)
- 所以网络地址是 192.168.1.0。
- 计算广播地址: 网络地址是确定网络范围的起点,广播地址则是终点,为便于区分范围内的所有地址,关键在于识别网络地址的广播形式。广播地址是在网络地址的基础上,将其主机部分全部置为1得到。
- 将网络地址
192.168.1.0分解为网络部分(前三字节,192.168.1)和主机部分(后一节,0)。 - 将主机部分全置为1:
0置为255得到广播地址:192.168.1.255。整个计算过程可以表达为:网络地址 + (2^(主机位)) - 1。
- 将网络地址
-
案例二(带子网划分):
- 目标:给你一个IP地址
192.168.1.0带子网掩码255.255.255.224(相当于 CIDR/24?不,224是11100000二进制,即8位中的27位1,255对应8位全1,所以掩码是 7字节全1加上最后一节写的是224即11100000,实际上是/24吗?不对。默认C类是24位,而255.255.255.224 是前27位1,所以 CIDR 记作/27`) - 子网划分:掩码255.255.255.224表示最后一跳的主机部分被划分,主机部分从原来C类的8位变成了27位网络,所以有一部分主机位被借用来作为新的子网位。最后一跳的224是二进制11100000,即借了3位用于子网划,因此,每个子网的可容纳主机数量为原来的指数减少,计算子网时,共有 2^3=8 个子网。
- 计算过程:
- 子网掩码二进制: 255.255.255.224 -> 11111111.11111111.11111111.11100000
- IP地址二进制: 192.168.1.0 -> 11000000.10101000.00000001.00000000
- 网络地址:
- 第一组 (11000000 & 11111111 = 11000000 -> 192)
- 第二组 (10101000 & 11111111 = 10101000 -> 168)
- 第三组 (00000001 & 11111111 = 00000001 -> 1)
- 第四组 (00000000 & 11100000 = 00000000 -> 0)
- 网络地址:192.168.1.0
- 广播地址:
- 网络地址是 192.168.1.0,它实际上覆盖了从
.0到.31的某个范围?不,不对,子网掩码/27表示每个子网的主机部分有5位,所以每个子网以.0开始,到.31(5位全1,但实际判断时,广播地址按置1部分计算)。但由于子网划分,实际的网络地址取决于划分点后的结果。从 mask 是 .224,所以广播地址是把主机位全置1,最后一节:.0后,补足5个0,但是 broadcast 只将host bits(即 subnet mask 中最后5个0)置为1,所以 .224 置的是是从左边起借出了3位(左边是高位,所以有7位1和5位0)-> 关键是,IP是192.168.1.,也就是第三字节是1,而 mask .224 表示借用最后3位 -> 所以 host bits 是5位,因此广播地址应该是 192.168.1. (0 -> 原IP的最后一字节的主机动部分,即1的最后三位是0(因为27位mask相当于24位+3位subnet bits,所以 host 5 bits 在subnet bits之后) ),更准确地说,mask 255.255.255.224 使最后一节的网络部分变成高位3位标识了子网,所以广播地址是把除了mask的3个1位后的5位(即host bits)全置1。 - 最后一字节的二进制:由于 mask 224 (11100000),所以前3位(借出来的subnet bits)是固定的,而 host bits 是后面的5位。在计算广播地址时,将所有host bits置1,不管subnet bits是啥。
- 对于网络地址
192.168.1.0,因为是每个子网开头的,其对应的广播地址应为其所在网络的最大地址。由于子网掩码是/27,每个子网的IP范围是.0到.31(5个比特,255的二进形式11111111去掉前3位(对应于子网)则后5位从0到31,即00000 到 11111)。 - 所以对于这个特定子网,广播地址是 192.168.1.31。
- 网络地址是 192.168.1.0,它实际上覆盖了从
- 进一步细分:
- 这个网络被划分为8个更小的子网(因为有3比特用于隔离子网)。
- 每个子网可以容纳2^5 - 2 (因为网络地址和广播地址不能作为主机地址) 个主机,即30个主机。
- 例如,第一个子网使用
.0到.31 - 第二个子网使用
.32到.63,因为他处的广播是.63。
- 目标:给你一个IP地址
子网划分中网络地址和广播地址的确定方法
当你已经有了IP地址和子网掩码,无论是默认掩码还是用户定义的子网掩码,计算方法都是一样的:通过将两者进行按位AND逻辑与运算,并正确理解掩码定义的网络和主机部分,就可以得到网络地址。
广播地址的计算总是基于网络地址再加上主机部分全1。计算技巧是:
- 将子网掩码转换为CIDR前缀长度。
- 在网络部分全1,主机部分全0,也就是网络地址。
- 广播地址就是网络地址中主机部分全1。计算广播地址的方法类似,只不过此时将主机部分应用逻辑OR与全1的操作。
- 快速心算:广播地址可以用
.255.255.255来算估,但是最好准确计算。 如 C类,掩码255.255.255.0,广播就是.255;对于另外的数字,可以通过二进制方法,或利用“全零是网络,全一是广播”的规则。
理解网络地址和广播地址的计算原理,对于理解更大的网络概念,如CIDR、VLSM、路由聚合等都非常关键,并且是高级网络配置的基础。实际应用中,转换到二进制进行binary AND和binary OR计算是手动操作的核心,但现在日趋使用网络计算器或脚本来辅助完成。确保每当你设置一个IP地址时,理解它属于的子网以及其广播域的范围,有助于更好地管理网络和排查问题。
© 版权声明
本文由盾科技原创,版权归 盾科技所有,未经允许禁止任何形式的转载。转载请联系candieraddenipc92@gmail.com