如果 IP 的所有位都为 0,则该地址指的是该网络上的该主机。 "this" 到底是什么意思?

If all bits of an IP are 0, the address refers to this host on this network. What exactly "this" means?

我正在研究IPClass和保留IP。 某处说 "If an IP address consists of all zeros, the address refers to this host on this network." "this" 在短语 "this host on this network"

中指的是什么

一个网络是使用子网创建的,主要是class A、B和C

现在 IPV4 有 4 个八位字节,每个八位字节

11111111.11111111.11111111.11111111

现在,如果我使用一个 IP,其位如下
11111111.11111111.11111111.11111110
子网是
11111111.11111111.11111111.00000000

它是特定子网的网络上的 ip,在本例中 Class C

'this network' 表示 IP 地址是
等网络的成员 11111111.11111111.11111111.11111000
要么
11111111.11111111.11111111.11111100

最初,所有 0 (0.0.0.0) 的 IPv4 地址意味着 "This Network." 这指的是它被用作网络的广播地址。实际上,它是一个无效的主机地址。它通常用于诸如掩码长度为00.0.0/0)的路由协议之类的东西,以表示任何地址(默认路由)。

所有 1 (255.255.255.255) 的地址被称为 "Limited Broadcast" 地址。

原始 IP RFC 创建了网络 类,但它们已被创建 Classless 域间路由 (CIDR) 和可变长度子网掩码 (VLSM) 的 RFC 所淘汰。我不确定为什么今天仍然教授分类网络,因为它不再真正被使用了,但是:

  • ClassA地址都是以0开头的 地址(0.0.0.0127.255.255.255),它们有一个 8 位掩码 (255.0.0.0).
  • Class B地址都是以10开头的 地址(128.0.0.0191.255.255.255),并且它们有一个 16 位 掩码 (255.255.0.0).
  • Class C地址都是以110开头的,作为前三位 地址(192.0.0.0223.255.255.255),它们有一个 24 位 掩码 (255.255.255.0).
  • Class D地址(今天用于组播)全部以1110开头 作为地址的前四位(224.0.0.0239.255.255.255)。多播不使用地址掩码,因为每个 多播地址表示主机监听的多播组 单独。
  • Class E 地址(保留或实验)均以 1111 开头,如 地址的前四位(240.0.0.0255.255.255.255)。由于这些都是(有限广播除外 地址)是无效地址,他们不使用掩码。

CIDR 和 VLSM 取消了有类网络,您现在应该将实际的有效地址视为 1.0.0.0223.255.255.255 范围内的一系列位,具有实际的掩码长度在 8 (255.0.0.0) 和 32 (255.255.255.255) 之间。

实际上,IPv4 地址和掩码只是用于执行逻辑运算的 32 位无符号整数。当你遇到涉及 IP 地址和掩码的问题时,将点分十进制表示法转换为二进制来执行运算,然后再转换回点分十进制作为最终答案要容易得多。

0.0.0.0 的含义取决于上下文。

对于服务器进程,这意味着 "all IP addresses configured on this host." 假设您有一台配置了多个 IP 地址的主机,并且您想要 运行 端口 443 上的 Web 服务器。您可以告诉web 服务器绑定到一个特定的 IP 地址,或者你可以告诉它绑定到 0.0.0.0,意思是 "bind to all IP addresses configured on this host."

在路由 table 的上下文中,它表示 "the default route,",有时表示为 0.0.0.0/0。路由示例 table:

$ netstat -nr
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         10.131.64.1     0.0.0.0         UG        0 0          0 eth0
10.131.64.0     0.0.0.0         255.255.192.0   U         0 0          0 eth0
172.17.0.0      0.0.0.0         255.255.0.0     U         0 0          0 docker0

这个table表明0.0.0.0(默认路由)指向网关10.131.64.1。然后它将其他目的地指向 0.0.0.0.

处的默认路由

这是一个显示 CIDR 表示法 0.0.0.0/0 的 iptables 规则集片段。您可以将这些条目视为 "FROM any TO any."

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0

它也用于其他一些情况,例如当主机出现在网络上并请求通过 DHCP 分配地址时。如果主机没有事先分配的地址来尝试使用,它将 0.0.0.0 直到它分配了一些东西。

这一切都在 IPv4 中。在 IPv6 中,您会看到 ::/0