流处理方法和装置与流程

文档序号:12623610阅读:433来源:国知局
流处理方法和装置与流程
本发明涉及通信领域,具体而言,涉及一种流处理方法、装置以及扩展的计量带类型。
背景技术
:OpenFlow是一种交换技术。OpenFlowv1.3版本增加了计量表(MeterTable)。其中,一个计量表包含若干计量表项,一个表项定义了一个计量器。每个计量器可以使OpenFlow实现一些简单的服务质量(QualityofService,简称为QoS)业务,并且可以结合每个端口队列来实现更复杂的QoS。流表可以通过指令Metermeter_id将数据流转入到标号为meter_id的计量器进行处理。每个计量表项可能有一个或多个计量带(MeterBand),每个计量带配置相应的速率和指定数据被处理的方式。每个计量器测量出指定给它的数据流的速率,然后根据测量速率,在配置速率低于该测量速率的计量带中选取一个配置速率最高的计量带,对数据流进行处理。如果当前的测量速率的比任何配置的计量带速率都低,那么计量器就无任何操作。目前,计量带只用两种可选的(optional)计量带类型:丢弃(drop)和差分服务代码点重标记(DifferentiatedServicesCodePointremark,简称为DSCPremark)。其中,drop类型将丢弃数据包,可以用来定义带宽速率限制;DSCPremark类型可以减少数据包的因特网协议(IP)头中的DSCP字段丢弃的优先级,可用于定义一个简单的差分策略。同时,OpenFlow交换机端口可以设置队列。一个转发端口可以设置多个队列,每个队列可以配置最大速率(max_rate)、最小速率(min_rate)等,可以通过OF-Config来进行配置。其中,OF-Config是OpenFlow的一个辅助协议,用来配置和管理网络设备资源。在OpenFlowv1.3中,流表指令可以向动作集中添加设置队列(Set-queue)动作,即向指定队列(queue_id)转发数据,在OpenFlowv1.0中,则通过入队列(enqueue)动作,向指定端口(port)的指定队列(queue_id)转发数据。研究过程中发现,随着网络技术和多媒体技术的高速发展,音/视频会议、视频点播、多人游戏、协同工作和远程教学等基于组播的应用不断出现,对组播的服务质量需求也越来越强烈。然而,一个组播应用中可能同时存在多种形式的内容流,如视频、音频、文本等,不同的内容流的数据量大小、对数据完整性的要求等不同。针对相关技术无法保障组播业务的服务质量的问题,目前尚未提出有效的解决方案。技术实现要素:本发明提供了一种流处理方法、装置以及扩展的计量带类型,以至少解决相关技术无法保障组播业务的服务质量的问题。根据本发明的一个方面,提供了一种流处理方法,包括:接收对OpenFlow协议计量器中计量带的类型的配置,其中,所述类型包括:入队列申请,所述入队列申请用于指示对应速率的流应加入的端口和所述端口的队列;根据所述计量带的类型,对通过所述计量带的流进行处理。优选地,所述入队列申请至少包括:流的配置速率、与流的配置速率对应的端口、与流的配置速率对应的端口的队列。优选地,所述类型还包括以下至少之一:丢弃、差分服务代码点DSCP重标记。优选地,在根据所述多个计量带的类型,对通过所述计量带的流进行处理之前,所述方法还包括:接收对流表的配置,其中,所述流表的配置用于指示具有对应DSCP值的流应加入的计量器;根据所述流表的配置,将具有预设DSCP值的所述流加入所述计量器中,其中,所述预设DSCP值的所述流在所述流表的配置中被配置为应加入所述计量器。优选地,所述流的所述预设DSCP值用于指示所述流的内容,其中,所述内容至少包括:视频、音频、文本。优选地,在所述预设DSCP值指示所述流的内容为视频的情况下,根据所述计量带的类型,对通过所述计量带的流进行处理包括:将所述流中具有第一速率的流加入第一计量带,并根据所述第一计量带的类型,对通过所述第一计量带的流进行处理;将所述流中具有第二速率的流加入第二计量带,并根据所述第二计量带的类型,对通过所述第二计量带的流进行处理。优选地,根据所述第一计量带的类型,对通过所述第一计量带的流进行处理包括:在所述第一计量带的类型为入队列申请的情况下,将具有所述第一速率的流加入第一端口的第一队列。优选地,根据所述第二计量带的类型,对通过所述第二计量带的流进行处理包括:在所述第二计量带的类型为入队列申请的情况下,将具有所述第二速率的流加入第二端口的第二队列;在所述第二计量带的类型为丢弃的情况下,将具有所述第二速率的流丢弃;其中,所述第一速率小于所述第二速率。优选地,在所述预设DSCP值指示所述流的内容为音频的情况下,根据所述计量带的类型,对通过所述计量带的流进行处理包括:将所述流中具有第三速率的流加入所述 第三计量带;在所述第三计量带的类型为入队列申请的情况下,将具有所述第三速率的流加入第三端口的第三队列。优选地,在所述预设DSCP值指示所述流的内容为文本的情况下,根据所述计量带的类型,对通过所述计量带的流进行处理包括:将所述流中具有第四速率的流加入所述第四计量带;在所述第四计量带的类型为入队列申请的情况下,将具有所述第四速率的流加入第四端口的第四队列。根据本发明的另一个方面,还提供了一种流处理装置,包括:第一配置模块,用于接收对OpenFlow协议计量器中计量带的类型的配置,其中,所述类型包括:入队列申请,所述入队列申请用于指示对应速率的流应加入的端口和所述端口的队列;第一处理模块,用于根据所述计量带的类型,对通过所述计量带的流进行处理。优选地,所述入队列申请至少包括:流的配置速率、与流的配置速率对应的端口、与流的配置速率对应的端口的队列。优选地,所述类型还包括以下至少之一:丢弃、差分服务代码点DSCP重标记。优选地,所述装置还包括:第二配置模块,用于接收对流表的配置,其中,所述流表的配置用于指示具有对应DSCP值的流应加入的计量器;第二处理模块,用于根据所述流表的配置,将具有预设DSCP值的所述流加入所述计量器中,其中,所述预设DSCP值的所述流在所述流表的配置中被配置为应加入所述计量器。优选地,所述流的所述预设DSCP值用于指示所述流的内容,其中,所述内容至少包括:视频、音频、文本。优选地,所述第一处理模块包括:第一处理单元,用于在所述预设DSCP值指示所述流的内容为视频的情况下,将所述流中具有第一速率的流加入第一计量带,并根据所述第一计量带的类型,对通过所述第一计量带的流进行处理;第二处理单元,用于在所述预设DSCP值指示所述流的内容为视频的情况下,将所述流中具有第二速率的流加入第二计量带,并根据所述第二计量带的类型,对通过所述第二计量带的流进行处理。优选地,所述第一处理单元,用于在所述第一计量带的类型为入队列申请的情况下,将具有所述第一速率的流加入第一端口的第一队列。优选地,所述第二处理单元,用于在所述第二计量带的类型为入队列申请的情况下,将具有所述第二速率的流加入第二端口的第二队列;以及在所述第二计量带的类型为丢弃的情况下,将具有所述第二速率的流丢弃,其中,所述第一速率小于所述第二速率。优选地,所述第一处理模块还包括:第三处理单元,用于在所述预设DSCP值指示所述流的内容为音频的情况下,将所述流中具有第三速率的流加入所述第三计量带;在所述第三计量带的类型为入队列申请的情况下,将具有所述第三速率的流加入第三端口的第三队列。优选地,所述第一处理模块还包括:第四处理单元,用于在所述预设DSCP值指示所述流的内容为文本的情况下,将所述流中具有第四速率的流加入所述第四计量带;在所述第四计量带的类型为入队列申请的情况下,将具有所述第四速率的流加入第四端口的第四队列。根据本发明的另一个方面,还提供了一种扩展的计量带类型,所述计量带类型包括下列参数:配置速率(rate)、入队列动作个数(enqueue_number)、端口号(port)及队列号(queue_id);其中,所述计量带类型用于指示计量带根据流的速率将数据转入一个或多个端口的相应队列。通过本发明,采用接收对OpenFlow协议计量器中计量带的类型的配置,其中,类型包括:入队列申请,入队列申请用于指示对应速率的流应加入的端口和端口的队列;根据计量带的类型,对通过计量带的流进行处理的方式,解决了相关技术无法保障组播业务的服务质量的问题,保障了组播业务的服务质量。附图说明此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:图1是根据本发明实施例的流处理方法的流程图;图2是根据本发明实施例的流处理装置的结构框图;图3是根据本发明实施例的流处理装置的优选结构示意图;图4是根据本发明优选实施例的OpenFlow实施组播QoS系统框架图;图5是根据本发明优选实施例的简易的OpenFlow组播网络拓扑示意图;图6是根据本发明优选实施例的QoS保障实施的流程图。具体实施方式下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。本发明实施例提供了一种扩展的计量带类型,计量带类型包括下列参数:配置速率rate、入队列动作个数enqueue_number、端口号port及队列号queue_id;该扩展的计量带类型用于指示计量带根据流的速率将数据转入一个或多个端口的相应队列。本实施例还提供了一种流处理方法,图1是根据本发明实施例的流处理方法的流程图,如图1所示,该流程包括如下步骤:步骤S102,接收对OpenFlow协议计量器中计量带的类型的配置,其中,类型包括:入队列申请,入队列申请用于指示对应速率的流应加入的端口和端口的队列;步骤S104,根据计量带的类型,对通过计量带的流进行处理。通过上述步骤,在计量带中采用入队列申请类型,使得计量带可以将通过该计量带的流根据速率转发流至对应的端口及端口的队列,从而使得不同速率的流可以分别实现各自需求的QoS要求。这样,对于组播业务中进入相同计量器的不同速率的流可以实现差异化的QoS要求;相对于相关技术中无法根据流的速率对通过计量带的流进一步处理(只能进行drop或者DSCPremark)的方式,通过上述步骤,解决了相关技术无法保障组播业务的服务质量的问题,保障了组播业务的服务质量。优选地,入队列申请中配置的项目至少包括:流的配置速率、与流的配置速率对应的端口、与流的配置速率对应的端口的队列。例如,对于一个计量器而言,可以有一个或者多个计量带,在计量带被配置为入队申请类型时,需要配置流的配置速率、与流的配置速率对应的端口、与流的配置速率对应的端口的队列。从而使得对应速率的流可以分别进入相应的计量带,进而加入对应的端口的队列中处理。这些端口的队列可以配置有最低速率,还可以配置有最高速率。例如0~100kbps的流,进入最低速率为100kbps的队列即可保障其QoS。此外,虽然0~100kbps的流,进入最低速率为500kbps的队列也可以保障其QoS,但可能造成资源的浪费,并且占用较高速的队列。因此,流在根据速率送入计量带处理时,进入配置速率中能够满足该流的速率要求的最小配置速率对应的计量带处理。优选地,计量带的类型还可以包括以下至少之一:dorp、DSCPremark。即在应用上述方法时,计量器中计量带还可以结合dorp、DSCPremark类型实现流的QoS保障。优选地,在组播业务中,包含视频、音频、文本内容;而这些内容的流具有各自的特征。例如,视频流速率较大,速率的变化范围也大;为了对不同内容的流进行差异化的QoS保障,在本发明实施例中通过在组播源封装流时,通过IP投中的DSCP值对流的内容进行标记。这样,流可以根据DSCP值的不同(也即流的内容的不同)进入不同的计量器,进而被不同的计量器中的计量带处理。例如,接收对流表的配置,其中,流表的配置用于指示具有对应DSCP值的流应加入的计量器;根据流表的配置,将具有预设DSCP值的流加入计量器中,其中,预设DSCP值的流在流表的配置中被配置为应加入计量器。优选地,上述流的预设DSCP值用于指示流的内容,其中,内容至少包括:视频、音频、文本。在本发明实施例中并不限于上述三种内容;在流的内容导致流的速率、流的速率的变化呈现一定特征的情况下,可以采用对应的DSCP值进行标记,进而进入不 同的流表进行差异化的处理。优选地,在预设DSCP值指示流的内容为视频的情况下,根据计量带的类型,对通过计量带的流进行处理包括:将流中具有第一速率的流加入第一计量带,并根据第一计量带的类型,对通过第一计量带的流进行处理;将流中具有第二速率的流加入第二计量带,并根据第二计量带的类型,对通过第二计量带的流进行处理。优选地,根据第一计量带的类型,对通过第一计量带的流进行处理包括:在第一计量带的类型为入队列申请的情况下,将具有第一速率的流加入第一端口的第一队列。优选地,根据第二计量带的类型,对通过第二计量带的流进行处理包括:在第二计量带的类型为入队列申请的情况下,将具有第二速率的流加入第二端口的第二队列;在第二计量带的类型为丢弃的情况下,将具有第二速率的流丢弃;其中,第一速率小于第二速率。通过结合丢弃类型的计量带,可以实现视频流的限速。优选地,在预设DSCP值指示流的内容为音频的情况下,根据计量带的类型,对通过计量带的流进行处理包括:将流中具有第三速率的流加入第三计量带;在第三计量带的类型为入队列申请的情况下,将具有第三速率的流加入第三端口的第三队列。优选地,在预设DSCP值指示流的内容为文本的情况下,根据计量带的类型,对通过计量带的流进行处理包括:将流中具有第四速率的流加入第四计量带;在第四计量带的类型为入队列申请的情况下,将具有第四速率的流加入第四端口的第四队列。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。在本实施例中还提供了一种流处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。图2是根据本发明实施例的流处理装置的结构框图,如图2所示,该装置包括:第一配置模块22和第一处理模块24,其中,第一配置模块22,用于接收对OpenFlow协议计量器中计量带的类型的配置,类型包括:入队列申请,入队列申请用于指示对应速率的流应加入的端口和端口的队列;第一处理模块24,耦合至第一配置模块22,用于根据计量带的类型,对通过计量带的流进行处理。通过上述模块的综合作用,解决了相关技术无法保障组播业务的服务质量的问题, 保障了组播业务的服务质量。优选地,入队列申请至少包括:流的配置速率、与流的配置速率对应的端口、与流的配置速率对应的端口的队列。优选地,类型还包括以下至少之一:丢弃、差分服务代码点重标记。图3是根据本发明实施例的流处理装置的优选结构示意图,如图3所示,优选地,装置还包括:第二配置模块32,用于接收对流表的配置,其中,流表的配置用于指示具有对应DSCP值的流应加入的计量器;第二处理模块34,耦合至第二配置模块32,用于根据流表的配置,将具有预设DSCP值的流加入计量器中,其中,预设DSCP值的流在流表的配置中被配置为应加入计量器。优选地,流的预设DSCP值用于指示流的内容,其中,内容至少包括:视频、音频、文本。优选地,第一处理模块24包括:第一处理单元241,用于在预设DSCP值指示流的内容为视频的情况下,将流中具有第一速率的流加入第一计量带,并根据第一计量带的类型,对通过第一计量带的流进行处理;第二处理单元242,用于在预设DSCP值指示流的内容为视频的情况下,将流中具有第二速率的流加入第二计量带,并根据第二计量带的类型,对通过第二计量带的流进行处理。优选地,第一处理单元241,用于在第一计量带的类型为入队列申请的情况下,将具有第一速率的流加入第一端口的第一队列。优选地,第二处理单元242,用于在第二计量带的类型为入队列申请的情况下,将具有第二速率的流加入第二端口的第二队列;以及在第二计量带的类型为丢弃的情况下,将具有第二速率的流丢弃,其中,第一速率小于第二速率。优选地,第一处理模块24还包括:第三处理单元243,用于在预设DSCP值指示流的内容为音频的情况下,将流中具有第三速率的流加入第三计量带;在第三计量带的类型为入队列申请的情况下,将具有第三速率的流加入第三端口的第三队列。优选地,第一处理模块24还包括:第四处理单元244,用于在预设DSCP值指示流的内容为文本的情况下,将流中具有第四速率的流加入第四计量带;在第四计量带的类型为入队列申请的情况下,将具有第四速率的流加入第四端口的第四队列。需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述模块分别位于多个处理器中。本发明的实施例还提供了一种软件,该软件用于执行上述实施例及优选实施方式中描述的技术方案。本发明的实施例还提供了一种存储介质。在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的程序代码:步骤S1,接收对OpenFlow协议计量器中计量带的类型的配置,其中,类型包括:入队列申请,入队列申请用于指示对应速率的流应加入的端口和端口的队列;步骤S2,根据计量带的类型,对通过计量带的流进行处理。可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-OnlyMemory,简称为ROM)、随机存取存储器(RandomAccessMemory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。为了使本发明实施例的描述更加清楚,下面结合优选实施例进行描述和说明。本发明优选实施例提供了一种基于OpenFlow计量器的组播流差分服务机制,涉及利用OpenFlow计量器和端口队列实现组播流差分服务机制。在本优选实施例中,采用差分服务模型(Diff-Serv)来对组播的不同内容进行QoS保障。差分服务一般在IP包头的ToS字段中设置不同的DSCP值来区分不同的内容流,然后对不同流执行不同的服务策略。OpenFlow网络的出现增加了对网络管理的灵活性和可扩展性,因此运用OpenFlow对内容流进行识别具有很好的灵活性,对交换机进行资源策略配置具有很好的管理性,有助于实现更复杂细致的差分服务。为了提供一种组播QoS机制来保障组播的带宽,同时提高资源利用率,本发明优选实施例对现有的OpenFlow协议的计量表进行扩展,增加一种计量带类型(BandType):入队列申请(enqueueapply),该类型计量带执行一个或多个enqueue动作。利用该类型计量带建立的计量器可以让不同速率的流进入组播端口的不同队列。优选地,为了在OpenFlow网络中实现组播QoS保障,本发明优选实施例在OpenFlow控制器上设计了组播管理模块和QoS保障模块。优选地,组播管理模块的任务包括:组播组成员管理、组播树建立以及为交换机下发相应组播识别流表,根据组播树结构向QoS模块提供每个交换机的组播转出端口信息。优选地,QoS保障模块负责:建立内容识别流表和相应的计量表,通过OF-Config配置相应的端口队列。在内容识别流表中通过不同的DSCP值来区分不同的内容流。在计量表中建立多个计量器来实现不同的QoS保障。根据不同内容流的特点对不同内容实施不同QoS策略。其中,为了保障视频流、音频流、文本流的流畅传输,本发明优选实施例分别了建 立相应的计量器和端口队列来保障带宽。优选地,视频流传输速率大,同时速率变化大,因此可以将视频流的速率分成多个等级,然后在每个组播转发端口都给每个等级配置相应的具有最小速率的端口队列,最后建立含多个enqueueapply类型的计量带的计量器,将每个等级速率的视频流分别发送到组播端口各自对应的队列,来保障其流畅传输。这样可以避免低速的流占据高带宽资源,可以节约网络的带宽。同时,为了防止视频流占用太多的网络带宽,还可以在计量器中增加一个drop类型的计量带来对视频流进行限速。优选地,音频流、文本流的传输速率相对较小,变化也较小,因此可以不进行速率的分级,它们都只有一个等级速率,只需各自在每个组播端口建立一个具有最小速率的队列。然后给这两种内容流分别建立只含一个enqueueapply类型的计量带的计量器,将这两种流分别发送到组播端口各自对应队列来保障流畅传输。可见,本发明优选实施例扩展了OpenFlow协议的计量表,增加了新的计量带类型enqueueapply,利用该类型计量带建立的计量器可以使数据流根据不同的速率进入不同的队列。相应地,本发明优选实施例在OpenFlow控制器上设计了组播管理和QoS保障两个模块,来分别负责数据组播和各内容的QoS保障。最后,利用扩展的计量带和端口队列对各内容流实施了更细致的差分服务,在保障流畅传输的同时可以减小网络带宽开销。下面结合附图对本发明优选实施例进行描述和说明。本发明在为了实现组播的流差分服务,首先拓展了现有的OpenFlow计量带,增加了新的计量带类型enqueueapply。然后在OpenFlow控制器上设计了组播管理和组播QoS两个模块,来分别负责数据组播和各内容的QoS保障。最后利用enqueueapply计量带分别为各内容设计相应的计量器,来实现细致的组播流差分服务。下面仅以在一个简单的网络拓扑环境下实现组播的视频、音频、文本的流差分服务为例对本方法进行说明,实际中,网络拓扑可能更复杂和数据内容划分可能会根据具体情况变化,然而,这些不同的应用场景均可使用于本发明优选实施例。优选实施例一:本发明优选实施例中新增的计量带enqueueapply类型的结构体如下所示:structofp_meter_band_enqueue_apply{uint16_ttype;/*计量带类型*/uint16_tlen;/*该计量带的字节长度.*/uint32_trate;/*该计量带的配置速率*/uint8_tenqueue_number/*队列的总个数*/structenqueue_parameter*list/*队列参数*/uint8_tpad[32];};其中structenqueue_parameter{uint32_tport;/*端口号*/uint32_tqueue_id;/*队列id*/}本发明优选实施例中定义的上述计量带enqueueapply类型是一种“可选的(optional)”类型。该类型计量带执行一个或多个enqueue动作,该计量带的参数包括相应的配置速率(rate)、enqueue动作个数(enqueue_number)、端口号(port)及队列号(queue_id)。该计量带可以根据流速率将数据转入一个或多个端口的相应队列。该计量带的执行伪代码如下所示:/*****************函数名:enqueue_apply输入参数:ofp_meter_band_enqueue_apply结构体的实例enqueue_apply_band,待处理的数据流pkt。输出参数:void实现功能:执行计量带enqueue_apply_band的操作,将数据流pkt的执行enqueue操作。即先从enqueue_apply_band中提取出添加enqueue动作的个数N,然后依次将N个队列参数对,建立成enqueue动作的标准ofp_enqueue_action结构体实例,然后运用apply-actions直接执行这N个enqueue动作,将数据发送到相应端口的相应队列。需要说明的是,利用该计量带时,在多级流表设计时不能有output动作,以避免和enqueue动作造成重复发送,同时所有动作采用使用Apply-actions指令,而非Write-actions指令,这样可以保障相关动作的执行在数据流通过该计量带进入队列之前完成。利用该扩展的计量带可以设计一个让不同速率的流进入不同端口队列的计量器。给具有不同配置速率rate的enqueueapply类型计量带设置不同queue_id参数,则可以实现根据不同速率将流调整进入组播端口中的不同队列,以利于后面实现组播QoS保障。下表1为利用enqueueapply计量带建立的计量器1:表1数据流经过该计量器的处理:当通过该计量带的流速率在0~bkbps时,将进入p1端口的队列q11和p2端口的队列q21;当流速率超过bkbps时,将进入p1端口的队列q12和p2 端口的队列q22。优选实施例二:图4是根据本发明优选实施例的OpenFlow实施组播QoS系统框架图,如图4所示,为了实现组播的QoS保障,本发明优选实施例在控制器上设计两个模块:组播管理模块和QoS保障模块,其中:组播管理模块,用于组播组成员管理、组播树建立以及为交换机建下发相应组播识别流表(即流表0),根据组播树结构向QoS模块提供每个交换机的组播转出端口。QoS保障模块,负责建立内容识别流表(流表1)和相应的计量表,通过OF-Config配置相应的端口队列。QoS保障模块将根据选择的QoS策略,在计量表中建立相应的计量器。其中,流表0由组播管理模块建立并下发到交换机,用于实现交换机的组播识别;流表1由QoS保障模块建立并下发到交换机,用于各内容流的区分识别,并转到计量表中相应的计量器进行处理;计量表由QoS保障模块建立并下发到交换机,包含多个计量器来实现不同的QoS保障,通过每个计量器包含一个或多个enqueue_apply计量带,根据速率的流进入不同的队列;队列由OF-Config来配置,可以设置队列最大速率、队列最小速率等来辅助实现QoS保障。结合图4所示,数据进入OpenFlow交换机的执行过程,包括如下步骤:步骤S401,当数据流进入OpenFlow交换机后,将进入流水线,在流表0中进行匹配,将执行匹配成功的流表项的相应指令,即转到流表1。步骤S402,数据流在流表1中继续匹配,以识别流的内容,匹配成功后转到相应计量器。步骤S403,数据流进入相应的计量器后,计量器选择计量带的配置速率低于流当前速率中最大的那个计量带进行处理,处理方式包括:drop、DSCPremark和enqueueapply。其中,enqueue_apply计量带会将数据流会转发到指定端口的指定队列。步骤S404,数据经过队列转发出端口,队列配置相应的最大或最小速率来限制或保障速率。优选实施例三:图5是根据本发明优选实施例的简易的OpenFlow组播网络拓扑示意图,如图5所示,假设组播源的多媒体接入控制(MAC)地址为00:00:00:00:00:00,组播使用的用户数据报(UDP)端口为100。本发明优选实施例在OpenFlow的控制器建立了一个组播管理模块,负责管理组播成员的加入、组播树建立、为相应的交换机建立下发组播识别流表、向QoS模块提供每个交换机的组播转出端口。结合图5所示,该流程的步骤包括:步骤S501,当需要一个组播应用建立时,组播各成员向OpenFlow控制器的组播管理模块发送申请,OpenFlow控制器中的组播管理模块对组成员进行管理。步骤S502,组播组管理模块将根据网络拓扑、链路状态以及选择的生成树算法,为该组播建立一个组播树,图5粗黑线表示组播树。步骤S503,组播树建立后,组播管理模块将根据组播源MAC地址、UDP端口以及组播树进出交换机的端口为各交换机建立并下发相应的组播识别流表,即流表0。流表0的匹配域是Ether_Src=源MAC地址、Src_Port=UDP端口、Ingress_port=组播树进入交换机的端口,相应指令是进入流区分识别流表(即流表1)。例如,交换机1建立的组播识别流表如表2所示:表2步骤S504,组播管理模块还需要根据组播树结构向QoS模块提供每个交换机的组播转出端口。例如,交换机1的组播出端口是端口3和端口4,该模块需要将该信息提供给QoS模块,QoS将利用该信息辅助建立相应的enqueue_apply计量带。优选实施例四:图6是根据本发明优选实施例的QoS保障实施的流程图,QoS保障模块将根据所选择的QoS保障策略,建立相应的流表1和计量表,并结合OF-Config来配置相应的端口队列。在此,使用差分服务模型(DiffServ),将一个基于组播的应用的视频、音频、文本等内容的传输进行差分服务,因此需要对不同的内容流进行识别,如图6所示,该流程包括如下步骤:步骤S601,为了实现差分服务,利用IP头部中ToS字段的DSCP值,通过设置不同DSCP值来标明不同内容。组播源封装数据包时,对不同的内容设置不同的DSCP值。例如,可以将文本、音频、视频、其他格式内容的DSCP值分别设置为4、3、2、1。步骤S602,为了识别不同的内容流,QoS保障模块需要建立相应的流表1来识别不同的内容流。由于不同的内容设置不同的DSCP值,因此可以通过匹配IP_DSCP值来识别不同的内容流,匹配成功后转入相应的计量器实现相应的QoS保障。内容识别流表如表3所示:表3MatchFieldsPriorityCountersInstructionTimeoutsCookieIP_DSCP=2Metermeter_id=2IP_DSCP=3Metermeter_id=3IP_DSCP=4Metermeter_id=4当数据流的DSCP值为2时,数据流将转向计量器2进行处理;DSCP值为3时,则转向计量器3处理;DSCP值为4时,则转向计量器4处理。不同的计量器将根据不同的服务策略来设计,从而实现对不同内容流的差分服务。上面阐述了内容识别流表的设计,将视频、音频、文本不同的内容流进行了分离识别。QoS模块收到组播管理模块提供的各交换机的组播转出端口信息后,还需要在各交换机为各种内容流设计相应的计量器和配置相应的端口队列。为了实现各内容传输的流畅,可以对各内容流流进行带宽保障。可以根据各内容流的特点,本发明优选实施例中,对各内容速率进行等级划分,设置相应队列,建立相应计量器。下面以视频流为例阐述步骤S603至步骤S605:步骤S603,根据视频速率的特点和划分的颗粒度,将视频速率划分几个等级。例如,对于一个传输速率主要在0~1000kbps之间的变化的视频流,可以将速率划分成3个等级:0~100kbps、100~500kbps、500~1000kbps。步骤S604,通过OF-Config协议在每个组播转发端口为各等级的速率建立相应的队列,为各队列设置相应的最小速率。例如,给每个组播转出端口设置3个队列,如在图5所示的交换机1的端口3的队列1和端口4的队列2均有min_rate=100kbps、端口3队列3和端口4的队列4均有min_rate=500kbps、端口3队列5和端口4的队列6均有min_rate=1000kbps,分别实现低、中、高三种转发速率。步骤S605,利用enqueueapply计量带建立相应的计量器,例如表4中的Meterid为2的计量器(即计量器2):表4利用计量器2,可以将不同等级速率的视频流调整进入每个组播端口的不同的队列。当视频流经过计量器2处理,若视频流的速率在0~100kbps时,则进入端口3的队列1和端口4的队列2,其最小转发速率是100kbps,完全能保障其流畅的传输;同样速率在100~500kbps时,进入端口3的队列3和端口4的队列4;速率在500~1000kbps时,进入端口3的队列5和端口4的队列6。该方法的优势是,使视频流进入可以充分满足其速率要求的队列,同时又不占用过多的资源。如当视频流速率较大时,则将其转发进入高速队列,当速率降低至低速队列可满足其要求时,将其转发进入低速队列,以免低速流占用高速队列造成资源浪费。为了防止视频流瞬时速率过大占用太多的网络带宽,还可以在计量器通过增加一个drop类型的计量带,设置该计量带的配置速率为高速队列的速率,当速率超过高速的速率时,计量表将会丢弃数据,以达到限制速率的目的。如表4中的计量器2的限速为1000kbps,当大于1000kbps则丢弃数据。音频流、文本流的传输速率相对较小,变化也较小,因此可以不进行速率的分级,都只有一个等级速率,只需各自在每个组播端口建立一个队列,队列设置相应的最小速率。然后给这两种内容流分别建立只含一个enqueueapply类型的计量带的计量器,将这两种流分别发送到每个组播端口的各自对应队列来保障流畅传输。例如,如表4中Meterid为3的计量器(即计量器3)所示,对于一个传输速率主要在0~100kbps之间的变化的音频,在每个组播端口设置一个队列,端口3的队列7和端口4的队列8均有min_rate=100kbps。然后在计量表中建立计量器3,只含一个配置速率为0kbps的enqueueapply类型计量带,则音频流经过该计量器都转发到端口3的队列7和端口4的队列8。又例如,如表4中Meterid为4的计量器(即计量器4)所示,对于一个传输速率主要在0~200kbps之间的变化的文本,在每个组播端口设置一个队列,端口3的队列9和端口4的队列10均有min_rate=200kbps。然后在计量表中建立计量器4,只含一 个配置速率为0kbps的enqueueapply类型计量带,则文本流经过该计量器都转发到端口3的队列9和端口4的队列10。显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1