王道计算机网络 第四章 网络层

第四章:网络层

 

4.1 网络层功能

概述

网络层的功能:① 异构网络互联;② 路由选择与分组转发;③ 拥塞控制。

 

4.1.1 异构网络互联

概述

网络的互联是指将两个以上的计算机网络,通过一定的方法,用一种或多种通信处理设备(即中间设备)相互联接起来,以构成更大的网络系统。

中继系统

中间设备又称为中间系统或中继系统。 根据中继系统所在层次,有以下四种不同的中继系统:

  1. 物理层中继系统:中继器,集线器 (Hub)。
  2. 数据链路层中继系统:网桥或交换机 。
  3. 网络层中继系统:路由器 。
  4. 网络层以上的中继系统:网关。

虚拟互联网络

网络互联通常是指用路由器进行网络互联和路由选择。路由器就是一台专用计算机,用于在互联网中进行路由选择。

TCP/IP体系在网络互联上采用的做法是在网络层(即IP层)采用了标准化协议,但相互联接的网络则可以是异构的。图(a)表示有许多计算机网络通过一些路由器进行互联。由于参加互联的计算机网络都使用相同的网际协议IP (Internet Protocol),因此可以把互联以后的计算机 网络看成是如图(b)所示的一个虚拟互联网络

image-20210225141256753

虚拟互联网络也就是逻辑互联网络,它的意思就是互联起来的各种物理网络的异构性本来是客观存在的,但是通过使用IP协议就可以使这些性能各异的网络在网络层上看起来好像是一个统一的网络。这种使用IP协议的虚拟互联网络可简称为IP网络

使用虚拟互联网络优点:当互联网上的主机进行通信时,就好像在一个网络上通信一样, 而看不见互联的具体的网络异构细节(如具体的编址方案、路由选择协议等)。

 

4.1.2 路由与转发

概述

路由器主要完成两个功能:一个是路由选择(确定哪一条路径),另一个是分组转发(当一个分组到达时所采取的动作)。

前者是根据特定的路由选择协议构造出路由表,同时经常或定期地和相邻路由器交换路由信息而不断地更新和维护路由表。

后者处理通过路由器的数据流,关键操作是转发表查询、转发以及相关的队列管理和任务调度等。

路由选择

指按照复杂的分布式算法,根据从各相邻路由器所得到的关于整个网络拓扑的变化情况,动态地改变所选择的路由。

分组转发

指路由器根据转发表将用户的IP数据报从合适的端口转发出去。

路由表是根据路由选择算法得出的,而转发表是从路由表得出的。转发表的结构应当使查找过程最优化,路由表则需要对网络拓扑变化的计算最优化。在讨论路由选择的原理时,往往不去区分转发表和路由表,而是笼统地使用路由表这一名词。

 

4.1.3 拥塞控制

概述

在通信子网中,由于出现过量的分组而引起网络性能下降的现象称为拥塞。

分组发送速率与时延的关系

考虑一种情况,某个路由器所在链路的带宽为R B/s,如果IP分组只从它的某一个端口进入,其速率为 rin B/s。 当 rin=R 时,可能看起来是件“好事”,因为链路带宽被充分利用。但是当分组到达路由器的速率接近R时,平均时延急剧增加,并且会有大量的分组被丢弃(路由器端口的缓冲区是有限的),整个网络的吞吐量会骤降,源与目的地之间的平均时延也会变得近乎无穷大

image-20210225142959594

判断网络是否进入拥塞状态的方法是观察网络的吞吐量与网络负载的关系

  • 如果随着网络负载的增加,网络的吞吐量明显小于正常的吞吐量,那么网络就可能进入了轻度拥塞状态;
  • 如果网络的吞吐量随着网络负载的增大反而下降,网络就可能进入拥塞状态
  • 如果网络的负载继续增大,而网络的吞吐量下降到零,网络就可能进入了死锁状态

拥塞控制

拥塞控制主要解决的问题是如何获取网络中发生拥塞的信息,从而利用这些信息进行控制,以避免由于拥塞而出现分组的丢失以及严重拥塞而产生网络死锁的现象

拥塞控制是确保子网能够承载所达到的流量,这是一个全局性的过程,涉及各方面的行为:主机、路由器及路由器内部的转发处理过程等。 单一的增加资源井不能解决拥塞。

拥塞控制方法有两种:

  1. 开环控制:在设计网络时事先将有关发生拥塞的因素考虑周到,力求网络在工作时不产生拥塞。 它是一种静态的预防方法。一旦整个系统启动并运行起来,中途就不再需要修改。 开环控制手段可包括确定何时可接收新流量、何时可丢弃分组及丢弃哪些分组,确定何种调度决策等。 所有这些手段的共性是:在做决定时不考虑当前网络的状态
  2. 闭环控制:事先不考虑有关发生拥塞的各种因素,采用监测网络系统去监视,及时检测到哪里发生拥塞,然后将拥塞信息传到合适的地方,以便调整网络系统的运行,并解决出现的问题。闭环控制是基于反馈环路的概念,它是一种动态的方法

流量控制和拥塞控制的区别

流量控制:往往是指在发送端和接收端之间的点对点通信量的控制。流量控制所要做的就是抑制发送端发送数据的速率,以便使接收端来得及接收。

拥塞控制:必须确保通信子网能够传送待传送的数据,是一个全局性的问题,涉及网络中所有的主机、路由器以及导致网络传输能力下降的所有因素。

 

4.2 路由算法

概述

路由算法:① 静态路由与动态路由;② 距离-向量路由算法;③ 链路状态路由算法;④层次路由。

 

4.2.1 静态路由与动态路由

概述

路由器转发分组是通过路由表转发的,而路由表是通过各种算法得到的。从能否随网络的通信量或拓扑自适应地进行调整变化来划分,路由算法可分为两大类:静态路由算法 & 动态路由算法

静态路由算法

概念:又称为非自适应路由算法,指由网络管理员手工配置的路由信息。当网络的拓扑结构或链路的状态发生变化时,网络管理员需要手工去修改路由表中相关的静态路由信息。

优点: 简便、可靠,在负荷稳定、拓扑变化不大的网络中运行效果很好,广泛用于高度安全性的军事网络和较小的商业网络。

缺点:路由更新慢,大型和复杂的网络环境不适用。一方面,网络管理员难以全面地了解整个网络的拓扑结构;另 一方面,当网络的拓扑结构和链路状态发生变化时,路由器中的静态路由信息需要大范围地调整,这一工作的难度和复杂程度非常高。

动态路由算法

概念:又称为自适应路由算法,指路由器上的路由表项是通过相互联接的路由器之间彼此交换信息,然后按照一定的算法优化出来的,而这些路由信息是在一定时间间隙里不断更新,以适应不断变化的网络,以随时获得最优的寻路效果。

优点:路由更新快,适用大型网络,及时响应链路费用或网络拓扑变化,能改善网络的性能并有助于流量控制。

缺点:算法复杂,会增加网络的负担,有时因对动态变化的反应太快而引起振荡,或反应太慢而影响网络路由的一致性。

常用的动态路由算法可分为两类:距离-向量路由算法和链路状态路由算法

  • 分散性距离向量路由算法

    使用RIP协议,路由器只掌握物理相连的邻居及链路费用。

  • 全局性-链路状态路由算法

    使用OSPF协议,所有路由器掌握完整的网络拓扑和链路费用信息。

 

4.2.2 距离-向量路由算法

概述

在距离-向量路由算法中,所有的结点都定期地将它们的整个路由选择表传送给所有与之直接相邻的结点。这种路由选择表包含:① 每条路径的目的地(另一结点);② 路径的代价(也称距离) 。

注意:这里的距离是一个抽象的概念,如RIP就将距离定义为“跳数”。跳数指从源端口到达目的端口所经过的路由个数,经过一个路由器跳数加1。

算法触发条件

在这种算法中,所有的结点都必须参与距离向量交换,以保证路由的有效性和一致性,也就是说,所有的结点都监听从其他结点传送来的路由选择更新信息,并在下列情况下更新它们的路由选择表:

  • 被通告一条新的路由,该路由在本结点的路由表中不存在,此时本地系统加入这条新的路由。
  • 发送来的路由信息中有一条到达某个目的地的路由,该路由比当前使用的路由有较短的距离(较小的代价)。此种情况下,就用经过发送路由信息的结点的新路由替换路由表中达到那个目的地的现有路由。

算法优劣

距离-向量路由算法的实质是迭代计算一条路由中的站段数或延迟时间,从而得到到达一个目标的最短(最小代价)通路。它要求每个结点在每次更新中都将它的全部路由表发送给其所有相邻结点。显然,更新报文的大小与通信子网的结点个数成正比,大的通信子网将导致很大的更新报文。由于更新报文发给直接邻接的结点,所以所有的结点都将参加路由选择信息交换。基于这些原因,在通信子网上传送的路由选择信息的数量很容易变得非常大。

最常见的距离-向量路由算法是RIP算法,它采用“跳数”作为距离的度量。

 

4.2.3 链路状态路由算法

概述

链路状态路由算法要求每个参与该算法的结点都有完全的网络拓扑信息,它们执行下述两项任务:

  1. 主动测试所有邻接结点的状态。(两个共享一条链接的结点是相邻结点,它们连接到同一条链路, 或者连接到同一广播型物理网络。)

  2. 定期地将链路状态传播给所有其他的结点 (或称路由结点)。典型的链路状态算法是OSPF算法。

算法主要特征

1、向本自治系统中所有路由器发送信息,这里使用的方式是泛洪法,即路由器通过所有端口向所有相邻的路由器发送信息。而每一个相邻路由器又将此信息发往其所有相邻路由器(但不再发送给刚刚发来信息的那个路由器)。

2、发送的信息就是与路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。所谓“链路状态”就是说明本路由器都和哪些路由器相邻以及该链路的“度量”。对于OSPF算法,链路状态的“度量”主要用来表示费用、距离、时延、带宽等。

3、只有当链路状态发生变化时,路由器才向所有路由器发送此消息。

由于一个路由器的链路状态只涉及相邻路由器的连通状态,因而与整个互联网的规模并无直接关系,因此链路状态路由算法可以用于大型的或路由信息变化聚敛的互联网环境。

算法优点

1、每个路由结点都使用同样的原始状态数据独立地计算路径, 而不依赖中间结点的计算。

2、链路状态报文不加改变地传播,易于查找故障。当一个结点从所有其他结点接收到了报文时,它可以在本地立即计算正确的通路,保证一步会聚。

3、由于链路状态报文仅运载来自单个结点关于直接链路的信息,其大小与网络中的路由结点数目无关,因此,链路状态算法比距离-向量算法有更好的规模可伸展性。

与链路状态路由算法比较

在距离-向量路由算法中,每个结点仅与它的直接邻居交谈,它为它的邻居提供了从自己到网络 中所有其他结点的最低费用估计。

在链路状态路由算法中,每个结点通过广播的方式与所有其他结点交谈,但它仅告诉它们与它直接相连的链路的费用。相较之下,距离-向量路由算法有可能遇到路由环路等问题。

 

4.2.4 层次路由

背景

当网络规模扩大时,路由器的路由表成比例地增大。这不仅消耗越来越多的路由器缓冲区空间,而且需要用更多CPU时间来扫描路由表,用更多的带宽来交换路由状态信息。因此路由选择必须按照层次的方式进行。

层次路由分类

1、内部网关协议 (IGP)

一个自治系统内部所使用的路由选择协议,也称为域内路由选择,具体的协议有RIP和OSPF等。

2、外部网关协议 (EGP)

自治系统之间所使用的路由选择协议,也称为域间路由选择,用于不同自治系统的路由器之间交换路由信息,并负责为分组在不同自治系统之间选择最优的路径。具体的协议有BGP。

优点

当使用层次路由时,OSPF将一个自治系统再划分为若干个区域 (Area) ,每个路由器都知道第在本区域内如何把分组路由到目的地的细节,但不用知道其他区域的内部结构。

采用分层次划分区域的方法虽然使交换信息的种类增多了,同时也使OSPF协议更加复杂了。但这样做却能使每一个区域内部交换路由信息的通信量大大减小,因而使OSPF协议能够用于规模很大的自治系统中。

 

4.3 IPv4

4.3.1 IPv4 分组

概述

IPv4,即现在普遍使用的IP协议(版本为4)。IP协议定义数据传送的基本单元一一IP分组及其确切的数据格式。IP协议也包括一套规则,指明分组如何处理、错误怎样控制。特别是,IP协议还包含非可靠投递的思想,以及与此关联的分组路由选择的思想。

IP数据报格式

一个IP分组由首部和数据两部分组成。首部的前一部分是固定长度的,共20字节,是所有IP分组必须具有的。在首部固定部分的后面是一些可选宇段,其长度是可变的,用来提供错误检测及安全等机制。

image-20201228180305683

IP首部重要字段含义:

  • 版本:指IP协议的版本,目前广泛使用的版本号为4。

  • 首部长度:占4位。以32位为单位,最大值为60字节(15×4字节)。最常用的首部长度是20字节,此时不使用任何选项(即可选字段)。

  • 总长度:占16位。指首部和数据之和的长度,单位为字节,因此数据报的最大长度为 216 -1=65535 字节。以太网帧的最大传送单元 MTU为1500字节,因此当一个IP数据报封装成帧时,数据报的总长度(首部加数据) 一定不能超过下面数据链路层的MTU值。

  • 标识:占16位。它是一个计数器,每产生一个数据报就加1,并赋值给标识字段。但它并不是 “序号” (因为IP是无连接服务)。当一个数据报长度超过网络的MTU时,必须分片,此时每个数据报片都复制一次标识号以便能正确重装成原来的数据报。

  • 标志:占3位。标志字段的最低位为MF,MF=1表示后面还有分片;MF=0表示最后一个分片。标志字段中间的一位是DF,只有当DF=0时才允许分片。

  • 片偏移:占13位。它指出较长的分组在分片后,某片在原分组中的相对位置。片偏移以8个字节为偏移单位,也即每个分片的长度一定是8字节(64位)的整数倍。

  • 生存时间TTL:占8位。即数据报在网络中可通过的路由器数的最大值,标识分组在网络中的寿命,以确保分组不会永远在网络中循环。路由器在转发分组之前,先把TTL减1。若TTL被减为0,则该分组必须丢弃。

  • 协议:占8位。指出此分组携带的数据是使用何种协议,即分组的数据部分应交给哪个传输层协议,如TCP, UDP等。其中值为6表示TCP,值为17表示UDP。

image-20201228180904778
  • 首部检验和:占16位。IP数据报的首部检验和只校验分组的首部,而不校验数据部分。

  • 源地址:占4字节,标识发送方的IP地址。

  • 目的地址:占4字节,标识接收方的IP地址。

  • 可选字段:0~40B,用来支持排错、测量以及安全等措施。

  • 填充:全0,把首部补成4B的整数倍。

IP数据报分片

一个链路层数据报能承载的最大数据量称为最大传送单元(MTU)。因为IP数据报被封装在链路层数据报中,故链路层的MTU严格地限制 着IP数据报的长度,而且在IP数据报的源与目的地路径上的各段链路可能使用不同的链路层协议,有不同的MTU。

当IP数据报的总长度大于链路MTU时,就需要将数据报中的数据分装在两个或更多个较小的IP数据报中,这些较小的数据报叫做片

片在目的地的网络层被重新组装。目的主机使用IP首部中的标识、标志和片偏移字段来完成对片的重组

image-20210226155112079
IP分片例子

① 创建一个长 4000字节的IP数据报 (首部20字节, 数据部分3980字节),源主机为该数据报加上一个标识号777。

② 该数据报到达一个路由器,要转发到一条MTU为1500字节的链路上,故需要将该原始数据报中3980字节数据分配到3个独立的片中 (每个片也是一个IP数据报),形成的每个数据报 (即片) 都具有原始数据报的标识号777。

IP首部中的标志位有3个比特,但只有后2个比特有意义,分别是 MF位 (More Fragment)DF位 (Don’t Fragment)

只有当 DF=0 时, 该IP数据报才可以被分片。MF则用来告知目的主机该IP数据报是否为原始数据报的最后一个片。当MF=1时,表示相应的原始数据报还有后续的片;当MF=0时,表示该数据报是相应原始数据报的最后一个片。目的主机在对片进行重组时,使用片偏移字段来确定片应放在原始IP数据报的哪个位置。

可以看出,由于偏移值的单位是8字节,所以除了最后一个片外,其他所有片中的有效数据载荷都是8的倍数。

③ 当目的主机收到来自同一发送主机的一批数据报时,它可以通过检查数据报的标识号以确定哪些数据报是属于同一个原始数据报的片。

网络层转发分组的流程

网络层的路由器执行的分组转发算法如下:

  1. 从数据报的首部提取目的主机的IP地址D,得出目的网络地址为N。
  2. 若网络N与此路由器直接相连,则把数据报直接交付目的主机D,这就叫路由器的直接交付;否则是间接交付,执行步骤3。
  3. 若路由表中有目的地址为D的特定主机路由(对特定的目的主机指明一个特定的路由,通常是为了控制或测试网络,或出于安全考虑才采用的),则把数据报传送给路由表中所指明的下一跳路由器;否则,执行步骤4。
  4. 若路由表中有到达网络N的路由,则把数据报传送给路由表指明的下一跳路由器;否则,执行步骤5。
  5. 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行步骤6。
  6. 报告转发分组出错。

 

4.3.2 IPv4地址与NAT

IPv4地址

连接在 Internet 中的每一台主机(或路由器)都分配一个32比特的全球唯一的标识符,即IP地址。传统的IP地址是分类的地址,分为A、B、C、D、E五类。

无论哪类IP地址,都由网络号和主机号两部分组成。 即IP地址::={<网络号>,<主机号>}。其中网络号标志主机(或路由器)所连接到的网络。一个网络号在整个因特网范围内必须是唯一的。主机号标志该主机(或路由器)。一个主机号在它前面的网络号所指明的网络范围内必须是唯一的。 由此可见,一个IP地址在整个因特网范围内是唯一的。

分类的IP地址

在各类IP地址中,有一些IP地址用于表示特殊用途,不用于做主机IP地址:

image-20201228235433436
  • 主机号全为0表示本网络本身。例如 202.98.174.0

  • 主机号全为1表示本网络的广播地址,又称直接广播地址。例如 202.98.174.255

  • 127.0.0.0 网络保留作为环路自检( Loopback Test)地址,此地址表示任意主机本身,目的地址为环回地址的IP数据报永远不会出现在任何网络上。

  • 32位全为0,即 0.0.0.0 表示本网络上的本主机。

  • 32位全为1,即 255.255.255.255 表示整个TCP/IP网络的广播地址,又称受限广播地址。

实际使用时由于路由器对广播域的隔离,255.255.255.255 等效为本网络的广播地址。

image-20201229001417505
三种类别的IP地址的使用范围
  • A类地址可用的网络数为27-2,减2的原因是:① 网络号字段全为0的IP地址是保留地址,意思是“本网络”;② 网络号为127为环回测试地址。
  • B类地址可用网络数 为214-1,减1的原因是:128.0 这个网络号是不可指派的。
  • C类地址可用网络数为221-1,减1的原因是:网络号为 192.0.0 的网络是不可指派的。

IP地址重要特点

1、每个IP地址都由网络号和主机号两部分组成, 因此IP地址是一种分等级的地址结构。

分等级的好处是:① IP地址管理机构在分配IP地址时只分配网络号(第一级),而主机号(第二级)则由得到该网络的单位自行分配,方便了IP地址的管理;② 路由器仅根据目的主机所连接的网络号来转发分组(而不考虑目标主机号),从而减小了路由表所占的存储空间。

2、IP地址是标志一个主机(或路由器) 和一条链路的接口。

当一个主机同时连接到两个网络时,该主机就必须同时具有两个相应的IP地址, 每个IP地址的网络号必须与所在网络的网络号相同,且这两个IP地址的网络号是不同的。因此IP网络上的一个路由器必然至少应当具有两 个IP地址 (路由器每个端口必须至少分配一个IP地址)。

3、用转发器或桥接器(网桥等)连接起来的若干个LAN仍然是同一个网络(同一个广播域),因此该LAN中所有主机的IP地址的网络号必须相同,但主机号必须不同。

4、在IP地址中,所有分配到网络号的网络(无论是LAN或WAN)都是平等的。

5、在同一个局域网上的主机或路由器的IP地址中的网络号必须是一样的。路由器总是具有两个或两个以上的IP地址,路由器的每一个端口都有一个不同网络号的IP地址。

网络地址转换

网络地址转换NAT (Network Address Translation),是通过在路由器上安装NAT软件,将专用网络地址 (如企业内部 Intranet) 转换为公用地址(如Internet),从而对外隐藏了内部管理的IP地址,安装了NAT软件的路由器叫NAT路由器,它至少有一个有效的外部全球IP地址

当使用本地地址的主机在和外界通信时, NAT路由器使用NAT转换表将本地地址转换成全球地址,或将全球地址转换成本地地址。 NAT转换表中存放着{本地IP地址: 端口}到{全球IP地址: 端口}的映射。通过{IP地址: 端口}这样的映射方式,就可以让多个私有IP地址映射到同 一个全球IP地址 。

image-20201229093157207

优点:① 它使得整个专用网只需要一个全球IP地址就可以与因特网连通,由于专用网本地IP地址是可重用的,所以NAT大大节省了IP地址的消耗。② 它隐藏了内部网络结构,从而降低了内部网络受到攻击的风险。

私有IP地址

为了网络安全,划出了部分IP地址为私有IP地址。私有IP地址只用于LAN,不用于WAN连接(因此私有IP地址不能直接用于 Internet,必须通过网关利用NAT把私有IP地址转换为 Internet 中合法的全球IP地址后才能用于 Internet),并且允许私有IP地址被LAN重复使用。这有效地解决了IP地址不足的问题。

image-20201228235857793
私有IP地址
  • A类: 1个A类网段,即10.0.0.0~10.255.255.255

  • B类: 16个B类网段,即 172.16.0.0~172.31.255.255

  • C类: 256个C类网段,即 192.168.0.0~192.168.255.255

在因特网中的所有路由器,对目的地址是私有地址的数据报一律不进行转发。这种采用私有IP地址的互联网络称为专用互联网或本地互联网。私有IP地址也称可重用地址

示例

假设一个宿舍办理了 2Mb/s 的电信宽带,那么这个宿舍就获得了一个全球IP地址 (如138.76.29.7),而宿舍内4台主机使用私有地址(如 192.168.0.0 网段)。 宿舍的网关路由器应该开启NAT功能,当路由器从LAN端口收到源IP及源端口号为 192.168.0.2:2233 的数据报时,就将其映射成 138.76.29.7:5001, 然后从WAN端口发送到因特网上。当路由器从WAN端口收到目的IP及目的端口号为 138.76.29.7: 5060 的数据报时,就将其映射成 192.168.0.3:1234,然后从LAN端口发送给相应的本地主机。这样,只需要一个全球地址,就可以让多台主机同时访问英特网。

image-20210226191804109
一个典型的NAT转换表

注意:普通路由器在转发 IP 数据报时,不改变其源IP地址和目的IP地址。 而NAT路由器 在转发IP数据报时,一定要更换其IP地址(转换源 IP地址或目的IP地址)。普通路由器仅工作在网络层,而NAT路由器转发数据报时需要查看和转换传输层的端口号。

 

4.3.3 子网划分与子网掩码、CIDR

子网划分

背景

两级IP地址的缺点 :

① IP地址空间的利用率有时很低;

② 给每一个物理网络分配一个网络号会使路由表变得太大因而使网络性能变坏;

③ 两级的IP地址不够灵活。

概述

从1985年起,在IP地址中又增加了一个“子网号字段”,使两级IP地址变成为三级IP地址。这种做法叫做划分子网。划分子网己成为因特网的正式标准协议。

image-20201229094358411

划分子网的基本思路

  • 划分子网纯属一个单位内部的事情。单位对外仍然表现为没有划分子网的网络。
  • 从主机号借用若干个比特作为子网号,当然主机号也就相应减少了相同的比特。
    • 三级IP地址的结构 : IP地址={<网络号>,<子网号>,<主机号>}。
  • 凡是从其他网络发送给本单位某个主机的IP数据报,仍然是根据IP数据报的目的网络号,先找到连接在本单位网络上的路由器。然后此路由器在收到IP数据报后,再按目的网络号和子网号找到目的子网。最后就把IP数据报直接交付给目的主机。

注意:

  1. 划分子网只是把IP地址的主机号这部分进行再划分,而不改变地址原来的网络号。因此,从一个IP地址本身或IP数据报的首部,并无法判断源主机或目的主机所连接的网络是否进行了子网划分。
  2. [RFC 950]规定,对分类的IPv4地址进行子网划分时,子网号不能为全1或全0。但随着CIDR的广泛使用,现在全1和全0 的子网号也可以使用了,但一定要谨慎使用,要弄清你的路由器所用的路由选择软件是否支持全0或全1的子网号这种用法。
  3. 不论是分类的IPv4地址还是CIDR,其子网中的主机号为全0或全1的地址都不能被指派。子网中的主机号全0的地址为子网的网络号,主机号全1的地址为子网的广播地址
子网掩码

概述

子网掩码是一个与IP地址相对应的长32bit的二进制串,它由一串1和跟随的一串0组成。其中,1对应于IP地址中的网络号及子网号,而0对应于主机号。计算机只需将IP地址和其对应的子网掩码逐位相“与”(逻辑AND运算),就可得出相应子网的网络地址。

现在的因特网标准规定:所有的网络都必须使用子网掩码。如果一个网络没有划分子网,那么就采用默认子网掩码。

由于子网掩码是一个网络或一个子网的重要属性,所以路由器在相互之间交换路由信息时,必须把自己所在网络(或子网)的子网掩码告诉对方。路由表中的每一个条目,除了要给出目的网络地址和下一跳地址外,还需要同时给出该目的网络的子网掩码。

image-20201229100302475
子网掩码与IP地址逐位相与,就得到子网网络地址

使用子网掩码情况

  1. 一个主机在设置IP地址信息的同时,必须设置子网掩码。
  2. 同属于一个子网的所有主机以及路由器的相应端口,必须设置相同的子网掩码。
  3. 路由器的路由表中,所包含的信息其主要内容必须有:目的网络地址、子网掩码、下一跳地址。

使用子网掩码路由器分组转发算法

image-20201229101114233
使用子网时分组的转发
  1. 从收到的分组的首部提取目的IP地址,记为D。
  2. 先判断是否为直接交付。对路由器直接相连的网络逐个进行检查:用各网络的子网掩码和D逐位相“与,看结果是否和相应的网络地址匹配。若匹配,则将分组直接交付,否则就是间接交付,执行步骤3。
  3. 若路由表中有目的地址为D的特定主机路由,则将分组传送给路由表中所指明的下一跳路由器;否则,执行步骤4。
  4. 对路由表中的每一行(目的网络地址,子网掩码,下一跳地址) 中的子网掩码和D逐位相“与”,其结果为N。若N与该行的目的网络地址匹配,则将分组传送给该行指明的下一跳路由器;否则,执行步骤5。
  5. 若路由表中有一个默认路由,则将分组传送给路由表中所指明的默认路由器;否则,执行步骤6。
  6. 报告转发分组出错。
无分类编址CIDR

概述

无分类域间路由选择(CIDR)是在变长子网掩码的基础上提出的一种消除传统A、B、C类网络划分,并且可以在软件的支持下实现超网构造的一种IP地址的划分方法。

主要特点

1、消除了传统的A、B、C类地址以及划分子网的概念,因而可以更加有效地分配IPv4的地址空间。

image-20201229102919190
  • CIDR使用“网络前缀”的概念代替子网络的概念。这样IP地址的无分类两级编址为 IP::={<网络前缀>,<主机号>}。

  • CIDR使用 “斜线记法”(或称CIDR记法:IP地址后加上“/”,然后写上网络前缀 (可以任意长度) 的位数,如128.14.32.0/20)。

  • CIDR 虽然不使用子网,但仍然使用“掩码”这一名词。“CIDR不使用子网” 是指CIDR并没有在32位地址中指明若干位作为子网字段。但分配到一个CIDR地址块的组织,仍可以在本组织内根据需要划分出一些子网。

2、融合子网地址和子网掩码,将网络前缀都相同的连续的IP地址组成 “CIDR地址块”,方便子网划分

image-20201229102854251
  • 一个CIDR地址块可以表示很多地址,这种地址的聚合称为路由聚合,或称为构成超网。路由聚合使得路由表中的一个项目可以表示很多个原来传统分类地址的路由,有利于减少路由器之间的路由选择信息的交换,从而提高网络性能。
image-20201229103723557
路由聚合
  • CIDR地址块中的地址数一定是2的整数次幕,实际可指派的地址数通常为22-2, N 表示主机号的位数,主机号全0代表网络号,主机号全1为广播地址。网络前缀越短,其地址块所包含的地址数就越多。而在三级结构的IP地址中,划分子网是使网络前缀变长。

  • CIDR的优点在于网络前缀长度的灵活性。由于上层网络的前缀长度较短,因此相应的路由表的项目较少。而内部又可采用延长网络前缀的方法来灵活的划分子网。

最长前缀匹配

最长前缀匹配 (最佳匹配):使用CIDR时,路由表中的每个项目由 “网络前缀” 和 “下一 跳地址” 组成。在查找路由表时可能会得到不止一个匹配结果。应当从匹配结果中选择具有最长网络前缀的路由,因为网络前缀越长,其地址块就越小,因而路由就越具体。

CIDR查找路由表的方法:为了进行更加有效的查找最长前缀匹配,通常是将无分类编址的路由表存放在一种层次的数据结构中,然后自上而下地按层次进行查找。这里最常用的数据结构就是二叉线索。

 

4.3.4 ARP协议、DHCP协议与ICMP协议

IP地址与硬件地址

概述

IP地址是网络层使用的地址,它是分层次等级的。硬件地址是数据链路层使用的地址(例如MAC地址),它是平面式的。在网络层及网络层之上使用IP地址, IP地址放在IP数据报的首部,而MAC地址放在MAC帧的首部。通过数据封装,把IP数据报分组封装成为MAC帧之后,数据链路层看不见数据报分组中的IP地址。

由于路由器的隔离,IP网络中无法通过广播方式依靠MAC地址来完成跨网络的寻址,因此在IP网络的网络层只使用IP地址来完成寻址。

寻址过程

  1. 每个路由器依据其路由表(依靠静态路由或动态路由协议生成)选择到目标网络(即主机号全为0的网络地址) 需要转发到的下一跳(路由器的物理端口号或下一网络地址)。
  2. 而IP分组通过多次路由转发到达目标网络后,则改为在目标网络LAN中通过数据链路层的MAC地址以广播方式寻址。这样可以提高路由选择的效率。

特点

  1. 在IP层抽象的互联网上只能看到IP数据报。
  2. 虽然在IP数据报首部中有完整的源IP地址和目的IP地址,但路由器只根据目的IP地址的网络号进行路由选择。
  3. 在局域网的链路层,只能看见MAC帧。而通过路由器转发IP分组时,此IP分组在每个网络中都被路由器解封装和重新封装。因此IP数据报在被路由器转发时其数据链路层封装所使用的MAC地址是在不断改变的。这也决定了无法使用MAC地址跨网络通信。
  4. 尽管互联在一起的网络的硬件地址体系各不相同,但IP层抽象的互联网却屏蔽了下层这些很复杂的细节。只要在网络层上讨论问题,就能够使用统一的、抽象的IP地址研究主机与主机或路由器之间的通信。

注意:路由器由于互联多个网络,因此它不仅有多个IP地址,也有多个硬件地址。

地址解析协议ARP

概述

无论网络层使用什么协议,在实际网络的链路上传送数据帧时,最终必须使用硬件地址。所以需要一种方法来完成IP地址到MAC地址的映射,这就是地址解析协议 ARP(Address Resolution Protocol)

每个主机都设有一个ARP高速缓存,存放本局域网上各主机和路由器的IP地址到MAC地址的映射表,称ARP表。使用ARP协议来动态维护此ARP表。

image-20201229142706768

ARP工作原理

  1. 当主机A欲向本局域网上的某个主机B发送IP数据报时,就先在其ARP高速缓存中查看有无主机B的IP地址。

    • 有:查出其对应的硬件地址,再将此硬件地址写入MAC帧,然后通过局域网将该MAC帧发往此硬件地址。
    • 没有:通过使用目的MAC地址为 FF-FF-FF-FF-FF-FF 的帧来封装并广播ARP请求分组,可以使同一个局域网里的所有主机收到ARP请求。
image-20201229143113499
  1. 当主机B收到该ARP请求后,就会向主机A单播一个ARP响应分组,分组中包含主机B的IP与MAC地址的映射关系。
image-20201229143140472
  1. 主机A在收到后将此映射写入ARP缓存中 (10-20min更新一次) ,然后按查询到的硬件地址发送MAC帧。
image-20201229143202697

注意:

ARP是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题。如果所要找的主机和源主机不在同一个局域网上,那么就要通过ARP协议找到一个位于本局域网上某个路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络。剩下的工作就由下一个网络来做。

② 尽管ARP请求分组是广播发送的,但是ARP响应分组是普通的单播,即从一个源地址发送到一个目的地址。

ARP协议4种典型情况

  1. 发送方是主机,要把IP数据报发送到本网络上的另一个主机。这时用ARP找到目的主机的硬件地址;
  2. 发送方是主机,要把IP数据报发送到另一个网络上的一个主机。这时用ARP找到本网络上的一个路由器的硬件地址,剩下的工作由这个路由器来完成;
  3. 发送方是路由器,要把IP数据报转发到本网络上的一个主机。这时用ARP找到目的主机的硬件地址;
  4. 发送方是路由器,要把IP数据报转发到另一个网络上的一个主机。这时用ARP找到本网络上的一个路由器的硬件地址,剩下的工作由找到的这个路由器完成。

从IP地址到硬件地址的解析是自动进行的,主机的用户对这种地址解析过程是无感知的。只要主机或路由器要和本网络上的另一个己知IP地址的主机或路由器进行通信,ARP协议就会自动地将这个IP地址解析为链路层所需要的硬件地址。

动态主机配直协议DHCP

概述

动态主机配置协议 ( Dynamic Host Configuration Protocol, DHCP) 常用于给主机动态地分配IP地址,它提供了即插即用联网的机制,这种机制允许一台计算机加入新的网络和获取IP地址而不用手工参与。DHCP是应用层协议,它是基于UDP的

DHCP协议工作原理

  1. 需要IP地址的主机在启动时就向DHCP服务器广播发送发现报文,这时该主机就成为DHCP客户。
  2. 本地网络上所有主机都能收到此广播报文,但只有DHCP服务器才回答此广播报文。
  3. DHCP服务器先在其数据库中查找该计算机的配置信息。若找到,则返回找到的信息。若找不到,则从服务器的IP地址池中取一个地址分配给该计算机。DHCP服务器的回答报文叫做提供报文

DHCP使用客户/服务器方式

DHCP服务器聚合客户端交换过程

  1. DHCP客户机广播 “DHCP发现” 消息,试图找到网络中的DHCP服务器,服务器获得一个IP地址。
  2. DHCP服务器收到 “DHCP发现” 消息后,就向网络中广播 “DHCP提供” 消息,其中包括提供DHCP客户机的IP地址和相关配置信息。
  3. DHCP客户机收到 “DHCP提供” 消息,如果接受DHCP服务器所提供的相关参数,则通过广播 “DHCP请求” 消息向DHCP服务器请求提供IP地址。
  4. DHCP服务器广播 “DHCP确认” 消息,将IP地址分配给DHCP客户机。

DHCP协议允许网络上配置多台DHCP服务器,当DHCP客户机发出DHCP请求时,有可能收到多个应答消息。这时,DHCP客户机只会挑选其中一个,通常挑选最先到达的。

DHCP服务器分配给DHCP客户的IP地址是临时的,因此DHCP客户只能在一段有限的时间内使用这个分配到的IP地址。DHCP称这段时间为租用期。租用期的数值应由DHCP服务器自己决定,DHCP客户也可在自己发送的报文中提出对租用期的要求。

DHCP协议的客户端和服务端需要通过广播方式来进行交互,原因是在DHCP协议执行期间,客户端和服务端都没有标识自己身份的IP地址,因此不可能通过单播的形式进行交互。采用UDP而不采用TCP的原因也很明显,TCP协议需要建立连接,如果连对方的IP地址都不知道,更不可能通过双方的套接字建立连接了。

网际控制报文协议ICMP

概述

为了提高IP数据报交付成功的机会,在网络层使用了网际控制报文协议 (Internet Control Message Protocol, ICMP) 来允许主机或路由器报告差错和异常情况。ICMP报文作为IP层数据报的数据,加上数据报的首部,组成IP数据报发送出去。ICMP协议是IP层协议

ICMP报文的种类有两种 ,即ICMP差错报告报文和ICMP询问报文

ICMP差错报告报文

ICMP差错报告报文用于目标主机或到目标主机路径上的路由器向源主机报告差错和异常情况。

发送ICMP差错报告报文五种类型:

  1. 终点不可达:当路由器或主机不能交付数据报时就向源点发送终点不可达报文。
  2. 源点抑制:当路由器或主机由于拥塞而丢弃数据报时,就向源点发送源点抑制报文,使源点知道应当把数据报的发送速率放慢。
  3. 时间超过:当路由器收到生存时间TTL为零的数据报时,除丢弃该数据报外,还要向源点发送时间超过报文。当终点在预先规定的时间内不能收到一个数据报的全部数据报片时,就把己收到的数据报片都丢弃,并向源点发送时间超过报文。
  4. 参数问题:当路由器或目的主机收到的数据报的首部中有的字段的值不正确时,就丢弃该数据报,并向源点发送参数问题报文。
  5. 改变路由(重定向):路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器(可通过更好的路由) 。

不应发送ICMP差错报告报文的几种情况:

  1. 对ICMP差错报告报文不再发送ICMP差错报告报文。
  2. 对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文。
  3. 对具有组播地址的数据报都不发送ICMP差错报告报文。
  4. 对具有特殊地址 (如127.0.0.0或 0.0.0.0) 的数据报不发送ICMP差错报告报文。

ICMP询问报文

ICMP询问报文有四种类型,最常用的是前两类。

  1. 回送请求和回答报文
    • 主机或路由器向特定目的主机发出的询问,收到此报文的主机必须给源主机或路由器发送ICMP回答报文。试目的站是否可达以及了解其相关状态。
  2. 时间戳请求和回答报文
    • 请某个主机或路由器回答当前的日期和时间。用来进行时钟同步和测量时间。
  3. 掩码地址请求和回答报文
  4. 路由器询问和通告报文

ICMP应用

ICMP的两个常见的应用是分组网间探测PING和traceroute

PING ( Packet Internet Groper ):用来测试两个主机之间的连通性,使用的是ICMP回送请求和回答报文。

traceroute:NUIX中的名字,在Windows中是 traceroute,可以用来跟踪分组经过的路由,使用的是ICMP时间超过报文。

注意:PING工作在应用层,它直接使用网络层的ICMP协议,而没有使用传输层的TCP或UDP协议。traceroute/tracert工作在网络层。

 

4.4 IPv6

4.4.1 IPv6主要特点

概述

要解决IP地址耗尽的问题的措施有以下三种:

  1. 采用无类别编址CIDR,使IP地址的分配更加合理。
  2. 采用网络地址转换NAT方法以节省全球IP地址。
  3. 采用具有更大地址空间的新版本的IP协议IPv6。

其中前两种方法只是延长了IPv4地址分配结束的时间,只有第三种方法从根本上解决了IP地址的耗尽问题。

IPv6主要特点

  1. 更大的地址空间。IPv6将地址从IPv4的32位增大到了128位。IPv6的字节数 (16字节) 是IPv4字节数 (4字节) 的平方。
  2. 扩展的地址层次结构。
  3. 灵活的首部格式。
  4. 改进的选项。
  5. 允许协议继续扩充。
  6. 支持即插即用(即自动配置)。
  7. 支持资源的预分配。
  8. IPv6只有在包的源结点才能分片,是端到端的,传输路径中的路由器不能分片,所以从一般的意义上来讲,IPv6不允许分片 (不允许类似IPv4在路由分片)。
  9. IPv6首部长度必须是8B的整数倍,而IPv4首部是4B的整数倍。
  10. 增加了安全性。身份验证和保密功能是IPv6的关键特征。

IPv6主要优势

  1. IPv6有比IPv4长得多的地址。 IPv6的地址用16个字节表示,地址空间是IPv4的 2128-32 = 296 倍,从长远的未来来说,这些地址是绝对够用的。
  2. 改进首部格式,更好地支持选项。一些从前是必要的段现在变成了可选,此外,表示选项的方式的改变还能加快分组的处理速度。
  3. 简化了IP分组头,能更快速处理/转发数据报。它包含8个域 (IPv4是12个域)。这一改变使得路由器能够更快的处理分组,从而可以改善吞吐率。
  4. 支持QOS算法 (Quality of Service,QOS,指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力,是网络的一种安全机制,是用来解决网络延迟和阻塞等问题的一种技术)。

 

4.4.2 IPv6 地址

IPv6数据报

image-20201229170254283
固定40B基本首部
image-20201229170936192
IPv6数据报首部字段

版本:指明了协议版本,总是6。

优先级:区分数据报的类别和优先级。

流标签:“流”是互联网络上从特定源点到特定终点的一系列数据报。所有属于同一个流的数据报都具有同样的流标签。

下一个首部:标识下一个扩展首部或上层协议首部。

跳数限制:相当于IPv4的TTL。

IPv6 & IPv4 区别

  1. IPv6将地址从32位(4B)扩大到128位(16B),更大的地址空间。
  2. IPv6将IPv4的校验和字段彻底移除,以减少每跳的处理时间。
  3. IPv6将IPv4的可选字段移出首部,变成了扩展首部,成为灵活的首部格式,路由器通常不对扩展首部进行检查,大大提高了路由器的处理效率。
  4. IPv6支持即插即用 (即自动配置) ,不需要DHCP协议。
  5. IPv6首部长度必须是8B的整数倍,IPv4首部是4B的整数倍。
  6. lPv6只能在主机处分片,IPv4可以在路由器和主机处分片。
  7. ICMPv6:附加报文类型“分组过大”。
  8. IPv6支持资源的预分配,支持实时视像等要求,保证一定的带宽和时延的应用。
  9. I Pv6取消了协议字段,改成下一个首部字段。
  10. IPv6取消了总长度字段,改用有效载荷长度字段。
  11. IPv6取消了服务类型字段。

IPv6地址表示形式

  • 一般形式

    • 冒号十六进制记法:4BF5:AA12:0216:FEBC: BA5F:039A:BE9A:2170。
  • 压缩形式

    • 4BF5:0000:0000:0000:BA 5F:039A:000A:2176 -> 4BF5:0:0:0:BA5F:39A:A:2176。
  • 零压缩:一连串连续的0可以被一对冒号取代。如 FF05 :0:0:0:0:0:0: B3 -> FF05::B3。

    • 双冒号表示法在一个地址中仅可出现一次

注意:IPv4 地址通常使用点分十进制表示法。

IPv6基本地址类型

  • 单播:就是传统的点对点通信,即一对一通信,可做源地址+目的地址。
  • 多播:一点对多点的通信,分组被交付到一组计算机的每一个,可做目的地址。
  • 任播:IPv6增加的一种类型,任播的目的站是一组计算机,但数据报在交付时只交付其中的一个,通常是距离最近的一个,属于一对多中的一个通信,可做目的地址。

IPv6向IPv4过渡的策略

双栈协议:双协议栈技术就是指在一台设备上同时启用IPv4协议栈和IPv6协议栈。这样的话,这台设备既能和IPv4网络通信,又能和IPv6网络通信。如果这台设备是一个路由器,那么这台路由器的不同接口上,分别配置了IPv4地址和IPv6地址,并很可能分别连接了IPv4网络和IPv6 网络。如果这台设备是一个计算机,那么它将同时拥有IPv4地址和IPv6地址,并具备同时处理这两个协议地址的功能。

隧道技术:通过使用互联网络的基础设施在网络之间传递数据的方式。使用隧道传递的数据 (或负载) 可以是不同协议的数据帧或包。隧道协议将其它协议的数据帧或包重新封装然后通过隧道发送。

image-20201229193819301

 

4.5 路由协议

背景

  • 因特网规模很大
  • 许多单位不想让外界知道自己的路由选择协议,但还想连入因特网

 

4.5.1 自治系统

概述

自治系统 (Autonomous system, AS):在单一的技术管理下的一组路由器,而这些路由器使用一种AS内部的路由选择协议和共同的度量以确定分组在该AS内的路由,同时还使用一种AS之间的路由选择协议用以确定分组在AS之间的路由。

一个自治系统内的所有网络都属于一个行政单位 (如 一个公司、一所大学、一个政府部门等) 来管辖,一个自治系统的所有路由器在本自治系统内都必须是连通的。

 

4.5.2 域内路由与域间路由

概述

自治系统内部的路由选择称域内路由选择,自治系统之间的路由选择称域间路由选择。

两大类路由选择协议

  • 内部网关协议 ( Interior Gateway Protocol, IGP )

即在一个自治系统内部使用的路由选择协议,它与互联网中其他自治系统选用什么路由选择协议无关。目前这类路由选择协议使用得最多,如RIP协议和OSPF协议。

  • 外部网关协议 ( External Gateway Protocol, EGP )

若源站和目的站处在不同的自治系统中,当数据报传到一个自治系统的边界时 (这两个自治系统可能使用不同的IGP),就需要使用一种协议将路由选择信息传递到另一个自治系统中。这样的协议就是外部网关协议EGP。目前使用最多的外部网关协议是BGP-4。

image-20201228172658643

 

4.5.3 RIP协议

概述

  • RIP是一种分布式的基于距离向量的路由选择协议,是因特网的协议标准,最大优点是简单

  • RIP协议规定:

    • 网络中每一个路由器都要维护从它自己到其他每一个目的网络的唯一最佳距离记录 (即一组距离) 。

    • 距离也称为“跳数”,即从源端口到目的端口所经过的路由器个数,经过一个路由器跳数+1。规定从一路由器到直接连接的网络距离为1。

    • RIP认为好的路由就是它通过的路由器的数目少,即优先选择跳数少的路径。

    • RIP允许一条路由最多只能包含15个路由器 (即最多允许15跳),因此距离等于16时,表示网络不可到达。可见RIP协议只适用于小型互联网。

      注意:距离向量路由可能会出现环路的情况,规定路径上的最高跳数的目的是为了防止数据报不断循环在环路上,减少网络拥塞的可能性。

    • RIP默认在任意两个使用RIP协议的路由器之间每30秒广播一次RIP路由更新信息。以便自动建立并维护路由表 (动态维护) 。

    • 在RIP中不支持子网掩码 的RIP广播,所以RIP中每个网络的子网掩码必须相同。但在新的RIP2中,支持变长子网掩码和CIDR。

image-20201229195114935

RIP协议特点

  1. 仅和相邻路由器交换信息。
  2. 路由器交换的信息是当前本路由器所知道的全部信息,即自己的路由表。
  3. 按固定的时间间隔交换路由信息,如每30秒交换一次路由信息,然后路由器根据新信息更新路由表。若超过180s没收到邻居路由器的通告,则判定邻居没了,并更新自己路由表。
    • 路由器刚开始工作时,只知道直接连接的网络的距离 (距离为1) ,接着每一个路由器也只和数目非常有限的相邻路由器交换并更新路由信息。
    • 经过若干次更新后,所有路由器最终都会知道到达本自治系统任何一个网络的最短距离和下一跳路由器的地址,即“收敛”。

距离向量算法

每一个路由表项目都有3个关键数据:① 目的网络N,②距离d,③下一跳路由器X,对于每一个相邻路由器发送过来的RIP报文,进行以下步骤:

1、修改相邻路由器发来的RIP报文中所有表项:对地址为X的相邻路由器发来的RIP报文,先修改此报文中的所有项目:把“下一跳” 字段中的地址都改为X, 并把所有的“距离”字段的值加1。

image-20201229230102364

2、对修改后的RIP报文中的每一个项目,进行以下步骤:

① 原来的路由表中没有目的网络N时,则把该项目添加到路由表中。

② 当原来的路由表中有目的网络N,若下一跳路由器地址是X,则用收到的项目替换原路由表中的项目;若下一跳不是X,原来距离比从X走的距离远则更新,否则不作处理。

3、若180s (RIP默认超时时间为180秒) 还没收到相邻路由器X的更新路由表,则把此相邻路由器记为不可达的路由器,即把距离置为16 (距离为16表示不可达)。

4、返回

RIP协议报文格式

image-20201229230846854

RIP协议是应用层协议,使用UDP传送数据。

一个RIP报文最多个包括25个路由。如超过,必须再用一个RIP报文传送。

RIP优点 & 缺点

优点:实现简单,开销小,收敛过程较快。

缺点

  1. RIP限制了网络的规模,它能使用的最大距离为15 (16表示不可达)。
  2. 路由器之间交换的是路由器中的完整路由表,因此网络规模越大,开销也越大。
  3. 当网络出现故障时,会出现慢收敛现象 (即需要较长时间才能将此信息传送到所有路由器),俗称“坏消息传得慢“,使更新过程的收敛时间长。
image-20201229231744533
正常情况
image-20201229231814688
异常情况

RIP是应用层协议,它使用UDP传送数据 (端口520)。 RIP协议选择的路径不一定是时间最短的,但一定是具有最少路由器的路径。因为它是根据最少的跳数进行路径选择。

 

4.5.4 OSPF协议

概述

开放最短路径优先OSPF (Open Shortest Path First, OSPF) 协议:“开放” 标明OSPF协议不是受某一家厂商控制,而是公开发表的;“最短路径优先” 是因为使用了Dijkstra提出的最短路径算法SPF。

OSPF最主要的特征就是使用分布式的链路状态协议,是使用分布式链路状态路由算法的典型代表 ,它也是内部网关协议IGP的一种。

基本特点

  1. OSPF向本自治系统中所有路由器发送信息 ,这里使用的方法是洪泛法 (即路由器通过广播方式,向通过输出端口向所有相邻的路由器发送信息,而每一个相邻路由器又再次将此信息发往其所有的相邻路由器) 。

    对比:RIP协议仅向自己相邻的几个路由器发送信息。

  2. 发送的信息就是与本路由器相邻的所有路由器的链路状态(“链路状态”就是说明本路由器和哪些路由器相邻,以及该链路的度量/代价如 费用、距离、时延、带宽等) 。

    对比:在RIP协议中,发送的信息是本路由器所知道的全部信息,即整个路由表。

  3. 只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息,并且更新过程收敛得快,不会出现RIP协议 “坏消息传得慢”的问题。

    对比:在RIP协议中,不管网络拓扑是否发生变化,路由器之间都会定期交换路由表的信息。

  4. OSPF是网络层协议,它不使用UDP或TCP,而是直接IP数据报传送 (其IP数据报首部的协议字段为89)。

    对比:RIP是应用层协议,它在传输层使用UDP协议。

  5. OSPF对不同的链路可根据IP分组的不同服务类型 (TOS) 而设置成不同的代价。因此,OSPF对于不同类型的业务可计算出不同的路 由,因此十分灵活。

  6. 如果到同一个目的网络有多条相同代价的路径,那么可以将通信量分配给这几条路径。 这叫做多路径间的负载平衡

  7. 所有在OSPF路由器之间交换的分组都具有鉴别的功能,因而保证了仅在可信赖的路由器之间交换链路状态信息。

  8. 支持可变长度的子网划分和无分类编址ClDR。

  9. 每一个链路状态都带上一个32位的序号,序号越大状态就越新。

基本工作原理

  1. 由于各路由器之间频繁地交换链路状态信息,因此所有的路由器最终都能建立一个链路状态数据库。这个数据库实际上就是全网的拓扑结构图, 它在全网范围内是一致的 (这称为链路状态数据库的同步)。

  2. 然后,每个路由器就根据这个全网拓扑结构图,使用 Dijkstra最短路径算法计算从自己到各目的网络最优路径,以此构造自己的路由表。

  3. 在此之后,当链路状态发生变化时,每个路由器重新计算到各目的网络的最优路径,构造新的路由表。

注意:虽然使用Dijkstra算法能计算出完整的最优路径,但是路由表中不会存储完整路径,而只存储 “下一跳” (只有到了下一跳路由器,才能知道再下一跳应当怎样走)。

链路状态路由算法

1.每个路由器发现它的邻居结点【hello问候组】,并了解邻居节点的网络地址。

2.设置到它的每个邻居的成本度量metric。

3.构造【DD数据库描述分组】,向邻站给出自己的链路状态数据库中的所有链路状态项目的摘要信息。

4.如果DD分组中的摘要自己都有,则邻站不做处理;如果有没有的或者是更新的,则发送【LSR链路状态请求分组】 请求自己没有的和比自己更新的信息。

5.收到邻站的LSR分组后,发送【 LSU链路状态更新分组】进行更新。

6.更新完毕后,邻站返回一个【LSAck链路状态确认分组】进行确认。

只要一个路由器的链路状态发生变化:

  • 泛洪发送【LSU链路状态更新分组】进行更新。

  • 更新完毕后,其他站返回一个【LSAck链路状态确认分组】进行确认。

7.使用Dijkstra根据自己的链路状态数据库构造到其他节点间的最短路径。

OSPF区域

image-20201230163331633
  • 为了使OSPF能够用于规模很大的网络,OSPF将一个自治系统再划分为若干个更小的范围,叫做区域。

    优点:将利用洪泛法交换链路状态信息的范围局限于每一个区域而不是整个的自治系统,这就减少了整个网络上的通信量。在一个区域内部的路由器只知道本区域的完整网络拓扑,而不知道其他区域的网络拓扑的情况。

  • 这些区域也有层次之分。处在上层的域叫主干区域,负责连通其他下层的区域,并且还连接其他自治域。

  • 每一个区域都有一个32位的区域标识符 (用点分十进制表示)。

  • 区域也不能太大,在一个区域内的路由器最好不超过200个。

OSPF分组

OSPF五种分组类型

  1. 问候分组,用来发现和维持邻站的可达性。通常每隔10秒,每两个相邻路由器要交换一次问候分组,以便知道哪些站可达。
  2. 数据库描述分组,向邻站给出自己的链路状态数据库中的所有链路状态项目的摘要信息。
  3. 链路状态请求分组,向对方请求发送某些链路状态项目的详细信息。
  4. 链路状态更新分组,用洪泛法对全网更新链路状态。
  5. 链路状态确认分组,对链路更新分组的确认。
image-20210304111332797
OSPF的基本操作

OSPF基本操作

  1. 在路由器刚开始工作时,OSPF让每一个路由器使用数据库描述分组和相邻路由器交换本数据库中己有的链路状态摘要信息。
  2. 然后,路由器就使用链路状态请求分组,向对方请求发送自己所缺少的某些链路状态项目的详细信息。
  3. 经过一系列的这种分组交换,全网同步的链路数据库就建立了。
image-20201230163521131

注意:OSPF协议不使用UDP数据报传送,而是直接使用IP数据报传送。用UDP传送是指将该信息作为UDP报文的数据部分,而直接使用 IP数据报传送是指将该信息直接作为IP数据报的数据部分。RIP报文是作为UDP数据报的数据部分。

其他特点

  1. 为了确保链路状态数据库与全网的状态保持一致,OSPF还规定每隔一段时间,如30分钟要刷新一次数据库中的链路状态
  2. 由于一个路由器的链路状态只涉及到与相邻路由器的连通状态,因而与整个互联网的规模并无直接关系。因此当互联网规模很大时,OSPF协议要比距离向量协议RIP好得多。
  3. OSPF不存在坏消息传的慢的问题,它的收敛速度很快

 

4.5.5 BGP协议

概述

边界网关协议 (Border Gateway Protocol, BGP) 是不同自治系统的路由器之间交换路由信息的协议。它是一种外部网关协议,边界网关协议常常应用于互联网的网关之间。路由表包含己知路由器的列表、路由器能够达到的地址以及到达每个路由器的路径的跳数。

image-20201230165104730

内部网关协议主要是设法使数据报在一个AS中尽可能有效地从源站选送到目的站。在一个AS内部也不需要考虑其他方面的策略。然而 BGP使用的环境却不同,主要因为:

  1. 因特网的规模太大,使得自治系统之间路由选择非常困难。
  2. 对于自治系统之间的路由选择,要寻找最佳路由是很不现实的。
  3. 自治系统之间的路由选择必须考虑有关策略。

边界网关协议BGP只能是力求寻找一条能够到达目的网络且比较好的路由 (不能兜圈子),而并非要寻找一条最佳路由。BGP采用的是路径向量路由选择协议,它与距离向量协议和链路状态协议有很大的区别。BGP协议是应用层协议,它是基于TCP的。

BGP协议工作原理

  1. 每一个自治系统的管理员要选择至少一个路由器 (可以有多个) 作为该自治系统的 “BGP发言人”。
  2. 一个BGP发言人与其他自治系统中的BGP发言人要交换路由信息,就要先建立TCP连接 (可见BGP报文是通过TCP传送,也就是说BGP报文是TCP报文的数据部分)。
  3. 然后在此连接上交换BGP报文以建立BGP会话,再利用BGP会话交换路由信息。
  4. 当所有BGP发言人都相互交换网络可达性的信息后,各BGP发言人就可找出到达各个自治系统的比较好的路由。

每一个BGP发言人除了必须运行BGP协议外,还必须运行该AS所使用的内部网关协议,如OSPF或RIP。BGP所交换的网络可达性信息就是要到达某个网络 (用网络前缀表示) 所要经过的一系列AS。

image-20210304164901002
主干网与自治系统间路径向量的交换

报文格式

一个BGP发言人与其他自治系统中的BGP发言人要交换路由信息,就要先建立TCP连接,即通过TCP传送,然后在此连接上交换BGP报文以建立BGP会话(session),利用BGP会话交换路由信息。

BGP是应用层协议,借助TCP传送。

image-20201230170123856

BGP协议特点

  1. BGP协议交换路由信息的结点数量级是自治系统的数量级,这要比这些自治系统中的网络数少很多。
  2. 每一个自治系统中BGP发言人 (或边界路由器) 的数目是很少的。这样就使得自治系统之间的路由选择不致过分复杂。
  3. BGP支持CIDR,因此BGP的路由表也就应当包括目的网络前缀、下一跳路由器,以及到达该目的网络所要经过的各个自治系统序列。
  4. 在BGP刚运行时,BGP的邻站是交换整个的BGP路由表。但以后只需要在发生变化时更新有变化的部分。这样做对节省网络带宽和减少路由器的处理开销方面都有好处。

BGP-4使用四种报文

  1. 打开报文 (Open):用来与相邻的另一个BGP发言人建立关系,并认证发送方。
  2. 更新报文 (Update):通告新路径或撤销原路径。
  3. 保活报文 (Keepalive):在无update时,周期性证实邻站的连通性;也作为open的确认。
  4. 通知报文 (Notification):报告先前报文的差错;也被用于关闭连接。

三种路由协议的比较

RIP是一种分布式的基于距离向量的内部网关路由选择协议,通过广播UDP报文来交换路由信息。

OSPF是一个内部网关协议,要交换的信息量较大,应使报文的长度尽量短,所以不使用传输层协议 (如UDP或TCP),而是直接采用IP。

BGP是一个外部网关协议,在不同的自治系统之间交换路由信息,由于网络环境复杂,需要保证可靠传输,所以采用TOP。

image-20210304170015836

 

4.6 IP组播

4.6.1 组播的概念

概述

当网络中的某些用户需要特定数据,像视频点播和视频会议这样的多媒体应用时, 网络必须实施某种有效的组播机制,即让源计算机一次发送的单个分组可以抵达用一个组地址标识的若干台目标主机,并被它们正确接收。

组播一定是仅应用于UDP,数据发送者仅发送一次数据,借助组播路由协议为组播数据包建立组播分发树,被传递的数据到达距离用户端尽能近的节点后才开始复制和分发,用户主机可以选择加入或离开一个组,从而一个主机可以同时属于多个组,是一种点对多点传输方式。

用户主机使用一个称作 IGMP (因特网组管理协议) 的协议加入组播组。它们使用该协议通知在本地网络上的路由器关于要接收发送给某个组播组的分组的愿望。通过扩展路由器的路由选择和转发功能,可以在许多路由器互联的支持硬件组播的网络上面实现因特网组播 。

优点

  • 组播提高了数据传送效率。减少了主干网出现拥塞的可能性。组播组中的主机可以是在同一个物理网络,也可以来自不同的物理网络 (如果有组播路由器的支持) 。

  • 组播需要路由器的支持才能实现,能够运行组播协议的路由器称为组播路由器。

image-20210310094142700
单播与组播的比较

 

4.6.2 IP组播地址

概述

IP组播使用D类地址格式。D类地址的前四位是1110,因此D类地址范围是 224.0.0.0 ~ 239.255.255.255。每一个D类IP地址标志一个组播组。

组播数据报和一般的IP数据报的区别在于它使用D类IP地址仅作为目的地址,并且首部中的协议字段值是2,表明使用IGMP协议 。

IP组播地址特点

  • 组播数据报也是 “尽最大努力交付”,不提供可靠交付。
  • 组播地址只能用于目的地址,而不能用于源地址。
  • 对组播数据报不产生ICMP差错报文。 因此,若在 PING命令后面键入组播地址,将永远不会收到响应。
  • 并非所有的D类地址都可作为组播地址。

硬件组播

IP组播可以分为两种:① 只在本局域网上进行硬件组播;② 在因特网的范围内进行组播。在因特网上进行组播的最后阶段,还是要把组播数据报在局域网上用硬件组播交付给组播组的所有成员,即使用相应的组播MAC地址在本地网络中实际传送帧。

TCP/IP协议使用的以太网多播地址的范围是 从01-00-5E-00-00-00 到 01-00-5E-7F-FF-FF。由于组播MAC地址以十六进制值01-00-5E打头,余下的6个十六进制位是根据IP组播组地址的最后23位转换得到的,所以在每一个地址中,只有23位可用作组播,和D类IP地址中的23位是一一对应关系。

image-20201230175354108

由于组播IP地址与以太网硬件地址的映射关系不是唯一的,因此收到组播数据报的主机,还要在IP层利用软件进行过滤,把不是本主机要接收的数据报丢弃 。

 

4.6.3 IGMP协议与组播路由算法

概述

为了使路由器知道组播组成员的信息,需要利用到IGMP协议 (Internet Group Manage ment Protocol),IGMP协议让路由器知道本局域网上是否有主机 (的进程) 参加或退出了某个组播组。

连接在局域网上的组播路由器还必须和因特网上的其他组播路由器协同工作,以便把组播数据报用最小代价传送给所有的组成员,这就需要使用组播路由选择协议。

image-20201230180450216

协议位置

ICMP和IGMP都使用IP数据报传递报文。

image-20201230180612561

IGMP工作的两个阶段

阶段1:某主机要加入组播组时,该主机向组播组的组播地址发送一个IGMP报文,声明自己要称为该组的成员。 本地组播路由器收到IGMP报文后,要利用组播路由选择协议把这组成员关系发给因特网上的其他组播路由器。

阶段2:本地组播路由器周期性探询本地局域网上的主机,以便知道这些主机是否还是组播组的成员。 只要有一个主机对某个组响应,那么组播路由器就认为这个组是活跃的;如果经过几次探询后没有一个主机响应,组播路由器就认为本网络上的没有此组播组的主机,因此就不再把这组的成员关系发给其他的组播路由器。

组播路由器知道的成员关系只是所连接的局域网中有无组播组的成员。

组播路由选择协议

  • 组播路由协议目的是找出以源主机为根节点的组播转发树。 其中每一个分组在每条链路上只传送一次 (即在组播转发树上的路由器不会收到重复的组播数据报)。

  • 构造树可以避免在路由器之间兜圈子。

  • 对不同的多播组对应于不同的多播转发树;同一个多播组,对不同的源点也会有不同的多播转发树。

image-20201230182436200

主要路由算法

  1. 基于链路状态的路由选择。
  2. 基于距离-向量的路由选择。
  3. 建立在任何路由器协议之上,因此称作协议无关的组播 (PIM) 。

 

4.7 移动IP

4.7.1 移动IP的概念

概述

支持移动性的因特网体系结构与协议被共同称为移动IP。 移动IP是移动结点 (计算机/服务器等) 以固定的网络IP地址,实现跨越不同网段的漫游功能,并保证了基于网络IP的网络权限在漫游过程中不发生任何改变。 移动IP的目标是把分组自动地投递给移动结点。

基于IPv4的移动IP定义三种功能实体:移动结点、归属代理(也叫本地代理) 和 外埠代理(也叫外部代理)。归属代理和外埠代理又统称为移动代理 。

  • 移动结点:是把其连接点从一个网络或子网改变到另一个网络或子网的主机,即具有永久IP地址的移动设备。使用移动IP,一个移动结点可以在不改变其IP地址的情况下改变其驻留位置。
  • 移动代理
    • 归属代理 (本地代理):一个移动结点的永久“居所”称为归属网络,在归属网络中代表移动节点执行移动管理功能的实体叫做归属代理 (本地代理) ,它根据移动用户的转变地址,采用隧道技术转交移动结点的数据包。
    • 外部代理 (外地代理):在外部网络中帮助移动节点完成移动管理功能的实体称为外部代理。

移动IP和移动自组网络区别

  • 移动IP技术使漫游的主机可以用多种方式连接到因特网,移动IP的核心网络功能仍然是基于在固定互联网中一直在使用的各种路由选择协议。
  • 移动自组网络是将移动性扩展到无线领域中的自治系统,它具有自己独特的路由选择协议,并且可以不和因特网相连。

移动IP与动态IP区别

动态IP指的是局域网中的计算机可以通过网络中的DHCP服务器动态地获得一个IP地址,而不需要用户在计算机的网络设置中指定IP 地址。

 

4.7.2 移动IP通信过程

概述

在移动IP协议中,每一个移动结点都有一个唯一的本地地址,当移动结点移动时它的本地地址是不变的,在本地网络链路上每一个本地结点还必须有一个本地代理来为它维护当前的位置信息,这就需要引入转交地址

当移动结点连接到外地网络链路上时,转交地址就用来标识移动结点现在所处的位置,以便进行路由选择。移动结点的本地地址与当前转交地址的联合称作移动绑定或简称绑定。当移动结点得到一个新的转交地址时,通过绑定向本地代理进行注册,以便让本地代理即时了解移动结点的当前位置。

永久地址 (归属地址/主地址):移动站点在归属网络中的原始地址。

转交地址 (辅地址):移动站点在外部网络使用的临时地址。

基本通信流程

  1. 移动结点在本地网时,按传统的TCP/IP方式进行通信 (在本地网固有的地址) 。
  2. 移动结点漫游到一个外地网络时,仍然使用固定的IP地址进行通信。为了能够收到通信对端发给它的IP分组,移动结点需要向本地代理注册当前的位置地址,这个位置地址就是转交地址 (它可以是外部代理的地址或动态配置的一个地址) 。
  3. 本地代理接收来自转交地址的注册后,会构建一条通向转交地址的隧道,将截获的发给移动结点的IP分组通过隧道送到转交地址处。
  4. 在转交地址处解除隧道封装,恢复出原始的IP分组,最后送到移动结点,这样移动结点在外网就能够收到这些发送给它的IP分组。
  5. 移动结点在外网通过外网的路由器或者外代理向通信对端发送IP数据包。
  6. 当移动结点来到另一个外网时,只需要向本地代理更新注册的转交地址,就可以继续通信。
  7. 当移动结点回到本地网时,移动结点向本地代理注销转交地址,这时移动结点又将使用传统的 TCP/IP方式进行通信。

移动IP为移动主机设置了两个IP地址,即主地址和辅地址 (转交地址)。 移动主机在本地网时,使用的是主地址。当移动到另一个网络时,需要获得一个临时的辅地址,但此时主地址仍然不变。当从外网移回本地网时,辅地址改变或撤销,而主地址仍然保持不变。

示例

image-20201230191543800
  1. A进入外部网络

    1. 在外部代理登记获得一个转交地址,离开时注销;
    2. 外地代理向本地代理登记转交地址。
  2. A与B发生数据交互

    • B给A发送数据报

      1. 本地代理截获数据报;
      2. 本地代理再封装数据报,新的数据报目的地址是转交地址,发给外部代理(隧道);
      3. 外部代理拆封数据报并发给A。
    • A给B发送数据报

      • A用自己的主地址作为数据报源地址,用B的IP地址作为数据报的目的地址。
    • A移动到下一个网络

      1. 在新外部代理登记注册一个转交地址;
      2. 新外部代理给本地代理发送新的转交地址(覆盖旧的);
      3. 通信
  3. A回到了归属网络

    1. A向本地代理注销转交地址;
    2. 按原始方式通信。

 

4.8 网络层设备

4.8.1 路由器的组成和功能

概念

路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务是连接不同的网络 (连接异构网络) 并完成路由转发。在多个逻辑网络 (即多个广播域) 互联时必须使用路由器。路由器也可以作为最基础的包过滤防火墙应用。

在同一个网络中传递数据无需路由器的参与,而跨网络通信必须通过路由器进行转发

  1. 当源主机要向目标主机发送数据报时,路由器先检查源主机与目标主机是否连接在同一个网络上。
  2. 如果源主机和目标主机在同一个网络上,则直接交付而无需通过路由器。
  3. 如果源主机和目标主机不在同一个网络上,则路由器按照转发表(路由表)指出的路由将数据报转发给下一个路由器,称为间接交付

路由器构成与功能

从结构上看,路由器由路由选择和分组转发两部分构成,从模型的角度看,路由器是网络层设备,它实现了网络模型的下三层,即物理层、数据链路层和网络层。

image-20201230193757078
路由器体系结构
  • 路由选择

    • 结构:也叫控制部分,其核心构件是路由选择处理机。
    • 功能:根据所选定的路由选择协议构造出路由表,同时经常或定期地和相邻路由器交换路由信息而不断地更新和维护路由表。
  • 分组转发

    • 结构:由 ① 交换结构、② 输入端口、③ 输出端口 三部分组成。

      • 交换结构

        • 定义:是路由器的关键部件,它根据转发表对分组进行处理,将某个输入端口进入的分组从一个合适的输出端口转发出去。交换结构本身就是一个网络。
        • 常用交换方法:①通过存储器进行交换、②通过总线进行交换和③通过互联网络进行交换。
      • 输入端口:把从物理层接收到的比特流中提取出链路层帧,进而从帧中提取出网络层数据报。输入端口中的查找和转发功能在路由器的交换功能中是最重要的。

        image-20201230194348139
      • 输出端口:与输入端口执行相反。若路由器处理分组的速率赶不上分组进入队列的速率,则队列的存储空间最终必定减少到零,这就使后面再进入队列的分组由于没有存储空间而只能被丢弃。

        image-20201230194530609
      • 路由器中的输入或输出队列产生溢出是造成分组丢失的重要原因

    • 功能:通过路由器的数据流,关键操作是转发表查询、转发以及相关的队列管理和任务调度等。

三层设备的区别

image-20201230194907203

路由器可以互联两个不同网络层协议的网段。

网桥可以互联两个物理层和链路层不同的网段。

集线器不能互联两个物理层不同的网段。

 

4.8.2 路由表和路由转发

路由表

根据路由选择算法得出的,主要用途是路由选择,总是用软件来实现。 标准的路由表具有四个项目:目的网络IP地址、子网掩码、下一跳IP地址、接口。

image-20210310154313304
一个简单的网络拓扑
image-20210310154409368
Rl中的路由表

转发表

由路由表得来,其表项和路由表项有直接对应关系。转发表必须包含完成转发功能所必需的信息,在转发表的每一行必须包含从要到达的目的网络到输出端口和某些MAC地址信息的映射。

与路由表区别

  • 格式不同:转发表结构应使查找过程最优化,而路由表则需对网络拓扑变化的计算最优化。

  • 实现不同:路由表总是用软件来实现;转发表可以用软件实现,甚至也可以用特殊的硬件来实现。

转发表中含有一个分组将要发往的目的地址,以及分组的下一跳 (即下一步接收者的目的地址,实际为MAC地址)。为了减少转发表的重复项目,可以使用一个默认路由代替所有具有相同的 “下一跳” 的项目,并设置默认路由比其他项目的优先级低

image-20210310155453807
未使用默认路由的转发表和使用了默认路由的转发表的对比

注意:分组的实际转发是靠直接查找转发表,而不是直接查找路由表。

转发和路由选择的区别

  • 转发是路由器根据转发表把收到的IP数据报从合适的端口转发出去,它仅涉及一个路由器。
  • 路由选择则涉及很多路由器,路由表是许多路由器协同工作的结果。这些路由器按照复杂的路由算法,根据从各相邻路由器得到的关于网络拓扑的变化情况,动态地改变所选择的路由,并由此构造出整个路由表。

 

4.9 小结

知识框架

image-20210310160104012
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值