一种在OpenFlow交换机上实现网络编码的方法技术

技术编号:8536445 阅读:307 留言:0更新日期:2013-04-04 21:09
本发明专利技术涉及网络编码技术领域,公开了一种在OpenFlow交换机上实现网络编码的方法包括:先在OpenFlow交换机的流表项中添加编码行为和/或解码行为;当OpenFlow交换机接收到待处理数据包时,为待处理数据包添加数据包的包头域,数据包的包头域包括编解码所需的信息;再判断待处理数据包的行为集合中是否有编码行为和/或解码行为;若待处理数据包的行为集合中有编码行为和/或解码行为,则将待处理数据包放入编码队列和/或解码队列;将在编码队列和/或解码队列中的数据包进行编码操作和/或解码操作,得到编码后的数据包和/或解码后的数据包。本发明专利技术实现了在OpenFlow交换机上的编码和/或解码。

【技术实现步骤摘要】

本专利技术涉及网络编码
,主要适用于在OpenFlow交换机上实现网络编码的方法
技术介绍
OpenFlow网络,是一种新型的网络创新架构,主要由控制器10和OpenFlow交换机11组成,如图1中所示。OpenFlow交换机11功能专注而简化,只负责数据的转发;控制器10则对整个网络进行集中控制,实现控制层功能。控制器10通过标准的OpenFlow协议12与OpenFlow交换机11进行信息交互,从而进行统一、灵活高效的网络维护和管理。由此可知,OpenFlow网络不仅实现了将原有的完全由交换机/路由器控制的报文转发形式转化为基于流(相同源、目的地址的一系列连续的数据包)的转发形式,而且将传统的控制层面从 转发设备中剥离出来,所有转发行为的决策都迁移到了集中控制器上,从而实现了数据转发和路由控制的分离。由于OpenFlow网络具有集中控制、数据转发层与控制层分离等特点,这让我们看到了在其上应用网络编码的可能性。OpenFlow网络为网络编码的应用提供了便利,同时网络编码也将为OpenFlow网络带来更好的网络性能。2012年8月Felicidin Nemeth等人已经率先尝试将网络编码应用于由OpenFlow交换机组成的蝶形网络,这验证了在OpenFlow网络中使用网络编码的可行性。但他们只是在蝶形这种特殊网络结构中实现了两条流异或的编码方式,无法推广到一般网络或多条流等复杂情况,不具有通用性。目前在OpenFlow网络中应用网络编码技术还处于起步阶段,并没有较成熟的研究成果,还存在很多待解决的问题,国内此方向还处于空白阶段,没有相关研究。专利
技术实现思路
本专利技术所要解决的技术问题是提供,它实现了在OpenFlow交换机上的编码操作和/或解码操作。为解决上述技术问题,本专利技术提供了包括先在OpenFlow交换机的流表项中添加编码行为和/或解码行为;当所述OpenFlow交换机接收到待处理数据包时,为所述接收到的待处理数据包添加数据包的包头域,所述数据包的包头域包括编解码所需的信息;再判断接收到的待处理数据包的行为集合中是否有编码行为和/或解码行为;若接收到的待处理数据包的行为集合中有编码行为和/或解码行为,则将待处理数据包放入编码队列和/或解码队列;将在所述编码队列和/或所述解码队列中的数据包进行编码操作和/或解码操作,得到编码后的数据包和/或解码后的数据包。进一步地,所述当OpenFlow交换机接收到待处理数据包时,为接收到的待处理数据包添加数据包的包头域包括当所述OpenFlow交换机接收到所述待处理数据包时,判断待处理数据包是否来自数据源;如果待处理数据包来自数据源,则说明待处理数据包为原始数据包,并为首次进入OpenFlow网络的原始数据包添加包头域;如果待处理数据包不是来自数据源,而是来自其他OpenFlow交换机,则说明待处理数据包为编解码后的数据包,则直接进行后续操作。进一步地,所述判断接收到的待处理数据包的行为集合中是否有编码行为和/或解码行为;若接收到的待处理数据包的行为集合中有编码行为和/或解码行为,则将待处理数据包放入编码队列和/或解码队列,包括首先通过对所述接收到的待处理数据包进行匹配流表来判断是否能得到待处理数据包的行为集合;若能够得到待处理数据包的行为集合,则判断所述行为集合的行为类型中是否有 转发行为;若所述行为类型中有转发行为,则对待处理数据包进行转发;否则判断行为类型中是否有编码行为和/或解码行为,若行为类型中有编码行为和/或解码行为,则将待处理数据包放入所述编码队列和/或所述解码队列;若不能得到待处理数据包的行为集合,则将待处理数据包的包头通过安全通道发送给OpenFlow控制器,所述Open Flow控制器将为OpenFlow交换机设置待处理数据包所在流对应的流表项,并将所述流表项发回所述OpenFlow交换机,由OpenFlow交换机响应。进一步地,所述若接收到的待处理数据包的行为集合中有编码行为和/或解码行为,则将待处理数据包放入编码队列和/或解码队列,包括若所述接收到的待处理数据包的行为集合中有所述编码行为和/或所述解码行为,则先将待处理数据包转化为待编解码处理的数据包,再根据数据包的行为集合中的行为类型,将待编解码处理的数据包放入所述编码队列和/或所述解码队列;其中,待编解码处理的数据包,包括数据包、数据包的行为类型、数据包的存活时间、数据包所在流的ID、数据包在流中的序列号、数据包已编码过流的个数、与数据包进行编解码的流的个数、将与数据包进行编解码的流的ID、数据包将帮助解码的流的ID及编解码后的流的ID。进一步地,所述将在编码队列和/或解码队列中的数据包进行编码操作和/或解码操作,得到编码后的数据包和/或解码后的数据包,包括先遍历所述编码队列和/或所述解码队列中已存的数据包是否有超时的;若编码队列中有超时的已存的数据包,则对所述超时的已存的数据包重新进行流表匹配;然后判断新加入的数据包的编码条件是否被满足;若所述新加入的数据包的编码条件被满足,则进行编码操作,并将参与编码的数据包全部释放,再对编码后得到的数据包重新进行流表匹配;并根据匹配结果进行相关的操作;若新加入的数据包的编码条件不被满足,则将新加入的数据包加入编码队列中相应流的队列并等待编码;若编码队列中没有超时的已存的数据包,则直接判断新加入的数据包的编码条件是否被满足。进一步地,所述将在编码队列和/或解码队列中的数据包进行编码操作和/或解码操作,得到编码后的数据包和/或解码后的数据包,包括先遍历所述编码队列和/或所述解码队列中已存的数据包是否有超时的;若解码队列中有超时的已存的数据包,则对所述超时的已存的数据包重新进行流表匹配;然后判断新加入的数据包是否帮助其他流的数据包解码或需要自身解码;若解码队列中没有超时的已存的数据包,则直接判断所述新加入的数据包是否帮助其他流的数据包解码或需要自身解码;若新加入的数据包的数据包将帮助解码的流的I D项不为空,则说明新加入的数据包帮助其他流的数据包解码,再判断解码队列中被解码的数据包的解码条件是否被满足;若所述被解码的数据包的解码条件被满足,则进行解码操作,解码后将被解码的数据包释放,并对解码得到的数据包重新进行流表匹配,并根据匹配结果进行相关的操作;若被解码的数据包的解码条件不被满足,则将新加入的数据包放入解码队列中相应流的队列并等待处理; 若新加入的数据包的将与数据包进行编解码的流的ID项不为空,则说明新加入的数据包需要自身解码,再判断新加入的数据包的解码条件是否被满足;若新加入的数据包的解码条件被满足,则进行解码操作,再对解码得到的数据包重新进行流表匹配,并根据匹配结果进行相关的操作;若新加入的数据包的解码条件不被满足,则将新加入的数据包加入解码队列中相应流的队列并等待处理。进一步地,在所述进行解码操作后,判断所述新加入的数据包是否需要缓存;若与新加入的数据包有关的解码操作全部执行完毕,则说明新加入的数据包不需要缓存,可以将新加入的数据包释放;若与新加入的数据包有关的解码操作没有全部执行完毕,则说明新加入的数据包需要缓存,则将新加入的数据包放入所述解码队列中相应流的队列中等待处理。进一步地,所述判断新加入的数据包的编码条件是否被满足包本文档来自技高网
...

【技术保护点】
一种在OpenFlow交换机上实现网络编码的方法,其特征在于,包括:先在OpenFlow交换机的流表项中添加编码行为和/或解码行为;当所述OpenFlow交换机接收到待处理数据包时,为所述接收到的待处理数据包添加数据包的包头域,所述数据包的包头域包括编解码所需的信息;再判断接收到的待处理数据包的行为集合中是否有编码行为和/或解码行为;若接收到的待处理数据包的行为集合中有编码行为和/或解码行为,则将待处理数据包放入编码队列和/或解码队列;将在所述编码队列和/或所述解码队列中的数据包进行编码操作和/或解码操作,得到编码后的数据包和/或解码后的数据包。

【技术特征摘要】
1.一种在OpenFlow交换机上实现网络编码的方法,其特征在于,包括 先在OpenFlow交换机的流表项中添加编码行为和/或解码行为; 当所述OpenFlow交换机接收到待处理数据包时,为所述接收到的待处理数据包添加数据包的包头域,所述数据包的包头域包括编解码所需的信息; 再判断接收到的待处理数据包的行为集合中是否有编码行为和/或解码行为; 若接收到的待处理数据包的行为集合中有编码行为和/或解码行为,则将待处理数据包放入编码队列和/或解码队列; 将在所述编码队列和/或所述解码队列中的数据包进行编码操作和/或解码操作,得到编码后的数据包和/或解码后的数据包。2.如权利要求1所述的在OpenFlow交换机上实现网络编码的方法,其特征在于,所述当OpenFlow交换机接收到待处理数据包时,为接收到的待处理数据包添加数据包的包头域包括当所述OpenFlow交换机接收到所述待处理数据包时,判断待处理数据包是否来自数据源; 如果待处理数据包来自数据源,则说明待处理数据包为原始数据包,并为首次进入OpenFlow网络的原始数据包添加包头域; 如果待处理数据包不是来自数据源,而是来自其他OpenFlow交换机,则说明待处理数据包为编解码后的数据包,则直接进行后续操作。3.如权利要求1所述的在OpenFlow交换机上实现网络编码的方法,其特征在于,所述判断接收到的待处理数据包的行为集合中是否有编码行为和/或解码行为;若接收到的待处理数据包的行为集合中有编码行为和/或解码行为,则将待处理数据包放入编码队列和/或解码队列,包括首先通过对所述接收到的待处理数据包进行匹配流表来判断是否能得到待处理数据包的行为集合; 若能够得到待处理数据包的行为集合,则判断所述行为集合的行为类型中是否有转发行为;若所述行为类型中有转发行为,则对待处理数据包进行转发;否则判断行为类型中是否有编码行为和/或解码行为,若行为类型中有编码行为和/或解码行为,则将待处理数据包放入所述编码队列和/或所述解码队列; 若不能得到待处理数据包的行为集合,则将待处理数据包的包头通过安全通道发送给OpenFlow控制器,所述OpenFlow控制器将为OpenFlow交换机设置待处理数据包所在流对应的流表项,并将所述流表项发回所述OpenFlow交换机,由OpenFlow交换机响应。4.如权利要求1所述的在OpenFlow交换机上实现网络编码的方法,其特征在于,所述若接收到的待处理数据包的行为集合中有编码行为和/或解码行为,则将待处理数据包放入编码队列和/或解码队列,包括若所述接收到的待处理数据包的行为集合中有所述编码行为和/或所述解码行为,则先将待处理数据包转化为待编解码处理的数据包,再根据数据包的行为集合中的行为类型,将待编解码处理的数据包放入所述编码队列和/或所述解码队列;其中,待编解码处理的数据包,包括数据包、数据包的行为类型、数据包的存活时间、数据包所在流的ID、数据包在流中的序列号、数据包已编码过流的个数、与数据包进行编解码的流的个数、将与数据包进行编解码的流的ID、数据包将帮助解码的流的ID及编解码后的流的ID。5.如权利要求1-4中任意一项所述的在OpenFlow交换机上实现网络编码的方法,其特征在于,所述将在编码队列和/或解码队列中的数据包进行编码操作和/或解码操作,得到编码后的数据包和/或解码后的数据包,包括先遍历所述编码队列和/或所述解码队列中已存的数据包是否有超时的;若编码队列中有超时的已存的数据包,则对所述超时的已存的数据包重新进行流表匹配;...

【专利技术属性】
技术研发人员:戴彬赵文文徐冠吕璐黄本雄
申请(专利权)人:华中科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1