(二十一)IP子网与子网掩码

前言

在上一节中,我们学习了网络层以及网络层中最重要的IP地址的概念。现在我们知道,根据网络规模大小的不同,IP地址可以分为A、B、C三类,还有D类和E类,只不过D类作为组播地址,E类地址保留不用。其中,A类地址规模最大,C类规模最小。

为什么规定A类最大、C类最小呢?其实,我们根据它们的网络号和主机号就能判断出来。A类地址第一段是网络号,后三段是主机号,每一段是8位,而且A类地址的网络号部分第一位固定是0,所以第一段就只剩下7位是可变的。所以,一个A类地址可以提供的最大的网络数是2^7个,也就是128个。主机号是后三段,也就是24位,那一个A类网络可以供2^24个主机进行分配吗?这个是不对的,因为我们说过主机号全0和全1都是有特殊作用的,全0代表网段地址,全1代表广播地址。所以,实际上,一个A类网络可供使用的主机数量是(2^24-2)个,大概是一千六百多万个。

和A类地址一样,B类和C类地址也是这么算的。下面我们看一个表,就能直观的感受到它们规模大小的不同:

类别 第一段取值范围 网络号位数 最大网络数 最大主机数 适用规模
A类 1~126 8位 128(2^7) 16777214(2^24-2) 大型
B类 128~191 16位 16384(2^14) 65534(2^16-2) 中型
C类 192~223 24位 2097152(2^21) 254(2^8-2) 小型

通过这个表,我们就能感受到了。如果是一个大型机构或者大型园区,可以申请一个A类网,也就是申请一个1~126开头的IP地址,剩下的24位主机号可以自行分配,可供一千六百多万个主机使用。如果是一个小型的公司、学校,就可以申请一个C类网,自行分配8位主机号,可供254台主机使用。

现在,我们想一个这样的问题,在一个公司里,有3000台电脑,如果我们去申请一个C类网,显然不满足要求,如果申请一个B类网,满足要求是没问题的,但是却存在着特别大的地址浪费。一个B类网可以供六万多台主机分配,但是现在只需要给3000台主机分配,剩下的地址不就全部都浪费了么?

所以,为了解决这样的问题,我们提出了IP子网的概念。

 

IP子网

IP子网技术的基本思想是:在IP地址足够分配的前提下,让多个物理网络共用一个网络号,减少地址浪费,便于管理

我们举一个例子来感受一下:

假设一个公司,有三个部门需要进行联网服务,分别是财务部、技术部、后勤部,每个部门都有200台电脑。公司申请到一个B类的IP地址128.1.0.0,那么在公司内部就可以这样划分3个子网:财务部使用128.1.1.0这个子网,技术部使用128.1.2.0,后勤部使用128.1.3.0。这样,虽然整体上是一个B类网络,但是划分子网以后,每一个部门的网络地址相当于是一个虚拟出来的C类地址。整个公司对外体现为一个网络128.1.0.0,但是在公司内部可以认为有3个子网。

在现有的三类网络的基础上将网络作进一步划分所得到的网络成为子网。每一个子网在逻辑上是一个完全独立的网络,子网之间或者子网与一般的网络之间必须通过路由器实现互联。

 

子网掩码

在我们没有接触子网这个概念之前,可以直接看一个IP地址的类别,分辨出它哪一位是网络号,哪一位是主机号。比如10.99.160.1,这是A类地址,第一段是网络号,后三段是主机号;192.168.5.1,这是C类地址,前三段是网络号,最后一段是主机号。但是,如果有了IP子网的概念,就像我们上面举的那个公司部门的例子一样,还能通过只观察IP地址就能判断出来网络号和主机号吗?就像上面那个128.1.3.0,只看IP地址是一个B类地址,但是实际上呢,它只是一个B类地址的子网地址,那么到底哪些位是网络号,哪些位是主机号呢?这就分不清楚了。

在子网技术出现以后,子网掩码的作用就显得尤为的重要。

子网掩码可以帮助我们确定一个IP地址的网络部分和主机部分,甚至通过子网掩码,我们可以判断出两个IP地址是否在同一个子网里面。

子网掩码和IP地址一样,也是32位,分为4段,每段8位,用点分十进制表示。子网掩码的每一位和它的IP地址是一一对应的,子网掩码中的“1”对应IP地址中的网络号和子网号,“0”对应IP地址中的主机号。

为了达到统一,如果一个IP地址段不划分子网的话,那么A、B、C类IP地址也是有相应的标准子网掩码的:

(二十一)IP子网与子网掩码_第1张图片

刚才,我们还说了一个,通过子网掩码还能计算出来,两个IP地址是否属于同一个子网。这个计算方式就是两个IP地址分别和子网掩码进行“与”运算,得出来的结果就是它们各自的网络号,然后我们观察网络号是否一致。如果一致,说明两个IP地址在同一个子网内,可以直接通信。如果不一致,则说明两个IP地址不在同一子网内,要想通信必须借助路由器。

下面我们看两个例子:

1、比如A主机IP地址为192.168.0.1,B主机的IP地址为192.168.0.254。它们的子网掩码都是255.255.255.0

下面我们要分别把两个IP地址和子网掩码都转换成二进制:

192.168.0.1      ——  11010000.10101000.00000000.00000001

255.255.255.0  ——   11111111.11111111.11111111.00000000

进行与运算(有0得0,同1得1),得出11000000.10101000.00000000.00000000,转换为十进制是192.168.0.0

192.168.0.254  ——  11010000.10101000.00000000.11111110

255.255.255.0  ——   11111111.11111111.11111111.00000000

进行与运算,得出:11000000.10101000.00000000.00000000,转换为十进制是192.168.0.0

通过比较,我们得出两个IP地址的网络号一致,说明两个IP地址在同一子网。

2、A主机IP地址是219.218.44.123,B主机IP地址是219.218.45.34,它们的子网掩码都是255.255.255.0

先都分别转换为二进制:

219.218.44.123  ——  11011011.11011010.00101100.01111011

255.255.255.0    ——   11111111.11111111.11111111.00000000

进行与运算,得出网络号:11011011.11011010.00101100.00000000,转换为十进制是219.218.44.0

219.218.45.34   ——  11011011.11011010.00101101.00100010

255.255.255.0    ——   11111111.11111111.11111111.00000000

进行与运算,得出网络号:11011011.11011010.00101101.00000000,转换为十进制是219.218.45.0

通过对比,发现虽然两个IP地址都是219.218开头的,并且子网掩码也一致。但是网络号不一致,说明两个IP地址不在同一个子网。

 

 

你可能感兴趣的:((二十一)IP子网与子网掩码)