计算机网络-网络层-超网

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机网络-网络层-超网相关的知识,希望对你有一定的参考价值。

参考技术A 在一个划分子网的网络中可同时使用几个不同的子网掩码。使用变长子网掩码VLSM(Variable Length Subnet Mask)可进一步提高IP地址资源的利用率。在VLSM的基础上又进一步研究出无分类编址方法,它的正式名字是 无分类域间路由选择CIDR (Classless Inter-Domain Routing,CIDR的读音是“sider'”)。

CIDR最主要的特点有两个:

(I)CIDR把32位的IP地址划分为前后两个部分。前面部分是“网络前缀”(network-prefix)(或简称为“前缀”),用来指明网络,后面部分则用来指明主机。因此CIDR使IP地址从三级编址(使用子网掩码)又回到了两级编址,但这已是无分类的两级编址。其记法是:

            IP地址:=<网络前缀>,<主机号>   (4-3)

CIDR还使用“斜线记法”(slash notation),或称为CIDR记法,即在IP地址后面加上斜线“/”,然后写上网络前缀所占的位数。

(2)CIDR把网络前缀都相同的连续的IP地址组成一个“CIDR地址块”。我们只要知道CIDR地址块中的任何一个地址,就可以知道这个地址块的起始地址(即最小地址)和最大地址,以及地址块中的地址数。例如,已知IP地址128.14.35.7/20是某CIDR地址块中的一个地址,现在把它写成二进制表示,其中的前20位是网络前缀,而后面的12位是主机号:

            128.14.35.7/20= 1000 0000 0000 1110 0010 0011 0000 0111

这个地址所在的地址块中的最小地址和最大地址可以很方便地得出:找出 地址掩码(斜线后面的数字个数是掩码地址1的个数, 20位)中1和0的交界处 发生在地址中的哪一个字节。现在是在第三个字节,取后面12 都写成0是最小地址,写成1为最大地址。

最小地址:128.14.32.0       1000  0000 0000 1110 0010 0000 0000 0000

最大地址:128.14.47.255   1000 0000 0000 1110 0010 1111 1111 1111

以上这两个特殊地址的主机号是全0和全1的地址。一般并不使用。通常只使用在这两个特殊地址之间的地址。 这个地址块共有2^12个地址(2 的主机号位数次幂) 。我们可以用地址块中的最小地址和网络前缀的位数指明这个地址块。例如,上面的地址块可记为128.14.32.0/20。在不需要指出地址块的起始地址时,也可把这样的地址块简称为“/20地址块”。

为了更方便地进行路由选择,CIDR使用32位的地址掩码(address mask)。地址掩码由一串1和一串0组成,而1的个数就是网络前缀的长度。虽然CIDR不使用子网了,但由于目前仍有一些网络还使用子网划分和子网掩码,因此CIDR使用的地址掩码也可继续称为子网掩码。例如,/20地址块的地址掩码是:1111 1111 1111 1111 1111 0000 0000 0000(20个连续的1)。 斜线记法中,斜线后面的数字就是地址掩码中1的个数。

在“CIDR不使用子网”是指CIDR并没有在32位地址中指明若干位作为子网字段。但分配到一个CIDR地址块的单位,仍然可以在本单位内根据需要划分出一些子网。这些子网也都只有一个网络前缀和一台主机号字段,但子网的网络前缀比整个单位的网络前缀要长些。例如,某单位分配到地址块/20,就可以再继续划分为8个子网(即需要从主机号中借用3位来划分子网)。这时每一个子网的网络前缀就变成23位(原来的20位加上从主机号借来的3位),比该单位的网铭前缀多了3位。

由于一个CIDR地址块中有很多地址,所以在路由表中就利用CIDR地址块来查找目的网络。这种地址的聚合常称为 路由聚合 (route aggregation),它使得路由表中的一个项目可以表示原来传统分类地址的很多个(例如上干个)路由, 路由聚合也称为构成超网 (supemetting)。路由聚合有利于减少路由器之间的路由选择信息的交换,从而提高了整个互联网的性能。

CIDR记法有多种形式,例如,地址块10.0.0.0/10可简写为10/10,也就是把点分十进制中低位连续的0省略。另一种简化表示方法是在网络前缀的后面加一个星号*,如:0000101000*意思是:在星号*之前是网络前缀,而星号◆表示P地址中的主机号,可以是任意值。

前缀位数不是8的整数倍时,需要进行简单的计算才能得到一些地址信息。表47给出了最常用的CIDR地址块。表中的K表示2^10=1024,网络前缀小于13或大于27都较少使用。在“包含的地址数”中没有把全1和全0的主机号除外。

从表4-7可看出,每一个CIDR地址块中的地址数一定是2的整数次幂。CIDR地址块多数可以包含多个C类地址(是一个C类地址的2”倍,n是整数),这就是“ 构成超网 ”这一名词的来源。

使用CIDR的一个好处就是可以更加有效地分配PV4的地址空间,可根据客户的需要分配适当大小的CIDR地址块。假定某ISP已拥有地址块206.0.64.0/18(相当于有64个C类网络)。现在某大学需要800个IP地址。ISP可以给该大学分配一个地址块206.0.68.0/22,它包括1024(即2^10)个1P地址,相当于4个连续的C类(/24地址块),占该ISP拥有的地址空间的1/16。这个大学然后可自由地对本校的各系分配地址块,而各系还可再划分本系的地址块。

从图4-25可以清楚地看出地址聚合的概念。这个ISP共拥有64个C类网络。如果不采用CIDR技术,则在与该SP的路由器交换路由信息的每一个路由器的路由表中,就需要有64个项目,但采用地址聚合后,就只需用路由聚合后的一个项目206.0.64.0/18就能找到该ISP,同理,这个大学共有4个系,在1SP内的路由器的路由表中,也需使用206.0.68.022这个项目。这个项目好比是大学的收发室。凡寄给这个大学任何一个系的邮件,邮递员都不考虑大学各个系的地址,而是把这些邮件集中投递到大学的收发室,然后由大学的收发室再进行下一步的投递。这样就减轻了v递员的工作量(相当于简化了路由表的查找)。

从图4-25下面表格中的二进制地址可看出,把四个系的路由聚合为大学的一个路由(即构成超网),是将网络前缀缩短。 网络前缀越短,其地址块所包含的地址数就越多。而在三级结构的P地址中,划分子网是使网铬前缀变长。

在使用CIDR时,由于采用了网络前缀这种记法,IP地址由网络前缀和主机号这两个部分组成,因此在路由表中的项目也要有相应的改变。这时, 每个项目由“网络前缀”和“下一跳地址”组成 。但是在查找路由表时可能会得到不止一个匹配结果。这样就带来一个间题:我们应当从这些匹配结果中选择哪一条路由呢?

答案是:应当从匹配结果中 选择具有最长网络前缀的路由 。这叫做 最长前缀匹 配longest-.prefix matching) ,这是因为网铬前缀越长,其地址块就越小,因而路由就越具体(more specific)。最长前缀匹配又称为最长匹配或最佳匹配,为了说明最长前缀匹配的概念。

假定大学下属的四系希望IS把转发给四系的数据报直接发到四系面不要经过大学的路由器,但又不愿意改变自己使用的P地址块。因此,在SP的路由器的路由表中,至少要有以下两个项目,即206.0.68.0/22(大学)和206.0.71.128/25(四系)。现在假定ISP收到一个数据报,其目的IP地址为D=206.0.71.130。把D分别和路由表中这两个项目的掩码逐位相“与”(AND操作)。将所得的逐位AND操作的结果按顺序写在下面:

D和 1111 1111 1111 1111 1111 11 00 0000  0000逐位相“与” = 206.0.68.0/22 匹配

D和 1111 1111 1111 1111 1111 1111 1 000 0000逐位相“与” = 206.0.71.128/25 匹配

不难看出,现在同一个IP地址D可以在路由表中找到两个目的网络(大学和四系)和该地址相匹配。根据 最长前缀(1的位数) 匹配的原理,应当选择后者,把收到的数据报转发到后一个目的网络(四系),即选择两个匹配的地址中更具体的一个。

从以上的讨论可以看出,如果IP地址的分配一开始就采用CIDR,那么我们可以按网络所在的地理位置来分配地址块,这样就可大大减少路由表中的路由项目。例如,可以将世界划分为四大地区,每一地区分配一个CIDR地址块:

地址块194/7(194.0.0.0至195255.255,25)分配给欧洲:

地址块198/7(198.0.0.0至199.255.255,255)分配给北类洲

地址块2007(200.0.0.0至201255.255.255)分配给中美洲和南美洲:

地址块202/7(202.0.0.0至203255.255.255)分配给亚洲和太平洋地区,

上面的每一个地址块包含有钓3200万个地址,这种分配地址的方法就使得IP地址与地理位置相关联。它的好处是可以大大压缩路由表中的项目数。例如,凡是从中国发往北美的IP数据报(不管它是地址块198/7中的哪一个地址)都先送交位于美国的一个路由器,因此在路由表中使用一个项目就行了。

使用CIDR后,由于要寻找最长前缀匹配,使路由表的查找过程变得更加复杂了。当路由表的项目数很大时,怎样设法减小路由表的查找时间就成为一个非常重要的问题。例如,连接路由器的线路的速率为10Gbit/s,而分组的平均长度为2000bit,那么路由器就应当平均每秒钟能够处理500万个分组(常记为5Mpps)。或者说,路由器处理一个分组的平均时间只有200s(1ns=10^-9秒)。因此,查找每一个路由所需的时间是非常短的。

对无分类编址的路由表的最简单的查找算法就是对所有可能的前缀进行循环查找。例如,给定一个目的地址D。对每一个可能的网络前缀长度M,路由器从D中提取前M个位成一个网络前缀,然后查找路由表中的网络前缀。所找到的最长匹配就对应于要查找的路由。

"这种最简单的算法的明显缺点就是查找的次数太多。最坏的情况是路由表中没有这个路由。在这种情况下,算法仍要进行32次(具有32位的网络前缀是一个特定主机路由)。就是要找到一个传统的B类地址(即/16),也要查找16次。对于经常使用的歌认路由,这种算法都要经历31次不必要的查找。"

为了进行更加有效的查找,通常是把无分类编址的路由表存放在一种层次的数据结构中,然后自上而下地按层次进行查找。这里最常用的就是 二叉线索 (binary trie),它是一种特殊结构的树。IP地址中从左到右的比特值决定了从根节点逐层向下层延伸的路径,而二叉线索中的各个路径就代表路由表中存放的各个地址。

图4-26用一个例子来说明二叉线索的结构。图中给出了5个IP地址。为了简化二叉线索的结构,可以先找出对应于每一个P地址的唯一前缀(unique prefix)。所谓唯一前缀就是在表中所有的P地址中,该前缀是唯一的。这样就可以用这些唯一前缀来构造二叉线索。在进行查找时,只要能够和唯一前缀相匹配就行了。

从二叉线索的根节点自顶向下的深度最多有32层,每一层对应于IP地址中的一位。一个IP地址存入二叉线索的规则很简单。先检查IP地址左边的第一位,如为0,则第一层的节点就在根节点的左下方;如为1,则在右下方。然后再检查地址的第二位,构造出第二层的节点。依此类推,直到唯一前缀的最后一位。由于唯一前缀一般都小于32位,因此用唯一前缀构造的二叉线索的深度往往不到32层。图中较粗的折线就是前缀0101在这个二叉线索中的路径。二叉线索中的小圆圈是中间节点,而在路径终点的小方框是叶节点(也叫做外部节点)。每个叶节点代表一个唯一前缀。节点之间的连线旁边的数字表示这条边在唯一前缀中对应的比特是0或1。

假定有一个IP地址是1001 1011    0111 1010   0000 0000     0000 0000,需要查找该地址是否在此二叉线索中。我们从最左边查起。很容易发现,查到第三个字符(即前缀10后面的0)时,在二叉线索中就找不到匹配的,说明这个地址不在这个二叉线索中。

以上只是给出了二叉线索这种数据结构的用法,而并没有说明“与唯一前缀匹配”和“与网络前缀匹配”的关系。显然,要将二叉线索用于路由表中,还必须使二叉线索中的每一个叶节点包含所对应的网络前缀和子网掩码。当搜索到一个叶节点时,就必须 将寻找匹配的目的地址和该叶节点的子网掩码进行逐位“与”运算,看结果是否与对应的网络前缀相匹配 。若匹配,就按下一跳的接口转发该分组。否则,就丢弃该分组。

总之,二叉线索只是提供了一种可以快速在路由表中找到匹配的叶节点的机制。但这是否和网络前缀匹配,还要和子网掩码进行一次逻辑与的运算。

“为了提高二叉线索的查找速度,广泛使用了各种 压缩技术 。例如,在图4-26中的最后两个地址,其最前面的4位都是1011。因此,只要一个地址的前4位是1011,就可以跳过前面4位(即压缩了4个层次)而直接从第5位开始比较。这样就可以减少查找的时间。当然,制作经过压缩的二叉线索需要更多的计算,但由于每一次查找路由表时都可以提高查找速度,因此这样做还是值得的。”

计算机网络 网络层(中)


继: 网络层(上)

3.划分子网和构造超网

3.1划分子网

引出问题:两级IP到三级IP:给每个网络分配一个网络号会使得路由表太大,两级IP地址不够灵活。
解决方案:划分子网:在IP中增加“子网号字段”,使两级IP变三级,这种方法叫划分子网。
划分子网是单位内部的事情,对外表现出未划分。实施做法:从主机号借用若干位作为子网号。
在这里插入图片描述

IP地址 ::= {<网络号>, <子网号>, <主机号>}
路由转发过程大概为:找到本网络上的路由器—>按目的网络号、子网号找目的子网—>交付I给目的主机。
划分子网的优点:1.减小了IP地址的浪费 2.网络组织更灵活 3.便于维护和管理

存在问题:从IP数据报首部无法判断源主机或目的主机所连网络是否进行了子网划分。
解决思路:使用子网掩码,找出IP地址中的子网部分。连1包含网络号、主机号;连0囊括主机号。
在这里插入图片描述
此时,(IP地址) AND (子网掩码)=网络地址
默认子网掩码:A类地址的:255.0.0.0 B类地址的:255.255.0.0 C类地址的:255.255.255.0
路由表中除了给出目的网络地址外,还要给出该网络的子网掩码。
**注意:**计算子网数、子网下的主机数的时候,减二。(去除全0全1

3.2使用子网时分组的转发

划分子网后存在的问题:从IP地址不能唯一地得出网络地址,因为取决于子网掩码,但数据报并不提供子网掩码。
划分子网之后转发分组的流程:
从分组的首部提取IP地址—>先看是否能直接交付(与本子网掩码AND),否则交给路由器—> 是否是特定主机路由—> IP与各个子网掩码相与选取网络及路由器—>执行默认路由—>发送出错

3.3无分类编址CIDR(构造超网)

出现问题:B类地址即将分配完毕,互联网主干的路由表项目急剧增长,IPv4将全部耗尽。
解决方案:使用变长子网掩码(VLSM),进一步研究出无分类域间路由选择(CIDR)

CIDR:1. 消除了A,B,C,类地址及划分子网的概念,从而更有效分配IPv4空间。2. 使用网络前缀来代替网络号和子网号。3. IP地址从三级回到了两级编址。(无分类即网络号+子网号=网络前缀。
在这里插入图片描述
使用斜线记法,斜线后表示网络前缀的位数。例 220.78.168.0/24

CIDR地址块:网络前缀都相同的连续IP地址组成CIDR地址块。
在这里插入图片描述
全0,全1的主机号地址一般不使用。

构成超网(路由聚合):一个CIDR地址块可以表示很多地址,地址的聚合称为路由聚合。
聚合的意义:有利于减少路由器之间的路由选择信息的交换,提高互联网性能。更加有效地分配IPv4地址空间,可根据用户需求分配适当大小的CIDR地址块。
CIDR地址块中地址数一定是2的整数次幂。前缀越短,地址块包含地址越多。三级结构IP地址中,划分子网使网络前缀变长。

使用CIDR时,有最长前缀匹配准则(最佳匹配):在查找路由表时可能会得到不止一个匹配结果,从匹配结果中选择具有最长网络前缀的路由

使用二叉线索查找路由表:

4. 网际控制报文协议(ICMP)

4.1 ICMP报文的种类

研究来源:为了更有效地转发IP数据报和提高交付成功的机会,网际层使用ICMP
ICMP报文格式:
在这里插入图片描述
ICMP报文主要分为两类:差错报告报文,询问报文。
差错报告报文有:终点不可达 、时间超过 、参数问题 、改变路由 、
询问报文有:会送请求和回答报文,时间戳请求和回答报文

4.2 ICMP的应用举例

PING:用于测试两主机之前的连通性。使用了ICMP回送请求与回送回答的报文。PING是应用层直接使用网络层ICMP的例子,没有通过传输层的TCP或UDP。
Traceroute:用于跟踪一个分组从源点到终点的路径。(利用TTL字段和ICMP实现跟踪

5.互联网的路由选择协议

5.1 有关路由选择的基本概念

1.理想路由选择算法:正确的和完整的、计算上应简单、自适应性、 稳定性、公平性 、是最佳的。
子适应性考虑,分为静态和动态路由选择策略。
静态:非自适应路由选择:简单、开销小,不能及时适应网络状态变化
动态:自适应路由选择:复杂、开销大,能及时适应网络状态变化

2.分层次的路由选择协议:分层拟解决问题:互联网规模非常大,单位内部相关事宜

自治系统(AS):在单一的技术管理下的一组路由器,而这些路由器使用一种 AS 内部的路由选择协议和共同的度量以确定分组在该 AS 内的路由,同时还使用一种 AS 之间的路由选择协议用以确定分组在 AS之间的路由。
一个 AS 对其他 AS 表现出的是一个单一的和一致的路由选择策略。
在这里插入图片描述
互联网中两大类路由选择协议:内部网关(IGP)、外部网关协议(EGP)。
IGP:在自治系统内部使用的路由选择协议,用的较多的是RIP和OSPF
EGP:源站和目的站在不同的自治系统中,将路由选择信息传递到另一个自治系统中使用EGP,当前使用最多的是BGP-4
在这里插入图片描述

5.2 内部网关协议RIP

  1. RIP 是一种分布式的、基于距离向量的路由选择协议,要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录。
  2. 距离(跳数)定义:路由器到直接连接的网络的距离定义为 1,到非直接连接的网络的距离定义为所经过的路由器数加 1。
  3. RIP 允许一条路径最多只能包含 15 个路由器。
  4. RIP 不能在两个网络之间同时使用多条路由。RIP 选择一个具有最少路由器的路由

RIP协议的三个特点:

  1. 仅和相邻路由器交换信息
  2. 交换的信息是当前本路由器所知道的全部信息
  3. 按固定的时间间隔交换路由信息

路由表的建立:刚刚开始工作时,只知道到直接连接的网络的距离,路由表是空的。经过若干次更新后,所有的路由器最终都会知道到达本自治系统中任何一个网络的最短距离和下一跳路由器的地址。

路由表更新实例:在这里插入图片描述
RIP2协议的报文格式:
一个RIP报文最多包括25个路由,所以报文最大长度为:4+20*25=504。
在这里插入图片描述
RIP协议:好消息传得快,坏消息穿的慢。当网络出现故障时,要经过较长时间才能将消息传送到所有路由器。
RIP协议的优缺点。优点:实现简单,开销小 缺点:1. RIP 限制了网络的规模,它能使用的最大距离为 15 2.路由器之间交换的路由信息随着网络规模的扩大,开销也就增加。 3. “坏消息传播得慢”,使更新过程的收敛时间过长

5.3内部网关协议OSPF

1.基本特点:
OSPF:开放最短路径优先,为客服RIP缺点开发的,原理简单,实现复杂。
三个要点:

  1. 向本自治系统中所有路由器发送信息,这里使用的方法是洪泛法;
  2. 发送的信息就是与本路由器相邻的所有路由器的链路状态;
  3. 只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息。
    由于路由器之间频繁交换信息,因此所有路由器最终都能建立一个链路状态数据库。

OSPF为了应用于规模很大的网络,将一个自治系统再划分为若干个更小的范围,叫做区域,每一个区域都有一个 32 位的区域标识符,一个区域内的路由器最好不超过 200 个。

关于划分区域:
好处:将利用洪泛法交换链路状态信息的范围局限于每一个区域而,减少了整个网络上的通信量。
OSPF 使用层次结构的区域划分。在上层的区域叫做主干区域,作用是用来连通其他在下层的区域。
OSPF不用UDP而是直接用IP数据报传送。
在这里插入图片描述
OSPF 的五种分组类型:问候分组。数据库描述分组。链路状态请求 分组。链路状态更新分组。链路状态确认分组。

OSPF 的其他特点:每隔一段时间要刷新一次数据库中的链路状态
指定的路由器:1.多点接入的局域网采用了指定的路由器的方法,使广播的信息量大大减少。2. 指定的路由器代表该局域网上所有的链路向连接到该网络上的各路由器发送状态信息。

5.4 外部网关协议BGP

BGP:不同自治系统的路由器之间交换路由信息的协议。
BGP发言人:往往是BGP边界路由器,但也可以不是。
BGP协议特点:1.节点数量是自制系统数的量级 2.每个自治系统中BGP发言人的数目是很少的 3. BGP支持CIDR 4. BGP运行时,邻站是交换整个的BGP路由表
BGP-4共使用四种报文:打开、更新、保活、通知报文。

5.5 路由器的构成

典型的结构分为两部分:路由选择部分:控制面; 分组转发部分:数据面
路由选择:根据所选定的路由选择协议构造出路由表,不断地更新和维护路由表。
分组转发包含三部分:输入、输出端口,交换结构:根据转发表处理分组
两者的区别:
转发:路由器根据转发表将用户的 IP 数据报从合适的端口转发出去
路由选择:按照分布式算法,根据从各相邻路由器得到的关于网络拓扑的变化情况,动态地改变所选择的路由。

输入端口对线路上收到的分组的处理 ,输出端口将交换结构传送来的分组发送到线路 。进入队列的分组没有存储空间时被丢弃
交换结构:把分组从一个输入端口转移到某个合适的输出端口,实现方法有: (1) 通过存储器 (2) 通过总线 (3) 通过纵横交换结构

以上是关于计算机网络-网络层-超网的主要内容,如果未能解决你的问题,请参考以下文章

计算机网络网络层

计算机网络 网络层(中)

计算机网络 网络层(中)

有类和无类网络,超网和子网

计算机网络——————网络层

计算机网络——————网络层