CN107342906A - 一种大象流的检测方法、设备及系统 - Google Patents
一种大象流的检测方法、设备及系统 Download PDFInfo
- Publication number
- CN107342906A CN107342906A CN201610283651.5A CN201610283651A CN107342906A CN 107342906 A CN107342906 A CN 107342906A CN 201610283651 A CN201610283651 A CN 201610283651A CN 107342906 A CN107342906 A CN 107342906A
- Authority
- CN
- China
- Prior art keywords
- data flow
- sequence number
- data
- data message
- flow
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/16—Threshold monitoring
Abstract
本发明实施例提供一种大象流的检测方法、设备及系统,涉及通信技术领域,能够解决现有技术中,需要通过升级交换机的转发芯片并保存流表来检测大象流,从而导致的设备成本高的问题。具体方案为:控制器接收至少一台交换机发送的数据流的SYN报文,并记录数据流的参数信息,参数信息包括SYN报文的接收时间,SYN报文中携带的序列号、源IP地址、目的IP地址、源端口和目的端口,以及数据流的传输路径,若在预设时间阈值内未接收到数据流的FIN报文,则向数据流传输路径上的任一交换机下发流策略,接收一个数据报文,记录数据报文的接收时间携带的序列号,并计算第一平均码率,根据第一平均码率确定数据流为大象流。本发明实施例用于检测大象流。
Description
技术领域
本发明实施例涉及通信技术领域,尤其涉及一种大象流的检测方法、设备及系统。
背景技术
在数据中心网络中,由于存在多条链路,流量很大的多条大象流可能映射到同一条链路,从而导致汇聚流量超过端口容量,引起拥塞;多个Leaf交换机上去往相同Leaf交换机的多条大象流,也可能发到同一个Spine交换机,从而导致下行流量汇聚拥塞。这样,由于大象流占尽了某条链路的带宽,从而导致流量很小的老鼠流无法转发,并且大象流本身也可能由于链路带宽不足而导致丢包。因而,大象流的检测和处理显得尤为重要。
在检测大象流时,现有技术通过使用OpenFlow交换机,为每条数据流保存一条流表,并逐个统计数据流的字节数、持续时间,从而计算出码率,当码率大于预设阈值时则判定该数据流为大象流。
然而,数据中心的交换机数量庞大,且现有数据中心主流交换机并不能支持OpenFlow,例如基于Broadcom转发芯片的CE5800、CE6800或者基于ENP芯片的CE12800等均为按包转发,没有流表的概念,因而也无法进行逐流统计,从而无法检测出大象流。若需要支持OpenFlow,则需要升级数据中心交换机的转发芯片,而且保存流表需要占用交换机的大量内存,这样不仅使得数据中心的系统兼容性差,而且大大提高了设备成本。
发明内容
本发明实施例提供一种大象流的检测方法、设备及系统,能够解决现有技术中,需要通过升级交换机的转发芯片并保存流表来检测大象流,从而导致的设备成本高的问题。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供一种大象流的检测方法,可以包括:交换机接收终端发送的数据流的SYN报文,并将SYN报文镜像给控制器;控制器接收至少一台交换机发送的数据流的SYN报文,根据SYN报文,记录数据流的参数信息,参数信息包括SYN报文的接收时间,SYN报文中携带的序列号、源IP地址、目的IP地址、源端口和目的端口,以及数据流的传输路径,若在预设时间阈值内未接收到数据流的FIN报文,则向数据流传输路径上的任一交换机下发流策略,流策略中携带有源IP地址、目的IP地址、源端口和目的端口,流策略用于指示交换机根据源IP地址、目的IP地址、源端口和目的端口匹配数据流,并将数据流中当前传输的一个数据报文镜像给控制器;交换机在接收到控制器下发的流策略时,根据流策略中携带的源IP地址、目的IP地址、源端口和目的端口匹配数据流,将数据流中当前传输的一个数据报文发送给控制器,并删除该流策略;控制器接收任一交换机发送的数据流中当前传输的一个数据报文,记录数据报文的接收时间,以及数据报文中携带的序列号,并根据SYN报文的接收时间、数据报文的接收时间、SYN报文中携带的序列号以及数据报文中携带的序列号,计算第一平均码率,若第一平均码率大于或者等于预设码率,则确定数据流为大象流。
第二方面,提供一种控制器,可以包括:接收单元,用于接收至少一台交换机发送的数据流的连接建立SYN报文;记录单元,用于根据SYN报文,记录数据流的参数信息,参数信息包括SYN报文的接收时间,SYN报文中携带的序列号、源IP地址、目的IP地址、源端口和目的端口,以及数据流的传输路径;发送单元,用于若在预设时间阈值内未接收到数据流的连接关闭FIN报文,则向数据流传输路径上的任一交换机下发流策略,流策略中携带有源IP地址、目的IP地址、源端口和目的端口,流策略用于指示交换机根据源IP地址、目的IP地址、源端口和目的端口匹配数据流,并将数据流中当前传输的一个数据报文镜像给控制器;接收单元还用于,接收任一交换机发送的数据流中当前传输的一个数据报文,记录数据报文的接收时间,以及数据报文中携带的序列号;计算单元,用于根据SYN报文的接收时间、数据报文的接收时间、SYN报文中携带的序列号以及数据报文中携带的序列号,计算第一平均码率;确定单元,用于若第一平均码率大于或者等于预设码率,则确定数据流为大象流。
第三方面,提供一种交换机,可以包括:接收单元,用于接收终端发送的数据流的连接建立SYN报文;发送单元,用于将SYN报文镜像给控制器,以触发控制器记录数据流的参数信息,参数信息包括SYN报文的接收时间,SYN报文中携带的序列号、源IP地址、目的IP地址、源端口和目的端口,以及数据流的传输路径;匹配单元,用于在接收到控制器下发的流策略时,根据流策略中携带的源IP地址、目的IP地址、源端口和目的端口匹配数据流;发送单元还用于,将数据流中当前传输的一个数据报文发送给控制器,以触发控制器记录数据报文的接收时间,以及数据报文中携带的序列号,使得控制器根据SYN报文的接收时间、数据报文的接收时间、SYN报文中携带的序列号以及数据报文中携带的序列号,计算平均码率,从而确定数据流是否为大象流;删除单元,用于删除流策略。
这样,通过控制器记录数据流的四元组以及传输路径等,相当于通过占用控制器的内存保存数据流的流表,而不用像现有技术那样需要占用数量庞大的交换机的内存来保存数据流的流表,且控制器内存的成本比交换机内存的成本要低得多。而且,由于ACL和镜像是目前商用主流交换机普遍支持的功能,因而本发明实施例提供的检测方法不需要对交换机做任何修改,只需要修改控制器即可,从而不需要像现有技术对数量庞大的交换机进行转发芯片升级,从而降低了设备成本,同时也避免了由于升级导致的兼容性差的问题。
并且,在本发明实施例提供的大象流的检测方法中,当控制器在预设时间阈值内未接收到该数据流的FIN报文,即数据流持续了预设时间阈值仍未终止时,若第一平均码率大于预设码率,即该数据流在预设时间阈值内的平均流量加大,则该数据流为大象流。也就是说,本发明实施例同时从数据流的持续时间长和平均流量大两个方面考虑,来检测大象流,其准确度较高。
结合第一方面,在第一方面的第一种可能的实现方式中,根据SYN报文记录数据流的传输路径包括:记录发送数据流对应的同一SYN报文的所有交换机;根据发送数据流对应的同一SYN报文的所有交换机,确定数据流的传输路径。
结合第二方面,在第二方面的第一种可能的实现方式中,记录单元用于根据SYN报文记录数据流的传输路径具体包括:记录发送数据流对应的同一SYN报文的所有交换机;根据发送数据流对应的同一SYN报文的所有交换机,确定数据流的传输路径。
这样,在本发明实施例中,通过镜像SYN报文,获得同一个SYN经过的所有交换机,从而可以直接得到数据流的传输路径,而不用像现有技术那样,在交换机识别大象流之后,控制器还需要利用流量路径可视化技术检测大象流的当前传输路径,从而简化了大象流的处理流程,降低了处理复杂度。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,在确定数据流为大象流之后,该方法还包括:确定大象流所在的传输路径的利用率是否大于预设利用率阈值;
若是,则对大象流进行处理操作,处理操作包括将大象流进行重定向、调整数据流所在队列的优先级或限制数据流所在队列的传输速率。
结合第二方面或第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,确定单元在确定数据流为大象流之后,还用于确定大象流所在的传输路径的利用率是否大于预设利用率阈值;控制器还包括处理单元,用于在确定单元确定大象流所在的传输路径的利用率大于预设利用率阈值时,对大象流进行处理操作,处理操作包括将大象流进行重定向、调整数据流所在队列的优先级或限制数据流所在队列的传输速率。
这样,若大象流所在的传输路径的利用率大于预设利用阈值,则该传输路径很可能会发生拥塞,因而控制器可以对该传输路径上的大象流进行相应的处理操作,以缓解链路拥塞,避免拥塞丢包,避免由于大象流占尽了某条链路的带宽,从而导致流量很小的老鼠流无法转发,并且大象流本身也可能由于链路带宽不足而导致丢包的问题。
结合第一方面或第一方面的任一种可能的实现方式,在第一方面的第三种可能的实现方式中,交换机接收终端发送的数据流的连接关闭FIN报文,并将FIN报文镜像给控制器;控制器接收传输路径上的任一交换机发送的数据流的FIN报文,若在预设时间阈值内接收到数据流的FIN报文,则确定数据流不是大象流,并删除数据流的参数信息。
结合第二方面或第二方面的任一种可能的实现方式,在第二方面的第三种可能的实现方式中,接收单元还用于,接收传输路径上的任一交换机发送的数据流的FIN报文;确定单元还用于,若在预设时间阈值内接收到数据流的FIN报文,则确定数据流不是大象流,并删除数据流的参数信息。
结合第三方面,在第三方面的第一种可能的实现方式中,接收单元还用于,接收终端发送的数据流的连接关闭FIN报文;发送单元还用于,将FIN报文镜像给控制器。
这样,对于持续时间并不是很长的数据流,由于其不符合大象流持续时间长且流量大的特点,因而控制器可以确定其不是大象流。
第四方面,提供一种系统,该系统可以包括上述第二方面及其任一种可能的实现方式中的控制器,和上述第三方面及其任一种可能的实现方式中的交换机,以及终端。该系统中的控制器、交换机以及终端可以执行上述第一方面及其任一种可能的实现方式所描述的方法步骤。
为了便于理解,示例的给出了部分与本发明相关概念的说明以供参考。如下所示:
大象流:持续时间长且流量大的数据流。
老鼠流:小流量数据流。
Clos:多级交换网络架构,能够实现可重排无阻塞,且可无限扩展。
数据流:通常是指五元组(包括源IP、目的IP、协议号、源端口号和目的端口)相同的报文流,本发明实施例中的数据流特指TCP流,即本发明实施例中数据流的协议号为TCP的协议号。
SYN报文:为传输数据,TCP建立连接3次握手的第一个报文(SYN)和第二个报文(SYN+ACK),在本发明实施例中可以称为连接建立报文。
FIN报文:数据传完时,TCP断开连接的报文,在本发明实施例中可以称为连接关闭报文。
访问控制列表(英文全称:Access Control List,简称:ACL)是由一系列规则组成的集合,ACL通过这些规则对报文进行分类,从而使设备可以对不同类别的报文进行不同的处理。
通用路由封装协议(英文全称:Generic Routing Encapsulation,简称:GRE)可以对某些网络层协议的数据报文进行封装,使这些被封装的数据报文能够在另一个网络层协议(如互联网协议的第四版(英文全称:Internet Protocol Version 4,简称:IPv4)中传输。GRE提供了将一种协议的报文封装在另一种协议报文中的机制,是一种三层隧道封装技术,使报文可以通过GRE隧道透明的传输,解决异种网络的传输问题。
三层远程端口镜像(英文全称:Encapsulated Remote SPAN,简称:ERSPAN):设备将流经镜像端口的报文封装GRE报文头,将报文通过三层网络协议(英文全称:Internet Protocol,简称:IP)网络传送到监控设备。
回环口地址:环回口创建后一直保持打开状态(即UP状态),并具有环回特性,用户可通过配置环回口达到不同的目的。比如,环回口配置掩码全1的IP地址,该地址可以作为交换机自身构造报文的源IP,通过给所有交换机的环回口统一编址,就可以达到通过源IP就可以识别交换机的目的。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a为现有技术中提供的一种交换网络架构示意图;
图1b为现有技术中提供的一种交换网络架构中各设备的结构示意图;
图2为现有技术提供的另一种交换网络架构示意图;
图3为本发明实施例提供的一种大象流的检测方法流程图;
图4为本发明实施例提供的另一种大象流的检测方法流程图;
图5为本发明实施例提供的另一种大象流的检测方法流程图;
图6为本发明实施例提供的另一种大象流的检测方法流程图;
图7为本发明实施例提供的一种控制器的结构示意图;
图8为本发明实施例提供的另一种控制器的结构示意图;
图9为本发明实施例提供的一种交换机的结构示意图;
图10为本发明实施例提供的另一种交换机的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例具体可以应用于多链路场景中,例如数据中心或广域网等。其中,多链路场景中的交换网络架构可以有多种。示例性的,图1a提供了一种Leaf-Spine型交换网络架构(2级Clos,其中,L代表Leaf交换机,S代表Spine交换机,Leaf交换机和Spine交换机可以均为二层交换机,C代表控制器,UE代表终端。UE是数据流产生的主体,其连接在Leaf交换机,Leaf交换机连接UE的同时,又有部分端口与Spine交换机相连,跨Leaf的流量需要通过Spine交换机进行转发,从而达到扩大网络规模的目的,控制器则与每台交换机的管理口相连,如控制器的网卡和每台交换机的管理口同时连到一个三层交换机上,通过三层IP网络互通。
具体的,参见图1b,终端可以包括中央处理器(英文全称:CentralProcessing Unit,简称:CPU)和网卡等部件,CPU用于解释计算机指令以及处理计算机软件中的数据,网卡挂接在二层交换机的端口上,从而与二层交换机相连,并进行数据交互。二层交换机内部的CPU会在每个端口成功连接时,通过将媒体访问控制(Media Access Control,简称MAC)地址和端口对应,形成一张MAC表。二层交换机内部的控制电路在接收到终端发送的数据时,查找内存中的MAC表,以确定目的MAC的对应的网卡所挂接的端口,从而通过内部交换矩阵迅速将数据包传送到目的端口,而不是所有的端口。二层交换机的管理口与三层交换机的端口相连,控制器的网卡也挂接在三层交换机的端口上,二层交换机与控制器通过三层交换机中的路由模块进行IP通信。通过三层交换机,控制器中的管理模块可以实现对二层交换机的管理和配置。
图2提供了一种Fat-Tree型交换网络架构,与Leaf-Spine型交换网络架构相比,Fat-Tree是3级Clos,比Leaf-Spine多了一层AGG,AGG代表汇聚交换机,AGG交换机一部分端口连接Leaf交换机,一部分端口连接Spine交换机,同一个POD(多个Leaf和AGG构成的2级Clos为一个POD)内跨Leaf的流量需要AGG参与转发,而跨POD的流量AGG需要转发到Spine,通过Spine来转发跨POD的流量,通过这样的更深一层的互联,可以更大地扩大网络规模。
针对现有技术中通过升级数量很大的交换机的转发芯片以检测大象流而导致的成本高的问题,本发明以下实施例提供一种大象流的检测方法,主要通过控制器进行大象流的检测,而交换机侧无需进行修改,从而降低了设备成本。
本发明以下实施例将以图1a所示的交换网络架构为例进行说明。
参见图3,本发明实施例提供一种大象流的检测方法,该方法可以包括:
101、交换机接收终端发送的数据流的连接建立SYN报文。
本发明实施例中涉及的交换机包括与控制器相连的所有交换机,以下仅以其中任意一台交换机为例进行说明。
在网络中传输数据流时,终端之间通过三次握手建立TCP会话连接,且终端之间首先交互的是SYN报文。一个TCP连接是双向的,两台终端建立TCP连接的时候,建立的发起终端发SYN报文,响应终端则会回一个SYN+ACK,然后两端就可以互发数据,因而本发明实施例中的SYN报文实际上包括发起终端发送的SYN报文以及响应终端发送的SYN+ACK报文,为了描述方便,这里统称为SYN报文。实际上,这两种SYN报文对应两条不同的数据流,发起端发送的SYN报文对应的是发起终端到响应终端方向的数据流,而SYN+ACK对应的则是反方向的数据流。
无论是发起终端还是响应终端,其发送的SYN报文通过传输路径上的交换机到达对端,因而传输路径上的每台交换机均会接收到相应的SYN报文。
在本发明实施例中,将以网络中传输的多条数据流中的一条为例进行说明。具体的,这里将以图1a所示架构中,UE#1向UE#2发送的该条数据流为例进行说明。在传输该条数据流时,数据流的始发终端发送的SYN报文通过传输路径上的交换机到达终到终端,传输路径上的每台交换机均会接收到同一SYN报文,该SYN报文即为该数据流对应的SYN报文。
SYN报文中携带有序列号,序列号是一个32bit的数值,可以表示4G字节,SYN报文中的序列号是数据流初始的序列号。该数据流后续报文中也会携带序列号,该序列号与初始的序列号之间的差值可以表示数据流已传输的字节数。此外,SYN报文中还携带有始发终端的源IP地址和源端口,以及终到终端的目的IP地址和目的端口。其中,SYN报文中携带的序列号、源IP地址、目的IP地址、源端口和目的端口可以称为该数据流的四元组。并且,该数据流的传输协议号为TCP的协议号。
102、交换机将SYN报文镜像给控制器。
当交换机接收到终端发送的数据流中的SYN报文时,可以将该SYN报文进行GRE封装,从而加上交换机的回环口地址,并通过ERSPAN方式镜像一份给控制器,以触发控制器记录数据流的参数信息,参数信息包括SYN报文的接收时间,SYN报文中携带的序列号、源IP地址、目的IP地址、源端口和目的端口,以及数据流的传输路径。
103、控制器接收至少一台交换机发送的数据流的SYN报文。
在本步骤中,控制器接收至少一台交换机发送的数据流的SYN报文。事实上,当数据流在传输路径上传输时,控制器会接收到该传输路径上经过的所有交换机发送的该数据流的对应的同一SYN报文。
104、控制器根据SYN报文,记录数据流的参数信息,参数信息包括SYN报文的接收时间,SYN报文中携带的序列号、源IP地址、目的IP地址、源端口和目的端口,以及数据流的传输路径。
需要说明的是,在本发明实施例中,控制器可能接收到该数据流传输路径上所有交换机发送的该数据流的SYN报文。事实上,控制器一旦接收到该数据流的SYN报文即可以执行步骤104,也就是说,控制器在接收到第一个该数据流的SYN报文后,即可以执行步骤104。
在接收到交换机发送的数据流的SYN报文后,控制器可以记录SYN报文的接收时间,SYN报文中携带的序列号、源IP地址、目的IP地址、源端口和目的端口,以及数据流的传输路径等有关该数据流的参数信息。
可选地,控制器根据SYN报文记录数据流的传输路径可以包括:
控制器记录发送数据流对应的同一SYN报文的所有交换机;
控制器根据发送数据流对应的同一SYN报文的所有交换机,确定数据流的传输路径。
其中,同一条数据流对应的同一SYN报文中携带的终端的源IP地址、源端口、目的IP地址以及目的端口完全一致,控制器可以根据携带的源IP地址、源端口、目的IP地址以及目的端口是否完全一致,来确定SYN报文是否为同一SYN报文,同一SYN报文对应同一条数据流。从而可以确定发送该同一SYN报文的所有交换机,这些交换机即形成了该SYN报文对应的该条数据流的传输路径。
具体的,控制器从某个交换机接收到的SYN报文是该交换机进行GRE封装后,附加有交换机环回口地址的SYN报文,因而在接收到该报文后,控制器可以记录能够唯一标识该交换机的回环口地址。从而,对于某一条数据流而言,控制器可以记录发送该数据流对应的同一SYN报文的所有交换机。
105、若控制器在预设时间阈值内未接收到数据流的连接关闭FIN报文,则控制器向数据流传输路径上的任一交换机下发流策略,流策略中携带有源IP地址、目的IP地址、源端口和目的端口,流策略用于指示交换机根据源IP地址、目的IP地址、源端口和目的端口匹配数据流,并将数据流中当前传输的一个数据报文镜像给控制器。
与建立TCP连接类似,TCP连接的关闭也是相互连接的两台终端分别进行处理的,一端数据发完时发送FIN包关闭连接,此时该方向的数据流停止传输,该状态可以称为半连接;如果另一端也发完数据,则也会发送FIN,反方向的数据流停止传输,此时这个TCP连接才算完全关闭。也就是说,FIN报文与数据流是一一对应的,在TCP连接完全关闭前,相互通信的两个终端会各自发送一个FIN报文,该FIN报文与自身向对端发送的数据流相对应。
数据流的FIN报文标志着数据流对应的TCP会话的结束,如果控制器在预设时间阈值内没有接收到该数据流对应的FIN报文,说明该数据流持续时间较长,可能为大象流。此时,控制器可以根据记录的数据流的传输路径,向传输路径上的任一交换机下发流策略。
其中,流策略中携带有控制器根据SYN报文记录的源IP地址、目的IP地址、源端口和目的端口,该源IP地址、目的IP地址、源端口和目的端口即为数据流的源IP地址、目的IP地址、源端口和目的端口,以指示交换机根据源IP地址、目的IP地址、源端口和目的端口匹配该数据流,并将该数据流中当前传输的一个数据报文镜像给控制器。
106、交换机在接收到控制器下发的流策略时,根据流策略中携带的源IP地址、目的IP地址、源端口和目的端口匹配数据流,并将数据流中当前传输的一个数据报文发送给控制器。
由于流策略中携带有该数据流的源IP地址、目的IP地址、源端口和目的端口,因而交换机在接收到控制器下发的流策略时,可以根据该源IP地址、目的IP地址、源端口和目的端口,通过访问控制列表ACL精确匹配其源IP地址、目的IP地址、源端口以及目的端口与该数据流的四元组相一致的数据报文,该数据报文即为该数据流的数据报文。该数据流中当前正在传输的一个数据报文中携带的源IP地址、目的IP地址、源端口以及目的端口,与该数据流的SYN报文中的源IP地址、目的IP地址、源端口以及目的端口相同。并且,该数据流中当前正在传输的一个数据报文中还携带有序列号,该序列号与SYN报文中携带的序列号的差值,即为该数据流到目前为止传输的数据的字节数。
交换机通过向控制器镜像一个当前传输的数据报文,触发控制器记录数据报文的接收时间,以及数据报文中携带的序列号,使得控制器根据SYN报文的接收时间、数据报文的接收时间、SYN报文中携带的序列号以及数据报文中携带的序列号,计算第一平均码率,进而根据第一码率确定数据流是否为大象流。
107、交换机删除流策略。
事实上,控制器只需要接收到交换机发送的一个数据报文即可记录数据报文的接收时间,以及数据报文中携带的序列号,从而结合SYN报文中携带的序列号以及数据报文中携带的序列号,计算第一平均码率。因此,交换机在步骤106中向控制器发送一个数据报文后,可以立即删除上述流策略,以避免交换机由于向控制器持续发送多余的数据报文而造成的资源浪费。
108、控制器接收任一交换机发送的数据流中当前传输的一个数据报文,记录数据报文的接收时间,以及数据报文中携带的序列号。
本步骤中的交换机为控制器下发流策略的交换机,控制器在接收到该交换机发送的该数据流中当前传输的一个数据报文后,即对该数据报文的接收时间,以及数据报文中携带的序列号进行记录。
需要说明的是,在上述步骤105-108中,控制器也可以向该数据流传输路径上的多个交换机下发上述流策略,以指示这些交换机向控制器发送数据流中当前传输的一个数据报文。由于控制器仅需要接收到一个数据报文即可,因而,虽然向该数据流传输路径上的多个交换机下发上述流策略也可行,但是控制器在接收到第一个数据报文时即可进行后续操作,其它交换机发送的数据报文其实没有起到作用,因而也浪费了其它交换机的资源开销。
示例性的,上述过程中,图1a所示架构中,UE#1到UE#4方向的数据流的相关信息可以参见如下表1:
表1
其中,上述表1中的192.168.2.101为UE#1的IP地址,上述表1中的192.168.3.30为UE#4的IP地址,上述表1中的5678为UE#1的数据流发送端口,上述表1中的21为UE#4的数据流接收端口,交换机L#1、S#1和L#4均接收到UE#1向UE#4发送的SYN报文,并镜像给控制器,该数据流的传输路径为L#1-S#1-L#4,控制器首先接收到L#1发送的SYN报文,且接收时间为2015-09-16-11:16:00.654,UE#1向UE#4发送的SYN报文中携带的序列号为0x5a6dacfe,控制器向其中一个交换机L#1下发流策略,并从交换机L#1接收该数据流中当前传输的一个数据报文,控制器接收该数据报文的时间为2015-09-16-11:20:00.354,该数据报文中携带的序列号为0x01a4f5ae。
109、控制器根据SYN报文的接收时间、数据报文的接收时间、SYN报文中携带的序列号以及数据报文中携带的序列号,计算第一平均码率。
在记录数据报文的接收时间和数据报文中携带的序列号之后,控制器可以结合SYN报文的接收时间以及SYN报文中携带的序列号计算第一平均码率。
具体的,控制器根据SYN报文的接收时间、数据报文的接收时间、SYN报文中携带的序列号以及数据报文中携带的序列号,计算第一平均码率可以包括:
(1)、若数据报文中携带的序列号大于SYN报文中携带的序列号,则控制器计算数据报文中携带的序列号与SYN报文中携带的序列号的第一差值,以及数据报文的接收时间与SYN报文的接收时间的第二差值,并将第一差值除以第二差值,所得商值即为第一平均码率。
当数据报文中携带的序列号大于SYN报文中携带的序列号时,数据报文中携带的序列号与SYN报文中携带的序列号的第一差值即为该数据流截止目前传输的数据量的字节数,数据报文的接收时间与SYN报文的接收时间的第二差值即为该数据流的传输时间,第一差值与第二差值的商值即为该数据流传输的第一平均码率。
(2)、若数据报文中携带的序列号小于或者等于SYN报文中携带的序列号,则控制器将第一差值与0xFFFFFFFF的和,除以第二差值,所得商值即为第一平均码率。
数据流TCP报文中的序列号存在回绕问题,当数据报文中携带的序列号小于或者等于SYN报文中携带的序列号时,数据报文中携带的序列号与SYN报文中携带的序列号的第一差值,再加上0xFFFFFFFF,得到的和才为该数据流截止目前传输的数据量的字节数,再除以数据报文的接收时间与SYN报文的接收时间的第二差值,得到的商值即为该数据流传输的第一平均码率。其中,0xFFFFFFFF中的“0x”表示该数值为16进制。
以表1所示情况为例,数据报文中携带的序列号0x01a4f5ae,小于SYN报文中携带的序列号0x5a6dacfe,则需要按照上述第(2)种情况进行处理。
110、若第一平均码率大于或者等于预设码率,则控制器确定数据流为大象流。
其中,预设码率的数值较大,具体可以根据实际需要进行设置,这里不做具体限定。在计算获得第一平均码率后,若控制器判断第一平均码率大于或者等于预设码率,则说明该数据流在预设时间阈值内的平均流量大,可以确定该数据流为大象流。
需要说明的是,在上述大象流的检测过程中,当控制器在预设时间阈值内未接收到该数据流的FIN报文,即数据流持续了预设时间阈值仍未终止时,若第一平均码率大于预设码率,即该数据流在预设时间阈值内的平均流量加大,则该数据流为大象流。也就是说,本发明实施例同时从数据流的持续时间长和平均流量大两个方面考虑,来检测大象流,其准确度较高。
在本发明上述实施例提供的检测方法中,通过控制器记录数据流的四元组以及传输路径等信息,相当于通过占用控制器的内存保存数据流的流表,而不用像现有技术那样需要占用数量庞大的交换机的内存来保存数据流的流表,且控制器内存的成本比交换机内存的成本要低得多。而且,由于ACL和镜像是目前商用主流交换机普遍支持的功能,因而本发明实施例提供的检测方法不需要对交换机做任何修改,只需要修改控制器即可,从而不需要像现有技术对数量庞大的交换机进行转发芯片升级,从而降低了设备成本,同时也避免了由于升级导致的兼容性差的问题。
此外,参见图4,在上述步骤104之后,本发明实施例提供的方法还可以包括:
111、交换机接收终端发送的数据流的FIN报文。
112、交换机将FIN报文镜像给控制器。
113、控制器接收传输路径上的任一交换机发送的数据流的FIN报文。
114、若控制器在预设时间阈值内接收到数据流的FIN报文,则控制器确定数据流不是大象流,并删除数据流的参数信息。
具体的,当终端发送该数据流的FIN报文时,该数据流传输路径上的交换机可以接收到该FIN报文,并镜像给控制器;控制器接收到某一台交换机发送的FIN报文后,可以根据ACL确定该FIN报文为该数据流的FIN报文;若控制器在预设时间阈值内接收到数据流的FIN报文,则说明该数据流的持续时间并不是很长,不符合大象流持续时间长且流量大的特点,因而控制器可以确定该数据流不是大象流,并删除数据流的参数信息。
参见图5,在上述步骤101-109之后,该方法还可以包括:
115、当第一平均码率小于预设码率时,若控制器在数据报文的接收时间之后,在预设时间阈值内仍未接收到数据流的FIN报文,则控制器再次向数据流传输路径上的任一交换机下发流策略。
116、交换机在接收到控制器下发的流策略时,将数据流中当前传输的一个数据报文镜像给控制器并删除流策略。
117、控制器接收任一交换机发送的数据流中当前传输的一个数据报文,记录当前数据报文的接收时间,以及当前数据报文中携带的序列号。
118、控制器根据上一次接收数据报文的接收时间,当前数据报文的接收时间,上一次接收的数据报文中携带的序列号,以及当前数据报文中携带的序列号,计算第二平均码率。
119、若第二平均码率大于或者等于预设码率,则确定数据流为大象流。
120、若第二平均码率小于预设码率,则继续执行步骤115至120,直至第n平均码率大于或者等于预设码率,则控制器确定数据流为大象流;或者直至接收到数据流的FIN报文,则控制器确定数据流不是大象流,其中,n为大于1的正整数。
当第一个预设时间阈值内的第一平均码率小于预设码率时,该数据流的持续你时间较长,当平均流量不是很大,控制器不能确定该数据流为大象流。若在第二个预设时间阈值内仍未接收到该数据流的FIN报文,则控制器可以在第二个预设时间内计算第二平均码率,并判断第二平均码率是否大于预设码率,如此循环执行,直至第n(大于1的正整数)平均码率大于或者等于预设码率,则控制器确定数据流为大象流;或者直至接收到数据流的FIN报文,则控制器确定数据流不是大象流。
具体的,控制器计算第n平均码率可以包括:
若第n次接收的数据报文中携带的序列号大于第n-1次接收的数据报文中携带的序列号,则计算第n次接收的数据报文中携带的序列号与第n-1次接收的数据报文中携带的序列号的第三差值,以及第n次接收数据报文的接收时间与第n-1次接收数据报文的接收时间的第四差值,并将第三差值除以第四差值,所得商值即为第n平均码率;
若第n次接收的数据报文中携带的序列号小于或者等于第n-1次接收的数据报文中携带的序列号,则将第三差值与0xFFFFFFFF的和,除以第四差值,所得商值即为第n平均码率。
其中,这里的数据报文是指控制器在向其中一台交换机下发流策略后,接收到的交换机发送的该数据流中的当前正在传输的一个数据报文。控制器计算第n平均码率的过程与计算第一平均码率的过程类似,具体可以参照上述关于第一平均码率的描述过程,不同之处仅在于,计算第一平均码率是根据SYN报文的接收时间即携带的序列号和第1次接收数据报文的时间及携带的序列号进行计算的,而第n平均码率,是根据第n-1次接收数据报文的时间及携带的序列号和第n次接收数据报文的时间及携带的序列号进行计算的。
更进一步地,参见图6,在上述过程中确定该数据流为大象流之后,本发明实施例提供的方法还可以包括:
121、控制器确定大象流所在的传输路径的利用率是否大于预设利用率阈值。
122、若是,则控制器对大象流进行处理操作,处理操作包括将大象流进行重定向、调整数据流所在队列的优先级或限制数据流所在队列的传输速率。
在确定大象流之后,若大象流所在的传输路径的利用率大于预设利用阈值,则该传输路径很可能会发生拥塞,因而控制器可以对该传输路径上的大象流进行处理操作,以缓解链路拥塞,避免拥塞丢包。例如,控制器可以通过重定向、调整数据流所在队列的优先级或限制数据流所在队列的传输速率等方式对大象流进行处理操作,此外还可以采用现有技术中对大象流采取的一些处理操作,这里不再赘述。这样,就可以避免由于大象流占尽了某条链路的带宽,从而导致流量很小的老鼠流无法转发,并且大象流本身也可能由于链路带宽不足而导致丢包的问题。
需要说明的是,若采用现有技术中的检测方法,则需要通过交换机识别大象流,并在识别出大象流之后,在交换机上构造消息并发送给控制器,该消息中携带有大象流的信息,包括大象流的五元组等,控制器接收到该消息后,对其进行解析,将解析后的大象流的相关信息保存到本地,并且,为了对大象流进行处理,控制器还需要利用流量路径可视化技术检测大象流的当前传输路径;而在本发明实施例中,可以通过控制器对大象流进行识别,通过镜像SYN报文,获得同一个SYN经过的所有交换机,从而可以直接得到数据流的传输路径,并且直接通过控制器对大象流进行处理操作,从而简化了大象流的处理流程,降低了处理复杂度。
本发明另一实施例提供一种控制器200,参见图7,该控制器200可以包括:
接收单元201,可以用于接收至少一台交换机发送的数据流的连接建立SYN报文。
记录单元202,可以用于根据SYN报文,记录数据流的参数信息,参数信息包括SYN报文的接收时间,SYN报文中携带的序列号、源IP地址、目的IP地址、源端口和目的端口,以及数据流的传输路径。
发送单元203,可以用于若在预设时间阈值内未接收到数据流的连接关闭FIN报文,则向数据流传输路径上的任一交换机下发流策略,流策略中携带有源IP地址、目的IP地址、源端口和目的端口,流策略用于指示交换机根据源IP地址、目的IP地址、源端口和目的端口匹配数据流,并将数据流中当前传输的一个数据报文镜像给控制器200。
接收单元201还可以用于,接收任一交换机发送的数据流中当前传输的一个数据报文,记录数据报文的接收时间,以及数据报文中携带的序列号。
计算单元204,可以用于根据SYN报文的接收时间、数据报文的接收时间、SYN报文中携带的序列号以及数据报文中携带的序列号,计算第一平均码率。
确定单元205,可以用于若第一平均码率大于或者等于预设码率,则确定数据流为大象流。
其中,计算单元204用于计算第一平均码率具体可以包括:
若数据报文中携带的序列号大于SYN报文中携带的序列号,则计算数据报文中携带的序列号与SYN报文中携带的序列号的第一差值,以及数据报文的接收时间与SYN报文的接收时间的第二差值,并将第一差值除以第二差值,所得商值即为第一平均码率;
若数据报文中携带的序列号小于或者等于SYN报文中携带的序列号,则将第一差值与0xFFFFFFFF的和,除以第二差值,所得商值即为第一平均码率。
进一步地,发送单元203还可以用于,当第一平均码率小于预设码率时,若在数据报文的接收时间之后,在预设时间阈值内仍未接收到数据流的FIN报文,则再次向数据流传输路径上的任一交换机下发流策略;
接收单元201还可以用于,接收任一交换机发送的数据流中当前传输的一个数据报文,记录当前数据报文的接收时间,以及当前数据报文中携带的序列号;
计算单元204还可以用于,根据上一次接收数据报文的接收时间,当前数据报文的接收时间,上一次接收的数据报文中携带的序列号,以及当前数据报文中携带的序列号,计算第二平均码率;
确定单元205还可以用于,若第二平均码率大于或者等于预设码率,则确定数据流为大象流;若第二平均码率小于预设码率,则继续执行上述步骤,直至计算单元204计算得到的第n平均码率大于或者等于预设码率,则确定数据流为大象流;或者直至接收单元201接收到数据流的FIN报文,则确定数据流不是大象流,其中,n为大于1的正整数。
其中,计算单元204用于计算第n平均码率具体可以包括:
若第n次接收的数据报文中携带的序列号大于第n-1次接收的数据报文中携带的序列号,则计算第n次接收的数据报文中携带的序列号与第n-1次接收的数据报文中携带的序列号的第三差值,以及第n次接收数据报文的接收时间与第n-1次接收数据报文的接收时间的第四差值,并将第三差值除以第四差值,所得商值即为第n平均码率;
若第n次接收的数据报文中携带的序列号小于或者等于第n-1次接收的数据报文中携带的序列号,则将第三差值与0xFFFFFFFF的和,除以第四差值,所得商值即为第n平均码率。
可选地,记录单元202用于根据SYN报文记录数据流的传输路径具体可以包括:
记录发送数据流对应的同一SYN报文的所有交换机;
根据发送数据流对应的同一SYN报文的所有交换机,确定数据流的传输路径。
更进一步地,确定单元205在确定数据流为大象流之后,还用于确定大象流所在的传输路径的利用率是否大于预设利用率阈值;
控制器200还包括处理单元,用于在确定单元205确定大象流所在的传输路径的利用率大于预设利用率阈值时,对大象流进行处理操作,处理操作包括将大象流进行重定向、调整数据流所在队列的优先级或限制数据流所在队列的传输速率。
此外,接收单元201还用于,接收传输路径上的任一交换机发送的数据流的FIN报文;
确定单元205还用于,若在预设时间阈值内接收到数据流的FIN报文,则确定数据流不是大象流,并删除数据流的参数信息。
本发明实施例提供一种控制器,通过接收交换机发送的SYN报文和数据报文,记录数据流的四元组、传输路径、SYN报文和数据报文的接收时间等信息,并在预设时间阈值内未接收到FIN报文时,计算平均码率,从而确定数据流是否为大象流。其中,控制器记录数据流的四元组、传输路径等信息,相当于通过占用控制器的内存保存数据流的流表,而不用像现有技术那样需要占用数量庞大的交换机的内存来保存数据流的流表,且控制器内存的成本比交换机内存的成本要低得多。并且,交换机侧不需要进行任何修改,因而降低了成本。
需要说明的是,本实施例中的接收单元201和发送单元203可以为控制器200的通信接口。记录单元202、计算单元204和确定单元205可以分别为单独设立的处理器,也可以集成在控制器200的某一个处理器中实现,此外,也可以以程序代码的形式存储于控制器200的存储器中,由控制器200的某一个处理器调用并执行以上单元的功能。
本发明另一实施例提供一种控制器300,参见图8,该控制器300可以包括处理器301、存储器302、通信接口303和总线304。总线304用于连接处理器301、存储器302和通信接口303,通信接口303可以用于与其它网元进行通信,存储器302可以用于存储相关指令和数据,处理器301用于执行存储器302中的相关指令。
其中,总线304可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended IndustryStandard Architecture,简称EISA)总线等。总线304可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器302可以包括易失性存储器(英文全称:Volatile Memory),例如随机存取存储器(英文全称:Random-access Memory,简称:RAM);存储器302也可以包括非易失性存储器(英文全称:Non-volatileMemory),例如快闪存储器(英文全称:Flash Memory),硬盘(英文全称:Hard Disk Drive,简称:HDD)或固态硬盘(英文全称:Solid-stateDrive,简称:SSD);存储器302还可以包括上述种类的存储器的组合。
处理器301可以是中央处理器,网络处理器(英文全称:NetworkProcessor,简称:NP)或者CPU和NP的组合。
处理器301还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(英文全称:Application-specific Integrated Circuit,简称:ASIC),可编程逻辑器件(英文全称:Programmable Logic Device,简称:PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(英文全称:Complex Programmable Logic Device,简称:CPLD),现场可编程逻辑门阵列(英文全称:Field-programmable Gate Array,简称:FPGA),通用阵列逻辑(英文全称:Generic Array Logic,简称:GAL)或其任意组合。
具体的,通信接口303可以用于,接收至少一台交换机发送的数据流的连接建立SYN报文。
处理器301可以用于,根据SYN报文,记录数据流的参数信息,参数信息包括SYN报文的接收时间,SYN报文中携带的序列号、源IP地址、目的IP地址、源端口和目的端口,以及数据流的传输路径。
通信接口303还可以用于,若在预设时间阈值内未接收到数据流的连接关闭FIN报文,则向数据流传输路径上的任一交换机下发流策略,流策略中携带有源IP地址、目的IP地址、源端口和目的端口,流策略用于指示交换机根据源IP地址、目的IP地址、源端口和目的端口匹配数据流,并将数据流中当前传输的一个数据报文镜像给控制器300。
通信接口303还可以用于,接收任一交换机发送的数据流中当前传输的一个数据报文,记录数据报文的接收时间,以及数据报文中携带的序列号。
处理器301还可以用于,根据SYN报文的接收时间、数据报文的接收时间、SYN报文中携带的序列号以及数据报文中携带的序列号,计算第一平均码率。
处理器301还可以用于,若第一平均码率大于或者等于预设码率,则确定数据流为大象流。
本发明实施例提供一种控制器,通过接收交换机发送的SYN报文和数据报文,记录数据流的四元组、传输路径、SYN报文和数据报文的接收时间等信息,并在预设时间阈值内未接收到FIN报文时,计算平均码率,从而确定数据流是否为大象流。其中,控制器记录数据流的四元组、传输路径等信息,相当于通过占用控制器的内存保存数据流的流表,而不用像现有技术那样需要占用数量庞大的交换机的内存来保存数据流的流表,且控制器内存的成本比交换机内存的成本要低得多。并且,交换机侧不需要进行任何修改,因而降低了成本。
本发明另一实施例提供一种交换机400,参见图9,该交换机400可以包括:
接收单元401,可以用于接收终端发送的数据流的连接建立SYN报文。
发送单元402,可以用于将SYN报文镜像给控制器,以触发控制器记录数据流的参数信息,参数信息包括SYN报文的接收时间,SYN报文中携带的序列号、源IP地址、目的IP地址、源端口和目的端口,以及数据流的传输路径。
匹配单元403,可以用于在接收到控制器下发的流策略时,根据流策略中携带的源IP地址、目的IP地址、源端口和目的端口匹配数据流。
发送单元402还用于,将数据流中当前传输的一个数据报文发送给控制器,以触发控制器记录数据报文的接收时间,以及数据报文中携带的序列号,使得控制器根据SYN报文的接收时间、数据报文的接收时间、SYN报文中携带的序列号以及数据报文中携带的序列号,计算平均码率,从而确定数据流是否为大象流。
删除单元404,可以用于删除流策略。
此外,接收单元401还可以用于,接收终端发送的数据流的连接关闭FIN报文;
发送单元402还可以用于,将FIN报文镜像给控制器。
本发明实施例提供一种交换机,通过将接收到的SYN报文镜像给控制器,触发控制器记录数据流的四元组以及传输路径,并在接收到控制器下发的流策略时,通过ACL精确匹配数据流当前传输的一个数据报文,并镜像给控制器,以使得控制器在预设时间阈值内未接收到FIN报文时计算平均码率,从而确定数据流是否为控制流。由于ACL和镜像是目前商用主流交换机普遍支持的功能,因而本发明实施例中不需要对交换机做任何修改,只需要修改控制器即可,从而不需要像现有技术对数量庞大的交换机进行转发芯片升级,从而降低了设备成本,同时也避免了由于升级导致的兼容性差的问题。
需要说明的是,本实施例中的接收单元401和发送单元402可以为交换机400的通信接口。匹配单元403和删除单元404可以分别为单独设立的处理器,也可以集成在交换机400的某一个处理器中实现,此外,也可以以程序代码的形式存储于交换机400的存储器中,由交换机400的某一个处理器调用并执行以上单元的功能。
本发明另一实施例提供一种交换机500,参见图10,该交换机500可以包括处理器501、存储器502、通信接口503和总线504。总线用于504用于连接处理器501、存储器502和通信接口,通信接口503可以用于与其它网元进行通信,存储器502可以用于存储相关指令和数据,处理器501用于执行存储器502中的相关指令。其中,本发明实施例中的处理器501、存储器502、通信接口503和总线504的具体结构,可以参见上述实施例中关于处理器401、存储器402、通信接口403和总线404的描述。
具体的,通信接口503可以用于,接收终端发送的数据流的连接建立SYN报文,并将SYN报文镜像给控制器,以触发控制器记录数据流的参数信息,参数信息包括SYN报文的接收时间,SYN报文中携带的序列号、源IP地址、目的IP地址、源端口和目的端口,以及数据流的传输路径;
处理器501具体可以用于,在接收到控制器下发的流策略时,根据流策略中携带的源IP地址、目的IP地址、源端口和目的端口匹配数据流。
通信接口503还可以用于,将数据流中当前传输的一个数据报文发送给控制器,以触发控制器记录数据报文的接收时间,以及数据报文中携带的序列号,使得控制器根据SYN报文的接收时间、数据报文的接收时间、SYN报文中携带的序列号以及数据报文中携带的序列号,计算平均码率,从而确定数据流是否为大象流,并删除流策略。
本发明实施例提供一种交换机,通过将接收到的SYN报文镜像给控制器,触发控制器记录数据流的四元组以及传输路径,并在接收到控制器下发的流策略时,通过ACL精确匹配数据流当前传输的一个数据报文,并镜像给控制器,以使得控制器在预设时间阈值内未接收到FIN报文时计算平均码率,从而确定数据流是否为控制流。由于ACL和镜像是目前商用主流交换机普遍支持的功能,因而本发明实施例中不需要对交换机做任何修改,只需要修改控制器即可,从而不需要像现有技术对数量庞大的交换机进行转发芯片升级,从而降低了设备成本,同时也避免了由于升级导致的兼容性差的问题。
本发明另一实施例提供一种系统,该系统可以包括如图7或8所示的控制器,包括如图9或10所示的交换机,还包括终端。该系统中交换机的数量可以为多个,终端数量也可以为多个。控制器、交换机和终端可以执行如图3-6所示的方法步骤。示例性的,该系统的结构示意图可以参见图1a或图2。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备、方法和系统,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (19)
1.一种大象流的检测方法,其特征在于,包括:
接收至少一台交换机发送的数据流的连接建立SYN报文;
根据所述SYN报文,记录所述数据流的参数信息,所述参数信息包括所述SYN报文的接收时间,所述SYN报文中携带的序列号、源IP地址、目的IP地址、源端口和目的端口,以及所述数据流的传输路径;
若在预设时间阈值内未接收到所述数据流的连接关闭FIN报文,则向所述数据流传输路径上的任一交换机下发流策略,所述流策略中携带有所述源IP地址、目的IP地址、源端口和目的端口,所述流策略用于指示所述交换机根据所述源IP地址、目的IP地址、源端口和目的端口匹配所述数据流,并将所述数据流中当前传输的一个数据报文镜像给所述控制器;
接收所述任一交换机发送的所述数据流中当前传输的一个数据报文,记录所述数据报文的接收时间,以及所述数据报文中携带的序列号;
根据所述SYN报文的接收时间、所述数据报文的接收时间、所述SYN报文中携带的序列号以及所述数据报文中携带的序列号,计算第一平均码率;
若所述第一平均码率大于或者等于预设码率,则确定所述数据流为大象流。
2.根据权利要求1所述的方法,其特征在于,根据所述SYN报文的接收时间、所述数据报文的接收时间、所述SYN报文中携带的序列号以及所述数据报文中携带的序列号,计算第一平均码率包括:
若所述数据报文中携带的序列号大于所述SYN报文中携带的序列号,则计算所述数据报文中携带的序列号与所述SYN报文中携带的序列号的第一差值,以及所述数据报文的接收时间与所述SYN报文的接收时间的第二差值,并将所述第一差值除以所述第二差值,所得商值即为所述第一平均码率;
若所述数据报文中携带的序列号小于或者等于所述SYN报文中携带的序列号,则将所述第一差值与0xFFFFFFFF的和,除以所述第二差值,所得商值即为所述第一平均码率。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
当所述第一平均码率小于所述预设码率时,若在所述数据报文的接收时间之后,在预设时间阈值内仍未接收到所述数据流的FIN报文,则再次向所述数据流传输路径上的任一交换机下发所述流策略;
接收所述任一交换机发送的所述数据流中当前传输的一个数据报文,记录当前数据报文的接收时间,以及当前数据报文中携带的序列号;
根据上一次接收所述数据报文的接收时间,当前数据报文的接收时间,上一次接收的所述数据报文中携带的序列号,以及当前数据报文中携带的序列号,计算第二平均码率;
若所述第二平均码率大于或者等于预设码率,则确定所述数据流为大象流;
若所述第二平均码率小于预设码率,则继续执行上述步骤,直至计算得到的第n平均码率大于或者等于预设码率,则确定所述数据流为大象流;或者直至接收到所述数据流的FIN报文,则确定所述数据流不是大象流,其中,所述n为大于1的正整数。
4.根据权利要求3所述的方法,其特征在于,计算第n平均码率包括:
若第n次接收的数据报文中携带的序列号大于第n-1次接收的数据报文中携带的序列号,则计算第n次接收的数据报文中携带的序列号与第n-1次接收的数据报文中携带的序列号的第三差值,以及第n次接收数据报文的接收时间与第n-1次接收数据报文的接收时间的第四差值,并将所述第三差值除以所述第四差值,所得商值即为所述第n平均码率;
若第n次接收的数据报文中携带的序列号小于或者等于第n-1次接收的数据报文中携带的序列号,则将所述第三差值与0xFFFFFFFF的和,除以所述第四差值,所得商值即为所述第n平均码率。
5.根据权利要求1-4任一项所述的方法,其特征在于,根据所述SYN报文记录所述数据流的传输路径包括:
记录发送所述数据流对应的同一SYN报文的所有交换机;
根据发送所述数据流对应的同一SYN报文的所有交换机,确定所述数据流的传输路径。
6.根据权利要求1-5任一项所述的方法,其特征在于,在确定所述数据流为大象流之后,所述方法还包括:
确定所述大象流所在的传输路径的利用率是否大于预设利用率阈值;
若是,则对所述大象流进行处理操作,所述处理操作包括将所述大象流进行重定向、调整所述数据流所在队列的优先级或限制所述数据流所在队列的传输速率。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括;
接收所述传输路径上的任一交换机发送的所述数据流的FIN报文;
若在预设时间阈值内接收到所述数据流的FIN报文,则确定所述数据流不是大象流,并删除所述数据流的参数信息。
8.一种大象流的检测方法,其特征在于,包括:
接收终端发送的数据流的连接建立SYN报文;
将所述SYN报文镜像给控制器,以触发所述控制器记录所述数据流的参数信息,所述参数信息包括所述SYN报文的接收时间,所述SYN报文中携带的序列号、源IP地址、目的IP地址、源端口和目的端口,以及所述数据流的传输路径;
在接收到所述控制器下发的流策略时,根据所述流策略中携带的源IP地址、目的IP地址、源端口和目的端口匹配所述数据流,并将所述数据流中当前传输的一个数据报文发送给所述控制器,以触发所述控制器记录所述数据报文的接收时间,以及所述数据报文中携带的序列号,使得所述控制器根据所述SYN报文的接收时间、所述数据报文的接收时间、所述SYN报文中携带的序列号以及所述数据报文中携带的序列号,计算平均码率,从而确定所述数据流是否为大象流;
删除所述流策略。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
接收所述终端发送的所述数据流的连接关闭FIN报文;
将所述FIN报文镜像给所述控制器。
10.一种控制器,其特征在于,包括:
接收单元,用于接收至少一台交换机发送的数据流的连接建立SYN报文;
记录单元,用于根据所述SYN报文,记录所述数据流的参数信息,所述参数信息包括所述SYN报文的接收时间,所述SYN报文中携带的序列号、源IP地址、目的IP地址、源端口和目的端口,以及所述数据流的传输路径;
发送单元,用于若在预设时间阈值内未接收到所述数据流的连接关闭FIN报文,则向所述数据流传输路径上的任一交换机下发流策略,所述流策略中携带有所述源IP地址、目的IP地址、源端口和目的端口,所述流策略用于指示所述交换机根据所述源IP地址、目的IP地址、源端口和目的端口匹配所述数据流,并将所述数据流中当前传输的一个数据报文镜像给所述控制器;
所述接收单元还用于,接收所述任一交换机发送的所述数据流中当前传输的一个数据报文,记录所述数据报文的接收时间,以及所述数据报文中携带的序列号;
计算单元,用于根据所述SYN报文的接收时间、所述数据报文的接收时间、所述SYN报文中携带的序列号以及所述数据报文中携带的序列号,计算第一平均码率;
确定单元,用于若所述第一平均码率大于或者等于预设码率,则确定所述数据流为大象流。
11.根据权利要求10所述的控制器,其特征在于,所述计算单元用于计算第一平均码率具体包括:
若所述数据报文中携带的序列号大于所述SYN报文中携带的序列号,则计算所述数据报文中携带的序列号与所述SYN报文中携带的序列号的第一差值,以及所述数据报文的接收时间与所述SYN报文的接收时间的第二差值,并将所述第一差值除以所述第二差值,所得商值即为所述第一平均码率;
若所述数据报文中携带的序列号小于或者等于所述SYN报文中携带的序列号,则将所述第一差值与0xFFFFFFFF的和,除以所述第二差值,所得商值即为所述第一平均码率。
12.根据权利要求10或11所述的控制器,其特征在于,所述发送单元还用于,当所述第一平均码率小于所述预设码率时,若在所述数据报文的接收时间之后,在预设时间阈值内仍未接收到所述数据流的FIN报文,则再次向所述数据流传输路径上的任一交换机下发所述流策略;
所述接收单元还用于,接收所述任一交换机发送的所述数据流中当前传输的一个数据报文,记录当前数据报文的接收时间,以及当前数据报文中携带的序列号;
所述计算单元还用于,根据上一次接收所述数据报文的接收时间,当前数据报文的接收时间,上一次接收的所述数据报文中携带的序列号,以及当前数据报文中携带的序列号,计算第二平均码率;
所述确定单元还用于,若所述第二平均码率大于或者等于预设码率,则确定所述数据流为大象流;若所述第二平均码率小于预设码率,则继续执行上述步骤,直至所述计算单元计算得到的第n平均码率大于或者等于预设码率,则确定所述数据流为大象流;或者直至所述接收单元接收到所述数据流的FIN报文,则确定所述数据流不是大象流,其中,所述n为大于1的正整数。
13.根据权利要求12所述的控制器,其特征在于,所述计算单元用于计算第n平均码率具体包括:
若第n次接收的数据报文中携带的序列号大于第n-1次接收的数据报文中携带的序列号,则计算第n次接收的数据报文中携带的序列号与第n-1次接收的数据报文中携带的序列号的第三差值,以及第n次接收数据报文的接收时间与第n-1次接收数据报文的接收时间的第四差值,并将所述第三差值除以所述第四差值,所得商值即为所述第n平均码率;
若第n次接收的数据报文中携带的序列号小于或者等于第n-1次接收的数据报文中携带的序列号,则将所述第三差值与0xFFFFFFFF的和,除以所述第四差值,所得商值即为所述第n平均码率。
14.根据权利要求10-13任一项所述的控制器,其特征在于,所述记录单元用于根据所述SYN报文记录所述数据流的传输路径具体包括:
记录发送所述数据流对应的同一SYN报文的所有交换机;
根据发送所述数据流对应的同一SYN报文的所有交换机,确定所述数据流的传输路径。
15.根据权利要求10-14任一项所述的控制器,其特征在于,所述确定单元在确定所述数据流为大象流之后,还用于确定所述大象流所在的传输路径的利用率是否大于预设利用率阈值;
所述控制器还包括处理单元,用于在所述确定单元确定所述大象流所在的传输路径的利用率大于预设利用率阈值时,对所述大象流进行处理操作,所述处理操作包括将所述大象流进行重定向、调整所述数据流所在队列的优先级或限制所述数据流所在队列的传输速率。
16.根据权利要求10所述的控制器,其特征在于,所述接收单元还用于,接收所述传输路径上的任一交换机发送的所述数据流的FIN报文;
所述确定单元还用于,若在预设时间阈值内接收到所述数据流的FIN报文,则确定所述数据流不是大象流,并删除所述数据流的参数信息。
17.一种交换机,其特征在于,包括:
接收单元,用于接收终端发送的数据流的连接建立SYN报文;
发送单元,用于将所述SYN报文镜像给控制器,以触发所述控制器记录所述数据流的参数信息,所述参数信息包括所述SYN报文的接收时间,所述SYN报文中携带的序列号、源IP地址、目的IP地址、源端口和目的端口,以及所述数据流的传输路径;
匹配单元,用于在接收到所述控制器下发的流策略时,根据所述流策略中携带的源IP地址、目的IP地址、源端口和目的端口匹配所述数据流;
所述发送单元还用于,将所述数据流中当前传输的一个数据报文发送给所述控制器,以触发所述控制器记录所述数据报文的接收时间,以及所述数据报文中携带的序列号,使得所述控制器根据所述SYN报文的接收时间、所述数据报文的接收时间、所述SYN报文中携带的序列号以及所述数据报文中携带的序列号,计算平均码率,从而确定所述数据流是否为大象流;
删除单元,用于删除所述流策略。
18.根据权利要求17所述的交换机,其特征在于,所述接收单元还用于,接收终端发送的所述数据流的连接关闭FIN报文;
所述发送单元还用于,将所述FIN报文镜像给所述控制器。
19.一种系统,其特征在于,包括如权利要求10-16任一项所述的控制器,如权利要求17或18所述的交换机,以及终端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610283651.5A CN107342906B (zh) | 2016-04-29 | 2016-04-29 | 一种大象流的检测方法、设备及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610283651.5A CN107342906B (zh) | 2016-04-29 | 2016-04-29 | 一种大象流的检测方法、设备及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107342906A true CN107342906A (zh) | 2017-11-10 |
CN107342906B CN107342906B (zh) | 2020-04-21 |
Family
ID=60221715
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610283651.5A Expired - Fee Related CN107342906B (zh) | 2016-04-29 | 2016-04-29 | 一种大象流的检测方法、设备及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107342906B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108306759A (zh) * | 2017-12-28 | 2018-07-20 | 中国银联股份有限公司 | 针对Leaf-Spine交换机之间的链路进行扰动模拟的方法及设备 |
CN110572332A (zh) * | 2019-08-30 | 2019-12-13 | 西南交通大学 | 网络设备报文观测数据采集任务划分方法 |
CN110677324A (zh) * | 2019-09-30 | 2020-01-10 | 华南理工大学 | 基于sFlow采样与控制器主动更新列表的大象流两级检测方法 |
CN110808854A (zh) * | 2019-10-24 | 2020-02-18 | 新华三信息安全技术有限公司 | 报文调度方法、装置及交换机 |
CN111510391A (zh) * | 2020-04-07 | 2020-08-07 | 南京理工大学 | 数据中心环境下细粒度级别混合的负载均衡方法 |
CN111656740A (zh) * | 2018-01-26 | 2020-09-11 | 欧庞戈网络有限公司 | 用于识别数据分组网络中的候选流的系统和方法 |
CN111786898A (zh) * | 2020-08-07 | 2020-10-16 | 杭州安恒信息技术股份有限公司 | 一种监控设备信息获取方法、装置、设备及介质 |
WO2021120783A1 (zh) * | 2019-12-20 | 2021-06-24 | 华为技术有限公司 | 一种报文处理方法及装置 |
CN113225253A (zh) * | 2020-01-21 | 2021-08-06 | 华为技术有限公司 | 一种报文转发方法及装置 |
CN113542362A (zh) * | 2021-06-21 | 2021-10-22 | 网络通信与安全紫金山实验室 | 一种基于可编程asic芯片的负载均衡的流量卸载方法及装置 |
CN114884883A (zh) * | 2022-06-16 | 2022-08-09 | 深圳星云智联科技有限公司 | 一种流量转发方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102130800A (zh) * | 2011-04-01 | 2011-07-20 | 苏州赛特斯网络科技有限公司 | 基于数据流行为分析的网络访问异常检测装置及方法 |
US20140237118A1 (en) * | 2013-02-19 | 2014-08-21 | Broadcom Corporation | Application Aware Elephant Flow Management |
CN104301246A (zh) * | 2014-10-27 | 2015-01-21 | 盛科网络(苏州)有限公司 | 基于sdn的大流负载均衡转发方法及装置 |
US20150341247A1 (en) * | 2010-11-22 | 2015-11-26 | Hewlett-Packard Development Company, L.P. | Elephant flow detection in a computing device |
-
2016
- 2016-04-29 CN CN201610283651.5A patent/CN107342906B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150341247A1 (en) * | 2010-11-22 | 2015-11-26 | Hewlett-Packard Development Company, L.P. | Elephant flow detection in a computing device |
CN102130800A (zh) * | 2011-04-01 | 2011-07-20 | 苏州赛特斯网络科技有限公司 | 基于数据流行为分析的网络访问异常检测装置及方法 |
US20140237118A1 (en) * | 2013-02-19 | 2014-08-21 | Broadcom Corporation | Application Aware Elephant Flow Management |
CN104301246A (zh) * | 2014-10-27 | 2015-01-21 | 盛科网络(苏州)有限公司 | 基于sdn的大流负载均衡转发方法及装置 |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108306759A (zh) * | 2017-12-28 | 2018-07-20 | 中国银联股份有限公司 | 针对Leaf-Spine交换机之间的链路进行扰动模拟的方法及设备 |
CN108306759B (zh) * | 2017-12-28 | 2020-12-15 | 中国银联股份有限公司 | 针对Leaf-Spine交换机之间的链路进行扰动模拟的方法及设备 |
CN111656740A (zh) * | 2018-01-26 | 2020-09-11 | 欧庞戈网络有限公司 | 用于识别数据分组网络中的候选流的系统和方法 |
CN110572332A (zh) * | 2019-08-30 | 2019-12-13 | 西南交通大学 | 网络设备报文观测数据采集任务划分方法 |
CN110572332B (zh) * | 2019-08-30 | 2022-08-26 | 西南交通大学 | 网络设备报文观测数据采集任务划分方法 |
CN110677324B (zh) * | 2019-09-30 | 2023-02-14 | 华南理工大学 | 基于sFlow采样与控制器主动更新列表的大象流两级检测方法 |
CN110677324A (zh) * | 2019-09-30 | 2020-01-10 | 华南理工大学 | 基于sFlow采样与控制器主动更新列表的大象流两级检测方法 |
CN110808854A (zh) * | 2019-10-24 | 2020-02-18 | 新华三信息安全技术有限公司 | 报文调度方法、装置及交换机 |
CN110808854B (zh) * | 2019-10-24 | 2022-05-06 | 新华三信息安全技术有限公司 | 报文调度方法、装置及交换机 |
WO2021120783A1 (zh) * | 2019-12-20 | 2021-06-24 | 华为技术有限公司 | 一种报文处理方法及装置 |
US11653251B2 (en) | 2020-01-21 | 2023-05-16 | Huawei Technologies Co., Ltd. | Packet forwarding method and apparatus |
CN113225253A (zh) * | 2020-01-21 | 2021-08-06 | 华为技术有限公司 | 一种报文转发方法及装置 |
CN111510391B (zh) * | 2020-04-07 | 2022-10-14 | 南京理工大学 | 数据中心环境下细粒度级别混合的负载均衡方法 |
CN111510391A (zh) * | 2020-04-07 | 2020-08-07 | 南京理工大学 | 数据中心环境下细粒度级别混合的负载均衡方法 |
CN111786898B (zh) * | 2020-08-07 | 2022-11-22 | 杭州安恒信息技术股份有限公司 | 一种监控设备信息获取方法、装置、设备及介质 |
CN111786898A (zh) * | 2020-08-07 | 2020-10-16 | 杭州安恒信息技术股份有限公司 | 一种监控设备信息获取方法、装置、设备及介质 |
CN113542362A (zh) * | 2021-06-21 | 2021-10-22 | 网络通信与安全紫金山实验室 | 一种基于可编程asic芯片的负载均衡的流量卸载方法及装置 |
CN113542362B (zh) * | 2021-06-21 | 2024-04-26 | 网络通信与安全紫金山实验室 | 一种基于可编程asic芯片的负载均衡的流量卸载方法及装置 |
CN114884883A (zh) * | 2022-06-16 | 2022-08-09 | 深圳星云智联科技有限公司 | 一种流量转发方法、装置、设备及存储介质 |
CN114884883B (zh) * | 2022-06-16 | 2024-01-30 | 深圳星云智联科技有限公司 | 一种流量转发方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107342906B (zh) | 2020-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107342906A (zh) | 一种大象流的检测方法、设备及系统 | |
US7120149B2 (en) | Methods and system for resequencing out of order data packets | |
TWI284469B (en) | A network system having a plurality of switches capable of improving transmission efficiency and method thereof | |
CN102263697B (zh) | 一种聚合链路流量分担方法和装置 | |
CN108307434A (zh) | 用于流控制的方法和设备 | |
CN108881008A (zh) | 一种数据传输的方法、装置和系统 | |
CN109391560A (zh) | 网络拥塞的通告方法、代理节点及计算机设备 | |
CN111800351B (zh) | 由交换机进行的拥塞通知分组生成 | |
CN108023758A (zh) | 一种混合接入网络中处理报文的方法及网络设备 | |
CN107864061A (zh) | 一种在私有云中虚拟机端口限速和镜像的方法 | |
CN107483337A (zh) | 确定路径的方法及其网络设备 | |
JPH08163174A (ja) | 可変長データ交換機,同可変長データ交換機に収容された可変長データ端末,可変長データ通信システム及び可変長データ通信方法 | |
CN107770085B (zh) | 一种网络负载均衡方法、设备及系统 | |
EP1794954A1 (en) | Packet aggregation protocol for advanced switching | |
CN104852855B (zh) | 拥塞控制方法、装置及设备 | |
CN108199976B (zh) | RapidIO网络的交换设备、交换系统和数据发送方法 | |
CN107787570A (zh) | 轻量传送协议 | |
CN108337179A (zh) | 链路流量控制方法及装置 | |
CN109842570A (zh) | 聚合速率控制方法、设备以及系统 | |
CN107231269A (zh) | 一种集群精确限速方法和装置 | |
CN107547430A (zh) | 一种报文发送方法及装置 | |
CN104580002B (zh) | 大流负载均衡转发方法及装置 | |
CN109428842A (zh) | 一种QoS信息传送方法和装置 | |
CN113438182B (zh) | 一种基于信用的流量控制系统和流量控制方法 | |
CN102594665B (zh) | 业务数据传输方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20200421 |
|
CF01 | Termination of patent right due to non-payment of annual fee |