本文研究了资源预留机制(RSVP)的基本原理和操作过程,根据参与设计的第三层千兆位以态网交换机现有的软硬件条件,提出了在第三层以态网交换机中RSVP软件设计和实现的方案。
作者:zdnet安全频道 来源:论坛整理 2008年11月26日
关键字: 交换机
第三层以态网交换机中RSVP的设计和实现关键词:资源预留机制,以大网交换机,RSVP软件设计【摘要】本文研究了资源预留机制(RSVP)的基本原理和操作过程,根据参与设计的第三层千兆位以态网交换机现有的软硬件条件,提出了在第三层以态网交换机中RSVP软件设计和实现的方案。 为解决传统路由器产生的网络瓶颈,满足用户带宽的要求,推动了千兆位交换路由器的发展。但千兆位的速率并不能完全解决拥塞问题,服务质量(QOS)还得不到完全保证,因为Internet是基于TCP/IP协议,在通信子网中对数据进行“尽力传送”,不提供任何服务质量保证。为实现各种应用,因特网工程任务组(IETF)提出了基于IP的综合业务结构,通过资源预留机制(RSVP)在数据流经过的所有结点上建立端到端的资源预留,从而为不同的用户提供不同的服务质量保证。为实现QoS,本文根据现有的软硬件条件,包括第三层千兆位以态网交换机和其上运行的实时操作系统 RTXC及其它应用软件,提出了在该交换机上RSVP软件设计和实现的方案。 一、RSVP的基本原理 RSVP是基于IP协议的资源预留协议。用户通过RSVP协议向网络请求满足特殊服务质量要求的缓存和带宽;中间结点利用RSVP协议在数据传输通路上建立起资源预留并维护该通路,以实现相应的服务质量。RSVP的实现与数据包分类机制,准入控制机制和转发机制密不可分,并由2条通路——控制通路和数据通路完成QoS保证。控制通路实现资源预留通路的建立,维护和释放,是一种信令,在后台实现;而数据通路实现数据的传输。 1.控制通路 在控制通路中,有2个基本的消息:PATH和RESV来建立资源预留的通路。资源预留通路建立过程如下: Step1:源应用程序通过应用程序接口将用户的业务特征和期望的服务质量要求送到RSVP进程,RSVP进程根据要求形成PATH消息送到下一跳; Step2:中间结点的RSVP进程收到PATH消息,建立PATH软状态,保存该业务的参数和前一跳的地址,并收集该结点可用资源的信息,形成新的PATH消息转发至下一跳; Step3:目的主机的RSVP进程收到PATH消息通过RSVP应用程序接口送到目的应用程序,该应用程序根据收到的业务特征和可用资源参数形成RESV消息,该消息包括服务质量参数和满足该参数的业务特征。然后将该消息按保存的前一跳地址原路返回; Step4:中间结点的RSVP进程收到RESV消息,建立RESV软状态,包括设置包分类器和包转发器的参数,并将该消息按保存的前一跳地址转发; Step5:源主机RSVP进程收到RESV消息通过应用程序接口送到相应的应用程序; Step6:到Step5已建立了资源预留的通路。为适应路由、QOS要求等的变化,RSVP 定期地发送刷新消息,包括PATH和RESV刷新消息。 2.数据通路 数据通路是真正用来传送用户数据的,数据的传送是沿着控制通路建立的资源预留链路实现的。当某个具有RSVP的结点收到数据包,将数据包分类,按照RSVP控制通路建立资源预留时的数据流分类标准将该数据包送到相应的输出队列中,并由转发机制按一定的优先级算法转发出去。在数据通路中通常要监控收到的数据流,确定其是否符合预先定义的业务标准。若是受控载荷业务则将不符合的数据包通过尽力传送转发,若是保证业务则对该业务重新整型使之符合预先定义的业务特征。 二、 RSVP软件的设计 与传输通路相对应,RSVP的软件实现有2个平面:控制平面和数据平面。控制平面负责不同数据流资源预留的建立、维护和删除;而数据平面实现数据的传输。在主机中实现RSVP在文献已有论述,本文根据现有的软硬件条件,提出了第三层以太网交换机中RSVP 软件实现的总体框架。为了便于在不同键路层上实现资源预留,控制平面设计成2个层次:与链路层无关的核心层和依赖于数据链路的适配层。核心层由RSVP消息处理模块实现,负责资源预留消息的处理和状态的管理。适配层则由资源管理模块和业务控制模块实现,资源管理模块对可用的缓存和带宽筹资源进行管理,为业务控制模块提供可用资源信息;而业务控制模块则主要负责难人控制和为每个数据流分配带宽和缓存。路由处理模块进行路由管理,为数据包转发提供适当的路由。根据需要可以由网络配置和管理模块对RS VP消息模块、资源管理模块和业务控制模块进行配置和管理。 1.网络驱动程序的扩展 在交换机的转发控制器中,输入队列管理器(IQM)支持256个输出端口,每个端口有4个优先级队列,在输出队列管理器(EQM)中可以有3种排队转发方法(SPQ、WPO和 WFQ)对数据进行转发,但是这种分类方法是基于类的,即根据IP头中的TOS来分类,而 RSVP的实现必须以按数据流来分类。另外,RTXC提供的网络驱动程序,不支持优先级转发,所以本文提出了对以态网网络驱动程序进行扩展的方法使之实现流的优先级转发。在每个输出端口中建立3个队列Q1、Q2和Q3,分别支持3类业务:保证业务、受控载荷业务和尽力传送业务,传输优先级大小为Q1>Q2>Q3。保证业务在队列Q1中,受控载荷业务中符合预先定义的业务标准部分送到Q2队列中,不符合的则将之作为尽力传送业务由Q3进行转发。这3个队列与转发控制瑞口中3个优先级队列相对应,将Q1、Q2和Q3队列的输出通过控制管理接口映射到转发控制器输出队列中,并由输出队列管理器(EQM)对之进行管理。资源管理模块为每个队列分配一定的资源,只要该队列中有足够的资源并为某数据流分配了资源,该数据流的服务质量就可得到保证。 2.资源管理模块 资源管理模块负责缓存和带宽的动态管理。为实现带宽的管理,本文提出了利用资源管理模块来监视每个输出队列的资源使用情况。每个队列包括3个参数:最小带宽、最大带宽和当前使用带宽。最小和最大带宽由网络配置和管理模块在系统初始化配置阶段设定,反映在每个输出端口中所希望的3类业务各自的带宽。若将受控载荷业务和保证业务的最大带宽设置为0,则表示不能提供这2类业务而只能提供尽力传送业务。在第三层千兆位以态网交换机中提供256个输出端口,在网络配量时可以为每个端口进行这样的配置。为了更高效地利用网络的带宽,在配置时将总的带宽分为两部分:公共带宽和各队列私有带宽。最小带宽就是队列的私有带宽,而最大带宽是私有带宽与公共带宽的和。各队列先使用本队列的带宽,若该队列耗净了私有带宽则可以使用公共带宽直到公共带宽也用完。在该设计中使用的缓存管理方法与带宽管理类似。 3.业务控制模块 业务控制模块是实现RSVP的一个关键的功能单元,主要负责建立数据流分类数据库,实现准人控制并为每个数据流分配缀存和带宽。当要建立或删除数据流资源预留,或因预困状态的变化,需为该数据流重新分配级存和带宽时,RSVP消息处理模块与业务控制模块通信,发出相应的命令。业务控制模块接收到命令及有关参数后,通过资源管理模块获得可用资源的状态,若所要求的资源小于可用资源则建立该数据流的类数据库,并为之分配实现QoS所需的缓存和带宽,否则禁止接入,发响应告诉RSVP消息处理模块资源预留失败。为了实现这两个功能,本文提出了由业务控制模块为每个数据流分配一个唯一的标识符以实现数据流的分类,并建立和维护两个数据库,一个建立数据流源、目的地址与标识符间的关系。 通过建立这两个数据库,可以很容易实现对不同数据流的监控和整形。当交换机接收到数据包后,根据其源和目的地址为该数据包分配一个标识符,实现对数据流的分类。然后将该数据包送到业务监控和整形功能单元,统计收到数据包的平均速率和峰值速率,实现对数据流的监控和整形。若业务符合领先定义的要求,则根据标识符与分配资源关系将数据包送到相应的输出队列中。为了将业务控制模块作为独立的一个处理单元,与RSVP消息处理模块完全分开,但又能很好地实现两者间地相互通信,业务控制模块向上提供了一个应用程序接口,接收来自RSVP消息处理模块关于资源预留的命令,包括增加,修改和删除资源预留并作响应,获取可用资源信息等功能。 4. RSVP消息处理模块 RSVp消息处理模块负责消息处理,建立、维护和删除QOS连接资源预留状态,并根据从路由处理模块获得的路由转发相应的消息。根据收到的PATH、RESV、PATH刷新、RESV刷新等消息则为该数据流建立和修改通道状态PSB和预留状态RSB,这两个状态中包含每个数据流的业务参数和资源预留参数。在多路广播的情况下,RSVP消息处理模块需对来自不同接收者发往同一接收者的资源预留消息进行合并,并修改本地资源预留状态。因业务特征和预留要求都是多维的,故不是简单地选择某参数的较大值来确定合并的资源预留,而是对其中的每一个参数按一定的算法综合成一个能满足合并的每个消息的资源预留状态,即最低上限(LUB)。RSVP是一种很复杂的信令系统,包括对资源预留链路的建立、刷新和删除,并需对各种出错信息进行处理,若某个数据流的状态发生变化则利用RSVP消息处理模块和业务控制模块间的应用程序接口触发业务控制模块在链路层上对预留的资源进行调整。