CN104869064B - 一种流表更新方法及装置 - Google Patents
一种流表更新方法及装置 Download PDFInfo
- Publication number
- CN104869064B CN104869064B CN201410060892.4A CN201410060892A CN104869064B CN 104869064 B CN104869064 B CN 104869064B CN 201410060892 A CN201410060892 A CN 201410060892A CN 104869064 B CN104869064 B CN 104869064B
- Authority
- CN
- China
- Prior art keywords
- flow table
- client
- table item
- packet
- interchanger
- 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
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明的实施例提供一种流表更新方法及装置,涉及通信领域,能够在流表已满的状态下更新流表,从而满足客户对流表资源的需求,以及实现流表资源的公平分配。该方法可以包括:根据第一客户端的信息和网络创建信息,确定与第一客户端的信息和网络创建信息对应的第一客户端的流表项数目的阈值;获取交换机上报的数据包;生成第一客户端的与数据包对应的第一流表项;若流表已满,且流表中的第一客户端的流表项数目小于第一客户端的流表项数目的阈值,则生成第一指示;下发第一流表项和第一指示至交换机,以使得交换机根据第一指标将流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为第一流表项。
Description
技术领域
本发明涉及通信领域,尤其涉及一种流表更新方法及装置。
背景技术
随着网络技术的发展,为了提高网络的配置效率,SDN(Software DefinedNetwork,软件定义网络)应运而生。SDN是将网络中的交换机或路由器的控制功能分离出来,并交由控制器完成,而该交换机或路由器,只具有数据转发功能,从而实现网络控制层面和数据层面的分离。
现有技术中,交换机接收到数据包之后,交换机可将该数据包与交换机中保存的流表中的流表项依次进行匹配,若该数据包与该流表中的所有流表项均匹配失败,交换机则可将该数据包发送至控制器,以使得控制器可根据该数据包,确定与该数据包对应的流表项,并将该流表项发送至交换机,从而交换机可将该流表项插入该流表中,以更新该流表,并根据该流表项转发该数据包。
然而,上述流表更新过程中,若流表已满,即流表资源已被所有客户端的多个流表项全部占用,则交换机无法再在该流表中插入与客户端发送的数据包对应的其他流表项,即交换机无法更新该流表,进而无法满足客户端对流表资源的需求,以及无法实现流表资源的公平分配。
发明内容
本发明的实施例提供一种流表更新方法及装置,能够在流表已满的状态下更新流表,从而满足客户端对流表资源的需求,以及实现流表资源的公平分配。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明实施例提供一种流表更新方法,包括:
根据第一客户端的信息和网络创建信息,确定与所述第一客户端的信息和所述网络创建信息对应的所述第一客户端的流表项数目的阈值,其中,所述第一客户端的信息包括所述第一客户端的序列号ID,所述网络创建信息包括所述第一客户端所在网络的ID和所述第一客户端所在网络的所有客户端的媒体访问控制MAC地址;
获取交换机上报的数据包,所述数据包是由所述第一客户端发送给所述交换机的,并且所述数据包与所述交换机中保存的流表中的所述第一客户端的各个流表项匹配失败;
生成所述第一客户端的与所述数据包对应的第一流表项;
若所述流表已满,且所述流表中的所述第一客户端的流表项数目小于所述第一客户端的流表项数目的阈值,则生成第一指示,所述第一指示用于指示所述交换机将所述流表中流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为所述第一流表项,其中,所述溢值为所述第二客户端的流表项数目超出所述第二客户端的流表项数目的阈值的数目;
下发所述第一流表项和所述第一指示至所述交换机,以使得所述交换机根据所述第一指示将所述流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为所述第一流表项。
在第一方面的第一种可能的实现方式中,所述根据第一客户端的信息和网络创建信息,确定与所述第一客户端的信息和所述网络创建信息对应的所述第一客户端的流表项数目的阈值,具体包括:
根据所述第一客户端的信息和所述网络创建信息,确定与所述第一客户端的信息和所述网络创建信息对应的所述第一客户端的网络级别;
根据所述第一客户端的网络级别,确定与所述第一客户端的网络级别对应的所述第一客户端的流表项数目的阈值。
结合前述的第一方面或第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述获取交换机上报的数据包之后,生成第一指示之前,所述方法还包括:
统计所述流表中的所述第一客户端的流表项数目。
结合前述的第一方面或第一方面的第一种可能的实现方式至第二种可能的实现方式中的任一种实现方式,在第三种可能的实现方式中,所述生成第一指示,具体包括:
确定所述流表中的各个客户端的流表项数目的溢值;
根据所述各个客户端的流表项数目的溢值,确定流表项数目的溢值最大的所述至少一个第二客户端;
确定所述至少一个第二客户端的任意一个流表项;
根据所述至少一个第二客户端的任意一个流表项,生成与所述至少一个第二客户端的任意一个流表项对应的所述第一指示。
结合前述的第一方面或第一方面的第一种可能的实现方式至第三种可能的实现方式,在第四种可能的实现方式中,所述生成所述第一客户端的与所述数据包对应的第一流表项,具体包括:
根据所述数据包,确定所述数据包的转发路径;
根据所述数据包和所述数据包的转发路径,生成与所述数据包对应的所述第一流表项。
结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述根据所述数据包,确定所述数据包的转发路径,具体包括:
获取所述数据包的地址信息,其中,所述数据包的地址信息包括MAC地址,或MAC地址和互联网协议IP地址;
根据所述数据包的地址信息,确定与所述数据包的地址信息对应的所述数据包的转发路径。
结合第一方面的第四种可能的实现方式,在第六种可能的实现方式中,所述根据所述数据包和所述数据包的转发路径,生成所述第一流表项,具体包括:
获取所述数据包的包头信息;
根据所述数据包的包头信息,确定与所述数据包的包头信息对应的所述第一流表项的匹配域;
根据所述第一流表项的匹配域和所述数据包的转发路径,生成与所述数据包对应的所述第一流表项。
结合前述的第一方面或第一方面的第一种可能的实现方式至第二种可能的实现方式中的任一种实现方式,在第七种可能的实现方式中,所述方法还包括:
若所述流表已满,且所述流表中的所述第一客户端的流表项数目大于或等于所述第一客户端的流表项数目的阈值,则提示错误信息。
第二方面,本发明实施例提供一种流表更新方法,包括:
接收来自第一客户端的数据包;
若所述数据包与流表中的所述第一客户端的各个流表项匹配失败,则发送所述数据包至控制设备,以使得所述控制设备根据所述数据包,生成所述第一客户端的与所述数据包对应的第一流表项,并当所述流表已满,且所述流表中的所述第一客户端的流表项数目小于所述第一客户端的流表项数目的阈值时,生成第一指示;
接收所述控制设备下发的所述第一流表项和所述第一指示,所述第一指示用于指示将所述流表中流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为所述第一流表项;
根据所述第一指示,将所述流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为所述第一流表项。
在第二方面的第一种可能的实现方式中,所述根据所述第一指示,将所述流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为所述第一流表项,具体包括:
根据所述第一指示,删除所述流表项数目的溢值最大的至少一个第二客户端的任意一个流表项;
将所述第一流表项插入所述流表中。
结合前述的第二方面或第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述接收来自第一客户端的数据包之后,发送所述数据包至控制设备之前,所述方法还包括:
将所述数据包与所述流表中的所述第一客户端的各个流表项进行匹配。
结合前述的第二方面或第二方面的第一种可能的实现方式至第二种可能的实现方式中的任一种实现方式,在第三种可能的实现方式中,所述接收所述控制设备下发的所述第一流表项和所述第一指示之后,所述方法还包括:
根据所述第一流表项,转发所述数据包。
在第二方面的第四种可能的实现方式中,所述方法还包括:
若所述数据包与所述流表中的所述第一客户端的第二流表项匹配成功,则根据所述第二流表项转发所述数据包。
第三方面,本发明实施例提供一种控制设备,包括:
确定单元,用于根据第一客户端的信息和网络创建信息,确定与所述第一客户端的信息和所述网络创建信息对应的所述第一客户端的流表项数目的阈值,其中,所述第一客户端的信息包括所述第一客户端的序列号ID,所述网络创建信息包括所述第一客户端所在网络的ID和所述第一客户端所在网络的所有客户端的媒体访问控制MAC地址;
获取单元,用于获取交换机上报的数据包,所述数据包是由所述第一客户端发送给所述交换机的,并且所述数据包与所述交换机中保存的流表中的所述第一客户端的各个流表项匹配失败;
生成单元,用于生成所述第一客户端的与所述获取单元获取的所述数据包对应的第一流表项,以及若所述流表已满,且所述流表中的所述第一客户端的流表项数目小于所述确定单元确定的所述第一客户端的流表项数目的阈值,则生成第一指示,所述第一指示用于指示所述交换机将所述流表中流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为所述第一流表项,其中,所述溢值为所述第二客户端的流表项数目超出所述第二客户端的流表项数目的阈值的数目;
发送单元,用于下发所述生成单元生成的所述第一流表项和所述第一指示至所述交换机,以使得所述交换机根据所述第一指示将所述流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为所述第一流表项。
在第三方面的第一种可能的实现方式中,
所述确定单元,具体用于根据所述第一客户端的信息和所述网络创建信息,确定与所述第一客户端的信息和所述网络创建信息对应的所述第一客户端的网络级别,并根据所述第一客户端的网络级别,确定与所述第一客户端的网络级别对应的所述第一客户端的流表项数目的阈值。
结合前述的第三方面或第三方面的第一种可能的实现方式,在第二种可能的实现方式中,所述控制设备还包括统计单元,
所述统计单元,用于在所述获取单元获取到所述交换机上报的所述数据包之后,所述生成单元生成所述第一指示之前,统计所述流表中的所述第一客户端的流表项数目。
结合前述的第三方面或第三方面的第一种可能的实现方式至第二种可能的实现方式中的任一种实现方式,在第三种可能的实现方式中,
所述确定单元,具体用于确定所述流表中的各个客户端的流表项数目的溢值,并根据所述各个客户端的流表项数目的溢值,确定流表项数目的溢值最大的所述至少一个第二客户端,以及确定所述至少一个第二客户端的任意一个流表项;
所述生成单元,具体用于根据所述确定单元确定的所述至少一个第二客户端的任意一个流表项,生成与所述至少一个第二客户端的任意一个流表项对应的所述第一指示。
结合前述的第三方面或第三方面的第一种可能的实现方式至第三种可能的实现方式中的任一种实现方式,在第四种可能的实现方式中,
所述确定单元,具体用于根据所述获取单元获取的所述数据包,确定所述数据包的转发路径;
所述生成单元,具体用于根据所述数据包和所述确定单元确定的所述数据包的转发路径,生成与所述数据包对应的所述第一流表项。
结合第三方面的第四种可能的实现方式,在第五种可能的实现方式中,
所述获取单元,具体用于获取所述数据包的地址信息,其中,所述数据包的地址信息包括MAC地址,或MAC地址和互联网协议IP地址;
所述确定单元,具体用于根据所述获取单元获取的所述数据包的地址信息,确定与所述数据包的地址信息对应的所述数据包的转发路径。
结合第三方面的第四种可能的实现方式,在第六种可能的实现方式中,
所述获取单元,具体用于获取所述数据包的包头信息;
所述确定单元,具体用于根据所述获取单元获取的所述数据包的包头信息,确定与所述数据包的包头信息对应的所述第一流表项的匹配域;
所述生成单元,具体用于根据所述确定单元确定的所述第一流表项的匹配域和所述数据包的转发路径,生成与所述数据包对应的所述第一流表项。
结合前述的第三方面或第三方面的第一种可能的实现方式至第二种可能的实现方式中的任一种实现方式,在第七种可能的实现方式中,所述控制设备还包括提示单元,
所述提示单元,用于若所述流表已满,且所述统计单元统计的所述第一客户端的流表项数目大于或等于所述第一客户端的流表项数目的阈值,则提示错误信息。
第四方面,本发明实施例提供一种交换机,包括:
接收单元,用于接收来自第一客户端的数据包;
发送单元,用于若所述接收单元接收的所述数据包与流表中的所述第一客户端的各个流表项匹配失败,则发送所述数据包至控制设备,以使得所述控制设备根据所述数据包,生成所述第一客户端的与所述数据包对应的第一流表项,并当所述流表已满,且所述流表中的所述第一客户端的流表项数目小于所述第一客户端的流表项数目的阈值时,生成第一指示;
所述接收单元,还用于接收所述控制设备下发的所述第一流表项和所述第一指示,所述第一指示用于指示将所述流表中流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为所述第一流表项;
替换单元,用于根据所述接收单元接收的所述第一指示,将所述流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为所述接收单元接收的所述第一流表项。
在第四方面的第一种可能的实现方式中,
所述替换单元,具体用于根据所述接收单元接收的所述第一指示,删除所述流表项数目的溢值最大的至少一个第二客户端的任意一个流表项,并将所述第一流表项插入所述流表中。
结合前述的第四方面或第四方面的第一种可能的实现方式,在第二种可能的实现方式中,所述交换机还包括匹配单元,
所述匹配单元,用于在所述接收单元接收来自所述第一客户端的所述数据包之后,所述发送单元发送所述数据包至所述控制设备之前,将所述数据包与所述流表中的所述第一客户端的各个流表项进行匹配。
结合前述的第四方面或第四方面的第一种可能的实现方式至第二种可能的实现方式中的任一种实现方式,在第三种可能的实现方式中,
所述发送单元,还用于在所述接收单元接收到所述控制设备下发的所述第一流表项和所述第一指示之后,根据所述第一流表项,转发所述数据包。
在第四方面的第四种可能的实现方式中,
所述发送单元,还用于若所述接收单元接收的所述数据包与所述流表中的所述第一客户端的第二流表项匹配成功,则根据所述第二流表项,转发所述数据包。
本发明的实施例提供一种流表更新方法及装置,通过根据第一客户端的信息和网络创建信息,确定与第一客户端的信息和网络创建信息对应的第一客户端的流表项数目的阈值,其中,第一客户端的信息包括第一客户端的ID,网络创建信息包括第一客户端所在网络的ID和第一客户端所在网络的所有客户端的MAC地址,并获取交换机上报的数据包,该数据包是由第一客户端发送给交换机的,并且该数据包与交换机中保存的流表中的第一客户端的各个流表项匹配失败,且生成第一客户端的与数据包对应的第一流表项,若流表已满,且流表中的第一客户端的流表项数目小于第一客户端的流表项数目的阈值,则生成第一指示,其中,第一指示用于指示交换机将流表中流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为第一流表项,其中,该溢值为第二客户端的流表项数目超出第二客户端的流表项数目的阈值的数目,以及下发第一流表项和第一指示至交换机,以使得交换机根据第一指示将流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为第一流表项。通过该方案,在流表已满,且流表中的该客户端的流表项数目未达到该客户端的流表项数目的阈值的情况下,控制设备可指示交换机将流表项数目的溢值最大的至少一个其他客户端的任意一个流表项替换为该客户端的与该客户端发送的数据包对应的流表项,从而达到采用动态调整策略更新流表的目的,因此,能够在流表已满的状态下更新流表,从而满足客户端对流表资源的需求,以及实现流表资源的公平分配。
附图说明
图1为本发明实施例提供的一种流表更新方法的流程图一;
图2为本发明实施例提供的一种流表更新方法的流程图二;
图3为本发明实施例提供的一种流表更新方法的流程图三;
图4为本发明实施例提供的控制设备生成第一流表项的流程图;
图5为本发明实施例提供的控制设备的结构示意图一;
图6为本发明实施例提供的控制设备的结构示意图二;
图7为本发明实施例提供的控制设备的结构示意图三;
图8为本发明实施例提供的交换机的结构示意图一;
图9为本发明实施例提供的交换机的结构示意图二;
图10为本发明实施例提供的控制设备的结构示意图四;
图11为本发明实施例提供的交换机的结构示意图三。
具体实施方式
下面结合附图对本发明实施例提供的一种流表更新方法及装置进行详细地描述。
实施例一
本发明实施例提供一种流表更新方法,涉及控制设备侧,如图1所示,该方法可以包括:
S101、控制设备根据第一客户端的信息和网络创建信息,确定与第一客户端的信息和网络创建信息对应的第一客户端的流表项数目的阈值,其中,第一客户端的信息包括第一客户端的序列号ID(Identity,序列号),网络创建信息包括第一客户端所在网络的ID和第一客户端所在网络的所有客户端的MAC(Media Access Control,媒体访问控制)地址。
示例性的,若源客户端,即第一客户端需发送数据包至目标客户端,第一客户端可首先发送该第一客户端的信息和网络创建信息至控制设备,即控制设备可获取第一客户端的信息和网络创建信息,控制设备获取到第一客户端的信息和网络创建信息之后,控制设备可根据该第一客户端的信息和该网络创建信息,确定与第一客户端的信息和网络创建信息对应的第一客户端的流表项数目的阈值,其中,第一客户端的信息包括第一客户端的序列号ID,网络创建信息包括第一客户端所在网络的ID和第一客户端所在网络的所有客户端的MAC地址。
需要说明的是,流表项为Openflow协议中的交换机对数据包进行处理的规则,也称为转发规则,该规则可以为用户自定义的规则或预先设定的规则。流表项可以包括:匹配域/包头域、计数器项和动作项三项组成,其中,匹配域/包头域可以用于与数据包进行匹配,计数器项可以用于统计数据包的个数,动作项可以用于按照匹配域/包头域与数据包匹配的结果,对数据包进行转发或丢弃数据包,若不对该动作项进行定义,则数据包默认为被丢弃。
S102、控制设备获取交换机上报的数据包,其中,该数据包是由第一客户端发送给交换机的,并且该数据包与交换机中保存的流表中的第一客户端的各个流表项匹配失败。
第一客户端发送数据包至交换机之后,交换机可对该数据包进行处理之后,将该数据包发送至控制设备,即控制设备可获取交换机上报的数据包,其中,该数据包是由第一客户端发送给交换机的,并且该数据包与交换机中保存的流表中的第一客户端的各个流表项匹配失败。
进一步地,第一客户端发送该数据包至交换机后,交换机可将该数据包与交换机中保存的流表中的第一客户端的各个流表项进行匹配,若该数据包与交换机中保存的流表中的第一客户端的各个流表项均匹配失败后,交换机则将该数据包发送至控制设备。
具体的,若该数据包与交换机中保存的流表中的第一客户端的各个流表项均匹配失败,交换机可将该数据包与匹配失败消息进行封装,并将封装后的该数据包与该匹配失败消息作为一个数据包发送至控制设备,控制设备可通过匹配失败消息获知数据包与交换机中保存的流表中的第一客户端的各个流表项均匹配失败,此时,控制设备可从封装后的数据包和匹配失败消息中获取到交换机上报的数据包。
需要说明的是,本发明不限制S101和S102的执行顺序,即本发明可以先执行S101后执行S102;也可以先执行S102后执行S101;还可以同时执行S101和S102。
S103、控制设备生成第一客户端的与数据包对应的第一流表项。
控制设备获取到交换机上报的数据包之后,控制设备可根据该数据包,生成第一客户端的与该数据包对应的第一流表项。
需要说明的是,控制设备获取到的数据包中可以包括MAC地址,或MAC地址和IP(Internet Protocol,互联网协议)地址,具体的可以包括以下两种情况:
(1)控制设备获取到的数据包中可以包括源客户端的MAC地址和目标客户端的MAC地址。
具体的,若控制设备获取到的数据包中包括源客户端的MAC地址和目标客户端的MAC地址,控制设备可根据该源客户端的MAC地址、目标客户端的MAC地址以及该数据包的包头信息,生成第一流表项。
(2)控制设备获取到的数据包中可以包括源客户端的MAC地址、目标客户端的MAC地址、源客户端的IP地址和目标客户端的IP地址。
具体的,若控制设备获取到的数据包中可以包括源客户端的MAC地址、目标客户端的MAC地址、源客户端的IP地址和目标客户端的IP地址。控制设备可根据该源客户端的MAC地址、目标客户端的MAC地址以及该数据包的包头信息,生成第一流表项;控制设备也可根据该源客户端的IP地址、目标客户端的IP地址以及该数据包的包头信息,生成第一流表项。
进一步地,控制设备获取到的数据包中还可以包括发送该数据包的端口号和VLAN(Virtual Local Area Network,虚拟局域网)号等,控制设备也可以根据该数据包中的发送该数据包的端口号和VLAN号中的至少一项生成第一流表项,本发明不做限制。
关于控制设备根据该数据包生成第一流表项的具体过程将在后续实施例中进行详细地说明。
S104、若流表已满,且流表中的第一客户端的流表项数目小于第一客户端的流表项数目的阈值,则控制设备生成第一指示,其中,第一指示用于指示交换机将流表中流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为第一流表项,其中,该溢值为第二客户端的流表项数目超出第二客户端的流表项数目的阈值的数目。
控制设备生成第一流表项之后,控制设备可判断流表的状态,并将流表中的第一客户端的流表项数目与第一客户端的流表项数目的阈值进行比较,若流表已满,且流表中的第一客户端的流表项数目小于第一客户端的流表项数目的阈值,则控制设备可生成第一指示,其中,该第一指示用于指示交换机将流表中流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为第一流表项,其中,该溢值为第二客户端的流表项数目超出第二客户端的流表项数目的阈值的数目。
具体的,控制设备在判断流表的状态时,当流表已满时,交换机可发送流表已满消息至控制设备,即控制设备可以接收到来自交换机的流表已满消息,从而控制设备可根据该流表已满消息,获知流表的状态。相反的,若流表未满,交换机则无需发送任何消息至控制设备,从而交换机可直接根据控制设备的指示,执行相应的操作。
进一步地,第二客户端的溢值为第二客户端的流表项数目与第二客户端的流表项数目的阈值之差,具体的,若第二客户端的流表项数目未超过该第二客户端的流表项数目的阈值,即第二客户端的流表项数目小于该第二客户端的流表项数目的阈值,则第二客户端的溢值为零;若第二客户端的流表项数目超过该第二客户端的流表项数目的阈值,即第二客户端的流表项数目大于该第二客户端的流表项数目的阈值,则第二客户端的溢值大于零,并且第二客户端的溢值为第二客户端的流表项数目减去第二客户端的流表项数目的阈值;若第二客户端的流表项数目与该第二客户端的流表项数目的阈值相等,则第二客户端的溢值为零。
S105、控制设备下发第一流表项和第一指示至交换机,以使得交换机根据第一指示将流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为第一流表项。
控制设备生成第一流表项和第一指示之后,控制设备可下发该第一流表项和该第一指示至交换机,以使得交换机可根据该第一指示将流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为该第一流表项。
本发明实施例还提供一种流表更新方法,涉及交换机侧,如图2所示,该方法可以包括:
S201、交换机接收来自第一客户端的数据包。
示例性的,若源客户端,即第一客户端需发送数据包至目标客户端,第一客户端可先发送数据包至交换机,即交换机可接收来自第一客户端的数据包。
S202、若数据包与流表中的第一客户端的各个流表项匹配失败,则交换机发送数据包至控制设备,以使得控制设备根据数据包,生成第一客户端的与数据包对应的第一流表项,并且当流表已满,且流表中的第一客户端的流表项数目小于第一客户端的流表项数目的阈值时,生成第一指示。
交换机接收到来自第一客户端的数据包之后,交换机需将该数据包与交换机中保存的流表中的第一客户端的各个流表项进行匹配,若该数据包与该流表中的第一客户端的各个流表项均匹配失败,则交换机发送该数据包至控制设备,以使得控制设备可根据该数据包,生成第一客户端的与该数据包对应的第一流表项,并当流表已满,且流表中的第一客户端的流表项数目小于第一客户端的流表项数目的阈值时,生成第一指示,以及下发该第一流表项和该第一指示至该交换机。
需要说明的是,流表包括多个流表项,并且每个流表项都具有优先级,在交换机接收到来自第一客户端的数据包之后,交换机可按照流表中的第一客户端的各个流表项的优先级,将该数据包与流表中的第一客户端的各个流表项进行匹配,若该数据包与流表中的第一客户端的某一个流表项匹配成功,交换机则按照第一客户端的该某一个流表项中的动作项,执行与该动作项相对应的操作,该动作项可以指示交换机丢弃该数据包或者将该数据包从某个端口转发出去。
进一步地,流表可以分为精配表和通配表,精配表是流表中的每个流表项的匹配域/包头域中的每个元组都具有固定的取值,通配表是流表中的部分流表项的匹配域/包头域中的部分元组具有固定的取值,而该部分流表项的匹配域/包头域中的其余的元组未进行定义,在交换机将第一客户端的该数据包与该部分流表项进行匹配时,交换机可无需对该部分流表项的匹配域/包头域中未定义的元组进行匹配,因此,交换机将第一客户端的该数据包与该部分流表项的匹配域/包头域中具有固定的取值的元组匹配成功,则交换机可获知第一客户端的该数据包与该部分流表项匹配成功。
进一步地,交换机可以将接收到的来自第一客户端的数据包的包头信息与第一客户端的各个流表项的匹配域进行匹配,若该数据包的包头信息与第一客户端的某一个流表项的匹配域匹配成功,则表示该数据包与第一客户端的该某一个流表项匹配成功;若该数据包的包头信息与第一客户端的各个流表项的匹配域均匹配失败,则表示该数据包与第一客户端的各个流表项匹配失败。
S203、交换机接收控制设备下发的第一流表项和第一指示,其中,第一指示用于指示该交换机将流表中流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为第一流表项。
交换机发送数据包至控制设备之后,交换机可接收来自控制设备的第一流表项和第一指示,其中,第一指示用于指示该交换机将流表中流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为第一流表项。
S204、交换机根据第一指示,将流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为第一流表项。
交换机接收到第一流表项和第一指示之后,交换机可根据该第一指示,将流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为第一流表项,以完成交换机中保存的流表的更新。
本发明的实施例提供一种流表更新方法,通过控制设备根据第一客户端的信息和网络创建信息,确定与第一客户端的信息和网络创建信息对应的第一客户端的流表项数目的阈值,其中,第一客户端的信息包括第一客户端的ID,网络创建信息包括第一客户端所在网络的ID和第一客户端所在网络的所有客户端的MAC地址,并获取交换机上报的数据包,该数据包是由第一客户端发送给交换机的,并且该数据包与交换机中保存的流表中的第一客户端的各个流表项匹配失败,且控制设备生成第一客户端的与数据包对应的第一流表项,若流表已满,且流表中的第一客户端的流表项数目小于第一客户端的流表项数目的阈值,则控制设备生成第一指示,其中,第一指示用于指示交换机将流表中流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为第一流表项,其中,该溢值为第二客户端的流表项数目超出第二客户端的流表项数目的阈值的数目,以及控制设备下发第一流表项和第一指示至交换机,以使得交换机根据第一指示将流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为第一流表项。通过该方案,在流表已满,且流表中的该客户端的流表项数目未达到该客户端的流表项数目的阈值的情况下,控制设备可指示交换机将流表项数目的溢值最大的至少一个其他客户端的任意一个流表项替换为该客户端的与该客户端发送的数据包对应的流表项,从而达到采用动态调整策略更新流表的目的,因此,能够在流表已满的状态下更新流表,从而满足客户端对流表资源的需求,以及实现流表资源的公平分配。
实施例二
本发明实施例提供一种流表更新方法,如图3所示,该方法可以包括:
S301、控制设备获取第一客户端的信息和网络创建信息,其中,第一客户端的信息包括第一客户端的序列号ID,网络创建信息包括第一客户端所在网络的ID和第一客户端所在网络的所有客户端的MAC地址。
示例性的,若源客户端,即第一客户端需发送数据包至目标客户端,第一客户端可发送该第一客户端的信息和网络创建信息至控制设备,即控制设备可获取第一客户端的信息和网络创建信息,其中,第一客户端的信息包括第一客户端的序列号ID,网络创建信息包括第一客户端所在网络的ID和第一客户端所在网络的所有客户端的MAC地址。
需要说明的是,第一客户端在发送数据包之前,第一客户端需申请网络,第一客户端在申请网络时,第一客户端需上报第一客户端的信息和网络创建信息至控制设备,控制设备可通过第一客户端的信息和网络创建信息获知第一客户端所在的网络,并可获知第一客户端所在的网络包括的所有客户端。
S302、控制设备根据第一客户端的信息和网络创建信息,确定与第一客户端的信息和网络创建信息对应的第一客户端的网络级别。
控制设备获取到第一客户端的信息和网络创建信息之后,控制设备可根据该第一客户端的信息和该网络创建信息,确定与该第一客户端的信息和该网络创建信息对应的第一客户端的网络级别。
S303、控制设备根据第一客户端的网络级别,确定与第一客户端的网络级别对应的第一客户端的流表项数目的阈值。
控制设备确定第一客户端的网络级别之后,控制设备可根据该第一客户端的网络级别,确定与该第一客户端的网络级别对应的该第一客户端的流表项数目的阈值。
需要说明的是,流表项为Openflow协议中的交换机对数据包进行处理的规则,也称为转发规则,该规则可以为用户自定义的规则或预先设定的规则。流表项可以包括:匹配域/包头域、计数器项和动作项三项组成,其中,匹配域/包头域可以用于与数据包进行匹配,计数器项可以用于统计数据包的个数,动作项可以用于按照匹配域/包头域与数据包匹配的结果,对数据包进行转发或丢弃数据包,若不对该动作项进行定义,则数据包默认为被丢弃。
S304、交换机接收来自第一客户端的数据包。
若第一客户端需发送数据包至目的客户端,第一客户端需先发送该数据包至交换机,即交换机可接收来自第一客户端的数据包。
需要说明的是,本发明不限制S303和S304的执行顺序,即本发明可以先执行S303后执行S304;也可以先执行S304后执行S303;还可以同时执行S303和S304。
S305、交换机将数据包与交换机中保存的流表中的第一客户端的各个流表项进行匹配。
交换机接收到来自第一客户端的数据包之后,交换机可将该数据包与交换机中保存的流表中的第一客户端的各个流表项进行匹配。
需要说明的是,流表包括多个流表项,并且每个流表项都具有优先级,在交换机接收到来自第一客户端的数据包之后,交换机可按照流表中的第一客户端的各个流表项的优先级,将该数据包与流表中的第一客户端的各个流表项进行匹配,若该数据包与流表中的第一客户端的某一个流表项匹配成功,交换机则按照第一客户端的该某一个流表项中的动作项,执行与该动作项相对应的操作,该动作项可以指示交换机丢弃该数据包或者将该数据包从某个端口转发出去。
进一步地,流表可以分为精配表和通配表,精配表是流表中的每个流表项的匹配域/包头域中的每个元组都具有固定的取值,通配表是流表中的部分流表项的匹配域/包头域中的部分元组具有固定的取值,而该部分流表项的匹配域/包头域中的其余的元组未进行定义,在交换机将第一客户端的该数据包与该部分流表项进行匹配时,交换机可无需对该部分流表项的匹配域/包头域中未定义的元组进行匹配,因此,交换机将第一客户端的该数据包与该部分流表项的匹配域/包头域中具有固定的取值的元组匹配成功,则交换机可获知第一客户端的该数据包与该部分流表项匹配成功。
需要说明的是,本发明实施例提供的流表更新方法可以适用于单流表技术,也可以适用于多流表技术,本发明不做限制。
进一步地,交换机将该数据包与流表中的第一客户端的各个流表项进行匹配之后,若该数据包与流表中的第一客户端的某一个流表项匹配成功,则交换机根据第一客户端的该某一个流表项,转发该数据包;若该数据包与流表中的第一客户端的各个流表项均匹配失败,则表示该流表中没有与该数据包匹配的流表项,即交换机需发送该数据包至控制设备,以使得控制设备根据该数据包生成与该数据包对应的流表项,从而下发该流表项至交换机,进而使得交换机可根据该流表项,转发该数据包。
S306、若数据包与流表中的第一客户端的各个流表项匹配失败,则交换机发送数据包至控制设备。
交换机将数据包与流表中的第一客户端的各个流表项进行匹配之后,若该数据包与该流表中的第一客户端的各个流表项均匹配失败,则交换机发送该数据包至控制设备,即控制设备获取交换机上报的该数据包。
进一步地,若该数据包与交换机中保存的流表中的第一客户端的各个流表项均匹配失败后,交换机则将该数据包发送至控制设备。
具体的,若该数据包与交换机中保存的流表中的第一客户端的各个流表项均匹配失败,交换机可将该数据包与匹配失败消息进行封装,并将封装后的该数据包与该匹配失败消息作为一个数据包发送至控制设备,控制设备可通过匹配失败消息获知数据包与交换机中保存的流表中的第一客户端的各个流表项均匹配失败,此时,控制设备可从封装后的数据包和匹配失败消息中获取到交换机上报的数据包。
S307、控制设备生成第一客户端的与该数据包对应的第一流表项。
控制设备获取到交换机上报的数据包之后,控制设备可根据该数据包,生成第一客户端的与该数据包对应的第一流表项。
具体的,如图4所示,控制设备生成第一客户端的与该数据包对应的第一流表项的过程,即S307具体包括:
S3071、控制设备获取数据包的地址信息和数据包的包头信息,其中,数据包的地址信息包括MAC地址,或MAC地址和IP地址。
控制设备接收到交换机发送的数据包之后,控制设备可获取该数据包的地址信息和该数据包的包头信息,其中,数据包的地址信息包括MAC地址,或MAC地址和IP地址。
需要说明的是,控制设备获取到的数据包中可以包括MAC地址,MAC地址和和IP地址,具体的可以包括以下两种情况:
(1)控制设备获取到的数据包中可以包括源客户端的MAC地址和目标客户端的MAC地址。
(2)控制设备获取到的数据包中可以包括源客户端的MAC地址、目标客户端的MAC地址、源客户端的IP地址和目标客户端的IP地址。
进一步地,交换机可以将接收到的来自第一客户端的数据包的包头信息与第一客户端的各个流表项的匹配域进行匹配,若该数据包的包头信息与第一客户端的某一个流表项的匹配域匹配成功,则表示该数据包与第一客户端的该某一个流表项匹配成功;若该数据包的包头信息与第一客户端的各个流表项的匹配域均匹配失败,则表示该数据包与第一客户端的各个流表项匹配失败。
S3072、控制设备根据数据包的地址信息,确定与该数据包的地址信息对应的该数据包的转发路径。
控制设备获取到数据包的地址信息之后,控制设备可根据数据包的地址信息,确定与该数据包的地址信息对应的该数据包的转发路径。
具体的,由于控制设备获取到的数据包中可以包括MAC地址,或MAC地址和IP地址,因此,控制设备根据数据包的地址信息,确定该数据包的转发路径,可以包括以下两种情况,:
(1)若控制设备获取到的数据包中包括源客户端的MAC地址和目标客户端的MAC地址,控制设备可根据该源客户端的MAC地址和目标客户端的MAC地址,在该控制设备中保存的网络拓扑结构中,确定数据包的转发路径。
(2)若控制设备获取到的数据包中包括源客户端的MAC地址、目标客户端的MAC地址、源客户端的IP地址和目标客户端的IP地址。控制设备可根据该源客户端的MAC地址和目标客户端的MAC地址,在该控制设备中保存的网络拓扑结构中,确定数据包的转发路径;控制设备也可根据该源客户端的IP地址和目标客户端的IP地址,在该控制设备中保存的网络拓扑结构中,确定数据包的转发路径。
S3073、控制设备根据数据包的包头信息,确定与该数据包的包头信息对应的第一流表项的匹配域。
控制设备获取到数据包的包头信息之后,控制设备可根据该数据包的包头信息,确定与该数据包的包头信息对应的第一流表项的匹配域。
具体的,控制设备可以将数据包的包头信息抽取出来,并填充至第一流表项的匹配域中。
S3074、控制设备根据第一流表项的匹配域和数据包的转发路径,生成第一客户端的与该数据包对应的第一流表项。
控制设备确定第一流表项的匹配域之后,控制设备可根据第一流表项的匹配域和数据包的转发路径,生成第一客户端的与该数据包对应的第一流表项。
进一步地,控制设备可以根据第一流表项的匹配域和该控制器接收到的数据包,设置第一流表项的计数器项的值,并确定第一流表项的动作项执行的操作和转发数据包的端口,以及根据控制设备确定的数据包的转发路径,生成与该数据包对应的第一流表项。
进一步地,控制设备获取到的数据包中还可以包括发送该数据包的端口号和VLAN(Virtual Local Area Network,虚拟局域网)号等,控制设备也可以根据该数据包中的发送该数据包的端口号和VLAN号中的至少一项生成第一流表项,本发明不做限制。
S308、控制设备统计流表中的第一客户端的流表项数目。
控制设备获取交换机上报的数据包之后,控制设备可统计流表中的第一客户端的流表项数目。
具体的,控制设备中可以设置有流表统计模块,用于统计流表中各个客户端的流表项数目,交换机在更新流表之后,交换机需发送已更新流表的消息至控制设备,控制设备需根据该已更新流表的消息,修改流表统计模块中相应的流表项数目的值。例如:若交换机在流表中插入第一客户端的一个流表项,交换机需发送已更新流表的消息,即已插入第一客户端的一个流表项的消息至控制设备,控制设备可将该流表统计模块中的第一客户端的流表项数目加一;若交换机在流表中删除第一客户端的一个流表项,交换机需发送已更新流表的消息,即已删除第一客户端的一个流表项的消息至控制设备,控制设备可将该流表统计模块中的第一客户端的流表项数目减一。
进一步地,控制设备可判断交换机上报的已更新流表的消息的类型来对流表项数目进行统计,具体的,若已更新流表的消息为插入某个客户端的流表项的消息,控制设备可将流表统计模块中的该某个客户端的流表项数目加一,若已更新流表的消息为删除某个客户端的流表项的消息,控制设备可将流表统计模块中的该某个客户端的流表项数目减一,从而控制设备可根据交换机上报的已更新流表的消息统计流表中的各个客户端的流表项数目。
S309、控制设备判断流表的状态,并将流表中的第一客户端的流表项数目与该第一客户端的流表项数目的阈值进行比较。
控制设备统计流表中的第一客户端的流表项数目之后,控制设备可判断流表的状态,并将流表中的第一客户端的流表项数目与该第一客户端的流表项数目的阈值进行比较。
具体的,控制设备在判断流表的状态时,当流表已满时,交换机可发送流表已满消息至控制设备,即控制设备可以接收到来自交换机的流表已满消息,从而控制设备可根据该流表已满消息,获知流表的状态。相反的,若流表未满,交换机则无需发送任何消息至控制设备,从而交换机可直接根据控制设备的指示,执行相应的操作。
S310、若流表已满,且流表中的第一客户端的流表项数目小于该第一客户端的流表项数目的阈值,则控制设备生成第一指示,其中,第一指示用于指示交换机将流表中流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为第一流表项,其中,该溢值为第二客户端的流表项数目超出第二客户端的流表项数目的阈值的数目。
控制设备判断流表的状态,并将流表中的第一客户端的流表项数目与该第一客户端的流表项数目的阈值进行比较之后,若控制设备判断出流表已满,且流表中的第一客户端的流表项数目小于该第一客户端的流表项数目的阈值,则控制设备可生成第一指示,其中,该第一指示用于指示交换机将流表中流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为第一流表项。
进一步地,控制设备可确定流表中的各个客户端的流表项数目的溢值,并根据各个客户端的流表项数目的溢值,确定流表项数目的溢值最大的至少一个第二客户端,且确定该至少一个第二客户端的任意一个流表项,以及根据该至少一个第二客户端的任意一个流表项,生成第一指示。
进一步地,第二客户端的溢值为第二客户端的流表项数目与第二客户端的流表项数目的阈值之差,具体的,若第二客户端的流表项数目未超过该第二客户端的流表项数目的阈值,即第二客户端的流表项数目小于该第二客户端的流表项数目的阈值,则第二客户端的溢值为零;若第二客户端的流表项数目超过该第二客户端的流表项数目的阈值,即第二客户端的流表项数目大于该第二客户端的流表项数目的阈值,则第二客户端的溢值大于零,并且第二客户端的溢值为第二客户端的流表项数目减去第二客户端的流表项数目的阈值;若第二客户端的流表项数目与该第二客户端的流表项数目的阈值相等,则第二客户端的溢值为零。
需要说明的是,若流表未满,且流表中的第一客户端的流表项数目小于该第一客户端的流表项数目的阈值,则控制设备指示交换机直接插入第一流表项至流表中;若流表未满,且流表中的第一客户端的流表项数目大于或等于该第一客户端的流表项数目的阈值,则控制设备指示交换机直接插入第一流表项,并修改该控制设备中该第一客户端的流表项数目的溢值。
S311、控制设备下发第一流表项和第一指示至交换机。
控制设备生成第一流表项和第一指示之后,控制设备可下发该第一流表项和该第一指示至交换机。
S312、交换机根据第一指示,将流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为第一流表项。
交换机接收到控制设备下发的第一流表项和第一指示之后,交换机可根据该第一指示,将流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为第一流表项。
可选的,交换机可根据该第一指示,删除流表项数目的溢值最大的至少一个第二客户端的任意一个流表项,并将第一流表项插入流表中。
具体的,交换机可根据第一指示,找到流表项数目的溢值最大的至少一个第二客户端的任意一个流表项的位置,并删除该流表项数目的溢值最大的至少一个第二客户端的任意一个流表项,以及在流表中的流表项数目的溢值最大的至少一个第二客户端的任意一个流表项的位置插入第一流表项;交换机也可根据该第一指示,删除流表项数目的溢值最大的至少一个第二客户端的任意一个流表项,并将该流表项数目的溢值最大的至少一个第二客户端的任意一个流表项之后的流表项依次向前移动,以及在流表中最后一个流表项的位置插入第一流表项,本发明不做限制。
进一步地,控制设备判断流表的状态,并将流表中的第一客户端的流表项数目与该第一客户端的流表项数目的阈值进行比较的结果还可以为以下任一种:
(1)流表未满,且流表中的第一客户端的流表项数目小于该第一客户端的流表项数目的阈值。
具体的,若流表未满,且流表中的第一客户端的流表项数目小于该第一客户端的流表项数目的阈值,则控制设备可生成第二指示,控制设备可下发第一流表项和第二指示至交换机,该第二指示用于指示交换机将第一流表项插入流表中,以便于交换机可根据该第二指示,将第一流表项插入流表中。
(2)流表未满,且流表中的第一客户端的流表项数目大于或等于第一客户端的流表项数目的阈值。
具体的,若流表未满,且流表中的第一客户端的流表项数目大于或等于该第一客户端的流表项数目的阈值,则控制设备可生成第二指示,控制设备可下发第一流表项和第二指示至交换机,该第二指示用于指示交换机将第一流表项插入流表中,以便于交换机可根据该第二指示,将第一流表项插入流表中,该交换机将第一流表项插入流表中之后,交换机需发送已更新流表的消息至控制设备,控制设备根据该已更新流表的消息,修改第一客户端的流表项数目的溢值,该第一客户端的流表项数目的溢值为该第一客户端的流表项数目超出该第一客户端的流表项数目的阈值的数目。
(3)流表已满,且流表中的第一客户端的流表项数目小于该第一客户端的流表项数目的阈值。
具体的,若流表已满,且流表中的第一客户端的流表项数目小于该第一客户端的流表项数目的阈值,控制设备和交换机所执行的操作,可参考下述S314-S315的步骤及其相关描述。
S313、交换机根据第一流表项,转发数据包。
交换机接收到控制设备下发的第一流表项之后,交换机可根据该第一流表项,转发数据包。
需要说明的是,本发明不限制S312和S313的执行顺序,即本发明可以先执行S312后执行S313;也可以先执行S313后执行S312;还可以同时执行S312和S313。
S314、若流表已满,且流表中的第一客户端的流表数目大于或等于第一客户端的流表项数目的阈值,则控制设备提示错误信息。
控制设备判断交流表的状态,并将流表中的第一客户端的流表项数目与第一客户端的流表项数目的阈值进行比较之后,若流表已满,且流表中的第一客户端的流表数目大于或等于第一客户端的流表项数目的阈值,则控制设备提示错误信息。
进一步地,若流表已满,且流表中的第一客户端的流表数目大于或等于第一客户端的流表项数目的阈值,则控制设备提示错误信息给第一客户端,第一客户端后续发送数据包时,即可获知该错误信息,从而进行升级第一客户端的网络级别等操作。
S315、若数据包与流表中的第一客户端的第二流表项匹配成功,则交换机根据第二流表项转发数据包。
交换机将数据包与交换机中保存的流表中的第一客户端的各个流表项进行匹配之后,若该数据包与流表中的第一客户端的第二流表项匹配成功,则交换机根据第二流表项转发该数据包。
本发明的实施例提供一种流表更新方法,通过控制设备根据第一客户端的信息和网络创建信息,确定与第一客户端的信息和网络创建信息对应的第一客户端的流表项数目的阈值,其中,第一客户端的信息包括第一客户端的ID,网络创建信息包括第一客户端所在网络的ID和第一客户端所在网络的所有客户端的MAC地址,并获取交换机上报的数据包,该数据包是由第一客户端发送给交换机的,并且该数据包与交换机中保存的流表中的第一客户端的各个流表项匹配失败,且控制设备生成第一客户端的与数据包对应的第一流表项,若流表已满,且流表中的第一客户端的流表项数目小于第一客户端的流表项数目的阈值,则控制设备生成第一指示,其中,第一指示用于指示交换机将流表中流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为第一流表项,其中,该溢值为第二客户端的流表项数目超出第二客户端的流表项数目的阈值的数目,以及控制设备下发第一流表项和第一指示至交换机,以使得交换机根据第一指示将流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为第一流表项。通过该方案,在流表已满,且流表中的该客户端的流表项数目未达到该客户端的流表项数目的阈值的情况下,控制设备可指示交换机将流表项数目的溢值最大的至少一个其他客户端的任意一个流表项替换为该客户端的与该客户端发送的数据包对应的流表项,从而达到采用动态调整策略更新流表的目的,因此,能够在流表已满的状态下更新流表,从而满足客户端对流表资源的需求,以及实现流表资源的公平分配。
实施例三
如图5所示,本发明实施例提供一种控制设备1,该控制设备1可以包括:
确定单元10,用于根据第一客户端的信息和网络创建信息,确定与所述第一客户端的信息和所述网络创建信息对应的所述第一客户端的流表项数目的阈值,其中,所述第一客户端的信息包括所述第一客户端的序列号ID,所述网络创建信息包括所述第一客户端所在网络的ID和所述第一客户端所在网络的所有客户端的MAC地址。
获取单元11,用于获取交换机上报的数据包,所述数据包是由所述第一客户端发送给所述交换机的,并且所述数据包与所述交换机中保存的流表中的所述第一客户端的各个流表项匹配失败。
生成单元12,用于生成所述第一客户端的与所述获取单元11获取的所述数据包对应的第一流表项,以及若所述流表已满,且所述流表中的所述第一客户端的流表项数目小于所述确定单元10确定的所述第一客户端的流表项数目的阈值,则生成第一指示,所述第一指示用于指示所述交换机将所述流表中流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为所述第一流表项,其中,所述溢值为所述第二客户端的流表项数目超出所述第二客户端的流表项数目的阈值的数目;
发送单元13,用于下发所述生成单元12生成的所述第一流表项和所述第一指示至所述交换机,以使得所述交换机根据所述第一指示将所述流表下个数目的溢值最大的至少一个第二客户打断的任意一个流表项替换为所述第一流表项。
可选的,所述确定单元10,具体用于根据所述第一客户端的信息和所述网络创建信息,确定与所述第一客户端的信息和所述网络创建信息对应的所述第一客户端的网络级别,并根据所述第一客户端的网络级别,确定与所述第一客户端的网络级别对应的所述第一客户端的流表项数目的阈值。
可选的,如图6所示,所述控制设备1还包括统计单元14,所述统计单元14,用于在所述获取单元11获取到所述交换机上报的所述数据包之后,所述生成单元12生成所述第一指示之前,统计所述流表中的所述第一客户端的流表项数目。
可选的,所述确定单元10,具体用于确定所述流表中的各个客户端的流表项数目的溢值,并根据所述各个客户端的流表项数目的溢值,确定流表项数目的溢值最大的所述至少一个第二客户端,以及确定所述至少一个第二客户端的任意一个流表项;所述生成单元12,具体用于根据所述确定单元10确定的所述至少一个第二客户端的任意一个流表项,生成与所述至少一个第二客户端的任意一个流表项对应的所述第一指示。
可选的,所述确定单元10,具体用于根据所述获取单元11获取的所述数据包,确定所述数据包的转发路径;所述生成单元12,具体用于根据所述数据包和所述确定单元10确定的所述数据包的转发路径,生成与所述数据包对应的所述第一流表项。
可选的,所述获取单元11,具体用于获取所述数据包的地址信息,其中,所述数据包的地址信息包括MAC地址,或MAC地址和IP地址;所述确定单元10,具体用于根据所述获取单元11获取的所述数据包的地址信息,确定与所述数据包的地址信息对应的所述数据包的转发路径。
可选的,所述获取单元11,具体用于获取所述数据包的包头信息;所述确定单元10,具体用于根据所述获取单元11获取的所述数据包的包头信息,确定与所述数据包的包头信息对应的所述第一流表项的匹配域;所述生成单元12,具体用于根据所述确定单元10确定的所述第一流表项的匹配域和所述数据包的转发路径,生成与所述数据包对应的所述第一流表项。
可选的,如图7所示,所述控制设备1还包括提示单元15,所述提示单元15,还用于若所述流表已满,且所述统计单元14统计的所述第一客户端的流表项数目大于或等于所述第一客户端的流表项数目的阈值,则提示错误信息。
本发明的实施例提供一种控制设备,该控制设备根据第一客户端的信息和网络创建信息,确定与第一客户端的信息和网络创建信息对应的第一客户端的流表项数目的阈值,其中,第一客户端的信息包括第一客户端的ID,网络创建信息包括第一客户端所在网络的ID和第一客户端所在网络的所有客户端的MAC地址,并获取交换机上报的数据包,该数据包是由第一客户端发送给交换机的,并且该数据包与交换机中保存的流表中的第一客户端的各个流表项匹配失败,且该控制设备生成第一客户端的与数据包对应的第一流表项,若流表已满,且流表中的第一客户端的流表项数目小于第一客户端的流表项数目的阈值,则该控制设备生成第一指示,其中,第一指示用于指示交换机将流表中流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为第一流表项,其中,该溢值为第二客户端的流表项数目超出第二客户端的流表项数目的阈值的数目,以及该控制设备下发第一流表项和第一指示至交换机,以使得交换机根据第一指示将流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为第一流表项。通过该方案,在流表已满,且流表中的该客户端的流表项数目未达到该客户端的流表项数目的阈值的情况下,控制设备可指示交换机将流表项数目的溢值最大的至少一个其他客户端的任意一个流表项替换为该客户端的与该客户端发送的数据包对应的流表项,从而达到采用动态调整策略更新流表的目的,因此,能够在流表已满的状态下更新流表,从而满足客户端对流表资源的需求,以及实现流表资源的公平分配。
如图8所示,本发明实施例提供一种交换机2,该交换机2可以包括:
接收单元20,用于接收来自第一客户端的数据包。
发送单元21,用于若所述接收单元20接收的所述数据包与流表中的所述第一客户端的各个流表项匹配失败,则发送所述数据包至控制设备,以使得所述控制设备根据所述数据包,生成所述第一客户端的与所述数据包对应的第一流表项,并当所述流表已满,且所述流表中的所述第一客户端的流表项数目小于所述第一客户端的流表项数目的阈值时,生成第一指示。
所述接收单元20,还用于接收所述控制设备下发的所述第一流表项和所述第一指示,所述第一指示用于指示将所述流表中流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为所述第一流表项。
替换单元22,用于根据所述接收单元20接收的所述第一指示,将所述流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为所述接收单元20接收的所述第一流表项。
可选的,所述替换单元22,具体用于根据所述接收单元20接收的所述第一指示,删除所述流表项数目的溢值最大的至少一个第二客户端的任意一个流表项,并将所述第一流表项插入所述流表中。
可选的,如图9所示,所述交换机2还包括匹配单元23,所述匹配单元23,用于在所述接收单元20接收来自所述第一客户端的所述数据包之后,所述发送单元21发送所述数据包至所述控制设备之前,将所述数据包与所述流表中的所述第一客户端的各个流表项进行匹配。
可选的,所述发送单元21,还用于在所述接收单元20接收到所述控制设备下发的所述第一流表项和所述第一指示之后,根据所述第一流表项,转发所述数据包。
可选的,所述发送单元21,还用于若所述接收单元20接收的所述数据包与所述流表中的所述第一客户端的第二流表项匹配成功,则根据所述第二流表项,转发所述数据包。
本发明的实施例提供一种交换机,该交换机接收来自第一客户端的数据包,且若该数据包与流表中的第一客户端的各个流表项匹配失败,则该交换机发送该数据包至控制设备,以使得控制设备根据该数据包,生成第一客户端的与该数据包对应的第一流表项,并当流表已满,且流表中的第一客户端的流表项数目小于第一客户端的流表项数目的阈值时,生成第一指示,以及下发第一指示第一流表项和第一指示,以及该交换机接收来自控制设备的第一流表项和第一指示,其中,第一指示用于指示该交换机将流表中流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为第一流表项,该交换机则根据该第一指示,将该流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为第一流表项。通过该方案,在流表已满,流表中的第一客户端的流表项数目小于第一客户端的流表项数目的阈值的情况下,交换机可根据控制设备下发的第一指示,将控制设备下发的第一客户端的与第一客户端发送的数据包对应的第一流表项插入流表中以替换流表项数目的溢值最大的至少一个其他客户端的任意一个流表项,从而完成流表的更新,因此,能够在流表已满的状态下更新流表,从而满足客户端对流表资源的需求,以及实现流表资源的公平分配。
实施例四
如图10示,本发明实施例提供一种控制设备,该控制设备可以包括:处理器16、存储器17、系统总线18和通信接口19,其中,
处理器16、存储器17和通信接口19之间通过系统总线18连接并完成相互间的通信。
处理器16可能为单核或多核中央处理单元,或者为特定集成电路或者被配置为实施本发明实施例的一个或多个集成电路。
存储器17可以为高速RAM(Random Access Memory,随机存取存储器),也可以为非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
存储器17用于存储控制设备的指令。具体的,控制设备的指令可以包括软件程序和软件代码。
具体的,所述处理器16可用于根据第一客户端的信息和网络创建信息,确定与所述第一客户端的信息和所述网络创建信息对应的所述第一客户端的流表项数目的阈值,其中,所述第一客户端的信息包括所述第一客户端的序号ID,所述网络创建信息包括所述第一客户端所在网络的ID和所述第一客户端在所述网络的所有客户端的MAC地址,并通过系统总线18从通信接口19获取交换机上报的数据包,所述数据包是由所述第一客户端发送给所述交换机的,并且所述数据包与所述交换机中保存的流表中的所述第一客户端的各个流表项匹配失败,且生成所述第一客户端的与所述数据包对应的第一流表项,以及若所述流表已满,且所述流表中的所述第一客户端的流表项数目小于所述第一客户端的流表项数目的阈值,则生成第一指示,所述第一指示用于指示所述交换机将所述流表中流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为所述第一流表项,其中,所述溢值为所述第二客户端的流表项数目超出所述第二客户端的流表项数目的阈值的数目,以及通过下发所述第一流表项和所述第一指示至所述交换机,以使得所述交换机根据所述第一指示将所述流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为所述第一流表项;所述存储器17可用于存储第一客户端的流表项数目的阈值的软件代码、第一流表项的软件代码及控制所述处理器16完成上述步骤的软件程序,从而使得所述处理器16可通过执行上述软件程序并调用上述软件代码,从而完成上述步骤。
可选的,所述处理器16,具体用于根据所述第一客户端的信息和所述网络创建信息,确定与所述第一客户端的信息和所述网络创建信息对应的所述第一客户端的网络级别,并根据所述第一客户端的网络级别,确定与所述第一客户端的网络级别对应的所述第一客户端的流表项数目的阈值。
可选的,所述处理器16,还用于在获取所述交换机上报的所述数据包之后,生成所述第一指示之前,统计所述流表中的所述第一客户端的流表项数目。
可选的,所述处理器16,具体用于确定所述流表中的各个客户端的流表项数目的溢值,并根据所述各个客户端的流表项数目的溢值,确定流表项数目的溢值最大的所述至少一个第二客户端,以及确定所述至少一个第二客户端的任意一个流表项,以及根据所述至少一个第二客户端的任意一个流表项,生成与所述至少一个第二客户端的任意一个流表项对应的所述第一指示。
可选的,所述处理器16,具体用于根据所述数据包,确定所述数据包的转发路径,并根据所述数据包和所述数据包的转发路径,生成与所述数据包对应的所述第一流表项。
可选的,所述处理器17,具体用于获取所述数据包的地址信息,并根据所述数据包的地址信息,确定与所述数据包的地址信息对应的所述数据包的转发路径,其中,所述数据包的地址信息包括MAC地址,或MAC地址和IP地址。
可选的,所述处理器17,具体用于获取所述数据包的包头信息,并根据所述数据包的包头信息,确定与所述数据包的包头信息对应的所述第一流表项的匹配域,以及根据所述第一流表项的匹配域和所述数据包的转发路径,生成与所述数据包对应的所述第一流表项。
可选的,所述处理器17,还用于若所述流表已满,且所述第一客户端的流表项数目大于或等于所述第一客户端的流表项数目的阈值,则提示错误信息。
本发明的实施例提供一种控制设备,该控制设备根据第一客户端的信息和网络创建信息,确定与第一客户端的信息和网络创建信息对应的第一客户端的流表项数目的阈值,其中,第一客户端的信息包括第一客户端的ID,网络创建信息包括第一客户端所在网络的ID和第一客户端所在网络的所有客户端的MAC地址,并获取交换机上报的数据包,该数据包是由第一客户端发送给交换机的,并且该数据包与交换机中保存的流表中的第一客户端的各个流表项匹配失败,且该控制设备生成第一客户端的与数据包对应的第一流表项,若流表已满,且流表中的第一客户端的流表项数目小于第一客户端的流表项数目的阈值,则该控制设备生成第一指示,其中,第一指示用于指示交换机将流表中流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为第一流表项,其中,该溢值为第二客户端的流表项数目超出第二客户端的流表项数目的阈值的数目,以及该控制设备下发第一流表项和第一指示至交换机,以使得交换机根据第一指示将流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为第一流表项。通过该方案,在流表已满,且流表中的该客户端的流表项数目未达到该客户端的流表项数目的阈值的情况下,控制设备可指示交换机将流表项数目的溢值最大的至少一个其他客户端的任意一个流表项替换为该客户端的与该客户端发送的数据包对应的流表项,从而达到采用动态调整策略更新流表的目的,因此,能够在流表已满的状态下更新流表,从而满足客户端对流表资源的需求,以及实现流表资源的公平分配。
如图11所示,本发明实施例提供一种交换机,该交换机可以包括:处理器24、存储器25、系统总线26和通信接口27,其中,
处理器24、存储器25和通信接口27之间通过系统总线26连接并完成相互间的通信。
处理器24可能为单核或多核中央处理单元,或者为特定集成电路或者被配置为实施本发明实施例的一个或多个集成电路。
存储器25可以为高速RAM(Random Access Memory,随机存取存储器),也可以为非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
存储器25用于存储控制设备的指令。具体的,控制设备的指令可以包括软件程序和软件代码。
具体的,所述处理器24可用于通过系统总线26从通信接口27接收来自第一客户端的数据包,若所述数据包与流表中的所述第一客户端的各个流表项匹配失败,则发送所述数据包至控制设备,以使得所述控制设备根据所述数据包,生成所述第一客户端的与所述数据包对应的第一流表项,并当所述流表已满,且所述流表中的所述第一客户端的流表项数目小于所述第一客户端的流表项数目的阈值时,生成第一指示,并通过系统总线26从通信接口27接收来自所述控制设备下发的所述第一流表项和所述第一指示,所述第一指示用于指示将所述流表中流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为所述第一流表项,以及根据所述第一指示,将所述流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为所述第一流表项;所述存储器25可用于存储所述数据包的软件代码、第一客户端的各个流表项的软件代码及控制所述处理器24完成上述步骤的软件程序,从而使得所述处理器24可通过执行上述软件程序并调用上述软件代码,从而完成上述步骤。
可选的,所述处理器24,具体用于根据所述第一指示,删除所述流表项数目的溢值最大的至少一个第二客户端的任意一人流表项,并将所述第一流表项插入所述流表中。
可选的,所述处理器24,还用于在接收来自所述第一客户端的所述数据包之后,发送所述数据包至所述控制设备之前,将所述数据包与所述流表中的所述第一客户端的各个流表项进行匹配。
可选的,所述处理器24,还用于在接收所述控制设备下发的所述第一流表项和所述第一指示之后,根据所述第一流表项,转发所述数据包。
可选的,所述处理器24,还用于若所述数据包与所述流表中的所述第一客户端的第二流表项匹配成功,则根据所述第二流表项,转发所述数据包。
本发明的实施例提供一种交换机,该交换机接收来自第一客户端的数据包,且若该数据包与流表中的第一客户端的各个流表项匹配失败,则该交换机发送该数据包至控制设备,以使得控制设备根据该数据包,生成第一客户端的与该数据包对应的第一流表项,并当流表已满,且流表中的第一客户端的流表项数目小于第一客户端的流表项数目的阈值时,生成第一指示,以及下发第一指示第一流表项和第一指示,以及该交换机接收来自控制设备的第一流表项和第一指示,其中,第一指示用于指示该交换机将流表中流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为第一流表项,该交换机则根据该第一指示,将该流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为第一流表项。通过该方案,在流表已满,流表中的第一客户端的流表项数目小于第一客户端的流表项数目的阈值的情况下,交换机可根据控制设备下发的第一指示,将控制设备下发的第一客户端的与第一客户端发送的数据包对应的第一流表项插入流表中以替换流表项数目的溢值最大的至少一个其他客户端的任意一个流表项,从而完成流表的更新,因此,能够在流表已满的状态下更新流表,从而满足客户端对流表资源的需求,以及实现流表资源的公平分配。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (26)
1.一种流表更新方法,其特征在于,包括:
根据第一客户端的信息和网络创建信息,确定与所述第一客户端的信息和所述网络创建信息对应的所述第一客户端的流表项数目的阈值,其中,所述第一客户端的信息包括所述第一客户端的序列号ID,所述网络创建信息包括所述第一客户端所在网络的ID和所述第一客户端所在网络的所有客户端的媒体访问控制MAC地址;
获取交换机上报的数据包,所述数据包是由所述第一客户端发送给所述交换机的,并且所述数据包与所述交换机中保存的流表中的所述第一客户端的各个流表项匹配失败;
生成所述第一客户端的与所述数据包对应的第一流表项;
若所述流表已满,且所述流表中的所述第一客户端的流表项数目小于所述第一客户端的流表项数目的阈值,则生成第一指示,所述第一指示用于指示所述交换机将所述流表中流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为所述第一流表项,其中,所述溢值为所述第二客户端的流表项数目超出所述第二客户端的流表项数目的阈值的数目;
下发所述第一流表项和所述第一指示至所述交换机,以使得所述交换机根据所述第一指示将所述流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为所述第一流表项。
2.根据权利要求1所述的流表更新方法,其特征在于,所述根据第一客户端的信息和网络创建信息,确定与所述第一客户端的信息和所述网络创建信息对应的所述第一客户端的流表项数目的阈值,具体包括:
根据所述第一客户端的信息和所述网络创建信息,确定与所述第一客户端的信息和所述网络创建信息对应的所述第一客户端的网络级别;
根据所述第一客户端的网络级别,确定与所述第一客户端的网络级别对应的所述第一客户端的流表项数目的阈值。
3.根据权利要求1或2所述的流表更新方法,其特征在于,所述获取交换机上报的数据包之后,生成第一指示之前,所述方法还包括:
统计所述流表中的所述第一客户端的流表项数目。
4.根据权利要求1或2所述的流表更新方法,其特征在于,所述生成第一指示,具体包括:
确定所述流表中的各个客户端的流表项数目的溢值;
根据所述各个客户端的流表项数目的溢值,确定流表项数目的溢值最大的所述至少一个第二客户端;
确定所述至少一个第二客户端的任意一个流表项;
根据所述至少一个第二客户端的任意一个流表项,生成与所述至少一个第二客户端的任意一个流表项对应的所述第一指示。
5.根据权利要求1或2所述的流表更新方法,其特征在于,所述生成所述第一客户端的与所述数据包对应的第一流表项,具体包括:
根据所述数据包,确定所述数据包的转发路径;
根据所述数据包和所述数据包的转发路径,生成与所述数据包对应的所述第一流表项。
6.根据权利要求5所述的流表更新方法,其特征在于,所述根据所述数据包,确定所述数据包的转发路径,具体包括:
获取所述数据包的地址信息,其中,所述数据包的地址信息包括MAC地址,或MAC地址和互联网协议IP地址;
根据所述数据包的地址信息,确定与所述数据包的地址信息对应的所述数据包的转发路径。
7.根据权利要求5所述的流表更新方法,其特征在于,所述根据所述数据包和所述数据包的转发路径,生成所述第一流表项,具体包括:
获取所述数据包的包头信息;
根据所述数据包的包头信息,确定与所述数据包的包头信息对应的所述第一流表项的匹配域;
根据所述第一流表项的匹配域和所述数据包的转发路径,生成与所述数据包对应的所述第一流表项。
8.根据权利要求1或2所述的流表更新方法,其特征在于,所述方法还包括:
若所述流表已满,且所述流表中的所述第一客户端的流表项数目大于或等于所述第一客户端的流表项数目的阈值,则提示错误信息。
9.一种流表更新方法,其特征在于,包括:
接收来自第一客户端的数据包;
若所述数据包与流表中的所述第一客户端的各个流表项匹配失败,则发送所述数据包至控制设备,以使得所述控制设备根据所述数据包,生成所述第一客户端的与所述数据包对应的第一流表项,并当所述流表已满,且所述流表中的所述第一客户端的流表项数目小于所述第一客户端的流表项数目的阈值时,生成第一指示;
接收所述控制设备下发的所述第一流表项和所述第一指示,所述第一指示用于指示将所述流表中流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为所述第一流表项;
根据所述第一指示,将所述流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为所述第一流表项。
10.根据权利要求9所述的流表更新方法,其特征在于,所述根据所述第一指示,将所述流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为所述第一流表项,具体包括:
根据所述第一指示,删除所述流表项数目的溢值最大的至少一个第二客户端的任意一个流表项;
将所述第一流表项插入所述流表中。
11.根据权利要求9或10所述的流表更新方法,其特征在于,所述接收来自第一客户端的数据包之后,发送所述数据包至控制设备之前,所述方法还包括:
将所述数据包与所述流表中的所述第一客户端的各个流表项进行匹配。
12.根据权利要求9或10所述的流表更新方法,其特征在于,所述接收所述控制设备下发的所述第一流表项和所述第一指示之后,所述方法还包括:
根据所述第一流表项,转发所述数据包。
13.根据权利要求9所述的流表更新方法,其特征在于,所述方法还包括:
若所述数据包与所述流表中的所述第一客户端的第二流表项匹配成功,则根据所述第二流表项转发所述数据包。
14.一种控制设备,其特征在于,包括:
确定单元,用于根据第一客户端的信息和网络创建信息,确定与所述第一客户端的信息和所述网络创建信息对应的所述第一客户端的流表项数目的阈值,其中,所述第一客户端的信息包括所述第一客户端的序列号ID,所述网络创建信息包括所述第一客户端所在网络的ID和所述第一客户端所在网络的所有客户端的媒体访问控制MAC地址;
获取单元,用于获取交换机上报的数据包,所述数据包是由所述第一客户端发送给所述交换机的,并且所述数据包与所述交换机中保存的流表中的所述第一客户端的各个流表项匹配失败;
生成单元,用于生成所述第一客户端的与所述获取单元获取的所述数据包对应的第一流表项,以及若所述流表已满,且所述流表中的所述第一客户端的流表项数目小于所述确定单元确定的所述第一客户端的流表项数目的阈值,则生成第一指示,所述第一指示用于指示所述交换机将所述流表中流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为所述第一流表项,其中,所述溢值为所述第二客户端的流表项数目超出所述第二客户端的流表项数目的阈值的数目;
发送单元,用于下发所述生成单元生成的所述第一流表项和所述第一指示至所述交换机,以使得所述交换机根据所述第一指示将所述流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为所述第一流表项。
15.根据权利要求14所述的控制设备,其特征在于,
所述确定单元,具体用于根据所述第一客户端的信息和所述网络创建信息,确定与所述第一客户端的信息和所述网络创建信息对应的所述第一客户端的网络级别,并根据所述第一客户端的网络级别,确定与所述第一客户端的网络级别对应的所述第一客户端的流表项数目的阈值。
16.根据权利要求14或15所述的控制设备,其特征在于,所述控制设备还包括统计单元,
所述统计单元,用于在所述获取单元获取到所述交换机上报的所述数据包之后,所述生成单元生成所述第一指示之前,统计所述流表中的所述第一客户端的流表项数目。
17.根据权利要求14或15所述的控制设备,其特征在于,
所述确定单元,具体用于确定所述流表中的各个客户端的流表项数目的溢值,并根据所述各个客户端的流表项数目的溢值,确定流表项数目的溢值最大的所述至少一个第二客户端,以及确定所述至少一个第二客户端的任意一个流表项;
所述生成单元,具体用于根据所述确定单元确定的所述至少一个第二客户端的任意一个流表项,生成与所述至少一个第二客户端的任意一个流表项对应的所述第一指示。
18.根据权利要求14或15所述的控制设备,其特征在于,
所述确定单元,具体用于根据所述获取单元获取的所述数据包,确定所述数据包的转发路径;
所述生成单元,具体用于根据所述数据包和所述确定单元确定的所述数据包的转发路径,生成与所述数据包对应的所述第一流表项。
19.根据权利要求18所述的控制设备,其特征在于,
所述获取单元,具体用于获取所述数据包的地址信息,其中,所述数据包的地址信息包括MAC地址,或MAC地址和互联网协议IP地址;
所述确定单元,具体用于根据所述获取单元获取的所述数据包的地址信息,确定与所述数据包的地址信息对应的所述数据包的转发路径。
20.根据权利要求18所述的控制设备,其特征在于,
所述获取单元,具体用于获取所述数据包的包头信息;
所述确定单元,具体用于根据所述获取单元获取的所述数据包的包头信息,确定与所述数据包的包头信息对应的所述第一流表项的匹配域;
所述生成单元,具体用于根据所述确定单元确定的所述第一流表项的匹配域和所述数据包的转发路径,生成与所述数据包对应的所述第一流表项。
21.根据权利要求14或15所述的控制设备,其特征在于,所述控制设备还包括提示单元,
所述提示单元,用于若所述流表已满,且统计单元统计的所述第一客户端的流表项数目大于或等于所述第一客户端的流表项数目的阈值,则提示错误信息。
22.一种交换机,其特征在于,包括:
接收单元,用于接收来自第一客户端的数据包;
发送单元,用于若所述接收单元接收的所述数据包与流表中的所述第一客户端的各个流表项匹配失败,则发送所述数据包至控制设备,以使得所述控制设备根据所述数据包,生成所述第一客户端的与所述数据包对应的第一流表项,并当所述流表已满,且所述流表中的所述第一客户端的流表项数目小于所述第一客户端的流表项数目的阈值时,生成第一指示;
所述接收单元,还用于接收所述控制设备下发的所述第一流表项和所述第一指示,所述第一指示用于指示将所述流表中流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为所述第一流表项;
替换单元,用于根据所述接收单元接收的所述第一指示,将所述流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为所述接收单元接收的所述第一流表项。
23.根据权利要求22所述的交换机,其特征在于,
所述替换单元,具体用于根据所述接收单元接收的所述第一指示,删除所述流表项数目的溢值最大的至少一个第二客户端的任意一个流表项,并将所述第一流表项插入所述流表中。
24.根据权利要求22或23所述的交换机,其特征在于,所述交换机还包括匹配单元,
所述匹配单元,用于在所述接收单元接收来自所述第一客户端的所述数据包之后,所述发送单元发送所述数据包至所述控制设备之前,将所述数据包与所述流表中的所述第一客户端的各个流表项进行匹配。
25.根据权利要求22或23所述的交换机,其特征在于,
所述发送单元,还用于在所述接收单元接收到所述控制设备下发的所述第一流表项和所述第一指示之后,根据所述第一流表项,转发所述数据包。
26.根据权利要求22所述的交换机,其特征在于,
所述发送单元,还用于若所述接收单元接收的所述数据包与所述流表中的所述第一客户端的第二流表项匹配成功,则根据所述第二流表项,转发所述数据包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410060892.4A CN104869064B (zh) | 2014-02-21 | 2014-02-21 | 一种流表更新方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410060892.4A CN104869064B (zh) | 2014-02-21 | 2014-02-21 | 一种流表更新方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104869064A CN104869064A (zh) | 2015-08-26 |
CN104869064B true CN104869064B (zh) | 2018-03-16 |
Family
ID=53914597
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410060892.4A Active CN104869064B (zh) | 2014-02-21 | 2014-02-21 | 一种流表更新方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104869064B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106487756B (zh) * | 2015-08-28 | 2019-12-06 | 华为技术有限公司 | 一种检测交换机信息泄露的方法及装置 |
CN105721316B (zh) * | 2016-02-05 | 2018-11-06 | 北京邮电大学 | 一种下发流表的方法及装置 |
CN105791129A (zh) * | 2016-03-08 | 2016-07-20 | 浪潮集团有限公司 | 一种OpenFlow流表处理无效数据包的方法 |
CN106503203B (zh) * | 2016-10-26 | 2019-08-13 | 中国科学院声学研究所 | 一种智能化流表更新方法 |
CN109150767A (zh) * | 2017-06-16 | 2019-01-04 | 华为技术有限公司 | 一种数据包发送方法、装置及设备 |
CN108391296A (zh) * | 2018-04-03 | 2018-08-10 | 郑州云海信息技术有限公司 | 一种无线切换方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102263664A (zh) * | 2011-08-11 | 2011-11-30 | 北京星网锐捷网络技术有限公司 | 一种会话流处理方法及装置 |
CN102882746A (zh) * | 2012-10-11 | 2013-01-16 | 盛科网络(苏州)有限公司 | Openflow交换机系统中流表添加速率的测试方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8762501B2 (en) * | 2011-08-29 | 2014-06-24 | Telefonaktiebolaget L M Ericsson (Publ) | Implementing a 3G packet core in a cloud computer with openflow data and control planes |
-
2014
- 2014-02-21 CN CN201410060892.4A patent/CN104869064B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102263664A (zh) * | 2011-08-11 | 2011-11-30 | 北京星网锐捷网络技术有限公司 | 一种会话流处理方法及装置 |
CN102882746A (zh) * | 2012-10-11 | 2013-01-16 | 盛科网络(苏州)有限公司 | Openflow交换机系统中流表添加速率的测试方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104869064A (zh) | 2015-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104869064B (zh) | 一种流表更新方法及装置 | |
CN106664261B (zh) | 一种配置流表项的方法、装置和系统 | |
CN106416132B (zh) | 使用控制器处的交换机建模接口控制网络交换机的系统和方法 | |
CN102656850B (zh) | 用于处理多个数据的方法和用于交换通信分组的交换设备 | |
US10606726B2 (en) | Methods, systems and computer readable media for performing benchmark reference testing of data center and network equipment | |
CN104717081B (zh) | 一种网关功能的实现方法及装置 | |
WO2016209275A1 (en) | Server load balancing | |
CN108282342A (zh) | 计费管理方法、用户面功能实体以及控制面功能实体 | |
CN105556916B (zh) | 网络流的信息统计方法和装置 | |
EP2278756B1 (en) | Methods and devices for evaluating interconnection efficiency of parallel computer networks based upon static routing schemes | |
CN102546432B (zh) | 分组传送承载网络容量规划方法和装置 | |
CN101789949B (zh) | 一种实现负荷分担的方法和路由设备 | |
CN110225474A (zh) | 一种多连接下的数据量上报方法 | |
CN107566292B (zh) | 报文转发方法及装置 | |
CN109245957B (zh) | 网络健康度的检测方法及装置 | |
CN105743687B (zh) | 节点故障的判断方法及装置 | |
US20170222953A1 (en) | User packet forwarding control method and processing node | |
CN112995036A (zh) | 网络流量的调度方法及装置 | |
CN107659505A (zh) | 一种sdn网络的选路方法和sdn控制器 | |
CN105337860A (zh) | 一种数据包传输路径的确定方法、装置及系统 | |
EP2475134A1 (en) | Applying a table-lookup approach to load balancing in forwarding data in a network | |
CN105812278A (zh) | 软件定义网络中服务质量控制方法及装置 | |
CN108600106A (zh) | 一种低时延的数据交换装置及方法 | |
CN107682257A (zh) | 数据传输方法和系统 | |
CN101753266B (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 |