认清真正的 — 子网掩码

      子网掩码(Subnet Mask)的主要功能是告知网络设备,一个特定IP地址的网络地址或子网地址(Netword Add)与主机地址(Host Add)。网络上的路由设备通过识别出目的地址的网络号与子网号作出路由寻址决策。而IP地址的主机部分不参与路由器的路由寻址操作,它只用于在同网段中唯一标识一个网络设备。
      之前我们的网络系统中只使用A、B、C这三种主类地址,而不对这三种主类地址作子网划分或者进行主类地址的汇总。网络设备根据IP地址的第一个字节的数值范围判断出它属于A、B、C中的哪一个主类网,进而确定该IP地址的网络部分和主机部分,不需要子网掩码的辅助。
      但为了更充分的利用稀有的IPV4地址资源,我们必须对A、B、C这三种主类网进行了更细的子网的划分,或者采用无类别的域间选路技术(Classless Inter-Domain Routing,CIDR)对网段进行汇总的情况下,也能对IP地址的网络部分与主机部分作正确的区分。这就必须依赖于子网掩码的帮助。
      子网掩码使用与IP相同的编址格式,转换成二进制后,为1的部分对应于IP地址的网络位,为0的部分对应于主机位。将子网掩码和IP地址作"与"操作后,主机位部分被丢弃,剩下的是它具体的网络地址。例如,一个IP分组的目的地址为:10.2.2.1,子网掩码为:255.255.255.0,"与"运算后得到:10.2.2.0,则网络设备认为该IP地址属于 10.2.2.0 网络。
      子网掩码是用来判断任意两台计算机的IP地址是否属于同一子网络的根据。 最为简单的理解就是两台计算机各自的IP地址与子网掩码进行AND运算后,如果得出的结果是相同的,则说明这两台计算机是处于同一个子网络上的,可以进行直接的通讯。就这么简单. 请看以下示例:
运算演示一: I P 地址:192.168.0.1 / 子网掩码:255.255.255.0
AND运算 转化为二进制进行运算:
IP地址 11010000.10101000.00000000.00000001
子网掩码 11111111.11111111.11111111.00000000
AND运算 11000000.10101000.00000000.00000000
转化为十进制后为: 192.168.0.0

运算演示二: I P地址:192.168.0.254/ 子网掩码:255.255.255.0
AND运算转化为二进制进行运算:
IP地址 11010000.10101000.00000000.11111110
子网掩码 11111111.11111111.11111111.00000000
AND运算 11000000.10101000.00000000.00000000
转化为十进制后为: 192.168.0.0

运算演示三: I P 地址 192.168.0.4 子网掩码 255.255.255.0 AND运算转化为二进制进行运算:
IP地址 11010000.10101000.00000000.00000100
子网掩码 11111111.11111111.11111111.00000000
AND运算 11000000.10101000.00000000.00000000
转化为十进制后为: 192.168.0.0

      我们可以看到以上三例IP地址与子网掩码的AND运算后的结果是一样的,均为192.168.0.0。所以计算机就会把这三台计算机视为是同一子网络,然后进行通讯的。
      也许你又要问,这样的子网掩码究竟有多少了IP地址可以用呢?你可以这样算。根据上面我们可以看出,局域网内部的ip地址是我们自己规定的(当然和其他的ip地址是一样的),这个是由子网掩码决定的通过对255.255.255.0的分析。可得出:前三位IP码由分配下来的数字就只能固定为192.168.0 所以就只剩下了最后的一位了,那么显而易见了,ip地址只能有2^8-1(即256-1=255),一般末位为0或者是255的都有其特殊的作用。
      但是这样划分但浪费地址了,所以后来又引出一种叫VLSM(可变长掩码)的新算法。 如果有50台主机,那么用C类地址的话,每一个网段不是要浪费200台了吗?但是如果用了VLSM就不同了。请看,如果是静态掩码的话C类地址因该是255.255.255.0 50<2^7,化为十进制就是64。所以VLSM就是255.255.255.64 。下面再做几个例子应该就可以理解了、、、
例一: IP:192.168.0.1 / SubstMask:255.255.255.64 转化为二进制
IP地址 11000000.10101000.00000000.00000001
子网掩码 11111111.11111111.00000000.10000000
AND与运算 11000000.10101000.00000000.00000000
转化为十进制192.168.0.0

例二: IP:192.168.0.50 / SubstMask:255.255.255.64 转化为二进制
IP地址 11000000.10101000.00000000.00110010
子网掩码 11111111.11111111.11111111.01000000
AND与运算 11000000.10101000.00000000.00000000
转化为十进制192.168.0.0

以上二个地址在同一网段,再看:
例三: IP:192.168.0.65 / SubstMask:255.255.255.64 转化为二进制
IP地址 11000000.10101000.00000000.01000001
子网掩码 11000000.10101000.00000000.01000000
AND与运算 11000000.10101000.00000000.01000000
转化为十进制 192.168.0.64

No comments:

Post a Comment