基于SDN的支持QoS的多播路由构建方法及系统与流程

文档序号:12492498阅读:来源:国知局

技术特征:

1.一种基于SDN的支持QoS的多播路由构建方法,应用于包含OpenFlow控制器和Open vSwitch的通信网络中,其特征在于:基于IGMP v2协议,包括以下操作步骤:

(1).Open vSwitch将用户主机发送的IGMP报文转发给支持IGMP协议的OpenFlow控制器,此OpenFlow控制器解析所述IGMP报文;

(2).若步骤(1)中所述报文是请求加入多播组的Membership Report报文:所述OpenFlow控制器根据解析的IGMP报文获取用户主机地址与多播组地址,并根据多播路由算法为所述主机计算满足QoS保障的多播路径;

(3).若步骤(1)中所述报文是请求加入多播组的Membership Report报文:根据步骤(2)计算出多播路径后,OpenFlow控制器测量出网络带宽,在存在于多播路径中的Open vSwitch中创建多播队列并为多播队列预留带宽资源;

(4).若步骤(1)中所述报文是请求加入多播组的Membership Report报文:OpenFlow控制器在步骤(3)中所述Open vSwitch中安装或更新流表项,使Open vSwitch可以转发多播组报文;

(5).若步骤(1)中所述报文是请求离开多播组的Leave Group报文:所述OpenFlow控制器根据解析的IGMP报文获取用户主机地址与多播组地址,并查询此用户主机所在多播组中是否有其他多播成员,若没有,则所述OpenFlow控制器停止维护此多播组,并释放多播资源给通用队列;若有其他成员存在,则所述OpenFlow控制器继续维护此多播组,重新安装流表项并重新设置QoS队列。

2.根据权利要求1所述基于SDN的支持QoS的多播路由构建方法,其特征在于:所述步骤(2)中所述多播路由算法具体内容为:OpenFlow控制器根据全网拓扑结构,使用基于Prim算法的动态多播路由算法为多播组建立多播路由路径;为了适应网络实际状况,将与多播组成员主机直接相连的Open vSwtich当作多播成员节点计算多播路径;设SDN网络G=(V,E),其中G表示连通图,V表示SDN网络中的Open vSwitch的集合,E表示网络节点与节点之间的剩余可用带宽的倒数的集合;具体包括:

(2-1).加入多播组

默认将第一个加入到多播树T的节点为多播组的发送者,如果节点v要加入到多播树T,若v已经在树T上,则只要对节点v进行流表更新和QoS队列设置即可;否则,就在已存在的树T的基础上继续通过Prim算法算得最小生成树 ;然后对新算得的最小生成树进行修剪,去掉不是多播组成员且节点度数小于2的节点;最后形成新的多播树T;具体实现步骤如下:

(2-1-1):输入多播树的结点treeNodes和边treeEdges,以及新加入的多播成员member;

(2-1-2):判断多播树的结点个数,若为0,则将新加入的多播成员member加入到多播树的结点treeNodes中,作为多播组的发送者,并结束算法;否则,继续步骤(2-1-3);

(2-1-3):判断新加入的多播成员是否包含于treeNodes,若是,则更新该多播成员的流表,并结束算法;否则,继续步骤(2-1-4);

(2-1-4):在已有的多播树的基础上,继续按照Prim算法寻找与已有多播树直接相连的,并且权值最小的边;然后将这条边加入treeEdges,将这条边的顶点加入到treeEdges;接着重复上述步骤,直到将新的多播节点加入到treeNodes;

(2-1-5):剪枝:遍历多播树结点treeNodes,若结点为非多播成员结点,且结点度数小于2,则删除;重复上述步骤,直到多播树结点treeNodes的非多播成员结点的度数均大于等于2;

(2-1-6):更新多播树结点treeNodes的流表;

(2-1-7):重新设置多播结点treeNodes的QoS队列;

(2-2).退出多播组

如果节点v要退出多播树T,若该节点v为多播组的发送者,则删除多播树T,更新整棵多播树的节点的流表和QoS队列;否则,若v的度数大于等于2,则只要对节点v进行流表更新和QoS队列设置即可;否则,删除节点v,并对生成树T进行修剪,去掉不是多播组成员且节点度数小于2的节点,最后形成新的多播树T;具体实现步骤如下:

(2-2-1):输入多播树的结点treeNodes和边treeEdges,以及要退出的多播成员member;

(2-2-2):判断多播树的结点treeNodes的个数,若个数为1,则删除该多播树,并结束算法;否则继续执行步骤(2-2-3);

(2-2-3):判断退出的多播成员member结点的度数,若结点度数大于等于2,则更新该多播成员的流表,修改QoS队列,并结束算法;否则执行步骤(2-2-4);

(2-2-4):从多播树结点treeNodes中删除多播成员member以及与member直接相连的多播树的边;

(2-2-5):剪枝:遍历多播树结点treeNodes,若结点为非多播成员结点,且结点度数小于2,则删除,直到多播树结点treeNodes的非多播成员结点的度数均大于等于2;

(2-2-6):更新多播树结点treeNodes的流表;

(2-2-7):重新设置多播结点treeNodes的QoS队列。

3.根据权利要求1中所述基于SDN的支持QoS的多播路由构建方法,其特征在于:所述步骤(2)中所述的QoS保障具体通过以下步骤设置:用户通过所述OpenFlow控制器设置对特定多播组的QoS要求。

4.根据权利要求1中所述基于SDN的支持QoS的多播路由构建方法,其特征在于:所述步骤(3)中所述网络带宽的测量方法,具体步骤为:将sFlow这项网络监控技术作为所述OpenFlow控制器中的一个功能模块,用来收集sFlow报文并测量SDN网络中链路的带宽,为多播路由提供实时的网络带宽信息;为了解决sFlow协议与OpenFlow控制器对每个Open vSwitch每个端口的命名冲突,OpenFlow控制器每隔一段时间查询Open vSwitch用户空间模块下的数据库信息,然后将sFlow的命名端口号与Open vSwitch命名的端口号对应后,存储在一个表里,供以后查询使用;为了获取网络链路的带宽,将经过一个Open vSwitch出口的所有数据流的大小叠加,得到经过该出口的所有数据流的总和,将其作为这个Open vSwitch端口的上行带宽。

5.根据权利要求1中所述基于SDN的支持QoS的多播路由构建方法,其特征在于:所述步骤(3)中所述在Open vSwitch中为多播队列预留带宽资源具体通过对QoS队列进行设置,具体步骤包括:分别在Open vSwitch的入口和出口分别设置QoS来控制数据流的到达速率和服务速率;QoS队列采用分层令牌桶算法实现,能够新建队列,配置队列和删除队列;对于入口,使用Traffic Control,Linux 内核内置的一个可以实现流量限速,流量整形,策略应用框架,实现Open vSwitch入口方向的QoS设置;使用TC重新定向入口的数据流,通过Ingress qdisc把输入方向的数据包重新定向导入虚拟设备IFB,然后再对IFB的出口配置QoS队列,这就使得Open vSwitch输入方向的QoS也能采用分层令牌桶算法实现,从而设置多个队列规定;其中,QoS队列是为特定多播组提供资源预留的队列,在多播过程中,优先具有稳定的带宽资源。

6.根据权利要求1中所述基于SDN的支持QoS的多播路由构建方法,其特征在于:所述步骤(4)中所述安装流表项具体步骤包括:所述OpenFlow控制器将计算后的多播路径通过Packet-Out消息向多播路径上的所有Open vSwitch下发流表,使网络中的数据流按照计算得到的路径转发。

7.根据权利要求1中所述基于SDN的支持QoS的多播路由构建方法,其特征在于:所述步骤(5)中所述OpenFlow控制器查询多播组中是否存在其他成员具体步骤包括:OpenFlow控制器通知查询器发送针对多播组的Group-Specific Query报文,如果网络中还存在此多播组的其他成员,则此多播组的成员在收到特定多播组查询报文后,会在该报文中设定的最大响应时间内发送成员关系报告报文,如果在最大响应时间内没有收到此多播组的多播成员发送的成员报告报文,OpenFlow控制器则认为该网络内已无此该多播组的成员。

8.根据权利要求1或7中所述基于SDN的支持QoS的多播路由构建方法,其特征在于:所述查询器采用如下步骤构建:对开源OpenFlow控制器Ryu中的IGMP功能管理模块进行二次开发,使网络中有且仅有一个Open vSwitch担任查询器的角色,其它Open vSwitch均担任非查询器的角色;在多播路由中,该查询器会周期性的发送Time-General-Query报文,多播组的组成员会响应该报文,而非多播组成员则不会响应该报文。

9.一种基于SDN的支持QoS的多播路由构建系统,应用于包含OpenFlow控制器和Open vSwitch的通信网络中,应用于根据权利要求1所述基于SDN的支持QoS的多播路由构建方法,其特征在于:所述基于SDN的支持QoS的多播路由构建系统包括:

一个拓扑管理模块:使用链路层发现协议LLDP发现网络中的设备,包括交换机、主机以及各个端口的链接状况等;在发现全网络的拓扑结构后,拓扑管理模块为其他功能模块提供可直接调用的API;

一个sFlow采集器:用于收集嵌入在Open vSwitch中的sFlow Agent发送的sFlow报文;通过解析sFlow报文,sFlow采集器就能计算得出网络链路的带宽,并为其他功能模块提供可以直接调用的API;

一个IGMP管理模块:用于在SDN网络架构下实现IGMP v2的工作过程,管理网络中多播组成员关系;

一个QoS设置功能模块:该功能模块通过北向接口向SDN控制平面设置对特定多播组的QoS要求;

一个多播路由算法模块:根据由拓扑管理模块提供的网络拓扑和sFlow采集器提供的网络带宽,为多播组计算一条网络流量负载均衡的多播路径,并为多播成员建立和维护多播路径;

一个队列管理模块:管理所有Open vSwitch的入口和出口的QoS队列,系统主要通过该功能模块管理队列并为多播组预留带宽资源从而实现带宽QoS保证;

一个路由安装模块:该模块将计算后的多播路径通过Packet-Out消息向多播路径上的所有Open vSwitch下发流表,使网络中的数据流按照计算得到的路径转发。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1