报文限速方法和装置制造方法

文档序号:7818546阅读:105来源:国知局
报文限速方法和装置制造方法
【专利摘要】本发明提出一种报文限速方法,应用于软件定义网络SDN设备上,所述方法包括:保存SDN控制器下发的、与流表关联的限速表项,其中,所述限速表项中配置了多个限速带宽;接收报文,统计预设时间内接收到的报文的流量;根据统计出的报文的流量,从所述多个限速带宽中选择适配限速带宽;根据预设算法基于所述适配限速带宽对所述报文进行限速。通过本发明,可以根据实际的报文流量来选择适配的限速带宽对报文进行更精准的限速,使得SDN设备在对报文进行限速处理时,可以适应更复杂的限速配置。
【专利说明】报文限速方法和装置

【技术领域】
[0001]本发明涉及通信【技术领域】,尤其涉及一种报文限速方法和装置。

【背景技术】
[0002]SDN(Software Defined Network,软件定义网络)网络,通过将网络进行虚拟化,将整网的资源分割成多个虚拟网,分配给不同的用户使用,且互不影响。
[0003]请参见图1,在SDN网络中,每个被虚拟化出来的网络由SDN设备、SDN控制器以及安全通道(Secure Channel)组成。
[0004]所述SDN设备,用于接收由SDN控制器下发的流表(Flow Table),根据流表进行报文转发,并向SDN控制器上报设备的状态和事件,例如本地SDN接口的UP/D0WN事件。
[0005]所述SDN控制器,是虚拟网的控制中心,根据用户的配置或者动态运行的协议(例如OpenFlow协议)生成流表发送到SDN设备,用以指导SDN设备的报文转发。
[0006]所述安全通道,用于保护SDN控制器和SDN设备之间传递信息的安全性,SDN控制器和SDN网络中每一台SDN设备均存在独立的安全通道,SDN控制器可以通过所述安全通道向SDN设备下发流表,SDN交换机可以通过安全通道向SDN控制器上报设备的状态和事件。
[0007]在现有实现中,SDN网络中SDN设备对转发的报文进行限速处理,通常是SDN控制器在为SDN设备下发流表时,关联下发对应的限速表项,SDN设备根据限速表项对转发的报文进行限速处理。
[0008]然而,在目前的实现方案中,SDN设备在对转发的报文进行限速时,只能根据固定的限速带宽对转发的报文进行限速处理,因此限速不够精准。。


【发明内容】

[0009]有鉴于此,本发明提出一种报文限速方法,应用于SDN设备上,所述方法包括:
[0010]保存SDN控制器下发的、与流表关联的限速表项,其中,所述限速表项中配置了多个限速带宽;
[0011]接收报文,统计预设时间内接收到的报文的流量;
[0012]根据统计出的报文的流量,从所述多个限速带宽中选择适配限速带宽;
[0013]根据预设算法基于所述适配限速带宽对所述报文进行限速。
[0014]可选的,所述接收报文,统计预设时间内接收到的报文的流量包括:
[0015]创建报文缓存池,其中所述报文缓存池的缓存带宽为所述多个限速带宽中的最大限速带宽;
[0016]将接收到的报文在所述报文缓存池中进行缓存;
[0017]统计所述报文缓存池中预设时间内缓存的报文的流量。
[0018]可选的,所述根据统计出的报文的流量,从所述多个限速带宽中选择适配限速带宽包括:
[0019]根据统计出的报文的流量,确定该报文的处理带宽;
[0020]判断所述处理带宽是否大于或等于所述多个限速带宽中的最大限速带宽;
[0021]如果是,选择所述最大限速带宽作为所述适配限速带宽;
[0022]如果否,选择所述多个限速带宽中所有带宽值低于所述处理带宽的限速带宽中带宽值最大者作为所述适配限速带宽。
[0023]可选的,所述方法还包括:
[0024]当所述报文的流量发生变化而导致所述适配限速带宽发生变化时,根据预设算法基于发生变化后的适配限速带宽对所述报文进行限速。
[0025]可选的,所述预设算法为令牌桶算法。
[0026]本发明还提出一种报文流量限速装置,应用于软件定义网络SDN设备上,所述装置包括:
[0027]保存模块,用于保存SDN控制器下发的、与流表关联的限速表项,其中,所述限速表项中配置了多个限速带宽;
[0028]统计模块,用于接收报文,统计预设时间内接收到的报文的流量;
[0029]选择模块,用于根据统计出的报文的流量,从所述多个限速带宽中选择适配限速带宽;
[0030]限速模块,用于根据预设算法基于所述适配限速带宽对所述报文进行限速。
[0031]可选的,所述统计模块具体用于:
[0032]创建报文缓存池,其中所述报文缓存池的缓存带宽为所述多个限速带宽中的最大限速带宽;
[0033]将接收到的报文在所述报文缓存池中进行缓存;
[0034]统计所述报文缓存池中预设时间内缓存的报文的流量。
[0035]可选的,所述选择模块具体用于:
[0036]根据统计出的报文的流量,确定该报文的处理带宽;
[0037]判断所述处理带宽是否大于或等于所述多个限速带宽中的最大限速带宽;
[0038]如果是,选择所述最大限速带宽作为所述适配限速带宽;
[0039]如果否,选择所述多个限速带宽中所有带宽值低于所述处理带宽的限速带宽中带宽值最大者作为所述适配限速带宽。
[0040]可选的,所述限速模块进一步用于:
[0041]当所述报文的流量发生变化而导致所述适配限速带宽发生变化时,根据预设算法基于发生变化后的适配限速带宽对所述报文进行限速。
[0042]可选的,所述预设算法为令牌桶算法。
[0043]本发明不再通过固定的限速值对报文进行限速,而是通过统计预设时间内接收到的报文的流量,根据统计出的报文的流量,从SDN控制器下发的限速表项中的多个限速带宽中选择适配限速带宽,并根据预设算法基于选择出的适配限速带宽对报文进行限速,从而实现了可以根据实际的报文流量来选择适配的限速带宽对报文进行更精准的限速。

【专利附图】

【附图说明】
[0044]图1是本发明一种示例性实施方式中示出的现有技术SDN的组网图;
[0045]图2是本发明一种示例性实施方式中示出的限速表的基本结构图;
[0046]图3是本发明一种示例性实施方式中示出的一种报文限速方法的处理流程图;
[0047]图4是本发明一种示例性实施方式中示出的SDN设备对报文进行限速的处理示意图;
[0048]图5是本发明一种示例性实施方式示出的一种报文限速装置的框图;
[0049]图6是本发明一种示例性实施方式示出的一种承载所述一种报文限速装置的SDN设备的硬件结构图。

【具体实施方式】
[0050]在SDN网络中,SDN设备对转发的报文进行限速,通常是由SDN控制器(以下简称控制器)在为SDN设备下发流表时,关联下发对应的限速表项,SDN设备根据限速表项对转发的报文进行限速处理。
[0051]目前,SDN网络的一些应用协议中,控制器在为SDN设备下发流表时,所关联下发的限速表项已可以设置多个限速带宽;例如,以目前SDN网络中应用最广泛的为Openflow协议为例,openflow-spec-vl.3.1版已支持一个限速表项配置多个限速带宽;请参见图2,图2为openflow-spec-vl.3.1版规定的限速表的基本结构,由图2可见,一个限速表中可以配置一个或者多个限速表项,每一个限速表项可以配置一个或者多个的限速带宽。
[0052]然而,在目前的实现方案中,SDN设备在对转发的报文进行限速时,只能根据固定的限速带宽对转发的报文进行限速处理,对报文的限速不够精准。
[0053]有鉴于此,本发明提出一种报文限速方法,不再通过固定的限度带宽对报文进行限速,而是通过统计预设时间内接收到的报文的流量,根据统计出的报文的流量,从SDN控制器下发的限速表项中的多个限速带宽中选择适配限速带宽,并根据预设算法基于选择出的适配限速带宽对报文进行限速,实现了可以根据实际的报文流量来选择适配的限速带宽对报文进行更精准的限速。
[0054]为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明所述方案作进一步地详细说明。
[0055]请参见图3,本发明提出一种报文限速方法,应用于SDN设备中,执行如下步骤:
[0056]步骤301、保存SDN控制器下发的、与流表关联的限速表项,其中,所述限速表项中配置了多个限速带宽;
[0057]步骤302、接收报文,统计预设时间内接收到的报文的流量;
[0058]步骤303、根据统计出的报文的流量,从所述多个限速带宽中选择适配限速带宽;
[0059]步骤304、根据预设算法基于所述适配限速带宽对所述报文进行限速。
[0060]在本实施例中,控制器在为SDN设备下发流表时,仍然可以关联下发已配置了多个限速带宽的限速表项;SDN设备在收到由控制器下发的限速表项时,在本地保存所述限速表项,然后可以统计接收到的报文的流量,并根据统计出的流量从所述限速表项配置的多个限速带宽中选择适配限速带宽,并调用预设算法基于所述适配限速带宽对报文进行限速处理。
[0061]具体的,SDN设备在统计预设时间内收到报文的流量时,可以通过将接收到的报文在预先创建的报文缓存池中进行缓存,并统计预设时间内缓存的报文的流量来实现。其中,在创建报文缓存池时,可以将所述报文缓存池的缓存带宽指定为由控制器下发的限速表项中设置的多个限速带宽中的最大限速带宽;例如,假设控制器下发的限速表项中设置了 100M、50M和20M三个限速带宽,那么在创建报文缓存池时,可以将报文缓存池的缓存带宽设置为100M。其中,缓存池的缓存带宽是指缓存池单位时间内所能缓存的最大报文流量。
[0062]请参见图4,当报文缓存池设置完成后,可以将收到的报文按照接收顺序在报文缓存池中进行缓存,并统计报文缓存池中预设时间内缓存的报文的流量。其中,统计报文缓存池中预设时间内缓存的报文的流量,可以通过流量计数器统计收到的报文的个数,并在每收到一个报文时就记录收到的报文的大小,然后根据预设时间周期内缓存报文的总数,计算出预设时间内缓存报文的总大小来实现。例如,假设所述预设时间周期为I秒,在统计收到的报文的流量时,可以将报文缓存池中I秒内缓存的报文的总大小作为收到的报文的流量值。
[0063]值得说明的是,当报文缓存池充满报文后,后续的报文将无法进入报文缓存池进行缓存,对于这部分报文可以直接进行丢弃或者降低优先级进行延迟发送。可见,将缓存报文池的缓存带宽设置为所述多个限速带宽中的最大限速带宽,可以对收到的报文进行一次初步的限速处理,将收到的报文的速率限制在所述最大限速带宽以内。
[0064]当统计出收到的报文的流量后,可以根据统计出的流量来确认出收到的报文的处理带宽,同时将所述处理带宽与所述多个限速带宽中的最大限速带宽进行比较,并根据比较结果来选择合适的适配限速带宽。
[0065]具体的,如果所述处理带宽大于或者等于所述最大限速带宽,此时可以直接选择所述最大限速带宽作为适配限速带宽;例如,假设所述限速表项中设置了 100M、80M、60M、40M四个限速带宽,此时可以选择这四个限速带宽中最大的100M作为所述适配限速带宽;
[0066]如果所述处理带宽小于所述最大限速带宽,此时可以选择所述限速表项中设置的多个限速带宽中所有限速带宽值低于所述处理带宽的限速带宽中,限速带宽值的最大者作为所述适配限速带宽。例如,假设所述限速表项中设置了 100M、80M、60M、40M四个限速带宽,所述处理带宽为90M,那么在确认适配限速带宽时,可以选择低于90M的限速带宽中的最大者80M作为所述适配限速带宽。
[0067]请继续参见图4,当选择出适配限速带宽后,可以根据预设算法基于选择出的适配限速带宽对报文进行限速处理。
[0068]在本实施例中,在根据预设算法基于所述适配限速带宽对报文进行限速时,所述预设算法可以是令牌桶算法。根据令牌桶算法,在对报文进行限速时,可以预先投放一定数量的限速令牌,其中每一个限速令牌的大小为I个字节,所述限速令牌的数量取决于所述适配限速带宽,例如,如果选择出的适配限速带宽为100M,那么可以将所述适配限速带宽值换算为字节数来确定限速令牌的数量。当对报文进行转发时,可以从所述报文缓存池中提取报文,然后根据要转发的报文的大小从预先投放的限速令牌中取走相同数量的限速令牌,例如,假设要转发的报文大小为8个字节,那么可以从预先投放的限速令牌中取走8个限速令牌;在预设的时间周期内,当预先投放的限速令牌全部被取走后,后续的报文将无法进行转发,对于这些报文可以直接丢弃或者降低优先级在下一个预设时间周期内令牌被重新投放后进行延迟转发。
[0069]在本实施例中,当SDN设备收到的报文的流量发生变化,在实现时仍然可以按照以上方案,通过统计接收到的报文的流量,根据统计出的流量来选择合适的适配限速带宽。其中,如果由于报文的流量发生变化,最终选择出的适配限速带宽也发生变化时,在根据预设算法对转发的报文进行限速时,需要实时的对适配限速带宽进行更新,基于发生变化后的适配限速带宽进行限速。例如,以所述预设算法为令牌桶算法为例,如果所述适配限速带宽发生变化,算法可以实时的对投放的令牌数进行更新,以保证对报文限速的精准性。
[0070]通过以上实施例的描述可知,本发明提出一种报文限速方法,在实现时不再通过固定的限度带宽对报文进行限速,而是通过统计预设时间内接收到的报文的流量,根据统计出的报文的流量,从SDN控制器下发的限速表项中的多个限速带宽中选择适配限速带宽,并根据预设算法基于选择出的适配限速带宽对报文进行限速,从而可以根据实际的报文流量来选择适配的限速带宽对报文进行更精准的限速,因此使得SDN设备在对报文进行限速处理时,可以适应更复杂的限速配置。
[0071]同时,如果报文流量发生变化而导致选择出的适配限速带宽发生变化,本发明还可以实时的对适配限速带宽进行更新,并根据预设算法基于发生变化后的适配限速带宽对报文进行限速处理,从而保证了对报文进行限速的精准性,而且由于本发明可以根据报文流量的变化对适配限速带宽进行实时更新,使得SDN设备在对报文进行限速处理时,可以适应更复杂的限速配置。
[0072]以下通过具体的应用实例来详细阐述本发明。
[0073]假设控制器向SDN设备下发流表项F,流表F下关联限速表项Meterl ;其中Meterl中配置了 Bandl (100M),Band2 (50M), Band3 (20M),Band4(1M)四个限速带宽,报文缓存池的缓存带宽为100M,限速算法为令牌桶算法。
[0074]实例一
[0075]假设预设时间周期为I秒,报文缓存池统计出的报文流量为110M。由于110M>100M,因此可以选择限速表项Meterl中配置的四个限速带宽中的最大限速带宽100M作为适配限速带宽。
[0076]此时适配限速带宽为100M,系统调用令牌桶算法投放100M的限速令牌对报文进行限速处理,限速后出方向的报文限制为lOOM/s。
[0077]实例二
[0078]假设预设时间周期为I秒,报文缓存池统计出的报文流量为30M,由于30M〈100M,并且限速表项Meterl中配置的四个限速带宽中小于30M的限速带宽中的最大值为20M,因此可以选择限速表项Meterl中配置的四个限速带宽中20M的限速带宽作为适配限速带宽。
[0079]此时适配限速带宽为20M,系统调用令牌桶算法投放20M的限速令牌对报文进行限速处理,限速后出方向的报文限制为20M/s。
[0080]假设从第二秒开始,流量由20M突变为90M,此时90M〈100M,并且限速表项Meterl中配置的四个限速带宽中小于90M的限速带宽中的最大值为50M,因此可以选择限速表项Meterl中配置的四个限速带宽中50M的限速带宽作为适配限速带宽。
[0081]此时适配限速带宽由20M更新为50M,系统调用令牌桶算法,对投放的令牌数进行更新,然后根据更新后的令牌数对报文进行限速处理,限速后出方向的报文速率限制为20M/s。
[0082]实例三
[0083]假设预设时间周期为I秒,报文缓存池统计出的报文流量为5M,由于5M〈100M,而且5M〈10M,此时报文的处理带宽小于限速表项中的所有限速带宽值,此时可以不对报文进行限速处理,因此系统可以不调用令牌桶算法对报文进行限速,走正常转发报文的流程。
[0084]与上述各方法实施例对应,本发明还提供装置项实施例。
[0085]请参见图5,本发明还提出一种报文限速装置50,应用于SDN设置中;其中,请参见图6,作为承载所述报文限速装置50的SDN设备涉及的硬件架构中,通常包括CPU、内存、非易失性存储器、网络接口以及内部总线等。以软件实现为例,本发明装置50通常可以理解为加载在内存中的计算机程序,通过CPU运行之后形成的软硬件相结合的逻辑装置;所述装置50包括:
[0086]保存模块501,用于保存SDN控制器下发的、与流表关联的限速表项,其中,所述限速表项中配置了多个限速带宽;
[0087]统计模块502,用于接收报文,统计预设时间内接收到的报文的流量;
[0088]选择模块503,用于根据统计出的报文的流量,从所述多个限速带宽中选择适配限速带宽;
[0089]限速模块504,用于根据预设算法基于所述适配限速带宽对所述报文进行限速。
[0090]在本实施例中,所述统计模块502具体用于:
[0091]创建报文缓存池,其中所述报文缓存池的缓存带宽为所述多个限速带宽中的最大限速带宽;
[0092]将接收到的报文在所述报文缓存池中进行缓存;
[0093]统计所述报文缓存池中预设时间内缓存的报文的流量。
[0094]在本实施例中,所述选择模块503具体用于:
[0095]根据统计出的报文的流量,确定该报文的处理带宽;
[0096]判断所述处理带宽是否大于或等于所述多个限速带宽中的最大限速带宽;
[0097]如果是,选择所述最大限速带宽作为所述适配限速带宽;
[0098]如果否,选择所述多个限速带宽中所有带宽值低于所述处理带宽的限速带宽中带宽值最大者作为所述适配限速带宽。
[0099]在本实施例中,所述限速模块504进一步用于:
[0100]当所述报文的流量发生变化而导致所述适配限速带宽发生变化时,根据预设算法基于发生变化后的适配限速带宽对所述报文进行限速。
[0101]在本实施例中,所述预设算法可以为令牌桶算法。
[0102]本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可进一步拆分成多个子模块。上述发明实施例编号仅仅为了描述,不代表实施例的优劣。
[0103]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
【权利要求】
1.一种报文流量限速方法,应用于软件定义网络SDN设备上,其特征在于,所述方法包括: 保存SDN控制器下发的、与流表关联的限速表项,其中,所述限速表项中配置了多个限速带宽; 接收报文,统计预设时间内接收到的报文的流量; 根据统计出的报文的流量,从所述多个限速带宽中选择适配限速带宽; 根据预设算法基于所述适配限速带宽对所述报文进行限速。
2.如权利要求1所述的方法,其特征在于,所述接收报文,统计预设时间内接收到的报文的流量包括: 创建报文缓存池,其中所述报文缓存池的缓存带宽为所述多个限速带宽中的最大限速带宽; 将接收到的报文在所述报文缓存池中进行缓存; 统计所述报文缓存池中预设时间内缓存的报文的流量。
3.如权利要求1所述的方法,其特征在于,所述根据统计出的报文的流量,从所述多个限速带宽中选择适配限速带宽包括: 根据统计出的报文的流量,确定该报文的处理带宽; 判断所述处理带宽是否大于或等于所述多个限速带宽中的最大限速带宽; 如果是,选择所述最大限速带宽作为所述适配限速带宽; 如果否,选择所述多个限速带宽中所有带宽值低于所述处理带宽的限速带宽中带宽值最大者作为所述适配限速带宽。
4.如权利要求1所述的方法,其特征在于,所述方法还包括: 当所述报文的流量发生变化而导致所述适配限速带宽发生变化时,根据预设算法基于发生变化后的适配限速带宽对所述报文进行限速。
5.如权利要求1所述的方法,其特征在于,所述预设算法为令牌桶算法。
6.一种报文流量限速装置,应用于软件定义网络SDN设备上,其特征在于,所述装置包括: 保存模块,用于保存SDN控制器下发的、与流表关联的限速表项,其中,所述限速表项中配置了多个限速带宽; 统计模块,用于接收报文,统计预设时间内接收到的报文的流量; 选择模块,用于根据统计出的报文的流量,从所述多个限速带宽中选择适配限速带宽; 限速模块,用于根据预设算法基于所述适配限速带宽对所述报文进行限速。
7.如权利要求6所述的装置,其特征在于,所述统计模块具体用于: 创建报文缓存池,其中所述报文缓存池的缓存带宽为所述多个限速带宽中的最大限速带宽; 将接收到的报文在所述报文缓存池中进行缓存; 统计所述报文缓存池中预设时间内缓存的报文的流量。
8.如权利要求6所述的装置,其特征在于,所述选择模块具体用于: 根据统计出的报文的流量,确定该报文的处理带宽; 判断所述处理带宽是否大于或等于所述多个限速带宽中的最大限速带宽; 如果是,选择所述最大限速带宽作为所述适配限速带宽; 如果否,选择所述多个限速带宽中所有带宽值低于所述处理带宽的限速带宽中带宽值最大者作为所述适配限速带宽。
9.如权利要求6所述的装置,其特征在于,所述限速模块进一步用于: 当所述报文的流量发生变化而导致所述适配限速带宽发生变化时,根据预设算法基于发生变化后的适配限速带宽对所述报文进行限速。
10.如权利要求6所述的装置,其特征在于,所述预设算法为令牌桶算法。
【文档编号】H04L12/917GK104301248SQ201410604433
【公开日】2015年1月21日 申请日期:2014年10月31日 优先权日:2014年10月31日
【发明者】张庆军 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1