本发明公开一种流量粒度调整方法,特别是一种基于sdn的骨干网流量粒度调整系统和方法,属于计算机网络技术领域。
背景技术:
骨干网的主要作用是使用高速链路连接多个省市或者区域,实现高速数据包转发。骨干网是一种大型网络结构,一般都为广域网,其作用范围可以达到几千公里。我国拥有9大骨干网,完成全国各省各市的互联互通,以及实现与其他国家的信息交互。随着互联网的快速发展,通过骨干网不同区域之间的不同类型的数据访问也越来越广泛。骨干网扮演着越来越重要的作用,跨区域的网络传输都需要经过骨干网。骨干网能否提供高质量的网络服务,将直接影响业务传输的质量。
现有技术中,骨干网使用高速传输网络进行数据转发,能够实现大范围的数据传输,其主要的特点有以下三点:业务复杂、路由表项数量大、拓扑结构稳定。骨干网中承载着各种类型业务,业务数量非常庞大,并且业务流量需求波动性较大。目前,骨干网的业务总需求量随着业务种类增多而不断增大,同时业务需求表现出了丰富的动态特性,链路利用率随时间变化存在较大的波动,业务需求峰值最大能够达到平均链路利用率的2倍以上。
传统流量调度技术采用静态算路算法实现业务流的路由,采用前缀压缩算法,从而实现表项数量的减少,其存在自身固有的不足之处,主要表现在传统流量调度技术基于分布式的方式进行流量调优,存在的缺陷是没办法考虑全局资源分布,不能实现全局管理,对资源统一分配。静态路由策略无法满足骨干网中业务的动态变化,很容易出现已分配的链路无法满足业务的流量变化,导致链路的拥塞,这时网络只能采用丢包的方式,降低了经过该链路的部分业务服务质量。所以必须要引入sdn技术弥补传统调度技术的不足,基于数据中心网络的sdn调度技术一般都是基于五元组的业务流进行调度,但骨干网的业务数量非常庞大,这导致骨干网不能基于五元组的业务流为单位进行识别,并进行调度。不管是业务流检测,还是业务流调度,庞大的业务数量会消耗大量的内存和cpu资源,这对执行操作的设备性能要求非常高,而且随着业务量的增大,设备的路由表项会急剧上升,甚至超出设备可支持的表项数量,这样会导致设备执行效率急剧下降,无法满足在线算法的性能要求。
技术实现要素:
针对上述提到的现有技术中的骨干网流量调度技术无法满足骨干网中业务的动态变化,且会消耗大量资源的缺点,本发明提供一种基于sdn的骨干网流量粒度调整系统和方法,采用集中式管控网络物理设备,通过收集全局信息,能够准确全面的掌握网络节点和链路状态,链路负载,拟定全局路由策略,从而避免了策略分布制定带来的冲突问题。
本发明解决其技术问题采用的技术方案是:一种基于sdn的骨干网流量粒度调整系统,该系统包括sdn控制器、业务流量调度应用以及白牌物理设备,sdn控制器和白牌物理设备相连接,能够通过网络连接互相访问,业务流量调度应用与sdn控制器相连接,业务流量调度应用通过sdn控制器实现与白牌物理设备相互访问。
一种采用上述的基于sdn的骨干网流量粒度调整系统实现的基于sdn的骨干网流量粒度调整方法,该方法为sdn控制器、业务流量调度应用、白牌物理设备构成一个网络,sdn控制器针对不同的数据包下发相应的openflow流表规则到白牌物理设备上,白牌物理设备根据openflow流表规则将数据发送到不同的设备和链路进行转发。
本发明解决其技术问题采用的技术方案进一步还包括:
所述的白牌物理设备是根据sdn控制器下发的命令和规则对设备自身和流经该设备的数据进行openflow流表规则匹配,匹配成功后数据包进行相应的动作。
所述的白牌物理设备把符合粒度聚合条件的表项聚合,符合粒度拆分条件的表项拆分,当发现某条表项中占用带宽较大时,则表明其粒度在该范围内有较多大流,需要对其进行拆分,将业务流分散到不同的汇聚流中;聚合表项功能中,将粒度较细的汇聚流聚合为合适的程度,减少汇聚流数量;当表项数量达到交换机表项上限时,对表项进行聚合,流量粒度调整后,把调整的表项信息同步到数据库和白牌物理设备端。
所述的表项拆分为修改同一业务的流表匹配项的源ip地址段的掩码,把源ip地址段均分为两段,目的ip地址段和动作保持不变,表项由一个变为两个。
所述的表项聚合为修改同一业务的流表匹配项的源ip地址段的掩码,把两个表项的源ip地址段合并为一段ip地址,目的ip地址段和动作保持不变,表项由两个变为一个。
所述的业务流量调度应用定期调用sdn控制器接口获取拓扑、链路质量和流表信息,结合预配置的业务信息和策略,对流量数据进行粒度调整的分析,并把分析结果转化后的流表数据通过sdn控制器接口下发到设备上,实现对业务流量粒度的调整。
所述的业务流量调度应用通过ssh命令行和lldp链路发现协议方式,获得底层整个拓扑和隧道信息,并更新写入到数据库。
所述的业务流量调度应用获得的拓扑和隧道信息计算出节点之间k跳之内能够到达的备选路径,根据设置的粒度调度策略选择一条初始路径,把业务和路径信息、路径信息与隧道id的对应关系写入数据库。
所述的业务流量调度应用周期性把获取到的流表信息和链路质量信息与调度策略进行比对,判断是否需要调度,如果需要调度,则遍历备用路径,寻找一条符合策略的最优路径,判断是否存在符合策略的备用路径,如果存在符合策略的备用路径则通过sdn控制器将要切换的备用路径信息的流表下发到对应的多个白牌物理设备上,同步更新数据库的路径信息;如果不存在符合策略的备用路径,则输出调度失败的信息到业务流量调度应用,结束该周期的流量粒度调整和调度工作。
本发明的有益效果是:(1)、sdn控制器采用集中式管控网络物理设备,通过收集全局信息,能够准确全面的掌握网络节点和链路状态、链路负载,拟定全局路由策略,从而避免了策略分布制定带来的冲突问题。(2)、根据不同业务的特性,对业务划分不同的优先级,不同优先级的业务采用不同策略,保证业务的服务质量,同时实现链路的高效利用。(3)、在处理链路拥塞的时候,只需知道网络局部的流量和链路信息,所需信息少,收敛速度快,适应联通度高、信息量大的骨干网。
下面将结合附图和具体实施方式对本发明做进一步说明。
附图说明
图1为本发明网络结构拓扑图。
图2为业务调度应用初始化流程图。
图3为工作阶段具体步骤流程图。
具体实施方式
本实施例为本发明优选实施方式,其他凡其原理和基本结构与本实施例相同或近似的,均在本发明保护范围之内。
本发明在sdn(软件定义网络)中,sdn控制器利用openflow协议,根据上层(本实施例中,上层指应用层)业务流量调度应用对业务的规划,对骨干网业务流量进行自定义粒度调整,实现对骨干网业务流量粒度的动态调整和集中化管理。
本发明保护一种基于sdn的骨干网流量粒度调整系统,该系统主要包括:sdn控制器、业务流量调度应用以及白牌物理设备,sdn控制器、业务流量调度应用、白牌物理设备(本实施例中,白牌物理设备指支持openflow协议的交换机,具体实施时,也可以为其他支持openflow协议的具有网络转发功能的设备)构成一个软件定义网络,该网络首先为采集网络拓扑(本实施例中,采集网络拓扑时,通常为sdn控制器通过lldp协议采集网络拓扑),对白牌物理设备进行集中管控的sdn控制器,向用户提供网络设备和应用(本实施例中,网络设备包括连接入网络的路由器、交换机等,应用指在链路上的流量的业务)的全局视图,sdn控制器和白牌物理设备相连接,可互访且网络可达,业务流量调度应用与sdn控制器相连接,业务流量调度应用可通过sdn控制器实现与白牌物理设备互访。其中,sdn控制器针对不同的数据包(本实施例中,主要为五元组信息不同的数据包)下发相应的openflow流表规则到白牌物理设备上,白牌物理设备根据openflow流表规则将数据(本实施例中的数据为经过白牌物理设备的数据包,即运行在链路上的业务流量)发送到不同的设备(本实施例中的设备主要为下一跳的设备:即与转发数据的白牌物理设备直连的另一台白牌物理设备)和链路(本实施例中,链路为物理链路,即两台白牌物理设备直连的链路,具体为:网线或光纤)进行转发。
本实施例中,所述白牌物理设备是属于所述sdn控制器管理下的设备,白牌物理设备是根据sdn控制器下发的命令和规则对设备自身和流经该设备的数据进行openflow流表规则匹配,匹配成功后数据包进行相应的动作,流表参数里面定义匹配参数,数值全部相等才算匹配成功,匹配失败的报文会匹配更低优先级的流表,最低优先流表会全匹配把报文丢弃。
业务流量调度应用是调用sdn控制器北向接口的上层应用,业务流量调度应用定期(本实施例中,调用周期可自定义,可根据具体的故障响应速度需求和设备性能参数设置,默认为30s)调用sdn控制器接口获取拓扑、链路质量和流表信息,结合预配置(即用户在调度应用上设置,只有定义好业务信息和策略,业务调度功能才可以使用)的业务信息和策略(本实施例中,用户填写的业务特征数据,具体内容跟具体业务相关联,如:业务名称、描述、优先级别、业务源节点地址段、目的节点地址段、源端口、目的端口以及协议类型等,配置的粒度调整策略信息包括:流量粒度聚合阈值、流量粒度拆分阈值、是否开启聚合保护(需要聚合时候优先聚合优先级更低的业务)等;配置的调度策略:延迟阈值、带宽阈值以及丢包策略等,调度方案:延迟低优先、带宽小优先和丢包率小优先等),对流量数据进行粒度调整的分析,即通过流量五元组信息把,该流量归类到某一业务上,再判断该流量是否超出该业务设定的粒度调整阈值,并把分析结果转化后的流表数据通过sdn控制器接口下发到设备(与该业务流量转发路径相关的所有设备节点)上,实现对业务流量粒度的调整。
本发明同时保护一种基于sdn的骨干网流量粒度调整方法,该方法包括下述步骤:
步骤101:在业务流量调度应用录入业务信息并设置相应的粒度调整策略和调度策略(本实施例中,配置的粒度调整策略信息包括:流量粒度聚合阈值、流量粒度拆分阈值、是否开启聚合保护(需要聚合时候优先聚合优先级更低的业务)等;配置的调度策略信包括:延迟阈值、带宽阈值和丢包策略;调度方案:延迟低优先、带宽小优先和丢包率小优先等),周期性通过ssh命令行和lldp链路发现协议等方式,获得底层整个拓扑和隧道信息,并更新写入到数据库,然后执行步骤102,本实施例中,业务流量调度应用需要调度的业务信息是基于地址段而非五元组信息,地址段的好处是可以明显减少流表表项数目,避免业务种类庞大导致转发设备表项不足的问题;
步骤102:业务流量调度应用根据步骤101中获得的拓扑和隧道信息计算(利用贪吃算法,计算出业务源目节点间所有可达路径)出节点(即白牌物理设备)之间k跳(k跳是指:源节点到目的节点经过的中间节点数目;默认为:10跳;需要限制中间节点的数目来减轻控制器计算路径的负荷)之内能够到达的备选路径,根据设置的粒度调度策略选择一条初始路径,把业务和路径信息、路径信息与隧道id的对应关系写入数据库,然后执行步骤103;
步骤103:业务流量调度应用通过sdn控制器将基于隧道转发的初始路径信息的流表下发到对应的多个白牌物理设备上,本实施例中,多个白牌物理设备包括每条路径的源节点,目的节点以及经过的中间节点,同步更新数据库的流表信息,至此业务调度应用初始化工作结束,进入到周期性的流量粒度调整和调度工作,执行步骤104;
步骤104:业务流量调度应用周期性(本实施例中,周期可自定义,可根据具体的故障响应速度需求和设备性能参数设置,默认为30s)通过sdn控制器的北向接口,利用openflow协议获取流表统计信息和链路质量信息,然后进入步骤105;
步骤105:业务流量调度应用周期性(周期可自定义,可根据具体的故障响应速度需求和设备性能参数设置,默认为30s)把获取到的流表信息和链路质量信息与预设值的粒度调整策略(本实施例中,用户需要在调度应用上手动自己配置,登录到应用界面上会有导航配置提醒)进行比对,判断是否需要粒度调整,当超出或低于设置的流量粒度阈值时,判断为需要粒度调整,如果需要粒度调整则执行步骤106,否则执行步骤107;
步骤106:把符合粒度聚合条件(低于设置的流量粒度阈值时,判断为符合粒度聚合条件)的表项聚合(具体为修改同一业务的流表匹配项的源ip地址段的掩码,把两个表项的源ip地址段合并为一段ip地址,目的ip地址段和动作保持不变,表项由两个变为一个),符合粒度拆分条件(超出流量粒度拆分阈值时,判断为符合粒度拆分条件)的表项拆分(具体为修改同一业务的流表匹配项的源ip地址段的掩码,把源ip地址段均分为两段,目的ip地址段和动作保持不变,表项由一个变为两个),当发现某条表项中占用带宽较大(即超出设置的流量粒度拆分阈值)时,则表明其粒度在该范围内有较多大流,需要对其进行拆分,将业务流分散到不同的汇聚流(多条业务运行在同一链路上就是汇聚流)中,即拆分表项功能,具体为修改同一业务(本实施例中,指用户在应用上自定义的业务)的流表匹配项的源ip地址段的掩码,把源ip地址段均分为两段,目的ip地址段和动作保持不变,表项由一个变为两个(本实施例中,拆分时增大掩码数值把地址段拆分,如:192.168.1.0/31可以拆分为:192.168.1.1/32和192.168.1.2/32);聚合表项功能中,将粒度较细(即低于设置的流量粒度聚合阈值)的汇聚流聚合(具体为修改同一业务的流表匹配项的源ip地址段的掩码,把两个表项的源ip地址段合并为一段ip地址,目的ip地址段和动作保持不变,表项由两个变为一个)为合适的程度(本实施例中,合适的程度指不低于设置的流量粒度聚合阈值,不高于设置的流量粒度拆分阈值),减少汇聚流数量,从而减少表项的数量,这样在进行流量调度时提高运行效率;当表项数量达到交换机表项上限时,需要对表项进行聚合,具体为修改同一业务的流表匹配项的源ip地址段的掩码,把两个表项的源ip地址段合并为一段ip地址(减小掩码数值即可合并。例如:192.168.1.1/32和192.168.1.2/32可以合并为192.168.1.0/31),目的ip地址段和动作保持不变,表项由两个变为一个,流量粒度调整后,把调整的表项信息同步到数据库和白牌物理设备端,然后执行步骤107;
步骤107:业务流量调度应用周期性(周期可自定义,可根据具体的故障响应速度需求和设备性能参数设置,默认为30s)把获取到的流表信息和链路质量信息与调度策略进行比对,判断是否需要调度,如果需要调度则执行步骤108,否则结束该周期的流量粒度调整和调度工作;
步骤108:遍历备用路径,寻找一条符合策略的最优路径(本实施例中,最优路径的选择根据用户的调度方案:延迟低优先、带宽小优先或丢包率小优先等来判断,只能三种方案中选择其中一种),判断是否存在符合策略的备用路径(最优路径是备用路径里面符合用户设置的调度优先方案要求的路径),如果存在符合策略的备用路径则执行步骤109,否则执行步骤110;
步骤109:业务流量调度应用通过sdn控制器将要切换的备用路径信息的流表下发到对应的多个白牌物理设备(本实施例中,多个白牌物理设备是指路径上的源节点,目的节点以及经过的中间节点)上,同步更新数据库的路径信息,至此结束该周期的流量粒度调整和调度工作;
步骤110:输出调度失败的信息到业务流量调度应用,至此结束该周期的流量粒度调整和调度工作。
(1)、sdn控制器采用集中式管控网络物理设备,通过收集全局信息,能够准确全面的掌握网络节点和链路状态、链路负载,拟定全局路由策略,从而避免了策略分布制定带来的冲突问题。
(2)、根据不同业务的特性,对业务划分不同的优先级,不同优先级的业务采用不同策略,保证业务的服务质量,同时实现链路的高效利用。
(3)、在处理链路拥塞的时候,只需知道网络局部的流量和链路信息,所需信息少,收敛速度快,适应联通度高、信息量大的骨干网。
1.一种基于sdn的骨干网流量粒度调整系统,其特征是:所述的系统包括sdn控制器、业务流量调度应用以及白牌物理设备,sdn控制器和白牌物理设备相连接,能够通过网络连接互相访问,业务流量调度应用与sdn控制器相连接,业务流量调度应用通过sdn控制器实现与白牌物理设备相互访问。
2.一种采用如权利要求1所述的基于sdn的骨干网流量粒度调整系统实现的基于sdn的骨干网流量粒度调整方法,其特征是:所述的方法为sdn控制器、业务流量调度应用、白牌物理设备构成一个网络,sdn控制器针对不同的数据包下发相应的openflow流表规则到白牌物理设备上,白牌物理设备根据openflow流表规则将数据发送到不同的设备和链路进行转发。
3.根据权利要求2所述的基于sdn的骨干网流量粒度调整方法,其特征是:所述的白牌物理设备是根据sdn控制器下发的命令和规则对设备自身和流经该设备的数据进行openflow流表规则匹配,匹配成功后数据包进行相应的动作。
4.根据权利要求3所述的基于sdn的骨干网流量粒度调整方法,其特征是:所述的白牌物理设备把符合粒度聚合条件的表项聚合,符合粒度拆分条件的表项拆分,当发现某条表项中占用带宽较大时,则表明其粒度在该范围内有较多大流,需要对其进行拆分,将业务流分散到不同的汇聚流中;聚合表项功能中,将粒度较细的汇聚流聚合为合适的程度,减少汇聚流数量;当表项数量达到交换机表项上限时,对表项进行聚合,流量粒度调整后,把调整的表项信息同步到数据库和白牌物理设备端。
5.根据权利要求4所述的基于sdn的骨干网流量粒度调整方法,其特征是:所述的表项拆分为修改同一业务的流表匹配项的源ip地址段的掩码,把源ip地址段均分为两段,目的ip地址段和动作保持不变,表项由一个变为两个。
6.根据权利要求4所述的基于sdn的骨干网流量粒度调整方法,其特征是:所述的表项聚合为修改同一业务的流表匹配项的源ip地址段的掩码,把两个表项的源ip地址段合并为一段ip地址,目的ip地址段和动作保持不变,表项由两个变为一个。
7.根据权利要求2所述的基于sdn的骨干网流量粒度调整方法,其特征是:所述的业务流量调度应用定期调用sdn控制器接口获取拓扑、链路质量和流表信息,结合预配置的业务信息和策略,对流量数据进行粒度调整的分析,并把分析结果转化后的流表数据通过sdn控制器接口下发到设备上,实现对业务流量粒度的调整。
8.根据权利要求7所述的基于sdn的骨干网流量粒度调整方法,其特征是:所述的业务流量调度应用通过ssh命令行和lldp链路发现协议方式,获得底层整个拓扑和隧道信息,并更新写入到数据库。
9.根据权利要求8所述的基于sdn的骨干网流量粒度调整方法,其特征是:所述的业务流量调度应用获得的拓扑和隧道信息计算出节点之间k跳之内能够到达的备选路径,根据设置的粒度调度策略选择一条初始路径,把业务和路径信息、路径信息与隧道id的对应关系写入数据库。
10.根据权利要求7所述的基于sdn的骨干网流量粒度调整方法,其特征是:所述的业务流量调度应用周期性把获取到的流表信息和链路质量信息与调度策略进行比对,判断是否需要调度,如果需要调度,则遍历备用路径,寻找一条符合策略的最优路径,判断是否存在符合策略的备用路径,如果存在符合策略的备用路径则通过sdn控制器将要切换的备用路径信息的流表下发到对应的多个白牌物理设备上,同步更新数据库的路径信息;如果不存在符合策略的备用路径,则输出调度失败的信息到业务流量调度应用,结束该周期的流量粒度调整和调度工作。
技术总结