[发明专利]SDN网络中网络编码进行组播传输的方法有效
申请号: | 201710368670.2 | 申请日: | 2017-05-23 |
公开(公告)号: | CN107196860B | 公开(公告)日: | 2021-06-04 |
发明(设计)人: | 邢焕来;周芯宇;李可;杨慧;叶佳 | 申请(专利权)人: | 西南交通大学 |
主分类号: | H04L12/761 | 分类号: | H04L12/761;H04L12/931;H04L12/18;H04L1/00 |
代理公司: | 成都宏顺专利代理事务所(普通合伙) 51227 | 代理人: | 李顺德 |
地址: | 610031 四*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | sdn 网络 编码 进行 传输 方法 | ||
1.SDN网络中网络编码进行组播传输的方法,其特征在于,其步骤如下:
a、控制器构建全局网络拓扑信息;
b、组播接收端成员入组;
c、组播发送端发送组播流;
d、控制器计算路由路径、下发流表项;
e、Openvswitch交换机源发送节点初次编码原始组播数据;
f、Openvswitch交换机中间编码节点再次编码中间数据;
g、Openvswitch交换机目的解码节点解码还原数据;
其中,所述Openvswitch交换机具有支持网络编码的OpenFlow协议,所述控制器为支持OpenFlow协议的控制器,所述Openvswitch交换机为支持所述OpenFlow协议并且可编码、解码的交换机;
所述OpenFlow协议中设有支持网络编码的NCAction,该NCAction可以和其他Action组合成一个行动集,装载到所述流表项中,每次匹配到该流表项时,都执行该行动集;
控制器提供可以使用的NCAction对象;
Openvswitch交换机具有NCAction并且具有可编码、解码的模块,所述NCAction由控制器主动发往所述Openvswitch交换机,包含在下流表项的指令集中,当数据包匹配到该流表项时,便执行对应的网络编码、解码动作;
匹配流表项时,在“structxlate_out”类型参数“xout”中添加NCAction的2个字段:nc_type和nc_max_flow,在匹配到或检查到含有NCAction的流表项时,再执行该Action时,把NCAction的nc_type和nc_max_flow通过“xout”传出去,在数据包统一转发回内核模块前进行编码、或解码操作;
在上述的“xout”传出参数中设置一个标志,名为“boolhas_nc”,表示该条流表项是否含有NCAction,执行Action时,若匹配到含有NCAction的流表项,该标志“has_nc”置true,新增流表项安装到内核模块前,先检查该标志“has_nc”,为true则不用安装,否则要安装;
对源发送端编码节点的OutputAction做特殊处理,一个OutputAction只能转发一种编码层次的数据包,下一种不同编码层次的数据包需要从另一个不同的端口转发出去,源编码节点的编码层次等于网络最大流;
通过自行扩张在OpenFlow原始协议设置NCAction,自行扩展方法如下:
(1)在Ryu目录中的ofproto/ofproto_v1_3.py文件中定义2个常量:
1)OFPAT_NC=28,该常量代表NCAction的枚举标识,必须与Openvswitch中定义的NCAction标识相等;
2)OFP_ACTION_NC_SIZE=16,该常量表示NCAction的数据长度;
(2)在Ryu目录中的ofproto/ofproto_v1_3_parser.py文件中定义NCAction的实现类:
1)实现类必须继承自Ryu提供的OpenFlow中所有Action的基类“OFPAction”:
classOFPActionNC(OFPAction);
2)实现类必须用Ryu指定的装饰器结合上述定义的常量进行修饰,
@OFPAction.register_action_type(OFPAT_NC,OFP_ACTION_NC_SIZE)
classOFPActionNC(OFPAction);
3)实现类必须实现3个接口:
__init__():用于初始化;
parser():用于从数据流中解析出NCAction;
serialize():用于把NCAction打包到数据流中;
在Openvswitch中扩展新的Action,以下是主要步骤:
在Openvswitch目录中的include/OpenFlow/OpenFlow-1.3.h文件中,找到OpenFlow-1.3协议的Action枚举定义,添加NCAction的枚举定义值,该枚举定义值必须与Ryu控制器中定义的NCAction枚举标识一致;
在include/OpenFlow/OpenFlow-1.3.h文件中,添加NCAction对应的结构体定义,说明NCAction包含的字段属性;
在lib/ofp-util.def文件中,在“#ifndefOFPAT11_ACTION”区域中,添加NCAction对应的宏定义;
在lib/ofp-actions.c文件中,在“unionofp_action”定义中,声明NCAction对应的结构体变量;
在lib/ofp-actions.h文件中,添加NCAction对应的抽象Action宏定义;
在lib/ofp-actions.h文件中,添加NCAction对应的抽象Action结构体定义;
在lib/ofp-actions.c文件中,在接口“ofpact_from_OpenFlow11()”中,添加NCAction对应的case分支,生成其对应的抽象Action;
在lib/ofp-actions.c文件中,在接口“ovs_instruction_type_from_ofpact_type()”和接口“ofpact_check__()”中,添加NCAction对应的case分支,返回检测结果为真;
在lib/ofp-actions.c文件中,在接口“ofpact_is_allowed_in_actions_set()”中,添加NCAction对应的case分支,表明NCAction支持填充到行动集中;
在lib/ofp-actions.c文件中,在接口“ofpacts_execute_action_set()”中,添加NCAction对应的语句,指定NCAction在行动集中的执行顺序;
在ofproto/ofproto-dpif-xlate.c文件中,在接口“do_xlate_actions()”中,添加NCAction对应的case分支,执行相应的操作。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西南交通大学,未经西南交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710368670.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种整体加强型模数式多向变位伸缩装置以及方法
- 下一篇:一种组合式桥梁护栏