[发明专利]基于SDN的支持QoS的多播路由构建方法及系统在审
申请号: | 201710089542.4 | 申请日: | 2017-02-20 |
公开(公告)号: | CN106789677A | 公开(公告)日: | 2017-05-31 |
发明(设计)人: | 黄磊;支小莉;高强;童维勤;张雷;郑圣安 | 申请(专利权)人: | 上海大学 |
主分类号: | H04L12/761 | 分类号: | H04L12/761;H04L12/725 |
代理公司: | 上海上大专利事务所(普通合伙)31205 | 代理人: | 何文欣 |
地址: | 200444*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 sdn 支持 qos 路由 构建 方法 系统 | ||
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队列。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海大学,未经上海大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710089542.4/1.html,转载请声明来源钻瓜专利网。
- 上一篇:无线自组织网络中低开销的可靠组播路由方法
- 下一篇:用于接触器组件的弧控制