CN113839884B - 流量控制方法和装置 - Google Patents

流量控制方法和装置 Download PDF

Info

Publication number
CN113839884B
CN113839884B CN202010591464.XA CN202010591464A CN113839884B CN 113839884 B CN113839884 B CN 113839884B CN 202010591464 A CN202010591464 A CN 202010591464A CN 113839884 B CN113839884 B CN 113839884B
Authority
CN
China
Prior art keywords
flow
server
stream
sending
path
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
Application number
CN202010591464.XA
Other languages
English (en)
Other versions
CN113839884A (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 CN202010591464.XA priority Critical patent/CN113839884B/zh
Publication of CN113839884A publication Critical patent/CN113839884A/zh
Application granted granted Critical
Publication of CN113839884B publication Critical patent/CN113839884B/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/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/006Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • 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
    • 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
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2483Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请提供一种流量控制方法和装置,该方法包括:获取待发送的流以及流的五元组信息;基于网络训练模型,根据流的五元组信息,确定流的类别,类别包括大流或小流;若流为大流,则向第二服务器发送第一消息,第一消息中包括流的五元组信息和流为大流时对应的置信度,第一消息用于指示第二服务器根据五元组信息和置信度确定流的目标发送速率和第一发送路径;接收第二服务器发送的第二消息,第二消息中包括目标发送速率和第一发送路径;按照目标发送速率,在第一发送路径中向网络设备发送流。本申请提供的流量控制方法和装置不仅可以提高带宽的利用率,而且可以降低流的平均FCT。

Description

流量控制方法和装置
技术领域
本申请实施例涉及通信技术领域,尤其涉及一种流量控制方法和装置。
背景技术
为了解决日益膨胀的流量问题,越来越多的数据中心被部署在大学、企业中,而且运行着不同种类的应用,包括面向用户的在线服务、大数据分析以及分布式机器学习等等。随着应用需求的不断增长,数据中心的规模急剧扩大。因此,如何充分利用数据中心中所有路径上的带宽,达到负载均衡,是非常重要的。
现有技术中,通常采用如下两种方式进行负载均衡:第一种:使用显示路由来选择路径,然后采用一个以给定流量矩阵为输入的线性规划(linear programming,LP)优化器,来调整对应流在这些路径上的目标发送速率。第二种:在流量传输时动态地检测每条流已传输的数据是否超过了预设阈值,若某条流已传输的数据超过了预设阈值,则确定该流为大流。在识别出大流之后,将按照最大最小公平算法为每条流分配带宽,然后根据流速率请求为识别出的大流选择合适的传输路径。
然而,上述第一种方式中,需要在获取到流量信息,如流的个数或流的大小之后,才能调整流在路径上的目标发送速率,但是在很多情况下,无法事先获取到流量信息,因此,第一种方式中的流量控制方法的可用性不高。在第二种方式中,由于流在传输一段时间之后,才能根据已传输的数据判断该流是否为大流,因此,这种方式不仅会影响带宽的利用率,而且会延长小流的流完成时间(flow completion time,FCT)。
发明内容
本申请实施例提供一种流量控制方法和装置,不仅可以提高带宽的利用率,而且可以降低流的平均FCT。
第一方面,本申请实施例提供一种流量控制方法,应用于第一服务器,方法包括:获取待发送的流以及流的五元组信息。基于网络训练模型,根据流的五元组信息,确定流的类别,类别包括大流或小流。若流为大流,则向第二服务器发送第一消息,第一消息中包括流的五元组信息和流为大流时对应的置信度,第一消息用于指示第二服务器根据五元组信息和置信度确定流的目标发送速率和第一发送路径。接收第二服务器发送的第二消息,第二消息中包括目标发送速率和第一发送路径。按照目标发送速率,在第一发送路径中向网络设备发送流。
在本方案中,由于第一服务器在发送流之前,可以通过网络训练模型,识别出流的类别,因此可以快速准确的进行大小流的分类。另外,第二服务器根据五元组信息和置信度,可以确定出大流的目标发送速率和第一发送路径,因此,在针对流量信息不可知的场景中,也可以实现对流进行发送速率和发送路径的分配。进一步的,由于在流为大流时,在发送该流之前,可以为该流分配发送速率和发送路径,从而可以提高带宽的利用率,并降低流的平均FCT。
在一种可能的实现方式中,方法还包括:
若流为小流,则按照等价多路径ECMP方式确定第二发送路径。在第二发送路径中发送流。
在本方案中,若判断出待发送的流为小流,则可以按照ECMP方式确定第二发送路径,并不对流做限速处理,直接通过该第二发送路径进行流的传输,由此可以提高小流的FCT。
在一种可能的实现方式中,方法还包括:监测第二发送路径中已发送的数据量;若数据量超过预设值,则将流的类别更新为大流。
在本方案中,第一服务器通过监测第二发送路径中已发送的数据量,若监测出数据量超过预设值,则可以将流的类别更新为大流。这样可以避免将大流误识别为小流的现象,从而可以提高流的类别识别的准确性。
在一种可能的实现方式中,网络训练模型为随机森林模型。
在本方案中,通过随机森林模型,可以识别出流的类别,因此可以快速准确的进行大小流的分类。
在一种可能的实现方式中,方法还包括:监测流是否发送结束;若流发送结束,则向第二服务器发送第一标识,并释放用于传输流的带宽,第一标识用于通知第二服务器流发送结束。
在本方案中,在监测到流发送结束后,将释放用于传输流的带宽,从而可以提高带宽的利用率。
在一种可能的实现方式中,方法还包括:
若流对应的数据量超过链路带宽的10%,则确定流为大流。
第二方面,本申请实施例提供一种流量控制方法,应用于第二服务器,方法包括:接收至少一个第一服务器中每个第一服务器发送的第一消息,第一消息中包括第一服务器获取的待发送的流的五元组信息和流为大流时对应的置信度,流为大流;根据至少一个第一服务器对应的流的五元组信息和置信度,确定每个第一服务器对应的流的目标发送速率和第一发送路径;向每个第一服务器发送第二消息,第二消息中包括目标发送速率和第一发送路径;第二消息用于指示第一服务器按照目标发送速率,在第一发送路径中向第三服务器发送流。
在本方案中,由于第一服务器在发送流之前,可以通过网络训练模型,识别出流的类别,因此可以快速准确的进行大小流的分类。另外,第二服务器根据五元组信息和置信度,可以确定出大流的目标发送速率和第一发送路径,因此,在针对流量信息不可知的场景中,也可以实现对流进行发送速率和发送路径的分配。进一步的,由于在流为大流时,在发送该流之前,可以为该流分配发送速率和发送路径,从而可以提高带宽的利用率,并降低流的平均FCT。
在一种可能的实现方式中,根据至少一个第一服务器对应的流的五元组信息和置信度,确定流的目标发送速率,包括:针对每个第一服务器,根据五元组信息,确定至少一个与第一服务器对应的目的端的第三服务器;根据五元组信息,分别确定以第一服务器为源端的至少一个第一流和以第三服务器为目的端的至少一个第二流;根据至少一个第一流中每个第一流对应的置信度,确定每个第一流的第一发送速率,并根据至少一个第二流中每个第二流对应的置信度,确定每个第二流的第二发送速率;根据第一发送速率和第二发送速率,确定流的目标发送速率。
在一种可能的实现方式中,根据第一发送速率和第二发送速率,确定流的目标发送速率,包括:将第一发送速率和第二发送速率中的最小值,确定为目标发送速率。
在本方案中,通过确定以第一服务器为源端的至少一个第一流中每个第一流的第一发送速率和以第三服务器为目的端的至少一个第二流的第二发送速率,并根据该第一发送速率和第二发送速率,为流分配发送速率,从而可以降低流的平均FCT,并且可以提升链路带宽的利用率。
在一种可能的实现方式中,根据至少一个第一服务器对应的流的五元组信息和置信度,确定流的第一发送路径,包括:根据至少一个第一服务器对应的流的置信度,按照置信度从高到低的顺序对至少一个服务器对应的流进行排序;按照排序后的流,根据各第一服务器对应的流的五元组信息,依次为各流选择第一发送路径。
在本方案中,通过为置信度高的流优先选择发送路径,可以避免相对较小的流过早地占用链路而影响大流的发送,从而可以提高链路利用率。
在一种可能的实现方式中,按照排序后的流,根据各第一服务器对应的流的五元组信息,依次为各流选择第一发送路径,包括:针对每条流,根据流的五元组信息,确定流的至少一条可用路径中每条可用路径的剩余带宽;确定至少一条可用路径中剩余带宽最多的目标可用路径;若目标可用路径的剩余带宽大于目标发送速率,则将目标可用路径确定为流的第一发送路径。
在本方案中,由于通过确定流的所有可用路径中剩余带宽最多的目标可用路径,并在目标可用路径的剩余带宽大于目标发送速率时,将目标可用路径确定为第一发送路径,由此可以不仅可以保证流的正确发送,而且可以降低流的平均FCT,并且可以提升链路带宽的利用率。
第三方面,本申请实施例提供一种流量控制装置,包括:处理单元,用于获取待发送的流以及流的五元组信息;处理单元,还用于基于网络训练模型,根据流的五元组信息,确定流的类别,类别包括大流或小流;发送单元,用于在流为大流时,向第二服务器发送第一消息,第一消息中包括流的五元组信息和流为大流时对应的置信度,第一消息用于指示第二服务器根据五元组信息和置信度确定流的目标发送速率和第一发送路径;接收单元,用于接收第二服务器发送的第二消息,第二消息中包括目标发送速率和第一发送路径;发送单元,还用于按照目标发送速率,在第一发送路径中向网络设备发送流。
在一种可能的实现方式中,处理单元,还用于在流为小流时,按照等价多路径ECMP方式确定第二发送路径;发送单元,还用于在第二发送路径中发送流。
在一种可能的实现方式中,处理单元,还用于监测第二发送路径中已发送的数据量;处理单元,还用于在数据量超过预设值时,将流的类别更新为大流。
在一种可能的实现方式中,网络训练模型为随机森林模型。
在一种可能的实现方式中,处理单元,还用于监测流是否发送结束;发送单元,还用于在流发送结束时,向第二服务器发送第一标识,第一标识用于通知第二服务器流发送结束;处理单元,还用于释放用于传输流的带宽。
在一种可能的实现方式中,处理单元,还用于在流对应的数据量超过链路带宽的10%时,确定流为大流。
第四方面,本申请实施例提供一种流量控制装置,包括:接收单元,用于接收至少一个第一服务器中每个第一服务器发送的第一消息,第一消息中包括第一服务器获取的待发送的流的五元组信息和流为大流时对应的置信度,流为大流;处理单元,用于根据至少一个第一服务器对应的流的五元组信息和置信度,确定每个第一服务器对应的流的目标发送速率和第一发送路径;发送单元,用于向每个第一服务器发送第二消息,第二消息中包括目标发送速率和第一发送路径;第二消息用于指示第一服务器按照目标发送速率,在第一发送路径中向第三服务器发送流。
在一种可能的实现方式中,处理单元,具体用于:针对每个第一服务器,根据五元组信息,确定至少一个与第一服务器对应的目的端的第三服务器;根据五元组信息,分别确定以第一服务器为源端的至少一个第一流和以第三服务器为目的端的至少一个第二流;根据至少一个第一流中每个第一流对应的置信度,确定每个第一流的第一发送速率,并根据至少一个第二流中每个第二流对应的置信度,确定每个第二流的第二发送速率;根据第一发送速率和第二发送速率,确定流的目标发送速率。
在一种可能的实现方式中,处理单元,具体用于:将第一发送速率和第二发送速率中的最小值,确定为目标发送速率。
在一种可能的实现方式中,处理单元,具体用于:根据至少一个第一服务器对应的流的置信度,按照置信度从高到低的顺序对至少一个服务器对应的流进行排序;按照排序后的流,根据各第一服务器对应的流的五元组信息,依次为各流选择第一发送路径。
在一种可能的实现方式中,处理单元,具体用于:针对每条流,根据流的五元组信息,确定流的至少一条可用路径中每条可用路径的剩余带宽;确定至少一条可用路径中剩余带宽最多的目标可用路径;若目标可用路径的剩余带宽大于目标发送速率,则将目标可用路径确定为流的第一发送路径。
本申请第三方面或第四方面提供的装置,可以是服务器,也可以是服务器内的芯片,服务器或芯片具有实现上述各方面或其任意可能的设计中的流量控制方法的功能。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的单元。
服务器包括:处理单元和收发单元,处理单元可以是处理器,收发单元可以是收发器,收发器包括射频电路,可选地,服务器还包括存储单元,存储单元例如可以是存储器。当服务器包括存储单元时,存储单元用于存储计算机执行指令,处理单元与存储单元连接,处理单元执行存储单元存储的计算机执行指令,以使服务器执行上述各方面或其任意可能的设计中的流量控制方法。
芯片包括:处理单元和收发单元,处理单元可以是处理器,收发单元可以是芯片上的输入/输出接口、管脚或电路等。处理单元可执行存储单元存储的计算机执行指令,以使芯片执行上述各方面或其任意可能的设计中的流量控制方法。可选地,存储单元可以是芯片内的存储单元(例如,寄存器、缓存等),存储单元还可以是服务器内的位于芯片外部的存储单元(例如,只读存储器(read-only memory,ROM))或可存储静态信息和指令的其他类型的静态存储设备(例如,随机存取存储器(random access memory,RAM))等。
上述提到的处理器可以是一个中央处理器(central processing unit,CPU)、微处理器或专用集成电路(application specific integrated circuit,ASIC),也可以是一个或多个用于控制上述各方面或其任意可能的设计的流量控制方法的程序执行的集成电路。
第五方面,本申请实施例提供一种流量控制装置,装置包括处理器和存储器,存储器中存储有计算机程序,处理器执行存储器中存储的计算机程序,以使装置执行如第一方面或第二方面提供的流量控制方法。
第六方面,本申请实施例提供一种流量控制装置,包括:处理器和接口电路;接口电路,用于接收代码指令并传输至处理器;处理器,用于运行代码指令以执行如第一方面或第二方面提供的流量控制方法。
第七方面,本申请实施例提供一种可读存储介质,用于存储有指令,当指令被执行时,使如第一方面或第二方面提供的流量控制方法被实现。
本申请实施例提供的流量控制方法和装置,第一服务器通过获取待发送的流以及流的五元组信息,并基于网络训练模型,根据流的五元组信息,确定流的类别为大流还是小流,若识别出流为大流,则向第二服务器发送第一消息,该第一消息中包括流的五元组信息和流为大流时对应的置信度。第二服务器根据五元组信息和置信度确定流的目标发送速率和第一发送路径,并将确定出的目标发送速率和第一发送路径发送给第一服务器,第一服务器按照目标发送速率,在第一发送路径中向网络设备发送该流。由于第一服务器在发送流之前,可以通过网络训练模型,识别出流的类别,因此可以快速准确的进行大小流的分类。另外,第二服务器根据五元组信息和置信度,可以确定出大流的目标发送速率和第一发送路径,因此,在针对流量信息不可知的场景中,也可以实现对流进行发送速率和发送路径的分配。进一步的,由于在流为大流时,在发送该流之前,可以为该流分配发送速率和发送路径,从而可以提高带宽的利用率,并降低流的平均FCT。
附图说明
图1为本申请实施例提供的数据中心网络的结构示意图;
图2为本申请实施例提供的流量控制方法的系统架构图;
图3为本申请实施例提供的一种流量控制方法的信令流程图;
图4为本申请实施例提供的一种流量控制方法的流程示意图;
图5为本申请实施例提供的一种流量控制装置的结构示意图;
图6为本申请实施例提供的一种流量控制装置的结构示意图;
图7是本申请实施例提供的一种服务器的结构示意图。
具体实施方式
以下,对本申请中的部分用语进行解释说明,以便于本领域技术人员理解。
1)本申请中的单元是指功能单元或逻辑单元。其可以为软件形式,通过处理器执行程序代码来实现其功能;也可以为硬件形式。
2)“多个”是指两个或两个以上,其它量词与之类似。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。“以上”或“以下”等所描述的范围包括边界点。
3)随机森林模型:是指利用多棵决策树对样本进行训练并预测的一种分类器。其中,分类器是指给定一个样本的数据,判定这个样本属于哪个类别的算法。在本申请实施例中,可以利用预先训练好的随机森林模型,判断待发送的流属于大流还是小流。
为了下述各实施例的描述清楚简洁,首先给出相关技术的简要介绍:
本申请下述各实施例提供的流量控制方法,可适用于数据中心网络中。图1为本申请实施例提供的数据中心网络的结构示意图,下面以数据中心网络中包括四个服务器为例进行说明,若包括其他数量的服务器时的工作过程和工作原理,与包括四个服务器时的工作工程和工作原理类似,此处不再赘述。其中,如图1所示,服务器1(也称为主机1(Host1))与交换机1连接、服务器2(也称为主机2(Host2))与交换机2连接、服务器3(也称为主机3(Host3))与交换机3连接、服务器4(也称为主机4(Host4))与交换机4连接,服务器5与交换机4连接。所有服务器之间均采用传输控制协议/网络协议(Transmission ControlProtocol/Internet Protocol,TCP/IP)协议进行通信,例如:服务器1与服务器2之间或者服务器2与服务器5之间通过TCP/IP进行通信。在上述数据中心网络中,服务器1、服务器2、服务器3和服务器4与服务器5之间传递的报文为控制报文,服务器1、服务器2、服务器3和服务器4之间传递的报文为数据报文,其中,控制报文以高优先级在网络中传输,而数据报文以低优先级传输。为了保证控制报文和数据报文的正确传输,交换机(例如交换机1-交换机6)需要开启优先级队列功能。其中,交换机1、交换机2、交换机3和交换机4分别用于进行数据的转发,例如交换机1可以用于转发服务器1发送的数据,交换机2可以用于转发服务器2发送的数据等等。
另外,交换机5和交换机6分别与交换机1、交换机2、交换机3和交换机4进行数据通信,交换机5和交换机6也用于进行数据的转发。例如:若服务器1和服务器2之间进行通信时,服务器1会将数据发送给交换机1,交换机1再将数据发送给交换机5或交换机6,通过交换机5或交换机6将数据转发到交换机2,从而通过交换机2将数据发送给服务器2。
在数据中心网络中,采用的流量工程(traffic engineering,TE)技术是等价多路径(equal-cost multipath,ECMP),其通过随机哈希方式将所有流分散到多条等长路径中,以充分利用所有路径上的带宽,达到负载均衡。例如:服务器1将流发送到服务器2中时,会存在多条路径,例如,路径1为服务器1-交换机1-交换机5-交换机2-服务器2,路径2为服务器1-交换机1-交换机6-交换机2-服务器2。但是,由于数据中心网络中存在着大小流现象,ECMP技术会造成链路带宽的倾斜使用,也即部分链路带宽消耗多,部分链路带宽消耗少,如路径1消耗的链路带宽较多,而路径2消耗的链路带宽较少,从而会造成带宽利用率不高。
为了解决上述问题,在相关技术中,通常采用如下两种方式进行负载均衡:第一种是使用显示路由来选择路径,然后采用一个以给定流量矩阵为输入的LP优化器,来调整对应流在这些路径上的目标发送速率。第二种是在流量传输时动态地检测每条流已传输的数据是否超过了预设阈值,若某条流已传输的数据超过了预设阈值,则确定该流为大流。在识别出大流之后,将按照最大最小公平算法为每条流分配带宽,然后根据流速率请求为识别出的大流选择合适的传输路径。
然而,在上述第一种方式中,需要预先获取到流的相关信息,如流的个数或流的大小之后,才能调整流在路径上的目标发送速率,但是在很多情况下,是无法事先获取到流量信息的,因此,第一种方式中的流量控制方法的在很多场景中并不实用,导致可用性不高。在第二种方式中,由于流在传输一段时间之后,才能根据已传输的数据判断该流是否为大流,因此,这种方式将会增大大流和小流共享瓶颈链路的风险,不仅会影响链路带宽的利用率,而且会延长小流的FCT,造成小流的FCT受损。
本申请实施例中考虑到上述问题,提出了一种流量控制方法,第一服务器通过获取待发送的流以及流的五元组信息,并基于网络训练模型,根据流的五元组信息,确定流的类别为大流还是小流,若识别出流为大流,则向第二服务器发送第一消息,该第一消息中包括流的五元组信息和流为大流时对应的置信度。第二服务器根据五元组信息和置信度确定流的目标发送速率和第一发送路径,并将确定出的目标发送速率和第一发送路径发送给第一服务器,第一服务器按照目标发送速率,在第一发送路径中向网络设备发送该流。由于第一服务器在发送流之前,可以通过网络训练模型,识别出流的类别,因此可以快速准确的进行大小流的分类。另外,第二服务器根据五元组信息和置信度,可以确定出大流的目标发送速率和第一发送路径,因此,在针对流量信息不可知的场景中,也可以实现对流进行发送速率和发送路径的分配。进一步的,由于在流为大流时,在发送该流之前,可以为该流分配发送速率和发送路径,从而可以提高带宽的利用率,并降低流的平均FCT。
具体的,图2为本申请实施例提供的流量控制方法的系统架构图,如图2所示,该系统中包括第一服务器和第二服务器,其中,第一服务器可以是图1中的服务器1、服务器2、服务器3或服务器4中的任意一个,第二服务器可以是图1中的服务器5。第一服务器中包括有流分类模块和决策执行模块,第二服务器中包括有流量工程模块。其中,第一服务器根据业务需求生成流之后,会通过流分类模块识别流的类别,如识别该流为大流还是小流。若识别出该流为大流,则将流的五元组信息及该流为大流时的置信度发送给第二服务器中的流量工程模块。第二服务器通过流量工程模块根据五元组信息和置信度,为流分配速率以及路径的选择,并将分配的速率以及选择的路径发送给第一服务器。第一服务器通过决策执行模块按照上述速率,在选择的路径上将该流中包括的数据包发送给网络设备。其中,网络设备包括交换机或者路由器等。
可以理解的是,在服务器5与交换机4连接时,对于服务器1生成的流,若识别出该流为大流时,可以将流的五元组信息及该流为大流时的置信度发送给交换机1,并通过交换机5或者交换机6转发给交换机4,从而通过交换机4将上述五元组信息及该流为大流时的置信度发送给服务器5。对于其他服务器生成的流,处理方式与之类似,此处不再赘述。
需要进行说明的是,上述第二服务器(服务器5)还可以与其他交换机连接。在第二服务器与其他交换机连接时,处理方式和第二服务器与交换机4连接时的处理方式类似,此处不再赘述。
下面,通过具体实施例对本申请的技术方案进行详细说明。需要说明的是,下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
图3为本申请实施例提供的一种流量控制方法的信令流程图。如图3所示,在本实施例中,该流量控制方法可以包括如下步骤:
步骤301:第一服务器获取待发送的流以及流的五元组信息。
在本步骤中,第一服务器可以根据业务需求,生成流以及该流的五元组信息。其中,五元组信息包括源网络协议(Internet Protocol,IP)地址、目的IP地址、协议号、源端口和目的端口。
步骤302:第一服务器基于网络训练模型,根据流的五元组信息,确定流的类别。
其中,类别包括大流或小流。
示例性的,第一服务器可以离线训练网络训练模型。具体的,可以通过输入历史流的五元组信息,对初始的训练模型进行训练,从而得到网络训练模型。其中,网络训练模型可以为随机森林模型。由于随机森林模型中随机性的引入,增加了多样性,使得系统泛化能力较强,抗噪声能力强,对缺失值不敏感的特点,因此,通过随机森林模型识别流的类别,不仅可以提高流的类别识别的准确性,而且可以提高类别识别的效率。
当然,上述网络训练模型也可以为其他训练模型,只要能识别出流是大流还是小流即可,对于网络训练模型的具体形式,本申请实施例在此不做限制。
第一服务器在获取到待发送的流以及流的五元组信息之后,可以将该流的五元组信息输入训练好的网络训练模型中,从而可以输出该流是否为大流。另外,若为大流时,还可以输出该流为大流时的置信度。其中,置信度表示该流为大流时的可靠度或者置信水平。
需要进行说明的是,上述的网络训练模型也可以是由其他设备进行训练,在其他设备训练出网络训练模型之后,第一服务器从该设备中获取已经训练好的网络训练模型,从而识别流的类别。
示例性的,若流对应的数据量超过链路带宽的10%,则确定该流为大流,否则,可以确定该流为小流。
步骤303:若流为大流,则第一服务器向第二服务器发送第一消息,该第一消息中包括流的五元组信息和流为大流时对应的置信度。
在本步骤中,若通过网络训练模型,得到该流为大流,则第一服务器会将该流的五元组信息和从网络训练模型输出的置信度携带在第一消息中发送给第二服务器。
示例性的,若通过网络训练模型,得到该流为小流,则可以按照等价多路径(equal-costmultipath,ECMP)方式确定第二发送路径,并在第二发送路径中发送流。
具体的,若判断出流为小流,说明该流对应的数据量较少,则第一服务器可以直接通过ECMP进行路由,并且不对流做任何限速处理,直接通过确定出的第二发送路径进行流的传输。
在本实施例中,若判断出待发送的流为小流,则可以按照ECMP方式确定第二发送路径,并不对流做限速处理,直接通过该第二发送路径进行流的传输,由此可以提高小流的FCT。
进一步的,为了避免将大流误识别为小流,会允许被判定为小流的流传输一段时间,并且第一服务器会监测该第二发送路径中已发送的数据量,若数据量超过预设值,则将流的类别更新为大流。
具体的,确定为小流的流通过第二发送路径进行传输,在该流的传输过程中,第一服务器会一直监测第二发送路径中已发送的数据量,若一旦发现发送的数据量超过预设值,则会将该流的类别重新更新为大流,并将该流为大流是对应的置信度设置为100%。第二服务器将该流的五元组信息以及设置的置信度封装成控制报文发送给第二服务器。
其中,预设值可以根据实际情况或者经验进行设置,例如可以设置为链路带宽的10%,当然,也可以设置为其他的值,对于预设值的具体取值,本申请实施例在此不做限制。
在本实施例中,第一服务器通过监测第二发送路径中已发送的数据量,若监测出数据量超过预设值,则可以将流的类别更新为大流。这样可以避免将大流误识别为小流的现象,从而可以提高流的类别识别的准确性。
步骤304:第二服务器根据至少一个第一服务器对应的流的五元组信息和置信度,确定每个第一服务器对应的流的目标发送速率和第一发送路径。
在本步骤中,第一服务器的数量可以为至少一个,因此,第二服务器将接收至少一个第一服务器中每个第一服务器发送的第一消息,其中,该第一消息中包括各第一服务器获取的待发送的流的五元组信息和流为大流时对应的置信度。
第二服务器可以根据接收到的至少一个第一服务器对应的流的五元组信息和置信度,分别确定出每个第一服务器对应的待发送的流的目标发送速率和第一发送路径。
在一种可能的实现方式中,第二服务器可以根据在所有源点和目的点之间按照以置信度为权重为每条流分配带宽,直至收敛的方式,为待发送的流分配目标发送速率。示例性的,针对每个第一服务器,第二服务器根据五元组信息,确定至少一个与第一服务器对应的目的端的第三服务器,并根据该五元组信息,分别确定以第一服务器为源端的至少一个第一流和以第一服务器为目的端的至少一个第二流,然后根据至少一个第一流中每个第一流对应的置信度,确定每个第一流的第一发送速率,并根据至少一个第二流中每个第二流对应的置信度,确定每个第二流的第二发送速率,并根据第一发送速率和第二发送速率,确定所述流的目标发送速率。
具体的,对于任意一个第一服务器i,第二服务器可以搜索出所有以第一服务器i为源端的至少一个第一流,并根据至少一个第一流中每个第一流对应的置信度,按照以置信度为权重的方式为每个第一流分配速率,如分配为第一发送速率。
另外,第二服务器还可以根据五元组信息,确定出至少一个与第一服务器i对应的目的端的第三服务器j,其中,与第一服务器i对应的目的端的第三服务器j可以理解为,某个流以第一服务器i为源端,以第三服务器j为目的端进行传输。
对于任意一个第三服务器j,第二服务器可以搜索出所有以第三服务器j为目的端的至少一个第二流,并根据至少一个第二流中每个第二流对应的置信度,按照以置信度为权重的方式为每个第二流分配速率,如分配为第二发送速率,然后根据第一发送速率和第二发送速率,为待发送的流分配目标发送速率。
示例性的,将以第一服务器为源端,且以第三服务器为目的端的第一流对应的第一发送速率,和第二流对应的第二发送速率之间的最小值,确定为目标发送速率。
其中,可以理解的是,将以第一服务器为源端,且以第三服务器为目的端的第一流和第二流为同一条流,在确定出第一发送速率和第二发送速率之后,对于第一服务器发送给第三服务器的任意一条流,其发送速率等于该流对应的第一发送速率和第二发送速率的最小值。
在具体的实现过程中,假设i和j均服务器的索引,Ri为第一服务器i的出口带宽,Uj为第三服务器j的入口带宽,ci,j为第一服务器i发送到第三服务器j的流的置信度,那么第一服务器i发送到第三服务器j的流的速率ri,j可通过下述公式计算:
其中,ci’,j为第一服务器i’发送到第三服务器j的流的置信度,ci,j’为第一服务器i发送到第三服务器j’的流的置信度。
举例来说,若以服务器1为源端,分别向服务器2和服务器3发送流,则服务器2和服务器3为目的端。其中,将服务器1向服务器2发送的流称为流1,将服务器1向服务器3发送的流称为流2,根据流1和流2对应的置信度,分别确定流1和流2对应的第一发送速率。对于目的端的服务器3来说,除了服务器1向服务器3发送流1之外,还有服务器4向服务器3发送流3以及服务器5向服务器3发送流4,根据流1、流3以及流4对应的置信度,分别确定流1、流3以及流4对应的第二发送速率。对于服务器1发送给服务器3的流的目标发送速率,可以取以服务器1为源端,且以服务器3为目的端时的流1对应的第一发送速率和第二发送速率中的最小值,作为流1的目标发送速率。
在本实施例中,通过确定以第一服务器为源端的至少一个第一流中每个第一流的第一发送速率和以第三服务器为目的端的至少一个第二流的第二发送速率,并根据该第一发送速率和第二发送速率,为流分配发送速率,从而可以降低流的平均FCT,并且可以提升链路带宽的利用率。
进一步的,第一服务器在确定出目标发送速率之后,可以根据至少一个第一服务器对应的流的置信度确定第一发送路径。示例性的,可以根据至少一个第一服务器对应的流的置信度,按照置信度从高到低的顺序对至少一个服务器对应的流进行排序,然后按照排序后的流,根据各第一服务器对应的流的五元组信息,依次为各流选择第一发送路径。
具体的,第一服务器可以采用高置信度优先的流路径选择算法,为流选择发送路径。第二服务器根据接收到的多条流的置信度,按照置信度从高到低的顺序对流进行排序,然后依次搜索出一条流f,并为流f选择第一发送路径。
在本实施例中,通过为置信度高的流优先选择发送路径,可以避免相对较小的流过早地占用链路而影响大流的发送,从而可以提高链路利用率。
进一步的,在为排序后的每条流选择第一发送路径时,针对每条流,可以根据该流的五元组信息,确定流的至少一条可用路径中每条可用路径的剩余带宽,确定至少一条可用路径中剩余带宽最多的目标可用路径,若目标可用路径的剩余带宽大于目标发送速率,则将目标可用路径确定为第一发送路径。
具体的,第一服务器为流f选择路径的具体过程如下:在流f的所有可用路径中搜索出剩余带宽最多的目标可用路径x,若目标可用路径x上的剩余带宽大于流f所请求的速率,也即目标可用路径x上的剩余带宽大于流f的目标发送速率,则说明该目标可用路径x的剩余带宽可以发送流f,因此,将目标可用路径x确定为第一发送路径。若目标可用路径x上的剩余带宽不大于流f所请求的速率,也即目标可用路径x上的剩余带宽不大于流f的目标发送速率,则说明目标可用路径x的带宽资源无法发送流f,则可以将流f丢弃。
在本实施例中,由于通过确定流的所有可用路径中剩余带宽最多的目标可用路径,并在目标可用路径的剩余带宽大于目标发送速率时,将目标可用路径确定为第一发送路径,由此可以不仅可以保证流的正确发送,而且可以降低流的平均FCT,并且可以提升链路带宽的利用率。
步骤305:第二服务器向每个第一服务器发送第二消息,该第二消息中包括目标发送速率和第一发送路径。
在本步骤中,第二服务器在确定出每个第一服务器对应的流的目标发送速率和第一发送路径之后,将该目标发送速率和第一发送路径携带在第二消息中发送给对应的第一服务器。
其中,第二服务器可以将目标发送速率和第一发送路径封装为控制报文发送给第一服务器。
步骤306:按照目标发送速率,在第一发送路径中向网络设备发送流。
在本步骤中,第一服务器在接收到第二服务器发送的目标发送速率和第一发送路径之后,可以按照该目标发送速率对待发送的流进行限速,也即控制该流按照目标发送速率进行发送。另外,由于在交换机中已经预先安装好所有的路由规则,第一服务器将根据第一发送路径,识别出路径标识(Identity document,ID),并将该路径ID嵌入数据包包头发送到网络设备,从而可以使交换机按照指定路径转发对应流的数据包。其中,第一服务器中预先存储有发送路径和路径ID之间的对应关系。
其中,网络设备可以包括交换机或者路由器。
示例性的,第一服务器在进行流发送的过程中,还可以监测该流是否发送结束,若该流发送结束,则向第二服务器发送第一标识,并释放用于传输流的带宽,该第一标识用于通知第二服务器流发送结束。
其中,第一标识可以为结束(finish,FIN)标识。
在本实施例中,在监测到流发送结束后,将释放用于传输流的带宽,从而可以提高带宽的利用率。
本申请实施例提供的流量控制方法,第一服务器通过获取待发送的流以及流的五元组信息,并基于网络训练模型,根据流的五元组信息,确定流的类别为大流还是小流,若识别出流为大流,则向第二服务器发送第一消息,该第一消息中包括流的五元组信息和流为大流时对应的置信度。第二服务器根据五元组信息和置信度确定流的目标发送速率和第一发送路径,并将确定出的目标发送速率和第一发送路径发送给第一服务器,第一服务器按照目标发送速率,在第一发送路径中向网络设备发送该流。由于第一服务器在发送流之前,可以通过网络训练模型,识别出流的类别,因此可以快速准确的进行大小流的分类。另外,第二服务器根据五元组信息和置信度,可以确定出大流的目标发送速率和第一发送路径,因此,在针对流量信息不可知的场景中,也可以实现对流进行发送速率和发送路径的分配。进一步的,由于在流为大流时,在发送该流之前,可以为该流分配发送速率和发送路径,从而可以提高带宽的利用率,并降低流的平均FCT。
下面,结合图2的系统架构,对本申请实施例提供的方案进行进一步说明。
图4为本申请实施例提供的一种流量控制方法的流程示意图,如图4所示,该方法包括:
步骤401:第一服务器在生成流之后,通过流分类模块进行流的分类。
步骤402:第一服务器确定流是否为大流。
其中,第一服务器可以根据随机森林模型确定流是否为大流。
若是,则执行步骤403,否则,执行步骤406。
步骤403:第一服务器将流为大流时的置信度和流的五元组信息发送给第二服务器。
步骤404:第二服务器执行流量工程模块,确定流的目标发送速率和第一发送路径,并将目标发送速率和第一发送路径发送给第一服务器。
步骤405:第一服务器执行决策执行模块,并按照流的目标发送速率和第一发送路径,将流发送到网络设备。
其中,执行完步骤405之后,可以直接执行步骤410。
步骤406:第一服务器按照ECMP随机选择路径,并将流对应的数据包打上相应路径标识的标签并发送给网络设备。
步骤407:第一服务器监测小流是否传输结束。
若是,则执行步骤408,否则,执行步骤409。
步骤408:第一服务器向第二服务器发送FIN标识,并释放带宽。
步骤409:第一服务器判断小流的已发数据量是否超过预设值。
若是,则执行步骤403,否则,执行步骤406。
步骤410:第一服务器判断流发送是否结束。
若是,则执行步骤408,否则,执行步骤405。
本申请实施例提供的流量控制方法,第一服务器通过获取待发送的流以及流的五元组信息,并基于网络训练模型,根据流的五元组信息,确定流的类别为大流还是小流,若识别出流为大流,则向第二服务器发送第一消息,该第一消息中包括流的五元组信息和流为大流时对应的置信度。第二服务器根据五元组信息和置信度确定流的目标发送速率和第一发送路径,并将确定出的目标发送速率和第一发送路径发送给第一服务器,第一服务器按照目标发送速率,在第一发送路径中向网络设备发送该流。由于第一服务器在发送流之前,可以通过网络训练模型,识别出流的类别,因此可以快速准确的进行大小流的分类。另外,第二服务器根据五元组信息和置信度,可以确定出大流的目标发送速率和第一发送路径,因此,在针对流量信息不可知的场景中,也可以实现对流进行发送速率和发送路径的分配。进一步的,由于在流为大流时,在发送该流之前,可以为该流分配发送速率和发送路径,从而可以提高带宽的利用率,并降低流的平均FCT。
图5为本申请实施例提供的一种流量控制装置的结构示意图,其中,流量控制装置50可以是前述实施例中的第一服务器。参见图5,该装置包括:处理单元51、发送单元52和接收单元53,其中:
处理单元51,用于获取待发送的流以及所述流的五元组信息;
所述处理单元51,还用于基于网络训练模型,根据所述流的五元组信息,确定所述流的类别,所述类别包括大流或小流;
发送单元52,用于在所述流为大流时,向第二服务器发送第一消息,所述第一消息中包括所述流的五元组信息和所述流为大流时对应的置信度,所述第一消息用于指示所述第二服务器根据所述五元组信息和所述置信度确定所述流的目标发送速率和第一发送路径;
接收单元53,用于接收所述第二服务器发送的第二消息,所述第二消息中包括所述目标发送速率和所述第一发送路径;
所述发送单元52,还用于按照所述目标发送速率,在所述第一发送路径中向网络设备发送所述流。
示例性的,所述处理单元51,还用于在所述流为小流时,按照等价多路径ECMP方式确定第二发送路径;
所述发送单元52,还用于在所述第二发送路径中发送所述流。
示例性的,所述处理单元51,还用于监测所述第二发送路径中已发送的数据量;
所述处理单元51,还用于在所述数据量超过预设值时,将所述流的类别更新为大流。
示例性的,所述网络训练模型为随机森林模型。
示例性的,所述处理单元51,还用于监测所述流是否发送结束;
所述发送单元52,还用于在所述流发送结束时,向所述第二服务器发送第一标识,所述第一标识用于通知所述第二服务器所述流发送结束;
所述处理单元51,还用于释放用于传输所述流的带宽。
示例性的,所述处理单元51,还用于在所述流对应的数据量超过链路带宽的10%时,确定所述流为大流。
本申请实施例提供的流量控制装置,可以执行上述对应的方法实施例,例如可以是图3-图4所示的实施例,其实现原理和技术效果类似,在此不再赘述。
图6为本申请实施例提供的一种流量控制装置的结构示意图,其中,流量控制装置60可以是前述实施例中的第二服务器。参见图6,该装置包括:处理单元61、发送单元62和接收单元63,其中:
接收单元63,用于接收至少一个第一服务器中每个第一服务器发送的第一消息,所述第一消息中包括所述第一服务器获取的待发送的流的五元组信息和所述流为大流时对应的置信度,所述流为大流;
处理单元61,用于根据所述至少一个第一服务器对应的流的五元组信息和所述置信度,确定每个所述第一服务器对应的流的目标发送速率和第一发送路径;
发送单元62,用于向每个所述第一服务器发送第二消息,所述第二消息中包括目标发送速率和所述第一发送路径;所述第二消息用于指示所述第一服务器按照所述目标发送速率,在所述第一发送路径中向第三服务器发送所述流。
示例性的,所述处理单元61,具体用于:
针对每个第一服务器,根据所述五元组信息,确定至少一个与所述第一服务器对应的目的端的第三服务器;
根据所述五元组信息,分别确定以所述第一服务器为源端的至少一个第一流和以所述第三服务器为目的端的至少一个第二流;
根据所述至少一个第一流中每个第一流对应的置信度,确定第一流的第一发送速率,并根据所述至少一个第二流中每个第二流对应的置信度,确定所述每个第二流的第二发送速率;
根据所述第一发送速率和所述第二发送速率,确定所述第一服务器发送给所述第三服务器的流的目标发送速率。
示例性的,所述处理单元61,具体用于:
将以第一服务器为源端,且以第三服务器为目的端的第一流对应的第一发送速率,和第二流对应的第二发送速率之间的最小值,确定为所述目标发送速率。
示例性的,所述处理单元61,具体用于:
根据所述至少一个第一服务器对应的流的置信度,按照置信度从高到低的顺序对所述至少一个服务器对应的流进行排序;
按照排序后的流,根据各所述第一服务器对应的流的五元组信息,依次为各流选择第一发送路径。
示例性的,所述处理单元61,具体用于:
针对每条流,根据所述流的五元组信息,确定所述流的至少一条可用路径中每条可用路径的剩余带宽;
确定至少一条可用路径中剩余带宽最多的目标可用路径;
若所述目标可用路径的剩余带宽大于所述目标发送速率,则将所述目标可用路径确定为所述流的第一发送路径。
本申请实施例提供的流量控制装置,可以执行上述对应的方法实施例,例如可以是图3-图4所示的实施例,其实现原理和技术效果类似,在此不再赘述。
需要说明的是,应理解以上装置的各个单元的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些单元可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分单元通过软件通过处理元件调用的形式实现,部分单元通过硬件的形式实现。例如,接收单元可以为单独设立的处理元件,也可以集成在该装置的某一个芯片中实现,此外,也可以以程序的形式存储于装置的存储器中,由该装置的某一个处理元件调用并执行该接收单元的功能。其它单元的实现与之类似。此外这些单元全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个单元可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。此外,以上接收单元是一种控制接收的单元,可以通过该装置的接收装置,例如天线和射频装置接收信息。
以上这些单元可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(application specific integrated circuit,ASIC),或,一个或多个微处理器(digital singnal processor,DSP),或,一个或者多个现场可编程门阵列(field programmable gate array,FPGA)等。再如,当以上某个单元通过处理元件调度程序的形式实现时,该处理元件可以是通用处理器,例如中央处理器(central processingunit,CPU)或其它可以调用程序的处理器。再如,这些单元可以集成在一起,以片上系统(system-on-a-chip,SOC)的形式实现。
参见图7,图7是本申请实施例提供的一种服务器的结构示意图。如图7所示,该服务器700包括:处理器710、通信接口720以及存储器730,所述处理器710、通信接口720以及存储器730通过内部总线740相互连接。
所述处理器710可以由一个或者多个通用处理器构成,例如中央处理器(centralprocessing unit,CPU),或者CPU和硬件芯片的组合。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC)、可编程逻辑器件(programmablelogic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complexprogrammable logic device,CPLD)、现场可编程逻辑门阵列(field-programmable gatearray,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合。
总线740可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。所述总线740可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但不表示仅有一根总线或一种类型的总线。
存储器730可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM);存储器730也可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-only memory,ROM)、快闪存储器(flash memory)、硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器730还可以包括上述种类的组合。存储器730可用于存储程序代码和数据,以便于处理器710调用存储器730中存储的程序代码和数据以实现上述接收单元53或63、处理单元51或61和发送单元52或62的功能。程序代码可以是用来实现图5或图6所示的流量控制装置的功能模块,或者用于实现图3-图4所示的方法实施例中以流量控制装置为执行主体的方法步骤。
此外,上述实施例中的流量控制装置50或60也可以由多个服务器700实现。多个服务器700包括多个处理器710和多个存储器730。多个处理器710协同实现如图5或图6中所示的接收单元53或63、处理单元51或61和发送单元52或62。
或者,以上各个单元的部分或全部也可以通过集成电路的形式内嵌于该服务器的某一个芯片上来实现。且它们可以单独实现,也可以集成在一起。即以上这些单元可以被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(applicationspecific integrated circuit,ASIC),或,一个或多个微处理器(digital singnalprocessor,DSP),或,一个或者多个现场可编程门阵列(field programmable gate array,FPGA)等。
本申请还提供一种流量控制装置,包括:处理器和存储器,所述存储器中存储有计算机程序,所述处理器执行所述存储器中存储的计算机程序,以使所述装置执行前述任一实施例提供的流量控制方法。
本申请还提供一种流量控制装置,包括:处理器和接口电路;所述接口电路,用于接收代码指令并传输至所述处理器;所述处理器,用于运行所述代码指令以执行前述任一实施例提供的流量控制方法。
本申请还提供一种存储介质,包括:可读存储介质和计算机程序,所述计算机程序用于实现前述任一实施例提供的流量控制方法。
本申请还提供一种程序产品,该程序产品包括计算机程序(即执行指令),该计算机程序存储在可读存储介质中。服务器的至少一个处理器可以从可读存储介质读取该计算机程序,至少一个处理器执行该计算机程序使得服务器实施前述各种实施方式提供的流量控制方法。
本申请实施例还提供了一种服务器,包括至少一个存储元件和至少一个处理元件、所述至少一个存储元件用于存储程序,该程序被执行时,使得所述服务器执行上述任一实施例中的服务器的操作。
实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一可读取存储器中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储器(存储介质)包括:只读存储器(英文:read-only memory,ROM)、RAM、快闪存储器、硬盘、固态硬盘、磁带(magnetic tape)、软盘(floppy disk)、光盘(optical disc)及其任意组合。

Claims (23)

1.一种流量控制方法,其特征在于,应用于第一服务器,所述方法包括:
获取待发送的流以及所述流的五元组信息;
基于网络训练模型,根据所述流的五元组信息,确定所述流的类别,所述类别包括大流或小流;
若所述流为大流,则向第二服务器发送第一消息,所述第一消息中包括所述流的五元组信息和所述流为大流时对应的置信度,所述第一消息用于指示所述第二服务器根据所述五元组信息和所述置信度确定所述流的目标发送速率和第一发送路径,其中,所述置信度表示所述流为大流时的可靠度或者置信水平,所述目标发送速率是基于以所述第一服务器为源端的至少一个第一流的发送速率确定,所述第一流的发送速率是所述第二服务器按照以置信度为权重的方式为第一流分配的速率,所述第一发送路径为所述第二服务器根据所述至少一个第一服务器对应的流的置信度,按照置信度从高到低的顺序对所述至少一个服务器对应的流进行排序;按照排序后的流,根据各所述第一服务器对应的流的五元组信息,依次为各流选择的发送路径;
接收所述第二服务器发送的第二消息,所述第二消息中包括所述目标发送速率和所述第一发送路径;
按照所述目标发送速率,在所述第一发送路径中向网络设备发送所述流。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述流为小流,则按照等价多路径ECMP方式确定第二发送路径;
在所述第二发送路径中发送所述流。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
监测所述第二发送路径中已发送的数据量;
若所述数据量超过预设值,则将所述流的类别更新为大流。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述网络训练模型为随机森林模型。
5.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
监测所述流是否发送结束;
若所述流发送结束,则向所述第二服务器发送第一标识,并释放用于传输所述流的带宽,所述第一标识用于通知所述第二服务器所述流发送结束。
6.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
若所述流对应的数据量超过链路带宽的10%,则确定所述流为大流。
7.一种流量控制方法,其特征在于,应用于第二服务器,所述方法包括:
接收至少一个第一服务器中每个第一服务器发送的第一消息,所述第一消息中包括所述第一服务器获取的待发送的流的五元组信息和所述流为大流时对应的置信度,所述流为大流;
根据所述至少一个第一服务器对应的流的五元组信息和所述置信度,确定每个所述第一服务器对应的流的目标发送速率和第一发送路径,其中,所述置信度表示所述流为大流时的可靠度或者置信水平,所述目标发送速率是基于以所述第一服务器为源端的至少一个第一流的发送速率确定,所述第一流的发送速率是所述第二服务器按照以置信度为权重的方式为第一流分配的速率;
向每个所述第一服务器发送第二消息,所述第二消息中包括目标发送速率和所述第一发送路径;所述第二消息用于指示所述第一服务器按照所述目标发送速率,在所述第一发送路径中向第三服务器发送所述流;
所述根据所述至少一个第一服务器对应的流的五元组信息和所述置信度,确定所述流的第一发送路径,包括:
根据所述至少一个第一服务器对应的流的置信度,按照置信度从高到低的顺序对所述至少一个服务器对应的流进行排序;
按照排序后的流,根据各所述第一服务器对应的流的五元组信息,依次为各流选择第一发送路径。
8.根据权利要求7所述的方法,其特征在于,根据所述至少一个第一服务器对应的流的五元组信息和所述置信度,确定所述流的目标发送速率,包括:
针对每个第一服务器,根据所述五元组信息,确定至少一个与所述第一服务器对应的目的端的第三服务器;
根据所述五元组信息,分别确定以所述第一服务器为源端的至少一个第一流和以所述第三服务器为目的端的至少一个第二流;
根据所述至少一个第一流中每个第一流对应的置信度,确定第一流的第一发送速率,并根据所述至少一个第二流中每个第二流对应的置信度,确定所述每个第二流的第二发送速率;
根据所述第一发送速率和所述第二发送速率,确定所述第一服务器发送给所述第三服务器的流的目标发送速率。
9.根据权利要求8所述的方法,其特征在于,所述根据所述第一发送速率和所述第二发送速率,确定所述第一服务器发送给所述第三服务器的流的目标发送速率,包括:
将以第一服务器为源端,且以第三服务器为目的端的第一流对应的第一发送速率,和第二流对应的第二发送速率之间的最小值,确定为所述目标发送速率。
10.根据权利要求7所述的方法,其特征在于,所述按照排序后的流,根据各所述第一服务器对应的流的五元组信息,依次为各流选择第一发送路径,包括:
针对每条流,根据所述流的五元组信息,确定所述流的至少一条可用路径中每条可用路径的剩余带宽;
确定至少一条可用路径中剩余带宽最多的目标可用路径;
若所述目标可用路径的剩余带宽大于所述目标发送速率,则将所述目标可用路径确定为所述流的第一发送路径。
11.一种流量控制装置,其特征在于,包括:
处理单元,用于获取待发送的流以及所述流的五元组信息;
所述处理单元,还用于基于网络训练模型,根据所述流的五元组信息,确定所述流的类别,所述类别包括大流或小流;
发送单元,用于在所述流为大流时,向第二服务器发送第一消息,所述第一消息中包括所述流的五元组信息和所述流为大流时对应的置信度,所述第一消息用于指示所述第二服务器根据所述五元组信息和所述置信度确定所述流的目标发送速率和第一发送路径,其中,所述置信度表示所述流为大流时的可靠度或者置信水平,所述目标发送速率是基于以第一服务器为源端的至少一个第一流的发送速率确定,所述第一流的发送速率是所述第二服务器按照以置信度为权重的方式为第一流分配的速率,所述第一发送路径为所述第二服务器根据所述至少一个第一服务器对应的流的置信度,按照置信度从高到低的顺序对所述至少一个服务器对应的流进行排序;按照排序后的流,根据各所述第一服务器对应的流的五元组信息,依次为各流选择的发送路径;
接收单元,用于接收所述第二服务器发送的第二消息,所述第二消息中包括所述目标发送速率和所述第一发送路径;
所述发送单元,还用于按照所述目标发送速率,在所述第一发送路径中向网络设备发送所述流。
12.根据权利要求11所述的装置,其特征在于,
所述处理单元,还用于在所述流为小流时,按照等价多路径ECMP方式确定第二发送路径;
所述发送单元,还用于在所述第二发送路径中发送所述流。
13.根据权利要求12所述的装置,其特征在于,
所述处理单元,还用于监测所述第二发送路径中已发送的数据量;
所述处理单元,还用于在所述数据量超过预设值时,将所述流的类别更新为大流。
14.根据权利要求11-13任一项所述的装置,其特征在于,所述网络训练模型为随机森林模型。
15.根据权利要求11-13任一项所述的装置,其特征在于,
所述处理单元,还用于监测所述流是否发送结束;
所述发送单元,还用于在所述流发送结束时,向所述第二服务器发送第一标识,所述第一标识用于通知所述第二服务器所述流发送结束;
所述处理单元,还用于释放用于传输所述流的带宽。
16.根据权利要求11-13任一项所述的装置,其特征在于,所述处理单元,还用于在所述流对应的数据量超过链路带宽的10%时,确定所述流为大流。
17.一种流量控制装置,其特征在于,包括:
接收单元,用于接收至少一个第一服务器中每个第一服务器发送的第一消息,所述第一消息中包括所述第一服务器获取的待发送的流的五元组信息和所述流为大流时对应的置信度,所述流为大流;
处理单元,用于根据所述至少一个第一服务器对应的流的五元组信息和所述置信度,确定每个所述第一服务器对应的流的目标发送速率和第一发送路径,其中,所述置信度表示所述流为大流时的可靠度或者置信水平,所述目标发送速率是基于以所述第一服务器为源端的至少一个第一流的发送速率确定,所述第一流的发送速率是第二服务器按照以置信度为权重的方式为第一流分配的速率;
发送单元,用于向每个所述第一服务器发送第二消息,所述第二消息中包括目标发送速率和所述第一发送路径;所述第二消息用于指示所述第一服务器按照所述目标发送速率,在所述第一发送路径中向第三服务器发送所述流;
所述处理单元,具体用于:
根据所述至少一个第一服务器对应的流的置信度,按照置信度从高到低的顺序对所述至少一个服务器对应的流进行排序;
按照排序后的流,根据各所述第一服务器对应的流的五元组信息,依次为各流选择第一发送路径。
18.根据权利要求17所述的装置,其特征在于,所述处理单元,具体用于:
针对每个第一服务器,根据所述五元组信息,确定至少一个与所述第一服务器对应的目的端的第三服务器;
根据所述五元组信息,分别确定以所述第一服务器为源端的至少一个第一流和以所述第三服务器为目的端的至少一个第二流;
根据所述至少一个第一流中每个第一流对应的置信度,确定第一流的第一发送速率,并根据所述至少一个第二流中每个第二流对应的置信度,确定所述每个第二流的第二发送速率;
根据所述第一发送速率和所述第二发送速率,确定所述第一服务器发送给所述第三服务器的流的目标发送速率。
19.根据权利要求18所述的装置,其特征在于,所述处理单元,具体用于:
将以第一服务器为源端,且以第三服务器为目的端的第一流对应的第一发送速率,和第二流对应的第二发送速率之间的最小值,确定为所述目标发送速率。
20.根据权利要求17所述的装置,其特征在于,所述处理单元,具体用于:
针对每条流,根据所述流的五元组信息,确定所述流的至少一条可用路径中每条可用路径的剩余带宽;
确定至少一条可用路径中剩余带宽最多的目标可用路径;
若所述目标可用路径的剩余带宽大于所述目标发送速率,则将所述目标可用路径确定为所述流的第一发送路径。
21.一种流量控制装置,其特征在于,所述装置包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器执行所述存储器中存储的计算机程序,以使所述装置执行如权利要求1至10任一项所述的方法。
22.一种流量控制装置,其特征在于,包括:处理器和接口电路;
所述接口电路,用于接收代码指令并传输至所述处理器;
所述处理器,用于运行所述代码指令以执行如权利要求1至10中任一项所述的方法。
23.一种可读存储介质,用于存储有指令,当所述指令被执行时,使如权利要求1至10中任一项所述的方法被实现。
CN202010591464.XA 2020-06-24 2020-06-24 流量控制方法和装置 Active CN113839884B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010591464.XA CN113839884B (zh) 2020-06-24 2020-06-24 流量控制方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010591464.XA CN113839884B (zh) 2020-06-24 2020-06-24 流量控制方法和装置

Publications (2)

Publication Number Publication Date
CN113839884A CN113839884A (zh) 2021-12-24
CN113839884B true CN113839884B (zh) 2023-08-22

Family

ID=78964879

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010591464.XA Active CN113839884B (zh) 2020-06-24 2020-06-24 流量控制方法和装置

Country Status (1)

Country Link
CN (1) CN113839884B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117640503B (zh) * 2024-01-22 2024-04-30 北京天维信通科技股份有限公司 融合BRouter技术与智能路径技术的流量优化方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102656848A (zh) * 2010-11-09 2012-09-05 华为技术有限公司 数据包的传输方法及装置
CN106533960A (zh) * 2016-12-23 2017-03-22 重庆邮电大学 一种基于Fat‑Tree结构的数据中心网络路由方法
CN108768876A (zh) * 2018-06-05 2018-11-06 清华大学深圳研究生院 一种面向机器学习框架的流量调度方法
CN111245722A (zh) * 2020-01-20 2020-06-05 重庆邮电大学 一种基于遗传算法的sdn数据中心网络流转发方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7545978B2 (en) * 2005-07-01 2009-06-09 International Business Machines Corporation Methods and apparatus for filtering video packets for large-scale video stream monitoring
US10567300B2 (en) * 2017-11-22 2020-02-18 Cisco Technology, Inc. Layer 3 fair rate congestion control notification

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102656848A (zh) * 2010-11-09 2012-09-05 华为技术有限公司 数据包的传输方法及装置
CN106533960A (zh) * 2016-12-23 2017-03-22 重庆邮电大学 一种基于Fat‑Tree结构的数据中心网络路由方法
CN108768876A (zh) * 2018-06-05 2018-11-06 清华大学深圳研究生院 一种面向机器学习框架的流量调度方法
CN111245722A (zh) * 2020-01-20 2020-06-05 重庆邮电大学 一种基于遗传算法的sdn数据中心网络流转发方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种基于SDN的多路径流调度机制;臧韦菲等;《计算机应用研究》;20170614(第06期);第223-227页 *

Also Published As

Publication number Publication date
CN113839884A (zh) 2021-12-24

Similar Documents

Publication Publication Date Title
US11677851B2 (en) Accelerated network packet processing
CN107852413B (zh) 用于将网络分组处理卸载到gpu的网络设备、方法与存储介质
US9185047B2 (en) Hierarchical profiled scheduling and shaping
US7860009B2 (en) Providing backpressure flow control to specific traffic flows
US8619565B1 (en) Integrated circuit for network delay and jitter testing
US10374945B1 (en) Application-centric method to find relative paths
CN108965121B (zh) 传输数据的方法、主机和交换机
US20220052950A1 (en) Service Function Chaining Congestion Tracking
CN113839884B (zh) 流量控制方法和装置
CN108093047B (zh) 数据发送方法、装置、电子设备及中间件系统
US10887234B1 (en) Programmatic selection of load balancing output amongst forwarding paths
KR101952187B1 (ko) 서비스 노드 능력 처리 방법, 장치, 서비스 분류기 및 서비스 제어기
KR101932138B1 (ko) 데이터센터 네트워크의 부하 균형을 위한 신용 기반 다중경로 데이터 전송 방법
US20190334827A1 (en) Automatically Cycling Among Packet Traffic Flows Subjecting Them to Varying Drop Probabilities in a Packet Network
CN111404839A (zh) 报文处理方法和装置
US9641441B2 (en) Learning information associated with shaping resources and virtual machines of a cloud computing environment
CN114513408A (zh) 一种ecn门限配置方法及装置
US11032206B2 (en) Packet-content based WRED protection
US8169915B1 (en) Method and apparatus for network load balancing using indirection RAM during classification
US9922000B2 (en) Packet buffer with dynamic bypass
KR102548926B1 (ko) 가상 네트워크 기능 조율 방법 및 그 장치
US20230412505A1 (en) System and method for transmitting a data packet
JP7251060B2 (ja) 情報処理装置、情報処理システム及び情報処理プログラム
US20230216805A1 (en) Method of Managing Data Transmission for Ensuring Per-Flow Fair Bandwidth Sharing
CN117978739A (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