网域的划分
怎样划分网域呢?参考一下IP等级划分中的 Class C,它是通过定义网络位(Net_ID)为24位来实现缩小网域的大小。那么根据这个理念来练习一下, 怎样将 220.11.1.xxx 切分为更小的网域。
在220.11.1.xxx
这个网域中,网络位有24位, 为什么说是24位呢? IP地址用二进制来表示,每个IP地址长32bit,比特换算成字节,就是4个字节。其中已经确定了 220.11.1
所以网络位为 3*8=24
位。那么剩下的就是主机位,有8位。 为了把网域切分为两个子域,从8个主机位中抽取第1位也去作为网络位。那么整个网络位就有25位,主机位7位。那么每个子域就有 2^7-2 = 126
个可用的IP了。
以上通过抽取1个主机位来实现了网域的划分,那么通过什么可以让其他人知道,我们抽取了1个主机位来对网域进行了划分呢? 这个重要的参数就是 Netmask 也就是经常听到的子网掩码。通过 netmask 来定义网域。下面进行具体的讲解,以 192.168.0.0 - 192.168.0.255 这个网域为范例:
这个例子中192.168.0
说明网络位已定,是24位不会改变。我们假设这24位全部被占用全部设为1,而主机位是可变的,假设他全部被保留均设为0,这个就是子网掩码啦。主机位全部为0或全部为1时这个IP是不可用的。主机位全部为0时,表示这个IP是这个网域的第一个IP,称为 Network 。 主机位全部为1时,表示这个IP是网段里的最后一个IP,称为Broadcast。 下面正式开始子网的切分,从主机位中抽取第1位作为网络位,则可以划分出两个子网,第25位为0时为第一个子网,为1时为第二个子网。 具体查看下图:
第一个IP: 11000000.10101000.00000000.00000000 <== Network
最后的IP: 11000000.10101000.00000000.11111111 <== Broadcast
|----------Net_ID---------|-host--|
Netmask: 11111111.11111111.11111111.00000000 <== Netmask 二进制
: 255 . 255 . 255 . 0 <== Netmask 十进制
第一个子网:
第一个IP: 11000000.10101000.00000000.0 0000000 <== Network 192.168.0.0
最后的IP: 11000000.10101000.00000000.0 1111111 <== Broadcast 192.168.0.127
|----------Net_ID------------ |-host--|
Netmask: 1111111. 11111111.11111111.1 0000000 <== Netmask 255.255.255.128
第二个子网:
第一个IP: 11000000.10101000.00000000.1 0000000 <== Network 192.168.0.128
最后的IP: 11000000.10101000.00000000.1 1111111 <== Broadcast 192.168.0.255
|----------Net_ID------------ |-host--|
Netmask: 1111111. 11111111.11111111.1 0000000 <== Netmask 255.255.255.128
例题:试着计算出 172.16.0.0,但 Net_ID 占用 23 个位时,这个网域的 Netmask, Network, Broadcast 等参数。
预设: 10101100 . 00010000 . 0000000 0 . 00000000
|----------Net_ID------------|-------host--|
Netmask: 11111111 . 11111111 . 1111111 0 . 00000000
255 . 255 . 254 . 0
(网络位均为1,主机位均为0)
Broadcast: 10101100 . 00010000 . 0000000 1 . 11111111
172 . 16 . 1 . 255
(主机位均为1)
Network: 10101100 . 00010000 . 0000000 0 . 00000000
172 . 16 . 0 . 0
(主机位均为0)
总结一下:
- Netmask 网络位均为1,主机位均为0
- Network 主机位均为0
- Broadcast 主机位均为1
- 主机数量 = 2^主机位 - 2
一般来说,如果我们知道了Network和Netmask之后,可以用另一个方式来表示一个网域 Network/Netmask
这个就是CIDR (Classless Interdomain Routing) 的写法。
Network/Netmask
192.168.0.0/255.255.255.0
192.168.0.0/24
因为 Net_ID 共有 24 个 bits (Net_ID 就是网络位)