4.网络层

互联网在网络层的设计思路是,向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。所传送的分组可能出错、丢失、重复、失序或超时,这就使得网络中的路由器比较简单,而且价格低廉。如果主机中的进程之间的通信需要是可靠的,那么可以由更高层的传输层来负责。采用这种设计思路的好处是:网络的造价大大降低,运行方式灵活,能够适应多种应用。

网络层主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。网络层传输单位是数据报。将数据报划分成分组。

网络层的功能

异构网络互联

网络的异构性是指传输介质、数据编码方式、链路控制协议及不同的数据单元格式和转发机制,这些特点分别在物理层和数据链路层协议中定义。

网络互联是指将两个以上的计算机网络,通过一定的方法,用一种或多种通信处理设备(即中间设备)相互连接起来,以构成更大的网络系统。网络互联通常是指用路由器进行网络互联和路由选择。路由器是一台专用计算机,用于在互联网中进行路由选择。这些网络的物理层、数据链路层、网络层协议都可以不同,但网络层以上的高层协议必须相同。

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

  • 物理层中继系统:中继器,集线器()

  • 数据链路层中继系统:网桥或交换机

  • 网络层中继系统:路由器

    由于历史原因,许多有关的文献也把网络层的路由器称为网关。

  • 网络层以上的中继系统:网关

体系在网络互联上采用的做法是在网络层(即层)采用标准化协议,但相互连接的网络可以是异构的。由于参加互联的计算机网络都使用相同的网际协议(),因此可以把互联后的计算机网络视为一个虚拟网络。

虚拟互联网络也就是逻辑互联网络,即互联起来的各种物理网络的异构性本来是客观存在的,但是通过就可以使这些性能各异的网络在网络层上看起来好像是一个统一的网络。这种使用的虚拟互联网络可简称为网络。使用虚拟互联网络的好处是:当互联网上的主机进行通信时,就好像在一个网络上通信一样,而看不见互联的具体的网络异构细节(如具体的编址方案、路由选择协议等)。

路由选择与分组转发

路由器主要完成两个功能:一是路由选择(确定哪一条路径),二是分组转发(当一个分组到达时所采取的动作)。前者是根据特定的路由选择协议构造出路由表,同时经常或定期地和相邻路由器交换路由信息而不断地更新和维护路由表。后者处理通过路由器的数据流,关键操作是转发表查询、转发及相关的队列管理和任务调度等。

  • 路由选择。指按照复杂的分布式算法,根据从各相邻路由器所得到的关于整个网络拓扑的变化情况,动态地改变所选择的路由。路由选择分为直接交付间接交付,当发送站与目的站在同一网段内时,就使用直接交付,反之使用间接交付。时间长,通常软件解决。
  • 分组转发。指路由器根据转发表将用户的数据报从合适的端口转发出去。转发分组的根据是报文的地址。时间短,通常硬件解决。

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

为了提高路由器的查询效率并减少路由表维护的内容,路由表只保留到达目的地址的下一个路由器的地址,而不保留整个传输路径的信息。另外,采用目的网络可使每个路由表项包含很多目的主机地址,这样可减少路由表中的项目。因此,路由表通常包含目的网络和到达该目的网络路径上的下一个路由器的地址。

路由器转发一个分组的过程如下:先接收整个分组,然后对分组进行错误检查,如果出错,那么丢弃错误的分组;否则存储该正确的分组。最后根据路由选择协议,将正确的分组转发到合适的端口,这种机制称为存储转发机制

SDN的基本概念

数据平面:数据平面对于数据处理过程中各种具体处理转发过程(对应转发功能)。数据平面执行的主要功能是根据转发表进行转发,这是路由器的本地动作。时间短,通常硬件解决。

控制平面:控制平面用于控制和管理网络协议的运行,比如协议、协议、协议(对应路由选择功能)。时间长,通常软件解决。实现方法:

  • 传统方法/每路由器法:路由选择算法运行在每台路由器中,并且在每台路由器中都包含转发和路由选择两种功能。

    具体方法:在一台路由器中的路由选择算法与其他路由器中的路由选择算法通信(通过交换路由选择报文),计算出路由表和转发表。

  • ()方法:控制平面从路由器物理上分离。路由器仅实现转发,远程控制器计算和分发转发表以供每台路由器所使用。

    具体方法:路由器通过交换包含转发表和其他路由选择信息的报文与远程控制器通信。因为计算转发并与路由器交互的控制器是用软件实现的,所以网络是“软件定义的”。

控制平面中的路由选择处理器:

  • 传统方法:路由选择处理器执行控制平面功能。在传统的路由器中,它执行路由选择协议,维护路由选择表与关联链路状态信息,并为该路由器计算转发表。
  • 方法:在路由器中,路由选择处理器负责与远程控制器通信,目的是接收远程控制器计算的转发表项。

控制平面:

  • 控制器(远程控制器):维护准确的网络状态信息(远程链路、交换机(代指路由器)和主机的状态);为运行在控制平面中的网络控制应用程序提供这些信息(逻辑集中,在多台服务器上实现)。
  • 网络控制应用程序:根据控制器提供的方法,这些应用程序通过这些方法能够监视、编程和控制下面的网络设备。

控制器的三个层次:

XE7Fxg.png

的优点:

  • 全局集中式控制和分布式高速转发,一方面利于控制层面的全局优化,另一方面利于高性能的网络转发。
  • 灵活可编程与性能的平衡,控制和转发功能分离后,使得网络可以由专有的自动化工具以编程方式配置。
  • 降低成本,控制和数据层面分离后,尤其使用开放的接口协议后,就实现了网络设备的制造与功能软件的开发相分离,从而有效降低成本。

的问题:

  • 安全风险,集中管理容易受攻击,如果崩溃,整个网络会受到影响。
  • 瓶颈问题,原本分布式的控制层面集中化后,随着网络规模扩大,控制器有可能成为网络性能的瓶颈。

拥塞控制

在通信子网中,因出现过量的分组而引起网络性能下降的现象称为拥塞。当分组到达路由器的速率接近链路的带宽时,平均时延急剧增加,并且会有大量的分组被丢弃(路由器端口的缓冲区是有限的),整个网络的吞吐量会骤降,源与目的地之间的平均时延也会变得近乎无穷大。

判断网络是否进入拥塞状态的方法是,观察网络的吞吐量与网络负载的关系:如果随着网络负载的增加,网络的吞吐量明显小于正常的吞吐量,那么网络就可能已进入“轻度拥塞”状态;如果网络的吞吐量随着网络负载的增大而下降,那么网络就可能已进入拥塞状态;如果网络的负载继续增大,而网络的吞吐量下降到零,那么网络就可能已进入死锁状态。

为避免拥塞现象的出现,要采用能防止拥塞的一系列方法对子网进行拥塞控制。拥塞控制主要解决的问题是如何获取网络中发生拥塞的信息,从而利用这些信息进行控制,以避免由于拥塞而出现分组的丢失,以及严重拥塞而产生网络死锁的现象。拥塞控制的作用是确保子网能够承载所达到的流量,确保通信子网能够传送待传送的数据,这是一个全局性的过程,涉及各方面的行为:主机、路由器及路由器内部的转发处理过程等。单一地增加资源并不能解决拥塞。

拥塞控制的方法有两种:

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

路由算法

静态路由与动态路由

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

  • 静态路由算法(非自适应路由算法):网络管理员手工配置路由信息。简便、可靠,在负荷稳定、拓扑变化不大的网络中运行效果很好,广泛用于高度安全性的军事网络和较小的商业网络。路由更新慢,不适用大型网络。

  • 动态路由算法(自适应路由算法):路由器间彼此交换信息,按照路由算法优化出路由表项,而这些路由信息会在一定时间间隙里不断更新,以适应不断变化的网络,随时获得最优的寻路效果。

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

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

    常用的动态路由算法可分为:

    • 分散性:代表算法有距离-向量路由算法:路由器只掌握物理相连的邻居及链路费用。

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

    • 全局性:代表算法有链路状态路由算法:所有路由器掌握完整的网络拓扑和链路费用信息。

      典型的链路状态算法是算法

层次路由

自治系统():单一技术管理下的一组路由器,这些路由器使用一种内部的路由选择协议和共同的度量来确定分组在该内的路由,同时还使用一种之间的路由选择协议来确定分组在之间的路由。一个自治系统内的所有网络都由一个行政单位管辖,一个自治系统的所有路由器在本自治系统内都必须是连通的。

当网络规模扩大时,路由器的路由表成比例地增大。这不仅会消耗越来越多的路由器缓冲区空间,而且需要用更多时间来扫描路由表,用更多的带宽来交换路由状态信息。因此路由选择必须按照层次的方式进行。因特网将整个互联网划分为许多较小的自治系统(一个自治系统中包含很多局域网),每个自治系统有权自主地决定本系统内应采用何种路由选择协议。如果两个自治系统需要通信,那么就需要一种在两个自治系统之间的协议来屏蔽这些差异。据此,因特网把路由选择协议划分为两大类:

  • 一个自治系统内部所使用的路由选择协议称为内部网关协议(),也称域内路由选择,具体的协议有等。
  • 自治系统之间所使用的路由选择协议称为外部网关协议(),也称域间路由选择,用在不同自治系统的路由器之间交换路由信息,并负责为分组在不同自治系统之间选择最优的路径。具体的协议有

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

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

IPv4

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

由于路由器的隔离,网络中无法通过广播方式依靠地址来完成跨网络的寻址,因此在网络的网络层只使用地址来完成寻址。寻址时,每个路由器依据其路由表(依靠静态路由或动态路由协议生成)选择到目标网络(即主机号全为的网络地址)需要转发到的下一跳(路由器的物理端口号或下一网络地址),而分组通过多次路由转发到达目标网络后,改为在目标中通过数据链路层的地址以广播方式寻址。这样可以提高路由选择的效率。

  • 层抽象的互联网上只能看到数据报。

  • 虽然在数据报首部中有完整的源地址和目的地址,但路由器只根据目的地址的网络号进行路由选择。

  • 在局域网的数据链路层,只能看见帧。而通过路由器转发分组时,此分组在每个网络中都被路由器解封装和重新封装。因此数据报在被路由器转发时,其数据链路层封装所使用的地址是不断改变的。这也决定了无法使用地址跨网络通信。

  • 尽管互联在一起的网络的硬件地址体系各不相同,但层抽象的互联网却屏蔽了下层这些复杂的细节。只要我们在网络层上讨论问题,就能够使用统一的、抽象的地址研究主机与主机或路由器之间的通信。

    路由器由于互联多个网络,因此它不仅有多个地址,也有多个硬件地址.

IPv4分组

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

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

数据报的格式:

  • 版本:指的版本,目前广泛使用的版本号为
  • 首部长度:占位,可以表示的最大十进制数是。以为单位,最大值为。最常用的首部长度是,此时不使用任何选项(即可选字段)。最小为
  • 区分服务:占位。指示期望获得哪种类型的服务。
  • 总长度:占位。指首部和数据之和的长度,单位为字节(),因此数据报的最大长度为。以太网帧的最大传送单元()为,因此当一个数据报封装成帧时,数据报的总长度(首部加数据)一定不能超过下面的数据链路层的值。
  • 标识:占位。它是一个计数器,每产生一个数据报就加,并赋值给标识字段。但它并不是“序号“(因为是无连接服务)。当一个数据报的长度超过网络的时,必须分片,此时每个数据报片都复制一次标识号,以便能正确重装成原来的数据报。
  • 标志:占位。最高位无意义;中间位允许分片。当时,超过的分组被丢弃,且用差错报文向源主机报告。最低位表示后面还有分片,表示最后一个分片/没分片。
  • 片偏移:占位。它指出较长的分组在分片后,某片在原分组中的相对位置。片偏移以个字节为偏移单位,即除了最后一个分片,每个分片的长度一定是(位)的整数倍。
  • 生存时间():占位。数据报在网络中可通过的路由器数的最大值,标识分组在网络中的寿命,以确保分组不会永远在网络中循环。路由器在转发分组前,先把。若被减为,则该分组必须丢弃。
  • 协议:占位。指出此分组携带的数据使用何种协议,即分组的数据部分应交给哪个传输层协议,如等。其中值为表示,值为表示
  • 首部校验和:占位。数据报的首部校验和只校验分组的首部,而不校验数据部分。
  • 源地址字段:占,标识发送方的地址。
  • 目的地址字段:占,标识接收方的地址。
  • 可选字段:,用来支持排错、测量以及安全等措施。
  • 填充:全,把首部补成的整数倍。

XE7sLd.md.png

数据报分片:一个数据链路层数据报能承载的最大数据量称为最大传送单元()。因为数据报被封装在数据链路层数据报中,因此数据链路层的严格地限制着数据报的长度,而且在数据报的源与目的地路径上的各段链路可能使用不同的数据链路层协议,有不同的。例如,以太网的,而许多广域网的不超过。当数据报的总长度大于链路时,就需要将数据报中的数据分装在两个或多个较小的数据报中,这些较小的数据报称为

片在目的地的网络层被重新组装。目的主机使用首部中的标识、标志和片偏移字段来完成对片的重组。创建一个数据报时,源主机为该数据报加上一个标识号。当一个路由器需要将一个数据报分片时,形成的每个数据报(即片)都具有原始数据报的标识号。当目的主机收到来自同一发送主机的一批数据报时,它可以通过检查数据报的标识号来确定哪些数据报属于同一个原始数据报的片。

网络层转发分组的流程:(整个过程中数据报头部的源地址和目的地址当且仅当信息在私人网络中传递时才发生改变)

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

得到下一跳路由器的地址后并不是直接将该地址填入待发送的数据报,而是将该地址转换成地址(通过),将其放到帧首部中,然后根据这个地址找到下一跳路由器。在不同网络中传送时,帧中的源地址和目的地址要发生变化,但是网桥在转发帧时,不改变帧的源地址。

IPv4地址

连接到因特网上的每台主机(或路由器)都分配一个比特的全球唯一标识符,即地址。传统的地址是分类的地址,分为五类。无论哪类地址,都由网络号和主机号两部分组成。即。其中网络号标志主机(或路由器)所连接到的网络。一个网络号在整个因特网范围内必须是唯一的。主机号标志该主机(或路由器)。一台主机号在它前面的网络号所指明的网络范围内必须是唯一的。由此可见,一个地址在整个因特网范围内是唯一的。分类的地址:

XE7fW8.md.png

网络类别最大可用网络数第一个可用的网络号最后一个可用的网络号每个网络中的最大主机数
(减去全、环回地址)(减去全)
(减去全)(减去全)
(减去全)(减去全)

在各类地址中,有些地址具有特殊用途,不用做主机的地址:

网络号主机号作为分组源地址作为分组目的地址用途
可以不可以本网范围内表示主机,路由表中用于表示默认路由(表示整个网络)
特定值可以不可以表示本网内某个特定主机
不可以可以本网广播地址(路由器不转发)
特定值不可以不可以网络地址,表示一个网络
特定值不可以可以直接广播地址,对特定网络上的所有主机进行广播
(类网络)任何数(非全)可以可以用于本地软件环回测试,称为环回地址

地址有以下重要特点:

  • 每个地址都由网络号和主机号两部分组成,因此地址是一种分等级的地址结构。分等级的好处是:地址管理机构在分配地址时只分配网络号(第一级),而主机号(第二级)则由得到该网络的单位自行分配,方便了地址的管理;路由器仅根据目的主机所连接的网络号来转发分组(而不考虑目标主机号),从而减小了路由表所占的存储空间。
  • 地址是标志一台主机(或路由器)和一条链路的接口。当一台主机同时连接到两个网络时,该主机就必须同时具有两个相应的地址,每个地址的网络号必须与所在网络的网络号相同,且这两个地址的网络号是不同的。因此网络上的一个路由器必然至少应具有两个地址(路由器每个端口必须至少分配一个地址)。
  • 用转发器或桥接器(网桥等)连接的若干仍然是同一个网络(同一个广播域),该中所有主机的地址的网络号必须相同,但主机号必须不同。
  • 地址中,所有分配到网络号的网络(无论是还是)都是平等的。
  • 在同一个局域网上的主机或路由器的地址中的网络号必须是一样的。路由器总是具有两个或两个以上的地址,路由器的每个端口都有一个不同网络号的地址。

NAT

网络地址转换()是指通过将专用网络地址(如)转换为公用地址(如),从而对外隐藏内部管理的地址。它使得整个专用网只需要一个全球地址就可以与因特网连通,由于专用网本地地址是可重用的,所以大大节省了地址的消耗。同时,它隐藏了内部网络结构,从而降低了内部网络受到攻击的风险。

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

地址类别地址范围网段个数

在因特网中的所有路由器,对目的地址是私有地址的数据报一律不进行转发。这种采用私有地址的互联网络称为专用互联网本地互联网。私有地址也称可重用地址。使用时需要在专用网连接到因特网的路由器上安装软件,路由器至少有一个有效的外部全球地址。使用本地地址的主机和外界通信时,路由器使用转换表将本地地址转换成全球地址,或将全球地址转换成本地地址。转换表中存放着的映射。通过这样的映射方式,可让多个私有地址映射到同一个全球地址。转换表的表项需要管理员添加,不能自动添加。

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

子网划分与子网掩码

两级地址的缺点:地址空间的利用率有时很低;给每个物理网络分配一个网络号会使路由表变得太大而使网络性能变坏;两级的地址不够灵活。

年起,在地址中又增加了一个“子网号字段“,使两级地址变成了三级地址。这种做法称为子网划分。子网划分已成为因特网的正式标准协议。子网之间的数据传输需要通过路由器进行,因此减小了广播域的大小。

子网划分的基本思路如下:

  • 某单位划分子网后,对外仍表现为一个网络,即本单位外的网络看不见本单位内子网的划分。

  • 从主机号借用若干比特作为子网号,当然主机号也就相应减少了相同的比特。三级地址的结构如下:

  • 凡是从其他网络发送给本单位某台主机的数据报,仍然是根据数据报的目的网络号,先找到连接到本单位网络上的路由器。然后该路由器在收到数据报后,按目的网络号和子网号找到目的子网。最后把数据报直接交付给目的主机。

    子网号是否能够使用全需要根据路由器所用的路由选择软件是否支持全或全的子网号决定。

    但是主机号全的地址为子网的网络号,主机号全的地址为子网的广播地址。

为了告诉主机或路由器对一个类、类、类网络进行了子网划分,使用子网掩码来表达对原网络中主机号的借位。子网掩码是一个与地址相对应的、长的二进制串,它由一串和跟随的一串组成。其中,对应于地址中的网络号及子网号,而对应于主机号。计算机只需将地址和其对应的子网掩码逐位(逻辑运算),就可得出相应子网的网络地址。

现在的因特网标准规定:所有的网络都必须使用子网掩码。如果一个网络未划分子网,那么就采用默认子网掩码。。由于子网掩码是一个网络或一个子网的重要属性,所以路由器在相互之间交换路由信息时,必须把自己所在网络(或子网)的子网掩码告诉对方。路由表中的每个条目,除要给出目的网络地址和下一跳地址外,还要同时给出该目的网络的子网掩码。在使用子网掩码的情况下:

  • 一台主机在设置地址信息的同时,必须设置子网掩码。

  • 同属于一个子网的所有主机及路由器的相应端口,必须设置相同的子网掩码。

  • 路由器的路由表中,所包含信息的主要内容必须有目的网络地址、子网掩码、下一跳地址。使用子网掩码时路由器的分组转发算法如下:

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

CIDR

无分类域间路由选择是在变长子网掩码的基础上提出的一种消除传统类网络划分,并且可以在软件的支持下实现超网构造的一种地址的划分方法。主要特点如下:

  • 使用“网络前缀“的概念代替子网络的概念。因此,地址的无分类两级编址为:

    还使用“斜线记法”(或称记法),即地址/网络前缀所占比特数。其中,网络前缀所占比特数对应于网络号的部分,等效于子网掩码中连续的部分。虽然不使用子网,但仍然使用“掩码”一词。"不使用子网”是指并没有在位地址中指明若干位作为子网字段。但分配到一个地址块的组织,仍可以在本组织内根据需要划分出一些子网。

  • 将网络前缀都相同的连续地址组成地址块。一个地址块可以表示很多地址,这种地址的聚合称为路由聚合,或称构成超网。路由聚合使得路由表中的一个项目可以表示多个原来传统分类地址的路由,有利于减少路由器之间的路由选择信息的交换,从而提高网络性能。

地址块中的地址数一定是的整数次幕,实际可指派的地址数通常为表示主机号的位数,主机号全代表网络号,主机号全为广播地址。网络前缀越短,其地址块所包含的地址数就越多。而在三级结构的地址中,划分子网使网络前缀变长。

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

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

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

ARP

无论网络层使用什么协议,在实际网络的链路上传送数据帧时,最终必须使用硬件地址。所以需要一种方法来完成地址到地址的映射,这就是地址解析协议()。每台主机都设有一个高速缓存,用来存放本局域网上各主机和路由器的地址到地址的映射表,称表。使用来动态维护此表。

工作在网络层,其工作原理如下:主机欲向本局域网上的某台主机发送数据报时,先在其高速缓存中查看有无主机地址。

  • 如有,就可查出其对应的硬件地址,再将此硬件地址写入帧,然后通过局域网将该帧发往此硬件地址。

  • 如果没有,那么就通过使用目的地址为的帧来封装并广播请求分组,使同一个局域网里的所有主机收到请求。

    主机收到该请求后,向主机发出响应分组,分组中包含主机地址的映射关系,主机在收到后将此映射写入缓存(更新一次),然后按查询到的硬件地址发送帧。

用于解决同一个局域网上的主机或路由器的地址和硬件地址的映射问题。如果所要找的主机和源主机不在同一个局域网上,那么就要通过找到一个位于本局域网上的某个路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络。剩下的工作就由下一个网络来做,尽管请求分组是广播发送的,但响应分组是普通的单播,即从一个源地址发送到一个目的地址。地址在传递过程中,源地址和目的地址不停的在改变。

种典型情况总结如下:

  • 主机发给本网络上的主机:用找到主机的硬件地址。
  • 主机发给另一网络上的主机:用找到本网络上的一个路由器(网关)的硬件地址,剩下的工作由这个路由器来完成。
  • 路由器发给本网络的主机:用找到主机的硬件地址。
  • 路由器发给另一网络的主机:用找到本网络上的一个路由器(网关)的硬件地址,剩下的工作由这个路由器来完成。

地址到硬件地址的解析是自动进行的,主机的用户并不知道这种地址解析过程。只要主机或路由器和本网络上的另一个已知地址的主机或路由器进行通信,就会自动地将这个地址解析为数据链路层所需要的硬件地址。

逆地址解析协议也是网络层协议。

DHCP

动态主机配置协议应用层协议,使用客户/服务器方式,客户端和服务端通过广播方式进行交互,基于提供即插即用联网的机制,主机可以从服务器动态获取地址、子网掩码、默认网关、服务器的名称与地址,允许地址重用,支持移动用户加入网络,支持在用地址续租

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

的工作原理如下:

  1. 主机广播发现报文,试图找到网络中的服务器,以便从服务器获得一个地址。

    本地网络上所有主机都能收到此广播报文,但只有服务器才回答此广播报文。

  2. 服务器收到发现报文后,向网络中广播提供报文,服务器拟分配给主机一个地址及相关配置,先到先得。

    服务器先在其数据库中查找该计算机的配置信息。若找到,则返回找到的信息。若找不到,则从服务器的地址池中取一个地址分配给该计算机。

  3. 主机收到提供报文,如果接收服务器所提供的相关参数,那么通过广播请求报文服务器请求提供地址。

  4. 服务器广播确认报文,正式将地址分配给主机。

允许网络上配置多台服务器,当主机发出请求时,有可能收到多个应答消息。这时,主机只会挑选其中的一个,通常挑选最先到达的。服务器分配给主机的地址是临时的,因此主机只能在一段有限的时间内使用这个分配到的地址。称这段时间为租用期。租用期的数值应由服务器自己决定,主机也可在自己发送的报文中提出对租用期的要求。

的客户端和服务器端需要通过广播方式来进行交互,原因是在执行初期,客户端不知道服务器端的地址,而在执行中间,客户端并未被分配地址,从而导致两者之间的通信必须采用广播的方式。采用而不采用的原因也很明显:需要建立连接,如果连对方的地址都不知道,那么更不可能通过双方的套接字建立连接。

ICMP

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

XE7xlF.md.png

报文的种类有两种:

  • 差错报告报文:用于目标主机或到目标主机路径上的路由器向源主机报告差错和异常情况。共有以下种类型:

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

    XEHe6e.md.png

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

    • 差错报告报文不再发送差错报告报文。
    • 对第一个分片的数据报片的所有后续数据报片都不发送差错报告报文。
  • 对具有组播地址的数据报都不发送差错报告报文。

    • 对具有特殊地址(如)的数据报不发送差错报告报文。
  • 询问报文:有种类型:

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

的两个常见应用:

  • 分组网间探测:测试两台主机之间的连通性,使用了回送请求和回答报文。工作在应用层,它直接使用网络层的,而未使用传输层的
  • (中的名字,在中是):跟踪一个分组从源点到终点的路径。使用了时间超过差错报告报文。工作在网络层

IPv6

的主要特点:

  • 更大的地址空间。将地址从位增大到了位。
  • 扩展的地址层次结构。
  • 的可选字段移出首部,变成了扩展首部,成为灵活的首部格式,路由器通常不对扩展首部进行检查,大大提高了路由器的处理效率。
  • 支持即插即用(即自动配置),不需要协议。
  • 支持资源的预分配。支持实时视像等要求,保证一定的带宽和时延的应用。
  • 只能在主机处分片,是端到端的,传输路径中的路由器不能分片,所以从一般意义上说,不允许分片(不允许类似的路由分片)。如果路由器发现到来的数据报太大而不能转发到链路上,那么丢弃该数据报,并向发送方发送一个指示分组太大的报文。
  • 首部长度必须是的整数倍(基本首部固定),而首部是的整数倍。
  • 取消了总长度字段,改用有效载荷长度字段。
  • 取消了协议字段,改成下一个首部字段。
  • 取消了校验和字段。减少每跳的处理时间。
  • 取消了服务类型字段。
  • 增大了安全性。身份验证和保密功能是的关键特征。
  • 支持(服务质量)指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力,是网络的一种安全机制,是用来解决网络延迟和阻塞等问题的一种技术。

XEHumd.md.png

基本首部格式:

  • 版本:指明了协议版本,总是
  • 优先级:区分数据报的类别和优先级。
  • 流标签:“流”是互联网络上从特定源点到特定终点的一系列数据报。所有属于同一个流的数据报都具有同样的流标签。
  • 有效载荷长度:扩展首部加数据部分的大小。
  • 下一个首部:标识下一个扩展首部或上层协议首部。基本首部的下一个首部字段指向扩展首部,扩展首部的下一个首部字段指向扩展首部,......,最后一个扩展首部的下一个首部字段指向数据部分。
  • 跳数限制:相当于
  • 源地址、目的地址。

XEHGp8.md.png

IPv6地址

数据报的目的地址可以是以下三种基本类型地址之一:

  • 单播。单播就是传统的点对点通信。
  • 多播。多播是一点对多点的通信,分组被交付到一组计算机的每台计算机。
  • 任播。这是增加的一种类型。任播的目的站是一组计算机,但数据报在交付时只交付其中的一台计算机,通常是距离最近的一台计算机。

标准中指定了一种比较紧凑的表示法,即把地址中的每位用一个十六进制数表示,并用冒号分隔每位。当位域的开头有一些时,可以采用一种缩写表示法,但在域中必须至少有一个数字。

例如,可以把地址缩写为。当有相继的值域时,还可以进一步缩写成。双冒号表示法在一个地址中仅能出现一次。

扩展了地址的分级概念,它使用以下个等级:第一级(顶级)指明全球都知道的公共拓扑;第二级(场点级)指明单个场点;第三级指明单个网络接口。地址采用多级体系主要是为了使路由器能够更快地查找路由。

过渡只能采用逐步演进的办法,同时还必须使新安装的系统能够向后兼容。系统必须能够接收和转发分组,并且能够为分组选择路由。过渡可以采用:

  • 双协议栈技术:指在一台设备上同时装有协议栈。如果这台设备是一个路由器,那么在路由器的不同接口上分别配置了地址和地址,并很可能分别连接了网络和网络;如果这台设备是一台计算机,那么它将同时拥有地址和地址,并具备同时处理这两个协议地址的功能。
  • 隧道技术:将整个数据报封装到数据报的数据部分,使得数据报可以在网络的隧道中传输。通过使用互联网络的基础设施在网络之间传递数据的方式。使用隧道传递的数据(或负载)可以是不同协议的数据帧或包。隧道协议将其它协议的数据帧或包重新封装然后通过隧道发送。

路由协议

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

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

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

协议
类型内部内部外部
路由算法距离-向量链路状态路径-向量
传递协议
路径选择跳数最少代价最低较好,非最佳
交换结点和本结点相邻的路由器网络中的所有路由器和本结点相邻的路由器
交换内容当前本路由器知道的全部信息,即自己的路由表与本路由器相邻的所有路由器的链路状态首次:整个路由表;
非首次:有变化的部分

路由信息协议(RIP)

XEHUmj.md.png

路由信息协议()是内部网关协议()中最先得到广泛应用的协议。是一种分布式的基于距离向量的路由选择协议,其最大优点就是简单。是应用层协议,使用传送数据。

规定:

  • 网络中的每个路由器都要维护从它自身到其他每个目的网络的唯一最佳距离记录(因此这是一组距离,称为距离向量)。
  • 距离也称跳数,规定从一个路由器到直接连接网络的距离为。而每经过一个路由器,距离(跳数)加
  • 认为好的路由就是它通过的路由器的数目少,即优先选择跳数少的路径。
  • 允许一条路径最多只能包含个路由器(即最多允许跳)。因此距离为表示网络不可达。只适用于小型互联网。距离向量路由可能会出现环路的情况,规定路径上的最高跳数的目的是为了防止数据报不断循环在环路上,减少网络拥塞的可能性。
  • 中不支持子网掩码的广播,所以中每个网络的子网掩码必须相同。但在新的中,支持变长子网掩码和

特点:

  • 仅和相邻路由器交换信息。

  • 路由器交换的信息是当前路由器所知道的全部信息,即自己的路由表

  • 秒交换一次路由信息,然后路由器根据新信息更新路由表。若超过没有收到相邻路由器的通告,则判定该路由器故障,并更新自己的路由表。

    路由器刚开始工作时,只知道直接连接的网络的距离(距离为1),接着每一个路由器也只和数目非常有限的相邻路由器交换并更新路由信息。

    经过若干次更新后,所有路由器最终都会知道到达本自治系统任何一个网络的最短距离(即跳数最少,最短路由)和下一跳路由器的地址,即“收敛”。

  • 当网络出现故障时,要经过比较长的时间(例如数分钟)才能将此信息传送到所有的路由器,“慢收敛”。(好消息传得快,坏消息传得慢)

距离向量算法:每个路由表项目都有三个关键数据:<目的网络,距离,下一跳路由器地址(不是物理地址)>

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

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

    1. 路由表中若没有目的网络,则把该项目填入路由表;

    2. 路由表中若有目的网络,则查看下一跳路由器地址:

      • 若下一跳是,则用收到的项目替换源路由表中的项目(无论距离增加还是减少);
      • 若下一跳不是,如果收到的项目中的距离小于路由表中的距离,那么就用收到的项目替换原路由表中的项目,否则不作处理。
  3. 还没收到相邻路由器的更新路由表,则把记为不可达的路由器,即把距离设置为

  4. 返回。

开放最短路径优先(OSPF)协议

XVyRVe.md.png

开放最短路径优先()协议最主要的特征就是使用分布式的链路状态协议,也是内部网关协议()的一种。网络层协议,它不使用,而直接用数据报传送(其数据报首部的协议字段为)。

的特点:

  • 使用洪泛法向自治系统内所有路由器发送信息,即路由器通过输出端口向所有相邻的路由器发送信息,而每一个相邻路由器又再次将此信息发往其所有的相邻路由器。广播
  • 发送的信息是与本路由器相邻的所有路由器的链路状态。链路状态说明本路由器和哪些路由器相邻及该链路的度量(或代价)。
  • 只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息,并且更新过程收敛得快。

最后,所有路由器都能建立一个链路状态数据库,即全网拓扑图。它在全网范围内是一致的(称为链路状态数据库的同步)。

链路状态路由算法:路由表项:<目的网络,距离,下一跳路由器(不是物理地址)>

  1. 每个路由器发现它的邻居结点【问候分组】,并了解邻居节点的网络地址。
  2. 设置到它的每个邻居的成本度量
  3. 构造【数据库描述分组】,向邻站给出自己的链路状态数据库中的所有链路状态项目的摘要信息。
  4. 如果分组中的摘要自己都有,则邻站不做处理;如果有没有的或者是更新的,则发送【链路状态请求分组】请求自己没有的和比自己更新的信息。
  5. 收到邻站的分组后,发送【链路状态更新分组】进行更新。
  6. 更新完毕后,邻站返回一个【链路状态确认分组】进行确认。
  7. 使用根据自己的链路状态数据库构造到其他节点间的最短路径。

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

  1. 泛洪发送【链路状态更新分组】进行更新。
  2. 更新完毕后,其他站返回一个【链路状态确认分组】进行确认。
  3. 使用根据自己的链路状态数据库构造到其他节点间的最短路径。

为使能够用于规模很大的网络,将一个自治系统再划分为若干更小的范围,称为区域。每一个区域都有一个位的区域标识符(用点分十进制表示)。区域也不能太大,在一个区域内的路由器最好不超过个。划分区域的好处是,将利用洪泛法交换链路状态信息的范围局限于每个区域而非整个自治系统,减少了整个网络上的通信量。在一个区域内部的路由器(区域内部路由器)只知道本区域的完整网络拓扑,而不知道其他区域的网络拓扑情况。这些区域也有层次之分。处在上层的域称为主干区域(由主干路由器负责,标识符为),负责连通其他下层的区域,并且还连接其他自治域。主干区域内的所有路由器都叫做主干路由器,区域边界的路由器叫作区域边界路由器,自治系统边界的路由器叫作自治系统边界路由器。

 

的其他特点:

  • 通常每隔秒,每两个相邻路由器要交换一次问候分组,以便知道哪些站可达。
  • 每隔,要刷新一次数据库中的链路状态。
  • 由于一个路由器的链路状态只涉及与相邻路由器的连通状态,因而与整个互联网的规模并无直接关系。因此当互联网规模很大时,协议要比距离向量协议好得多。
  • 不存在坏消息传的慢的问题,它的收敛速度很快。
  • 对不同的链路可根据分组的不同服务类型()而设置成不同的代价。因此,对于不同类型的业务可计算出不同的路由,十分灵活。
  • 如果到同一个目的网络有多条相同代价的路径,那么可以将通信量分配给这几条路径。这称为多路径间的负载平衡
  • 所有在路由器之间交换的分组都具有鉴别功能,因而保证了仅在可信赖的路由器之间交换链路状态信息。
  • 支持可变长度的子网划分和无分类编址
  • 每个链路状态都带上一个位的序号,序号越大,状态就越新。

边界网关协议(BGP)

XV6OOK.md.png

边界网关协议()是不同自治系统的路由器之间交换路由信息的协议,是一种外部网关协议常用于互联网的网关之间。路由表包含已知路由器的列表、路由器能够达到的地址及到达每个路由器的路径的跳数。内部网关协议主要设法使数据报在一个中尽可能有效地从源站传送到目的站。在一个内部不需要考虑其他方面的策略。然而使用的环境却不同,主要原因如下:

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

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

的工作原理如下:每个自治系统的管理员要选择至少一个路由器(可以有多个)作为该自治系统的"发言人“(往往是边界路由器)。一个发言人与其他自治系统中的发言人要交换路由信息,就要先建立连接(可见报文是通过传送的,也就是说报文是报文的数据部分),然后在此连接上交换报文以建立会话,再利用会话交换路由信息。当所有发言人都相互交换网络可达性的信息(到达某个网络所要经过的一系列,因此称为一组路径向量)后,各发言人就可找出到达各个自治系统的较好路由。

每个发言人除必须运行外,还必须运行该所用的内部网关协议。

特点:

  • 支持,因此的路由表也就应当包括目的网络前缀、下一跳路由器,以及到达该目的网络所要经过的各个自治系统序列。
  • 刚运行时,的邻站交换整个路由表,但以后只需在发生变化时更新有变化的部分。这样做对节省网络带宽和减少路由器的处理开销都有好处。

共使用种报文:

  • 打开报文:用来与相邻的另一个发言人建立关系,并认证发送方。
  • 更新报文:用来发送某一路由的信息(通告新路径),以及列出要撤销的多条路由(撤销原路径)。
  • 保活报文:在无时,周期性地证实邻站的连通性;也作为的确认。
  • 通知报文:用来发送检测到的差错。也被用于关闭连接。

IP组播

单播用于发送数据包到单个目的地,且每发送一份单播报文都使用一个单播IP地址作为目的地址。是一种点对点传输方式。

广播是指发送数据包到同一广播域或子网内的所有设备的一种数据传输方式,是一种点对多点传输方式。

组播(多播):当网络中的某些用户需要特定数据时,组播数据发送者仅发送一次数据,借助组播路由协议为组播数据包建立组播分发树,被传递的数据到达距离用户端尽可能近的节点后才开始复制和分发,是一种点对多点传输方式。组播提高了数据传送效率。减少了主干网出现拥塞的可能性。组播组中的主机可以是在同一个物理网络,也可以来自不同的物理网络(如果有组播路由器的支持)。

组播机制是让源计算机一次发送的单个分组可以抵达用一个组地址标识的若干目标主机,并被它们正确接收。组播一定仅应用于。组播发送需要一个组播地址,该组播地址标识一组地址。主机可以选择加入或离开一个组,因此一台主机可以同时属于多个组。

主机使用一个称为(因特网组管理协议)的协议加入组播组,属于网络层协议,使用数据报传送报文。它们使用该协议通知本地网络上的路由器关于要接收发送给某个组播组的分组的愿望。通过扩展路由器的路由选择和转发功能,可以在许多路由器互联的支持硬件组播的网络上面实现因特网组播。主机组播时仅发送一份数据,只有数据在传送路径出现分岔时才将分组复制后继续转发。组播需要路由器的支持才能实现,能够运行组播协议的路由器称为组播路由器。能够运行组播协议的路由器可以是一个单独的路由器,也可以是运行组播软件的普通路由器。

组播使用类地址格式。类地址的前四位是,因此类地址范围是。每个地址标志一个组播组。并且数据报首部中的协议字段值是,表明使用

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

组播可以分为两种:一种只在本局域网上进行硬件组播:另一种则在因特网的范围内进行组播。在因特网上进行组播的最后阶段,还是要把组播数据报在局域网上用硬件组播交付给组播组的所有成员。

同单播地址一样,组播地址也需要相应的组播地址在本地网络中实际传送帧。组播地址以十六进制值打头,余下的个十六进制位是根据组播组地址的最后位转换得到的。协议使用的以太网多播地址的范围是:从。由于组播地址与以太网硬件地址的映射关系不是唯一的,因此收到组播数据报的主机,还要在层利用软件进行过滤,把不是本主机要接收的数据报丢弃。

Xe6psP.md.png

IGMP与组播路由算法

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

并不是在因特网范围内对所有组播组成员进行管理的协议。不知道组播组包含的成员数,也不知道这些成员分布在哪些网络上。让连接到本地局域网上的组播路由器知道本局域网上是否有主机(或进程)参加或退出了某个组播组。都使用数据报传递报文,其工作可分为两个阶段:

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

  2. 因为组成员关系是动态的,本地组播路由器要周期性地探询本地局域网上的主机,以便知道这些主机是否仍继续是组的成员。只要对某个组有一台主机响应,那么组播路由器就认为这个组是活跃的。但一个组在经过几次的探询后仍然没有一台主机响应,组播路由器就认为本网络上的没有此组播组的主机,因此就不再将该组的成员关系转发给其他的组播路由器。

    组播路由器知道的成员关系只是所连接的局域网中有无组播组的成员。并不知道具体有几个以及哪些成员。

组播路由选择协议目的是找出以源主机为根结点的组播转发树,其中每个分组在每条链路上只传送一次(即在组播转发树上的路由器不会收到重复的组播数据报)。不同的多播组对应于不同的多播转发树;同一个多播组,对不同的源点也会有不同的多播转发树。

在许多由路由器互联的支持硬件多点传送的网络上实现因特网组播时,主要有三种路由算法:第一种是基于链路状态的路由选择;第二种是基于距离-向量的路由选择;第三种可以建立在任何路由器协议之上,因此称为协议无关的组播(),包括两种:稀疏/密集(指示组播组中的主机距离远近)。

移动IP

支持移动性的因特网体系结构与协议共称为移动,它是为了满足移动结点(计算机、服务器、网段等)在移动中保持其连接性而设计的。移动技术是指移动结点以固定的网络地址实现跨越不同网段的漫游功能,并保证基于网络的网络权限在漫游过程中不发生任何改变。移动技术使漫游的主机可以用多种方式连接到因特网。移动的目标是把分组自动地投递给移动结点。使用移动,一个移动结点可以在不改变其地址的情况下改变其驻留位置。

基于的移动定义三种功能实体:

  • 移动结点。具有永久地址的移动设备。每个移动结点都有一个唯一的本地地址,当移动结点移动时,它的本地地址是不变的。

  • 本地代理(归属代理)。在一个网络环境中,一个移动结点的永久“居所”被称为归属网络,在归属网络中代表移动结点执行移动管理功能的实体称为归属代理(本地代理),它根据移动用户的转交地址,采用隧道技术转交移动结点的数据包。

  • 外部代理(外地代理)。在外部网络中帮助移动结点完成移动管理功能的实体称为外部代理。

    本地代理和外部代理又统称为移动代理。

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

    转交地址(辅地址)可以是外部代理的地址或动态配置的一个地址。

概念区别:

  • 移动和移动自组网络:移动的核心网络功能仍然是基于固定互联网中一直使用的各种路由选择协议,移动自组网络是将移动性扩展到无线领域中的自治系统,它具有自己独特的路由选择协议,并且可以不和因特网相连。
  • 移动与动态:动态指的是局域网中的计算机可以通过网络中的服务器动态地获得一个地址,而不需要用户在计算机的网络设置中指定地址,动态经常会应用在我们的实际工作环境中。

在本地网络链路上每个本地结点还必须有一个本地代理来为它维护当前的位置信息,这就需要引入转交地址。当移动结点连接到外地网络链路上时,转交地址就用来标识移动结点现在所处的位置,以便进行路由选择。移动结点的本地地址与当前转交地址的联合称为移动绑定或简称绑定。当移动结点得到一个新的转交地址时,通过绑定向本地代理进行注册,以便让本地代理即时了解移动结点的当前位置。

移动通信过程:(代理发现、注册、分组路由、注销)

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

网络层设备

路由器的组成和功能

路由器是一种具有多个输入/输出端口的专用计算机,其任务是连接不同的网络(连接异构网络)并完成路由转发(转发分组)。在多个逻辑网络(即多个广播域)互联时必须使用路由器。

当源主机要向目标主机发送数据报时,路由器先检查源主机与目标主机是否连接在同一个网络上。如果源主机和目标主机在同一个网络上,那么直接交付而无须通过路由器。如果源主机和目标主机不在同一个网络上,那么路由器按照转发表(路由表)指出的路由将数据报转发给下一个路由器。路由器隔离了广播域

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

XEHy1U.md.png

输入端口的处理:从线路接受分组→物理层处理→数据链路层处理→网络层处理分组排队,查表和转发(产生时延)→交换结构

输出端口的处理:交换结构→网络层处理分组排队,缓存管理(产生时延)→数据链路层处理→物理层处理→向线路发送分组

若路由器处理分组的速率赶不上分组进入队列的速率,则队列的存储空间最终必定减少到零,这就使后面再进入队列的分组由于没有存储空间而只能被丢弃。路由器中的输入或输出队列产生溢出是造成分组丢失的重要原因

有三种常用的交换方法:通过存储器进行交换、通过总线进行交换和通过互联网络进行交换。交换结构本身就是一个网络。

路由器主要完成两个功能:

  • 分组转发:处理通过路由器的数据流,关键操作是转发表查询、转发及相关的队列管理和任务调度等;
  • 路由计算:通过和其他路由器进行基于路由协议的交互,完成路由表的计算。

路由器和网桥的重要区别是:网桥与高层协议无关,而路由器是面向协议的,它依据网络地址进行操作,并进行路径选择、分段、帧格式转换、对数据报的生存时间和流量进行控制等。支持多种网络层协议。

路由表与路由转发

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

转发表由路由表得来,可以用软件实现,也可以用特殊的硬件来实现。转发表必须包含完成转发功能所必需的信息,在转发表的每一行必须包含从要到达的目的网络到输出端口和某些MAC地址信息的映射。转发表中含有一个分组将要发往的目的地址,以及分组的下一跳(即下一步接收者的目的地址,实际为地址)。为了减少转发表的重复项目,可以使用一个默认路由代替所有具有相同“下一跳”的项目,并将默认路由设置得比其他项目的优先级低。

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

在讨论路由选择的原理时,往往不去区分转发表和路由表的区别,但要注意路由表不等于转发表。分组的实际转发是靠直接查找转发表,而不是直接查找路由表。

Last modification:May 26, 2023
希望能帮到你(^-^)V