IP分类与子网划分


IP 分类与子网划分

一、前言

整个因特网就是一个单一的、抽象的的网络。IP 地址就是给因特网上的每一个主机(或路由器)的每一个接口分配一个在全世界范围是唯一的 32 位的标识符。IP 地址的结构使我们可以在因特网上很方便的进行寻址。其中 IP 的编制方法共经过了三个历史阶段:分类的 IP 地址 -> 子网的划分 -> 构成超网。

二、2 进制与 10 进制的转换

1. 二进制转换为 10 进制

image.png

2. 十进制转换为二进制

image.png

三、IP 地址的组成

IP 地址是一串数字,遵循国际编写规范,共由 32 位二进制数字 0/1 组成(关于二进制请参考:一文看懂计算机数据:从每位数永不大于 9 到二进制 0-1),每 8 位为一组,用圆点隔开。类似身份号码的数据段(6 位表示籍贯+8 位表示出生年月+3 位表示顺序码+1 位校验码),IP 地址数据分为两个功能段:
网络地址/网络号+主机地址/主机号(共 32 位),共分为如下五大类,其中 A/B/C 类为常用 IP 地址:

  • A 类 IP 地址:8 位网络地址 + 24 位主机地址
  • B 类 IP 地址:16 位网络地址 + 16 位主机地址
  • C 类 IP 地址:24 位网络地址 + 8 位主机地址
  • D 类 IP 地址为组播地址
  • E 类 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)是不可使用的

知道了特殊主机号和特殊网络号之后,就可以对上边的表进行更加准确的描述
2211318603-3fdbc10d8cb80d81_fix732.png
通过这个就可以简单的进行判断一个 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 类,因为他们一般是特殊使用的,所以不做具体了解
4288250708-8cd234faa71d3b56_fix732.png

四、子网划分

在前边介绍到,一个 IP 由网络号和主机号两个部分组成。在子网划分这块,会将一个 IP 分成三个部分,分别是网络号、子网号、主机号
4288250708-8cd234faa71d3b56_fix732 (1).png

子网号是如何进行工作的

假设在上边的例子中,分配了 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 类地址分成了两个子网
2388936454-e71ba4b853cbcb08_fix732.png
如果 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
2727325486-8ff1e4960840413d_fix732.png
上边对 C 类地址进行了子网的划分,将其划分为 0 和 1 这两个子网,那么对于这个子网,它的子网掩码就是由 25 个 1 和 7 个 0 所组成的,那么这个子网掩码的点分十进制就是 255.255.255.128
328930210-365c4e887361e1a9_fix732.png

子网掩码是如何进行快速的子网判断的

假设有 193.10.10.6 这个 IP,首先可以知道它的子网掩码为 255.255.255.128,然后将他们的二进制都表示出来,将他们的每一位进行“与”运算,会得到如下结果
322123232-c1cb32980a4bffdb_fix732.png
可以看到,计算的结果就是 193.10.10.0,这个就是该 IP 的子网号
再假设有 193.10.10.129 这个 IP,它的子网掩码为 255.255.255.128,然后将他们的二进制都表示出来,将他们的每一位进行“”运算,会得到如下结果
3139748922-496c7ffdc9a887ee_fix732.png
可以看到,计算的结果就是 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 以外,还有很多
2117259349-456e8016555fd8bf_fix732.png
还是最上边的那个例子:某公司拥有 100 名员工,每人配备一台计算机,请问该公司应该申请哪种网段?
如果使用 CIDR 这个记法来进行分配的话,就只需要给它分配一个网络前缀为 25 的 IP 网络号就可以了(/25)
假设该公司增加了 100 名员工,并且拆分成两个部门,此时如何进行 IP 的规划?
这个时候其实可以为他们分配一个 24 位网络前缀的 IP 地址,然后对于每一个部门都分配 25 位网络前缀的 IP 地址。这里就有小型网络和大型网络的概念了,在 CIDR 中,小型网络通常称为子网,对于那个网络前缀为 24 位的,在 CIRDR 中,称为超网
2171528328-0eeaea609b60f1f5_fix732.png
如果将该例子拓展一下,拓展为某一个城市。如果对一个城市,使用 CIDR 进行网络规划,可能给这个城市分配网络前缀为 18 的网络地址,给该城市中的公司分配网络前缀为 20 的网络地址,对于公司部门,则分配网络前缀为 24 的网络地址
2822284147-1a223d5a8e2f58a0_fix732.png


文章作者: Truda
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Truda !
评论
  目录