一种流表更新方法及装置的制造方法

文档序号:8546123阅读:311来源:国知局
一种流表更新方法及装置的制造方法
【技术领域】
[0001]本发明涉及通信领域,尤其涉及一种流表更新方法及装置。
【背景技术】
[0002]随着网络技术的发展,为了提高网络的配置效率,SDN (Software DefinedNetwork,软件定义网络)应运而生。SDN是将网络中的交换机或路由器的控制功能分离出来,并交由控制器完成,而该交换机或路由器,只具有数据转发功能,从而实现网络控制层面和数据层面的分离。
[0003]现有技术中,交换机接收到数据包之后,交换机可将该数据包与交换机中保存的流表中的流表项依次进行匹配,若该数据包与该流表中的所有流表项均匹配失败,交换机则可将该数据包发送至控制器,以使得控制器可根据该数据包,确定与该数据包对应的流表项,并将该流表项发送至交换机,从而交换机可将该流表项插入该流表中,以更新该流表,并根据该流表项转发该数据包。
[0004]然而,上述流表更新过程中,若流表已满,即流表资源已被所有客户端的多个流表项全部占用,则交换机无法再在该流表中插入与客户端发送的数据包对应的其他流表项,即交换机无法更新该流表,进而无法满足客户端对流表资源的需求,以及无法实现流表资源的公平分配。

【发明内容】

[0005]本发明的实施例提供一种流表更新方法及装置,能够在流表已满的状态下更新流表,从而满足客户端对流表资源的需求,以及实现流表资源的公平分配。
[0006]为达到上述目的,本发明的实施例采用如下技术方案:
[0007]第一方面,本发明实施例提供一种流表更新方法,包括:
[0008]根据第一客户端的信息和网络创建信息,确定与所述第一客户端的信息和所述网络创建信息对应的所述第一客户端的流表项数目的阈值,其中,所述第一客户端的信息包括所述第一客户端的序列号ID,所述网络创建信息包括所述第一客户端所在网络的ID和所述第一客户端所在网络的所有客户端的媒体访问控制MAC地址;
[0009]获取交换机上报的数据包,所述数据包是由所述第一客户端发送给所述交换机的,并且所述数据包与所述交换机中保存的流表中的所述第一客户端的各个流表项匹配失败;
[0010]生成所述第一客户端的与所述数据包对应的第一流表项;
[0011]若所述流表已满,且所述流表中的所述第一客户端的流表项数目小于所述第一客户端的流表项数目的阈值,则生成第一指示,所述第一指示用于指示所述交换机将所述流表中流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为所述第一流表项,其中,所述溢值为所述第二客户端的流表项数目超出所述第二客户端的流表项数目的阈值的数目;
[0012]下发所述第一流表项和所述第一指示至所述交换机,以使得所述交换机根据所述第一指示将所述流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为所述第一流表项。
[0013]在第一方面的第一种可能的实现方式中,所述根据第一客户端的信息和网络创建信息,确定与所述第一客户端的信息和所述网络创建信息对应的所述第一客户端的流表项数目的阈值,具体包括:
[0014]根据所述第一客户端的信息和所述网络创建信息,确定与所述第一客户端的信息和所述网络创建信息对应的所述第一客户端的网络级别;
[0015]根据所述第一客户端的网络级别,确定与所述第一客户端的网络级别对应的所述第一客户端的流表项数目的阈值。
[0016]结合前述的第一方面或第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述获取交换机上报的数据包之后,生成第一指示之前,所述方法还包括:
[0017]统计所述流表中的所述第一客户端的流表项数目。
[0018]结合前述的第一方面或第一方面的第一种可能的实现方式至第二种可能的实现方式中的任一种实现方式,在第三种可能的实现方式中,所述生成第一指示,具体包括:
[0019]确定所述流表中的各个客户端的流表项数目的溢值;
[0020]根据所述各个客户端的流表项数目的溢值,确定流表项数目的溢值最大的所述至少一个第二客户端;
[0021]确定所述至少一个第二客户端的任意一个流表项;
[0022]根据所述至少一个第二客户端的任意一个流表项,生成与所述至少一个第二客户端的任意一个流表项对应的所述第一指示。
[0023]结合前述的第一方面或第一方面的第一种可能的实现方式至第三种可能的实现方式,在第四种可能的实现方式中,所述生成所述第一客户端的与所述数据包对应的第一流表项,具体包括:
[0024]根据所述数据包,确定所述数据包的转发路径;
[0025]根据所述数据包和所述数据包的转发路径,生成与所述数据包对应的所述第一流表项。
[0026]结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述根据所述数据包,确定所述数据包的转发路径,具体包括:
[0027]获取所述数据包的地址信息,其中,所述数据包的地址信息包括MAC地址,或MAC地址和互联网协议IP地址;
[0028]根据所述数据包的地址信息,确定与所述数据包的地址信息对应的所述数据包的转发路径。
[0029]结合第一方面的第四种可能的实现方式,在第六种可能的实现方式中,所述根据所述数据包和所述数据包的转发路径,生成所述第一流表项,具体包括:
[0030]获取所述数据包的包头信息;
[0031]根据所述数据包的包头信息,确定与所述数据包的包头信息对应的所述第一流表项的匹配域;
[0032]根据所述第一流表项的匹配域和所述数据包的转发路径,生成与所述数据包对应的所述第一流表项。
[0033]结合前述的第一方面或第一方面的第一种可能的实现方式至第二种可能的实现方式中的任一种实现方式,在第七种可能的实现方式中,所述方法还包括:
[0034]若所述流表已满,且所述流表中的所述第一客户端的流表项数目大于或等于所述第一客户端的流表项数目的阈值,则提示错误信息。
[0035]第二方面,本发明实施例提供一种流表更新方法,包括:
[0036]接收来自第一客户端的数据包;
[0037]若所述数据包与流表中的所述第一客户端的各个流表项匹配失败,则发送所述数据包至控制设备,以使得所述控制设备根据所述数据包,生成所述第一客户端的与所述数据包对应的第一流表项,并当所述流表已满,且所述流表中的所述第一客户端的流表项数目小于所述第一客户端的流表项数目的阈值时,生成第一指示;
[0038]接收所述控制设备下发的所述第一流表项和所述第一指示,所述第一指示用于指示将所述流表中流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为所述第一流表项;
[0039]根据所述第一指示,将所述流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为所述第一流表项。
[0040]在第二方面的第一种可能的实现方式中,所述根据所述第一指示,将所述流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为所述第一流表项,具体包括:
[0041]根据所述第一指示,删除所述流表项数目的溢值最大的至少一个第二客户端的任意一个流表项;
[0042]将所述第一流表项插入所述流表中。
[0043]结合前述的第二方面或第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述接收来自第一客户端的数据包之后,发送所述数据包至控制设备之前,所述方法还包括:
[0044]将所述数据包与所述流表中的所述第一客户端的各个流表项进行匹配。
[0045]结合前述的第二方面或第二方面的第一种可能的实现方式至第二种可能的实现方式中的任一种实现方式,在第三种可能的实现方式中,所述接收所述控制设备下发的所述第一流表项和所述第一指示之后,所述方法还包括:
[0046]根据所述第一流表项,转发所述数据包。
[0047]在第二方面的第四种可能的实现方式中,所述方法还包括:
[0048]若所述数据包与所述流表中的所述第一客户端的第二流表项匹配成功,则根据所述第二流表项转发所述数据包。
[0049]第三方面,本发明实施例提供一种控制设备,包括:
[0050]确定单元,用于根据第一客户端的信息和网络创建信息,确定与所述第一客户端的信息和所述网络创建信息对应的所述第一客户端的流表项数目的阈值,其中,所述第一客户端的信息包括所述第一客户端的序列号ID,所述网络创建信息包括所述第一客户端所在网络的ID和所述第一客户端所在网络的所有客户端的媒体访问控制MAC地址;
[0051]获取单元,用于获取交换机上报的数据包,所述数据包是由所述第一客户端发送给所述交换机的,并且所述数据包与所述交换机中保存的流表中的所述第一客户端的各个流表项匹配失败;
[0052]生成单元,用于生成所述第一客户端的与所述获取单元获取的所述数据包对应的第一流表项,以及若所述流表已满,且所述流表中的所述第一客户端的流表项数目小于所述确定单元确定的所述第一客户端的流表项数目的阈值,则生成第一指示,所述第一指示用于指示所述交换机将所述流表中流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为所述第一流表项,其中,所述溢值为所述第二客户端的流表项数目超出所述第二客户端的流表项数目的阈值的数目;
[0053]发送单元,用于下发所述生成单元生成的所述第一流表项和所述第一指示至所述交换机,以使得所述交换机根据所述第一指示将所述流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为所述第一流表项。
[0054]在第三方面的第一种可能的实现方式中,
[0055]所述确定单元,具体用于根据所述第一客户端的信息和所述网络创建信息,确定与所述第一客户端的信息和所述网络创建信息对应的所述第一客户端的网络级别,并根据所述第一客户端的网络级别,确定与所述第一客户端的网络级别对应的所述第一客户端的流表项数目的阈值。
[0056]结合前述的第三方面或第三方面的第一种可能的实现方式,在第二种可能的实现方式中,所述控制设备还包括统计单元,
[0057]所述统计单元,用于在所述获取单元获取到所述交换机上报的所述数据包之后,所述生成单元生成所述第一指示之前,统计所述流表中的所述第一客户端的流表项数目。
[0058]结合前述的第三方面或第三方面的第一种可能的实现方式至第二种可能的实现方式中的任一种实现方式,在第三种可能的实现方式中,
[0059]所述确定单元,具体用于确定所述流表中的各个客户端的流表项数目的溢值,并根据所述各个客户端的流表项数目的溢值,确定流表项数目的溢值最大的所述至少一个第二客户端,以及确定所述至少一个第二客户端的任意一个流表项;
[0060]所述生成单元,具体用于根据所述确定单元确定的所述至少一个第二客户端的任意一个流表项,生成与所述至少一个第二客户端的任意一个流表项对应的所述第一指示。
[0061]结合前述的第三方面或第三方面的第一种可能的实现方式至第三种可能的实现方式中的任一种实现方式,在第四种可能的实现方式中,
[0062]所述确定单元,具体用于根据所述获取单元获取的所述数据包,确定所述数据包的转发路径;
[0063]所述生成单元,具体用于根据所述数据包和所述确定单元确定的所述数据包的转发路径,生成与所述数据包对应的所述第一流表项。
[0064]结合第三方面的第四种可能的实现方式,在第五种可能的实现方式中,
[0065]所述获取单元,具体用于获取所述数据包的地址信息,其中,所述数据包的地址信息包括MAC地址,或MAC地址和互联网协议IP地址;
[0066]所述确定单元,具体用于根据所述获取单元获取的所述数据包的地址信息,确定与所述数据包的地址信息对应的所述数据包的转发路径。
[0067]结合第三方面的第四种可能的实现方式,在第六种可能的实现方式中,
[0068]所述获取单元,具体用于获取所述数据包的包头信息;
[0069]所述确定单元,具体用于根据所述获取单元获取的所述数据包的包头信息,确定与所述数据包的包头信息对应的所述第一流表项的匹配域;
[0070]所述生成单元,具体用于根据所述确定单元确定的所述第一流表项的匹配域和所述数据包的转发路径,生成与所述数据包对应的所述第一流表项。
[0071]结合前述的第三方面或第三方面的第一种可能的实现方式至第二种可能的实现方式中的任一种实现方式,在第七种可能的实现方式中,所述控制设备还包括提示单元,
[0072]所述提示单元,用于若所述流表已满,且所述统计单元统计的所述第一客户端的流表项数目大于或等于所述第一客户端的流表项数目的阈值,则提示错误信息。
[0073]第四方面,本发明实施例提供一种交换机,包括:
[0074]接收单元,用于接收来自第一客户端的数据包;
[0075]发送单元,用于若所述接收单元接收的所述数据包与流表中的所述第一客户端的各个流表项匹配失败,则发送所述数据包至控制设备,以使得所述控制设备根据所述数据包,生成所述第一客户端的与所述数据包对应的第一流表项,并当所述流表已满,且所述流表中的所述第一客户端的流表项数目小于所述第一客户端的流表项数目的阈值时,生成第一指示;
[0076]所述接收单元,还用于接收所述控制设备下发的所述第一流表项和所述第一指示,所述第一指示用于指示将所述流表中流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为所述第一流表项;
[0077]替换单元,用于根据所述接收单元接收的所述第一指示,将所述流表项数目的溢值最大的至少一个第二客户端的任意一个流表项替换为所述接收单元接收的所述第一流表项。
[0078]在第四方面的第一种可能的实现方式中,
[0079]所述替换单元,具体用于根据所述接收单元接收的所述
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1