前言

  • 最早ip划分为5类,分A~E类,称之为经典模式,IP地址=网络号+主机

  • 经典模式下,划分一个网络号(一个网络号下面有n个ip,数量取决于A~E类)给一个机构,太浪费了。

    以B类网络号为例,当给某个大学分配一个B类网络号,下面有65534台机器,如果某个网络只能支持1000台机器的话(多了导致冲突,效率低下),剩下的64000个ip不能用,太浪费了,因此出现子网概念(经典模式下的子网)

    比如那个大学可以划分65个子网,每个子网1000台机器。这样全部的65534台机器都得到了应用,没有浪费;或者划分10个子网,每个子网1000台机器,这样剩余的55000机器被浪费了,但是仍然减少了浪费。

    注意:子网仅仅是内部概念,对外表现仍然是一个网络号。

  • 出现子网(经典模式下的子网)后,那么 IP地址=网络号+子网号+主机号,子网号是利用原有的主机号,从中占用几个bit位置,让主机号长度变短了,总的位数仍是32位,子网和主机号呈现反相关,子网数多,那么主机号就少,子网数少,那么主机号就多。

  • 怎么标记子网号呢?子网掩码出现了,子网掩码和IP与计算,得出该IP归属的 子网地址。

    子网地址=网络号+子网号,剩余位置补零,也是32位。

    一般不需要单独计算子网号,但是也可以计算出其值。子网号=子网地址-网络号 ,网络号是固定值(取决于A~E类),剩下的就是子网号了。

    经典模式下的子网,子网掩码是有约束的!A类地址,只能用A类的子网掩码;B类地址,只能用B类的子网掩码;

  • 经典模式下,ip4不够用了,原因是本身ip4资源缺乏,计算机发展太快,上网的机器越来越多;原有的经典模式太大了,不够灵活,造成浪费。于是CIDR划分法出现了

    CIDR划分法比较灵活,不再区分A~E类,并且随意使用子网掩码,因此,可以把IP段尽量划分的小一些,每个CIDR段分配给一个单位。

1. IP地址

在根据TCP/IP协议进行通信时,要用IP地址来标识主机或路由器。在IPv4中,IP地址是一个32位的整数。所以最多可以表示的数字IP地址是:2^32(大约是43亿)。

IP地址由网络号和主机号两部分来标识处于不同网段内的主机必须有不同的网络标识。而处于同一网段内的主机的网络号表示相同,但主机号标识必须不同。所以,在某网段内新增一台主机后,该主机的网络号与该网段的网络号相同,但是主机号不能与该网段里的其他主机的主机号相同。

通过合理设置网络号和主机号,就可以保证在相互连接的网络中,每台主机的IP地址都是唯一的。

通过将IP地址划分为网络号和主机号来标识,可以有如下特点:

(1)IP地址管理机构在分配IP地址时只分配网络号。剩下的主机号由得到该网络号的单位自行分配,这样就方便了管理就够的管理;

因此,分配一个网络号,等同于分配一个号段给你。一个局域网对应一个网络号。

(2)路由器在寻找目的主机的IP地址时,只需找到目的主机所在的局域网,再在该局域网内寻找目的主机。

(3)具有不同网络号的局域网必须有路由器进行连接,所以路由器总是有两个或两个以上网络号不同的IP地址

(4)处于不同网段内的主机必须有不同的网络标识。而处于同一网段内的主机的网络号表示相同,但主机号标识必须不同

IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节)。IP地址通常用“点分 、十进制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之间的十进制整数。例:点分十进IP地址(100.4.5.6),实际上是32位二进制数(01100100.00000100.00000101.00000110)。

1.1 网络号和主机号

IP地址 = 网络号和主机号

经典模式下,我们以C类地址为例:
在这里插入图片描述

一个网络中的某个具体的拥有一个IP,IP地址由网络号和主机号组成。

同一个网络内的多个地址,网络号相同,如下图网络2中,网络号都是222.1.2.0 (网络号剩余补0,因此也会以32位二进制或4个十进制显示), 主机号不同,分别是1和2。
在这里插入图片描述

1.1.1 如何区分网络号和主机号?

在经典模式(非CIDR)下,是由IP分类决定的,如上图网络2中,221开头的是C类地址,前3个十进制数是网络号,第四个十进制数是主机号。

1.1.2 网络号有什么用?

网络号是放在路由器端用的,路由器端对应一个网络号。

路由器根据路由表计算出目的ip是否需要自己去处理,如果在路由表内,责转发该消息,否则丢弃。

网络号和IP容易让初次接触的人犯迷糊,二者都是32位的,不同的是前者不足32位补零的,iP不存在补零,每个bit位都有意义。可以简单把网络号当做快递地址中的小区,而具体的IP则是小区内某个住户,所有的快递先由中转的快递员投递到某个小区内的门卫,然后,再由门卫(换人了,接力赛,不是同一个人)逐个送到住户家内,这样效率高的多。

迷糊的地方在于发送方仅设置接收方的ip,而没有携带网络号。经典模式下通过地址类型就可以计算出网络号和主机号。

经典模式几乎没有用,这是理想状态下的原理。 但是现状都是非经典模式,一般都用到子网,子网下,路由的逻辑稍有变化。我们展示的是演变,经典模式-》经典模式子网-》CIDR+子网

1.1.3 未使用子网时的分组的转发(数据发送)

标题中为何说是未使用子网? 我们展示的是演变,经典模式-》经典模式子网-》CIDR+子网

在这里插入图片描述

下面我们先用一个简单例子来说明路由器是怎样转发分组的。图4-16( a) 是一个路由表的简单例子。有四个A类网络通过三个路由器连接在一起。每一个网络上都可能有成千上万台主机(图中没有画出这些主机)。

可以想象,若路由表指出到每一台主机应怎样转发,则所得出的路由表就会过于庞大(如果每一个网络有1万台主机,四个网络就有4万台主机,因而每一个路由表就有4万个项目,即4万行。每一行对应于一台主机)。

但若路由表指出到某个网络应如何转发,则每个路由器中的路由表就只包含4个项目(即只有4行,每一行对应于一个网络)。以路由器R2的路由表为例。由于R2同时连接在网络2和网络3上,因此只要目的主机在网络2或网络3上,都可通过接口 0或1由路由器R2直接交付(当然还要利用地址解析协议ARP才能找到这些主机相应的硬件地址)。若目的主机在网络1中,则下一跳路由器应为R1,其IP地址为20.0.0.7。路由器R2和R1由于同时连接在网络2上,因此从路由器R2把分组转发到路由器R1是很容易的。同理,若目的主机在网络4中,则路由器R2应把分组转发给IP地址为30.0.0.1的路由器R3。我们应当注意到,图中的每一个路由器都有两个不同的IP地址。

可以把整个的网络拓扑简化为图4-16( b) 所示的那样。在简化图中,网络变成了一条链路,但每一个路由器旁边都注明其IP地址。使用这样的简化图,可以使我们不必关心某个网络内部的具体拓扑以及连接在该网络上有多少台主机,因为这些对于研究分组转发问题并没有什么关系。这样的简化图强调了在互联网上转发分组时,是从一个路由器转发到下一个路由器。

总之,在路由表中,对每一条路由最主要的是以下两个信息:(目的网络地址,下一跳地址)

于是,我们就根据目的网络地址来确定下一跳路由器,这样做可得出以下的结果:

  • 1.IP数据报最终一定可以找到目的的主机所在的目的网络上的路由器(可能要通过多次的间接交付)
  • 2.只有最后一个路由器时,才试图向目的主机进行交付。

2. IP地址分类

经典IP模型,一般不这么用,一般都用到子网划分。

IP地址可以分为五类:A~E类。各类别的网络号和主机号分别对应如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

各类地址的表示范围是:

A类:0.0.0.0~127.255.255.255     子网掩码 255.0.0.0

B类:128.0.0.0~191.255.255.255 子网掩码 255.255.0.0

C类:192.0.0.0~223.255.255.255 子网掩码 255.255.255.0

D类:224.0.0.0~239.255.255.255

E类:240.0.0.0~247.255.255.255

在这里插入图片描述

注:只有A,B,C有网络号和主机号之分,D类地址和E类地址没有划分网络号和主机号

A类地址的网络号占1个字节,只有7位可以使用。可以指派的A类网络号为126(2^7-2)个。A类IP地址中网络字段全0表示的是“本网络(A类网络)”的意思,不用于分配给具体的主机。IP地址中网络号全1表示的是本地环回地址,用于测试本主机的进程之间的通信,即网络号为127的IP地址。A类地址的主机号占3个字节,所以一个A类网络中可以连接的最大主机数为:2^24-2。主机号全0表示该主机连接的单个网络地址(某个A类网络),主机号全1表示该网络中的所有主机。

B类地址的网络号占2个字节,只有14位可以使用。可以指派的B类网络号为2^14-1(128.0.0.0)不用,最小的网络号为:128.1.0.0。每一个B类网路可以连接的最大主机数为:2^16-2=65534。(扣除主机号全0和全1的IP地址)。

C类地址的网络号占3个字节,只有21位可以使用。可以指派的C类网络号为2^21(192.0.0.0不用),最小的网络号为:192.0.1.0。每一个C类主机可以连接的最大主机数为:2^8-2=254(扣除主机号为全0和全1的IP地址)。

A类地址第1位必须是0,B类地址前两位固定为10,C类地址前3位固定为110,D类地址前4位固定为1110,这样会让不同类的地址在第一个字节不会出现重叠部分,各自有区间,但是没有交集,因此要判断IP地址属于哪一类,只要看第一个字节的数字是属于A类,B类,C类中的哪一类就可以知道了。

在上述的分类中,存在以下问题:

(1)IP地址空间的利用率降低:一个B类网络中最多可以表示的IP地址为65534个,而某些种类网络由于链路的特点能够连接的结点个数有限,所以就会造成大量的IP地址浪费;由于C类网络能连接的结点个数有限。所以,单位会申请B类网络,但一般又用不了这么多的IP地址,所以会造成IP地址的浪费。同理,A类网络的IP地址也会造成大量的浪费;

(2)如果给每一个物理网络都分配一个网络号,就会导致路由表过大。此时就会造成路由表的管理成本增加,同时查询的效率也会增加。

(3)当一个单位申请了一个网络号。他想将该网络能表示的IP地址再分给它下属的几个小单位时。如果在申请新的网络就会造成浪费。

为了解决上述的问题,引入子网划分的概念。

3. 子网划分和子网掩码

3.1 子网划分

在经典模式下,子网划分实际是在将原A类,B类,C类网络中的主机号的部分作为子网号,将原来的ABC类网络细化的过程,将原来的一个网络分为多个网络,但是在对外表现上,还是表现为原来的一个网络。

所以,此时,IP地址组成为:网络号+子网号+主机号。

3.1 为什么要进行子网划分?

经典模式下,划分一个网络号(一个网络号下面有n个ip,数量取决于A~E类)给一个机构,太浪费了。

以B类网络号为例,当给某个大学分配一个B类网络号,下面有65534个地址,等于一次分配给学校65534个地址,最大可以部署65534台机器。如果某个网络只能支持1000台机器的话(多了导致冲突,效率低下),剩下的64000个ip不能用,太浪费了,因此出现子网概念。

比如那个大学可以划分65个子网,每个子网1000台机器。这样全部的65534台机器都得到了应用,没有浪费;或者划分10个子网,每个子网1000台机器,这样虽然剩余的55000机器被浪费了,但是仍然减少了浪费。

3.2举例说明子网划分的概念

下面用例子说明划分子网的概念。图4-18表示某单位拥有一个B类IP地址,网络地址
是145.13.0.0 (网络号是145.13)。凡目的地址为145.13.x.x的数据报都被送到这个网络上的路由器R1。
在这里插入图片描述
现把图4-18的网络划分为三个子网(图4-19)。这里假定子网号占用8位,因此在增加了子网号后,主机号就只有8位。所划分的三个子网分别是:145.133.0, 145.13.7.0和145.13.21.0在划分子网后,整个网络对外部仍表现为一个网络,其网络地址仍为145.13.0.0。但网络145.13.0.0上的路由器R1 在收到外来的数据报后,再根据数据报的目的地址把它转发到相应的子网。

在这里插入图片描述

在数据进行通信的过程中,首先根据目的IP地址找到目标主机所在的网络(该网络对应一个中转路由器R1,这是对外可见的),中转路由器R1再根据目的IP地址的子网号找到目标主机所在的子网,最后找到目标主机。

至于中转路由器R1怎么找到子网的,就得参见《3.5 使用子网时分组的转发(数据发送)》章节内容了。

由上图红色字体所述,子网是一个网络对内的概念,对外是透明的,这个网络内的路由器的路由表内有子网,据此转发给内部分组。其他的路由器都不知道子网的存在。

3.3 如何理解对外表现为原来的一个网络?

假设一个拥有多个物理网络的单位,可将所属的物理网络划分为若干个子网,划分子网纯属一个单位的内部的事情。本单位外的网络看不见这个网络是由多少个子网组成,因为这个单位对外仍然表现为一个网络。

3.2 子网掩码

当数据报到达目的主机所在网络的路由器时,如何将它转发到子网上呢?

为了使目的主机所在网路的路由器能够很方便的找到目的子网,引入“子网掩码”的概念。子网掩码也是一个32位的整数,它是由一串1和一串0构成,1对应于目的主机所在的网络号和子网号,0对应于目的主机所在的主机号。

对于没有划分子网的网络号,也有子网掩码,此时子网掩码中的1对应于网络号,0对应于主机号。

将网络号和子网号统称为网络号后,子网掩码中的1就对应于网络号,0对应于主机号。

将目的主机的IP地址与子网掩码进行按位与操作,便可以确定目的主机所在的网络号。

在这里插入图片描述
此时,将目的主机IP与子网掩码按位与之后得到就是该目的主机所在的网络地址IP。在本例中,该子网的主机IP的表示范围是:145.13.3.0~145.13.3.255。能够连接的主机个数为254台(去除主机号为全0和全1的IP地址)。

上述中,子网掩码与主机IP按位与之后得到网络地址,然后主机号由全0到全1即表示该子网的地址范围。

子网掩码除了上述的表示方法外,还有一种表示方法:在每个IP地址之后追加网络地址的位数。如上例中:

145.13.3.10/24。表示的是IP地址为145.13.3.10的主机IP,子网掩码的高24位为全1。因此网络地址的高24位与该IP地址相同即145.13.3.0。

子网掩码的高24位为全1,等价于 11111111.11111111.11111111.00000000,即255.255.255.0

所以,在路由表中既要有目的网络地址,也要有该网络的子网掩码,才能判断目的IP是否与目的网络地址对应。

3.3 同样的ip和不同的子网掩码可以得出相同的网络地址

已知IP地址是141.14.72.24,子网掩码是255.255.192.0 ,求出网络地址。 这里的网络地址就是指网络号+子网号,剩余补零,得到141.14.64.0。

注意:此时我们仍是经典模式,子网掩码不能记录为(141.14.72.24/18)形式,因为这是CIDR模式下的记录方式。

如果IP地址是141.14.72.24,子网掩码是255.255.224.0 ,网络地址也是141.14.64.0。

说明同样的ip和不同的子网掩码可以得出相同的网络地址。

3.4 B类地址可以使用A类的子网掩码吗?

初次接触子网掩码时,会有这样的疑问,B类地址可以使用A类的子网掩码吗?

如果没有了解CIDR之前,我们的认识是这样的:
在这里插入图片描述

  • A类地址,需要从主机号选至少一个当做子网号,那么子网就必须以前八位都是1开头
  • B类地址的子网掩码,需要从主机号选至少一个当做子网号,那么子网就必须以前16位都是1开头

在经典模式下,B类地址不可以使用A类的子网掩码,否则怎么区分A类地址和B类地址啊!

但是有了CIDR之后,就可以,此时已经不区分ABCD类地址了,统一使用无类型子网和路由来处理,子网掩码可以是1位到32位。

3.5 使用子网时分组的转发(数据发送)

在划分子网的情况下,分组转发的算法必须做相应的改动。此时,需要用到子网掩码了。简单原理是:有了子网后,目标路由器也不知道一个IP归属于自己的哪个子网,但是有个定理,通过某个子网Sub1的掩码,可以计算出网络号v1,如果v1与Sub1归属的网络号相同,那么则匹配成功,否则匹配失败。如果路由表匹配完了,都失败了,则算异常。

我们应当注意到,使用子网划分后,路由表必须包含以下三项内容:目的网络地址、子网掩码和下一跳地址。

在划分子网的情况下,路由器转发分组的算法如下:
(1)从收到的数据报的首部提取目的IP地址。
(2)先判断是否为直接交付。对路由器直接相连的网络逐个进行检查:用各网络的子网掩码和。逐位相“与 "(AND操作 ),看结果是否和相应的网络地址匹配。若匹配,则把分组进行直接交付(当然还需要把。转换成物理地址,把数据报封装成帧发送出去),转发任务结束。否则就是间接交付,执行(3)。
(3)若路由表中有目的地址为。的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行(4)
(4)对路由表中的每一行(目的网络地址,子网掩码,下一跳地址),用其中的子网掩码和。逐位相“与 "(AND操作 ),其结果为N。若N与该行的目的网络地址匹配,则把数据报传送给该行指明的下一跳路由器;否则,执行(5)。
(5)若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行(6)。
(6)报告转发分组出错。

【例4-4】图4-24有三个子网,两个路由器,以及路由器R1 中的部分路由表。现在
源 主 机 周 向 目 的 主 机 马 发 送 分 组 。 试 讨 论 R 1 收 到 H 1 向 电 发 送 的 分 组 后 查 找 路 由 表 的过程。

在这里插入图片描述
【解】源主机H1向目的主机H2发送的分组的目的地址是H2的IP地址128.30.33.138。 源主机H1 首先要进行的操作是要判断:发送的这个分组,是在本子网上进行直接交付还是要通过本子网上的路由器进行间接交付?

源主机H1 把本子网的“子网掩码2 5 5. 2 5 5 . 2 5 5 . 1 2 8 ”与目的主机H2 的“ I P地址128.30.33.138”逐位相“与”(即逐位进行AND操作),得出128.30.33.128,它不等于H1 的网络地址( 128.30.33.0) 这说明H2与H1不在同一个子网上。因此H1不能把分组直接交付H2,而必须交给子网上的默认路由器R1,由R1来转发。

路由器R1 在收到一个分组后,就在其路由表中逐行寻找有无匹配的网络地址。
先看R1 路由表中的第一行。用这一行的“子网掩码255.255.255.128”和收到的分组的“目的地址128.30.33.138”逐位相“与”(即逐位进行AND操作),得出128.30.33.128。然后和这一行给出的目的网络地址128.30.33.0 进行比较。但比较的结果不一致(即不匹配)。

用同样方法继续往下找第二行。用第二行的“子网掩码 255.255.255.128” 和该分组的“目的地址1 2 8 . 3 0 . 3 3 . 1 3 8 ”逐位相“与”(即逐位进行A N D操作),结果也是128.30.33.128。这个结果和第二行的目的网络地址128.30.33.128相匹配,说明这个网络(子网2) 就是收到的分组所要寻找的目的网络。于是不需要再继续查找下去。氏把分组从接口1直接交付主机H2 (它们都在一个子网上)。

4. 特殊的IP地址

与上述的ABC类相同,主机号为全0的表示“该网络”,主机号为全1的表示“所有主机”即广播地址。127.开头的为本机环回测试,一般为127.0.0.1。

0.0.0.0:

常用于寻找自己的IP地址,例如在我们的RARP,BOOTP和DHCP协议中,若某个未知IP地址的无盘机想要知道自己的IP地址,它就以255.255.255.255为目的地址,向本地范围(具体而言是被各个路由器屏蔽的范围内)的服务器发送IP请求分组。

回环地址:

127.0.0.0/8被用作回环地址,回环地址表示本机的地址,常用于对本机的测试,用的最多的是127.0.0.1。

A、B、C类私有地址:

私有地址(private address)也叫专用地址,它们不会在全球使用,只具有本地意义。

A类私有地址:10.0.0.0/8,范围是:10.0.0.0~10.255.255.255

B类私有地址:172.16.0.0/12,范围是:172.16.0.0~172.31.255.255

C类私有地址:192.168.0.0/16,范围是:192.168.0.0~192.168.255.255

5. CIDR

由于A类的所能派发的网络号有限,而C类网络能连接的主机个数有相对较少,所以一般的单位在申请网络时,都会申请B类网络,这就导致了B类网络的严重缺乏。

所以,开始放弃IP地址的分类,采用任意长度分割IP地址的网络标识和主机标识,它与ABC类的划分没有任何关系。称为CIDR。它可以不受IP地址分类的限制,自由进行分配。

此时的IP地址可以表示为:IP地址= 网络号+主机号(这个网络号可以是任意长度的)。

当申请到一个任意长度的网络号之后,也可以在网络内进行子网划分。所以对于任一个子网也对应一个子网掩码。使用方法与上述相同。

CIDR更有效的利用了当前的IPv4地址,同时也减轻了路由器的负担。它可以将多个连续C类地址合并为一个网络(和你宝贵的个数以2,4,8,…呈现)。例如:将两个C类网络:192.168.224.0和192.168.225.0合并为一个网络。此时合并后的网络中可以连接的主机数增加到2^9-2=510台。在未合并之前,需要在路由表中占用两行来表示两个C类网络,合并后只需用一行就可以表示。

5.1 CIDR特性总结

废弃了传统的A类、B类、C类地址及其子网划分的概念。

这样有什么好处?

此时采用两级编址:IP地址= 网络号+主机号

注意:此时没有子网概念了。

好处是可以用任意的子网掩码对任意的网络进行子网划分,以前IP归属于A-E类,选用子网掩码时,有隐形的约束条件的,你只能把A类地址按 /8、B类地址按 /16、C类地址按 /24为单位分配,然后在内部划分子网。

CIDR划分后,例如可以把一个B类地址划分为若干个子网,每个子网可以分配给不同的单位,在以前,只能按网络号分配,可能导致分配一个很大的资源,该单位用不完,比较浪费。

在这里插入图片描述

  • 传统C类地址:206.0.68.0为例,如果要划分子网,只能从绿色开始占用一些bit位
    分类地址策略,分配给单位的是一个网络号,特别对于A类地址和B类地址,太大了,浪费严重

  • CIDR地址:206.0.68.0/18 18代表前面18个1作为子网掩码,CIDR把一个C类地址用一个B类的子网掩码进行划分,这就是打破常规的划分,并且没有子网概念了

    可以把CIDR格式下的一个CIDR地址块(也是多个ip)分配给一个单位,这样,这个单位可以获得一个比较小的号段,这样就避免浪费和减轻IP不够分的问题。

5.2 样例演示

图4-25给出的是CIDR地址块分配的例子。假定某ISP已拥有地址块206.0.64.0/18 (相当于有64个C类网络)。现在某大学需要800个IP地址。ISP可以给该大学分配一个地址块206.0.68.0/22,它包括1024 ( 即210) 个IP地址,相当于4个连续的C类/24地址块,占该ISP拥有的地址空间的1/16。这个大学然后可自由地对本校的各系分配地址块,而各系还可再划分本系的地址块。

CIDR的地址块分配有时不易看清,这是因为网络前缀和主机号的界限不是恰好出现在整数字节处。只要写出地址的二进制表示(从图中的地址块的二进制表示中可看出,实际上只需要将其中的一个关键字节转换为二进制的表示即可),弄清网络前缀的位数,就不会把地址块的范围弄错。
在这里插入图片描述
图4-25看出,大学得到的CIDR网段是ISP的一个子集:
在这里插入图片描述
大学下面可以继续分为好多系,但是所有的系都是大学的子集,所有子集之和是全集(可以允许部分不再划为子集),划分的时候不能出现交集,下面的图侧重父子关系,红色框是绿色框的子集或孙子集:
在这里插入图片描述
划分的时候,都是子集关系,但是子集还可以继续划分,我称之为孙子集,下面的图看到一系是大学的儿子集,位数相差1位,二其实是大学的孙子集,三系、四系是大学的重孙集:
在这里插入图片描述
下面侧重三系和四系的关系,平级关系,各占50%份额:
在这里插入图片描述

总结下划分的原理:划分的子集总和是全集,就像分苹果,有一袋苹果,共1000个,每个子网对应一个框,最后框里的所有苹果总和不变(当然可以舍弃某些号段)。

同一个苹果不能放进2个框,但是可以把一个苹果放进框1,然后把框1放进另一个框2内,呈现嵌套的关系。

在这里插入图片描述

一旦CIDR被划分后,表示一个号段区间,范围是[掩码剩余位数补零,掩码剩余位数补1]。由于二进制某个bit位只能是0或1,每个CIDR可以进一步划分为子集时,呈现 2的倍数相关的子集,相邻的掩码,/22 可以划分为2个/23,一个/23的可以划分为2个/24的,计算出一个/22的可以划分为4个/24的。

那么假设某个CIDR 是xxx*,则可以进一步划分2个子集,sub1为 xxx0和sub2 为xxx1,各占50%,而sub1可以进一步划分为2个子集,sub10为 xxx01* 和 sub11为 xxx1*,这样,呈现的效果相对于初始的CIDR,可以划分出原来的 50%(sub1、sub2),25%(sub10、sub11),12.5%等作为子集。

5.3 最长前缀匹配

6. 总结

ip地址划分为五类,但是可用性差,容易造成浪费,因此采用子网划分,即A类地址可以划分为多个子网,那么如果划分子网呢?即通过子网掩码运算,可以分离出“子网前缀+子网”,其中子网前缀就是网络号

参考

IP协议------网段划分

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐