网络号和主机号:它们是什么?

在一个互联网协议(IP)地址中,特别是广泛使用的 IPv4 地址(一个32位的数字串),它被逻辑上分割成两个主要部分:

  • 网络号 (Network Portion / Network ID):这部分标识了设备所在的网络。在一个局域网(LAN)或其他IP网络中,所有属于同一网络的设备都拥有相同的网络号。想象它就像一个城镇的名称。
  • 主机号 (Host Portion / Host ID):这部分标识了网络中的特定设备。在一个给定的网络中,每个设备(如电脑、服务器、打印机等)都必须有一个唯一的主机号。这就像城镇中每个家庭的门牌号码。

这种划分是IP地址设计的基础,它使得路由器能够有效地将数据包导向正确的网络,然后在该网络内部,通过主机号找到具体的设备。

为什么需要区分网络号和主机号?

将IP地址划分为网络号和主机号是互联网和大型网络能够高效运作的关键。其主要原因包括:

  • 路由效率
    路由器是连接不同网络的设备。当一个数据包需要从一个网络发送到另一个网络时,路由器只需要查看目标IP地址的
    网络号来决定将数据包发送到哪个“下一个”路由器或网络,而无需关心目标主机在网络中的具体地址(主机号),直到数据包到达目标网络。这大大简化了路由表和路由过程,提高了数据传输的效率和速度。想象一下邮局分拣信件,他们先按城市分拣(网络号),到达城市后再按具体地址投递(主机号)。
  • 网络组织与管理
    这种划分允许网络管理员将大型网络分割成更小的、更易于管理的子网。每个子网都有一个独特的网络号。这有助于隔离网络流量、增强安全性、优化网络性能,并简化故障排除。
  • 地址分配的层次性
    互联网地址分配机构(如IANA)首先分配网络地址块给组织或互联网服务提供商(ISP),然后这些组织再将这些地址块分配给其内部的子网络和主机。这种层次结构使得IP地址的管理和分配更加有序和可扩展。

如何确定网络号和主机号?——子网掩码的作用

如何知道IP地址的哪一部分是网络号,哪一部分是主机号?这取决于一个配套的重要信息——子网掩码 (Subnet Mask)

子网掩码也是一个32位的数字,与IP地址一一对应。它的作用就是明确指示IP地址中用于标识网络的位数和用于标识主机的位数:

  • 子网掩码中,连续的“1”位表示IP地址中对应的位是网络号的一部分。
  • 子网掩码中,连续的“0”位表示IP地址中对应的位是主机号的一部分。

子网掩码通常也用点分十进制表示(例如,255.255.255.0)。将它转换成二进制,你就能清晰地看到网络位和主机位的分界线。

另一种表示子网掩码的方式是CIDR (Classless Inter-Domain Routing) 表示法,也称为无类域间路由。它直接在IP地址后面加上一个斜杠和一个数字,例如 192.168.1.0/24。斜杠后面的数字(如 24)表示子网掩码中连续“1”的位数,即网络号的位数。剩余的位数(32减去网络位数)就是主机号的位数。

例如:
一个IP地址是 192.168.1.100
子网掩码是 255.255.255.0
将子网掩码转换为二进制:11111111.11111111.11111111.00000000
这里有 24个连续的“1”,所以网络号占用了前24位,主机号占用了后8位。
用CIDR表示法就是 192.168.1.100/24。

如何从IP地址和子网掩码计算出网络号和主机号?

计算过程涉及到二进制位操作,具体是使用逻辑与 (AND) 操作:

  1. 将IP地址和子网掩码都转换为二进制格式。
  2. 对IP地址和子网掩码的每一位进行逻辑与操作。逻辑与的规则是:

    • 1 AND 1 = 1
    • 1 AND 0 = 0
    • 0 AND 1 = 0
    • 0 AND 0 = 0

    简单来说,只有当IP地址和子网掩码的对应位都是1时,结果位才是1;否则结果位是0。

  3. 逻辑与运算的结果就是该IP地址所在的网络地址(Network Address)。网络地址是该网络中的第一个地址,它的主机位全部是0。这个地址是用来标识整个网络的,不能分配给具体的设备使用。
  4. 要得到主机号,可以将IP地址与子网掩码的补码(所有位取反,即1变0,0变1)进行逻辑与操作。或者更简单地,从IP地址中去掉网络地址部分(即将其网络位设为0,保留主机位)即可。

计算示例 (使用 192.168.1.100 和 255.255.255.0 /24)

IP地址: 192.168.1.100
二进制: 11000000.10101000.00000001.01100100
子网掩码: 255.255.255.0
二进制: 11111111.11111111.11111111.00000000

进行逻辑与运算:
IP地址: 11000000.10101000.00000001.01100100
掩码: 11111111.11111111.11111111.00000000
——————————————–
结果 (网络地址): 11000000.10101000.00000001.00000000

将结果转换回点分十进制:192.168.1.0
这是该IP地址所在的网络地址。其网络号部分就是前24位 (192.168.1)。

主机号部分是IP地址中子网掩码为0的位(后8位)。
IP地址的后8位二进制是 01100100。
将这8位单独看作一个数字,其十进制是 64 + 32 + 4 = 100。
所以该IP地址的主机号是 100。

另一个角度看主机号:网络地址是192.168.1.0 (主机位全0),该IP地址是192.168.1.100。主机号可以理解为相对网络地址的偏移量,即100。

一个网络中可以有多少个主机?

一个网络中可以容纳的主机数量取决于主机号的位数

如果主机号有 N 位,那么理论上主机号可以表示 2N 种不同的组合。

然而,在IP网络中,有两个特殊的主机地址是不能分配给普通设备的:

  • 网络地址 (Network Address):所有主机位都为 0 的地址。如上面的例子 192.168.1.0。它代表整个网络,用于路由目的。
  • 广播地址 (Broadcast Address):所有主机位都为 1 的地址。如在 192.168.1.0/24 网络中,主机位是后8位,全1的二进制是 11111111,对应十进制是 255。所以广播地址是 192.168.1.255。发送到此地址的数据包会被网络中的所有设备接收。

因此,一个具有 N 位主机号的网络,实际可用(可分配给设备)的主机地址数量是 2N – 2

回到 192.168.1.0/24 的例子:
主机号有 32 – 24 = 8 位。
理论上的组合数是 28 = 256。
可用主机地址数 = 28 – 2 = 256 – 2 = 254。
这些可用地址范围是从 192.168.1.1 到 192.168.1.254。

网络号和主机号在实际网络中“在哪里”以及“如何”使用?

网络号和主机号的概念贯穿于IP网络的方方面面:

  • 设备配置:当你为电脑、手机、路由器等设备配置静态IP地址时,需要同时指定IP地址和子网掩码。系统内部会使用子网掩码来确定网络号和主机号,以便正确识别自身所在的网络。

  • 判断是否在同一网络:当一台设备要与另一个IP地址通信时,它会提取自身IP地址的网络号和目标IP地址的网络号。

    • 如果两个网络号相同,设备就知道目标在本地网络,可以直接尝试通过二层协议(如以太网ARP)找到目标设备的物理地址进行通信。
    • 如果两个网络号不同,设备就知道目标在远程网络,会将数据包发送给配置好的默认网关(通常是路由器的IP地址),由路由器负责将数据包转发出去。

  • 路由器的工作:路由器的核心功能就是根据数据包的目标IP地址的
    网络号来查找其路由表。路由表中记录了到达不同网络的路径。路由器依据查找到的路径将数据包转发到下一个跃点(下一台路由器或目标网络)。它通常只关心网络号,而不过多处理数据包中的主机号,直到数据包到达目标网络边界。

  • 子网划分 (Subnetting):网络管理员通过调整子网掩码的长度(即改变网络号和主机号的位数分界线),可以将一个大的网络地址块划分为多个小的子网。这可以更有效地利用IP地址空间,并满足不同的网络规模和需求。

总结

IP地址的网络号和主机号是对一个IP地址的逻辑划分,前者标识网络,后者标识网络中的特定设备。这种划分通过子网掩码或CIDR前缀来界定,是实现高效IP路由、网络管理和地址分配层次化的基础。理解如何利用IP地址和子网掩码计算出网络地址、广播地址以及可用主机数量,是理解IP网络工作原理的关键一步。它们不仅仅是理论概念,更是实际网络配置和故障排除中不可或缺的部分。

网络号和主机号

By admin