CN105122740B - 一种分流上报的方法、交换机、控制器及*** - Google Patents
一种分流上报的方法、交换机、控制器及*** Download PDFInfo
- Publication number
- CN105122740B CN105122740B CN201480000182.0A CN201480000182A CN105122740B CN 105122740 B CN105122740 B CN 105122740B CN 201480000182 A CN201480000182 A CN 201480000182A CN 105122740 B CN105122740 B CN 105122740B
- Authority
- CN
- China
- Prior art keywords
- newdata
- packet
- interchanger
- initial switch
- reported
- 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
- H04L12/00—Data switching networks
- H04L12/64—Hybrid switching systems
- H04L12/6418—Hybrid transport
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种分流上报的方法,包括:初始交换机在未上报的新建数据包超过上报能力阈值上限时,确定出要分出上报的至少一个新建数据包,根据与所述初始交换机直接相连的其他交换机的信息,为所述要分出上报的至少一个新建数据包选择用于分流上报的分流交换机,向所述分流交换机发送所述要分出上报的至少一个新建数据包,以便所述分流交换机将所述要分出上报的至少一个新建数据包上报给所述控制器。本发明实施例还提供相应的设备及***。本发明技术方案在初始交换机接收到的新建数据包很多时,会将上报新建数据包的任务转由与初始交换机直接相连的其他交换机来上报,从而加快了新建数据包的上报速度,避免了新建数据包阻塞在初始交换机中。
Description
技术领域
本发明涉及通信技术领域,具体涉及一种分流上报的方法、交换机、控制器及***。
背景技术
Openflow是实现软件定义网络(Software defined network,SDN)的一种协议,Openflow网络的基本思想是实现了数据转发层和控制层的分离。其中OpenFlow交换机负责数据层的转发,而控制器Controller实现了控制层的功能。
因此整个Openflow网络分为数据通道和控制通道。
OpenFlow交换机主要负责数据的转发。OpenFlow交换机接收到数据包后,首先在预先得到的流表中匹配流表项,流表项用于指示交换机对所述数据包的处理方法,如果匹配上流表项,则按照该流表项转发数据包,如果没有匹配上流表项,则可以确定该数据包为新建数据包,则把新建数据包发送给Controller,由Controller根据所述新建数据包和网络拓扑信息决定所述新建数据包的流表项。
本发明的发明人发现,现有技术中当一个交换机短时间内接收到新建数据包的量较大时,不能及时将每个新建数据包及时发送到控制器,导致大量的新建数据包处于阻塞状态。
发明内容
本发明实施例提供一种分流上报的方法,可以通过与接收到新建数据包的初始交换机直接相连的其他交换机向控制器分流上报未上报的新建数据包,从而加快了新建数据包的上报速度,避免了新建数据包阻塞在初始交换机中。本发明实施例还提供了相应的交换机、控制器及***。
本发明第一方面提供一种分流上报的方法,包括:
初始交换机在未上报的新建数据包超过上报能力阈值上限时,确定出要分出上报的至少一个新建数据包,其中,所述新建数据包为在所述初始交换机中未匹配到流表项的数据包,所述流表项用于指示所述初始交换机对所述新建数据包的处理方法;
根据与所述初始交换机直接相连的其他交换机的信息,为所述要分出上报的至少一个新建数据包选择用于分流上报的分流交换机;
在所述初始交换机上建立所述要分出上报的至少一个新建数据包对应的临时流表项,所述临时流表项的输出端口设置为到所述分流交换机的端口;
根据所述临时流表项,向所述分流交换机发送所述要分出上报的至少一个新建数据包,以便所述分流交换机将所述要分出上报的至少一个新建数据包上报给所述控制器。
在第一方面的第一种可能的实现方式中,所述方法还包括:
在向所述分流交换机发送的所述要分出上报的至少一个新建数据包中封装所述初始交换机的标识信息,以便所述分流交换机将所述标识分流上报给所述控制器,用于所述控制器根据所述标识信息确定所述初始交换机,并根据所述初始交换机确定所述要分出上报的至少一个新建数据包对应的流表项。
结合第一方面或第一方面第一种可能的实现方式,在第二种可能的实现方式中,所述根据与所述初始交换机直接相连的其他交换机的信息,为所述要分出上报的至少一个新建数据包选择用于分流上报的分流交换机之前,所述方法还包括:
接收所述控制器发送的与所述初始交换机直接相连的其他交换机的信息。
结合第一方面、第一方面第一种或第二种可能的实现方式,在第三种可能的实现方式中,所述方法还包括:
所述初始交换机确定出未上报的新建数据包低于上报能力阈值下限时,删除所述临时流表项。
结合第一方面、第一方面第一种、第二种或第三种可能的实现方式,在第四种可能的实现方式中,所述临时流表项位于所述初始交换机的最后一张流表中,且为最低优先级。
本发明第二方面提供一种分流上报的方法,包括:
接收分流交换机上报的新建数据包,其中,所述新建数据包为在初始交换机中未匹配到流表项,且由所述初始交换机在未上报的新建数据包超过其上报能力阈值上限时,转发给所述分流交换机进行上报的数据包,所述流表项用于指示所述初始交换机对所述新建数据包的处理方法;
根据所述新建数据包,确定所述初始交换机;
根据所述初始交换机和所述新建数据包中的规则确定信息,确定所述新建数据包的流表项。
在第二方面的第一种可能的实现方式中,所述根据所述新建数据包,确定所述初始交换机,包括:
解析所述新建数据包中封装的交换机的标识信息;
根据所述交换机的标识信息,确定所述初始交换机。
结合第二方面或第二方面第一种可能的实现方式,在第二种可能的实现方式中,所述方法还包括:
向所述初始交换机发送与所述初始交换机直接相连的其他交换机的信息,以便所述初始交换机确定转发所述新建数据包的所述分流交换机。
结合第二方面、第二方面第一种或第二种可能的实现方式,在第三种可能的实现方式中,所述规则确定信息包括媒体接入控制Mac地址、IP地址、端口号中的一种或几种。
本发明第三方面提供一种交换机,包括:
确定单元,用于在未上报的新建数据包超过上报能力阈值上限时,确定出要分出上报的至少一个新建数据包,其中,所述新建数据包为在初始交换机中未匹配到流表项的数据包,所述流表项用于指示所述初始交换机对所述新建数据包的处理方法;
选择单元,用于根据与所述初始交换机直接相连的其他交换机的信息,为所述确定单元确定的所述要分出上报的至少一个新建数据包选择用于分流上报的分流交换机;
创建单元,用于在所述初始交换机上建立所述要分出上报的至少一个新建数据包对应的临时流表项,所述临时流表项的输出端口设置为到所述选择单元选择的所述分流交换机的端口;
发送单元,用于根据所述创建单元创建的所述临时流表项,向所述分流交换机发送所述要分出上报的至少一个新建数据包,以便所述分流交换机将所述要分出上报的至少一个新建数据包上报给所述控制器。
在第三方面的第一种可能的实现方式中,所述交换机还包括:
封装单元,用于在所述发送单元向分流交换机发送的所述要分出上报的至少一个新建数据包中封装所述初始交换机的标识信息,以便所述分流交换机将所述标识分流上报给所述控制器,用于所述控制器根据所述标识信息确定所述初始交换机,并根据所述初始交换机确定所述要分出上报的至少一个新建数据包对应的流表项。
结合第三方面或第三方面第一种可能的实现方式,在第二种可能的实现方式中,所述交换机还包括:
接收单元,用于接收所述控制器发送的与所述初始交换机直接相连的其他交换机的信息。
结合第三方面、第三方面第一种或第二种可能的实现方式,在第三种可能的实现方式中,所述交换机还包括:
删除单元,用于在所述确定单元确定出未上报的新建数据包低于上报能力阈值下限时,删除所述临时流表项。
本发明第四方面提供一种控制器,包括:
接收单元,用于接收分流交换机上报的新建数据包,其中,所述新建数据包为在初始交换机中未匹配到流表项,且由所述初始交换机在未上报的新建数据包超过其上报能力阈值上限时,转发给所述分流交换机进行上报的数据包,所述流表项用于指示所述初始交换机对所述新建数据包的处理方法;
第一确定单元,用于根据所述接收单元接收的所述新建数据包,确定所述初始交换机;
第二确定单元,用于根据所述第一确定单元确定的所述初始交换机和所述新建数据包中的规则确定信息,确定所述新建数据包的流表项。
在第四方面的第一种可能的实现方式中,所述第一确定单元包括:
解析子单元,用于解析所述新建数据包中封装的交换机的标识信息;
确定子单元,用于根据所述解析子单元解析出的所述交换机的标识信息,确定所述初始交换机。
结合第四方面或第四方面第一种可能的实现方式,在第二种可能的实现方式中,所述控制器还包括:
发送单元,用于向所述初始交换机发送与所述初始交换机直接相连的其他交换机的信息,以便所述初始交换机确定转发所述新建数据包的所述分流交换机。
结合第四方面、第四方面第一种或第二种可能的实现方式,在第三种可能的实现方式中,所述规则确定信息包括媒体接入控制Mac地址、IP地址、端口号中的一种或几种。
本发明第五方面提供一种交换机,包括:输入设备、输出设备、处理器和存储器;
其中,所述处理器用于执行如下步骤:
在未上报的新建数据包超过上报能力阈值上限时,确定出要分出上报的至少一个新建数据包,其中,所述新建数据包为在所述初始交换机中未匹配到流表项的数据包,所述流表项用于指示所述初始交换机对所述新建数据包的处理方法;
根据与所述初始交换机直接相连的其他交换机的信息,为所述要分出上报的至少一个新建数据包选择用于分流上报的分流交换机,在所述初始交换机上建立所述要分出上报的至少一个新建数据包对应的临时流表项,所述临时流表项的输出端口设置为到所述分流交换机的端口;
根据所述临时流表项,向所述分流交换机发送所述要分出上报的至少一个新建数据包,以便所述分流交换机将所述要分出上报的至少一个新建数据包上报给所述控制器。
本发明第六方面提供一种控制器,包括:输入设备、输出设备、处理器和存储器;
所述输入设备用于接收分流交换机上报的新建数据包,其中,所述新建数据包为在初始交换机中未匹配到流表项,且由所述初始交换机在未上报的新建数据包超过其上报能力阈值上限时,转发给所述分流交换机进行上报的数据包,所述流表项用于指示所述初始交换机对所述新建数据包的处理方法;
所述处理器用于根据所述新建数据包,确定所述初始交换机,根据所述初始交换机和所述新建数据包中的规则确定信息,确定所述新建数据包的流表项。
在第六方面的第一种可能的实现方式中,所述规则确定信息包括媒体接入控制Mac地址、IP地址、端口号中的一种或几种。
本发明第七方面提供一种信息交互***,包括:控制器、至少一个交换机和至少一个主机,
所述控制器向所述至少一个交换机发送与所述至少一个交换机直接相连的交换机的信息;
将所述至少一个交换机中接收到大量新建数据包的交换机作为初始交换机;
初始交换机在未上报的新建数据包超过上报能力阈值上限时,确定出要分出上报的至少一个新建数据包,其中,所述新建数据包为在所述初始交换机中未匹配到流表项的数据包,所述流表项用于指示所述初始交换机对所述新建数据包的处理方法;
所述初始交换机根据与所述初始交换机直接相连的其他交换机的信息,为所述要分出上报的至少一个新建数据包选择用于分流上报的分流交换机;
所述初始交换机在所述初始交换机上建立所述要分出上报的至少一个新建数据包对应的临时流表项,所述临时流表项的输出端口设置为到所述分流交换机的端口;
所述初始交换机根据所述临时流表项,向所述分流交换机发送所述要分出上报的至少一个新建数据包;
所述控制器接收分流交换机上报的新建数据包,其中,所述新建数据包为在初始交换机中未匹配到流表项,且由所述初始交换机在未上报的新建数据包超过其上报能力阈值上限时,转发给所述分流交换机进行上报的数据包,所述流表项用于指示所述初始交换机对所述新建数据包的处理方法;
所述控制器根据所述新建数据包,确定所述初始交换机,根据所述初始交换机和所述新建数据包中的规则确定信息,确定所述新建数据包的流表项。
在第七方面的第一种可能的实现方式中,所述规则确定信息包括媒体接入控制Mac地址、IP地址、端口号中的一种或几种。
本发明实施例中,初始交换机接收到的新建数据包很多时,会将上报新建数据包的任务转由与初始交换机直接相连的其他交换机来上报,从而加快了新建数据包的上报速度,避免了新建数据包阻塞在初始交换机中。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例中分流上报的方法的一实施例示意图;
图2A和图2B是本发明实施例中分流上报的方法的另一实施例示意图;
图3是本发明实施例中分流上报的方法的另一实施例示意图;
图4是本发明实施例中分流上报的方法的另一实施例示意图;
图5是本发明实施例中交换机的一实施例示意图;
图6是本发明实施例中交换机的另一实施例示意图;
图7是本发明实施例中交换机的另一实施例示意图;
图8是本发明实施例中交换机的另一实施例示意图;
图9是本发明实施例中控制器的一实施例示意图;
图10是本发明实施例中控制器的另一实施例示意图;
图11是本发明实施例中控制器的另一实施例示意图;
图12是本发明实施例中交换机的另一实施例示意图;
图13是本发明实施例中控制器的另一实施例示意图;
图14是本发明实施例中信息交互***的一实施例示意图。
具体实施方式
本发明实施例提供一种分流上报的方法,可以通过与接收到新建数据包的初始交换机直接相连的其他交换机向控制器分流上报未上报的新建数据包,从而加快了新建数据包的上报速度,避免了新建数据包阻塞在初始交换机中。本发明实施例还提供了相应的交换机、控制器及***。以下分别进行详细说明。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参阅图1,本发明实施例提供的分流上报的方法的一实施例包括:
控制器、交换机1、交换机2、交换机3、交换机4、主机A和主机B,控制器分别与交换机1、交换机2、交换机3和交换机4通信连接,当然,一个软件定义网络(Software definednetwork,SDN)中可以包括很多交换机和主机,图1只是以这几个为例进行说明。
假设交换机1瞬间接收到10个新建数据包,本发明实施例中的交换机1为初始交换机,这10个新建数据包可以来自不同的主机,假设10个新建数据包的编号分别为1-10,交换机1会缓存这些新建数据包,然后确定未上报的新建数据包是否超过上报能力阈值上限,如果超过上报能力阈值,则确定要分出上报的新建数据包,假设交换机1在能力范围内可以上报3个新建数据包,例如:交换机1上报编号为1-3的新建数据包,则可以确定将编号为4-10的新建数据包分出上报。
上报能力阈值可以是交换机通过判断自身CPU利用率,新建数据包缓冲Buffer的数目占总Buffer数的比例等来确定,也可以采用其他方式确定,本发明对此不作限定。
新建数据包中会包含发送该新建数据包的源主机信息和要到达的目的主机信息。
控制器可以先向交换机1、交换机2、交换机3和交换机4发送各自直接相连的交换机的信息,但不一定发送所有的直接相连的交换机的信息,对于发送的直接相连的交换机的信息可以由控制器决定,控制器可通过多种方式判断各交换机直接相连的交换机是否空闲,来合理安排下发的交换机数目和优先级。
控制器向交换机发送直接相连的交换机的信息时,可以通过一条扩充的openflow消息来实现,可以在openflow消息中携带与本交换机直接相连的交换机的数目、交换机的标识,以及与本交换机相连的端口号。
例如:向交换机1发送的直接相连的交换机的信息为交换机2,向交换机2下发的直接相连的交换机的信息为交换机1和交换机3,向交换机3下发的直接相连的交换机的信息为交换机2。
交换机1在确定要将7个新建数据包分流上报后,根据与交换机直接相连的交换机的信息,可以确定分流的交换机为交换机2,而且,交换机1还会为每个要分出上报的新建数据包建立临时流表项,所述临时流表项的输出端口设置为到所述分流交换机的端口,也就是将所有要分出上报的新建数据包对应的临时流表项的输出端口设置为交换机2的端口。
这样,交换机1就可以将编号为4-10的7个新建数据包转移到交换机2进行上报,而且,在向交换机2发送编号为4-10的7个新建数据包时,要在每个新建数据包中封装交换机1的标识信息,标识信息可以是交换机的标识,还可以是交换机的标识和交换机的端口号。
交换机2接收到编号为4-10的7个新建数据包后,假设交换机2在能力范围内只能上报编号4-7的四个新建数据包,则交换机2再根据与交换机2直接相连的交换机的信息,确定将剩余不能上报的新建数据包转移给交换机3,也就是交换机2再将编号为8-10的3个新建数据包转移给交换机3,假设交换机3在能力范围内确认可以上报3个新建数据包,则交换机3不再向其他交换机转移上报信息。交换机2在向交换机3发送编号为8-10的3个新建数据包时,会在新建流中封装上交换机2的标识信息。
这样,10个新建数据包就由交换机1、交换机2、交换机3分别上报,交换机1上报编号为1-3的三个新建数据包,交换机2上报编号为4-7的四个新建数据包,交换机3上报编号为8-10的三个新建数据包,交换机向控制器上报新建数据包时可以通过openflow消息承载。
对于交换机在转移的新建数据包中封装的交换机的标识可以参阅图2A进行理解,交换机1上报的编号1-3的三个新建数据包的格式可以为tag1(port1)+净荷,交换机2上报的编号4-7的四个新建数据包的格式可以为tag2(port1)tag1(port1)+净荷,交换机3上报的编号8-10的三个新建数据包的格式可以为tag3(port1)tag2(port1)tag1(port1)+净荷。其中,tag为交换机的标识,port为交换机的端口号,即交换机接收该新建数据包的端口号。
控制器接收到这10个上报信息后,就可以按照上报信息的格式解析出编号1-3的新建数据包来源于交换机1,编号4-7的新建数据包经历了交换机2和交换机1,初始来源于交换机1,编号8-10的新建数据包经历了交换机3、交换机2和交换机1,初始来源于交换机1。
这样,控制器就可以根据网络拓扑信息、每个上报信息中携带的源主机和目的主机的信息,确定10个新建数据包各自的流表项,以其中的新建数据包1为例,新建数据包1的源主机为主机A,目的主机为主机B,控制器就可以确定新建数据包1的转发路径为交换机1--交换机4—主机B。控制器根据该转发路径确定发送给交换机1的流表项和发送给交换机4的流表项,发送给交换机1的流表项为新建数据包1:交换机1—交换机4,发送给交换机4的流表项为新建数据包1:交换机4-主机B。当然,上述流表项中交换机1—交换机4具体可以是设置为将新建数据包发送到交换机1到交换机4的端口,交换机4-主机B具体可以是将新建数据包发送到交换机4到主机B的端口。
这样,交换机1接收到流表项新建数据包1:交换机1—交换机4后,就会将新建数据包1发送到交换机4,交换机4接收到流表项为新建数据包1:交换机4-主机B,以及交换机1发送来的新建数据包1后,就会将新建数据包1发送给主机B。
当交换机1接收到编号为11的数据包所包含的信息与编号为1的新建数据包相同时,则编号为11的数据包就可以匹配按照编号为1的新建数据包建立的流表项进行处理。
当交换机1确定出未上报的新建数据包低于上报能力阈值下限时,删除所述临时流表项。例如:当上报能力阈值上限为中央处理器上报能力的80%时,在未上报的新建数据包超过中央处理器上报能力的80%时,则执行上述分流上报的过程,如果上报能力阈值下限为中央处理器上报能力的50%,则新建数据包降低到中央处理器上报能力的50%以下时,交换机1删除之前建立的临时流表项,不再执行上述的分流上报,而是将所有新建数据包的工作都由交换机1完成。
本发明实施例中初始交换机会建立临时流表项,流表项的具体格式如图2B所示,其中的匹配域、动作Action包括但不限于图2B中描述的:
如图2B所示,一般自动生成的临时流表项位于初始交换机的最后一张流表中。
匹配域中的In_port匹配域可以为本节点的具体端口,也可以采用通配(*),表示来自本交换机某个端口或全部端口的未能匹配的新建数据包。
匹配域中的Other match fields表示流表中的其他匹配域,同样可以是具体的值也可以采用通配(*)。
流表项的优先级Priority为0,表示最低优先级,也就是说最后才能匹配到本流表项。即,只有匹配不到其他流表项的新建数据流才会匹配到这条流表项,发送给其他交换机进行分流。
流表项对应的指令Instr为write actions,表明为写动作。
流表项对应的动作action包括将新建流的数据包增加一个标识tag头(pushtag),修改tag值(write tag value,包括交换机标识和in_port中的port号),输出到某个端口(output port),这个端口就是获取的初始交换机与直接相连的交换机的端口号。
新增流表项动作中输出到具体哪个与直接相连的交换机相连的端口,不是本方案讨论的重点。方法很多,例如各个新建流入端口的繁忙程度、以及根据邻居节点的优先级等。
本发明中涉及了转移到直接相连的交换机的数据包携带本交换机的标识信息,主要是携带新建数据包在本交换机的入端口信息。是通过流表项中的push tag和write tagvalue动作来实现的,这两个动作的具体格式见Openflow协议。
tag应用的具体描述如下:
为了能够被交换机硬件识别,我们将初始交换机的信息放置在符合IP协议规范的tag标签中来实现。
这类tag可采用目前已知的一些隧道头来实现,包括但不限于如下一些标签头,例如MPLS Tag、GRE Tag、VLAN Tag、Vxlan Tag等等。为了满足多层次转移的需求,这些已知的隧道头最好能支持多层嵌套。
以上所描述的实施例中,初始交换机接收到的新建数据包很多时,会将向控制器上报新建数据包的任务转由与初始交换机直接相连其他交换机来协助,从而加快了新建数据包的上报速度,避免了新建数据包阻塞在初始交换机中。
参阅图3,从交换机的角度来看,本发明实施例提供的分流上报的方法的另一实施例包括:
101、初始交换机在未上报的新建数据包超过上报能力阈值上限时,确定出要分出上报的至少一个新建数据包。
其中,所述新建数据包为在所述初始交换机中未匹配到流表项的数据包,所述流表项用于指示所述初始交换机对所述新建数据包的处理方法。
交换机在接收到数据包后会先查询交换机上存储的流表项,如果查询到相应的流表项,交换机就会按照流表项处理该数据包,如果没有查询到流表项,则确定该数据包为新建数据包,需要向控制器请求该新建数据包对应的流表项。
交换机1上存储的数据包的转发规则可以为交换机1—交换机2,交换机2上存储的数据包的转发规则可以为交换机2—交换机3,交换机3上存储的转发规则可以为交换机3—主机D。
102、根据与所述初始交换机直接相连的其他交换机的信息,为所述要分出上报的至少一个新建数据包选择用于分流上报的分流交换机。
一个交换机可以有几个直接相连的交换机,在选择分流交换机时可以选择负载最轻的一个或者几个交换机作为分流交换机。
103、在所述初始交换机上建立所述要分出上报的至少一个新建数据包对应的临时流表项,所述临时流表项的输出端口设置为到所述分流交换机的端口。
临时流表项也就是用于指示将新建数据包分流到哪个交换机上进行分流上报,这样,新建数据包就会按照临时流表项分流到该分流交换机上,不用针对每个新建数据包都确定一次分流交换机。
104、根据所述临时流表项,向所述分流交换机发送所述要分出上报的至少一个新建数据包,以便所述分流交换机将所述要分出上报的至少一个新建数据包上报给所述控制器。
本发明实施例中,初始交换机接收到的新建数据包很多时,会将向控制器上报新建数据包的任务转由与初始交换机直接相连其他交换机来协助,从而加快了新建数据包的上报速度,避免了新建数据包阻塞在初始交换机中。
可选地,在上述图3对应的实施例或可选实施例的基础上,本发明实施例提供的分流上报的方法的另一实施例中,所述方法还可以包括:
在向所述分流交换机发送的所述要分出上报的至少一个新建数据包中封装所述初始交换机的标识信息,以便所述分流交换机将所述标识分流上报给所述控制器,用于所述控制器根据所述标识信息确定所述初始交换机,并根据所述初始交换机确定所述要分出上报的至少一个新建数据包对应的流表项。
可选地,在上述图3对应的实施例或可选实施例的基础上,本发明实施例提供的分流上报的方法的另一实施例中,所述根据与所述初始交换机直接相连的其他交换机的信息,为所述要分出上报的至少一个新建数据包选择用于分流上报的分流交换机之前,所述方法还包括:
接收所述控制器发送的与所述初始交换机直接相连的其他交换机的信息。
可选地,在上述图3对应的实施例或可选实施例的基础上,本发明实施例提供的分流上报的方法的另一实施例中,所述方法还可以包括:
所述初始交换机确定出未上报的新建数据包低于上报能力阈值下限时,删除所述临时流表项。
可选地,在上述图3对应的实施例或可选实施例的基础上,本发明实施例提供的分流上报的方法的另一实施例中,所述临时流表项位于所述初始交换机的最后一张流表中,且为最低优先级。
图3对应的几个实施例可以参阅图1、图2A和图2B对应的实施例部分的描述进行理解,本处不做过多赘述。
参阅图4,从控制器的角度来看,本发明实施例提供的分流上报的方法的另一实施例包括:
201、接收分流交换机上报的新建数据包。
其中,所述新建数据包为在初始交换机中未匹配到流表项,且由所述初始交换机在未上报的新建数据包超过其上报能力阈值上限时,转发给所述分流交换机进行上报的数据包,所述流表项用于指示所述初始交换机对所述新建数据包的处理方法。
202、根据所述新建数据包,确定所述初始交换机。
203、根据所述初始交换机和所述新建数据包中的规则确定信息,确定所述新建数据包的流表项。
这里的规则确定信息是新建数据包中的一些用来确定流表项的信息,具体可以是Mac地址、IP地址、端口号等的一种或几种,例如:根据新建数据包中的媒体接入控制(MediaAccess Control,Mac)地址、IP地址,可以确定Mac地址、IP地址为某些值的新建数据包进行相应处理的流表项。
本发明实施例中,控制器可以从多个分流交换机接收初始交换机上缓存的新建数据包,这样,控制器就可以根据新建数据包及时确定每个新建数据包的流表项,从而避免了新建数据包阻塞在初始交换机中。
可选地,在上述图4对应的实施例的基础上,本发明实施例提供的分流上报的方法的另一实施例中,所述根据所述新建数据包,确定所述初始交换机,可以包括:
解析所述新建数据包中封装的交换机的标识信息;
根据所述交换机的标识信息,确定所述初始交换机。
可选地,在上述图4对应的实施例或可选实施例的基础上,本发明实施例提供的分流上报的方法的另一实施例中,所述方法还可以包括:
向所述初始交换机发送与所述初始交换机直接相连的其他交换机的信息,以便所述初始交换机确定转发所述新建数据包的所述分流交换机。
图4对应的几个实施例可以参阅图1、图2A和图2B对应的实施例部分的描述进行理解,本处不做过多赘述。
参阅图5,本发明实施例提供的交换机30的一实施例包括:
确定单元301,用于在未上报的新建数据包超过上报能力阈值上限时,确定出要分出上报的至少一个新建数据包,其中,所述新建数据包为在初始交换机中未匹配到流表项的数据包,所述流表项用于指示所述初始交换机对所述新建数据包的处理方法;
选择单元302,用于根据与所述初始交换机直接相连的其他交换机的信息,为所述确定单元301确定的所述要分出上报的至少一个新建数据包选择用于分流上报的分流交换机;
创建单元303,用于在所述初始交换机上建立所述要分出上报的至少一个新建数据包对应的临时流表项,所述临时流表项的输出端口设置为到所述选择单元302选择的所述分流交换机的端口;
发送单元304,用于根据所述创建单元303创建的所述临时流表项,向所述分流交换机发送所述要分出上报的至少一个新建数据包,以便所述分流交换机将所述要分出上报的至少一个新建数据包上报给所述控制器。
本发明实施例中,确定单元301在未上报的新建数据包超过上报能力阈值上限时,确定出要分出上报的至少一个新建数据包,其中,所述新建数据包为在初始交换机中未匹配到流表项的数据包,所述流表项用于指示所述初始交换机对所述新建数据包的处理方法,选择单元302根据与所述初始交换机直接相连的其他交换机的信息,为所述确定单元301确定的所述要分出上报的至少一个新建数据包选择用于分流上报的分流交换机,创建单元303在所述初始交换机上建立所述要分出上报的至少一个新建数据包对应的临时流表项,所述临时流表项的输出端口设置为到所述选择单元302选择的所述分流交换机的端口,发送单元304根据所述创建单元303创建的所述临时流表项,向所述分流交换机发送所述要分出上报的至少一个新建数据包,以便所述分流交换机将所述要分出上报的至少一个新建数据包上报给所述控制器。本发明实施例中,初始交换机接收到的新建数据包很多时,会将上报新建数据包的任务转由与其直接相连的其他交换机来上报,从而加快了新建数据包的上报速度,避免了新建数据包阻塞在初始交换机中。
可选地,在上述图5对应的实施例的基础上,参阅图6,本发明实施例提供的交换机的另一实施例中,所述交换机还包括:
封装单元305,用于在所述发送单元304向所述分流交换机发送的所述要分出上报的至少一个新建数据包中封装所述初始交换机的标识信息,以便所述分流交换机将所述标识分流上报给所述控制器,用于所述控制器根据所述标识信息确定所述初始交换机,并根据所述初始交换机确定所述要分出上报的至少一个新建数据包对应的流表项。
可选地,在上述图6对应的实施例的基础上,参阅图7,本发明实施例提供的交换机的另一实施例中,所述交换机还包括:
接收单元306,用于接收所述控制器发送的与所述初始交换机直接相连的其他交换机的信息。
可选地,在上述图7对应的实施例的基础上,参阅图8,本发明实施例提供的交换机的另一实施例中,所述交换机还包括:
删除单元307,用于在所述确定单元301确定出未上报的新建数据包低于上报能力阈值下限时,删除所述临时流表项。
参阅图9,本发明实施例提供的控制器的一实施例包括:
接收单元401,用于接收分流交换机上报的新建数据包,其中,所述新建数据包为在初始交换机中未匹配到流表项,且由所述初始交换机在未上报的新建数据包超过其上报能力阈值上限时,转发给所述分流交换机进行上报的数据包,所述流表项用于指示所述初始交换机对所述新建数据包的处理方法;
第一确定单元402,用于根据所述接收单元401接收的所述新建数据包,确定所述初始交换机;
第二确定单元403,用于根据所述第一确定单元402确定的所述初始交换机和所述新建数据包中的规则确定信息,确定所述新建数据包的流表项。
这里的规则确定信息是新建数据包中的一些用来确定流表项的信息,具体可以是Mac地址、IP地址、端口号等的一种或几种,例如:根据新建数据包中的媒体接入控制(MediaAccess Control,Mac)地址、IP地址,可以确定Mac地址、IP地址为某些值的新建数据包进行相应处理的流表项。
本发明实施例中,接收单元401接收分流交换机上报的新建数据包,其中,所述新建数据包为在初始交换机中未匹配到流表项,且由所述初始交换机在未上报的新建数据包超过其上报能力阈值上限时,转发给所述分流交换机进行上报的数据包,所述流表项用于指示所述初始交换机对所述新建数据包的处理方法,第一确定单元402根据所述接收单元401接收的所述新建数据包,确定所述初始交换机,第二确定单元403根据所述第一确定单元402确定的所述初始交换机和所述新建数据包中的规则确定信息,确定所述新建数据包的流表项。本发明实施例中,控制器可以从多个分流交换机接收初始交换机上缓存的新建数据包,这样,控制器就可以根据接收的新建数据包确定每个新建数据包的流表项,从而避免了新建数据包阻塞在初始交换机中。
可选地,在上述图9对应的实施例的基础上,参阅图10,本发明实施例提供的控制器的另一实施例中,所述第一确定单元402包括:
解析子单元4021,用于解析所述新建数据包中封装的交换机的标识信息;
确定子单元4022,用于根据所述解析子单元4021解析出的所述交换机的标识信息,确定所述初始交换机。
可选地,在上述图10对应的实施例的基础上,参阅图11,本发明实施例提供的控制器的另一实施例中,所述控制器40还包括:
发送单元404,用于向所述初始交换机发送与所述初始交换机直接相连的其他交换机的信息,以便所述初始交换机确定转发所述新建数据包的所述分流交换机。
所述发送单元404还用于向所述第二确定单元403确定的所述流表项中包含的交换机发送所述流表项。
图12是本发明实施例交换机30的结构示意图。交换机30可包括输入设备310、输出设备320、处理器330和存储器340。
存储器340可以包括只读存储器和随机存取存储器,并向处理器330提供指令和数据。存储器340的一部分还可以包括非易失性随机存取存储器(NVRAM)。
存储器340存储了如下的元素,可执行模块或者数据结构,或者它们的子集,或者它们的扩展集:
操作指令:包括各种操作指令,用于实现各种操作。
操作***:包括各种***程序,用于实现各种基础业务以及处理基于硬件的任务。
在本发明实施例中,处理器330通过调用存储器340存储的操作指令(该操作指令可存储在操作***中),执行如下操作:
在未上报的新建数据包超过上报能力阈值上限时,确定出要分出上报的至少一个新建数据包,其中,所述新建数据包为在所述初始交换机中未匹配到流表项的数据包,所述流表项用于指示所述初始交换机对所述新建数据包的处理方法;
根据与所述初始交换机直接相连的其他交换机的信息,为所述要分出上报的至少一个新建数据包选择用于分流上报的分流交换机;
在所述初始交换机上建立所述要分出上报的至少一个新建数据包对应的临时流表项,所述临时流表项的输出端口设置为到所述分流交换机的端口;
根据所述临时流表项,通过输出设备320向所述分流交换机发送所述要分出上报的至少一个新建数据包。
本发明实施例中,本发明实施例中,初始交换机接收到的新建数据包很多时,会将上报新建数据包的任务转由与初始交换机直接相连的其他交换机来上报,从而加快了新建数据包的上报速度,避免了新建数据包阻塞在初始交换机中。
处理器330控制交换机30的操作,处理器330还可以称为CPU(Central ProcessingUnit,中央处理单元)。存储器340可以包括只读存储器和随机存取存储器,并向处理器330提供指令和数据。存储器340的一部分还可以包括非易失性随机存取存储器(NVRAM)。具体的应用中,交换机30的各个组件通过总线***350耦合在一起,其中总线***350除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线***350。
上述本发明实施例揭示的方法可以应用于处理器330中,或者由处理器330实现。处理器330可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器330中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器330可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器340,处理器330读取存储器340中的信息,结合其硬件完成上述方法的步骤。
可选地,所述处理器330还用于在向所述分流交换机发送的所述要分出上报的至少一个新建数据包中封装所述初始交换机的标识信息,以便所述分流交换机将所述标识分流上报给所述控制器,用于所述控制器根据所述标识信息确定所述初始交换机,并根据所述初始交换机确定所述要分出上报的至少一个新建数据包对应的流表项。
可选地,所述输入设备310用于接收所述控制器发送的与所述初始交换机直接相连的其他交换机的信息。
可选地,所述处理器330还用于确定出未上报的新建数据包低于上报能力阈值下限时,删除所述临时流表项。
所述临时流表项位于所述初始交换机的最后一张流表中,且为最低优先级。
图13是本发明实施例控制器40的结构示意图。控制器40可包括输入设备410、输出设备420、处理器430和存储器440。
存储器440可以包括只读存储器和随机存取存储器,并向处理器430提供指令和数据。存储器440的一部分还可以包括非易失性随机存取存储器(NVRAM)。
存储器440存储了如下的元素,可执行模块或者数据结构,或者它们的子集,或者它们的扩展集:
操作指令:包括各种操作指令,用于实现各种操作。
操作***:包括各种***程序,用于实现各种基础业务以及处理基于硬件的任务。
在本发明实施例中,处理器430通过调用存储器440存储的操作指令(该操作指令可存储在操作***中),执行如下操作:
通过输入设备接收分流交换机上报的新建数据包,其中,所述新建数据包为在初始交换机中未匹配到流表项,且由所述初始交换机在未上报的新建数据包超过其上报能力阈值上限时,转发给所述分流交换机进行上报的数据包,所述流表项用于指示所述初始交换机对所述新建数据包的处理方法;
根据所述新建数据包,确定所述初始交换机;
根据所述初始交换机和所述新建数据包中的规则确定信息,确定所述新建数据包的流表项。
这里的规则确定信息是新建数据包中的一些用来确定流表项的信息,具体可以是Mac地址、IP地址、端口号等的一种或几种,例如:根据新建数据包中的媒体接入控制(MediaAccess Control,Mac)地址、IP地址,可以确定Mac地址、IP地址为某些值的新建数据包进行相应处理的流表项。
本发明实施例中,控制器可以从多个分流交换机接收初始交换机上缓存的新建数据包,这样,控制器就可以根据新建数据包及时确定每个新建数据包的流表项,从而避免了新建数据包阻塞在初始交换机中。
处理器430控制控制器40的操作,处理器430还可以称为CPU(Central ProcessingUnit,中央处理单元)。存储器440可以包括只读存储器和随机存取存储器,并向处理器430提供指令和数据。存储器440的一部分还可以包括非易失性随机存取存储器(NVRAM)。具体的应用中,控制器40的各个组件通过总线***450耦合在一起,其中总线***450除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线***450。
上述本发明实施例揭示的方法可以应用于处理器430中,或者由处理器430实现。处理器430可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器430中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器430可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器440,处理器430读取存储器440中的信息,结合其硬件完成上述方法的步骤。
可选地,所述处理器430具体可以解析所述新建数据包中封装的交换机的标识信息,根据所述交换机的标识信息,确定所述初始交换机。
可选地,所述输出设备420用于向所述初始交换机发送与所述初始交换机直接相连的其他交换机的信息,以便所述初始交换机确定转发所述新建数据包的所述分流交换机。
参阅图14,本发明实施例提供的信息交互***的一实施例包括:交换机30A、交换机30B、交换机30C、交换机30D、控制器40和主机50A和主机50B,本发明实施例中只是举例说明,实际上可以有更多个交换机和更多个主机和主机,图14中未一一画出。
所述控制器40向所述交换机30A、交换机30B、交换机30C、交换机30D分别发送与所述交换机30直接相连的交换机的信息;
所述交换机30A从主机50A接收新建数据包,图中只画出了主机50A,实际上交换机30A还可以接收其他主机发送的新建数据包;
所述交换机30A作为初始交换机时,
所述交换机30A在未上报的新建数据包超过上报能力阈值上限时,确定出要分出上报的至少一个新建数据包,其中,所述新建数据包为在所述初始交换机中未匹配到流表项的数据包,所述流表项用于指示所述初始交换机对所述新建数据包的处理方法;
所述交换机30A根据与所述初始交换机直接相连的其他交换机的信息,为所述要分出上报的至少一个新建数据包选择用于分流上报的分流交换机;
所述交换机30A在所述初始交换机上建立所述要分出上报的至少一个新建数据包对应的临时流表项,所述临时流表项的输出端口设置为到所述分流交换机的端口;
所述交换机30A根据所述临时流表项,向所述分流交换机发送所述要分出上报的至少一个新建数据包;
所述控制器40接收分流交换机上报的新建数据包,其中,所述新建数据包为在初始交换机中未匹配到流表项,且由所述初始交换机在未上报的新建数据包超过其上报能力阈值上限时,转发给所述分流交换机进行上报的数据包,所述流表项用于指示所述初始交换机对所述新建数据包的处理方法;
所述控制器40根据所述新建数据包,确定所述初始交换机,根据所述初始交换机和所述新建数据包中的规则确定信息,确定所述新建数据包的流表项。
所述流表项所描述的转发路径可以为交换机30A-交换机30D-主机50B;
所述控制器40向交换机30A和交换机30D发送所述新建数据包的流表项;
所述交换机30A根据所述流表项将所述新建数据包转发到交换机30D,交换机30D将所述新建数据包转发到主机B。
这里的规则确定信息是新建数据包中的一些用来确定流表项的信息,具体可以是Mac地址、IP地址、端口号等的一种或几种,例如:根据新建数据包中的媒体接入控制(MediaAccess Control,Mac)地址、IP地址,可以确定Mac地址、IP地址为某些值的新建数据包进行相应处理的流表项。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
以上对本发明实施例所提供的分流上报的方法、交换机、控制器以及***进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (22)
1.一种分流上报的方法,其特征在于,包括:
初始交换机在未上报至控制器的新建数据包超过上报能力阈值上限时,确定出要分出上报的至少一个新建数据包,使所述初始交换机中剩余的新建数据包不超过其上报能力或者所述初始交换机中剩余的新建数据包在其上报能力范围内,其中,所述新建数据包为在所述初始交换机中未匹配到流表项的数据包,所述流表项用于指示所述初始交换机对所述新建数据包的处理方法;
根据与所述初始交换机直接相连的其他交换机的信息,为所述要分出上报的至少一个新建数据包选择用于分流上报的分流交换机;
在所述初始交换机上建立所述要分出上报的至少一个新建数据包对应的临时流表项,所述临时流表项的输出端口设置为到所述分流交换机的端口;
根据所述临时流表项,向所述分流交换机发送所述要分出上报的至少一个新建数据包,以便所述分流交换机将所述要分出上报的至少一个新建数据包上报给所述控制器。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在向所述分流交换机发送的所述要分出上报的至少一个新建数据包中封装所述初始交换机的标识信息,以便所述分流交换机将所述标识分流上报给所述控制器,用于所述控制器根据所述标识信息确定所述初始交换机,并根据所述初始交换机确定所述要分出上报的至少一个新建数据包对应的流表项。
3.根据权利要求1所述的方法,其特征在于,所述根据与所述初始交换机直接相连的其他交换机的信息,为所述要分出上报的至少一个新建数据包选择用于分流上报的分流交换机之前,所述方法还包括:
接收所述控制器发送的与所述初始交换机直接相连的其他交换机的信息。
4.根据权利要求1至3任一所述的方法,其特征在于,所述方法还包括:
所述初始交换机确定出未上报的新建数据包低于上报能力阈值下限时,删除所述临时流表项。
5.根据权利要求1至3任一所述的方法,其特征在于,所述临时流表项位于所述初始交换机的最后一张流表中,且为最低优先级。
6.一种分流上报的方法,应用于控制器,其特征在于,所述方法包括:
接收分流交换机上报的新建数据包,其中,所述新建数据包为在初始交换机中未匹配到流表项,且由所述初始交换机在未上报至所述控制器的新建数据包超过其上报能力阈值上限时,超过其上报能力范围的转发给与所述初始交换机直连的分流交换机进行上报的数据包,所述流表项用于指示所述初始交换机对所述新建数据包的处理方法;
根据所述新建数据包,确定所述初始交换机;
根据所述初始交换机和所述新建数据包中的规则确定信息,确定所述新建数据包的流表项。
7.根据权利要求6所述的方法,其特征在于,所述根据所述新建数据包,确定所述初始交换机,包括:
解析所述新建数据包中封装的交换机的标识信息;
根据所述交换机的标识信息,确定所述初始交换机。
8.根据权利要求6所述的方法,其特征在于,所述方法还包括:
向所述初始交换机发送与所述初始交换机直接相连的其他交换机的信息,以便所述初始交换机确定转发所述新建数据包的所述分流交换机。
9.根据权利要求6至8任一所述的方法,其特征在于,所述规则确定信息包括媒体接入控制Mac地址、IP地址、端口号中的一种或几种。
10.一种初始交换机,其特征在于,包括:
确定单元,用于在未上报至控制器的新建数据包超过上报能力阈值上限时,确定出要分出上报的至少一个新建数据包,使所述初始交换机中剩余的新建数据包不超过其上报能力或者所述初始交换机中剩余的新建数据包在其上报能力范围内,其中,所述新建数据包为在初始交换机中未匹配到流表项的数据包,所述流表项用于指示所述初始交换机对所述新建数据包的处理方法;
选择单元,用于根据与所述初始交换机直接相连的其他交换机的信息,为所述确定单元确定的所述要分出上报的至少一个新建数据包选择用于分流上报的分流交换机;
创建单元,用于在所述初始交换机上建立所述要分出上报的至少一个新建数据包对应的临时流表项,所述临时流表项的输出端口设置为到所述选择单元选择的所述分流交换机的端口;
发送单元,用于根据所述创建单元创建的所述临时流表项,向所述分流交换机发送所述要分出上报的至少一个新建数据包,以便所述分流交换机将所述要分出上报的至少一个新建数据包上报给所述控制器。
11.根据权利要求10所述的交换机,其特征在于,所述交换机还包括:
封装单元,用于在所述发送单元向分流交换机发送的所述要分出上报的至少一个新建数据包中封装所述初始交换机的标识信息,以便所述分流交换机将所述标识分流上报给所述控制器,用于所述控制器根据所述标识信息确定所述初始交换机,并根据所述初始交换机确定所述要分出上报的至少一个新建数据包对应的流表项。
12.根据权利要求10所述的交换机,其特征在于,所述交换机还包括:
接收单元,用于接收所述控制器发送的与所述初始交换机直接相连的其他交换机的信息。
13.根据权利要求10-12任一所述的交换机,其特征在于,所述交换机还包括:
删除单元,用于在所述确定单元301确定出未上报的新建数据包低于上报能力阈值下限时,删除所述临时流表项。
14.一种控制器,其特征在于,包括:
接收单元,用于接收分流交换机上报的新建数据包,其中,所述新建数据包为在初始交换机中未匹配到流表项,且由所述初始交换机在未上报至所述控制器的新建数据包超过其上报能力阈值上限时,超过其上报能力范围的转发给与所述初始交换机直连的分流交换机进行上报的数据包,所述流表项用于指示所述初始交换机对所述新建数据包的处理方法;
第一确定单元,用于根据所述接收单元接收的所述新建数据包,确定所述初始交换机;
第二确定单元,用于根据所述第一确定单元确定的所述初始交换机和所述新建数据包中的规则确定信息,确定所述新建数据包的流表项。
15.根据权利要求14所述的控制器,其特征在于,所述第一确定单元包括:
解析子单元,用于解析所述新建数据包中封装的交换机的标识信息;
确定子单元,用于根据所述解析子单元解析出的所述交换机的标识信息,确定所述初始交换机。
16.根据权利要求14所述的控制器,其特征在于,所述控制器还包括:
发送单元,用于向所述初始交换机发送与所述初始交换机直接相连的其他交换机的信息,以便所述初始交换机确定转发所述新建数据包的所述分流交换机。
17.根据权利要求14至16任一所述的控制器,其特征在于,所述规则确定信息包括媒体接入控制Mac地址、IP地址、端口号中的一种或几种。
18.一种初始交换机,其特征在于,包括:输入设备、输出设备、处理器和存储器;
其中,所述处理器用于执行如下步骤:
在未上报至控制器的新建数据包超过上报能力阈值上限时,确定出要分出上报的至少一个新建数据包,使所述初始交换机中剩余的新建数据包不超过其上报能力或者所述初始交换机中剩余的新建数据包在其上报能力范围内,其中,所述新建数据包为在所述初始交换机中未匹配到流表项的数据包,所述流表项用于指示所述初始交换机对所述新建数据包的处理方法;
根据与所述初始交换机直接相连的其他交换机的信息,为所述要分出上报的至少一个新建数据包选择用于分流上报的分流交换机,在所述初始交换机上建立所述要分出上报的至少一个新建数据包对应的临时流表项,所述临时流表项的输出端口设置为到所述分流交换机的端口;
根据所述临时流表项,向所述分流交换机发送所述要分出上报的至少一个新建数据包,以便所述分流交换机将所述要分出上报的至少一个新建数据包上报给所述控制器。
19.一种控制器,其特征在于,包括:输入设备、输出设备、处理器和存储器;
所述输入设备用于接收分流交换机上报的新建数据包,其中,所述新建数据包为在初始交换机中未匹配到流表项,且由所述初始交换机在未上报至所述控制器的新建数据包超过其上报能力阈值上限时,超过其上报能力范围的转发给与所述初始交换机直连的分流交换机进行上报的数据包,所述流表项用于指示所述初始交换机对所述新建数据包的处理方法;
所述处理器用于根据所述新建数据包,确定所述初始交换机,根据所述初始交换机和所述新建数据包中的规则确定信息,确定所述新建数据包的流表项。
20.根据权利要求19所述的控制器,其特征在于,所述规则确定信息包括媒体接入控制Mac地址、IP地址、端口号中的一种或几种。
21.一种信息交互***,其特征在于,包括:控制器、至少一个交换机和至少一个主机,
所述控制器向所述至少一个交换机发送与所述至少一个交换机直接相连的交换机的信息;
将所述至少一个交换机中接收到大量新建数据包的交换机作为初始交换机;
初始交换机在未上报至所述控制器的新建数据包超过上报能力阈值上限时,确定出要分出上报的至少一个新建数据包,使所述初始交换机中剩余的新建数据包不超过其上报能力或者所述初始交换机中剩余的新建数据包在其上报能力范围内,其中,所述新建数据包为在所述初始交换机中未匹配到流表项的数据包,所述流表项用于指示所述初始交换机对所述新建数据包的处理方法;
所述初始交换机根据与所述初始交换机直接相连的其他交换机的信息,为所述要分出上报的至少一个新建数据包选择用于分流上报的分流交换机;
所述初始交换机在所述初始交换机上建立所述要分出上报的至少一个新建数据包对应的临时流表项,所述临时流表项的输出端口设置为到所述分流交换机的端口;
所述初始交换机根据所述临时流表项,向所述分流交换机发送所述要分出上报的至少一个新建数据包;
所述控制器接收分流交换机上报的新建数据包,其中,所述新建数据包为在初始交换机中未匹配到流表项,且由所述初始交换机在未上报至所述控制器的新建数据包超过其上报能力阈值上限时,超过其上报能力范围的转发给与所述初始交换机直连的分流交换机进行上报的数据包,所述流表项用于指示所述初始交换机对所述新建数据包的处理方法;
所述控制器根据所述新建数据包,确定所述初始交换机,根据所述初始交换机和所述新建数据包中的规则确定信息,确定所述新建数据包的流表项。
22.根据权利要求21所述的***,其特征在于,所述规则确定信息包括媒体接入控制Mac地址、IP地址、端口号中的一种或几种。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2014/072560 WO2015127600A1 (zh) | 2014-02-26 | 2014-02-26 | 一种分流上报的方法、交换机、控制器及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105122740A CN105122740A (zh) | 2015-12-02 |
CN105122740B true CN105122740B (zh) | 2018-07-20 |
Family
ID=54008122
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480000182.0A Active CN105122740B (zh) | 2014-02-26 | 2014-02-26 | 一种分流上报的方法、交换机、控制器及*** |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN105122740B (zh) |
WO (1) | WO2015127600A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108111436B (zh) * | 2017-11-30 | 2023-04-18 | 浙江宇视科技有限公司 | 一种网络设备缓存调度方法及*** |
CN112039773A (zh) * | 2020-09-23 | 2020-12-04 | 迈普通信技术股份有限公司 | 分流方法、装置、***、网络设备及计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101106528A (zh) * | 2007-07-31 | 2008-01-16 | 杭州华三通信技术有限公司 | 基于安全设备的报文转发***和方法以及安全设备 |
CN102685006A (zh) * | 2012-05-03 | 2012-09-19 | 中兴通讯股份有限公司 | 一种转发数据报文的方法及装置 |
CN103379039A (zh) * | 2012-04-23 | 2013-10-30 | 华为技术有限公司 | 一种用于流统计的方法、装置及*** |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002252640A (ja) * | 2001-02-23 | 2002-09-06 | Fujitsu Ltd | ネットワーク中継装置及び方法並びにシステム |
US6704372B2 (en) * | 2001-09-18 | 2004-03-09 | Broadlogic Network Technologies Inc. | Digital implementation of multi-channel demodulators |
US20070104096A1 (en) * | 2005-05-25 | 2007-05-10 | Lga Partnership | Next generation network for providing diverse data types |
US9219686B2 (en) * | 2006-03-31 | 2015-12-22 | Alcatel Lucent | Network load balancing and overload control |
CN101106518B (zh) * | 2006-07-10 | 2011-10-26 | 中兴通讯股份有限公司 | 为中央处理器提供负载保护的拒绝服务方法 |
US9215175B2 (en) * | 2010-09-09 | 2015-12-15 | Nec Corporation | Computer system including controller and plurality of switches and communication method in computer system |
JP6007976B2 (ja) * | 2011-12-27 | 2016-10-19 | 日本電気株式会社 | 通信システム、コントローラ、通信方法およびプログラム |
CN103179046B (zh) * | 2013-04-15 | 2016-03-30 | 昆山天元昌电子有限公司 | 基于openflow的数据中心流量控制方法及*** |
CN103414637B (zh) * | 2013-07-29 | 2016-03-30 | 北京华为数字技术有限公司 | 一种流量转发的方法及相关装置 |
-
2014
- 2014-02-26 CN CN201480000182.0A patent/CN105122740B/zh active Active
- 2014-02-26 WO PCT/CN2014/072560 patent/WO2015127600A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101106528A (zh) * | 2007-07-31 | 2008-01-16 | 杭州华三通信技术有限公司 | 基于安全设备的报文转发***和方法以及安全设备 |
CN103379039A (zh) * | 2012-04-23 | 2013-10-30 | 华为技术有限公司 | 一种用于流统计的方法、装置及*** |
CN102685006A (zh) * | 2012-05-03 | 2012-09-19 | 中兴通讯股份有限公司 | 一种转发数据报文的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105122740A (zh) | 2015-12-02 |
WO2015127600A1 (zh) | 2015-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9942142B2 (en) | Using segmentation identification to identify destination node within network environment | |
CN105791463B (zh) | 一种实现虚拟机通信的方法和装置 | |
CN107204867A (zh) | 一种信息传输方法、装置和*** | |
US11005781B2 (en) | Networking method for data center network and data center network | |
CN105340217B (zh) | 一种报文处理方法、装置及*** | |
CN104219145B (zh) | 网络***及路由方法 | |
CN108475244A (zh) | 加速网络分组处理 | |
CN105122747B (zh) | Sdn网络中的控制设备和控制方法 | |
CN105812340B (zh) | 一种虚拟网络访问外网的方法和装置 | |
CN104704772B (zh) | 通信***、虚拟网络管理装置、虚拟网络管理方法 | |
JP6323547B2 (ja) | 通信システム、制御装置、通信制御方法、および、プログラム | |
CN105516025B (zh) | 端到端的路径控制和数据传输方法、OpenFlow控制器和交换机 | |
CN107113241A (zh) | 路由确定方法、网络配置方法以及相关装置 | |
CN105247831A (zh) | 流表修改方法、流表修改装置和开放流网络*** | |
CN105359472B (zh) | 一种用于OpenFlow网络的数据处理方法和装置 | |
CN105991435A (zh) | 用于获取端口路径的方法及装置 | |
CN110224935A (zh) | 一种处理组播数据报文的方法及装置 | |
CN109218200A (zh) | 一种报文处理方法及装置 | |
CN104521188B (zh) | 一种建立光旁路的方法、装置和*** | |
CN105122740B (zh) | 一种分流上报的方法、交换机、控制器及*** | |
CN105247823B (zh) | 调整链路开销的方法和装置 | |
CN110061885A (zh) | 网关设备卸载方法、装置、网关设备及介质 | |
CN102387027B (zh) | 一种网络配置方法、环形网络***和一种节点 | |
US10177935B2 (en) | Data transfer system, data transfer server, data transfer method, and program recording medium | |
CN107070791A (zh) | 一种sdn网络***及其数据传输方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |