CN108809826A - 一种大象数据流处理方法、装置、p4交换机及介质 - Google Patents
一种大象数据流处理方法、装置、p4交换机及介质 Download PDFInfo
- Publication number
- CN108809826A CN108809826A CN201810390416.7A CN201810390416A CN108809826A CN 108809826 A CN108809826 A CN 108809826A CN 201810390416 A CN201810390416 A CN 201810390416A CN 108809826 A CN108809826 A CN 108809826A
- Authority
- CN
- China
- Prior art keywords
- elephant
- data flow
- interchangers
- downlink transfer
- stream
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/33—Flow control; Congestion control using forward notification
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/123—Evaluation of link metrics
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
- H04L49/252—Store and forward routing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种大象数据流处理方法、装置、P4及计算机可读存储介质,所述大象数据流处理方法由P4交换机执行,包括以下步骤:当检测到下行传输链路的吞吐量大于预设阈值时,检测所述下行传输链路对应的转发队列上的大象数据流;根据预定义P4配置文件下发的流表及流条目删除特征,将所述大象数据流分裂成至少两个老鼠数据流;其中,所述流条目删除特征用于更改所述大象数据流的传输链路;根据链路优化算法从所有下行传输链路中选择至少两个下一跳P4交换机中负载最小的P4交换机,以分别转发所述老鼠数据流,运用P4技术在P4交换机上实现可编程处理大象数据流,从而避免网络拥塞,提高网络吞吐量,减小网络时延,同时也减少了SDN控制器的运行负荷。
Description
技术领域
本发明涉及通信网络技术领域,尤其涉及一种大象数据流处理方法、装置、P4交换机及计算机可读存储介质。
背景技术
SDN是一种将网络控制和转发功能分离的新型架构,它使网络具备直接编程能力,并为应用程序和服务提供抽象的底层基础设施。在SDN运行网络架构中,包括SDN控制器、交换机及目的终端,OpenFlow起源于斯坦福大学的Clean Slate项目组,由Nick McKeown等人于2008年在ACM SIGCOMM发表详细阐述此概念的论文。OpenFlow协议作为使用最普遍的分离控制平面和数据平面的SDN南向接口,自OpenFlow1.0发布以来,目前已经演进到1.5版本,其中匹配域的个数从1.0版本的12元组变为1.3版本的40个,最后到1.5版本的45个匹配域,其匹配域数目随着新版本支持特性的更新而不断增加。但OpenFlow并不支持弹性地增加匹配域,每增加一个匹配域就需要重新编写控制器和交换机两端的协议栈以及交换机的数据包处理逻辑,这无疑增加了交换机设计的难度,也严重影响Open Flow协议的版本稳定性,影响OpenFlow的推广。尽管其不同版本的规范支持越来越多的头部协议字段,更多层次的规则表以增加交换机的可编程性和灵活性,但仍不能满足网络发展的需求。
随着大数据和云计算的发展,网络的规模不断地扩大,会出现拥塞问题、延迟时间长和低吞吐量问题。Benson等人发现80%的流小于10KB(老鼠流),而10%的流则具有大量数据或生存周期长(大象流),网络中大象流数量少于网络流数量的10%,但却占网络流量的80%,研究发现在网络交换机出口端的队列中老鼠流经常在大象流后面,从而造成长时间的队列延迟,为了高效管理网络,对大象流的识别和指定合适的转发策略是十分重要的。
现有技术对大象数据流的处理方式通常是在传输网络发生拥塞时,获取大象数据流,并基于一计算规则计算各个链路或者转发路径的负载率,然后根据计算结果改变大象数据流的转发路径,诸如通过动态计算多路径的权重的加权多路径路由算法,根据路径权重改变大象流的路径,从而减少网络负载。
在实现本发明实施例的过程中,发明人发现:现有技术的做法对大象数据流的传输路径进行更改,虽然在一定程度上避免了网络拥塞,但网络拥塞问题的主要是由带宽资源和交换机设备处理能力有限等原因造成的,改变大象流的传输链路并不能充分保证解决网络拥塞问题,同时也造成目标路径上老鼠流的发送延迟,导致时延的增加,同时不能充分利用网络上空闲的链路资源,而且现有技术的做法是在SDN控制器上进行了,严重影响SDN控制器的正常运行效率。
发明内容
针对上述问题,本发明的目的在于提供一种大象数据流处理方法、装置、P4交换机及计算机可读存储介质,通过P4语言编程在交换机上实现大象数据流处理,避免网络拥塞,提高网络吞吐量,减小网络时延,也减少SDN运行网络中SDN控制器的运行负载。
第一方面,本发明实施例提供了一种大象数据流处理方法,所述大象数据流处理方法由P4交换机执行,并包括以下步骤:
当检测到下行传输链路的吞吐量大于预设阈值时,检测所述下行传输链路对应的转发队列上的大象数据流;
根据预定义P4配置文件下发的流表及流条目删除特征,将所述大象数据流分裂成至少两个老鼠数据流;其中,所述流条目删除特征用于更改所述大象数据流的传输链路;
根据链路优化算法从所有下行传输链路中选择至少两个下一跳P4交换机中负载最小的P4交换机,以分别转发所述老鼠数据流。
在第一方面的第一种实现方式中,还包括:
接收预定义P4配置文件,并根据所述预定义P4配置文件进行交换机配置。
在第一方面的第二种实现方式中,所述当检测到下行传输链路的吞吐量大于预设阈值时,检测所述下行传输链路对应的转发队列上的大象数据流,具体为:
定期计算所有下行传输链路的吞吐量;
当检测到所述下行传输链路的吞吐量大于预设阈值时,获取所述下行传输链路对应的转发队列上,带宽超过所述下行传输链路最大带宽阈值的数据流,并将所述带宽超过所述下行传输链路最大带宽阈值的数据流标记为大象数据流。
根据第一方面的第二种实现方式,在第一方面的第三种实现方式中,所述根据预定义P4配置文件下发的流表及流条目删除特征,将所述大象数据流分裂成至少两个老鼠数据流,具体为:
根据预定义P4配置文件下发的流表获取所述大象数据流的目的地址;
根据流条目删除特征,将所述大象数据流分裂成至少两个老鼠流;
为所述老鼠流配置所述大象数据流的目的地址。
根据第一方面的第三种实现方式,在第一方面的第四种实现方式中,还包括:
获取所有下行传输链路对应的所有下一跳P4交换机的统计数据;其中,所述统计数据包括流量统计信息、队列统计信息及端口聚合统计信息。
根据第一方面的第四种实现方式,在第一方面的第五种实现方式中,所述根据链路优化算法从所有下行传输链路中选择至少两个下一跳P4交换机中负载最小的P4交换机,以分别转发所述老鼠数据流,具体为:
根据所述所有下一跳P4交换机的统计数据计算所述所有下一跳P4交换机的负载情况;其中,交换机的负载相对于其他交换机的负载的相对值设为Li,k,则λi,k表示当前第k个交换机的在接口i的吞吐量;
根据计算的所述所有下一跳P4交换机的负载情况选择至少两个负载最小的下一跳P4交换机;
根据选择的至少两个负载最小的下一跳P4交换机,为所述至少两个老鼠流配置下一跳交换机地址,以分别向选择的至少两个P4交换机分别发送所述老鼠流。
根据第一方面的以上任一种实现方式,在第一方面的第六种实现方式中,还包括:
通过元数据总线记录所述大象数据流的流执行过程;
根据所述流执行过程更新自身的流表及选择的所述下一跳P4交换机的流表。
第二方面,本发明实施例提供了一种大象数据流处理装置,包括:
大象流检测单元,用于当检测到下行传输链路的吞吐量大于预设阈值时,检测所述下行传输链路对应的转发队列上的大象数据流;
大象流分裂单元,用于根据预定义P4配置文件下发的流表及流条目删除特征,将所述大象数据流分裂成至少两个老鼠数据流;其中,所述流条目删除特征用于更改所述大象数据流的传输链路;
老鼠流转发单元,用于根据链路优化算法从所有下行传输链路中选择至少两个下一跳P4交换机中负载最小的P4交换机,以分别转发所述老鼠数据流。
在第二方面的第一种实现方式中,还包括:
初始配置单元,用于接收预定义P4配置文件,并根据所述预定义P4配置文件进行交换机配置。
在第二方面的第二种实现方式中,所述大象流检测单元具体包括:
吞吐量计算模块,用于定期计算所有下行传输链路的吞吐量;
大象数据流检测模块,用于当检测到所述下行传输链路的吞吐量大于预设阈值时,获取所述下行传输链路对应的转发队列上,带宽超过所述下行传输链路最大带宽阈值的数据流,并将所述带宽超过所述下行传输链路最大带宽阈值的数据流标记为大象数据流。
根据第二方面的第二种实现方式,在第二方面的第三种实现方式中,所述大象流分裂单元具体包括:
目的地址获取模块,用于根据预定义P4配置文件下发的流表获取所述大象数据流的目的地址;
大象流分裂模块,用于根据流条目删除特征,将所述大象数据流分裂成至少两个老鼠流;
目的地址配置模块,用于为所述老鼠流配置所述大象数据流的目的地址。
根据第二方面的第三种实现方式,在第二方面的第四种实现方式中,还包括:
统计信息获取单元,用于获取所有下行传输链路对应的所有下一跳P4交换机的统计数据;其中,所述统计数据包括流量统计信息、队列统计信息及端口聚合统计信息。
根据第二方面的第四种实现方式,在第二方面的第五种实现方式中,所述老鼠流转发单元具体包括:
负载计算模块,用于根据所述所有下一跳P4交换机的统计数据计算所述所有下一跳P4交换机的负载情况;其中,交换机的负载相对于其他交换机的负载的相对值设为Li,k,则λi,k表示当前第k个交换机的在接口i的吞吐量;
下一跳交换机选择模块,用于根据计算的所述所有下一跳P4交换机的负载情况选择至少两个负载最小的下一跳P4交换机;
老鼠流转发模块,用于根据选择的至少两个负载最小的下一跳P4交换机,为所述至少两个老鼠流配置下一跳交换机地址,以分别向选择的至少两个P4交换机分别发送所述老鼠流。
根据第二方面的以上任一种实现方式,在第二方面的第六种实现方式中,还包括:
流执行过程记录模块,用于通过元数据总线记录所述大象数据流的流执行过程;
流表更新模块,用于根据所述流执行过程更新自身的流表及选择的所述下一跳P4交换机的流表。
第三方面,本发明实施例提供了一种P4交换机,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现上述中任意一项所述的大象数据流处理方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行上述中任意一项所述的大象数据流处理方法。
本发明实施例提供了一种大象数据流处理方法、装置、P4交换机及计算机可读存储介质,并具有如下有益效果:
当检测到下行传输链路的吞吐量大于预设阈值时,检测所述下行传输链路对应的转发队列上的大象数据流,然后根据预定义P4配置文件下发的流表及流条目删除特征,将所述大象数据流分裂成至少两个老鼠数据流,所述流条目删除特征用于更改所述大象数据流的传输链路,最后根据链路优化算法从所有下行传输链路中选择至少两个下一跳P4交换机中负载最小的P4交换机,以分别转发所述老鼠数据流,运用P4技术在P4交换机上实现可编程处理大象数据流,在P4交换机上实现将大象流分裂为多个老鼠流,并将其发送到负载小的路径上,避免拥塞现象的发生,提高网络的吞吐量,使得网络上空间的链路路径能都得到充分的利用,同时也减少了网络时延,无需通过SDN控制器的处理,减少了SDN控制器的运行负荷,有利于整个SDN网络的高效运行。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明第一实施例提供的大象数据流处理方法的流程示意图。
图2是本发明第一实施例提供的P4架构的示意图。
图3是本发明第二实施例提供的P4交换机流水线的流程示意图。
图4是本发明第三实施例提供的大象数据流处理装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,本发明第一实施例提供了一种大象数据流处理方法,所述大象数据流处理方法由P4交换机执行,并包括以下步骤:
S11,当检测到下行传输链路的吞吐量大于预设阈值时,检测所述下行传输链路对应的转发队列上的大象数据流。
在本发明实施例中,在实现所述大象数据流处理方法之前,首先所述P4交换机接收预定义P4配置文件,并根据所述预定义P4配置文件进行交换机配置,即将所述预定义P4配置文件“烧录”到所述P4交换机中,所述预定义P4配置文件由P4语言进行编写,请参阅图2为P4架构,所述P4语言满足:(1)协议无关性:网络设备不与任何特定的网络协议绑定,用户可以使用P4语言描述任何网络数据平面协议和数据包处理行为,这一特性通过自定义包解析器、匹配-动作表的匹配流程和流控制程序实现;(2)目标无关性:用户不需要关心底层硬件的细节就可实现对数据包的处理方式的编程描述,这一特性通过P4前后端编译器实现,前端编译器将P4高级语言程序转换成中间表示IR,后端编译器将IR编译成设备配置,自动配置目标设备。(3)可重构性:允许用户随时改变包解析和处理的程序,并在编译后配置交换机,真正实现现场可重配能力。为了实现上述特性,P4语言的编译器采用了模块化的设计,各个模块之间的输入输出都采用标准格式的配置文件,如p4c-bm模块的输出作为载入到bmv2模块中的JSON格式配置文件,在本发明实施例中,通过P4配置预定义P4配置文件,将所述预定义P4配置文件配置到所述P4交换机的芯片中以使P4交换机执行所述大象数据流处理方法。
在本发明实施例中,所述P4交换机定期计算所有下行传输链路的吞吐量,当检测到所述下行传输链路的吞吐量大于预设阈值时,获取所述下行传输链路对应的转发队列上,带宽超过所述下行传输链路最大带宽阈值的数据流,并将所述带宽超过所述下行传输链路最大带宽阈值的数据流标记为大象数据流,需要说明的是,本发明对于预设阈值及下行传输链路最大带宽阈值的设置不做任何限定,例如所述预设阈值可以选取吞吐量最大时网络负载的70%或者66%等等,所述下行传输链路最大带宽阈值可为所述下行链路带宽的1.1倍或者1.15倍等,以上方式均在本发明的保护范围之内。
S12,根据预定义P4配置文件下发的流表及流条目删除特征,将所述大象数据流分裂成至少两个老鼠数据流;其中,所述流条目删除特征用于更改所述大象数据流的传输链路。
在本发明实施例中,所述P4交换机根据预定义P4配置文件下发的流表获取所述大象数据流的目的地址,然后根据流条目删除特征,将所述大象数据流分裂成至少两个老鼠流,最后为所述老鼠流配置所述大象数据流的目的地址,确保所述老鼠流发送到目的地址所对应的目的终端进行封装处理;将大象流分裂老鼠的基本思想是利用P4语言根据Openflow协议的流条目删除特征进行设计实现。根据Openflow协议的流表删除特征,流条目在交换机中持续的时间为T,即hard_time属性的值为T,本发明通过P4技术在P4交换机安装一个hard_time值为T的主动流条目和hard_time值为2T备用流条目,当主动流条目经过时间T后被删除时,备用流条目变成主动流条目,并且将流切换到另一个链路,即备用流条目的出口端发生改变,因为大象流生存时间长,数据量大,大象流的出口再不断变化,最终,大象流被分裂成多个老鼠流。
S13,根据链路优化算法从所有下行传输链路中选择至少两个下一跳P4交换机中负载最小的P4交换机,以分别转发所述老鼠数据流。
在本发明实施例中,所述P4交换机向所有下行传输链路对应的所有下一跳P4交换机发送数据统计请求,获取所有下行传输链路对应的所有下一跳P4交换机的统计数据,所述统计数据包括流量统计信息、队列统计信息及端口聚合统计信息,然后所述P4交换机根据所述所有下一跳P4交换机的统计数据计算所述所有下一跳P4交换机的负载情况,交换机的负载相对于其他交换机的负载的相对值设为Li,k,则λi,k表示当前第k个交换机的在接口i的吞吐量,再根据计算的所述所有下一跳P4交换机的负载情况选择至少两个负载最小的下一跳P4交换机,最后所述P4交换机根据选择的至少两个负载最小的下一跳P4交换机,为所述至少两个老鼠流配置下一跳交换机地址,以分别向选择的至少两个P4交换机分别发送所述老鼠流。
综上所述,本发明第一实施例提供了一种大象数据流处理方法,当检测到下行传输链路的吞吐量大于预设阈值时,检测所述下行传输链路对应的转发队列上的大象数据流,然后根据预定义P4配置文件下发的流表及流条目删除特征,将所述大象数据流分裂成至少两个老鼠数据流,所述流条目删除特征用于更改所述大象数据流的传输链路,最后根据链路优化算法从所有下行传输链路中选择至少两个下一跳P4交换机中负载最小的P4交换机,以分别转发所述老鼠数据流,运用P4技术在P4交换机上实现可编程处理大象数据流,在P4交换机上实现将大象流分裂为多个老鼠流,并将其发送到负载小的路径上,避免拥塞现象的发生,提高网络的吞吐量,使得网络上空间的链路路径能都得到充分的利用,同时也减少了网络时延,无需通过SDN控制器的处理,减少了SDN控制器的运行负荷,有利于整个SDN网络的高效运行。
为了便于对本发明的理解,下面将对本发明的一些优选实施例做更进一步的描述。
本发明第二实施例:
在本发明第一实施例的基础上,还包括:
通过元数据总线记录所述大象数据流的流执行过程。
根据所述流执行过程更新自身的流表及选择的所述下一跳P4交换机的流表。
在本发明实施例中,请参阅图3,P4交换机中将流水线处理数据的过程进行抽象和重定义,数据处理单元对数据的处理抽象成匹配和执行匹配-动作表的过程,包头的解析抽象成P4中的解析器,数据处理流程抽象成流控制。P4中基础数据处理单元是不记录数据的,所以就需要引入一个元数据总线,用来存储一条流水线处理过程中需要记录的数据。P4交换机的专用物理芯片Tofino,最高支持12个数据处理单元,可以覆盖传统交换机的所有功能,所述P4交换机通过元数据总线记录所述大象数据流的流执行过程,然后根据所述流执行过程更新自身的所有流表及选择的所述下一跳P4交换机的所有流表。
请参阅图4,本发明第三实施例提供了一种大象数据流处理装置,包括:
大象流检测单元11,用于当检测到下行传输链路的吞吐量大于预设阈值时,检测所述下行传输链路对应的转发队列上的大象数据流。
大象流分裂单元12,用于根据预定义P4配置文件下发的流表及流条目删除特征,将所述大象数据流分裂成至少两个老鼠数据流;其中,所述流条目删除特征用于更改所述大象数据流的传输链路。
老鼠流转发单元13,用于根据链路优化算法从所有下行传输链路中选择至少两个下一跳P4交换机中负载最小的P4交换机,以分别转发所述老鼠数据流。
在第三方面的第一种实现方式中,还包括:
初始配置单元,用于接收预定义P4配置文件,并根据所述预定义P4配置文件进行交换机配置。
在第三方面的第二种实现方式中,所述大象流检测单元11具体包括:
吞吐量计算模块,用于定期计算所有下行传输链路的吞吐量。
大象数据流检测模块,用于当检测到所述下行传输链路的吞吐量大于预设阈值时,获取所述下行传输链路对应的转发队列上,带宽超过所述下行传输链路最大带宽阈值的数据流,并将所述带宽超过所述下行传输链路最大带宽阈值的数据流标记为大象数据流。
根据第三方面的第二种实现方式,在第三方面的第三种实现方式中,所述大象流分裂单元12具体包括:
目的地址获取模块,用于根据预定义P4配置文件下发的流表获取所述大象数据流的目的地址。
大象流分裂模块,用于根据流条目删除特征,将所述大象数据流分裂成至少两个老鼠流。
目的地址配置模块,用于为所述老鼠流配置所述大象数据流的目的地址。
根据第三方面的第三种实现方式,在第三方面的第四种实现方式中,还包括:
统计信息获取单元,用于获取所有下行传输链路对应的所有下一跳P4交换机的统计数据;其中,所述统计数据包括流量统计信息、队列统计信息及端口聚合统计信息。
根据第三方面的第四种实现方式,在第三方面的第五种实现方式中,所述老鼠流转发单元13具体包括:
负载计算模块,用于根据所述所有下一跳P4交换机的统计数据计算所述所有下一跳P4交换机的负载情况;其中,交换机的负载相对于其他交换机的负载的相对值设为Li,k,则λi,k表示当前第k个交换机的在接口i的吞吐量。
下一跳交换机选择模块,用于根据计算的所述所有下一跳P4交换机的负载情况选择至少两个负载最小的下一跳P4交换机。
老鼠流转发模块,用于根据选择的至少两个负载最小的下一跳P4交换机,为所述至少两个老鼠流配置下一跳交换机地址,以分别向选择的至少两个P4交换机分别发送所述老鼠流。
根据第三方面的以上任一种实现方式,在第三方面的第六种实现方式中,还包括:
流执行过程记录模块,用于通过元数据总线记录所述大象数据流的流执行过程。
流表更新模块,用于根据所述流执行过程更新自身的流表及选择的所述下一跳P4交换机的流表。
本发明第四实施例提供了一种P4交换机。该实施例的P4交换机包括:处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,例如大象数据流处理程序。所述处理器执行所述计算机程序时实现上述各个大象数据流处理方法实施例中的步骤,例如图1所示的步骤S11。或者,所述处理器执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能,例如大象流检测单元。
示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述P4交换机中的执行过程。
所述P4交换机可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,上述部件仅仅是P4交换机的示例,并不构成对P4交换机的限定,可以包括比上述部件更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述P4交换机还可以包括输入输出设备、网络接入设备、总线等。
所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述P4交换机的控制中心,利用各种接口和线路连接整个P4交换机的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述P4交换机的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据交换机的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
其中,所述P4交换机集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
Claims (10)
1.一种大象数据流处理方法,其特征在于,所述大象数据流处理方法由P4交换机执行,并包括以下步骤:
当检测到下行传输链路的吞吐量大于预设阈值时,检测所述下行传输链路对应的转发队列上的大象数据流;
根据预定义P4配置文件下发的流表及流条目删除特征,将所述大象数据流分裂成至少两个老鼠数据流;其中,所述流条目删除特征用于更改所述大象数据流的传输链路;
根据链路优化算法从所有下行传输链路中选择至少两个下一跳P4交换机中负载最小的P4交换机,以分别转发所述老鼠数据流。
2.根据权利要求1所述的大象数据流处理方法,其特征在于,还包括:
接收预定义P4配置文件,并根据所述预定义P4配置文件进行交换机配置。
3.根据权利要求1所述的大象数据流处理方法,其特征在于,所述当检测到下行传输链路的吞吐量大于预设阈值时,检测所述下行传输链路对应的转发队列上的大象数据流,具体为:
定期计算所有下行传输链路的吞吐量;
当检测到所述下行传输链路的吞吐量大于预设阈值时,获取所述下行传输链路对应的转发队列上,带宽超过所述下行传输链路最大带宽阈值的数据流,并将所述带宽超过所述下行传输链路最大带宽阈值的数据流标记为大象数据流。
4.根据权利要求3所述的大象数据流处理方法,其特征在于,所述根据预定义P4配置文件下发的流表及流条目删除特征,将所述大象数据流分裂成至少两个老鼠数据流,具体为:
根据预定义P4配置文件下发的流表获取所述大象数据流的目的地址;
根据流条目删除特征,将所述大象数据流分裂成至少两个老鼠流;
为所述老鼠流配置所述大象数据流的目的地址。
5.根据权利要求4所述的大象数据流处理方法,其特征在于,还包括:
获取所有下行传输链路对应的所有下一跳P4交换机的统计数据;其中,所述统计数据包括流量统计信息、队列统计信息及端口聚合统计信息。
6.根据权利要求5所述的大象数据流处理方法,其特征在于,所述根据链路优化算法从所有下行传输链路中选择至少两个下一跳P4交换机中负载最小的P4交换机,以分别转发所述老鼠数据流,具体为:
根据所述所有下一跳P4交换机的统计数据计算所述所有下一跳P4交换机的负载情况;其中,交换机的负载相对于其他交换机的负载的相对值设为Li,k,则λi,k表示当前第k个交换机的在接口i的吞吐量;
根据计算的所述所有下一跳P4交换机的负载情况选择至少两个负载最小的下一跳P4交换机;
根据选择的至少两个负载最小的下一跳P4交换机,为所述至少两个老鼠流配置下一跳交换机地址,以分别向选择的至少两个P4交换机分别发送所述老鼠流。
7.根据权利要求1至6任意一项所述的大象数据流处理方法,其特征在于,还包括:
通过元数据总线记录所述大象数据流的流执行过程;
根据所述流执行过程更新自身的流表及选择的所述下一跳P4交换机的流表。
8.一种大象数据流处理装置,其特征在于,包括以下步骤:
大象流检测单元,用于当检测到下行传输链路的吞吐量大于预设阈值时,检测所述下行传输链路对应的转发队列上的大象数据流;
大象流分裂单元,用于根据预定义P4配置文件下发的流表及流条目删除特征,将所述大象数据流分裂成至少两个老鼠数据流;其中,所述流条目删除特征用于更改所述大象数据流的传输链路;
老鼠流转发单元,用于根据链路优化算法从所有下行传输链路中选择至少两个下一跳P4交换机中负载最小的P4交换机,以分别转发所述老鼠数据流。
9.一种P4交换机,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至7中任意一项所述的大象数据流处理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如权利要求1至7中任意一项所述的大象数据流处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810390416.7A CN108809826A (zh) | 2018-04-27 | 2018-04-27 | 一种大象数据流处理方法、装置、p4交换机及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810390416.7A CN108809826A (zh) | 2018-04-27 | 2018-04-27 | 一种大象数据流处理方法、装置、p4交换机及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108809826A true CN108809826A (zh) | 2018-11-13 |
Family
ID=64093991
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810390416.7A Pending CN108809826A (zh) | 2018-04-27 | 2018-04-27 | 一种大象数据流处理方法、装置、p4交换机及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108809826A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110138674A (zh) * | 2019-04-29 | 2019-08-16 | 广州大学 | 可编程数据平面流调度方法、系统、介质及网络设备 |
US10476803B2 (en) * | 2017-12-18 | 2019-11-12 | Mellanox Technologies, Ltd. | Elephant flow detection in network access |
CN111258590A (zh) * | 2020-05-06 | 2020-06-09 | 华控清交信息科技(北京)有限公司 | 一种代码执行方法、装置和用于代码执行的装置 |
CN112954703A (zh) * | 2021-01-18 | 2021-06-11 | 南方电网调峰调频发电有限公司信息通信分公司 | 一种智慧电厂的盲区自组网络方法及系统 |
CN114095386A (zh) * | 2020-07-01 | 2022-02-25 | 阿里巴巴集团控股有限公司 | 一种数据流统计方法、设备及存储介质 |
CN114710811A (zh) * | 2022-04-07 | 2022-07-05 | 中国联合网络通信集团有限公司 | 数据流转发方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101237583A (zh) * | 2008-03-07 | 2008-08-06 | 杭州华三通信技术有限公司 | 一种实现多分屏的编解码方法和装置 |
CN104301256A (zh) * | 2014-10-31 | 2015-01-21 | 杭州华三通信技术有限公司 | 一种sdn网络动态预留带宽的方法及控制器 |
US20150071072A1 (en) * | 2013-09-10 | 2015-03-12 | Robin Systems, Inc. | Traffic Flow Classification |
CN105553846A (zh) * | 2016-02-22 | 2016-05-04 | 南京大学 | 一种在软件定义网络中分配资源的方法 |
CN106453129A (zh) * | 2016-09-30 | 2017-02-22 | 杭州电子科技大学 | 一种大象流两级识别系统及方法 |
-
2018
- 2018-04-27 CN CN201810390416.7A patent/CN108809826A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101237583A (zh) * | 2008-03-07 | 2008-08-06 | 杭州华三通信技术有限公司 | 一种实现多分屏的编解码方法和装置 |
US20150071072A1 (en) * | 2013-09-10 | 2015-03-12 | Robin Systems, Inc. | Traffic Flow Classification |
CN104301256A (zh) * | 2014-10-31 | 2015-01-21 | 杭州华三通信技术有限公司 | 一种sdn网络动态预留带宽的方法及控制器 |
CN105553846A (zh) * | 2016-02-22 | 2016-05-04 | 南京大学 | 一种在软件定义网络中分配资源的方法 |
CN106453129A (zh) * | 2016-09-30 | 2017-02-22 | 杭州电子科技大学 | 一种大象流两级识别系统及方法 |
Non-Patent Citations (1)
Title |
---|
金玲等: "数据中心网络中基于SDN的大象流负载均衡的研究", 《计算机应用研究 优先出版》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10476803B2 (en) * | 2017-12-18 | 2019-11-12 | Mellanox Technologies, Ltd. | Elephant flow detection in network access |
CN110138674A (zh) * | 2019-04-29 | 2019-08-16 | 广州大学 | 可编程数据平面流调度方法、系统、介质及网络设备 |
CN111258590A (zh) * | 2020-05-06 | 2020-06-09 | 华控清交信息科技(北京)有限公司 | 一种代码执行方法、装置和用于代码执行的装置 |
CN111258590B (zh) * | 2020-05-06 | 2020-08-18 | 华控清交信息科技(北京)有限公司 | 一种代码执行方法、装置和用于代码执行的装置 |
CN114095386A (zh) * | 2020-07-01 | 2022-02-25 | 阿里巴巴集团控股有限公司 | 一种数据流统计方法、设备及存储介质 |
CN114095386B (zh) * | 2020-07-01 | 2024-03-26 | 阿里巴巴集团控股有限公司 | 一种数据流统计方法、设备及存储介质 |
CN112954703A (zh) * | 2021-01-18 | 2021-06-11 | 南方电网调峰调频发电有限公司信息通信分公司 | 一种智慧电厂的盲区自组网络方法及系统 |
CN114710811A (zh) * | 2022-04-07 | 2022-07-05 | 中国联合网络通信集团有限公司 | 数据流转发方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108809826A (zh) | 一种大象数据流处理方法、装置、p4交换机及介质 | |
CN103716208B (zh) | 支持大象流的网络管理方法、系统、交换机和网络 | |
Fernandez-Fernandez et al. | Achieving energy efficiency: An energy-aware approach in SDN | |
CN103348640B (zh) | 中继装置 | |
Long et al. | LABERIO: Dynamic load-balanced routing in OpenFlow-enabled networks | |
CN107579922B (zh) | 网络负载均衡装置和方法 | |
CN110545228B (zh) | 服务功能链请求处理方法及系统 | |
CN104094565B (zh) | 控制器、用于分配负载的方法、计算机系统和控制设备 | |
CN103281252A (zh) | 一种基于多路径传输的报文流量控制方法和装置 | |
CN105323185A (zh) | 用于与交换机结构相关的流控制的方法和装置 | |
CN103069756A (zh) | 通信系统、控制器、节点控制方法和程序 | |
CN104378308A (zh) | 报文发送速率检测方法及装置 | |
CN102035719A (zh) | 一种报文处理方法和装置 | |
KR20170017903A (ko) | 네트워크 장애의 선제적 핸들링 기법 | |
CN105357124B (zh) | 一种MapReduce带宽优化方法 | |
CN112350949B (zh) | 软件定义网络中基于流调度的重路由拥塞控制方法及系统 | |
CN108494800A (zh) | 一种数据包安全检测及处理方法、装置、p4交换机及介质 | |
CN101789949B (zh) | 一种实现负荷分担的方法和路由设备 | |
CN109412963B (zh) | 一种基于流拆分的服务功能链部署方法 | |
CN103155501A (zh) | 通信系统、控制设备、设置处理规则的方法和程序 | |
CN104852859B (zh) | 一种聚合接口业务处理方法和设备 | |
EP2564554A2 (en) | Virtual topology adaptation for resource optimization in telecommunication networks | |
CN105915467A (zh) | 一种面向软件定义的数据中心网络流量均衡方法及装置 | |
Galan-Jimenez et al. | Reducing the reconfiguration cost of flow tables in energy-efficient software-defined networks | |
US20130031223A1 (en) | Self-configuring router and method therefor |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181113 |