CN106713182A - 一种处理流表的方法及装置 - Google Patents

一种处理流表的方法及装置 Download PDF

Info

Publication number
CN106713182A
CN106713182A CN201510486210.0A CN201510486210A CN106713182A CN 106713182 A CN106713182 A CN 106713182A CN 201510486210 A CN201510486210 A CN 201510486210A CN 106713182 A CN106713182 A CN 106713182A
Authority
CN
China
Prior art keywords
interchanger
flow table
path
switch
controller
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.)
Granted
Application number
CN201510486210.0A
Other languages
English (en)
Other versions
CN106713182B (zh
Inventor
李金明
胡成臣
张朋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201510486210.0A priority Critical patent/CN106713182B/zh
Priority to PCT/CN2016/094227 priority patent/WO2017025021A1/zh
Priority to EP16834645.0A priority patent/EP3324586B1/en
Publication of CN106713182A publication Critical patent/CN106713182A/zh
Priority to US15/892,417 priority patent/US10728154B2/en
Application granted granted Critical
Publication of CN106713182B publication Critical patent/CN106713182B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0882Utilisation of link capacity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/025Updating only a limited number of routers, e.g. fish-eye update
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/38Flow based routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/64Routing or path finding of packets in data switching networks using an overlay routing layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/028Dynamic adaptation of the update intervals, e.g. event-triggered updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing

Abstract

本发明涉及通信领域,具体涉及一种处理流表的方法及装置。其中,方法包括:所述交换机监测所述交换机的流表的负载;当所述交换机的流表的负载超过预设阈值时,所述交换机根据扩散流表的匹配规则确定目标数据流的扩散对象;当确定的所述扩散对象为与所述交换机的相邻交换机时,所述交换机向所述相邻交换机转发所述目标数据流。当所述交换机流表的负载超过预设阈值时,所述交换机可能遭到攻击,将匹配流表项失败的数据流按照扩散概率转发到相邻的交换机由相邻交换机进行处理,从而降低该交换机更新流表项的频率,提高正常数据流的命中率,降低转发正常数据流的时延。

Description

一种处理流表的方法及装置
技术领域
本发明涉及通信领域,具体涉及一种处理流表的方法及装置。
背景技术
SDN(software-defined networking,软件定义网络)是一种控制与转发相分离的网络架构。在SDN架构中,网络设备的控制功能会被抽象到一台控制器上,并由该控制器向各个网络设备下发流表项。网络设备接收并保存控制器下发的流表项,并依据此流表项对数据流进行操作,例如数据流的转发、丢弃、修改等操作。
SDN基于流的控制使得交换机流表消耗极快,而SDN交换机的硬件流表一般由TCAM(Ternary Content-Addressable Memory,三重内容寻址内存)实现,但是TCAM容量有限,因此攻击者可通过伪造大量数据流以使得控制器向交换机流表中添加大量流表项,甚至充满交换机流表,当该交换机流表无法再继续添加流表项时,交换机需要删除已有的流表项,以添加新的流表项。
从上可知,当交换机受到攻击时,交换机会在短时间内接收到大量的攻击数据流,而这些攻击数据流未能匹配到交换机中存储的流表项,那么交换机就需要向控制器发送Packet_in数据包以便获取与攻击数据流匹配的流表项,但是由于交换机流表容量有限,从而正常数据流的流表项将被攻击数据流的流表项替换出交换机,导致正常的数据流无法命中,造成处理正常的数据流的时延增加。
发明内容
本发明实施例提供了一种处理流表的方法及装置,该方法使得交换机能够快速处理数据流,缩短正常数据流处理的时延。
本发明实施例的第一方面公开了一种处理流表的方法,所述方法应用于软件定义网络SDN中,所述SDN包括控制器和交换机,所述方法包括:
所述交换机监测所述交换机的流表的负载;
当所述交换机的流表的负载超过预设阈值时,所述交换机根据扩散流表的匹配规则确定目标数据流的扩散对象,其中,所述目标数据流是指匹配所述交换机流表失败的数据流,所述扩散流表是所述控制器下发的;
当确定的所述扩散对象为与所述交换机的相邻交换机时,所述交换机向所述相邻交换机转发所述目标数据流。
结合第一方面,在第一方面的第一种可能的实现方式中,所述匹配规则包括所述交换机的端口号和所述扩散对象的对应关系;
在所述交换机根据扩散流表的匹配规则确定目标数据流的扩散对象之前,所述方法还包括:
所述交换机确定入端口的端口号,其中,所述入端口是指所述交换机接收到所述目标数据流的端口;
所述交换机根据扩散流表的匹配规则确定目标数据流的扩散对象,包括:
所述交换机根据所述入端口的端口号和所述匹配规则确定所述目标数据流的扩散对象。
结合第一方面,在第一方面的第二种可能的实现方式中,所述匹配规则包括数字区间与所述扩散对象的对应关系,其中,一个数字区间对应一个扩散对象,并且所述匹配规则中有至少两个数字区间;
所述交换机根据扩散流表的匹配规则确定目标数据流的扩散对象之前,所述方法还包括:
所述交换机对所述目标数据流的包头域进行哈希计算,获得数值;
所述交换机根据扩散流表的匹配规则确定目标数据流的扩散对象具体包括:
所述交换机确定所述数值所在的数字区间;
所述交换机根据所述数字区间和所述匹配规则确定所述扩散对象。
结合第一方面或第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述交换机根据扩散流表的匹配规则确定目标数据流的扩散对象之后,所述方法还包括:
当确定所述扩散对象为所述控制器时,所述交换机向所述控制器请求与所述目标数据流匹配的流表项。
在本发明的第二方面,公开了另一种处理流表的方法,所述方法应用于软件定义网络SDN中,所述SDN包括控制器和多个交换机,所述方法包括:
所述控制器根据网络拓扑确定与所述第一交换机直接连接的第二交换机,其中,所述第一交换机是所述多个交换机中的任意一个交换机,所述第二交换机是所述多个交换机中除第一交换机外的其他交换机,所述第二交换机的数量为至少一个;
所述控制器获取所述第二交换机的流表的负载;
所述控制器根据所述第二交换机的流表的负载确定所述第一交换机的扩散流表;
所述控制器向所述第一交换机发送所述扩散流表。
结合第二方面,在第二方面的第一种可能的实现方式中,所述控制器根据所述交换机的连接关系以及所述交换机的流表的负载确定所述交换机中每个交换机的扩散流表,具体包括:
所述控制器根据所述第一交换机与所述第二交换机的连接关系确定所述第一交换机的转发路径,其中,所述转发路径是指所述第一交换机与所述第二交换机之间的路径;
所述控制器根据每条转发路径中第二交换机的流表的负载确定所述每条转发路径的扩散概率;
所述控制器根据所述每条转发路径的扩散概率确定所述第一交换机的扩散流表。
结合第二方面的第一种可能的实现方式中,在第二方面的第二种可能的实现方式中,所述控制器根据所述每条转发路径的扩散概率确定所述第一交换机的扩散流表,包括:
所述控制器根据所述每条转发路径的扩散概率确定每条转发路径所对应的所述第一交换机的出端口的数量,所述第一交换机的出端口用于转发数据流;
所述控制器根据所述每条转发路径以及所述每条转发路径所对应的所述第一交换机的出端口的数量确定所述第一交换机的扩散流表。
结合第二方面的第一种可能的实现方式中,在第二方面的第三种可能的实现方式中,所述控制器根据所述每条转发路径的扩散概率确定所述第一交换机的扩散流表,包括:
所述控制器根据所述每条转发路径的扩散概率确定每条转发路径所对应的数字区间;
所述控制器根据所述每条转发路径以及所述每条转发路径所对应的数字区间确定所述第一交换机的扩散流表。
本发明的第三方面,公开了另一种处理流表的方法,所述方法应用于软件定义网络SDN中,所述方法包括:
交换机监测所述交换机流表的状态,所述交换机流表的状态用于指示所述流表的负载;
当所述交换机流表的负载超过预设阈值时,所述交换机根据扩散概率向相邻交换机转发目标数据流,其中,所述目标数据流是指匹配所述交换机流表失败的数据流。
结合第三方面,在第三方面的第一种可能的实现方式中,所述交换机根据扩散概率向相邻交换机扩散目标数据流之前,所述方法还包括:
所述交换机按照下列公式计算所述扩散概率;
其中,PS是指扩散概率,Pmax是指预设最大扩散概率,Pmin是指预设最小概率,avg是所述流表使用率,maxthresh是指第一阈值,minthresh是指第二阈值,其中所述第一阈值大于所述第二阈值。
结合第三方面或第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,当所述交换机流表的使用率大于第一阈值时,所述方法还包括:
所述交换机按照所述预设最大扩散概率向所述相邻交换机转发所述目标数据流。
本发明的第四方面,公开了另一种处理流表的方法,所述方法应用于软件定义网络SDN中,所述SDN包括控制器和多个交换机,所述方法包括:
所述控制器获取所述多个交换机的流表的负载;
所述控制器根据网络拓扑确定所述多个交换机的连接关系;
所述控制器根据所述多个交换机的连接关系以及所述多个交换机中每个交换机的流表的负载确定每条转发路径的权重,其中,所述转发路径为两个直接连接的交换机之间的路径;
所述控制器根据所述每条转发路径的权重确定所述SDN中数据流的传输路径以使得所述SDN处于负载均衡状态。
结合第四方面,在第四方面的第一种可能的实现方式中,所述控制器根据所述多个交换机的连接关系以及所述多个交换机中每个交换机的流表使用率确定每条转发路径的权重,包括:
所述控制器根据所述多个交换机的连接关系确定每条转发路径;
所述控制器确定所述每条转发路径中包含的交换机;
所述控制器根据所述每条转发路径中目标交换机的流表的负载确定所述每条转发路径的权重,其中,所述目标交换机是指接收到数据流的交换机。
结合第四方面的第一种可能的实现方式,在第四方面的第二种可能的实现方式中,所述控制器根据所述每条转发路径中目标交换机的流表使用率确定所述每条转发路径的权重,具体包括:
所述控制器根据以下计算公式进行计算所述每条转发路径的权重:
其中,所述TH是预设的流表使用率阈值,Max是预设的常数,f(ij)表示交换机i到交换机j的权重,t表示交换机j的流表使用率,所述交换机i属于所述多个交换机,所述交换机j属于所述多个交换机。
本发明的第五方面,公开了一种交换机,所述交换机应用于软件定义网络SDN中,其特征在于,所述交换机包括获取单元,第一确定单元和扩撒单元;
所述监测单元,用于监测所述交换机的流表的负载;
所述第一确定单元,用于当所述交换机的流表的负载超过预设阈值时,所述交换机根据扩散流表的匹配规则确定目标数据流的扩散对象,其中,所述目标数据流是指匹配所述交换机流表失败的数据流,所述扩散流表是所述控制器下发的;
所述扩散单元,用于当确定的所述扩散对象为与所述交换机的相邻交换机时,所述交换机向所述相邻交换机转发所述目标数据流。
结合第五方面,在第五方面的第一种可能的实现方式中,所述匹配规则包括所述交换机的端口号和所述扩散对象的对应关系;所述交换机还包括第二确定单元;
所述第二确定单元,用于确定入端口的端口号,其中,所述入端口是指所述交换机接收到所述目标数据流的端口;
所述第一确定单元,用于根据所述入端口的端口号和所述匹配规则确定所述目标数据流的扩散对象。
结合第五方面,在第五方面的第二种可能的实现方式中,
所述匹配规则包括数字区间与所述扩散对象的对应关系,其中,一个数字区间对应一个扩散对象,并且所述匹配规则中有至少两个数字区间;所述交换机还包括哈希单元;
所述哈希单元,用于对目标数据流的包头域进行哈希计算,获得数值;
所述第一确定单元,具体用于确定所述数值所在的数字区间,并根据所述数字区间和所述匹配规则确定所述扩散对象。
结合第五方面或第五方面的第一种可能的实现方式或第五方面的第二种可能的实现方式,在第五方面的第三种可能的实现方式中,
所述第一确定单元,还用于当确定所述扩散对象为所述控制器时,向所述控制器请求与所述目标数据流匹配的流表项。
本发明的第六方面公开了一种控制器,所述控制器应用于软件定义网络SDN中,所述SDN包括所述控制器和多个交换机,其特征在于,所述控制器包括确定单元、获取单元以及发送单元;
所述确定单元,用于根据网络拓扑确定与第一交换机直接连接的第二交换机,其中,所述第一交换机是所述多个交换机中的任意一个交换机,所述第二交换机是所述多个交换机中除第一交换机外的其他交换机,所述第二交换机的数量为至少一个;
所述获取单元,用于获取所述第二交换机的流表的负载;
所述确定单元,还用于根据所述第二交换机的流表的负载确定所述第一交换机的扩散流表;
所述发送单元,用于向所述第一交换机发送所述扩散流表。
结合第六方面,在第六方面的第一种可能的实现方式中,
所述确定单元具体包括第一确定子单元、第二确定子单元以及第三确定子单元;
所述第一确定子单元,用于根据所述第一交换机与所述第二交换机的连接关系确定所述第一交换机的转发路径,其中,所述转发路径是指所述第一交换机与所述第二交换机之间的路径;
所述第二确定子单元,用于根据每条转发路径中第二交换机的流表的负载确定所述每条转发路径的扩散概率;
所述第三确定子单元,用于根据所述每条转发路径的扩散概率确定所述第一交换机的扩散流表。
结合第六方面的第一种可能的实现方式,在第六方面的第二种可能的实现方式中,
所述第三确定子单元,具体用于据所述每条转发路径的扩散概率确定每条转发路径所对应的所述第一交换机的出端口的数量,所述第一交换机的出端口用于转发数据流;
所述第三确定子单元,还用于根据所述每条转发路径以及所述每条转发路径所对应的所述第一交换机的出端口的数量确定所述第一交换机的扩散流表。
结合第六方面的第一种可能的实现方式,在第六方面的第三种可能的实现方式中,
所述第三确定子单元,具体用于根据所述每条转发路径的扩散概率确定每条转发路径所对应的数字区间;
所述第三确定子单元,还用于根据所述每条转发路径以及所述每条转发路径所对应的数字区间确定所述第一交换机的扩散流表。
本发明的第七方面,公开了另一种交换机,
所述交换机应用于软件定义网络SDN中,其特征在于,所述交换机包括监测单元以及扩散单元;
所述监测单元,用于监测所述交换机的流表的负载;
所述扩散单元,用于当所述交换机流表的负载超过预设阈值时,所述交换机根据扩散概率向相邻交换机转发目标数据流,其中,所述目标数据流是指匹配所述交换机流表失败的数据流。
结合第七方面,在第七方面的第一种可能的实现方式中,所述交换机还包括计算单元,
所述计算单元,具体用于按照下列公式计算所述扩散概率;
其中,PS是指扩散概率,Pmax是指预设最大扩散概率,Pmin是指预设最小概率,avg是所述流表使用率,maxthresh是指第一阈值,minthresh是指第二阈值,其中所述第一阈值大于所述第二阈值;
所述扩散单元,用于当所述交换机流表的负载超过预设阈值时,所述交换机根据所述计算单元计算的扩散概率向相邻交换机扩散目标数据流。
结合第七方面或第七方面的第一种可能的实现方式,在第七方面的第二种可能的实现方式中,
所述扩散单元,还用于当所述交换机流表的使用率大于第一阈值时,所述交换机按照所述预设最大扩散概率向所述相邻交换机转发所述目标数据流。
本发明第八方面,公开了另一种控制器,所述控制器应用于软件定义网络SDN中,所述SDN包括所述控制器和多个交换机,其特征在于,所述控制器包括获取单元和确定单元;
所述获取单元,用于获取所述多个交换机流表的负载;
所述确定单元,用于根据网络拓扑确定所述多个交换机的连接关系;
所述确定单元,还用于根据所述多个交换机的连接关系以及所述多个交换机中每个交换机的流表的负载确定每个转发路径的权重,其中,所述转发路径为两个直接连接的交换机之间的路径;
所述确定单元,还用于根据所述每条转发路径的权重确定所述SDN中数据流的传输路径以使得所述SDN处于负载均衡状态。
结合第八方面,在第八方面的第一种可能的实现方式中,所述确定单元包括第一确定子单元、第二确定子单元以及第三确定子单元,具体包括:
所述第一确定子单元,用于所述控制器根据所述多个交换机的连接关系确定每条转发路径;
所述第二确定子单元,用于确定所述每条转发路径中包含的交换机;
所述第三确定子单元,用于根据所述每条转发路径中目标交换机的流表的负载确定所述每条转发路径的权重,其中,所述目标交换机是指接收到数据流的交换机。
结合第八方面的第一种可能的实现方式,在第八方面的第二种可能的实现方式中,
所述第三确定子单元,用于根据以下计算公式进行计算所述每条转发路径的权重:
其中,用流表使用率表示流表的负载,所述TH是预设的流表使用率阈值,Max是预设的常数,f(ij)表示交换机i到交换机j的权重,t表示交换机j的流表使用率,所述交换机i属于所述多个交换机,所述交换机j属于所述多个交换机。
从上可知,结合第一方面和第五方面提供的处理数据流的方法和交换机,当所述交换机流表的负载超过预设阈值时,所述交换机根据扩散流表的匹配规则确定目标数据流的扩散对象;当确定的所述扩散对象为与所述交换机相邻的交换机时,所述交换机向所述相邻的交换机转发所述目标数据流。当所述交换机流表的负载超过预设阈值时,所述交换机可能遭到攻击,将匹配流表项失败的数据流按照扩散概率转发到相邻的交换机由相邻交换机进行处理,从而降低该交换机更新流表项的频率,提高正常数据流的命中率,降低转发正常数据流的时延。
从上可知,结合第二方面和第六方面提供的处理数据流的方法和控制器,所述控制器确定第一交换机,并根据网络拓扑确定与所述第一交换机直接连接的第二交换机;所述控制器获取所述第二交换机的流表的负载;所述控制器根据所述第二交换机的流表的负载确定所述第一交换机的扩散流表;所述控制器向所述第一交换机发送所述扩散流表,以使得交换机能够根据扩散流表将匹配流表项失败的数据流扩散到相邻交换机中有相邻交换机进行处理,从而减轻该第一交换机的负载。
从上可知,结合第三方面和第七方面提供的处理数据流的方法和交换机,交换机监测所述交换机流表的状态;当所述交换机流表的负载超过预设阈值时,所述交换机根据扩散概率向相邻交换机转发匹配所述交换机流表失败的数据流,当所述交换机流表的负载超过预设阈值时,该交换机可能遭到攻击,将匹配所述交换机流表失败的数据流转发到相邻交换机,可以减轻该交换机的负载,降低该交换机替换流表项的频率,提升正常数据流的命中率,减少迟延。
从上可知,结合第四方面和第八方面提供的处理数据流的方法和控制器,所述控制器根据所述多个交换机的连接关系以及所述多个交换机中每个交换机的流表的负载确定每个转发路径的权重,所述控制器根据所述每条转发路径的权重确定所述SDN中数据流的传输路径,从而使得网络拓扑中交换机达到负载均衡的状态,提升交换机处理数据流的效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的一种处理数据流的方法;
图2为本发明另一实施例提供的一种处理数据流的方法;
图3为本发明另一实施例提供的一种处理数据流的方法;
图4为本发明另一实施例提供的一种处理数据流的方法;
图5为本发明另一实施例提供的一种处理数据流的方法;
图6a为本发明另一实施例提供的一种处理数据流的方法;
图6b为本发明另一实施例提供的一种处理数据流的方法;
图7为本发明一实施例提供的一种交换机;
图8为本发明一实施例提供的一种服务器;
图9为本发明另一实施例提供的一种交换机;
图10为本发明另一实施例提供的一种服务器;
图11为本发明另一实施例提供的一种交换机;
图12为本发明另一实施例提供的一种服务器;
图13为本发明另一实施例提供的一种交换机;
图14为本发明另一实施例提供的一种服务器。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
SDN(Software-Defined Network,软件定义网络)是一种控制与转发相分离的网络架构。在该SDN架构中,网络设备的控制功能会被抽象到一台控制器上,并由该控制器向各个网络设备下发流表项。网络设备接收并保存控制器下发的流表项,并依据此流表项对数据流进行的操作,如数据流的转发、丢弃、修改等操作。
SDN基于数据流的控制使得交换机流表消耗极快,而SDN交换机的硬件流表一般由TCAM(Ternary Content-Addressable Memory,三重内容寻址内存)实现,但是该TCAM容量有限。因此攻击者可通过伪造大量数据流以使得控制器向交换机流表中添加大量流表项,甚至充满交换机流表,由于该交换机流表容量有限,该交换机流表无法再继续添加流表项时,该交换机需要删除已有的流表项后,再添加新的流表项。
但是,由于正常数据流的流表项将被攻击流的流表项替换出交换机,导致正常的数据流无法命中,造成处理正常的数据流的时延增加。
针对上述问题,如图1所示,本发明实施例提出一种处理流表的方法,该方法具体如下:
101、交换机机监测该交换机的流表的负载;
其中,交换机流表中流表项数量的多少可以指示该流表的负载;
其中,交换机流表的负载也可以通过流表的使用率来反映,流表的使用率是指流表项占用的容量与该流表的总容量的比值;
其中,监测交换机流表的负载可以理解为监测交换机流表的使用率。
其中,交换机流表包括多个流表项,每个流表项都有三部分组成。流表项的三部分包括包头域、计数器以及动作。
包头域用于对交换机接收到的数据包的包头内容进行匹配。包头域包括但不限于以下字段:源MAC(Media Access Control,媒体接入控制)地址、目的MAC地址、以太网类型、vlan id(virtual local area network identification,虚拟局域网标识)、IP(Internet Protocol,网络协议)类型、源IP地址、目的IP地址、源TCP(Transmission Control Protocol,传输控制协议)端口号、目的TCP端口号、源UDP(User Datagram Protocol,用户数据报协议)端口号、目的UDP端口号等。其中,包头域也叫做匹配域。
计数器用于统计匹配的数据包的个数。
动作用于指示交换机在收到匹配的数据包后应该如何对其进行处理,例如转发或者丢弃处理方式。
102、当该交换机的流表的负载超过预设阈值时,该交换机根据扩散流表的匹配规则确定目标数据流的扩散对象,其中,该目标数据流是指匹配该交换机流表失败的数据流,该扩散流表是该控制器下发的;
其中,该交换机流表的负载超过预设阈值包括流表的流表项数量达到预设数量;例如,该流表一共可容纳1000条流表项,将预设数量设置为800条,那么当该流表中的流表项大于或等于800条时,该流表的负载便达到预设阈值。
其中,该交换机流表的负载超过预设阈值还包括流表的使用率达到预设阈值,例如,假设预设阈值为70%,那么当流表的使用率大于或等于70%时,流表的负载状态便达到预设阈值。
103、当确定的该扩散对象为与该交换机的相邻交换机时,该交换机向该相邻交换机转发该目标数据流。
其中,当确定该扩散对象是相邻交换机时,该交换机不用向控制发送packet_in请求数据包去请求该目标数据流对应的流表项,而是将该目标数据流转发给相邻的交换机去处理,从而减轻该交换机的负担。
从上可知,根据本发明实施例提供的处理数据流的方法,当该交换机流表的负载超过预设阈值时,该交换机根据扩散流表的匹配规则确定目标数据流的扩散对象;当确定的该扩散对象为与该交换机相邻的交换机时,该交换机向该相邻的交换机转发该目标数据流。当该交换机流表的负载超过预设阈值时,该交换机有可能遭到攻击,将匹配流表项失败的数据流按照扩散概率转发到相邻的交换机由相邻交换机进行处理,从而降低该交换机更新流表项的频率,提高正常数据流的命中率,降低转发正常数据流的时延。
可选的,基于上述实施例,在本发明另一实施例中,该匹配规则包括该交换机的端口号和该扩散对象的对应关系;
在该交换机根据扩散流表的匹配规则确定目标数据流的扩散对象之前,该方法还包括:
该交换机确定入端口的端口号,其中,该入端口是指该交换机接收到该目标数据流的端口;
该交换机根据扩散流表的匹配规则确定目标数据流的扩散对象,包括:
该交换机根据该入端口的端口号和该匹配规则确定该目标数据流的扩散对象。
例如,匹配规则可以是:1号入端口接收到的数据流转发到相邻交换机;2号入端口接收到的数据流由该交换机处理。
可选的,基于上述实施例,在本发明另一实施例中,
该匹配规则包括数字区间与该扩散对象的对应关系,其中,一个数字区间对应一个扩散对象,并且该匹配规则包括至少两个数字区间;
该交换机根据扩散流表的匹配规则确定目标数据流的扩散对象之前,该方法还包括:
该交换机对该目标数据流的包头域进行哈希计算,获得数值;
该交换机根据扩散流表的匹配规则确定目标数据流的扩散对象具体包括:
该交换机确定该数值所在的数字区间;
该交换机根据该数字区间和该匹配规则确定该扩散对象。
例如,匹配规则可以是将数值为1至100的数据流转发至相邻交换机;将数值为101至200的数据流提交控制器处理。
可选的,基于上述实施例,在本发明另一实施例中,该交换机根据扩散流表的匹配规则确定目标数据流的扩散对象之后,该方法还包括:
当确定的所述扩散对象为所述控制器时,所述交换机向所述控制器请求与所述目标数据流匹配的流表项。
其中,该交换机向该控制器发送消息以便获取与该目标数据流匹配的流表项。
在本发明的另一实施例中,控制器预定义扩散流表,并将扩散流表部署至交换机。其中,控制器可提前部署交换机的扩散流表,也可动态监控交换机的流表的负载,当交换机流表的负载达到预设阈值时在下发扩散流表。
例如,在交换机流表的使用率大于预设阈值时,对于没有匹配到流表项的数据流,交换机不向控制器发送请求处理,而是按照控制器下发的扩散流表,将该数据流发送至相邻交换机进一步处理。由于相邻交换机上也预先部署了处理策略,相邻交换机按照该处理策略完成数据流的相应操作,保障数据流处理的完整性。其中,相邻交换机可以将接收到的数据流再次进行扩散,也可以向控制器发送请求,获取与该数据流对应的流表项。
如图2所示,本发明实施例提出另一种处理流表的方法,该方法应用于SDN网络中,该SDN包括控制器和多个交换机,方法包括:
201、该控制器网络拓扑确定与第一交换机直接连接的第二交换机,其中,该第一交换机是该多个交换机中的任意一个交换机,该第二交换机是该多个交换机中除第一交换机外的其他交换机,该第二交换机的数量为至少一个;
其中,在网络拓扑中会包括多个交换机,交换机之间存在连接关系。
202、该控制器获取该第二交换机的流表的负载;
其中,该第二交换机的流表负载是指流表的使用率或者流表中流表项的数量。例如,流表的使用率超过阈值就表明该第二交换机的流表超负载;流表的流表项超过预设数量就表明该第二交换机的流表超负载,在此不一一例举。
203、该控制器根据该第二交换机的流表的负载确定该第一交换机的扩散流表;
204、该控制器向该第一交换机发送该扩散流表。
从上可知,使用本发明实施例提供的处理流表的方法,该控制器根据该第二交换机的流表的负载确定该第一交换机的扩散流表;该控制器向该第一交换机发送该扩散流表,以使得第一交换机能够根据扩散流表将接收到的数据流转发到相邻交换机中由相邻交换机进行处理,从而减轻该第一交换机的负载。
可选的,基于图2该描述的实施例,步骤203:该控制器根据该第二交换机的流表的负载确定该第一交换机的扩散流表,包括:
205、该控制器根据该第一交换机与该第二交换机的连接关系确定该第一交换机的转发路径,其中,该转发路径是指该第一交换机与该第二交换机之间的路径;
206、该控制器根据每条转发路径中第二交换机的流表的负载确定该每条转发路径的扩散概率;
207、该控制器根据该每条转发路径的扩散概率确定该第一交换机的扩散流表。
其中,一个交换机可以与多个交换机连接,那么就构成多条转发路径。例如,有交换机A、交换机B、交换机C以及交换机D四台交换机,交换机A与其他三台交换机分别连接,其中,交换机A为源交换机,其他三台交换机为目标交换机,那么就构成三条转发路径,交换机A至交换机B为第一条转发路径,交换机A至交换机C为第二条路径,交换机A至交换机D为第三条路径。交换机A同时位于3条转发路径中,交换机B、交换机C以及交换机D为交换机A所在转发路径中的目标交换机。
其中,流表的状态是指流表的流表项的数量或者流表的使用率。
其中,目标交换机的流表使用率越低,该目标交换机所在的转发路径的扩散概率越高,目的是为了使得每个交换机的负载均衡。
例如,交换机B的流表使用率是30%,交换机C的流表使用率是40%,交换机C的流表使用率是40%,那么,交换机A就可以将交换机A至交换机B的转发路径的扩散概率设置为30%,将交换机A至交换机C的转发路径的扩散概率设置为20%,将交换机A至交换机D的转发路径的扩散概率设置为20%,将交换机A至控制器的转发路径的扩散概率设置为30%。
可选的,基于上述实施例,在本发明的另一实施例中,步骤207:该控制器根据该每条转发路径的扩散概率确定该第一交换机的扩散流表,包括:
2071、该控制器根据该每条转发路径的扩散概率确定每条转发路径所对应的该第一交换机的出端口的数量,该第一交换机的出端口用于转发数据流;
其中,扩散概率越高的转发路径对应的出端口越多。
例如,交换机A分别与交换机B、交换机C、交换机D连接。交换机A为源交换机,交换机B、交换机C与交换机D为目标交换机。
交换机A至交换机B为第一转发路径,该第一转发路径的扩散概率为40%;
交换机A至交换机C为第二转发路径,该第二转发路径的扩散概率为20%;
交换机A至交换机D为第三转发路径,该第三转发路径的扩散概率为20%;
那么交换机A对应两个出端口,交换机B对应一个出端口,交换机C对应一个出端口。交换机A就可以设置第一转发路径对应交换机A的第一端口和第二端口,第二转发路径对应交换机A的第三端口,第三转发路径对应交换机A的第四端口。
2072、该该控制器根据该每条转发路径以及该每条转发路径所对应的该第一交换机的出端口的数量确定该第一交换机的扩散流表。
可选的,基于上述实施例,在本发明的另一实施例中,步骤207:该控制器根据该每个源交换机所在的转发路径的扩散概率确定每个源交换机的扩散流表,具体包括:
2073、该控制器根据该每条转发路径的扩散概率确定每条转发路径所对应的数字区间;
其中,扩散概率越大的转发路径对应的数字区间越宽。
例如,交换机A分别与交换机B、交换机C、交换机D连接。交换机A为源交换机,交换机B、交换机C与交换机D为目标交换机。
交换机A至交换机B为第一转发路径,该第一转发路径的扩散概率为40%;
交换机A至交换机C为第二转发路径,该第二转发路径的扩散概率为20%;
交换机A至交换机D为第三转发路径,该第三转发路径的扩散概率为20%;
第一转发路径对应的数字区间可以是0至100,第二转发路径对应的数字区间为101至150,第三转发路径对应的数字区间为150至200。
2074、该控制器根据该每条转发路径以及该每条转发路径所对应的数字区间确定该第一交换机的扩散流表。
其中,扩散流表的格式不做限制,可以与交换机中的流表格式一致。
在本发明的另一个实施例中,当交换机流表使用率超过预设阈值时(图中为70%),依据扩散流表对未匹配成功的数据流转发。扩散流表包括两种扩散方式,一是向相邻交换机扩散(图中为扩散至交换机B及交换机C);二是向控制器扩散(即图中Controller)。
如图3所示,针对未匹配到流表的数据流,交换机对该数据流的包头域进行哈希以得到该数据流的哈希值,该哈希值是一个数字。其中,哈希值相等的数据流被认为是同一条流。
扩散流表中包含多条扩散规则,每条扩散规则对应一个数字范围,如果一条数据流的哈希值落在该数字范围内,则按照该数字范围对应的扩散规则进行扩散。
扩散规则一对应的数字范围是0至106,该数字范围对应的转发规则是向相邻交换机B进行转发。如果一个数据流的哈希值落在0到106的范围内,那么该交换机向相邻交换机B扩散该数据流。扩散规则三对应的数字范围是160至255,该数字范围对应的转发规则是向控制器进行转发。如果一个数据流的哈希值落在160到255的范围内,那么该交换机向控制器扩散该数据流。
如图4所示,针对未匹配到流表的数据流,交换机根据该数据流的入端口和扩散规则进行转发。例如,端口1、端口2和端口3流进的数据流按照扩散规则一会扩散到交换机B,端口4、端口5和端口6流进的数据流按照扩散规则二会扩散至交换机C,端口7和端口8流进的数据流按照扩散规则3会扩散至控制器。
如图5所示,本发明实施例提出另一种处理流表的方法,该方法应用于SDN网络中,方法包括:
301、交换机监测该交换机流表的负载;
其中,流表的负载可以是指流表中流表项的数量,也可以是指流表的使用率。
302、当该交换机流表的负载超过预设阈值时,该交换机根据扩散概率向相邻交换机转发目标数据流,其中,所述目标数据流是指匹配该交换机流表失败的数据流。
其中,流表的状态处于预设状态包括流表的流表项数量达到预设数量;例如,该流表一共可容纳1000条流表项,将预设数量设置为800条,那么当该流表中的流表项大于或等于800条时,该流表的状态便达到预设状态。
其中,流表的状态处于预设状态还包括流表的使用率达到预设值,例如,假设预设值为70%,那么当流表的使用率大于或等于70%时,流表的状态便处于预设状态。
从上可知,结合第三方面和第七方面提供的处理数据流的方法和交换机,交换机监测该交换机流表的状态;当该交换机流表的负载超过预设阈值时,该交换机根据扩散概率向相邻交换机转发匹配该交换机流表失败的数据流,当该交换机流表的负载超过预设阈值时,该交换机可能遭到攻击,将匹配该交换机流表失败的数据流转发到相邻交换机,可以减轻该交换机的负载,降低该交换机替换流表项的频率,提升正常数据流的命中率,减少迟延。
可选的,基于上述实施例,在本发明的另一个实施例中,
该交换机根据扩散概率向相邻交换机扩散目标数据流之前,该方法还包括:
该交换机按照下列公式计算该扩散概率;
其中,PS是指扩散概率,Pmax是指预设最大扩散概率,Pmin是指预设最小概率,avg是该流表使用率,maxthresh是指第一阈值,minthresh是指第二阈值,其中该第一阈值大于该第二阈值。
可选的,基于上述实施例,在本发明的另一个实施例中,该方法还包括:
当该交换机流表的使用率大于第一阈值时,该交换机按照该预设最大扩散概率向该相邻交换机转发该目标数据流。
如图6a所示,本发明实施例提出另一种处理流表的方法,该方法应用于SDN网络中,该SDN网络包括控制器和多个交换机,该方法包括:
401、该控制器获取该多个交换机流表的负载;
其中,该流表的负载是指流表的使用率,流表的使用率是指交换机中流表项占用的空间与流表容量的比值;
其中,该流表的负载也可以是指流表中流表项的数量。
例如,如果该流表的使用率超过预设值,则表明该交换机流表超负载,或者有可能是该交换机遭到攻击。
402、该控制器根据网络拓扑确定该多个交换机的连接关系;
其中,在网络拓扑中会包括多个交换机,交换机之间存在连接关系。
403、该控制器根据该多个交换机的连接关系以及该多个交换机中每个交换机的流表的负载确定每条转发路径的权重,其中,该转发路径为两个直接连接的交换机之间的路径;
404、该控制器根据该每条转发路径的权重确定该SDN中数据流的传输路径以使得该SDN处于负载均衡状态。
从上可知,结合第四方面和第八方面提供的处理数据流的方法和控制器,该控制器根据该多个交换机的连接关系以及该多个交换机中每个交换机的流表的负载确定每个转发路径的权重,该控制器根据该每条转发路径的权重确定该SDN中数据流的传输路径,从而使得网络拓扑中交换机达到负载均衡的状态,提升交换机处理数据流的效率。
可选的,基于上述实施例,在本发明的另一个实施例中,步骤403:该控制器根据该多个交换机的连接关系以及该多个交换机中每个交换机的流表使用率确定每个转发路径的权重,包括:
4031、该控制器根据该多个交换机的连接关系确定每条转发路径;
其中,一个交换机可以与多个交换机连接,那么就构成多条转发路径。例如,有交换机、交换机B、交换机C以及交换机D四台交换机,交换机A与其他三台交换机分别连接,其中,交换机A为源交换机,其他三台交换机为目标交换机,那么就构成三条转发路径,交换机A至交换机B为第一条转发路径,交换机A至交换机C为第二条路径,交换机A至交换机D为第三条路径。
4032、该控制器确定该每条转发路径中包含的交换机;
交换机A同时位于3条转发路径中,交换机B、交换机C以及交换机D为交换机A所在转发路径中的目标交换机。
4033、该控制器根据该每条转发路径中目标交换机的流表的负载确定该每条转发路径的权重,其中,该目标交换机是指接收数据流的交换机。
其中,一般用流表使用率或者流表的流表项数量表示该流表的状态。
其中,目标交换机的流表使用率越高,该目标交换机所在的转发路径的权重就越大。转发路径的权重越大,该转发路径的开销越大,由于控制器会选择开销小的路径作为转发路径,控制器可主动规避数据流经过该权重较大的交换机节点,选择流表使用率较低的交换机传输数据流。
可选的,基于上述实施例,在本发明的另一个实施例中,该控制器根据该每条转发路径中目标交换机的流表使用率确定该每条转发路径的权重,具体包括:
该控制器根据以下计算公式进行计算所述每条转发路径的权重:
其中,用流表使用率表示流表的负载,该TH是预设的流表使用率阈值,Max是预设的常数,f(ij)表示交换机i到交换机j的权重,t表示交换机j的流表使用率,该交换机i属于该多个交换机,该交换机j属于该多个交换机。
其中,Max是一个可根据环境需要设置的常数,表示转发路径可到达的最大开销。当交换机的流表使用率小于TH时,加权系数为1,表示路径的实际开销等于路径的加权开销;当交换机节点的使用率大于TH时,加权系数为Max·e(t-TH),表示占有率越大,权值越大,最大可到达Max。
利用上述加权算法,可以计算出网络中任意转发路径的传输开销。计算网络中所有转发路径的路径代价,具体方法如下:
步骤1.把交换机网络拓扑中的定点集合V分成两组,其中每个定点代表一个交换机:
(1)S:已确定的定点集合(初始时只有初始点v0)
(2)V-S=T:尚未确定的定点集合
步骤2.将T中顶点按递增的次序加入到S中,保证:从源点v0到S中其他各顶点的长度都不大于从v0到T中任何顶点的最短路径长度。在没有添加到S中的点中找到一个距离点v0最近的点。Dist[]中存储了现已找到的以v0为出发点的最短路径。
步骤3.直到T中没有元素,即遍历了所有定点。得到了各个定点之间的最短路径。
在本发明的一个实施例中,如图6b所示,上述网络由六台交换机组成,假设边距离初始均为1。左图中交换机B的流要到达交换机E,最优路径是B→D→E,距离长度为2。经过一段时间之后,交换机D的流表占用率达到TH,并假设在之前各个边路径长度的基础上计算出D的邻居交换机到达D的新长度。右图标出了新的长度,发现原来路径总长度为4+1=5(B→D→E),从D交换机向外的距离矢量还是1。然而,路径(B→C→F→E)的路径长度是1+1+1=3<5,因而当再有新的流量出现时,控制器会及时地调整路由。
如图7所示,本发明实施例提出一种交换机50,该交换机应用于SDN网络中,该交换机50包括监测单元501、第一确定单元502以及扩散单元503:
监测单元501,用于监测该交换机流表的的负载;
其中,交换机流表的负载可以是指交换机流表中流表项数量的多少;
其中,交换机流表的负载也可以是指流表的使用率,流表的使用率是指流表项占用的容量与该流表的总容量的比值;
第一确定单元502,用于当该交换机的流表的负载超过预设阈值时,该交换机根据扩散流表的匹配规则确定目标数据流的扩散对象,其中,该目标数据流是指匹配该交换机流表失败的数据流,该扩散流表是该控制器下发的;
例如,该流表一共可容纳1000条流表项,将预设数量设置为800条,那么当该流表中的流表项大于或等于800条时,该流表的负载就超过预设阈值。
例如,假设预设值为70%,那么当流表的使用率大于或等于70%时,流表的负载就超过预设阈值。
扩散单元503,用于当确定的该扩散对象为与该交换机的相邻交换机时,该交换机向该相邻交换机转发该目标数据流。
从上可知,根据本发明实施例提供的交换机,当该交换机流表的负载超过预设阈值时,该交换机根据扩散流表的匹配规则确定目标数据流的扩散对象;当确定的该扩散对象为与该交换机相邻的交换机时,该交换机向该相邻的交换机转发该目标数据流。当该交换机流表的负载超过预设阈值时,该交换机可能遭到攻击,将匹配流表项失败的数据流按照扩散概率转发到相邻的交换机由相邻交换机进行处理,从而降低该交换机更新流表项的频率,提高正常数据流的命中率,降低转发正常数据流的时延。可选的,基于上述交换机50,该匹配规则包括该交换机50的端口号和该扩散对象的对应关系;该交换机50还包括第二确定单元504;
第二确定单元504,用于确定入端口的端口号,其中,该入端口是指该交换机接收到该目标数据流的端口;
第一确定单元502,用于根据该入端口的端口号和该匹配规则确定该目标数据流的扩散对象。
例如,匹配规则可以是:将1号端口接收到的数据流转发到相邻交换机;将2号端口接收到的数据流由交换机自己进行处理。
可选的,基于上述交换机50,该匹配规则包括数字区间与该扩散对象的对应关系,其中,一个数字区间对应一个扩散对象,并且该匹配规则中有至少两个数字区间;该交换机50还包括哈希单元505;
哈希单元505,用于对目标数据流的包头域进行哈希计算,获得数值;
第一确定单元502,具体用于确定该数值所在的数字区间,并根据该数字区间和该匹配规则确定该扩散对象。
例如,匹配规则可以是将数值为1至100的数据流扩散至相邻交换机;将数值为101至200的数据流提交控制器处理。
可选的,基于上述交换机50,第一确定单元502,还用于当确定的该扩散对象为该控制器时,向所述控制器请求与所述目标数据流匹配的流表项。
如图8所示,本发明实施例提出一种控制器60,该控制器60应用于SDN网络中,该控制器60包括确定单元601、获取单元602以及发送单元603;
确定单元601,用于根据网络拓扑确定与该第一交换机直接连接的第二交换机,其中,该第一交换机是该多个交换机中的任意一个交换机,该第二交换机是该多个交换机中除第一交换机外的其他交换机,该第二交换机的数量为至少一个;
其中,在网络拓扑中会包括多个交换机,交换机之间存在连接关系。
获取单元602,用于获取该第二交换机的流表的负载;
确定单元601,还用于根据该第二交换机的流表的负载确定该第一交换机的扩散流表;
发送单元603,用于向该第一交换机发送该扩散流表。
从上可知,使用本发明实施例提供的控制器,该控制器确定第一交换机,并根据网络拓扑确定与该第一交换机直接连接的第二交换机;该控制器获取该第二交换机的流表的负载;该控制器根据该第二交换机的流表的负载确定该第一交换机的扩散流表;该控制器向该第一交换机发送该扩散流表,以使得交换机能够根据扩散流表将匹配流表项失败的数据流扩散到相邻交换机中有相邻交换机进行处理,从而减轻该第一交换机的负载。
可选的,基于上述控制器60,确定单元602具体包括第一确定子单元6021、第二确定子单元6022、第三确定子单元6023;
第一确定子单元6021,用于根据该第一交换机与该第二交换机的连接关系确定该第一交换机的转发路径,其中,该转发路径是指该第一交换机与该第二交换机之间的路径;
第二确定子单元6022,用于根据每条转发路径中第二交换机的流表的负载确定该每条转发路径的扩散概率;
第三确定子单元6023,用于根据该每条转发路径的扩散概率确定该第一交换机的扩散流表。
可选的,基于上述控制器60,第三确定子单元6023,具体用于据该每条转发路径的扩散概率确定每条转发路径所对应的该第一交换机的出端口的数量,该第一交换机的出端口用于转发数据流;
第三确定子单元6023,还用于根据该每条转发路径以及该每条转发路径所对应的该第一交换机的出端口的数量确定该第一交换机的扩散流表。
可选的,基于上述控制器60,
第三确定子单元6023,具体用于根据该每条转发路径的扩散概率确定每条转发路径所对应的数字区间;
第三确定子单元6023,还用于根据该每条转发路径以及该每条转发路径所对应的数字区间确定该第一交换机的扩散流表。
如图9所示,本发明实施例提出一种交换机70,交换机70包括监测单元701以及扩散单元702;
监测单元701,用于监测该交换机的流表的负载;
其中,交换机流表的负载是指交换机流表的使用率或者交换机流表的流表项数量等。
扩散单元702,用于当该交换机流表的负载超过预设阈值时,该交换机根据扩散概率向相邻交换机转发目标数据流,其中,该目标数据流是指匹配该交换机流表失败的数据流。
从上可知,使用本发明实施例提供的交换机,交换机监测该交换机流表的状态;当该交换机流表的负载超过预设阈值时,该交换机根据扩散概率向相邻交换机转发匹配该交换机流表失败的数据流,当该交换机流表的负载超过预设阈值时,该交换机可能遭到攻击,将匹配该交换机流表失败的数据流转发到相邻交换机,可以减轻该交换机的负载,降低该交换机替换流表项的频率,提升正常数据流的命中率,减少迟延。
可选的,基于上述交换机70,确定单元702具体用于按照下列公式计算该扩散概率;
其中,流表使用率用于表示流表的状态,PS是指扩散概率,Pmax是指预设最大扩散概率,Pmin是指预设最小概率,avg是该流表使用率,maxthresh是指第一预设阈值,minthresh是指第二预设阈值,其中该第一预设阈值大于该第二预设阈值。
可选的,基于上述交换机70,扩散单元703还用于当该流表的使用率大于第一预设阈值时,该交换机按照该预设最大扩散概率向该相邻交换机转发该目标数据流。
如图10所示,本发明实施例提出一种控制器80,控制器80包括获取单元801以及确定单元802;
获取单元801,用于获取该多个交换机的流表的负载;
其中,交换机的流表的负载是指流表的使用率或者流表中流表项的数量。
确定单元802,用于根据网络拓扑确定该多个交换机的连接关系;
确定单元802,还用于根据该多个交换机的连接关系以及该多个交换机中每个交换机的流表的负载确定每条转发路径的权重,其中,该转发路径为两个直接连接的交换机之间的路径;
确定单元802,还用于根据该每条转发路径的权重确定该SDN中数据流的传输路径以使得该SDN处于负载均衡状态。
从上可知,使用本发明实施例提供的控制器,该控制器根据该多个交换机的连接关系以及该多个交换机中每个交换机的流表的负载确定每条转发路径的权重,该控制器根据该每条转发路径的权重确定该SDN中数据流的传输路径,从而使得网络拓扑中交换机达到负载均衡的状态,提升交换机处理数据流的效率。
可选的,基于上述控制器80,确定单元802包括第一确定子单元8021、第二确定子单元8022以及第三确定子单元8023,具体包括:
第一确定子单元8021,用于根据该多个交换机的连接关系确定每条转发路径;
第二确定子单元8022,用于确定该每条转发路径中包含的交换机;
第三确定子单元8023,用于根据该每条转发路径中目标交换机的流表的负载确定该每条转发路径的权重,其中,该目标交换机是指接收数据流的交换机。
可选的,基于上述控制器80,第三确定子单元8023,用于根据以下计算公式进行计算所述每条转发路径的权重:
其中,该TH是预设的流表使用率阈值,Max是预设的常数,f(ij)表示交换机i到交换机j的权重,t表示交换机j的流表使用率,该交换机i属于该多个交换机,该交换机j属于该多个交换机。
图11描述了本发明另一个实施例提供的交换机的结构,包括至少一个处理器901(例如CPU),存储器902,至少一个网络接口903,至少一个通信总线904以及至少一个接收器905,用于实现这些装置之间的连接通信。处理器901用于执行存储器902中存储的可执行模块,例如计算机程序。存储器902可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非易失性存储器(non-volatile memory),例如至少eMMC(EmbeddedMulti Media Card,嵌入式多媒体卡)存储器。通过至少一个网络接口903(可以是有线或者无线)实现该网络设备与至少一个其他网元之间的通信连接。
在一些实施方式中,存储器902存储了程序9021,程序9021可以被处理器901执行,这个程序包括:
监测该交换机的流表的负载;
当该交换机的流表的负载超过预设阈值时,根据扩散流表的匹配规则确定目标数据流的扩散对象,其中,该目标数据流是指匹配该交换机流表失败的数据流,该扩散流表是该控制器下发的;
当确定的该扩散对象为与该交换机的相邻交换机时,向该相邻交换机转发该目标数据流。
可选的,该匹配规则包括该交换机的端口号和该扩散对象的对应关系;
在根据扩散流表的匹配规则确定目标数据流的扩散对象之前,该方法还包括:
确定入端口的端口号,其中,该入端口是指该交换机接收到该目标数据流的端口;
根据扩散流表的匹配规则确定目标数据流的扩散对象,包括:
根据该入端口的端口号和该匹配规则确定该目标数据流的扩散对象。
可选的,该匹配规则包括数字区间与该扩散对象的对应关系,其中,一个数字区间对应一个扩散对象,并且该匹配规则包括至少两个数字区间;
该根据扩散流表的匹配规则确定目标数据流的扩散对象之前,该方法还包括:
对该目标数据流的包头域进行哈希计算,获得数值;
根据扩散流表的匹配规则确定目标数据流的扩散对象具体包括:
确定该数值所在的数字区间;
根据该数字区间和该匹配规则确定该扩散对象。
可选的,该方法还包括:当确定的该扩散对象为该控制器时,所述交换机向所述控制器请求与所述目标数据流匹配的流表项。
具体的实施步骤与图1所示的实施例相同,此处不再赘述。
从上可知,根据本发明实施例提供的交换机,当该交换机流表的负载超过预设阈值时,该交换机根据扩散流表的匹配规则确定目标数据流的扩散对象;当确定的该扩散对象为与该交换机相邻的交换机时,该交换机向该相邻的交换机转发该目标数据流。当该交换机流表的负载超过预设阈值时,该交换机可能遭到攻击,将匹配流表项失败的数据流按照扩散概率转发到相邻的交换机由相邻交换机进行处理,从而降低该交换机更新流表项的频率,提高正常数据流的命中率,降低转发正常数据流的时延。
图12描述了本发明另一个实施例提供的控制器的结构,包括至少一个处理器1001(例如CPU),存储器1002,至少一个网络接口1003,至少一个通信总线1004以及至少一个接收器1005,用于实现这些装置之间的连接通信。处理器1001用于执行存储器1002中存储的可执行模块,例如计算机程序。存储器1002可能包含高速随机存取存储器(RAM:Random AccessMemory),也可能还包括非易失性存储器(non-volatile memory),例如至少eMMC(Embedded Multi Media Card,嵌入式多媒体卡)存储器。通过至少一个网络接口1003(可以是有线或者无线)实现该网络设备与至少一个其他网元之间的通信连接。
在一些实施方式中,存储器1002存储了程序10021,程序10021可以被处理器1001执行,这个程序包括:
根据网络拓扑确定与该第一交换机直接连接的第二交换机,其中,该第一交换机是该多个交换机中的任意一个交换机,该第二交换机是该多个交换机中除第一交换机外的其他交换机,该第二交换机的数量为至少一个;
获取该第二交换机的流表的负载;
根据该第二交换机的流表的负载确定该第一交换机的扩散流表;
向该第一交换机发送该扩散流表。
可选的,该根据该第二交换机的流表的负载确定该第一交换机的扩散流表,包括:
根据该第一交换机与该第二交换机的连接关系确定该第一交换机的转发路径,其中,该转发路径是指该第一交换机与该第二交换机之间的路径;
根据每条转发路径中第二交换机的流表的负载确定该每条转发路径的扩散概率;
根据该每条转发路径的扩散概率确定该第一交换机的扩散流表。
可选的,该根据该每条转发路径的扩散概率确定该第一交换机的扩散流表,包括:
根据该每条转发路径的扩散概率确定每条转发路径所对应的该第一交换机的出端口的数量,该第一交换机的出端口用于转发数据流;
根据该每条转发路径以及该每条转发路径所对应的该第一交换机的出端口的数量确定该第一交换机的扩散流表。
可选的,该根据该每条转发路径的扩散概率确定该第一交换机的扩散流表,包括:
根据该每条转发路径的扩散概率确定每条转发路径所对应的数字区间;
根据该每条转发路径以及该每条转发路径所对应的数字区间确定该第一交换机的扩散流表。
具体的实施步骤与图2所示的实施例相同,此处不再赘述。
从上可知,使用本发明实施例提供的控制器,该控制器确定第一交换机,并根据网络拓扑确定与该第一交换机直接连接的第二交换机;该控制器获取该第二交换机的流表的负载;该控制器根据该第二交换机的流表的负载确定该第一交换机的扩散流表;该控制器向该第一交换机发送该扩散流表,以使得交换机能够根据扩散流表将匹配流表项失败的数据流扩散到相邻交换机中有相邻交换机进行处理,从而减轻该第一交换机的负载。
图13描述了本发明另一个实施例提供的交换机的结构,包括至少一个处理器1101(例如CPU),存储器1102,至少一个网络接口1103,至少一个通信总线1104以及至少一个接收器1105,用于实现这些装置之间的连接通信。处理器1101用于执行存储器1102中存储的可执行模块,例如计算机程序。存储器1102可能包含高速随机存取存储器(RAM:Random AccessMemory),也可能还包括非易失性存储器(non-volatile memory),例如至少eMMC(Embedded Multi Media Card,嵌入式多媒体卡)存储器。通过至少一个网络接口1103(可以是有线或者无线)实现该网络设备与至少一个其他网元之间的通信连接。
在一些实施方式中,存储器1102存储了程序11021,程序11021可以被处理器1101执行,这个程序包括:
监测该交换机的流表的负载;
当该交换机流表的负载超过预设阈值时,该交换机根据扩散概率向相邻交换机转发目标数据流,其中,该目标数据流是指匹配该交换机流表失败的数据流。
可选的,根据该流表的状态确定扩散概率具体包括:
按照下列公式计算该扩散概率;
其中,PS是指扩散概率,Pmax是指预设最大扩散概率,Pmin是指预设最小概率,流表使用率用于指示流表的负载,avg是该流表使用率,maxthresh是指第一阈值,minthresh是指第二阈值,其中该第一阈值大于该第二阈值。
可选的,当该交换机流表的使用率大于第一阈值时,该交换机按照该预设最大扩散概率向该相邻交换机转发该目标数据流。
具体的实施步骤与图5所示的实施例相同,此处不再赘述。
从上可知,使用本发明实施例提供的交换机,交换机监测该交换机流表的状态;当该交换机流表的负载超过预设阈值时,该交换机根据扩散概率向相邻交换机转发匹配该交换机流表失败的数据流,当该交换机流表的负载超过预设阈值时,该交换机可能遭到攻击,将匹配该交换机流表失败的数据流转发到相邻交换机,可以减轻该交换机的负载,降低该交换机替换流表项的频率,提升正常数据流的命中率,减少迟延。
图14描述了本发明另一个实施例提供的控制器的结构,包括至少一个处理器1201(例如CPU),存储器1202,至少一个网络接口1203,至少一个通信总线1204以及至少一个接收器1205,用于实现这些装置之间的连接通信。处理器1201用于执行存储器1202中存储的可执行模块,例如计算机程序。存储器1202可能包含高速随机存取存储器(RAM:Random AccessMemory),也可能还包括非易失性存储器(non-volatile memory),例如至少eMMC(Embedded Multi Media Card,嵌入式多媒体卡)存储器。通过至少一个网络接口1203(可以是有线或者无线)实现该网络设备与至少一个其他网元之间的通信连接。
在一些实施方式中,存储器1202存储了程序12021,程序12021可以被处理器1201执行,这个程序包括:
获取该多个交换机的流表的负载;
根据网络拓扑确定该多个交换机的连接关系;
根据该多个交换机的连接关系以及该多个交换机中每个交换机的流表的负载确定每条转发路径的权重,其中,该转发路径为两个直接连接的交换机之间的路径;
根据该每条转发路径的权重确定该SDN中数据流的传输路径以使得该SDN处于负载均衡状态。
可选的,该根据该交换机的连接关系以及该交换机中每个交换机的流表使用率确定每个转发路径的权重,具体包括:
根据该多个交换机的连接关系确定每条转发路径;
确定该每条转发路径中包含的交换机;
根据该每条转发路径中目标交换机的流表的负载确定该每条转发路径的权重,其中,该目标交换机是指接收到数据流的交换机。
可选的,该控制器根据以下计算公式进行计算所述每条转发路径的权重:
其中,用流表使用率表示流表的负载,该TH是预设的流表使用率阈值,Max是预设的常数,f(ij)表示交换机i到交换机j的权重,t表示交换机j的流表使用率,该交换机i属于该多个交换机,该交换机j属于该多个交换机。
具体的实施步骤与图6所示的实施例相同,此处不再赘述。
从上可知,使用本发明实施例提供的控制器,所述控制器根据所述多个交换机的连接关系以及所述多个交换机中每个交换机的流表的负载确定每个转发路径的权重,所述控制器根据所述每条转发路径的权重确定所述SDN中数据流的传输路径,从而使得网络拓扑中交换机达到负载均衡的状态,提升交换机处理数据流的效率。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
上述装置和系统内的各模块之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,上述的存储介质可为磁碟、光盘、只读存储记忆体(ROM:Read-Only Memory)或随机存储记忆体(RAM:Random AccessMemory)等。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (28)

1.一种处理流表的方法,所述方法应用于软件定义网络SDN中,所述SDN包括控制器和交换机,其特征在于,所述方法包括:
所述交换机监测所述交换机的流表的负载;
当所述交换机的流表的负载超过预设阈值时,所述交换机根据扩散流表的匹配规则确定目标数据流的扩散对象,其中,所述目标数据流是指匹配所述交换机流表失败的数据流,所述扩散流表是所述控制器下发的;
当确定的所述扩散对象为与所述交换机的相邻交换机时,所述交换机向所述相邻交换机转发所述目标数据流。
2.如权利要求1所述的方法,其特征在于,所述匹配规则包括所述交换机的端口号和所述扩散对象的对应关系;
在所述交换机根据扩散流表的匹配规则确定目标数据流的扩散对象之前,所述方法还包括:
所述交换机确定入端口的端口号,其中,所述入端口是指所述交换机接收到所述目标数据流的端口;
所述交换机根据扩散流表的匹配规则确定目标数据流的扩散对象,包括:
所述交换机根据所述入端口的端口号和所述匹配规则确定所述目标数据流的扩散对象。
3.如权利要求1所述的方法,其特征在于,所述匹配规则包括数字区间与所述扩散对象的对应关系,其中,一个数字区间对应一个扩散对象,并且所述匹配规则包括至少两个数字区间;
所述交换机根据扩散流表的匹配规则确定目标数据流的扩散对象之前,所述方法还包括:
所述交换机对所述目标数据流的包头域进行哈希计算,获得数值;
所述交换机根据扩散流表的匹配规则确定目标数据流的扩散对象具体包括:
所述交换机确定所述数值所在的数字区间;
所述交换机根据所述数字区间和所述匹配规则确定所述扩散对象。
4.如权利要求1至3任一所述的方法,其特征在于,所述方法还包括:
当确定的所述扩散对象为所述控制器时,所述交换机向所述控制器请求与所述目标数据流匹配的流表项。
5.一种处理流表的方法,所述方法应用于软件定义网络SDN中,所述SDN包括控制器和多个交换机,其特征在于,所述方法包括:
所述控制器根据网络拓扑确定与第一交换机直接连接的第二交换机,其中,所述第一交换机是所述多个交换机中的任意一个交换机,所述第二交换机是所述多个交换机中除第一交换机外的其他交换机,所述第二交换机的数量为至少一个;
所述控制器获取所述第二交换机的流表的负载;
所述控制器根据所述第二交换机的流表的负载确定所述第一交换机的扩散流表;
所述控制器向所述第一交换机发送所述扩散流表。
6.如权利要求5所述的方法,其特征在于,所述控制器根据所述第二交换机的流表的负载确定所述第一交换机的扩散流表,包括:
所述控制器根据所述第一交换机与所述第二交换机的连接关系确定所述第一交换机的转发路径,其中,所述转发路径是指所述第一交换机与所述第二交换机之间的路径;
所述控制器根据每条转发路径中第二交换机的流表的负载确定所述每条转发路径的扩散概率;
所述控制器根据所述每条转发路径的扩散概率确定所述第一交换机的扩散流表。
7.如权利要求6所述的方法,其特征在于,所述控制器根据所述每条转发路径的扩散概率确定所述第一交换机的扩散流表,包括:
所述控制器根据所述每条转发路径的扩散概率确定每条转发路径所对应的所述第一交换机的出端口的数量,所述第一交换机的出端口用于转发数据流;
所述控制器根据所述每条转发路径以及所述每条转发路径所对应的所述第一交换机的出端口的数量确定所述第一交换机的扩散流表。
8.如权利要求6所述的方法,其特征在于,所述控制器根据所述每条传输路径的扩散概率确定所述第一交换机的扩散流表,包括:
所述控制器根据所述每条传输路径的扩散概率确定每条传输路径所对应的数字区间;
所述控制器根据所述每条传输路径以及所述每条传输路径所对应的数字区间确定所述第一交换机的扩散流表。
9.一种处理流表的方法,所述方法应用于软件定义网络SDN中,其特征在于,所述方法包括:
交换机监测所述交换机流表的负载;
当所述交换机流表的负载超过预设阈值时,所述交换机根据扩散概率向相邻交换机转发目标数据流,其中,所述目标数据流是指匹配所述交换机流表失败的数据流。
10.如权利要求9所述的方法,其特征在于,所述交换机根据扩散概率向相邻交换机扩散目标数据流之前,所述方法还包括:
所述交换机按照下列公式计算所述扩散概率;
P s = P m a x &times; a v g - min t h r e s h max t h r e s h - min t h r e s h + P m i n
其中,PS是指扩散概率,Pmax是指预设最大扩散概率,Pmin是指预设最小概率,流表使用率用于指示流表的负载,avg是所述流表使用率,maxthresh是指第一阈值,minthresh是指第二阈值,其中所述第一阈值大于所述第二阈值。
11.如权利要求10所述的方法,其特征在于,当所述交换机流表的使用率大于第一阈值时,所述方法还包括:
所述交换机按照所述预设最大扩散概率向所述相邻交换机转发所述目标数据流。
12.一种处理流表的方法,所述方法应用于软件定义网络SDN中,所述SDN包括控制器和多个交换机,其特征在于,所述方法包括:
所述控制器获取所述多个交换机的流表的负载;
所述控制器根据网络拓扑确定所述多个交换机的连接关系;
所述控制器根据所述多个交换机的连接关系以及所述多个交换机中每个交换机的流表的负载确定每个转发路径的权重,其中,所述转发路径为两个直接连接的交换机之间的路径;
所述控制器根据所述每条传输路径的权重确定所述SDN中数据流的传输路径以使得所述SDN处于负载均衡状态。
13.如权利要求12所述的方法,其特征在于,所述控制器根据所述多个交换机的连接关系以及所述多个交换机中每个交换机的流表使用率确定每条转发路径的权重,包括:
所述控制器根据所述多个交换机的连接关系确定每条转发路径;
所述控制器确定所述每条转发路径中包含的交换机;
所述控制器根据所述每条转发路径中目标交换机的流表的负载确定所述每条转发路径的权重,其中,目标交换机是指转发路径中接收数据流的交换机。
14.权利要求13所述的方法,其特征在于,所述控制器根据所述每条传输路径中目标交换机的流表的负载确定所述每条转发路径的权重,具体包括:
所述控制器根据以下计算公式进行计算所述每条转发路径的权重:
f ( i j ) = 1 0 < t &le; T H M a x &CenterDot; e ( t - T H ) T H < t < 1
其中,用流表使用率表示流表的负载,所述TH是预设的流表使用率阈值,Max是预设的常数,f(ij)表示交换机i到交换机j的权重,t表示交换机j的流表使用率,所述交换机i属于所述多个交换机,所述交换机j属于所述多个交换机。
15.一种交换机,所述交换机应用于软件定义网络SDN中,其特征在于,所述交换机包括监测单元,第一确定单元和扩撒单元;
所述监测单元,用于监测所述交换机的流表的的负载;
所述第一确定单元,用于当所述交换机的流表的负载超过预设阈值时,所述交换机根据扩散流表的匹配规则确定目标数据流的扩散对象,其中,所述目标数据流是指匹配所述交换机流表失败的数据流,所述扩散流表是所述控制器下发的;
所述扩散单元,用于当确定的所述扩散对象为与所述交换机的相邻交换机时,所述交换机向所述相邻交换机转发所述目标数据流。
16.如权利要求15所述的交换机,其特征在于,所述匹配规则包括所述交换机的端口号和所述扩散对象的对应关系;所述交换机还包括第二确定单元;
所述第二确定单元,用于确定入端口的端口号,其中,所述入端口是指所述交换机接收到所述目标数据流的端口;
所述第一确定单元,用于根据所述入端口的端口号和所述匹配规则确定所述目标数据流的扩散对象。
17.如权利要求15所述的交换机,其特征在于,所述匹配规则包括数字区间与所述扩散对象的对应关系,其中,一个数字区间对应一个扩散对象,并且所述匹配规则中有至少两个数字区间;所述交换机还包括哈希单元;
所述哈希单元,用于对目标数据流的包头域进行哈希计算,获得数值;
所述第一确定单元,具体用于确定所述数值所在的数字区间,并根据所述数字区间和所述匹配规则确定所述扩散对象。
18.如权利要求15至17任一所述的交换机,其特征在于,
所述第一确定单元,还用于当确定的所述扩散对象为所述控制器时,向所述控制器请求与所述目标数据流匹配的流表项。
19.一种控制器,所述控制器应用于软件定义网络SDN中,所述SDN包括所述控制器和多个交换机,其特征在于,所述控制器包括确定单元、获取单元以及发送单元;
所述确定单元,用于根据网络拓扑确定与第一交换机直接连接的第二交换机,其中,所述第一交换机是所述多个交换机中的任意一个交换机,所述第二交换机是所述多个交换机中除第一交换机外的其他交换机,所述第二交换机的数量为至少一个;
所述获取单元,用于获取所述第二交换机的流表的负载;
所述确定单元,还用于根据所述第二交换机的负载确定所述第一交换机的扩散流表;
所述发送单元,用于向所述第一交换机发送所述扩散流表。
20.如权利要求19所述的控制器,其特征在于,所述确定单元具体包括第一确定子单元、第二确定子单元以及第三确定子单元;
所述第一确定子单元,用于根据所述第一交换机与所述第二交换机的连接关系确定所述第一交换机的转发路径,其中,所述转发路径是指所述第一交换机与所述第二交换机之间的路径;
所述第二确定子单元,用于根据每条转发路径中第二交换机的流表的负载确定所述每条转发路径的扩散概率;
所述第三确定子单元,用于根据所述每条转发路径的扩散概率确定所述第一交换机的扩散流表。
21.如权利要求20所述的控制器,其特征在于,
所述第三确定子单元,具体用于据所述每条转发路径的扩散概率确定每条转发路径所对应的所述第一交换机的出端口的数量,所述第一交换机的出端口用于转发数据流;
所述第三确定子单元,还用于根据所述每条转发路径以及所述每条转发路径所对应的所述第一交换机的出端口的数量确定所述第一交换机的扩散流表。
22.如权利要求20所述的控制器,其特征在于,
所述第三确定子单元,具体用于根据所述每条转发路径的扩散概率确定每条转发路径所对应的数字区间;
所述第三确定子单元,还用于根据所述每条转发路径以及所述每条转发路径所对应的数字区间确定所述第一交换机的扩散流表。
23.一种交换机,所述交换机应用于软件定义网络SDN中,其特征在于,所述交换机包括监测单元以及扩散单元;
所述监测单元,用于监测所述交换机的流表的负载;
所述扩散单元,用于当所述交换机流表的负载超过预设阈值时,所述交换机根据扩散概率向相邻交换机转发目标数据流,其中,所述目标数据流是指匹配所述交换机流表失败的数据流。
24.如权利要求23所述的交换机,其特征在于,所述交换机还包括计算单元,
所述计算单元,具体用于按照下列公式计算所述扩散概率;
P s = P m a x &times; a v g - min t h r e s h max t h r e s h - min t h r e s h + P m i n
其中,流表使用率用于表示流表的状态,PS是指扩散概率,Pmax是指预设最大扩散概率,Pmin是指预设最小概率,avg是所述流表使用率,maxthresh是指第一阈值,minthresh是指第二阈值,其中所述第一阈值大于所述第二阈值;
所述扩散单元,用于当所述交换机流表的负载超过预设阈值时,所述交换机根据所述计算单元计算的扩散概率向相邻交换机转发所述目标数据流。
25.如权利要求23或24所述的交换机,其特征在于,
所述扩散单元,还用于当所述交换机流表的使用率大于第一阈值时,所述交换机按照所述预设最大扩散概率向所述相邻交换机转发所述目标数据流。
26.一种控制器,所述控制器应用于软件定义网络SDN中,所述SDN包括所述控制器和多个交换机,其特征在于,所述控制器包括获取单元和确定单元;
所述获取单元,用于获取所述多个交换机的流表的负载;
所述确定单元,用于根据网络拓扑确定所述多个交换机的连接关系;
所述确定单元,还用于根据所述多个交换机的连接关系以及所述多个交换机中每个交换机的流表的负载确定每个转发路径的权重,其中,所述转发路径为两个直接连接的交换机之间的路径;
所述确定单元,还用于根据所述每条传输路径的权重确定所述SDN中数据流的传输路径以使得所述SDN处于负载均衡状态。
27.如权利要求26所述的控制器,其特征在于,所述确定单元包括第一确定子单元、第二确定子单元以及第三确定子单元,具体包括:
所述第一确定子单元,用于所述控制器根据所述多个交换机的连接关系确定每条转发路径;
所述第二确定子单元,用于确定所述每条转发路径中包含的交换机;
所述第三确定子单元,用于根据所述每条转发路径中目标交换机的流表的负载确定所述每条转发路径的权重,其中,所述目标交换机是指接收到数据流的交换机。
28.权利要求27所述的控制器,其特征在于,
所述第三确定子单元,用于根据以下计算公式进行计算所述每条转发路径的权重:
f ( i j ) = 1 0 < t &le; T H M a x &CenterDot; e ( t - T H ) T H < t < 1
其中,所述TH是预设的流表使用率阈值,Max是预设的常数,f(ij)表示交换机i到交换机j的权重,流表使用率用于表示流表使用状态,t表示交换机j的流表使用率,所述交换机i属于所述多个交换机,所述交换机j属于所述多个交换机。
CN201510486210.0A 2015-08-10 2015-08-10 一种处理流表的方法及装置 Active CN106713182B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201510486210.0A CN106713182B (zh) 2015-08-10 2015-08-10 一种处理流表的方法及装置
PCT/CN2016/094227 WO2017025021A1 (zh) 2015-08-10 2016-08-09 一种处理流表的方法及装置
EP16834645.0A EP3324586B1 (en) 2015-08-10 2016-08-09 Method and device for processing flow table
US15/892,417 US10728154B2 (en) 2015-08-10 2018-02-09 Flow table processing method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510486210.0A CN106713182B (zh) 2015-08-10 2015-08-10 一种处理流表的方法及装置

Publications (2)

Publication Number Publication Date
CN106713182A true CN106713182A (zh) 2017-05-24
CN106713182B CN106713182B (zh) 2020-10-09

Family

ID=57983130

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510486210.0A Active CN106713182B (zh) 2015-08-10 2015-08-10 一种处理流表的方法及装置

Country Status (4)

Country Link
US (1) US10728154B2 (zh)
EP (1) EP3324586B1 (zh)
CN (1) CN106713182B (zh)
WO (1) WO2017025021A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109120531A (zh) * 2018-09-11 2019-01-01 郑州云海信息技术有限公司 一种流表过载防护方法与装置
CN109120525A (zh) * 2017-06-26 2019-01-01 中国电信股份有限公司 用于sdn的路径确定方法、装置、sdn控制器及网络
CN115225503A (zh) * 2022-05-16 2022-10-21 北京邮电大学 OpenFlow流表项动态超时分配方法及相关设备
CN115379026A (zh) * 2022-04-19 2022-11-22 国家计算机网络与信息安全管理中心 一种报文头域的识别方法、装置、设备及存储介质

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10880206B2 (en) 2018-06-13 2020-12-29 Futurewei Technologies, Inc. Multipath selection system and method for datacenter-centric metro networks
US11005777B2 (en) * 2018-07-10 2021-05-11 At&T Intellectual Property I, L.P. Software defined prober
CN110278152B (zh) * 2018-08-31 2020-05-29 新华三信息安全技术有限公司 一种建立快速转发表的方法及装置
US10798005B2 (en) * 2018-09-13 2020-10-06 International Business Machines Corporation Optimizing application throughput
CN109245930A (zh) * 2018-09-17 2019-01-18 武汉思普崚技术有限公司 一种云安全网元、云计算管理平台及系统
US10901805B2 (en) 2018-12-18 2021-01-26 At&T Intellectual Property I, L.P. Distributed load balancing for processing of high-volume data streams
US10972402B1 (en) * 2019-09-27 2021-04-06 Juniper Networks, Inc. Dynamic management of inline entries in hardware across protocols in a scaled environment
CN112968978B (zh) * 2021-05-19 2021-12-21 南京烽火星空通信发展有限公司 一种基于sdn技术的互联网流量分流方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101697528A (zh) * 2009-10-30 2010-04-21 杭州华三通信技术有限公司 一种nat网关设备之间的负载分担方法和设备
WO2015062291A1 (zh) * 2013-10-31 2015-05-07 华为技术有限公司 一种冲突检测及解决的方法、装置
CN104685850A (zh) * 2012-09-26 2015-06-03 阿尔卡特朗讯公司 确保经由流偏转的软件定义的网络
CN104737504A (zh) * 2012-10-15 2015-06-24 思科技术公司 在网络环境中有效使用流表空间的系统和方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011043312A1 (ja) * 2009-10-06 2011-04-14 日本電気株式会社 ネットワークシステムとコントローラ、方法とプログラム
US10103939B2 (en) * 2010-07-06 2018-10-16 Nicira, Inc. Network control apparatus and method for populating logical datapath sets
WO2013133400A1 (ja) * 2012-03-09 2013-09-12 日本電気株式会社 制御装置、通信システム、スイッチ制御方法及びプログラム
US20150124595A1 (en) * 2012-05-01 2015-05-07 Nec Corporation Communication system, access control apparatus, switch, network control method, and program
US9071529B2 (en) * 2012-10-08 2015-06-30 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for accelerating forwarding in software-defined networks
CN103491095B (zh) 2013-09-25 2016-07-13 中国联合网络通信集团有限公司 流量清洗架构、装置及流量牵引、流量回注方法
CN104767634A (zh) * 2014-01-06 2015-07-08 韩国电子通信研究院 用于管理流表格的方法和设备
CN106464596B (zh) * 2014-06-03 2019-08-20 华为技术有限公司 开放流通信方法、系统、控制器和业务网关

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101697528A (zh) * 2009-10-30 2010-04-21 杭州华三通信技术有限公司 一种nat网关设备之间的负载分担方法和设备
CN104685850A (zh) * 2012-09-26 2015-06-03 阿尔卡特朗讯公司 确保经由流偏转的软件定义的网络
CN104737504A (zh) * 2012-10-15 2015-06-24 思科技术公司 在网络环境中有效使用流表空间的系统和方法
WO2015062291A1 (zh) * 2013-10-31 2015-05-07 华为技术有限公司 一种冲突检测及解决的方法、装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109120525A (zh) * 2017-06-26 2019-01-01 中国电信股份有限公司 用于sdn的路径确定方法、装置、sdn控制器及网络
CN109120531A (zh) * 2018-09-11 2019-01-01 郑州云海信息技术有限公司 一种流表过载防护方法与装置
CN115379026A (zh) * 2022-04-19 2022-11-22 国家计算机网络与信息安全管理中心 一种报文头域的识别方法、装置、设备及存储介质
CN115379026B (zh) * 2022-04-19 2024-01-19 国家计算机网络与信息安全管理中心 一种报文头域的识别方法、装置、设备及存储介质
CN115225503A (zh) * 2022-05-16 2022-10-21 北京邮电大学 OpenFlow流表项动态超时分配方法及相关设备
CN115225503B (zh) * 2022-05-16 2023-07-04 北京邮电大学 OpenFlow流表项动态超时分配方法及相关设备

Also Published As

Publication number Publication date
EP3324586A4 (en) 2018-10-24
EP3324586A1 (en) 2018-05-23
US10728154B2 (en) 2020-07-28
EP3324586B1 (en) 2022-02-23
WO2017025021A1 (zh) 2017-02-16
CN106713182B (zh) 2020-10-09
US20180167325A1 (en) 2018-06-14

Similar Documents

Publication Publication Date Title
CN106713182A (zh) 一种处理流表的方法及装置
EP3516833B1 (en) Methods, systems, and computer readable media for discarding messages during a congestion event
US8259585B1 (en) Dynamic link load balancing
CN103023806B (zh) 共享缓存式以太网交换机的缓存资源控制方法及装置
CN108259450A (zh) 基于信誉的应用高速缓存和加入白名单
JP6574054B2 (ja) パケット転送
US10305805B2 (en) Technologies for adaptive routing using aggregated congestion information
US10009282B2 (en) Self-protecting computer network router with queue resource manager
CN101789949B (zh) 一种实现负荷分担的方法和路由设备
US10291584B2 (en) Dynamic prioritization of network traffic based on reputation
JPWO2013039083A1 (ja) 通信システム、制御装置および通信方法
CN108965121A (zh) 传输数据的方法、主机和交换机
JP6437692B2 (ja) パケット転送
CN103475657B (zh) 防syn泛洪攻击的处理方法和装置
EP3292660B1 (en) Packet forwarding in a vxlan switch
US20160197954A1 (en) Defending against flow attacks
CN103795705B (zh) 用于交换安全的数据包的时间锁定的网络和节点
US9832072B1 (en) Self-configuring computer network router
CN107819697A (zh) 数据传输方法、交换机及数据中心
CN107995199A (zh) 网络设备的端口限速方法及装置
CN104954249B (zh) 一种报文转发方法、系统及装置
WO2022179451A1 (zh) 一种负载分担方法、装置及芯片
CN101783763B (zh) 防拥塞的处理方法及系统
KR20220097201A (ko) 연합학습을 이용한 네트워크 혼잡 제어방법
Chrysos et al. High performance multipath routing for datacenters

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
CB03 Change of inventor or designer information

Inventor after: Li Jinming

Inventor after: Hu Chengchen

Inventor after: Zhang Peng

Inventor before: Li Jinming

Inventor before: Hu Chengchen

Inventor before: Zhang Peng

CB03 Change of inventor or designer information
GR01 Patent grant
GR01 Patent grant