一、 子网掩码的概念及作用
子网掩码
(subnet mask)
又叫网络掩码、地址掩码、子网络遮罩,是一个应用于
TCP/IP
网络的
32
位二进制值。它可以屏蔽掉
IP
地址中的一部分,从而分离出
IP
地址中的网络部分与主机部分,基于子网掩码,管理员可以将网络进一步划分为若干子网。它必须结合
IP
地址一起使用。
二、 为什么需要使用子网掩码
虽然我们说子网掩码可以分离出
IP
地址中的网络部分与主机部分,可大家还是会有疑问,比如为什么要区分网络地址与主机地址?区分以后又怎样呢?那么好,让我们再详细的讲一下吧!
通过计算机的子网掩码判断两台计算机是否属于同一网段的方法是,将计算机十进制的
IP
地址和子网掩码转换为二进制的形式,然后进行二进制“与”
(AND)
计算(全
1
则得
1
,不全
1
则得
0
),如果得出的结果是相同的,那么这两台计算机就属于同一网段。具体来说:
- 我们通过将本机的子网掩码与接受方主机的 IP 地址进行 ' 与 ' 运算,即可得到目标主机所在的网络号,
- 又由于每台主机在配置 TCP/IP 协议时都设置了一个本机 IP 地址与子网掩码,将本机的子网掩码与本机的 IP 地址进行 ' 与 ' 运算,即可得到本机所在的网络号。
通过比较这两个网络号,就可以知道接受方主机是否在本网络上。如果网络号相同,表明接受方在本网络上,那么可以通过相关的协议
(
注:
ARP
,详细参考下面提高部分
)
把数据包直接发送到目标主机;如果网络号不同,表明目标主机在远程网络上,那么数据包将会发送给本网络上的路由器,由路由器将数据包发送到其他网络,直至到达目的地。在这个过程中你可以看到,子网掩码是不可或缺的!
。
三、 如何用子网掩码得到网络
/
主机地址
既然子网掩码这么重要,那么它是如何分离出
IP
地址中的网络地址和主机地址的呢?
过程如下:
1. 将
IP
地址与子网掩码转换成二进制;
2. 将二进制形式的
IP
地址与子网掩码做
'
与
'
运算,将答案化为十进制便得到网络地址;
课程上主要讲解一下如何取网络地址
3. 将二进制形式的子网掩码取
'
反
'
;
4. 将取
'
反
'
后的子网掩码与
IP
地址做
'
与
'
运算,将答案化为十进制便得到主机地址。
下面我们用一个例子给大家演示:
假设有一个
I P
地址:
192.168.0.1
子网掩码为:
255.255.255.0
化为二进制为:
I P
地址
11000000.10101000.00000000.00000001
子网掩码
11111111.11111111.11111111.00000000
将两者做
'
与
'
运算得:
11000000.10101000.00000000.00000000
将其化为十进制得:
192.168.0.0
这便是上面
IP
的网络地址,主机地址以此类推。