本帖最后由 何处惹尘埃 于 2024-8-11 17:01 编辑
先引用 @奧巴马 老板的, 再补充一点点.
子网掩码的操作主要涉及位与(AND)运算,而不是异或(XOR)运算。具体来说,IP地址和子网掩码进行位与运算,以确定网络部分和主机部分。这个过程可以帮助确定一个IP地址属于哪个子网。
例如,对于IP地址 `192.168.1.10` 和子网掩码 `255.255.255.0`:
- IP地址的二进制表示:`11000000.10101000.00000001.00001010`
- 子网掩码的二进制表示:`11111111.11111111.11111111.00000000`
将两者进行位与运算:
- 结果:`11000000.10101000.00000001.00000000`
结果得到的是 `192.168.1.0`,这就是网络地址。
因此,子网掩码的作用是通过位与运算分离出网络地址和主机地址。
通过上文中二进制可以发现, 共有 32 位二进制数字, 在 IPv4 中共分为 4 段, 每段为 8 位.
例: 192.168.1.0/24
在 192.168.1.0/24 可以得知, 共有 24 位网络位和 8(32-24) 位主机位, 即最大主机位 IP 数量为 2^8=256 个,
但有 2 个保留地址分别是: 主机位全为 0 时表示整个网络(192.168.1.0), 全为 1 为广播地址(192.168.1.255). 所以真实可用的 IP 地址范围为 192.168.1.1 ~ 192.168.1.254
有时网段可能不是那么"标准", 例: 172.17.0.0/18
172.17.0.0的二进制很好计算, 为:
10101100.00010001.00000000.00000000/172.17.0.0
那么/18 应该如何理解? /18 的意思就是子网掩码的前 18 位全为 1, 即:
11111111.11111111.11000000.00000000/255.255.192.0 (8+8+2)
主机位则为子网掩码中不为 1 的部分,
即 11111111.11111111.11000000.00000000 (2^(32-18)=2^14=16384 个)
通配符位(所有主机地址): 00000000.00000000.00111111.11111111 / 0.0.63.255
所以在这个例子中主机位 IP 地址范围为: 172.17.0.0 ~ 172.17.63.255.
除去网络地址(172.17.0.0)和广播地址(172.17.63.255), 其余地址均可使用. 比如: 172.17.0.1 或者是 172.17.1.0 都是正常的 IP 地址.
|