CN104852867B - 数据包转发方法、装置及系统 - Google Patents
数据包转发方法、装置及系统 Download PDFInfo
- Publication number
- CN104852867B CN104852867B CN201410055766.XA CN201410055766A CN104852867B CN 104852867 B CN104852867 B CN 104852867B CN 201410055766 A CN201410055766 A CN 201410055766A CN 104852867 B CN104852867 B CN 104852867B
- Authority
- CN
- China
- Prior art keywords
- flow table
- openflow
- table item
- aging
- data bag
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/54—Organization of routing tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/02—Capturing of monitoring data
- H04L43/026—Capturing of monitoring data using flow identification
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/20—Arrangements for monitoring or testing data switching networks the monitoring system or the monitored elements being virtualised, abstracted or software-defined entities, e.g. SDN or NFV
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/28—Routing or path finding of packets in data switching networks using route fault recovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/64—Routing or path finding of packets in data switching networks using an overlay routing layer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/70—Virtual switches
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供了一种数据包转发方法、装置及系统,涉及网络传输领域。所述数据包转发方法包括:若安全通道出现故障时,将接收到的老化流表项保存到老化流表中;确定接收上报数据包是否与老化流表中的老化流表项匹配;若上报数据包与老化流表中的一个老化流表项匹配,则向OpenFlow交换机下发匹配的老化流表项。本发明通过在安全通道发生故障期间,OpenFlow交换机代理下发老化流表项,以便OpenFlow交换机根据老化流表项转发数据包;解决了现有技术中在安全通道出现故障期间,OpenFlow交换机会老化并最终失去数据交换功能的问题;达到了可以保证在流表项老化的情况下仍旧可以继续转发已有业务流的效果。
Description
技术领域
本发明涉及网络传输领域,特别涉及一种数据包转发方法、装置及系统。
背景技术
开放流OpenFlow网络由OpenFlow交换机(OpenFlow switch)、OpenFlow控制器(OpenFlow controller)和虚拟交换机FlowVisor组成,OpenFlow交换机进行数据层的转发,虚拟交换机对OpenFlow网络进行虚拟化,OpenFlow控制器对OpenFlow网络进行集中控制。OpenFlow交换机和对应的OpenFlow控制器通过安全通道进行消息交互,虚拟交换机可以截获安全通道上的消息。
在OpenFlow网络中进行数据包转发时的具体过程如下:当OpenFlow交换机接收到数据包时,OpenFlow交换机查找保存的多流表中的流表项,如果该数据包能够与其中一个流表项匹配,则根据该流表项转发该数据包,如果该数据包无法与任何一个流表项匹配,则OpenFlow交换机新建一个上报数据包PacketIn,通过安全通道经FlowVisor上报给对应的OpenFlow控制器;OpenFlow控制器根据PacketIn确定该数据包的转发动作,并通过FlowVisor下发新的流表项到该OpenFlow交换机,OpenFlow交换机根据OpenFlow控制器下发的流表项转发该数据包。虚拟交换机FlowVisor作为代理OpenFlow控制器,也可以对网络进行分片,即虚拟交换机根据配置策略将OpenFlow交换机和OpenFlow控制器进行分片,根据内置策略,对OpenFlow消息进行拦截、修改、转发操作。OpenFlow控制器只被允许控制其策略范围内的流。
在实际应用中,OpenFlow网络还设置了一种老化机制,即在OpenFlow交换机中如果一个流表项在长时间内没有相关匹配项命中,为了节省流表项资源,OpenFlow交换机会删除该流表项。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:安全通道是OpenFlow控制器与OpenFlow交换机之间的唯一通道,在OpenFlow控制器与对应的OpenFlow交换机之间的安全通道出现故障期间,如果OpenFlow交换机中根据老化机制删除了某些流表项,则后续接收到的对应这些流表项的数据包则无法进行转发,因此OpenFlow交换机最后会失去数据交换功能。
发明内容
为了解决现有技术中在OpenFlow控制器与对应的OpenFlow交换机之间的安全通道出现故障期间,如果OpenFlow交换机中根据老化机制删除了某些流表项,则后续接收到的对应这些流表项的数据包则无法进行转发,因此OpenFlow交换机最后会失去数据交换功能的问题,本发明实施例提供了一种数据包转发方法、装置及系统。所述技术方案如下:
第一方面,提供了一种数据包转发方法,应用于包含有OpenFlow交换机、OpenFlow控制器和虚拟交换机的网络中的所述虚拟交换机中,所述方法包括:
若所述OpenFlow交换机和所述OpenFlow控制器之间的安全通道发生故障时,将接收到的所述OpenFlow交换机上报的被所述OpenFlow交换机删除的老化流表项保存到老化流表中,所述老化流表用于保存所述OpenFlow交换机在所述安全通道发生故障后删除的老化流表项;
确定接收的所述OpenFlow交换机发送的上报数据包是否与所述老化流表中的老化流表项匹配,所述上报数据包为所述OpenFlow交换机在接收到转发数据包时,在所述转发数据包与保存的转发流表项未匹配成功后根据所述转发数据包生成的;
若所述上报数据包与所述老化流表中的一个老化流表项匹配,则向所述OpenFlow交换机下发所述匹配的老化流表项,以便所述OpenFlow交换机根据所述匹配的老化流表项转发所述转发数据包。
在第一方面的第一种可能的实施方式中,所述方法还包括:
若所述OpenFlow交换机和所述OpenFlow控制器之间的所述安全通道恢复正常,将所述老化流表中已下发给所述OpenFlow交换机的各老化流表项上报给所述OpenFlow控制器,以便所述OpenFlow控制器确定在所述安全通道发生故障时所述虚拟交换机代理下发给所述OpenFlow交换机的所述各老化流表项是否全部被所述OpenFlow交换机接收到,若所述各老化流表项没有全部被所述OpenFlow交换机接收到,则向所述OpenFlow交换机重新下发尚未被所述OpenFlow交换机接收到的老化流表项。
结合第一方面或者第一方面的第一种可能的实施方式,在第二种可能的实施方式中,所述方法还包括:
若所述上报数据包与所述老化流表中的老化流表项均不匹配,则确定所述虚拟交换机是否保存有所述上报数据包;
若确定所述虚拟交换机未保存有所述上报数据包,则保存所述上报数据包。
结合第一方面、第一方面的第一种可能的实施方式或者第一方面的第二种可能的实施方式,在第三种可能的实施方式中,所述方法还包括:
若所述OpenFlow交换机和所述OpenFlow控制器之间的所述安全通道恢复正常,将所述虚拟交换机中保存的各上报数据包上报给所述OpenFlow控制器,以便所述OpenFlow控制器向所述OpenFlow交换机下发与所述各上报数据包对应的流表项。
结合第一方面、第一方面的第一种可能的实施方式、第一方面的第二种可能的实施方式或者第一方面的第三种可能的实施方式,在第四种可能的实施方式中,所述方法还包括:
若所述虚拟交换机保存有所述上报数据包,则将所述上报数据包的计数值递增,所述计数值表示所述虚拟交换机接收到所述上报数据包的次数;
所述将所述虚拟交换机中保存的所述各上报数据包上报给所述OpenFlow控制器,包括:
将所述虚拟交换机中保存的所述各上报数据包按照所述各上报数据包的计数值大小依次上报给所述OpenFlow控制器,以便所述OpenFlow控制器根据接收到所述虚拟交换机上报的所述各上报数据包的顺序依次向所述OpenFlow交换机下发与所述各上报数据包对应的流表项。
第二方面,提供了一种数据包转发方法,应用于包含有OpenFlow交换机、OpenFlow控制器和虚拟交换机的网络中的所述OpenFlow控制器中,所述方法包括:
接收所述虚拟交换机上报的至少一个老化流表项,所述至少一个老化流表项为所述OpenFlow交换机和所述OpenFlow控制器之间的安全通道发生故障时,所述虚拟交换机确定接收的所述OpenFlow交换机发送的上报数据包与老化流表中的老化流表项匹配之后,代理下发给所述OpenFlow交换机的所述匹配的述老化流表项,所述老化流表用于保存所述虚拟交换机在所述安全通道发生故障后接收到的所述OpenFlow交换机上报的被所述OpenFlow交换机删除的老化流表项;
确定所述OpenFlow交换机中是否保存有所述至少一个老化流表项;
若所述OpenFlow交换机中有尚未保存的老化流表项中的至少一个所述老化流表项,则向所述OpenFlow交换机重新下发所述尚未保存的老化流表项。
在第二方面的第一种可能的实施方式中,所述方法还包括:
接收所述虚拟交换机上报的上报数据包,所述上报数据包为所述虚拟交换机在所述OpenFlow交换机和所述OpenFlow控制器之间的安全通道发生故障时接收到的所述OpenFlow交换机发送的与所述老化流表中各个老化流表项均不匹配的上报数据包;
向所述OpenFlow交换机下发与所述上报数据包对应的流表项。
结合第二方面或者第二方面的第一种可能的实施方式,在第二种可能的实施方式中,所述接收所述虚拟交换机上报的上报数据包,包括:
接收所述虚拟交换机按照所述上报数据包的计数值大小顺序依次上报的所述上报数据包,所述各上报数据包的计数值为所述虚拟交换机在接收到所述OpenFlow交换机发送的与所述老化流表中的老化流表项均不匹配的所述上报数据包且确定所述虚拟交换机中保存有所述上报数据包时,对各所述上报数据包的计数值分别递增得到的;
所述向所述OpenFlow交换机下发与所述上报数据包对应的流表项,包括:
根据接收所述上报数据包的顺序依次生成并向所述OpenFlow交换机下发与所述上报数据包对应的流表项。
第三方面,提供了一种数据包转发装置,应用于包含有OpenFlow交换机、OpenFlow控制器和虚拟交换机的网络中的所述虚拟交换机中,所述装置包括:
第一接收模块,用于在所述OpenFlow交换机和所述OpenFlow控制器之间的安全通道发生故障时,将接收到的所述OpenFlow交换机上报的被所述OpenFlow交换机删除的老化流表项保存到老化流表中,所述老化流表用于保存所述OpenFlow交换机在所述安全通道发生故障后删除的老化流表项;
第一确定模块,用于确定所述第一接收模块接收到的所述OpenFlow交换机发送的所述上报数据包是否与所述老化流表中的老化流表项匹配,所述上报数据包为所述OpenFlow交换机在接收到转发数据包时,在所述转发数据包与保存的转发流表项未匹配成功后根据所述转发数据包生成的;
第一下发模块,用于在所述上报数据包与所述老化流表中的一个老化流表项匹配时,向所述OpenFlow交换机下发所述匹配的老化流表项,以便所述OpenFlow交换机根据所述匹配的老化流表项转发所述转发数据包。
在第三方面的第一种可能的实施方式中,所述装置还包括:
第一上报模块,用于在所述OpenFlow交换机和所述OpenFlow控制器之间的所述安全通道恢复正常时,将所述老化流表中已下发给所述OpenFlow交换机的各老化流表项上报给所述OpenFlow控制器,以便所述OpenFlow控制器确定在所述安全通道发生故障时所述虚拟交换机代理下发给所述OpenFlow交换机的所述各老化流表项是否全部被所述OpenFlow交换机接收到,若所述各老化流表项没有全部被所述OpenFlow交换机接收到,则向所述OpenFlow交换机重新下发尚未被所述OpenFlow交换机接收到的老化流表项。
结合第三方面或者第三方面的第一种可能的实施方式,在第二种可能的实施方式中,所述装置还包括:
第二确定模块,用于在所述上报数据包与所述老化流表中的老化流表项均不匹配时,确定所述虚拟交换机是否保存有所述上报数据包;
保存模块,用于在确定所述虚拟交换机未保存有所述上报数据包时,保存所述上报数据包。
结合第三方面、第三方面的第一种可能的实施方式或者第三方面的第二种可能的实施方式,在第三种可能的实施方式中,所述装置还包括:
第二上报模块,用于在所述OpenFlow交换机和所述OpenFlow控制器之间的所述安全通道恢复正常时,将所述虚拟交换机中保存的各上报数据包上报给所述OpenFlow控制器,以便所述OpenFlow控制器向所述OpenFlow交换机下发与所述各上报数据包对应的流表项。
结合第三方面、第三方面的第一种可能的实施方式、第三方面的第二种可能的实施方式或者第三方面的第三种可能的实施方式,在第四种可能的实施方式中,所述装置还包括:
累加模块,用于在所述虚拟交换机保存有所述上报数据包时,将所述上报数据包的计数值递增,所述计数值表示所述虚拟交换机接收到所述上报数据包的次数;
所述第二上报模块,还用于:
将所述虚拟交换机中保存的所述各上报数据包按照所述各上报数据包的计数值大小依次上报给所述OpenFlow控制器,以便所述OpenFlow控制器根据接收到所述虚拟交换机上报的所述各上报数据包的顺序依次向所述OpenFlow交换机下发与所述各上报数据包对应的流表项。
第四方面,提供了一种数据包转发装置,应用于包含有OpenFlow交换机、OpenFlow控制器和虚拟交换机的网络中的所述OpenFlow控制器中,所述装置包括:
第二接收模块,用于接收所述虚拟交换机上报的至少一个老化流表项,所述至少一个老化流表项为所述OpenFlow交换机和所述OpenFlow控制器之间的安全通道发生故障时,所述虚拟交换机确定接收的所述OpenFlow交换机发送的上报数据包与老化流表中的老化流表项匹配之后,代理下发给所述OpenFlow交换机的所述匹配的老化流表项,所述老化流表用于保存所述虚拟交换机在所述安全通道发生故障后接收到的所述OpenFlow交换机上报的被所述OpenFlow交换机删除的老化流表项;
第三确定模块,用于确定所述OpenFlow交换机中是否保存有所述第二接收模块接收到的至少一个所述老化流表项;
第二下发模块,用于在所述OpenFlow交换机中有尚未保存的所述老化流表中的至少一个老化流表项时,向所述OpenFlow交换机重新下发所述尚未保存的老化流表项。
在第四方面的第一种可能的实施方式中,所述装置还包括:
第三接收模块,用于接收所述虚拟交换机上报的上报数据包,所述上报数据包为所述虚拟交换机在所述OpenFlow交换机和所述OpenFlow控制器之间的安全通道发生故障时接收到的所述OpenFlow交换机发送的与所述老化流表中各个老化流表项均不匹配的上报数据包;
第三下发模块,用于向所述OpenFlow交换机下发与所述第三接收模块接收到的所述上报数据包对应的流表项。
结合第四方面或者第四方面的第一种可能的实施方式,在第二种可能的实施方式中,所述第三接收模块,还用于:
接收所述虚拟交换机按照所述上报数据包的计数值大小顺序依次上报的所述上报数据包,所述各上报数据包的计数值为所述虚拟交换机在接收到所述OpenFlow交换机发送的与所述老化流表中的所述老化流表项均不匹配的所述上报数据包且确定所述虚拟交换机中保存有所述上报数据包时,对各所述上报数据包的计数值分别递增得到的;
所述第三下发模块,还用于:
根据接收所述上报数据包的顺序依次生成并向所述OpenFlow交换机下发与所述上报数据包对应的流表项。
第五方面,提供了一种数据包转发系统,所述系统包括虚拟交换机、OpenFlow交换机和OpenFlow控制器,
所述虚拟交换机包括如第三方面以及第三方面的各种可能的实施方式中提供的任一所述的数据包转发装置;
所述OpenFlow控制器包括如第四方面以及第四方面的各种可能的实施方式中提供的数据包转发装置。
第六方面,提供了一种数据包转发装置,应用于包含有OpenFlow交换机、OpenFlow控制器和虚拟交换机的网络中的所述虚拟交换机中,所述装置包括:接收机、处理器和发送机,其中处理器分别与接收机和发送机耦合;
所述接收机,用于在所述OpenFlow交换机和所述OpenFlow控制器之间的安全通道发生故障时,将接收到的所述OpenFlow交换机上报的被所述OpenFlow交换机删除的老化流表项保存到老化流表中,所述老化流表用于保存所述OpenFlow交换机在所述安全通道发生故障后删除的老化流表项;
所述处理器,用于确定所述接收机接收到的所述OpenFlow交换机发送的所述上报数据包是否与所述老化流表中的老化流表项匹配,所述上报数据包为所述OpenFlow交换机在接收到转发数据包时,在所述转发数据包与保存的转发流表项未匹配成功后根据所述转发数据包生成的;
所述发送机,用于在所述上报数据包与所述老化流表中的一个老化流表项匹配时,向所述OpenFlow交换机下发所述匹配的老化流表项,以便所述OpenFlow交换机根据所述匹配的老化流表项转发所述转发数据包。
在第六方面的第一种可能的实施方式中,
所述发送机,还用于在所述OpenFlow交换机和所述OpenFlow控制器之间的所述安全通道恢复正常时,将所述老化流表中已下发给所述OpenFlow交换机的各老化流表项上报给所述OpenFlow控制器,以便所述OpenFlow控制器确定在所述安全通道发生故障期间时所述虚拟交换机代理下发给所述OpenFlow交换机的所述各老化流表项是否全部被所述OpenFlow交换机接收到,若所述各老化流表项没有全部被所述OpenFlow交换机接收到,则向所述OpenFlow交换机重新下发尚未被所述OpenFlow交换机接收到的老化流表项。
结合第六方面或者第六方面的第一种可能的实施方式,在第二种可能的实施方式中,所述处理器,还用于在所述上报数据包与所述老化流表中的老化流表项均不匹配时,确定所述虚拟交换机是否保存有所述上报数据包;
所述处理器,还用于在确定所述虚拟交换机未保存有所述上报数据包时,保存所述上报数据包。
结合第六方面、第六方面的第一种可能的实施方式或者第六方面的第二种可能的实施方式,在第三种可能的实施方式中,所述发送机,还用于在所述OpenFlow交换机和所述OpenFlow控制器之间的所述安全通道恢复正常时,将所述虚拟交换机中保存的各上报数据包上报给所述OpenFlow控制器,以便所述OpenFlow控制器向所述OpenFlow交换机下发与所述各上报数据包对应的流表项。
结合第六方面、第六方面的第一种可能的实施方式、第六方面的第二种可能的实施方式或者第六方面的第三种可能的实施方式,在第四种可能的实施方式中,所述处理器,还用于在所述虚拟交换机保存有所述上报数据包时,将所述上报数据包的计数值递增,所述计数值表示所述虚拟交换机接收到所述上报数据包的次数;
所述发送机,还将所述虚拟交换机中保存的所述各上报数据包按照所述各上报数据包的计数值大小依次上报给所述OpenFlow控制器,以便所述OpenFlow控制器根据接收到所述虚拟交换机上报的所述各上报数据包的顺序依次向所述OpenFlow交换机下发与所述各上报数据包对应的流表项。
第七方面,提供了一种数据包转发装置,应用于包含有OpenFlow交换机、OpenFlow控制器和虚拟交换机的网络中的所述OpenFlow控制器中,所述装置包括:接收机、处理器和发送机,其中处理器分别与接收机和发送机耦合;
所述接收机,用于接收所述虚拟交换机上报的至少一个老化流表项,所述至少一个老化流表项为所述OpenFlow交换机和所述OpenFlow控制器之间的安全通道发生故障时,所述虚拟交换机确定接收的所述OpenFlow交换机发送的上报数据包与老化流表中的老化流表项匹配之后,代理下发给所述OpenFlow交换机的所述匹配的老化流表项,所述老化流表用于保存所述虚拟交换机在所述安全通道发生故障后接收到的所述OpenFlow交换机上报的被所述OpenFlow交换机删除的老化流表项;
所述处理器,用于确定所述OpenFlow交换机中是否有保存所述接收机接收到的至少一个所述老化流表项;
所述发送机,用于在所述处理器确定所述OpenFlow交换机中有尚未保存的所述老化流表中的至少一个老化流表项时,向所述OpenFlow交换机重新下发所述尚未保存的老化流表项。
在第七方面的第一种可能的实施方式中,所述接收机,还用于接收所述虚拟交换机上报的上报数据包,所述上报数据包为所述虚拟交换机在所述OpenFlow交换机和所述OpenFlow控制器之间的安全通道发生故障时接收到的所述OpenFlow交换机发送的与所述老化流表中各个老化流表项均不匹配的上报数据包;
所述发送机,还用于向所述OpenFlow交换机下发与所述接收机接收到的所述上报数据包对应的流表项。
结合第七方面或者第七方面的第一种可能的实施方式,在第二种可能的实施方式中,所述接收机,还用于接收所述虚拟交换机按照所述上报数据包的计数值大小顺序依次上报的所述上报数据包,所述各上报数据包的计数值为所述虚拟交换机在接收到所述OpenFlow交换机发送的与所述老化流表中的所述老化流表项均不匹配的所述上报数据包且确定所述虚拟交换机中保存有所述上报数据包时,对各所述上报数据包的计数值分别递增得到的;
所述发送机,还用于:
根据接收所述上报数据包的顺序依次生成并向所述OpenFlow交换机下发与所述上报数据包对应的流表项。
本发明实施例提供的技术方案带来的有益效果是:
通过在OpenFlow交换机和OpenFlow控制器之间的安全通道发生故障期间,虚拟交换机将接收的OpenFlow交换机发送的上报数据包与预存的老化流表项进行匹配,在匹配成功的情况下,向OpenFlow交换机下发匹配的老化流表项,以便OpenFlow交换机根据老化流表项转发该转发数据包;解决了现有技术中在OpenFlow控制器与对应的OpenFlow交换机之间的安全通道出现故障期间,如果OpenFlow交换机中根据老化机制删除了某些流表项,则后续接收到的对应这些流表项的数据包无法进行转发,因此OpenFlow交换机最后会失去数据交换功能的问题;由于虚拟交换机中保存了在安全通道发生故障期间OpenFlow交换机在老化流程中删除的老化流表项,因此虚拟交换机可以代替OpenFlow控制器为OpenFlow交换机在后续接收到同流的转发数据包下发对应的老化流表项,以便OpenFlow交换机根据虚拟交换机下发的老化流表项转发同流的转发数据包,达到了可以在OpenFlow控制器与对应的OpenFlow交换机之间的安全通道出现故障期间,保证了在已有业务流所对应的流表项老化的情况下仍旧可以继续转发已有业务流的效果。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明部分实施例中提供的数据包转发方法所涉及的实施环境的示意图;
图2是本发明一个实施例中提供的数据包转发方法的方法流程图;
图3是本发明另一个实施例中提过的数据包转发方法的方法流程图;
图4是本发明再一个实施例中提供的数据包转发方法的方法流程图;
图5是本发明还一个实施例中提供的数据包转发方法的方法流程图;
图6是本发明又一个实施例中提供的数据包转发方法的方法流程图;
图7是本发明一个实施例中提供的数据包转发装置的结构示意图;
图8是本发明另一个实施例中提供的数据包转发装置的结构示意图;
图9是本发明再一个实施例中提供的数据包转发装置的结构示意图;
图10是本发明还一个实施例中提供的数据包转发装置的结构示意图;
图11是本发明一个实施例中提供的虚拟交换机的结构示意图;
图12是本发明另一个实施例中提供的虚拟交换机的结构示意图;
图13是本发明一个实施例中提供的OpenFlow控制器的结构示意图;
图14是本发明另一个实施例中提供的OpenFlow控制器的结构示意图;
图15是本发明一个实施例中提供的数据包转发系统的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
图1是本发明部分实施例中提供的数据包转发方法所涉及的实施环境的示意图,该实施环境可以包括:虚拟交换机120、至少一个OpenFlow交换机140和至少一个OpenFlow控制器160。
虚拟交换机120可以为FlowVisor,FlowVisor可以通过分片策略将OpenFlow交换机划分为多个OpenFlow交换机分片140,每个OpenFlow交换机分片140均由一个OpenFlow控制器分片160控制,具体可以是将几个OpenFlow交换机划分为一个OpenFlow交换机分片,也可以是将一个OpenFlow交换机根据分片策略划分为不同的OpenFlow交换机分片。通常对于OpenFlow交换机分片140来讲,虚拟交换机120则为一个OpenFlow控制器,而对于OpenFlow控制器分片来讲,虚拟交换机120则为一个OpenFlow交换机,因此虚拟交换机120可以截获、修改和转发OpenFlow交换机分片140和OpenFlow控制器分片160之间交互的所有信息,比如OpenFlow交换机分片140上报的上报数据包PacketIn、OpenFlow控制器分片160下发的流表项等。
在OpenFlow网络中,OpenFlow交换机分片140与OpenFlow控制器分片160一一对应,每组对应的OpenFlow交换机分片140与OpenFlow控制器分片160之间通过安全通道连接;OpenFlow交换机分片140中保存中有流表,流表中保存有至少一个流表项,OpenFlow交换机分片140在接收到一个转发数据包时,首先可以根据流表项对转发数据包进行转发;OpenFlow交换机分片140查找保存的流表中的流表项,如果该转发数据包能够与其中一个流表项匹配,则根据该流表项转发该转发数据包,如果该转发数据包无法与任何一个流表项匹配,则OpenFlow交换机分片140新建一个上报数据包PacketIn,通过安全通道上报给对应的OpenFlow控制器分片160;OpenFlow控制器分片160根据PacketIn确定该转发数据包的转发动作(即流表项),并通过安全通道下发新的流表项到该OpenFlow交换机分片140,OpenFlow交换机分片140根据OpenFlow控制器分片160下发的流表项转发该转发数据包。
由于OpenFlow交换机分片140在逻辑上为一个OpenFlow交换机,OpenFlow控制器分片在逻辑上为一个OpenFlow控制器,因此文中为了便于描述,将OpenFlow交换机分片140看作为一个OpenFlow交换机,将OpenFlow控制器分片160看作为一个OpenFlow控制器。如无特殊说明,文中所描述的“OpenFlow交换机”均为图1中所示的其中一个OpenFlow交换机分片140,如无特殊说明,文中所描述的“OpenFlow控制器”均为图1中所示的与OpenFlow交换机分片140对应的OpenFlow控制器分片160。
请参见图2所示,其示出了本发明一个实施例中提供的数据包转发方法的方法流程图,该数据包转发方法主要以应用于图1所示实施环境中的虚拟交换机120中进行举例说明。该数据包转发方法可以包括:
201,若OpenFlow交换机和OpenFlow控制器之间的安全通道发生故障,将接收到的OpenFlow交换机上报的被OpenFlow交换机删除的老化流表项保存到老化流表中,老化流表用于保存OpenFlow交换机在安全通道发生故障后删除的老化流表项;
202,确定接收的OpenFlow交换机发送的上报数据包是否与老化流表中的老化流表项匹配,上报数据包为OpenFlow交换机在接收到转发数据包时,在转发数据包与保存的转发流表项未匹配成功后根据转发数据包生成的;
203,若上报数据包与老化流表中的一个老化流表项匹配,则向OpenFlow交换机下发匹配的老化流表项,以便OpenFlow交换机根据匹配的老化流表项转发该转发数据包。
综上所述,本发明实施例中提供的数据包转发方法,通过在OpenFlow交换机和OpenFlow控制器之间的安全通道发生故障期间,虚拟交换机将接收的OpenFlow交换机发送的上报数据包与预存的老化流表项进行匹配,在匹配成功的情况下,向OpenFlow交换机下发匹配的老化流表项,以便OpenFlow交换机根据老化流表项转发数据包;解决了现有技术中在OpenFlow控制器与对应的OpenFlow交换机之间的安全通道出现故障期间,如果OpenFlow交换机中根据老化机制删除了某些流表项,则后续接收到的对应这些流表项的转发数据包无法进行转发,因此OpenFlow交换机最后会失去数据交换功能的问题;由于虚拟交换机中保存了在安全通道发生故障期间OpenFlow交换机在老化流程中删除的老化流表项,因此虚拟交换机可以代替OpenFlow控制器为OpenFlow交换机在后续接收到的同流的转发数据包下发对应的老化流表项,以便OpenFlow交换机根据虚拟交换机下发的老化流表项转发同流的转发数据包,达到了可以在OpenFlow控制器与对应的OpenFlow交换机之间的安全通道出现故障期间,保证了在已有业务流所对应的流表项老化的情况下仍旧可以继续转发已有业务流的效果。
请参见图3所示,其示出了本发明另一个实施例中提供的数据包转发方法的方法流程图,该数据包转发方法主要以应用于图1所示实施环境中的OpenFlow控制器分片160中进行举例说明。该数据包转发方法可以包括:
301,接收虚拟交换机上报的至少一个老化流表项,至少一个老化流表项为OpenFlow交换机和OpenFlow控制器之间的安全通道发生故障时,虚拟交换机确定接收的OpenFlow交换机发送的上报数据包与老化流表中的老化流表项匹配之后,代理下发给OpenFlow交换机的匹配的老化流表项,老化流表用于保存虚拟交换机在安全通道发生故障后接收到的OpenFlow交换机上报的被OpenFlow交换机删除的老化流表项;
302,确定OpenFlow交换机中是否保存有至少一个老化流表项;
303,若OpenFlow交换机中有尚未保存的老化流表项中的至少一个老化流表项,则向OpenFlow交换机重新下发尚未保存的老化流表项。
综上所述,本发明实施例中提供的数据包转发方法,通过在OpenFlow交换机和OpenFlow控制器之间的安全通过恢复后,OpenFlow控制器获取虚拟交换机代为下发的老化流表项,并确定虚拟交换机代为下发的老化流表项的正确性,在不正确的情况下重新向OpenFlow交换机下发老化流表项;解决了现有技术中在OpenFlow控制器与对应的OpenFlow交换机之间的安全通道出现故障期间,如果OpenFlow交换机中根据老化机制删除了某些流表项,则后续接收到的对应这些流表项的转发数据包无法进行转发,因此OpenFlow交换机最后会失去数据交换功能的问题;由于在安全通过恢复正常后,OpenFlow控制器可以对虚拟交换机代为下发的老化流表项进行检测,在某些老化流表项没有被虚拟交换机成功下发给OpenFlow交换机时,OpenFlow控制器重新下发该老化流表项,从而达到了可以保证后续同流的转发数据包在第一时间被OpenFlow交换机进行正常转发的效果。
在实际应用中,当OpenFlow交换机和OpenFlow控制器之间的安全通道发生故障期间,虚拟交换机可以代理OpenFlow控制器向OpenFlow交换机下发老化流表项,且在安全通过恢复正常之后,将代理下发的情况汇报给OpenFlow控制器,以便OpenFlow控制器可以确定在安全通道发生故障期间,虚拟交换机代理下发的正确性,具体可以参见以下对图4的描述。
请参见图4所示,其示出了本发明再一个实施例中提供的数据包转发方法的方法流程图,该数据包转发方法主要以应用于图1所示实施环境中进行举例说明。该数据包转发方法可以包括:
401,虚拟交换机在OpenFlow交换机和OpenFlow控制器之间的安全通道发生故障时,将接收到的OpenFlow交换机上报的被OpenFlow交换机删除的老化流表项保存到老化流表中,老化流表用于保存OpenFlow交换机在安全通道发生故障后删除的老化流表项;
在实际应用中,OpenFlow交换机在接收到转发数据包之后,确定该转发数据包是否与其中一个流表项匹配,如果匹配,则根据该流表项转发该转发数据包。对于一个流表项来讲,如果该流表项长时间没有被转发数据包命中,为了提高匹配时的效率,OpenFlow交换机则会删除该流表项(被删除的流表项称为老化流表项),并将删除老化流表项通知给OpenFlow控制器。对应的,虚拟交换机则可以截获并保存OpenFlow交换机向OpenFlow控制器发送的老化流表项。
需要补充说明的是,通常虚拟交换机在确定到OpenFlow交换机和OpenFlow控制器之间的安全通道发生故障时,则在虚拟交换机的内存区域开辟至少一个内存区域,其中的开辟的一个内存区域则用于存储截获的老化流表项。
402,虚拟交换机确定接收的OpenFlow交换机发送的上报数据包是否与老化流表中的老化流表项匹配,上报数据包为OpenFlow交换机在接收到转发数据包时,在转发数据包与保存的转发流表项未匹配成功后根据转发数据包生成的;
在实际应用中,当OpenFlow交换机在接收到转发数据包,且转发数据包无法与OpenFlow交换机保存的流表项进行匹配时,则会为该转发数据包生成一个上报数据包,并将该上报数据包通过安全通道发送给OpenFlow控制器,此时虚拟交换机可以截获该上报数据包,且由于安全通道已经出现故障,因此OpenFlow控制器接收不到该上报数据包。当虚拟交换机在每接收到一个OpenFlow交换机上报的上报数据包之后,均需要确定老化流表中是否存在一个可以与该上报数据包匹配的老化流表项。
403,若上报数据包与老化流表中的一个老化流表项匹配,虚拟交换机则向OpenFlow交换机下发匹配的老化流表项,以便OpenFlow交换机根据老化流表项转发该转发数据包;
若上报数据包与老化流表中的一个老化流表项匹配,则表明该上报数据包所对应的转发数据包可以通过该老化流表项进行转发,此时,虚拟交换机则向OpenFlow交换机下发匹配的老化流表项。这样,OpenFlow交换机则可以根据接收到的老化流表项对该转发数据包以及后续与该转发数据包同流的转发数据包进行转发。
404,若OpenFlow交换机和OpenFlow控制器之间的安全通道恢复正常,虚拟交换机将老化流表中已下发给OpenFlow交换机的各老化流表项上报给OpenFlow控制器;
由于在OpenFlow交换机和OpenFlow控制器之间的安全通道发送故障时,虚拟交换机会代理OpenFlow控制器向OpenFlow交换机发送老化流表项,而OpenFlow控制器并不知道虚拟交换机都代理自己下发了哪些流表项,且虚拟交换机并不能保证自己下发的流表项是否成功,因此为了保证OpenFlow控制器可以知道虚拟交换机都代理自己下发了哪些流表项,且可以验证虚拟交换机代理下发的流表项是否成功,在OpenFlow交换机和OpenFlow控制器之间的安全通道恢复正常时,虚拟交换机则会将代理下发给OpenFlow交换机的老化流表项上报给OpenFlow控制器。
405,OpenFlow控制器接收虚拟交换机上报的至少一个老化流表项;
406,OpenFlow控制器确定OpenFlow交换机中是否保存有至少一个老化流表项;
由于在安全通道发生故障期间,虚拟交换机代理OpenFlow控制器下发给OpenFlow交换机老化流表项,因此OpenFlow控制器有必要验证下虚拟交换机代理下发的正确性,即验证虚拟交换机代理下发的老化流表项是否正确下发到OpenFlow交换机,此时,OpenFlow控制器则确定OpenFlow交换机中是否保存这些老化流表项。
407,若OpenFlow交换机中有尚未保存的老化流表项中的至少一个老化流表项,OpenFlow控制器则向OpenFlow交换机重新下发尚未保存的老化流表项。
若OpenFlow控制器确定到OpenFlow交换机中有尚未保存的某一个或某些老化流表项,则表明虚拟交换机在代理下发这些老化流表项时并没有成功,此时OpenFlow控制器则向OpenFlow交换机重新下发这些老化流表项,以便OpenFlow交换机在接收到后续同流的转发数据包时,可以直接使用匹配的该老化流表项对这些转发数据包进行转发,提高了匹配的速度。
综上所述,本发明实施例中提供的数据包转发方法,通过在OpenFlow交换机和OpenFlow控制器之间的安全通道发生故障期间,虚拟交换机代替OpenFlow控制器向OpenFlow交换机下发老化流表项,并在安全通道恢复正常时,通知OpenFlow控制器代理下发的这些老化流表项,以便OpenFlow控制器对虚拟交换机代理下发的老化流表项进行验证;解决了现有技术中在OpenFlow控制器与对应的OpenFlow交换机之间的安全通道出现故障期间,如果OpenFlow交换机中根据老化机制删除了某些流表项,则后续接收到的对应这些流表项的转发数据包无法进行转发,因此OpenFlow交换机最后会失去数据交换功能的问题;在安全通道恢复正常时,OpenFlow控制器可以对虚拟交换机代理下发的老化流表项进行验证,对没有代理下发成功的老化流表项重新下发,达到了可以保证以最快的速度重新下发老化流表项,从而提高匹配以及转发数据包的效率的效果。
在实际应用中,当OpenFlow交换机和OpenFlow控制器之间的安全通道发生故障期间,由于虚拟交换机不具有为新上报数据包生成流表项的功能,因此虚拟交换机可以暂时保存新上报数据包,且在安全通过恢复正常之后,将保存的新上报数据包汇报给OpenFlow控制器,以便OpenFlow控制器可以在第一时间为这些新上报数据包生成流表项,具体可以参见以下对图5的描述。
请参见图5所示,其示出了本发明还一个实施例中提供的数据包转发方法的方法流程图,该数据包转发方法主要以应用于图1所示实施环境中进行举例说明。该数据包转发方法可以包括:
501,虚拟交换机在OpenFlow交换机和OpenFlow控制器之间的安全通道发生故障时,将接收到的OpenFlow交换机上报的被OpenFlow交换机删除的老化流表项保存到老化流表中,老化流表用于保存OpenFlow交换机在安全通道发生故障后删除的老化流表项;
502,虚拟交换机确定接收的OpenFlow交换机发送的上报数据包是否与老化流表中的老化流表项匹配,上报数据包为OpenFlow交换机在接收到转发数据包时,在转发数据包与保存的转发流表项未匹配成功后根据转发数据包生成的;
上述的步骤501、502分别与图4中的步骤401、402一一对应,详细内容可以结合图4中的步骤401、402的描述,为了避免赘述,这里就不再详述。
503,若该上报数据包与老化流表中的老化流表项均不匹配,虚拟交换机则确定虚拟交换机是否保存有该上报数据包;
在实际应用中,虚拟交换机在确定OpenFlow交换机和OpenFlow控制器之间的安全通道发生故障时,可以开辟一个用于存储上报数据包的存储区域,当上报数据包与预存的老化流表项均不匹配时,则确定该用于存储上报数据包的存储区域中是否保存有该上报数据包。
通常来讲,用于存储上报数据包的存储区域和用于存储老化流表项的存储区域可以是两个不同的存储区域,这两个不同的存储区域均可以是虚拟交换机在确定安全通过发生故障时开辟的存储区域,或者是虚拟交换机在准备第一次存储老化流表项时开辟用于存储老化流表项的存储区域,虚拟交换机在准备第一次存储上报数据包时开辟用于存储上报数据包的存储区域。
504,若确定虚拟交换机未保存有上报数据包,虚拟交换机则保存上报数据包;
505,若OpenFlow交换机和OpenFlow控制器之间的安全通道恢复正常,虚拟交换机将虚拟交换机中保存的各上报数据包上报给OpenFlow控制器;
同样的,为了保证OpenFlow交换机可以比较快速的获取到上报数据包所对应的流表项,在OpenFlow交换机和OpenFlow控制器之间的安全通道恢复正常时,虚拟交换机则会将保存的各上报数据包上报给OpenFlow控制器。
506,OpenFlow控制器接收虚拟交换机上报的上报数据包;
507,OpenFlow控制器向OpenFlow交换机下发与上报数据包对应的流表项。
OpenFlow控制器在接收到虚拟交换机上报的上报数据包之后,则会为这些上报数据包生成流表项,并将生成的流表项下发给OpenFlow交换机。
由此可知,一旦OpenFlow交换机和OpenFlow控制器之间的安全通道恢复正常,OpenFlow控制器就会立即获取到虚拟交换机上报的上报数据包,并为这些上报数据包生成流表项,将这些流表项下发给OpenFlow交换机,以便OpenFlow交换机在接收到同流的转发数据包时,可以立即根据这些流表项对同流的转发数据包进行转发。
综上所述,本发明实施例中提供的数据包转发方法,通过在OpenFlow交换机和OpenFlow控制器之间的安全通过恢复后,OpenFlow控制器获取虚拟交换机保存的上报数据包,根据这些上报数据包生成流表项并将这些流表项下发给OpenFlow交换机,以便OpenFlow交换机在接收到相关的转发数据包时可以立即根据这些流表项进行转发;由于在安全通过恢复正常后,OpenFlow控制器可以对OpenFlow交换机在安全通道故障期间获取到的上报数据包生成流表项,并将生成的流表项下发给OpenFlow交换机,由于同流的转发数据包通常是在短时间内连续发送的,因此OpenFlow交换机还会接收到后续较多的同流的转发数据包,此时则可以根据流表项转发这些后续获取到的转发数据包,从而达到了可以保证后续同流的转发数据包能够被OpenFlow交换机快速进行正常转发的效果。
在实际应用中,当OpenFlow交换机和OpenFlow控制器之间的安全通道发生故障期间,由于虚拟交换机不具有为新上报数据包生成流表项的功能,因此虚拟交换机可以暂时保存新上报数据包,为了能够保证OpenFlow控制器先接收到比较重要的新上报数据包,虚拟交换机还可以根据新上报数据包的数量对新上报数据包进行排序,且在安全通过恢复正常之后,将保存的新上报数据包按序汇报给OpenFlow控制器,以便OpenFlow控制器可以在第一时间按序为这些新上报数据包生成流表项,具体可以参见以下对图6的描述。
请参见图6所示,其示出了本发明又一个实施例中提供的数据包转发方法的方法流程图,该数据包转发方法主要以应用于图1所示实施环境中进行举例说明。该数据包转发方法可以包括:
601,虚拟交换机在OpenFlow交换机和OpenFlow控制器之间的安全通道发生故障时,将接收到的OpenFlow交换机上报的被OpenFlow交换机删除的老化流表项保存到老化流表中,老化流表用于保存OpenFlow交换机在安全通道发生故障后删除的老化流表项;
602,虚拟交换机确定接收的OpenFlow交换机发送的上报数据包是否与老化流表中的老化流表项匹配,上报数据包为OpenFlow交换机在接收到转发数据包时,在转发数据包与保存的转发流表项未匹配成功后根据转发数据包生成;
603,若上报数据包与老化流表中的老化流表项均不匹配,虚拟交换机则确定虚拟交换机是否保存有上报数据包;
604,若确定为虚拟交换机未保存有上报数据包,虚拟交换机则保存上报数据包;
上述步骤601至604分别与图5中的步骤501至504一一对应,详细内容可以结合图5中对步骤501至504的描述,为了避免赘述,这里就不再描述。
605,若虚拟交换机保存有该上报数据包,虚拟交换机则将上报数据包的计数值递增,计数值表示虚拟交换机接收到该上报数据包的次数;
由于上报数据包是根据获取的转发数据包生成的,对于同流的转发数据包来讲,生成的上报数据包通常是相同的,因此若虚拟交换机保存有该上报数据包,则表明OpenFlow交换机接收到同流的转发数据包。
通常来讲,当相同的上报数据包比较多时,表明同流的转发数据包也比较多,为了保证能尽量减少这些同流的转发数据包不能被OpenFlow交换机成功转发的次数,此时则需要对相同的上报数据包进行累加,得到累加后的计数值。
606,在OpenFlow交换机和OpenFlow控制器之间的安全通道恢复正常时,虚拟交换机将虚拟交换机中保存的各上报数据包按照各上报数据包的计数值大小依次上报给OpenFlow控制器;
通常会将计数值比较大的上报数据包先上报给OpenFlow控制器,将计数值比较小的上报数据后上报给OpenFlow控制器。
607,OpenFlow控制器接收虚拟交换机按照上报数据包的计数值大小顺序依次上报的上报数据包;
608,OpenFlow控制器根据接收上报数据包的顺序依次生成并向OpenFlow交换机下发与上报数据包对应的流表项。
也就是说,OpenFlow控制器会为计数值比较大的上报数据包先生成流表项,并将该流表项较早下发给OpenFlow交换机,这样OpenFlow交换机则可以根据该流表项较早的为可匹配的同流的转发数据包进行转发。
综上所述,本发明实施例中提供的数据包转发方法,通过在OpenFlow交换机和OpenFlow控制器之间的安全通过恢复后,OpenFlow控制器获取虚拟交换机代为下发的老化流表项,并确定虚拟交换机代为下发的老化流表项的正确性,在不正确的情况下重新向OpenFlow交换机下发老化流表项;解决了现有技术中在OpenFlow控制器与对应的OpenFlow交换机之间的安全通道出现故障期间,如果OpenFlow交换机中根据老化机制删除了某些流表项,则后续接收到的对应这些流表项的转发数据包无法进行转发,因此OpenFlow交换机最后会失去数据交换功能的问题;由于在安全通过恢复正常后,OpenFlow控制器可以对虚拟交换机代为下发的老化流表项进行检测,在某些老化流表项没有被虚拟交换机成功下发给OpenFlow交换机时,重新下发这些老化流表项,从而达到了可以保证后续同流的转发数据包在第一时间被OpenFlow交换机进行正常转发的效果。
请参见图7所示,其示出了本发明一个实施例中提供的数据包转发装置的结构示意图,该数据包转发装置700主要以应用于图1所示实施环境中的虚拟交换机120中进行举例说明。该数据包转发装置700可以包括:第一接收模块702、第一确定模块704和第一下发模块706。
第一接收模块702,可以用于在OpenFlow交换机和OpenFlow控制器之间的安全通道发生故障时,将接收到的OpenFlow交换机上报的被OpenFlow交换机删除的老化流表项保存到老化流表中,老化流表用于保存OpenFlow交换机在安全通道发生故障后删除的老化流表项;
第一确定模块704,可以用于确定第一接收模块702接收到的OpenFlow交换机发送的上报数据包是否与老化流表中的老化流表项匹配,上报数据包为OpenFlow交换机在接收到转发数据包时,在转发数据包与保存的转发流表项未匹配成功后根据该转发数据包生成的;
第一下发模块706,可以用于上报数据包与老化流表中的一个老化流表项匹配时,向OpenFlow交换机下发匹配的老化流表项,以便OpenFlow交换机根据匹配的老化流表项转发该转发数据包。
综上所述,本发明实施例中提供的数据包转发装置,通过在OpenFlow交换机和OpenFlow控制器之间的安全通道发生故障期间,虚拟交换机将接收的OpenFlow交换机发送的上报数据包与预存的老化流表项进行匹配,在匹配成功的情况下,向OpenFlow交换机下发匹配的老化流表项,以便OpenFlow交换机根据老化流表项转发数据包;解决了现有技术中在OpenFlow控制器与对应的OpenFlow交换机之间的安全通道出现故障期间,如果OpenFlow交换机中根据老化机制删除了某些流表项,则后续接收到的对应这些流表项的转发数据包无法进行转发,因此OpenFlow交换机最后会失去数据交换功能的问题;由于虚拟交换机中保存了在安全通道发生故障期间OpenFlow交换机在老化流程中删除的老化流表项,因此虚拟交换机可以代替OpenFlow控制器为OpenFlow交换机在后续接收到的同流的转发数据包下发对应的老化流表项,以便OpenFlow交换机根据虚拟交换机下发的老化流表项转发同流的转发数据包,达到了可以在OpenFlow控制器与对应的OpenFlow交换机之间的安全通道出现故障期间,保证了在已有业务流所对应的流表项老化的情况下仍旧可以继续转发已有业务流的效果。
请参见图8所示,其示出了本发明另一个实施例中提供的数据包转发装置的结构示意图,该数据包转发装置800主要以应用于图1所示实施环境中的虚拟交换机120中进行举例说明。该数据包转发装置800可以包括:第一接收模块802、第一确定模块804和第一下发模块806。
第一接收模块802,可以用于在OpenFlow交换机和OpenFlow控制器之间的安全通道发生故障时,将接收到的OpenFlow交换机上报的被OpenFlow交换机删除的老化流表项保存到老化流表中,老化流表用于保存OpenFlow交换机在安全通道发生故障后删除的老化流表项;
第一确定模块804,可以用于确定第一接收模块802接收到的OpenFlow交换机发送的上报数据包是否与老化流表中的老化流表项匹配,上报数据包为OpenFlow交换机在接收到转发数据包时,在转发数据包与保存的转发流表项未匹配成功后根据该转发数据包生成的;
第一下发模块806,可以用于上报数据包与老化流表中的一个老化流表项匹配时,向OpenFlow交换机下发匹配的老化流表项,以便OpenFlow交换机根据匹配的老化流表项转发该转发数据包。
在本实施例中的第一种可能的实现方式中,该数据包转发装置800还可以包括:第一上报模块812。
第一上报模块812,可以用于在OpenFlow交换机和OpenFlow控制器之间的安全通道恢复正常时,将老化流表中已下发给OpenFlow交换机的各老化流表项上报给OpenFlow控制器,以便OpenFlow控制器确定在安全通道发生故障期间虚拟交换机代理下发给OpenFlow交换机的各老化流表项是否全部被OpenFlow交换机接收到,若各老化流表项没有全部被OpenFlow交换机接收到,则向OpenFlow交换机重新下发尚未被OpenFlow交换机接收到的老化流表项。
在本实施例中的第二种可能的实现方式中,该数据包转发装置800还可以包括:第二确定模块814和第二保存模块816。
第二确定模块814,可以用于在上报数据包与老化流表中的老化流表项均不匹配时,确定虚拟交换机是否保存有上报数据包;
保存模块816,可以用于在确定虚拟交换机未保存有上报数据包时,保存上报数据包。
在本实施例中的第三种可能的实现方式中,该数据包转发装置800还可以包括:第二上报模块818。
第二上报模块818,可以用于在OpenFlow交换机和OpenFlow控制器之间的安全通道恢复正常时,将虚拟交换机中保存的各上报数据包上报给OpenFlow控制器,以便OpenFlow控制器向OpenFlow交换机下发与各上报数据包对应的流表项。
在本实施例中的第四种可能的实现方式中,该数据包转发装置800还可以包括:累加模块820,
累加模块820,可以用于虚拟交换机保存有上报数据包时,将上报数据包的计数值递增,所述计数值表示所述虚拟交换机接收到所述上报数据包的次数;
第二上报模块818,还可以用于:
将虚拟交换机中保存的各上报数据包按照各上报数据包的计数值大小依次上报给OpenFlow控制器,以便OpenFlow控制器根据接收到虚拟交换机上报的各上报数据包的顺序依次向OpenFlow交换机下发与各上报数据包对应的流表项。
综上所述,本发明实施例中提供的数据包转发装置,通过在OpenFlow交换机和OpenFlow控制器之间的安全通道发生故障期间,虚拟交换机将接收的OpenFlow交换机发送的上报数据包与预存的老化流表项进行匹配,在匹配成功的情况下,向OpenFlow交换机下发匹配的老化流表项,以便OpenFlow交换机根据老化流表项转发数据包;解决了现有技术中在OpenFlow控制器与对应的OpenFlow交换机之间的安全通道出现故障期间,如果OpenFlow交换机中根据老化机制删除了某些流表项,则后续接收到的对应这些流表项的转发数据包无法进行转发,因此OpenFlow交换机最后会失去数据交换功能的问题;由于虚拟交换机中保存了在安全通道发生故障期间OpenFlow交换机在老化流程中删除的老化流表项,因此虚拟交换机可以代替OpenFlow控制器为OpenFlow交换机在后续接收到的同流的转发数据包下发对应的老化流表项,以便OpenFlow交换机根据虚拟交换机下发的老化流表项转发同流的转发数据包,达到了可以在OpenFlow控制器与对应的OpenFlow交换机之间的安全通道出现故障期间,保证了在已有业务流所对应的流表项老化的情况下仍旧可以继续转发已有业务流的效果。
请参见图9所示,其示出了本发明再一个实施例中提供的数据包转发装置的结构示意图,该数据包转发装置900主要以应用于图1所示实施环境中的OpenFlow控制器分片160中进行举例说明。该数据包转发装置900可以包括:第二接收模块902、第三确定模块904和第二下发模块906。
第二接收模块902,可以用于接收虚拟交换机上报的至少一个老化流表项,至少一个老化流表项为OpenFlow交换机和OpenFlow控制器之间的安全通道发生故障时,虚拟交换机确定接收的OpenFlow交换机发送的上报数据包与老化流表中的老化流表项匹配之后,代理下发给OpenFlow交换机的匹配的老化流表项,老化流表用于保存虚拟交换机在安全通道发生故障后接收到的OpenFlow交换机上报的被OpenFlow交换机删除的老化流表项;
第三确定模块904,可以用于确定OpenFlow交换机中是否保存有第二接收模块接收到的至少一个老化流表项;
第二下发模块906,可以用于在OpenFlow交换机中有尚未保存的老化流表中的至少一个老化流表项时,向OpenFlow交换机重新下发尚未保存的老化流表项。
综上所述,本发明实施例中提供的数据包转发装置,通过在OpenFlow交换机和OpenFlow控制器之间的安全通过恢复后,OpenFlow控制器获取虚拟交换机代为下发的老化流表项,并确定虚拟交换机代为下发的老化流表项的正确性,在不正确的情况下重新向OpenFlow交换机下发老化流表项;解决了现有技术中在OpenFlow控制器与对应的OpenFlow交换机之间的安全通道出现故障期间,如果OpenFlow交换机中根据老化机制删除了某些流表项,则后续接收到的对应这些流表项的转发数据包无法进行转发,因此OpenFlow交换机最后会失去数据交换功能的问题;由于在安全通过恢复正常后,OpenFlow控制器可以对虚拟交换机代为下发的老化流表项进行检测,在某些老化流表项没有被虚拟交换机成功下发给OpenFlow交换机时,OpenFlow控制器重新下发该老化流表项,从而达到了可以保证后续同流的转发数据包在第一时间被OpenFlow交换机进行正常转发的效果。
请参见图10所示,其示出了本发明还一个实施例中提供的数据包转发装置的结构示意图,该数据包转发装置1000主要以应用于图1所示实施环境中的OpenFlow控制器分片160中进行举例说明。该数据包转发装置1000可以包括:第二接收模块1002、第三确定模块1004和第二下发模块1006。
第二接收模块1002,可以用于接收虚拟交换机上报的至少一个老化流表项,至少一个老化流表项为OpenFlow交换机和OpenFlow控制器之间的安全通道发生故障时,虚拟交换机确定接收的OpenFlow交换机发送的上报数据包与老化流表中的老化流表项匹配之后,代理下发给OpenFlow交换机的匹配的老化流表项,老化流表用于保存虚拟交换机在安全通道发生故障后接收到的OpenFlow交换机上报的被OpenFlow交换机删除的老化流表项;
第三确定模块1004,可以用于确定OpenFlow交换机中是否保存有第二接收模块接收到的至少一个老化流表项;
第二下发模块1006,可以用于在OpenFlow交换机中有尚未保存的老化流表中的至少一个老化流表项时,向OpenFlow交换机重新下发尚未保存的老化流表项。
在本实施例中的第一种可能的实现方式中,该数据包转发装置1000还可以包括:第三接收模块1008和第三下发模块1010。
第三接收模块1008,可以用于接收虚拟交换机上报的上报数据包,上报数据包为虚拟交换机在OpenFlow交换机和OpenFlow控制器之间的安全通道发生故障时接收到的OpenFlow交换机发送的与老化流表中各个老化流表项均不匹配的上报数据包;
第三下发模块1010,可以用于向OpenFlow交换机下发与第三接收模块1008接收到的上报数据包对应的流表项。
在本实施例中的第二种可能的实现方式中,第三接收模块1008,还可以用于:
接收虚拟交换机按照上报数据包的计数值大小顺序依次上报的上报数据包,各上报数据包的计数值为虚拟交换机在接收到OpenFlow交换机发送的与老化流表中的各老化流表项均不匹配的上报数据包且确定虚拟交换机中保存有上报数据包时,对各上报数据包的计数值分别递增得到的;
第三下发模块1010,还可以用于:
根据接收上报数据包的顺序依次生成并向OpenFlow交换机下发与上报数据包对应的流表项。
综上所述,本发明实施例中提供的数据包转发装置,通过在OpenFlow交换机和OpenFlow控制器之间的安全通过恢复后,OpenFlow控制器获取虚拟交换机代为下发的老化流表项,并确定虚拟交换机代为下发的老化流表项的正确性,在不正确的情况下重新向OpenFlow交换机下发老化流表项;解决了现有技术中在OpenFlow控制器与对应的OpenFlow交换机之间的安全通道出现故障期间,如果OpenFlow交换机中根据老化机制删除了某些流表项,则后续接收到的对应这些流表项的转发数据包无法进行转发,因此OpenFlow交换机最后会失去数据交换功能的问题;由于在安全通过恢复正常后,OpenFlow控制器可以对虚拟交换机代为下发的老化流表项进行检测,在某些老化流表项没有被虚拟交换机成功下发给OpenFlow交换机时,OpenFlow控制器重新下发该老化流表项,从而达到了可以保证后续同流的转发数据包在第一时间被OpenFlow交换机进行正常转发的效果。
需要说明的是:上述实施例提供的数据包转发装置在对数据包进行转发时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将虚拟交换机和OpenFlow控制器的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据包转发装置与数据包转发方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
请参见图11所示,其示出了本发明一个实施例中提供的虚拟交换机的结构示意图,该虚拟交换机1100主要以应用于图1所示实施环境中的虚拟交换机120中进行举例说明。该虚拟交换机1100可以包括:接收机1102、处理器1104和发送机1106,其中处理器1104分别和接收机1102以及发送机1106耦合。
接收机1102,可以用于在OpenFlow交换机和OpenFlow控制器之间的安全通道发生故障时,将接收到的OpenFlow交换机上报的被OpenFlow交换机删除的老化流表项保存到老化流表中,老化流表用于保存OpenFlow交换机在安全通道发生故障后删除的老化流表项;
处理器1104,可以用于确定接收机1102接收到的OpenFlow交换机发送的上报数据包是否与老化流表中的老化流表项匹配,上报数据包为OpenFlow交换机在接收到转发数据包时,在转发数据包与保存的转发流表项未匹配成功后根据该转发数据包生成的;
发送机1106,可以用于在处理器1104确定上报数据包与老化流表中的一个老化流表项匹配时,向OpenFlow交换机下发匹配的老化流表项,以便OpenFlow交换机根据匹配的老化流表项转发该转发数据包。
综上所述,本发明实施例中提供的虚拟交换机,通过在OpenFlow交换机和OpenFlow控制器之间的安全通道发生故障期间,虚拟交换机将接收的OpenFlow交换机发送的上报数据包与预存的老化流表项进行匹配,在匹配成功的情况下,向OpenFlow交换机下发匹配的老化流表项,以便OpenFlow交换机根据老化流表项转发数据包;解决了现有技术中在OpenFlow控制器与对应的OpenFlow交换机之间的安全通道出现故障期间,如果OpenFlow交换机中根据老化机制删除了某些流表项,则后续接收到的对应这些流表项的转发数据包无法进行转发,因此OpenFlow交换机最后会失去数据交换功能的问题;由于虚拟交换机中保存了在安全通道发生故障期间OpenFlow交换机在老化流程中删除的老化流表项,因此虚拟交换机可以代替OpenFlow控制器为OpenFlow交换机在后续接收到的同流的转发数据包下发对应的老化流表项,以便OpenFlow交换机根据虚拟交换机下发的老化流表项转发同流的转发数据包,达到了可以在OpenFlow控制器与对应的OpenFlow交换机之间的安全通道出现故障期间,保证了在已有业务流所对应的流表项老化的情况下仍旧可以继续转发已有业务流的效果。
请参见图12所示,其示出了本发明另一个实施例中提供的虚拟交换机的结构示意图,该虚拟交换机1200主要以应用于图1所示实施环境中的虚拟交换机120中进行举例说明。该虚拟交换机1200可以包括:接收机1202、处理器1204、存储器1206和发送机1208,其中处理器1204分别与接收机1202、存储器1206和发送机1208耦合,存储器1206中存储有至少一种计算机软件,处理器1204可以根据存储器1206存储的计算机软件执行相关的操作。
接收机1202,可以用于在OpenFlow交换机和OpenFlow控制器之间的安全通道发生故障时,将接收到的OpenFlow交换机上报的被OpenFlow交换机删除的老化流表项保存到老化流表中,老化流表用于保存OpenFlow交换机在安全通道发生故障后删除的老化流表项;
处理器1204,可以用于确定接收机1202接收到的OpenFlow交换机发送的上报数据包是否与老化流表中的老化流表项匹配,上报数据包为OpenFlow交换机在接收到转发数据包时,在转发数据包与保存的转发流表项未匹配成功后根据该转发数据包生成的;
发送机1208,可以用于在处理器1204确定上报数据包与老化流表中的一个老化流表项匹配时,向OpenFlow交换机下发匹配的老化流表项,以便OpenFlow交换机根据匹配的老化流表项转发该转发数据包。
在本实施例中的第一种可能的实现方式中,发送机1208,还可以用于在OpenFlow交换机和OpenFlow控制器之间的安全通道恢复正常时,将老化流表中已下发给OpenFlow交换机的各老化流表项上报给OpenFlow控制器,以便OpenFlow控制器确定在安全通道发生故障期间虚拟交换机代理下发给OpenFlow交换机的各老化流表项是否全部被OpenFlow交换机接收到,若各老化流表项没有全部被OpenFlow交换机接收到,则向OpenFlow交换机重新下发尚未被OpenFlow交换机接收到的老化流表项。
在本实施例中的第二种可能的实现方式中,处理器1204,还可以用于在上报数据包与老化流表中的老化流表项均不匹配时,确定虚拟交换机是否保存有上报数据包;
处理器1204,还可以用于确定虚拟交换机未保存有上报数据包时,保存上报数据包。
在本实施例中的第三种可能的实现方式中,发送机1208,还可以用于在OpenFlow交换机和OpenFlow控制器之间的安全通道恢复正常时,将虚拟交换机中保存的各上报数据包上报给OpenFlow控制器,以便OpenFlow控制器向OpenFlow交换机下发与各上报数据包对应的流表项。
在本实施例中的第四种可能的实现方式中,处理器1204,还可以用于在虚拟交换机保存有上报数据包时,将上报数据包的计数值递增,所述计数值表示所述虚拟交换机接收到所述上报数据包的次数;
发送机1208,还可以用于:
将虚拟交换机中保存的各上报数据包按照各上报数据包的计数值大小依次上报给OpenFlow控制器,以便OpenFlow控制器根据接收到虚拟交换机上报的各上报数据包的顺序依次向OpenFlow交换机下发与各上报数据包对应的流表项。
综上所述,本发明实施例中提供的虚拟交换机,通过在OpenFlow交换机和OpenFlow控制器之间的安全通道发生故障期间,虚拟交换机将接收的OpenFlow交换机发送的上报数据包与预存的老化流表项进行匹配,在匹配成功的情况下,向OpenFlow交换机下发匹配的老化流表项,以便OpenFlow交换机根据老化流表项转发数据包;解决了现有技术中在OpenFlow控制器与对应的OpenFlow交换机之间的安全通道出现故障期间,如果OpenFlow交换机中根据老化机制删除了某些流表项,则后续接收到的对应这些流表项的转发数据包无法进行转发,因此OpenFlow交换机最后会失去数据交换功能的问题;由于虚拟交换机中保存了在安全通道发生故障期间OpenFlow交换机在老化流程中删除的老化流表项,因此虚拟交换机可以为代替OpenFlow控制器OpenFlow交换机在后续接收到的同流的转发数据包下发对应的老化流表项,以便OpenFlow交换机根据虚拟交换机下发的老化流表项转发同流的转发数据包,达到了可以在OpenFlow控制器与对应的OpenFlow交换机之间的安全通道出现故障期间,保证了在已有业务流所对应的流表项老化的情况下仍旧可以继续转发已有业务流的效果。
请参见图13所示,其示出了本发明一个实施例中提供的OpenFlow控制器的结构示意图,该OpenFlow控制器1300主要以应用于图1所示实施环境中的OpenFlow控制器分片160中进行举例说明。该OpenFlow控制器1300可以包括:接收机1302、处理器1304和发送机1306,其中,处理器1304分别与接收机1302和发送机1306耦合。
接收机1302,可以用于接收虚拟交换机上报的至少一个老化流表项,至少一个老化流表项为OpenFlow交换机和OpenFlow控制器之间的安全通道发生故障时,虚拟交换机确定接收的OpenFlow交换机发送的上报数据包与老化流表中的老化流表项匹配之后,代理下发给OpenFlow交换机的匹配的老化流表项,老化流表用于保存虚拟交换机在安全通道发生故障后接收到的OpenFlow交换机上报的被OpenFlow交换机删除的老化流表项;
处理器1304,可以用于确定OpenFlow交换机中是否保存有接收机1302接收到的至少一个老化流表项;
发送机1306,可以用于在处理器1304确定OpenFlow交换机中有尚未保存的老化流表中的至少一个老化流表项时,向OpenFlow交换机重新下发尚未保存的老化流表项。
综上所述,本发明实施例中提供的OpenFlow控制器,通过在OpenFlow交换机和OpenFlow控制器之间的安全通过恢复后,OpenFlow控制器获取虚拟交换机代为下发的老化流表项,并确定虚拟交换机代为下发的老化流表项的正确性,在不正确的情况下重新向OpenFlow交换机下发老化流表项;解决了现有技术中在OpenFlow控制器与对应的OpenFlow交换机之间的安全通道出现故障期间,如果OpenFlow交换机中根据老化机制删除了某些流表项,则后续接收到的对应这些流表项的转发数据包无法进行转发,因此OpenFlow交换机最后会失去数据交换功能的问题;由于在安全通过恢复正常后,OpenFlow控制器可以对虚拟交换机代为下发的老化流表项进行检测,在某些老化流表项没有被虚拟交换机成功下发给OpenFlow交换机时,OpenFlow控制器重新下发该老化流表项,从而达到了可以保证后续同流的转发数据包在第一时间被OpenFlow交换机进行正常转发的效果。
请参见图14所示,其示出了本发明另一个实施例中提供的OpenFlow控制器的结构示意图,该OpenFlow控制器1400主要以应用于图1所示实施环境中的OpenFlow控制器分片160中进行举例说明。该OpenFlow控制器1400可以包括:接收机1402、处理器1404、存储器1406和发送机1408,其中处理器1404分别与接收机1402、存储器1406和发送机1408耦合,存储器1406中存储有至少一种计算机软件,处理器1404可以通过存储器1406存储的计算机软件进行相关的操作。
接收机1402,可以用于接收虚拟交换机上报的至少一个老化流表项,至少一个老化流表项为OpenFlow交换机和OpenFlow控制器之间的安全通道发生故障时,虚拟交换机确定接收的OpenFlow交换机发送的上报数据包与老化流表中的的老化流表项匹配之后,代理下发给OpenFlow交换机的匹配的老化流表项,老化流表用于保存虚拟交换机在安全通道发生故障后接收到的OpenFlow交换机上报的被OpenFlow交换机删除的老化流表项;
处理器1404,可以用于确定OpenFlow交换机中是否保存有接收机1402接收到的至少一个老化流表项;
发送机1408,可以用于在处理器1404确定OpenFlow交换机中有尚未保存的老化流表中的至少一个老化流表项时,向OpenFlow交换机重新下发尚未保存的老化流表项。
在本实施例中的第一种可能的实现方式中,接收机1402,还可以用于接收虚拟交换机上报的上报数据包,上报数据包为虚拟交换机在OpenFlow交换机和OpenFlow控制器之间的安全通道发生故障时接收到的OpenFlow交换机发送的与老化流表中各个老化流表项均不匹配的上报数据包;
发送机1408,还可以用于向OpenFlow交换机下发与接收机1402接收到的上报数据包对应的流表项。
在本实施例中的第二种可能的实现方式中,接收机1402,还可以用于:
接收虚拟交换机按照上报数据包的计数值大小顺序依次上报的上报数据包,各上报数据包的计数值为虚拟交换机在接收到OpenFlow交换机发送的与老化流表中的各老化流表项均不匹配的上报数据包且确定虚拟交换机中保存有上报数据包时,对各上报数据包的计数值分别递增得到的;
发送机1408,还可以用于:
根据接收上报数据包的顺序依次生成并向OpenFlow交换机下发与上报数据包对应的流表项。
综上所述,本发明实施例中提供的OpenFlow控制器,通过在OpenFlow交换机和OpenFlow控制器之间的安全通过恢复后,OpenFlow控制器获取虚拟交换机代为下发的老化流表项,并确定虚拟交换机代为下发的老化流表项的正确性,在不正确的情况下重新向OpenFlow交换机下发老化流表项;解决了现有技术中在OpenFlow控制器与对应的OpenFlow交换机之间的安全通道出现故障期间,如果OpenFlow交换机中根据老化机制删除了某些流表项,则后续接收到的对应这些流表项的转发数据包无法进行转发,因此OpenFlow交换机最后会失去数据交换功能的问题;由于在安全通过恢复正常后,OpenFlow控制器可以对虚拟交换机代为下发的老化流表项进行检测,在某些老化流表项没有被虚拟交换机成功下发给OpenFlow交换机时,OpenFlow控制器重新下发该老化流表项,从而达到了可以保证后续同流的转发数据包在第一时间被OpenFlow交换机进行正常转发的效果。
请参见图15所示,其示出了本发明一个实施例中提供的数据包转发系统的示意图,该数据包转发系统1500主要以应用于图1所示实施环境中进行举例说明。该数据包转发系统1500可以包括虚拟交换机1502、OpenFlow交换机1504和OpenFlow控制器1506,
虚拟交换机1502包括如图7或图8所描述的数据包转发装置,或为图11或图12所描述的虚拟交换机;
OpenFlow控制器1506包括图9或图10所描述的数据包转发装置,或为题13或图14所描述的OpenFlow控制器;
OpenFlow交换机1504为图7至图14中所提及的OpenFlow交换机。
综上所述,本发明实施例中提供的数据包转发系统,通过在OpenFlow交换机和OpenFlow控制器之间的安全通道发生故障期间,虚拟交换机将接收OpenFlow交换机发送的上报数据包与预存的老化流表项进行匹配,在匹配成功的情况下,虚拟交换机向OpenFlow交换机下发匹配的老化流表项,以便OpenFlow交换机根据老化流表项转发数据包;解决了现有技术中在OpenFlow控制器与对应的OpenFlow交换机之间的安全通道出现故障期间,如果OpenFlow交换机中根据老化机制删除了某些流表项,则后续接收到的对应这些流表项的转发数据包无法进行转发,因此OpenFlow交换机最后会失去数据交换功能的问题;由于虚拟交换机中保存了在安全通道发生故障期间OpenFlow交换机在老化流程中删除的老化流表项,因此虚拟交换机可以代替OpenFlow控制器为OpenFlow交换机在后续接收到的同流的转发数据包下发对应的老化流表项,以便OpenFlow交换机根据虚拟交换机下发的老化流表项转发同流的转发数据包,达到了可以在OpenFlow控制器与对应的OpenFlow交换机之间的安全通道出现故障期间,保证了在已有业务流所对应的流表项老化的情况下仍旧可以继续转发已有业务流的效果。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,可以仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (17)
1.一种数据包转发方法,应用于包含有OpenFlow交换机、OpenFlow控制器和虚拟交换机的网络中的所述虚拟交换机中,其特征在于,所述方法包括:
若所述OpenFlow交换机和所述OpenFlow控制器之间的安全通道发生故障,将接收到的所述OpenFlow交换机上报的被所述OpenFlow交换机删除的老化流表项保存到老化流表中,所述老化流表用于保存所述OpenFlow交换机在所述安全通道发生故障后删除的老化流表项;
确定接收的所述OpenFlow交换机发送的上报数据包是否与所述老化流表中的老化流表项匹配,所述上报数据包为所述OpenFlow交换机在接收到转发数据包时,在所述转发数据包与保存的转发流表项未匹配成功后根据所述转发数据包生成的;
若所述上报数据包与所述老化流表中的一个老化流表项匹配,则向所述OpenFlow交换机下发所述匹配的老化流表项,以便所述OpenFlow交换机根据所述匹配的老化流表项转发所述转发数据包。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述OpenFlow交换机和所述OpenFlow控制器之间的所述安全通道恢复正常,将所述老化流表中已下发给所述OpenFlow交换机的各老化流表项上报给所述OpenFlow控制器,以便所述OpenFlow控制器确定在所述安全通道发生故障时所述虚拟交换机代理下发给所述OpenFlow交换机的所述各老化流表项是否全部被所述OpenFlow交换机接收到,若所述各老化流表项没有全部被所述OpenFlow交换机接收到,则向所述OpenFlow交换机重新下发尚未被所述OpenFlow交换机接收到的老化流表项。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述上报数据包与所述老化流表中的老化流表项均不匹配,则确定所述虚拟交换机是否保存有所述上报数据包;
若确定所述虚拟交换机未保存有所述上报数据包,则保存所述上报数据包。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若所述OpenFlow交换机和所述OpenFlow控制器之间的所述安全通道恢复正常,将所述虚拟交换机中保存的各上报数据包上报给所述OpenFlow控制器,以便所述OpenFlow控制器向所述OpenFlow交换机下发与所述各上报数据包对应的流表项。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
若所述虚拟交换机保存有所述上报数据包,则将所述上报数据包的计数值递增,所述计数值表示所述虚拟交换机接收到所述上报数据包的次数;
所述将所述虚拟交换机中保存的各上报数据包上报给所述OpenFlow控制器,包括:
将所述虚拟交换机中保存的所述各上报数据包按照所述各上报数据包的计数值大小依次上报给所述OpenFlow控制器,以便所述OpenFlow控制器根据接收到所述虚拟交换机上报的所述各上报数据包的顺序依次向所述OpenFlow交换机下发与所述各上报数据包对应的流表项。
6.一种数据包转发方法,应用于包含有OpenFlow交换机、OpenFlow控制器和虚拟交换机的网络中的所述OpenFlow控制器中,其特征在于,所述方法包括:
接收所述虚拟交换机上报的至少一个老化流表项,所述至少一个老化流表项为所述OpenFlow交换机和所述OpenFlow控制器之间的安全通道发生故障时,所述虚拟交换机确定接收的所述OpenFlow交换机发送的上报数据包与老化流表中的老化流表项匹配之后,代理下发给所述OpenFlow交换机的所述匹配的老化流表项,所述老化流表用于保存所述虚拟交换机在所述安全通道发生故障后接收到的所述OpenFlow交换机上报的被所述OpenFlow交换机删除的老化流表项;
确定所述OpenFlow交换机中是否保存有所述至少一个老化流表项;
若所述OpenFlow交换机中有尚未保存的所述老化流表项中的至少一个老化流表项,则向所述OpenFlow交换机重新下发所述尚未保存的老化流表项。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
接收所述虚拟交换机上报的上报数据包,所述上报数据包为所述虚拟交换机在所述OpenFlow交换机和所述OpenFlow控制器之间的安全通道发生故障时接收到的所述OpenFlow交换机发送的与所述老化流表中各个老化流表项均不匹配的上报数据包;
向所述OpenFlow交换机下发与所述上报数据包对应的流表项。
8.根据权利要求7所述的方法,其特征在于,所述接收所述虚拟交换机上报的上报数据包,包括:
接收所述虚拟交换机按照所述上报数据包的计数值大小顺序依次上报的所述上报数据包,所述各上报数据包的计数值为所述虚拟交换机在接收到所述OpenFlow交换机发送的与所述老化流表中的各老化流表项均不匹配的所述上报数据包且确定所述虚拟交换机中保存有所述上报数据包时,对各所述上报数据包的计数值分别递增得到的;
所述向所述OpenFlow交换机下发与所述上报数据包对应的流表项,包括:
根据接收所述上报数据包的顺序依次生成并向所述OpenFlow交换机下发与所述上报数据包对应的流表项。
9.一种数据包转发装置,应用于包含有OpenFlow交换机、OpenFlow控制器和虚拟交换机的网络中的所述虚拟交换机中,其特征在于,所述装置包括:
第一接收模块,用于在所述OpenFlow交换机和所述OpenFlow控制器之间的安全通道发生故障时,将接收到的所述OpenFlow交换机上报的被所述OpenFlow交换机删除的老化流表项保存到老化流表中,所述老化流表用于保存所述OpenFlow交换机在所述安全通道发生故障后删除的老化流表项;
第一确定模块,用于确定所述第一接收模块接收到的所述OpenFlow交换机发送的上报数据包是否与所述老化流表中的老化流表项匹配,所述上报数据包为所述OpenFlow交换机在接收到转发数据包时,在所述转发数据包与保存的转发流表项未匹配成功后根据所述转发数据包生成的;
第一下发模块,用于在所述上报数据包与所述老化流表中的一个老化流表项匹配时,向所述OpenFlow交换机下发所述匹配的老化流表项,以便所述OpenFlow交换机根据所述匹配的老化流表项转发所述转发数据包。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
第一上报模块,用于在所述OpenFlow交换机和所述OpenFlow控制器之间的所述安全通道恢复正常时,将所述老化流表中已下发给所述OpenFlow交换机的各老化流表项上报给所述OpenFlow控制器,以便所述OpenFlow控制器确定在所述安全通道发生故障时所述虚拟交换机代理下发给所述OpenFlow交换机的所述各老化流表项是否全部被所述OpenFlow交换机接收到,若所述各老化流表项没有全部被所述OpenFlow交换机接收到,则向所述OpenFlow交换机重新下发尚未被所述OpenFlow交换机接收到的老化流表项。
11.根据权利要求9所述的装置,其特征在于,所述装置还包括:
第二确定模块,用于在所述上报数据包与所述老化流表中的老化流表项均不匹配时,确定所述虚拟交换机是否保存有所述上报数据包;
保存模块,用于在确定所述虚拟交换机未保存有所述上报数据包时,保存所述上报数据包。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:
第二上报模块,用于在所述OpenFlow交换机和所述OpenFlow控制器之间的所述安全通道恢复正常时,将所述虚拟交换机中保存的各上报数据包上报给所述OpenFlow控制器,以便所述OpenFlow控制器向所述OpenFlow交换机下发与所述各上报数据包对应的流表项。
13.根据权利要求12所述的装置,其特征在于,所述装置还包括:
累加模块,用于在所述虚拟交换机保存有所述上报数据包时,将所述上报数据包的计数值递增,所述计数值表示所述虚拟交换机接收到所述上报数据包的次数;
所述第二上报模块,还用于:
将所述虚拟交换机中保存的所述各上报数据包按照所述各上报数据包的计数值大小依次上报给所述OpenFlow控制器,以便所述OpenFlow控制器根据接收到所述虚拟交换机上报的所述各上报数据包的顺序依次向所述OpenFlow交换机下发与所述各上报数据包对应的流表项。
14.一种数据包转发装置,应用于包含有OpenFlow交换机、OpenFlow控制器和虚拟交换机的网络中的所述OpenFlow控制器中,其特征在于,所述装置包括:
第二接收模块,用于接收所述虚拟交换机上报的至少一个老化流表项,所述至少一个老化流表项为所述OpenFlow交换机和所述OpenFlow控制器之间的安全通道发生故障时,所述虚拟交换机确定接收的所述OpenFlow交换机发送的上报数据包与老化流表中的老化流表项匹配之后,代理下发给所述OpenFlow交换机的所述匹配的老化流表项,所述老化流表用于保存所述虚拟交换机在所述安全通道发生故障后接收到的所述OpenFlow交换机上报的被所述OpenFlow交换机删除的老化流表项;
第三确定模块,用于确定所述OpenFlow交换机中是否保存有所述第二接收模块接收到的至少一个所述老化流表项;
第二下发模块,用于在所述OpenFlow交换机中有尚未保存的所述老化流表中的至少一个老化流表项时,向所述OpenFlow交换机重新下发所述尚未保存的老化流表项。
15.根据权利要求14所述的装置,其特征在于,所述装置还包括:
第三接收模块,用于接收所述虚拟交换机上报的上报数据包,所述上报数据包为所述虚拟交换机在所述OpenFlow交换机和所述OpenFlow控制器之间的安全通道发生故障时接收到的所述OpenFlow交换机发送的与所述老化流表中各个老化流表项均不匹配的上报数据包;
第三下发模块,用于向所述OpenFlow交换机下发与所述第三接收模块接收到的所述上报数据包对应的流表项。
16.根据权利要求15所述的装置,其特征在于,所述第三接收模块,还用于:
接收所述虚拟交换机按照所述上报数据包的计数值大小顺序依次上报的所述上报数据包,所述各上报数据包的计数值为所述虚拟交换机在接收到所述OpenFlow交换机发送的与所述老化流表中的所述老化流表项均不匹配的所述上报数据包且确定所述虚拟交换机中保存有所述上报数据包时,对各所述上报数据包的计数值分别递增得到的;
所述第三下发模块,还用于:
根据接收所述上报数据包的顺序依次生成并向所述OpenFlow交换机下发与所述上报数据包对应的流表项。
17.一种数据包转发系统,其特征在于,所述系统包括虚拟交换机、OpenFlow交换机和OpenFlow控制器,
所述虚拟交换机包括如权利要求9至13中任一所述的数据包转发装置;
所述OpenFlow控制器包括如权利要求14至16任一所述的数据包转发装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410055766.XA CN104852867B (zh) | 2014-02-19 | 2014-02-19 | 数据包转发方法、装置及系统 |
PCT/CN2014/092543 WO2015124009A1 (zh) | 2014-02-19 | 2014-11-28 | 数据包转发方法、装置及系统 |
US15/240,232 US10135725B2 (en) | 2014-02-19 | 2016-08-18 | Data packet forwarding method, apparatus, and system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410055766.XA CN104852867B (zh) | 2014-02-19 | 2014-02-19 | 数据包转发方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104852867A CN104852867A (zh) | 2015-08-19 |
CN104852867B true CN104852867B (zh) | 2018-02-06 |
Family
ID=53852229
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410055766.XA Active CN104852867B (zh) | 2014-02-19 | 2014-02-19 | 数据包转发方法、装置及系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10135725B2 (zh) |
CN (1) | CN104852867B (zh) |
WO (1) | WO2015124009A1 (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105357124B (zh) * | 2015-11-22 | 2018-08-17 | 华中科技大学 | 一种MapReduce带宽优化方法 |
US10484282B2 (en) * | 2016-01-12 | 2019-11-19 | International Business Machines Corporation | Interconnecting multiple separate openflow domains |
FR3048574A1 (fr) | 2016-03-07 | 2017-09-08 | Orange | Selection d'une instanciation de tranche de reseau pour la transmission de paquets montants |
CN106302265B (zh) * | 2016-07-21 | 2019-08-06 | 新华三技术有限公司 | 报文转发方法及装置 |
CN106453099B (zh) * | 2016-10-21 | 2021-05-14 | 新华三技术有限公司 | 一种流表信息的恢复方法及装置 |
CN107171884A (zh) * | 2017-03-31 | 2017-09-15 | 武汉绿色网络信息服务有限责任公司 | 一种实现vxlan虚拟网络中流稳定性的方法 |
CN107395444A (zh) * | 2017-09-06 | 2017-11-24 | 郑州云海信息技术有限公司 | 一种基于sdn控制器故障恢复系统及方法 |
CN109728932B (zh) * | 2017-10-31 | 2021-09-28 | 中兴通讯股份有限公司 | Sdn的设置方法、控制器、交换机及计算机可读存储介质 |
CN108111420B (zh) * | 2017-12-14 | 2021-05-18 | 迈普通信技术股份有限公司 | 一种流表项管理方法、装置、电子设备及存储介质 |
CN108924047B (zh) * | 2018-06-20 | 2021-10-12 | 新华三技术有限公司 | 一种流表项存储方法、装置、交换机和计算机可读介质 |
CN109861916B (zh) * | 2018-10-31 | 2021-08-31 | 深圳向云科技有限公司 | 一种数据处理方法及相关设备 |
CN111404810B (zh) * | 2019-01-02 | 2022-11-15 | 中国移动通信有限公司研究院 | openflow流表恢复方法、装置、电子设备及介质 |
CN111478814B (zh) * | 2020-04-09 | 2022-05-17 | 中国电子科技集团公司第五十八研究所 | 一种抗干扰RapidIO交换器数据交换实现方法 |
CN114338119A (zh) * | 2021-12-23 | 2022-04-12 | 中国电信股份有限公司 | 网络隔离方法和系统及代理设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011162215A1 (ja) * | 2010-06-23 | 2011-12-29 | 日本電気株式会社 | 通信システム、制御装置、ノードの制御方法およびプログラム |
CN102946365A (zh) * | 2012-11-09 | 2013-02-27 | 清华大学 | 一种基于软件定义网络的保持流表更新一致性的方法 |
CN103401784A (zh) * | 2013-07-31 | 2013-11-20 | 华为技术有限公司 | 一种接收报文的方法及开放流交换机 |
CN103401794A (zh) * | 2013-07-17 | 2013-11-20 | 国家电网公司 | 一种面向大规模应用的软件定义网络控制优化方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9722917B2 (en) * | 2013-02-26 | 2017-08-01 | Telefonaktiebolaget Lm Ericsson (Publ) | Traffic recovery in openflow networks |
-
2014
- 2014-02-19 CN CN201410055766.XA patent/CN104852867B/zh active Active
- 2014-11-28 WO PCT/CN2014/092543 patent/WO2015124009A1/zh active Application Filing
-
2016
- 2016-08-18 US US15/240,232 patent/US10135725B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011162215A1 (ja) * | 2010-06-23 | 2011-12-29 | 日本電気株式会社 | 通信システム、制御装置、ノードの制御方法およびプログラム |
CN102946365A (zh) * | 2012-11-09 | 2013-02-27 | 清华大学 | 一种基于软件定义网络的保持流表更新一致性的方法 |
CN103401794A (zh) * | 2013-07-17 | 2013-11-20 | 国家电网公司 | 一种面向大规模应用的软件定义网络控制优化方法 |
CN103401784A (zh) * | 2013-07-31 | 2013-11-20 | 华为技术有限公司 | 一种接收报文的方法及开放流交换机 |
Also Published As
Publication number | Publication date |
---|---|
WO2015124009A1 (zh) | 2015-08-27 |
CN104852867A (zh) | 2015-08-19 |
US10135725B2 (en) | 2018-11-20 |
US20160359736A1 (en) | 2016-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104852867B (zh) | 数据包转发方法、装置及系统 | |
CN105052087B (zh) | 一种基于流表的表项寻址方法、交换机及控制器 | |
CN105306585B (zh) | 一种多数据中心的数据同步方法 | |
CN103795570B (zh) | 环形拓扑的堆叠交换机系统的单播报文恢复方法及装置 | |
CN104717098B (zh) | 一种数据处理方法及装置 | |
CN107480990A (zh) | 区块链记账方法及装置 | |
CN103957155B (zh) | 报文传输方法、装置及互联接口 | |
CN102098226A (zh) | 通信装置及通信系统 | |
CN106301952A (zh) | 一种sdn数据平面链路备份方法及装置 | |
CN101013999A (zh) | 数据通信系统及其方法 | |
CN106375105B (zh) | 一种确定路径故障的方法、控制器、交换机和系统 | |
CN103053133B (zh) | 一种基于标签的测量方法,装置和系统 | |
CN104541481B (zh) | 一种处理用户报文的方法及转发面设备 | |
CN104580107B (zh) | 恶意攻击检测方法及控制器 | |
CN105933253A (zh) | 一种sdn网络下交换机配置恢复方法 | |
CN103457770A (zh) | 网络事务控制方法及执行方法及网络控制器及转发设备 | |
CN105915467A (zh) | 一种面向软件定义的数据中心网络流量均衡方法及装置 | |
CN105308904A (zh) | 一种oam报文处理方法、网络设备和网络系统 | |
CN107204924A (zh) | 链路发现方法及装置 | |
CN106301997A (zh) | 网关设备响应网络连通性方法和装置 | |
CN105933453A (zh) | 一种传输数据的方法和系统 | |
CN106789387A (zh) | 一种用于sdn的链路检测方法及装置 | |
CN107749826A (zh) | 一种数据包转发方法及系统 | |
CN106712997A (zh) | 表项恢复的方法、设备及系统 | |
CN103414591B (zh) | 一种端口故障恢复时的快速收敛方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |