欢迎来到知嘟嘟! 联系电话:13095918853 卖家免费入驻,海量在线求购! 卖家免费入驻,海量在线求购!
知嘟嘟
我要发布
联系电话:13095918853
知嘟嘟经纪人
收藏
专利号: 2017103686702
申请人: 西南交通大学
专利类型:发明专利
专利状态:已下证
专利领域: 电通信技术
更新日期:2024-01-05
缴费截止日期: 暂无
价格&联系人
年费信息
委托购买

摘要:

权利要求书:

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分支,执行相应的操作。2.如权利要求1所述的SDN网络中网络编码进行组播传输的方法,其特征在于,所述Openvswitch交换机在进行编码、解码过程中,采用统一的数据模型,所述数据模型包括节点名、编码ID标号、数据包缓存队列和待处理数据包缓存队列。3.如权利要求1所述的SDN网络中网络编码进行组播传输的方法,其特征在于,所述Openvswitch交换机在进行编码、解码过程中,采用自定义数据包格式来统一组织数据,自定义数据包格式包括编码ID标号、包号、已编码数据长度、随机系数列表和已编码的有效数据。4.如权利要求1所述的SDN网络中网络编码进行组播传输的方法,其特征在于,步骤d中控制器计算路由路径、下发流表项的具体步骤为:第一、开始;第二、组播源发送组播流;第三、判断Packetin消息类型,若消息类型为udp组播,则判断目的组播组是否存在,若目的组播组存在,则根据拓扑、组成员信息计算最大流,获取路由路径,根据路由路径确定每个节点的节点类型,将生成NCAction和流表下发到对应的Openvswitch交换机上,之后结束,若目的组播组不存在则直接结束;若消息类型为非udp组播则直接结束。5.如权利要求1所述的SDN网络中网络编码进行组播传输的方法,其特征在于,所述NCAction的字段属性包括交换机的中间节点设备类型以及当前网络拓扑下组播源到组播目的节点集的网络最大流。6.如权利要求5所述的SDN网络中网络编码进行组播传输的方法,其特征在于,中间节点设备的类型包括源发送端编码节点、中间发送端编码节点、普通的中间转发节点、接收端解码节点、不在组播路由路径中且不参与数据传输的节点。7.如权利要求5所述的SDN网络中网络编码进行组播传输的方法,其特征在于,测试用所述组播均为单源多目的组播,拓扑中的每条链路其流量均相等,都设为1个单位。