【发布时间】:2011-06-25 11:21:46
【问题描述】:
我想从 IP 地址读取网络掩码、网络和广播地址。基本上我对网络掩码、CIDR、网络和广播术语感到困惑,谁能帮我理解这些术语。
谢谢, 汤姆曼
【问题讨论】:
标签: networking tcp ethernet
我想从 IP 地址读取网络掩码、网络和广播地址。基本上我对网络掩码、CIDR、网络和广播术语感到困惑,谁能帮我理解这些术语。
谢谢, 汤姆曼
【问题讨论】:
标签: networking tcp ethernet
对于给定的 IP 地址,没有固有的网络掩码、网络和广播地址。这三个术语与 IP 地址相结合,描述了 network。
(CIDR) 网络掩码 给出了网络中所有 IP 共享的位数。例如,/15 表示前 15 位是固定的。因为 IPv4 地址有 32 位,所以接下来的 32-15=17 位是可变的。由于 IPv4 地址中的每个数字对应 8 位,这意味着以下地址位于网络 1.2.0.0/15 中(二进制:00000001.00000010.0.0/15):
1.2.0.1
1.2.0.2
1.2.0.255
1.2.1.2
1.2.255.255
1.3.1.1 # in binary: 00000001.00000011.0.0, i.e. the first 15 bits match
1.3.255.255
但不是1.4.1.1 (00000001.00000100.1.1) 或2.2.1.1 (00000010.10.1.1),因为它们的前15 位与00000001.0000001 不同。
您还可以通过设置前 x 位以二进制形式表示 /x CIDR 网络的网络掩码。在我们的例子中,前 15 个:
11111111.11111110.00000000.00000000 # binary
255. 254. 0. 0 # decimal
网络地址是网络中任何地址和网络掩码的逻辑与,您将所有变量位设置为零。您也可以将其视为网络中的最低地址。在我们的例子中:1.2.0.0。
广播地址是与网络掩码补码的逻辑或。您将所有变量位设置为 1。您也可以将其视为网络中的最高地址。在我们的例子中:1.3.255.255。
此术语等同于 IPv6 地址,尽管您通常只指定地址和 CIDR 网络掩码。此外,两个冒号之间的块现在描述的是 16 位,而不是 8 位。例如,0001:0002:abcd::/48 包含0001:0002:abcd::1 和0001:0002:abcd:12::,但不包含0001:0002:abce。您可以将此网络的网络掩码表示为ffff:ffff:ffff:0 甚至1111111111111111:1111111111111111:1111111111111111::0,但/48 更短且更易于阅读。该网络有 48 个固定位和 128-48=80 个可变位。
【讨论】:
0000 0001.0000 0010,而 1.3.0.0 0000 0001.0000 0011。前 15 位相同,只有第 16 位不同。