文章内容概览
前边的文章中介绍到
- IP地址长度为32位,常分成4个8位
- IP地址常用点分十进制来表示(0255.0255.0255.0255)
- 32位的IP地址一共可以表示42亿个IP,如果没有一个合理的分配IP的方式,整个分配是非常麻烦的。因此需要对IP地址进行一个合理的规划和分配
分类的IP地址
将一个IP地址分为两个部分,分别是网络号和主机号。这两部分加起来是32位。根据网络号和主机号长度的不同,又可以将IP地址分为以下几类:
分为A、B、C这三类之后,就可以更好的去分配这42亿的IP地址了
- A类地址的网络号为8位,且首位是0
- B类地址的网络号为16位,并且前两位是10
- C地址的网络号为24位,并且前三位是110
知道了每一类的IP地址网络号和主机号的位数,就可以计算出最小网络号、最大网络号以及最小主机号和最大主机号。但是这里边有一些特殊的主机号是需要排除的
特殊的主机号
- 主机号全是0,表示当前的网络段,不可分配为特定主机(如:1.0.0.0)
- 主机号全是1,表示广播地址,向当前网络段所有主机发消息,也不可以分配给特定的主机(如:1.255.255.255)
特殊的网络号
- A类地址网络段全为0(0000000)表示特殊网络,这个网络段是不能直接使用的
- A类地址网络段后7位全为1(01111111)表示回环地址,不能直接使用
- B类地址网络段全为0(10000000.0000000:128.0)是不可使用的
- C类地址网络段全为0(192.0.0)是不可使用的
知道了特殊主机号和特殊网络号之后,就可以对上边的表进行更加准确的描述
通过这个就可以简单的进行判断一个IP地址是哪一类的地址了
125.125.3.60 转化为2进制是 01111101 因为首位是0,所以是A类IP地址
163.70.31.23 转化为2进制是 10100011 前两位是10,所以是B类IP地址
210.36.127.11 转化为2进制是 11010010 前三位是110,所以是C类IP地址
回环地址
127.0.0.1,通常被称为本地回环地址(Loopback Address),不属于任何一个有类别的地址。它代表设备的本地虚拟接口,所以默认被看做是永远不会宕掉的接口。在Windows操作系统中也有相似的定义,所以通常在安装网卡前就可以ping通这个本地回环地址。一般都会用来检查本地网络协议、基本数据接口等是否正常
下边其实还有两个分类的IP地址,D类和E类,因为他们一般是特殊使用的,所以不做具体了解
划分子网
在了解划分子网之前,先看一个问题:某公司拥有100名员工,每人配备一台计算机,请问该公司应该申请哪种网段?
看一下上边IP地址分类的表格
可以看出,申请C类是最节约IP地址的,因为C类所拥有的主机号最多254个,所以应该申请C类的
那么此时假设该公司有256名员工,每人配备一台计算机,请问该公司应该申请哪种网段?
这时就发现,申请C类地址已经不够用了。所以,至少应该申请B类地址才能满足该公司的需求。但是B最多可拥有2的16次方减2个主机号,这里只使用了256个,这就造成了很大的地址空间浪费。因为总共有42亿个IP地址,如果每个公司都这样去浪费,那么IP将会不够用。因此在IP分类的基础上,提出了子网划分的概念
在前边介绍到,一个IP由网络号和主机号两个部分组成。在子网划分这块,会将一个IP分成三个部分,分别是网络号、子网号、主机号
子网号是如何进行工作的
假设在上边的例子中,分配了C类地址193.10.10.0,对于这个C类地址有254个主机号。如果对这个C类地址进行子网划分的话,就可以把第25位看做是子网号(11000001.00001010.00001010.00000000),那么就可以分成1和0这两个子网号。那么0这个子网号就可以表示:193.10.10.0 ~ 193.10.10.127这个网络段。1这个子网就可以表示:193.10.10.128 ~ 193.10.10.255这个网络段,这样就把原来的C类地址分成了两个子网
如果A、B、C类的地址都进行很多的子网划分的话,将会导致有非常多的子网,那么此时如何快速的判断某一个IP是属于哪一个网络号的?这个时候就提出了一个新的概念:子网掩码
子网掩码
- 子网掩码和IP地址一样,都是32位
- 子网掩码由连续的0和连续的1组成的
- 某一个子网的子网掩码,具有网路号位数个连续的1
比如,对于A类地址,它的网络号有8位,主机号24位,那么对于A类地址,它的子网掩码就是由8个1和24个0所组成,也就是255.0.0.0。同理,B类地址的子网掩码就是由16个1和16个0所组成,也就是255.255.0.0
上边对C类地址进行了子网的划分,将其划分为0和1这两个子网,那么对于这个子网,它的子网掩码就是由25个1和7个0所组成的,那么这个子网掩码的点分十进制就是255.255.255.128
子网掩码是如何进行快速的子网判断的
假设有193.10.10.6这个IP,首先可以知道它的子网掩码为255.255.255.128,然后将他们的二进制都表示出来,将他们的每一位进行“与”运算,会得到如下结果
可以看到,计算的结果就是193.10.10.0,这个就是该IP的子网号
再假设有193.10.10.129这个IP,它的子网掩码为255.255.255.128,然后将他们的二进制都表示出来,将他们的每一位进行“与”运算,会得到如下结果
可以看到,计算的结果就是193.10.10.128,这个就是该IP的子网号
所以,通过子网掩码和IP进行与运算,就可以快速得到该IP所属的子网号
无分类编址CIDR
由于子网的划分还是比较的复杂,先要知道网络号,然后进行子网号的划分。我们是希望有更好、更简便的划分,去使用IP地址,因此就是提出了,无分类编址CIDR
- CIDR中没有A、B、C类网络号和子网划分的概念
- CIDR将网络前缀相同的IP地址称为一个“CIDR地址块”
因此,对于CIDR,它的IP地址分为两个部分:网络前缀和主机号。网络前缀并不是和前边的网络号一样,他们最大的不同就是,网络前缀的位数是任意的
斜线记法
CIDR在记录的时候,通常使用斜线记法来记录相关的IP地址,如:
192.10.10.129/25 表示它的网络前缀有25位,那么主机号就是七位(11000001.00001010.00001010.10000001)。除了25以外,还有很多
还是最上边的那个例子:某公司拥有100名员工,每人配备一台计算机,请问该公司应该申请哪种网段?
如果使用CIDR这个记法来进行分配的话,就只需要给它分配一个网络前缀为25的IP网络号就可以了(/25)
假设该公司增加了100名员工,并且拆分成两个部门,此时如何进行IP的规划?
这个时候其实可以为他们分配一个24位网络前缀的IP地址,然后对于每一个部门都分配25位网络前缀的IP地址。这里就有小型网络和大型网络的概念了,在CIDR中,小型网络通常称为子网,对于那个网络前缀为24位的,在CIRDR中,称为超网
如果将该例子拓展一下,拓展为某一个城市。如果对一个城市,使用CIDR进行网络规划,可能给这个城市分配网络前缀为18的网络地址,给该城市中的公司分配网络前缀为20的网络地址,对于公司部门,则分配网络前缀为24的网络地址
在快速变化的技术中寻找不变,才是一个技术人的核心竞争力。知行合一,理论结合实践