CN117579543B - 一种数据流分割方法、装置、设备和计算机可读存储介质 - Google Patents
一种数据流分割方法、装置、设备和计算机可读存储介质 Download PDFInfo
- Publication number
- CN117579543B CN117579543B CN202410059683.1A CN202410059683A CN117579543B CN 117579543 B CN117579543 B CN 117579543B CN 202410059683 A CN202410059683 A CN 202410059683A CN 117579543 B CN117579543 B CN 117579543B
- Authority
- CN
- China
- Prior art keywords
- data stream
- path group
- target
- data
- link
- 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
- 238000000034 method Methods 0.000 title claims abstract description 73
- 230000011218 segmentation Effects 0.000 title claims abstract description 57
- 238000003860 storage Methods 0.000 title claims abstract description 21
- 230000005540 biological transmission Effects 0.000 claims abstract description 62
- 241000406668 Loxodonta cyclotis Species 0.000 claims description 22
- 238000004364 calculation method Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 11
- 238000000638 solvent extraction Methods 0.000 claims description 5
- 230000000694 effects Effects 0.000 description 13
- 238000012544 monitoring process Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 description 5
- 208000035475 disorder Diseases 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000005520 cutting process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 235000008694 Humulus lupulus Nutrition 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000013341 scale-up Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- 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/24—Multipath
-
- 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/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- 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/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2441—Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
-
- 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/29—Flow control; Congestion control using a combination of thresholds
-
- 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/43—Assembling or disassembling of packets, e.g. segmentation and reassembly [SAR]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/15—Interconnection of switching modules
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及数据传输技术领域,公开了一种数据流分割方法、装置、设备和计算机可读存储介质,依据各等价多路径组的链路状态信息,确定出各等价多路径组的流量阈值。根据各等价多路径组的流量阈值以及源设备传输的数据流的流量信息,确定出数据流所属的类别和目标等价多路径组。按照目标等价多路径组当前对应的时间间隔,对待传输数据流进行分割。将分割得到的子数据流通过目标等价多路径组中对应的链路传输至目的设备;每完成一个子数据流的传输,则基于子数据流的带宽与目标等价多路径组的流量阈值的大小关系,调整目标等价多路径组当前对应的时间间隔。通过调节不同等价多路径组的时间间隔的大小,实现了自适应的负载分担。
Description
技术领域
本发明涉及数据传输技术领域,特别是涉及一种数据流分割方法、装置、设备和计算机可读存储介质。
背景技术
数据中心中存在大量的交换机,交换机的互相连通会让网络存在多条等价路径。在交换机中,通常用等价多路径(Equal Cost Multi Path,ECMP)算法来进行流量分配,ECMP算法可以充分利用网络链路的带宽,对源节点、目的节点之间的多条等价路径均匀分配网络中的流量。ECMP主要采用哈希(HASH)算法对数据流进行分配,对所有流一视同仁,并不会区分大象流与老鼠流,因此当一个路径同时分配了老鼠流与大象流的时候,大象流携带的巨大数据量可能会占满交换机的缓存区,从而使老鼠流的传输时延变长,极易造成网络的延时甚至拥塞。
为解决大小流问题,目前方式是基于流切分的机制,对一个完整的数据流(flow)进行切割,将较大的数据流分割为多个流簇(flowlet),从而提高细粒度,使交换机能够实现更好的负载分担效果。
流簇的切割是根据flow中各数据包(packet)之间时间间隔的大小来进行,这个时间间隔(flowlet_timeout)是由人为来设置的。当时间间隔设置过小,flow会被过度切割,增加了packet之间乱序的风险,从而降低了网络传输效率。当时间间隔设置过大,对于flow的分割不够,对于细粒度的提升有限,也无法达到较好的负载分担效果。
可见,如何提升负载分担效果,保证网络的传输性能,是本领域技术人员需要解决的问题。
发明内容
本发明实施例的目的是提供一种数据流分割方法、装置、设备和计算机可读存储介质,可以解决负载分担效果差的问题。
为解决上述技术问题,本发明实施例提供一种数据流分割方法,包括:
依据各等价多路径组的链路状态信息,确定出各所述等价多路径组的流量阈值;
根据各所述等价多路径组的流量阈值以及源设备传输的数据流的流量信息,确定出所述数据流所属的类别和目标等价多路径组;
按照所述目标等价多路径组当前对应的时间间隔,对待传输数据流进行分割;
将分割得到的子数据流通过所述目标等价多路径组中对应的链路传输至目的设备;
每完成一个所述子数据流的传输,则基于所述子数据流的带宽与所述目标等价多路径组的流量阈值的大小关系,调整所述目标等价多路径组当前对应的时间间隔。
一方面,所述链路状态信息包括各链路的固有带宽、链路比特率以及报文往返时间;
所述依据各等价多路径组的链路状态信息,确定出各所述等价多路径组的流量阈值包括:
根据第一等价多路径组中各第一链路的固有带宽和链路比特率,确定出各所述第一链路的带宽利用率;其中,所述第一等价多路径组为所有所述等价多路径组中的任意一个等价多路径组;所述第一链路为所述第一等价多路径组中的任意一条链路;
根据所述第一等价多路径组中包含的链路总数、各所述第一链路的带宽利用率和固有带宽,确定出所述第一等价多路径组的平均剩余可用带宽;
基于所述平均剩余可用带宽与设定的阈值系数,确定出所述第一等价多路径组的流量阈值。
一方面,所述根据所述第一等价多路径组中包含的链路总数、各所述第一链路的带宽利用率和固有带宽,确定出所述第一等价多路径组的平均剩余可用带宽包括:
调用可用带宽计算公式,对所述第一等价多路径组中包含的链路总数、各所述第一链路的带宽利用率和固有带宽进行分析,以确定出所述第一等价多路径组的平均剩余可用带宽;其中,所述可用带宽计算公式如下:
;
其中,表示所述第一等价多路径组的平均剩余可用带宽,C l 表示所述第一等价多路径组中第l条链路的剩余可用带宽,N表示所述第一等价多路径组中包含的链路总数,α l 表示所述第一等价多路径组中第l条链路的带宽利用率,Q l 表示所述第一等价多路径组中第l条链路的固有带宽。
一方面,所述基于所述平均剩余可用带宽与设定的阈值系数,确定出所述第一等价多路径组的流量阈值包括:
根据所述第一等价多路径组中各第一链路的固有带宽,确定出所述第一等价多路径组的固有带宽;
根据所述第一等价多路径组的固有带宽与数据中心网络数据流阈值,确定出所述阈值系数;
将所述平均剩余可用带宽与所述阈值系数的乘积值作为所述第一等价多路径组的流量阈值。
一方面,所述流量信息包括五元组信息和带宽;所述五元组信息包括源地址、源端口、目的地址、目的端口和传输层协议;
所述根据各所述等价多路径组的流量阈值以及源设备传输的数据流的流量信息,确定出所述数据流所属的类别和目标等价多路径组包括:
依据所述源设备传输的当前报文的五元组信息,确定出所述当前报文所属的数据流;
根据各目的地址和各所述等价多路径组的对应关系,确定出所述数据流所属的所述目标等价多路径组;
基于所述数据流的带宽与所述目标等价多路径组的流量阈值,确定出所述数据流的类别;
在所述数据流的类别为大象流的情况下,执行所述按照所述目标等价多路径组当前对应的时间间隔,对待传输数据流进行分割的步骤。
一方面,所述依据所述源设备传输的当前报文的五元组信息,确定出所述当前报文所属的数据流包括:
将所述源设备传输的当前报文划分到与其具有相同五元组信息的数据流中。
一方面,所述基于所述数据流的带宽与所述目标等价多路径组的流量阈值,确定出所述数据流的类别包括:
判断所述数据流的带宽是否大于所述目标等价多路径组的流量阈值;
在所述数据流的带宽大于所述目标等价多路径组的流量阈值的情况下,将所述数据流的类别判定为大象流;
在所述数据流的带宽小于或等于所述目标等价多路径组的流量阈值的情况下,将所述数据流的类别判定为老鼠流。
一方面,还包括:
在所述数据流的类别为老鼠流的情况下,将所述数据流通过所述目标等价多路径组中对应的链路传输至所述目的设备。
一方面,所述将所述数据流通过所述目标等价多路径组中对应的链路传输至所述目的设备包括:
对所述数据流的五元组信息进行哈希运算,以得到数据流运算结果;
基于所述数据流运算结果,确定出所述目标等价多路径组中与所述数据流匹配的链路;
将所述数据流通过其匹配的链路传输至所述目的设备。
一方面,所述按照所述目标等价多路径组当前对应的时间间隔,对待传输数据流进行分割包括:
将所述数据流中未传输至所述目的设备的剩余数据流作为所述待传输数据流;
按照时间顺序从所述待传输数据流中分割出在所述时间间隔内的数据包,将所述数据包作为所述子数据流。
一方面,在所述基于所述子数据流的带宽与所述目标等价多路径组的流量阈值的大小关系,调整所述目标等价多路径组当前对应的时间间隔之后,还包括:
判断所述数据流中是否存在未传输至所述目的设备的剩余数据流;
在所述数据流中存在未传输至所述目的设备的剩余数据流的情况下,将所述剩余数据流作为所述待传输数据流,并执行所述按照时间顺序从所述待传输数据流中分割出在所述时间间隔内的数据包,将所述数据包作为所述子数据流的步骤。
一方面,所述按照时间顺序从所述待传输数据流中分割出在所述时间间隔内的数据包,将所述数据包作为所述子数据流包括:
按照时间顺序从所述待传输数据流中读取当前数据包,并开始计时;
判断计时时间是否达到所述时间间隔;
在所述计时时间未达到所述时间间隔的情况下,判断在所述时间间隔内所述待传输数据流中是否存在与所述当前数据包相邻的下一个数据包;
在所述时间间隔内所述待传输数据流中存在与所述当前数据包相邻的下一个数据包的情况下,则将所述下一个数据包作为所述当前数据包,并重新开始计时,执行所述判断计时时间是否达到所述时间间隔的步骤;
在所述计时时间达到所述时间间隔或者在所述时间间隔内所述待传输数据流中不存在与所述当前数据包相邻的下一个数据包的情况下,则将所有所述当前数据包作为所述子数据流。
一方面,针对于所述目标等价多路径组当前对应的时间间隔的确定方式,所述方法包括:
基于所述目标等价多路径组中各链路当前对应的报文往返时间,确定出所述目标等价多路径组的时间间隔。
一方面,在所述基于所述目标等价多路径组中各链路当前对应的报文往返时间,确定出所述目标等价多路径组的时间间隔之前,还包括:
判断所述目标等价多路径组中各链路当前对应的报文往返时间是否发生变化;
在所述目标等价多路径组中至少一条链路的报文往返时间发生变化的情况下,执行所述基于所述目标等价多路径组中各链路当前对应的报文往返时间,确定出所述目标等价多路径组的时间间隔的步骤。
一方面,所述基于所述目标等价多路径组中各链路当前对应的报文往返时间,确定出所述目标等价多路径组的时间间隔包括:
选取所述目标等价多路径组中各链路当前对应的报文往返时间中取值最大的报文往返时间;
基于所述取值最大的报文往返时间,确定出报文传输时间;
随机选取大于或等于所述报文传输时间的数值作为所述目标等价多路径组的时间间隔。
一方面,所述基于所述取值最大的报文往返时间,确定出报文传输时间包括:
将所述取值最大的报文往返时间除以2得到的数值作为所述报文传输时间。
一方面,在所述目标等价多路径组的时间间隔为最大的报文往返时间除以2得到的数值的情况下,所述基于所述子数据流的带宽与所述目标等价多路径组的流量阈值的大小关系,调整所述目标等价多路径组当前对应的时间间隔包括:
判断所述子数据流的带宽是否大于或等于所述目标等价多路径组的流量阈值;
在所述子数据流的带宽大于或等于所述目标等价多路径组的流量阈值的情况下,保持所述目标等价多路径组当前对应的时间间隔不变;
在所述子数据流的带宽小于所述目标等价多路径组的流量阈值的情况下,基于调整系数调大所述目标等价多路径组当前对应的时间间隔。
一方面,所述将分割得到的子数据流通过所述目标等价多路径组中对应的链路传输至目的设备包括:
将所述子数据流的五元组信息增加扰动值后进行哈希运算,以得到子数据流运算结果;其中,不同子数据流对应不同的扰动值;
基于所述子数据流运算结果,确定出所述目标等价多路径组中与所述子数据流所匹配的目标链路;
将所述子数据流通过所述目标链路转发至所述目的设备。
一方面,所述将所述子数据流的五元组信息增加扰动值后进行哈希运算,以得到子数据流运算结果包括:
在分割得到所述子数据流的情况下,将上一次子数据流对应的扰动值加一后与所述子数据流的五元组信息相加,以得到扰动后的五元组信息;
对所述扰动后的五元组信息进行哈希运算,以得到所述子数据流运算结果。
本发明实施例还提供了一种数据流分割装置,包括第一确定单元、第二确定单元、分割单元、传输单元和调整单元;
所述第一确定单元,用于依据各等价多路径组的链路状态信息,确定出各所述等价多路径组的流量阈值;
所述第二确定单元,用于根据各所述等价多路径组的流量阈值以及源设备传输的数据流的流量信息,确定出所述数据流所属的类别和目标等价多路径组;
所述分割单元,用于按照所述目标等价多路径组当前对应的时间间隔,对待传输数据流进行分割;
所述传输单元,用于将分割得到的子数据流通过所述目标等价多路径组中对应的链路传输至目的设备;
所述调整单元,用于每完成一个所述子数据流的传输,则基于所述子数据流的带宽与所述目标等价多路径组的流量阈值的大小关系,调整所述目标等价多路径组当前对应的时间间隔。
一方面,所述链路状态信息包括各链路的固有带宽、链路比特率以及报文往返时间;
所述第一确定单元包括利用率确定子单元、可用带宽确定子单元和流量阈值确定子单元;
所述利用率确定子单元,用于根据第一等价多路径组中各第一链路的固有带宽和链路比特率,确定出各所述第一链路的带宽利用率;其中,所述第一等价多路径组为所有所述等价多路径组中的任意一个等价多路径组;所述第一链路为所述第一等价多路径组中的任意一条链路;
所述可用带宽确定子单元,用于根据所述第一等价多路径组中包含的链路总数、各所述第一链路的带宽利用率和固有带宽,确定出所述第一等价多路径组的平均剩余可用带宽;
所述流量阈值确定子单元,用于基于所述平均剩余可用带宽与设定的阈值系数,确定出所述第一等价多路径组的流量阈值。
一方面,所述可用带宽确定子单元用于调用可用带宽计算公式,对所述第一等价多路径组中包含的链路总数、各所述第一链路的带宽利用率和固有带宽进行分析,以确定出所述第一等价多路径组的平均剩余可用带宽;其中,所述可用带宽计算公式如下:
;
其中,表示所述第一等价多路径组的平均剩余可用带宽,C l 表示所述第一等价多路径组中第l条链路的剩余可用带宽,N表示所述第一等价多路径组中包含的链路总数,α l 表示所述第一等价多路径组中第l条链路的带宽利用率,Q l 表示所述第一等价多路径组中第l条链路的固有带宽。
一方面,所述流量阈值确定子单元用于根据所述第一等价多路径组中各第一链路的固有带宽,确定出所述第一等价多路径组的固有带宽;
根据所述第一等价多路径组的固有带宽与数据中心网络数据流阈值,确定出所述阈值系数;
将所述平均剩余可用带宽与所述阈值系数的乘积值作为所述第一等价多路径组的流量阈值。
一方面,所述流量信息包括五元组信息和带宽;所述五元组信息包括源地址、源端口、目的地址、目的端口和传输层协议;
所述第二确定单元包括数据流确定子单元、路径组确定子单元、类别确定子单元;
所述数据流确定子单元,用于依据所述源设备传输的当前报文的五元组信息,确定出所述当前报文所属的数据流;
所述路径组确定子单元,用于根据各目的地址和各所述等价多路径组的对应关系,确定出所述数据流所属的所述目标等价多路径组;
所述类别确定子单元,用于基于所述数据流的带宽与所述目标等价多路径组的流量阈值,确定出所述数据流的类别;在所述数据流的类别为大象流的情况下,触发所述分割单元执行所述按照所述目标等价多路径组当前对应的时间间隔,对待传输数据流进行分割的步骤。
一方面,所述数据流确定子单元用于将所述源设备传输的当前报文划分到与其具有相同五元组信息的数据流中。
一方面,所述类别确定子单元用于判断所述数据流的带宽是否大于所述目标等价多路径组的流量阈值;
在所述数据流的带宽大于所述目标等价多路径组的流量阈值的情况下,将所述数据流的类别判定为大象流;
在所述数据流的带宽小于或等于所述目标等价多路径组的流量阈值的情况下,将所述数据流的类别判定为老鼠流。
一方面,所述传输单元用于在所述数据流的类别为老鼠流的情况下,将所述数据流通过所述目标等价多路径组中对应的链路传输至所述目的设备。
一方面,所述传输单元用于对所述数据流的五元组信息进行哈希运算,以得到数据流运算结果;基于所述数据流运算结果,确定出所述目标等价多路径组中与所述数据流匹配的链路;将所述数据流通过其匹配的链路传输至所述目的设备。
一方面,所述分割单元包括第一作为子单元和第二作为子单元;
所述第一作为子单元,用于将所述数据流中未传输至所述目的设备的剩余数据流作为所述待传输数据流;
所述第二作为子单元,用于按照时间顺序从所述待传输数据流中分割出在所述时间间隔内的数据包,将所述数据包作为所述子数据流。
一方面,还包括判断单元和作为单元;
所述判断单元,用于判断所述数据流中是否存在未传输至所述目的设备的剩余数据流;
所述作为单元,用于在所述数据流中存在未传输至所述目的设备的剩余数据流的情况下,将所述剩余数据流作为所述待传输数据流,并触发所述第二作为子单元执行所述按照时间顺序从所述待传输数据流中分割出在所述时间间隔内的数据包,将所述数据包作为所述子数据流的步骤。
一方面,所述第二作为子单元用于按照时间顺序从所述待传输数据流中读取当前数据包,并开始计时;
判断计时时间是否达到所述时间间隔;
在所述计时时间未达到所述时间间隔的情况下,判断在所述时间间隔内所述待传输数据流中是否存在与所述当前数据包相邻的下一个数据包;
在所述时间间隔内所述待传输数据流中存在与所述当前数据包相邻的下一个数据包的情况下,则将所述下一个数据包作为所述当前数据包,并重新开始计时,执行所述判断计时时间是否达到所述时间间隔的步骤;
在所述计时时间达到所述时间间隔或者在所述时间间隔内所述待传输数据流中不存在与所述当前数据包相邻的下一个数据包的情况下,则将所有所述当前数据包作为所述子数据流。
一方面,针对于所述目标等价多路径组当前对应的时间间隔的确定方式,所述装置包括时间间隔确定单元;
所述时间间隔确定单元,用于基于所述目标等价多路径组中各链路当前对应的报文往返时间,确定出所述目标等价多路径组的时间间隔。
一方面,还包括时间判断单元;
所述时间判断单元,用于判断所述目标等价多路径组中各链路当前对应的报文往返时间是否发生变化;在所述目标等价多路径组中至少一条链路的报文往返时间发生变化的情况下,触发所述时间间隔确定单元执行所述基于所述目标等价多路径组中各链路当前对应的报文往返时间,确定出所述目标等价多路径组的时间间隔的步骤。
一方面,所述时间间隔确定单元包括第一选取子单元、传输时间确定子单元和第二选取子单元;
所述第一选取子单元,用于选取所述目标等价多路径组中各链路当前对应的报文往返时间中取值最大的报文往返时间;
所述传输时间确定子单元,用于基于所述取值最大的报文往返时间,确定出报文传输时间;
所述第二选取子单元,用于随机选取大于或等于所述报文传输时间的数值作为所述目标等价多路径组的时间间隔。
一方面,所述传输时间确定子单元将所述取值最大的报文往返时间除以2得到的数值作为所述报文传输时间。
一方面,在所述目标等价多路径组的时间间隔为最大的报文往返时间除以2得到的数值的情况下,所述调整单元包括判断子单元、保持子单元和调大子单元;
所述判断子单元,用于判断所述子数据流的带宽是否大于或等于所述目标等价多路径组的流量阈值;
所述保持子单元,用于在所述子数据流的带宽大于或等于所述目标等价多路径组的流量阈值的情况下,保持所述目标等价多路径组当前对应的时间间隔不变;
所述调大子单元,用于在所述子数据流的带宽小于所述目标等价多路径组的流量阈值的情况下,基于调整系数调大所述目标等价多路径组当前对应的时间间隔。
一方面,所述传输单元包括运算子单元、链路确定子单元和转发子单元;
所述运算子单元,用于将所述子数据流的五元组信息增加扰动值后进行哈希运算,以得到子数据流运算结果;其中,不同子数据流对应不同的扰动值;
所述链路确定子单元,用于基于所述子数据流运算结果,确定出所述目标等价多路径组中与所述子数据流所匹配的目标链路;
所述转发子单元,用于将所述子数据流通过所述目标链路转发至所述目的设备。
一方面,所述运算子单元用于在分割得到所述子数据流的情况下,将上一次子数据流对应的扰动值加一后与所述子数据流的五元组信息相加,以得到扰动后的五元组信息;对所述扰动后的五元组信息进行哈希运算,以得到所述子数据流运算结果。
本发明实施例还提供了一种数据流分割设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如上述数据流分割方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述数据流分割方法的步骤。
由上述技术方案可以看出,依据各等价多路径组的链路状态信息,确定出各等价多路径组的流量阈值。根据各等价多路径组的流量阈值以及源设备传输的数据流的流量信息,确定出数据流所属的类别和目标等价多路径组。按照目标等价多路径组当前对应的时间间隔,对待传输数据流进行分割。将分割得到的子数据流通过目标等价多路径组中对应的链路传输至目的设备;每完成一个子数据流的传输,则基于子数据流的带宽与目标等价多路径组的流量阈值的大小关系,调整目标等价多路径组当前对应的时间间隔。本发明的有益效果在于,交换机能够根据不同等价多路径组的实时链路状态信息以及数据流的流量信息,去调节不同等价多路径组的时间间隔的大小,从而实现自适应的负载分担,提升了负载分担效果,保证了网络的传输性能。克服了传统等价多路径组负载分担对所有数据流一视同仁,同一链路大小流共存导致的网络拥塞问题,以及僵硬的时间间隔分割数据流导致数据包乱序或细粒度不足的问题,提高了交换机的网络性能及带宽的使用率。
附图说明
为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据流分割方法的流程图;
图2为本发明实施例提供的一种确定数据流所属目标等价多路径组的方法的流程图;
图3为本发明实施例提供的一种从数据流中分割得到子数据流的方法的流程图;
图4为本发明实施例提供的一种调整目标等价多路径组当前对应的时间间隔的方法的流程图;
图5为本发明实施例提供的一种交换机自适应负载分担的系统框图;
图6为本发明实施例提供的一种数据流分割装置的结构示意图;
图7为本发明实施例提供的一种数据流分割设备的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。
本发明的说明书及上述附图中的术语“包括”和“具有”,以及与“包括”和“具有”相关的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可包括没有列出的步骤或单元。
在交换机中,通常用ECMP的方式实现负载分担。同时,为解决大小流问题,现有方式是基于flowlet的机制,对一个完整的数据流进行切割,将较大的流分割为多个流簇,从而提高细粒度。
目前交换机在对数据流进行flowlet切割时,是根据数据包的到达时间的时间间隔来进行分割,而这个时间间隔即flowlet_timeout由人工进行设定,flowlet_timeout的大小直接影响负载分担效果及网络性能。当flowlet_timeout过大时,flowlet产生的机会大大降低,对于负载分担的提升也十分有限。当flowlet_timeout过小时,会增加数据包的乱序风险,降低网络的性能。
对于数据流进行flowlet分割时,并不会区分大象流与老鼠流,而是所有的数据流都进行分割,这一做法对交换机硬件的需求较大,增加了交换机的硬件负担。
故此,本发明实施例提供了一种数据流分割方法、装置、设备和计算机可读存储介质,交换机能够根据不同等价多路径组的实时链路状态信息以及数据流的流量信息,去调节不同等价多路径组的时间间隔的大小,从而实现自适应的负载分担,提升了负载分担效果,保证了网络的传输性能。克服了传统等价多路径组负载分担对所有数据流一视同仁,同一链路大小流共存导致的网络拥塞问题,以及僵硬的时间间隔分割数据流导致数据包乱序或细粒度不足的问题,提高了交换机的网络性能及带宽的使用率。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
接下来,详细介绍本发明实施例所提供的一种数据流分割方法。图1为本发明实施例提供的一种数据流分割方法的流程图,该方法包括:
S101:依据各等价多路径组的链路状态信息,确定出各等价多路径组的流量阈值。
本发明主要考虑在使用云开放网络软件(Software for Open Networking inthe Cloud,SONiC)系统的交换机中,完成ECMP的逐流负载分担。
链路状态信息可以包括各链路的固有带宽、链路比特率以及报文往返时间。为了便于描述,可以采用RTT表示报文往返时间,q表示链路比特率,Q表示链路的固有带宽。
等价多路径组往往有多个,每个等价多路径组的流量阈值的确定方式相同,为了便于介绍,以所有等价多路径组中的任意一个等价多路径组即第一等价多路径组为例,可以将第一等价多路径组包含的任意一条链路称作第一链路。
在本发明实施例中,可以根据第一等价多路径组中各第一链路的固有带宽和链路比特率,确定出各第一链路的带宽利用率。根据第一等价多路径组中包含的链路总数、各第一链路的带宽利用率和固有带宽,确定出第一等价多路径组的平均剩余可用带宽。基于平均剩余可用带宽与设定的阈值系数,确定出第一等价多路径组的流量阈值。
以第一等价多路径组中第一链路为例,在实际应用中,可以将第一链路的链路比特率与固有带宽的比值作为第一链路的带宽利用率。
举例说明,可以按照公式α l =q l /Q l 计算出第l条链路的带宽利用率,其中,α l 表示第l条链路的带宽利用率,q l 表示第l条链路的链路比特率,Q l 表示第l条链路的固有带宽。
第一等价多路径组包含多条链路,在实际应用中,可以采用取平均的方式确定出第一等价多路径组的平均剩余可用带宽。
通过调用可用带宽计算公式,对第一等价多路径组中包含的链路总数、各第一链路的带宽利用率和固有带宽进行分析,可以确定出第一等价多路径组的平均剩余可用带宽;其中,可用带宽计算公式如下:
;
其中,表示第一等价多路径组的平均剩余可用带宽,C l 表示第一等价多路径组中第l条链路的剩余可用带宽,N表示第一等价多路径组中包含的链路总数,α l 表示第一等价多路径组中第l条链路的带宽利用率,Q l 表示第一等价多路径组中第l条链路的固有带宽。
在本发明实施例中,可以根据第一等价多路径组中各第一链路的固有带宽,确定出第一等价多路径组的固有带宽;根据第一等价多路径组的固有带宽与数据中心网络数据流阈值,确定出阈值系数;将平均剩余可用带宽与阈值系数的乘积值作为第一等价多路径组的流量阈值。
为了便于描述,可以采用k表示阈值系数。对于阈值系数k的计算,一般认为数据中心网络数据流阈值为1MB,本方法使用该值作为大小流阈值的初始值,这就可以计算出阈值系数为1MB与第一等价多路径组的固有带宽Q的比值,即k=1MB/Q。举例来说,当第一等价多路径组的固有带宽为100Mbps,则k为0.01。
以第一等价多路径组为例,在确定出阈值系数后,可以按照公式计算出第一等价多路径组的流量阈值;其中,δ表示流量阈值,k表示阈值系数,/>表示第一等价多路径组的平均剩余可用带宽。
不同等价多路径组对应的流量阈值可能不同,但是其流量阈值的计算方式相同,参照上述对第一等价多路径组的流量阈值的计算方式的介绍,可以确定出各个等价多路径组各自对应的流量阈值。
S102:根据各等价多路径组的流量阈值以及源设备传输的数据流的流量信息,确定出数据流所属的类别和目标等价多路径组。
数据流的流量信息可以包括五元组信息和数据量。其中,五元组信息包括源地址、源端口、目的地址、目的端口、传输层协议。源地址可以为源设备的IP地址(InternetProtocol Address,互联网协议地址)。目的地址可以为目的设备的IP地址。
源设备可以将数据封装为报文的形式通过链路传输至目的设备。报文可以为传输控制协议(Transmission Control Protocol,TCP)报文或者互联网协议(InternetProtocol,IP)报文等。
在本发明实施例中,可以将具有相同五元组信息的报文归属为同一个数据流。
针对于每个目的地址可以设置其对应的一个等价多路径组。在获取到数据流之后,可以根据该数据流的目的地址确定出该数据流所对应的等价多路径组。
通过数据流单位时间内的数据量可以确定出数据流的带宽。将该数据流的带宽与等价多路径组的流量阈值进行比较,可以确定是否需要对数据流执行分割操作。
在数据流的带宽大于等价多路径组的流量阈值时,说明数据流的数据量较多,此时可以执行S103对数据流执行分割操作。在数据流的带宽小于或等于等价多路径组的流量阈值时,说明数据流的数据量较少,此时无需对数据流进行分割,可以直接将数据流通过目标等价多路径组中对应的链路传输至目的设备。
S103:按照目标等价多路径组当前对应的时间间隔,对待传输数据流进行分割。
为了便于区分,可以将单次分割得到的部分数据流称作子数据流,可以将数据流中未传输至目的设备的剩余数据流作为待传输数据流。在实际应用中,可以按照时间顺序从待传输数据流中分割出在时间间隔内的数据包,将数据包作为子数据流。
对数据流进行分割的一种可行的实现方式可以参见图3的介绍,在此不做赘述。
S104:将分割得到的子数据流通过目标等价多路径组中对应的链路传输至目的设备。
如果子数据流是从同一个数据流分割出来的,那么它们的五元组信息也是相同的,这时对他们进行哈希运算,得到的结果也是相同的,从而导致子数据流的负载分担无法得到有效的实现。
为规避这种情况的发生,在对每个子数据流进行哈希运算时,可以增加一个扰动值。不同子数据流对应不同的扰动值。
在实际应用中,可以将子数据流的五元组信息增加扰动值后进行哈希运算,以得到子数据流运算结果;其中,不同子数据流对应不同的扰动值。基于子数据流运算结果,确定出目标等价多路径组中与子数据流所匹配的目标链路;将子数据流通过目标链路转发至目的设备。
对于扰动值的设置,可以每次对子数据流进行哈希运算后,将扰动值增加一个固定的数值如增加1,使得同一数据流的不同子数据流的哈希运算结果不同,从而保证子数据流的负载分担效果。
在分割得到子数据流的情况下,将上一次子数据流对应的扰动值加一后与子数据流的五元组信息相加,以得到扰动后的五元组信息;对扰动后的五元组信息进行哈希运算,以得到子数据流运算结果。
S105:每完成一个子数据流的传输,则基于子数据流的带宽与目标等价多路径组的流量阈值的大小关系,调整目标等价多路径组当前对应的时间间隔。
随着链路每次传输报文量的变化,链路最新对应的报文往返时间(Round-TripTime,RTT)可能会发生变化。因此可以根据各链路的RTT变化情况,实时调整各等价多路径组的时间阈值。
以目标等价多路径组为例,其包含了多条链路,每条链路有其对应的一个报文往返时间。在实际应用中,可以选取出所有链路中取值最大的报文往返时间,将取值最大的报文往返时间除以2得到的数值作为时间间隔。
每完成一个子数据流的传输,可以根据子数据流的带宽与目标等价多路径组的流量阈值的大小关系,调整目标等价多路径组当前对应的时间间隔。在子数据流的带宽大于或等于目标等价多路径组的流量阈值时,可以不对目标等价多路径组当前对应的时间间隔进行调整。在子数据流的带宽小于目标等价多路径组的流量阈值时,可以调大目标等价多路径组当前对应的时间间隔。
在完成一个子数据流的传输后,可以进一步判断数据流中是否存在未传输至目的设备的剩余数据流。
在数据流中存在未传输至目的设备的剩余数据流的情况下,可以将剩余数据流作为待传输数据流,并执行按照时间顺序从待传输数据流中分割出在时间间隔内的数据包,将数据包作为子数据流的步骤。直至数据流中不存在未传输至目的设备的剩余数据流,说明已经完成该数据流从源设备向目的设备的传输,此时可以结束对该数据流的操作。
由上述技术方案可以看出,依据各等价多路径组的链路状态信息,确定出各等价多路径组的流量阈值。根据各等价多路径组的流量阈值以及源设备传输的数据流的流量信息,确定出数据流所属的类别和目标等价多路径组。按照目标等价多路径组当前对应的时间间隔,对待传输数据流进行分割。将分割得到的子数据流通过目标等价多路径组中对应的链路传输至目的设备;每完成一个子数据流的传输,则基于子数据流的带宽与目标等价多路径组的流量阈值的大小关系,调整目标等价多路径组当前对应的时间间隔。本发明的有益效果在于,交换机能够根据不同等价多路径组的实时链路状态信息以及数据流的流量信息,去调节不同等价多路径组的时间间隔的大小,从而实现自适应的负载分担,提升了负载分担效果,保证了网络的传输性能。克服了传统等价多路径组负载分担对所有数据流一视同仁,同一链路大小流共存导致的网络拥塞问题,以及僵硬的时间间隔分割数据流导致数据包乱序或细粒度不足的问题,提高了交换机的网络性能及带宽的使用率。
图2为本发明实施例提供的一种确定数据流所属目标等价多路径组的方法的流程图,该方法包括:
S201:依据源设备传输的当前报文的五元组信息,确定出当前报文所属的数据流。
在本发明实施例中,可以将五元组信息完全相同的报文归属为同一个数据流。将源设备传输的当前报文划分到与其具有相同五元组信息的数据流中。
S202:根据各目的地址和各等价多路径组的对应关系,确定出数据流所属的目标等价多路径组。
为了实现数据流的分流处理,可以针对于每个目的地址设置对应的一个等价多路径组。
在获取到数据流之后,可以根据该数据流的目的地址,确定出该数据流所属的等价多路径组。为了便于区分,可以将当前的数据流所属的等价多路径组称作目标等价多路径组。
S203:基于数据流的带宽与目标等价多路径组的流量阈值,确定出数据流的类别。
在本发明实施例中,可以将目标等价多路径组的流量阈值作为划分数据流类别的标准。判断数据流的带宽是否大于目标等价多路径组的流量阈值。
在数据流的带宽大于目标等价多路径组的流量阈值的情况下,可以将数据流的类别判定为大象流。在数据流的带宽小于或等于目标等价多路径组的流量阈值的情况下,将数据流的类别判定为老鼠流。
S204:在数据流的类别为大象流的情况下,按照目标等价多路径组当前对应的时间间隔,对待传输数据流进行分割。
在数据流的类别为大象流的情况下,说明数据流的数据量比较大,为了避免该数据流的传输对单条链路的占用时间太长,降低该数据流传输拥塞的情况发生,可以对该数据流进行分割操作。对数据流的分割方式可以参见S103的介绍,在此不再赘述。
S205:在数据流的类别为老鼠流的情况下,将数据流通过目标等价多路径组中对应的链路传输至目的设备。
在数据流的类别为老鼠流时,说明数据流的数据量较少,通过单条链路便可以实现该数据流的快速传输,因此在数据流的类别为老鼠流的情况下,可以将数据流通过目标等价多路径组中对应的链路传输至目的设备。
目标等价多路径组中包含有多条链路,数据流具体通过哪条链路传输至目的设备,可以基于哈希运算的运算结果确定。
以数据流的类别为老鼠流为例,可以对数据流的五元组信息进行哈希运算,以得到数据流运算结果;基于数据流运算结果,确定出目标等价多路径组中与数据流匹配的链路;将数据流通过其匹配的链路传输至目的设备。
在本发明实施例中,根据报文的五元组信息可以确定出报文所属的数据流。基于数据流对应的目标等价多路径组的流量阈值,可以实现对数据流的分类。对于数据量大的大象流可以执行分割操作,从而将分割后的子数据流通过不同的链路传输至目的设备,实现了不同链路的负载均衡,并且保证了大数据量的数据流传输的效率。对于数据量小的老鼠流,可以直接通过单条链路传输至目的设备,无需进行数据的分割。减少负载分担过程中同一链路大象流和老鼠流共存导致的网络拥塞情况,提高了等价多路径组的负载分担的细粒度,提高了负载分担效果。
图3为本发明实施例提供的一种从数据流中分割得到子数据流的方法的流程图,该方法包括:
S301:按照时间顺序从待传输数据流中读取当前数据包,并开始计时。
数据流中往往包含多个报文,一个报文可以看作一个数据包,每个数据包之间存在时间的先后顺序。
在本发明实施例中,可以按照时间顺序从待传输数据流中读取时间最久的数据包作为当前数据包。
S302:判断计时时间是否达到时间间隔。
在计时时间未达到目标等价多路径组当前对应的时间间隔的情况下,可以执行S303;在计时时间达到目标等价多路径组当前对应的时间间隔的情况下,说明已经完成了一次数据流的分割,此时可以将所有当前数据包作为子数据流即执行S305。
S303:判断在时间间隔内待传输数据流中是否存在与当前数据包相邻的下一个数据包。
在时间间隔内待传输数据流中存在与当前数据包相邻的下一个数据包的情况下,可以执行S304;在时间间隔内待传输数据流中不存在与当前数据包相邻的下一个数据包的情况下,说明已经完成了一次数据流的分割,此时可以将所有当前数据包作为子数据流即执行S305。
S304:将下一个数据包作为当前数据包,并重新开始计时,执行判断计时时间是否达到时间间隔的步骤。
在时间间隔内待传输数据流中存在与当前数据包相邻的下一个数据包的情况下,可以将下一个数据包作为当前数据包,然后重新开始计时,并返回S302判断计时时间是否达到时间间隔。
S305:将所有当前数据包作为子数据流。
举例说明,假设数据流中包含3个数据包,分别为数据包1、数据包2和数据包3,数据包1和数据包2之间传输时间相差1.5秒,数据包2和数据包3之间传输时间相差4.5秒,时间间隔为3秒。数据流分割时先从数据流中读取出数据包1,此时数据包1即为当前数据包,此时开始计时,在3秒内可以读取到数据包2。此时数据包2即为当前数据包,此时重新开始计时,在3秒内不存在与数据包2相邻的下一个数据包,则可以结束本次分割操作,此时可以将数据包1和数据包2合并作为子数据流。
在分割出一个子数据流后,可以将该子数据流通过对应的链路传输至目的设备。由于数据流中还存在剩余数据流即数据包3,此时数据包3即为当前数据包,开始计时,在3秒内不存在与数据包3相邻的下一个数据包,则可以结束本次分割操作,此时数据包3作为下一个子数据流。
在本发明实施例中,通过按照目标等价多路径组当前对应的时间间隔对数据流进行分割操作,可以避免分割出的子数据流出现分割过小或者过大的情况发生,保证了数据流分割的效果。
图4为本发明实施例提供的一种调整目标等价多路径组当前对应的时间间隔的方法的流程图,该方法包括:
S401:判断目标等价多路径组中各链路当前对应的报文往返时间是否发生变化。
在目标等价多路径组中至少一条链路的报文往返时间发生变化的情况下,说明需要调整时间间隔,此时可以执行S402。
S402:基于目标等价多路径组中各链路当前对应的报文往返时间,确定出目标等价多路径组的时间间隔。
在实际应用中,可以选取目标等价多路径组中各链路当前对应的报文往返时间中取值最大的报文往返时间;基于取值最大的报文往返时间,确定出报文传输时间;随机选取大于或等于报文传输时间的数值作为目标等价多路径组的时间间隔。
等价多路径组内每条链路与其对应的报文往返时间,在实际应用中,可以将取值最大的报文往返时间除以2得到的数值作为报文传输时间。
RTT/2就可以简单的理解为数据包从源设备传输到目的设备所需要的时间,那么在对数据流做分割时,为保证不增加数据包的乱序风险,时间间隔(flowlet_timeout)需大于RTT/2。
而一个等价多路径组内有多条链路,每条链路都有一个实时更新RTT值,这时就需要使用当前最大的RTT值作为标准,即;其中,RTT max 表示当前取值最大的报文往返时间。
在实际应用中,可以选取RTT max /2作为时间间隔,S403至S405关于时间间隔的调整,都是与RTT max /2作为时间间隔为前提条件。
S403:每完成一次数据流的分割,则判断子数据流的带宽是否大于或等于目标等价多路径组的流量阈值。
每完成一次数据流的分割,可以得到一个子数据流。理想状态下,子数据流的带宽应该小于目标等价多路径组的流量阈值。
在子数据流的带宽大于或等于目标等价多路径组的流量阈值的情况下,由于时间间隔已经在所能取值的范围内取了最小值,此时可以执行S404。在子数据流的带宽小于目标等价多路径组的流量阈值的情况下,说明按照当前时间间隔分割得到的子数据流的数据量偏小,此时可以适当调大时间间隔的取值即执行S405。
S404:保持目标等价多路径组当前对应的时间间隔不变。
在子数据流的带宽大于或等于目标等价多路径组的流量阈值的情况下,说明按照当前时间间隔分割得到的子数据流的数据量偏大,由于时间间隔已经在所能取值的范围内取了最小值,因此无法再更改时间间隔的取值,此时可以保持目标等价多路径组当前对应的时间间隔不变,即仍将RTT max /2作为时间间隔。
S405:基于调整系数调大目标等价多路径组当前对应的时间间隔。
在子数据流的带宽小于目标等价多路径组的流量阈值的情况下,说明按照当前时间间隔分割得到的子数据流的数据量偏小,此时可以调大时间间隔的取值。
在实际应用中,可以按照如下公式,调整时间间隔的取值:
flowlet_timeout=(1+β)×flowlet_timeout;
其中,β表示调整系数。β按照经验取值可以为0.1。
通过基于子数据流的带宽与目标等价多路径组的流量阈值的大小关系,调整时间间隔的取值。在保证负载分担效果的同时,通过适当提高时间间隔,减少对数据流的分割,从而减少对交换机硬件的性能需求。在更新完时间间隔的取值后,可以对待传输数据流按照调整后的时间间隔进行分割。动态设置合理的时间间隔,可以减少数据包乱序风险,保证了网络的传输性能。
在本发明实施例中,根据交换机完成数据流分割所执行的操作,可以在交换机上划分出不同的功能模块,图5为本发明实施例提供的一种交换机自适应负载分担的系统框图,交换机上分别包括等价多路径组链路状态监控模块、流量信息采集模块、数据流分类模块、数据流分割策略模块和流量转发执行模块。图5中等价多路径组链路状态监控模块和流量信息采集模块分别与数据流分类模块连接,数据流分类模块和数据流分割策略模块连接,数据流分割策略模块和流量转发执行模块连接,并且等价多路径组链路状态监控模块和流量信息采集模块分别与数据流分割策略模块连接。
等价多路径组链路状态监控模块即ECMP组链路状态监控模块:ECMP组的生成是由SONiC系统中的交换机状态服务(Switch State Service,SWSS)容器中的核心守护线程(orchagent)模块负责,该模块会监听应用数据库(APPL_DB)中由SONiC系统快速重路由(Fast Reroute,FRR)容器生成的下一跳(nexthop)信息,并根据多个等价的nexthop生成或更新ECMP组。ECMP组链路状态监控模块就是在SONiC的ECMP组的生成模块的基础上实现的,在orchagent读取APPL_DB中的nexthop数据时,同时读取nexthop所在链路(实际对应的物理端口)的状态信息,即链路的固有带宽,当前链路流量比特率,报文往返时间。根据数据库中实时更新的链路状态信息,计算出每个ECMP组的流量阈值,基于流量阈值可以区分数据流的类别,识别数据流属于大象流还是属于老鼠流,因此可以将流量阈值称作大小流阈值。可以将大小流阈值写入到APPL_DB中给其他模块使用。
流量信息采集模块:通过SONiC原有的监视功能(Everflow)采集TCP报文的流量信息。根据流量信息包含的源IP地址、源端口、目的IP地址、目的端口、传输层协议可以确定TCP报文所属的数据流。并通过单位时间内的数据量可以确定数据流的带宽,将这些信息将写入状态数据库(STATE_DB)中,给其他模块使用。
数据流分类模块:该模块同样放置在SONiC系统的SWSS容器中,当数据流信息采集模块将数据流的信息写入到STATE_DB时,会触发数据流分类模块,此时该数据流分类模块会根据数据流的信息,确定数据流属于哪一个ECMP组,并根据APPL_DB中该ECMP组的流量阈值进行比较,若数据流的带宽大于流量阈值,则将该数据流标记为大象流;反之,标记为老鼠流。完成分类的数据流,将会进入到flowlet分割策略模块,进行下一步的处理。对于flowlet_timeout的计算,则有两方面的指标:
一是ECMP组内报文的RTT值,RTT值为报文的往返时间。在对数据流做flowlet分割时,为保证不增加数据包的乱序风险,flowlet_timeout需大于RTT/2。而一个ECMP组内有多个成员链路,每个链路都有一个实时更新RTT值,这时就需要使用当前最大的RTT值作为标准。
二是ECMP组的流量阈值,对大象流进行flowlet分割的目的就是消除同一链路大小流并存,导致大象流阻碍老鼠流转发,拥塞网络这种情况的产生。故对大象流分割后每个flowlet的带宽应小于或等于ECMP组对应的流量阈值,这时flowlet_timeout值对应分割后的flowlet带宽应满足该要求。
数据流分割策略模块:该模块同样放置在SONiC系统的SWSS容器中,并对每个ECMP组实时更新各自的flowlet_timeout,用于分割每个ECMP组中的大象流。
流量转发执行模块:交换芯片接收到经过处理后的flowlet和老鼠流,根据他们的五元组信息(源IP地址、源端口、目的IP地址、目的端口、传输层协议)进行哈希计算,最终选择对应的ECMP组内的成员链路,对报文进行转发。
在本发明实施例中,通过在交换机上设置等价多路径组链路状态监控模块、流量信息采集模块、数据流分类模块、数据流分割策略模块和流量转发执行模块,使得交换机可以根据网络链路性能进行动态调整流量阈值和用于数据流分割的时间间隔,使得负载分担可以自适应当前的网络环境。在ECMP负载分担策略的基础上增加区分数据流的类型的功能,并对大象流进行数据流分割,使得交换机可以更精细地进行负载分担,减少同一链路大象流和老鼠流共存导致的网络延时、拥塞情况,提高网络性能。克服了传统ECMP负载分担对所有数据流流一视同仁,同一链路大小流共存导致的网络拥塞问题,以及僵硬的数据流分割导致的数据包乱序或细粒度不足的问题,提高了交换机的网络性能及带宽的使用率。
图6为本发明实施例提供的一种数据流分割装置的结构示意图,包括第一确定单元61、第二确定单元62、分割单元63、传输单元64和调整单元65;
第一确定单元61,用于依据各等价多路径组的链路状态信息,确定出各等价多路径组的流量阈值;
第二确定单元62,用于根据各等价多路径组的流量阈值以及源设备传输的数据流的流量信息,确定出数据流所属的类别和目标等价多路径组;
分割单元63,用于按照目标等价多路径组当前对应的时间间隔,对待传输数据流进行分割;
传输单元64,用于将分割得到的子数据流通过目标等价多路径组中对应的链路传输至目的设备;
调整单元65,用于每完成一个子数据流的传输,则基于子数据流的带宽与目标等价多路径组的流量阈值的大小关系,调整目标等价多路径组当前对应的时间间隔。
在一些实施例中,链路状态信息包括各链路的固有带宽、链路比特率以及报文往返时间;
第一确定单元包括利用率确定子单元、可用带宽确定子单元和流量阈值确定子单元;
利用率确定子单元,用于根据第一等价多路径组中各第一链路的固有带宽和链路比特率,确定出各第一链路的带宽利用率;其中,第一等价多路径组为所有等价多路径组中的任意一个等价多路径组;第一链路为第一等价多路径组中的任意一条链路;
可用带宽确定子单元,用于根据第一等价多路径组中包含的链路总数、各第一链路的带宽利用率和固有带宽,确定出第一等价多路径组的平均剩余可用带宽;
流量阈值确定子单元,用于基于平均剩余可用带宽与设定的阈值系数,确定出第一等价多路径组的流量阈值。
在一些实施例中,可用带宽确定子单元用于调用可用带宽计算公式,对第一等价多路径组中包含的链路总数、各第一链路的带宽利用率和固有带宽进行分析,以确定出第一等价多路径组的平均剩余可用带宽;其中,可用带宽计算公式如下:
;
其中,表示第一等价多路径组的平均剩余可用带宽,C l 表示第一等价多路径组中第l条链路的剩余可用带宽,N表示第一等价多路径组中包含的链路总数,α l 表示第一等价多路径组中第l条链路的带宽利用率,Q l 表示第一等价多路径组中第l条链路的固有带宽。
在一些实施例中,流量阈值确定子单元用于根据第一等价多路径组中各第一链路的固有带宽,确定出第一等价多路径组的固有带宽;
根据第一等价多路径组的固有带宽与数据中心网络数据流阈值,确定出阈值系数;
将平均剩余可用带宽与阈值系数的乘积值作为第一等价多路径组的流量阈值。
在一些实施例中,流量信息包括五元组信息和带宽;五元组信息包括源地址、源端口、目的地址、目的端口和传输层协议;
第二确定单元包括数据流确定子单元、路径组确定子单元、类别确定子单元;
数据流确定子单元,用于依据源设备传输的当前报文的五元组信息,确定出当前报文所属的数据流;
路径组确定子单元,用于根据各目的地址和各等价多路径组的对应关系,确定出数据流所属的目标等价多路径组;
类别确定子单元,用于基于数据流的带宽与目标等价多路径组的流量阈值,确定出数据流的类别;在数据流的类别为大象流的情况下,触发分割单元执行按照目标等价多路径组当前对应的时间间隔,对待传输数据流进行分割的步骤。
在一些实施例中,数据流确定子单元用于将源设备传输的当前报文划分到与其具有相同五元组信息的数据流中。
在一些实施例中,类别确定子单元用于判断数据流的带宽是否大于目标等价多路径组的流量阈值;
在数据流的带宽大于目标等价多路径组的流量阈值的情况下,将数据流的类别判定为大象流;
在数据流的带宽小于或等于目标等价多路径组的流量阈值的情况下,将数据流的类别判定为老鼠流。
在一些实施例中,传输单元用于在数据流的类别为老鼠流的情况下,将数据流通过目标等价多路径组中对应的链路传输至目的设备。
在一些实施例中,传输单元用于对数据流的五元组信息进行哈希运算,以得到数据流运算结果;基于数据流运算结果,确定出目标等价多路径组中与数据流匹配的链路;将数据流通过其匹配的链路传输至目的设备。
在一些实施例中,分割单元包括第一作为子单元和第二作为子单元;
第一作为子单元,用于将数据流中未传输至目的设备的剩余数据流作为待传输数据流;
第二作为子单元,用于按照时间顺序从待传输数据流中分割出在时间间隔内的数据包,将数据包作为子数据流。
在一些实施例中,还包括判断单元和作为单元;
判断单元,用于判断数据流中是否存在未传输至目的设备的剩余数据流;
作为单元,用于在数据流中存在未传输至目的设备的剩余数据流的情况下,将剩余数据流作为待传输数据流,并触发第二作为子单元执行按照时间顺序从待传输数据流中分割出在时间间隔内的数据包,将数据包作为子数据流的步骤。
在一些实施例中,第二作为子单元用于按照时间顺序从待传输数据流中读取当前数据包,并开始计时;
判断计时时间是否达到时间间隔;
在计时时间未达到时间间隔的情况下,判断在时间间隔内待传输数据流中是否存在与当前数据包相邻的下一个数据包;
在时间间隔内待传输数据流中存在与当前数据包相邻的下一个数据包的情况下,则将下一个数据包作为当前数据包,并重新开始计时,执行判断计时时间是否达到时间间隔的步骤;
在计时时间达到时间间隔或者在时间间隔内待传输数据流中不存在与当前数据包相邻的下一个数据包的情况下,则将所有当前数据包作为子数据流。
在一些实施例中,针对于目标等价多路径组当前对应的时间间隔的确定方式,装置包括时间间隔确定单元;
时间间隔确定单元,用于基于目标等价多路径组中各链路当前对应的报文往返时间,确定出目标等价多路径组的时间间隔。
在一些实施例中,还包括时间判断单元;
时间判断单元,用于判断目标等价多路径组中各链路当前对应的报文往返时间是否发生变化;在目标等价多路径组中至少一条链路的报文往返时间发生变化的情况下,触发时间间隔确定单元执行基于目标等价多路径组中各链路当前对应的报文往返时间,确定出目标等价多路径组的时间间隔的步骤。
在一些实施例中,时间间隔确定单元包括第一选取子单元、传输时间确定子单元和第二选取子单元;
第一选取子单元,用于选取目标等价多路径组中各链路当前对应的报文往返时间中取值最大的报文往返时间;
传输时间确定子单元,用于基于取值最大的报文往返时间,确定出报文传输时间;
第二选取子单元,用于随机选取大于或等于报文传输时间的数值作为目标等价多路径组的时间间隔。
在一些实施例中,传输时间确定子单元将取值最大的报文往返时间除以2得到的数值作为报文传输时间。
在一些实施例中,在目标等价多路径组的时间间隔为最大的报文往返时间除以2得到的数值的情况下,调整单元包括判断子单元、保持子单元和调大子单元;
判断子单元,用于判断子数据流的带宽是否大于或等于目标等价多路径组的流量阈值;
保持子单元,用于在子数据流的带宽大于或等于目标等价多路径组的流量阈值的情况下,保持目标等价多路径组当前对应的时间间隔不变;
调大子单元,用于在子数据流的带宽小于目标等价多路径组的流量阈值的情况下,基于调整系数调大目标等价多路径组当前对应的时间间隔。
在一些实施例中,传输单元包括运算子单元、链路确定子单元和转发子单元;
运算子单元,用于将子数据流的五元组信息增加扰动值后进行哈希运算,以得到子数据流运算结果;其中,不同子数据流对应不同的扰动值;
链路确定子单元,用于基于子数据流运算结果,确定出目标等价多路径组中与子数据流所匹配的目标链路;
转发子单元,用于将子数据流通过目标链路转发至目的设备。
在一些实施例中,运算子单元用于在分割得到子数据流的情况下,将上一次子数据流对应的扰动值加一后与子数据流的五元组信息相加,以得到扰动后的五元组信息;对扰动后的五元组信息进行哈希运算,以得到子数据流运算结果。
图6所对应实施例中特征的说明可以参见图1所对应实施例的相关说明,这里不再一一赘述。
由上述技术方案可以看出,依据各等价多路径组的链路状态信息,确定出各等价多路径组的流量阈值。根据各等价多路径组的流量阈值以及源设备传输的数据流的流量信息,确定出数据流所属的类别和目标等价多路径组。按照目标等价多路径组当前对应的时间间隔,对待传输数据流进行分割。将分割得到的子数据流通过目标等价多路径组中对应的链路传输至目的设备;每完成一个子数据流的传输,则基于子数据流的带宽与目标等价多路径组的流量阈值的大小关系,调整目标等价多路径组当前对应的时间间隔。本发明的有益效果在于,交换机能够根据不同等价多路径组的实时链路状态信息以及数据流的流量信息,去调节不同等价多路径组的时间间隔的大小,从而实现自适应的负载分担,提升了负载分担效果,保证了网络的传输性能。克服了传统等价多路径组负载分担对所有数据流一视同仁,同一链路大小流共存导致的网络拥塞问题,以及僵硬的时间间隔分割数据流导致数据包乱序或细粒度不足的问题,提高了交换机的网络性能及带宽的使用率。
图7为本发明实施例提供的一种数据流分割设备的结构图,如图7所示,数据流分割设备包括:存储器70,用于存储计算机程序;
处理器71,用于执行计算机程序时实现如上述实施例数据流分割方法的步骤。
本实施例提供的数据流分割设备可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。
其中,处理器71可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器71可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器71也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器71可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器71还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器70可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器70还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器70至少用于存储以下计算机程序701,其中,该计算机程序被处理器71加载并执行之后,能够实现前述任一实施例公开的数据流分割方法的相关步骤。另外,存储器70所存储的资源还可以包括操作系统702和数据703等,存储方式可以是短暂存储或者永久存储。其中,操作系统702可以包括Windows、Unix、Linux等。数据703可以包括但不限于各等价多路径组的链路状态信息、数据流的流量信息、各等价多路径组当前对应的时间间隔等。
在一些实施例中,数据流分割设备还可包括有显示屏72、输入输出接口73、通信接口74、电源75以及通信总线77。
本领域技术人员可以理解,图7中示出的结构并不构成对数据流分割设备限定,可以包括比图示更多或更少的组件。
可以理解的是,如果上述实施例中的数据流分割方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对目前技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、磁碟或者光盘等各种可以存储程序代码的介质。
基于此,本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述数据流分割方法的步骤。
以上对本发明实施例所提供的一种数据流分割方法、装置、设备和计算机可读存储介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
以上对本发明所提供的一种数据流分割方法、装置、设备和计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (22)
1.一种数据流分割方法,其特征在于,包括:
依据各等价多路径组的链路状态信息,确定出各所述等价多路径组的流量阈值;
根据各所述等价多路径组的流量阈值以及源设备传输的数据流的流量信息,确定出所述数据流所属的类别和目标等价多路径组;
按照所述目标等价多路径组当前对应的时间间隔,对待传输数据流进行分割;
将分割得到的子数据流通过所述目标等价多路径组中对应的链路传输至目的设备;
每完成一个所述子数据流的传输,则基于所述子数据流的带宽与所述目标等价多路径组的流量阈值的大小关系,调整所述目标等价多路径组当前对应的时间间隔;将取值最大的报文往返时间除以2得到的数值作为时间间隔,在子数据流的带宽小于目标等价多路径组的流量阈值时,调大目标等价多路径组当前对应的时间间隔。
2.根据权利要求1所述的数据流分割方法,其特征在于,所述链路状态信息包括各链路的固有带宽、链路比特率以及报文往返时间;
所述依据各等价多路径组的链路状态信息,确定出各所述等价多路径组的流量阈值包括:
根据第一等价多路径组中各第一链路的固有带宽和链路比特率,确定出各所述第一链路的带宽利用率;其中,所述第一等价多路径组为所有所述等价多路径组中的任意一个等价多路径组;所述第一链路为所述第一等价多路径组中的任意一条链路;
根据所述第一等价多路径组中包含的链路总数、各所述第一链路的带宽利用率和固有带宽,确定出所述第一等价多路径组的平均剩余可用带宽;
基于所述平均剩余可用带宽与设定的阈值系数,确定出所述第一等价多路径组的流量阈值。
3.根据权利要求2所述的数据流分割方法,其特征在于,所述根据所述第一等价多路径组中包含的链路总数、各所述第一链路的带宽利用率和固有带宽,确定出所述第一等价多路径组的平均剩余可用带宽包括:
调用可用带宽计算公式,对所述第一等价多路径组中包含的链路总数、各所述第一链路的带宽利用率和固有带宽进行分析,以确定出所述第一等价多路径组的平均剩余可用带宽;其中,所述可用带宽计算公式如下:
;
其中,表示所述第一等价多路径组的平均剩余可用带宽,C l 表示所述第一等价多路径组中第l条链路的剩余可用带宽,N表示所述第一等价多路径组中包含的链路总数,α l 表示所述第一等价多路径组中第l条链路的带宽利用率,Q l 表示所述第一等价多路径组中第l条链路的固有带宽。
4.根据权利要求3所述的数据流分割方法,其特征在于,所述基于所述平均剩余可用带宽与设定的阈值系数,确定出所述第一等价多路径组的流量阈值包括:
根据所述第一等价多路径组中各第一链路的固有带宽,确定出所述第一等价多路径组的固有带宽;
根据所述第一等价多路径组的固有带宽与数据中心网络数据流阈值,确定出所述阈值系数;
将所述平均剩余可用带宽与所述阈值系数的乘积值作为所述第一等价多路径组的流量阈值。
5.根据权利要求1所述的数据流分割方法,其特征在于,所述流量信息包括五元组信息和带宽;所述五元组信息包括源地址、源端口、目的地址、目的端口和传输层协议;
所述根据各所述等价多路径组的流量阈值以及源设备传输的数据流的流量信息,确定出所述数据流所属的类别和目标等价多路径组包括:
依据所述源设备传输的当前报文的五元组信息,确定出所述当前报文所属的数据流;
根据各目的地址和各所述等价多路径组的对应关系,确定出所述数据流所属的所述目标等价多路径组;
基于所述数据流的带宽与所述目标等价多路径组的流量阈值,确定出所述数据流的类别;
在所述数据流的类别为大象流的情况下,执行所述按照所述目标等价多路径组当前对应的时间间隔,对待传输数据流进行分割的步骤。
6.根据权利要求5所述的数据流分割方法,其特征在于,所述依据所述源设备传输的当前报文的五元组信息,确定出所述当前报文所属的数据流包括:
将所述源设备传输的当前报文划分到与其具有相同五元组信息的数据流中。
7.根据权利要求5所述的数据流分割方法,其特征在于,所述基于所述数据流的带宽与所述目标等价多路径组的流量阈值,确定出所述数据流的类别包括:
判断所述数据流的带宽是否大于所述目标等价多路径组的流量阈值;
在所述数据流的带宽大于所述目标等价多路径组的流量阈值的情况下,将所述数据流的类别判定为大象流;
在所述数据流的带宽小于或等于所述目标等价多路径组的流量阈值的情况下,将所述数据流的类别判定为老鼠流。
8.根据权利要求7所述的数据流分割方法,其特征在于,还包括:
在所述数据流的类别为老鼠流的情况下,将所述数据流通过所述目标等价多路径组中对应的链路传输至所述目的设备。
9.根据权利要求8所述的数据流分割方法,其特征在于,所述将所述数据流通过所述目标等价多路径组中对应的链路传输至所述目的设备包括:
对所述数据流的五元组信息进行哈希运算,以得到数据流运算结果;
基于所述数据流运算结果,确定出所述目标等价多路径组中与所述数据流匹配的链路;
将所述数据流通过其匹配的链路传输至所述目的设备。
10.根据权利要求1所述的数据流分割方法,其特征在于,所述按照所述目标等价多路径组当前对应的时间间隔,对待传输数据流进行分割包括:
将所述数据流中未传输至所述目的设备的剩余数据流作为所述待传输数据流;
按照时间顺序从所述待传输数据流中分割出在所述时间间隔内的数据包,将所述数据包作为所述子数据流。
11.根据权利要求10所述的数据流分割方法,其特征在于,在所述基于所述子数据流的带宽与所述目标等价多路径组的流量阈值的大小关系,调整所述目标等价多路径组当前对应的时间间隔之后,还包括:
判断所述数据流中是否存在未传输至所述目的设备的剩余数据流;
在所述数据流中存在未传输至所述目的设备的剩余数据流的情况下,将所述剩余数据流作为所述待传输数据流,并执行所述按照时间顺序从所述待传输数据流中分割出在所述时间间隔内的数据包,将所述数据包作为所述子数据流的步骤。
12.根据权利要求10所述的数据流分割方法,其特征在于,所述按照时间顺序从所述待传输数据流中分割出在所述时间间隔内的数据包,将所述数据包作为所述子数据流包括:
按照时间顺序从所述待传输数据流中读取当前数据包,并开始计时;
判断计时时间是否达到所述时间间隔;
在所述计时时间未达到所述时间间隔的情况下,判断在所述时间间隔内所述待传输数据流中是否存在与所述当前数据包相邻的下一个数据包;
在所述时间间隔内所述待传输数据流中存在与所述当前数据包相邻的下一个数据包的情况下,则将所述下一个数据包作为所述当前数据包,并重新开始计时,执行所述判断计时时间是否达到所述时间间隔的步骤;
在所述计时时间达到所述时间间隔或者在所述时间间隔内所述待传输数据流中不存在与所述当前数据包相邻的下一个数据包的情况下,则将所有所述当前数据包作为所述子数据流。
13.根据权利要求1至12任意一项所述的数据流分割方法,其特征在于,针对于所述目标等价多路径组当前对应的时间间隔的确定方式,所述方法包括:
基于所述目标等价多路径组中各链路当前对应的报文往返时间,确定出所述目标等价多路径组的时间间隔。
14.根据权利要求13所述的数据流分割方法,其特征在于,在所述基于所述目标等价多路径组中各链路当前对应的报文往返时间,确定出所述目标等价多路径组的时间间隔之前,还包括:
判断所述目标等价多路径组中各链路当前对应的报文往返时间是否发生变化;
在所述目标等价多路径组中至少一条链路的报文往返时间发生变化的情况下,执行所述基于所述目标等价多路径组中各链路当前对应的报文往返时间,确定出所述目标等价多路径组的时间间隔的步骤。
15.根据权利要求13所述的数据流分割方法,其特征在于,所述基于所述目标等价多路径组中各链路当前对应的报文往返时间,确定出所述目标等价多路径组的时间间隔包括:
选取所述目标等价多路径组中各链路当前对应的报文往返时间中取值最大的报文往返时间;
基于所述取值最大的报文往返时间,确定出报文传输时间;
随机选取大于或等于所述报文传输时间的数值作为所述目标等价多路径组的时间间隔。
16.根据权利要求15所述的数据流分割方法,其特征在于,所述基于所述取值最大的报文往返时间,确定出报文传输时间包括:
将所述取值最大的报文往返时间除以2得到的数值作为所述报文传输时间。
17.根据权利要求1所述的数据流分割方法,其特征在于,在所述目标等价多路径组的时间间隔为最大的报文往返时间除以2得到的数值的情况下,所述基于所述子数据流的带宽与所述目标等价多路径组的流量阈值的大小关系,调整所述目标等价多路径组当前对应的时间间隔包括:
判断所述子数据流的带宽是否大于或等于所述目标等价多路径组的流量阈值;
在所述子数据流的带宽大于或等于所述目标等价多路径组的流量阈值的情况下,保持所述目标等价多路径组当前对应的时间间隔不变;
在所述子数据流的带宽小于所述目标等价多路径组的流量阈值的情况下,基于调整系数调大所述目标等价多路径组当前对应的时间间隔。
18.根据权利要求1所述的数据流分割方法,其特征在于,所述将分割得到的子数据流通过所述目标等价多路径组中对应的链路传输至目的设备包括:
将所述子数据流的五元组信息增加扰动值后进行哈希运算,以得到子数据流运算结果;其中,不同子数据流对应不同的扰动值;
基于所述子数据流运算结果,确定出所述目标等价多路径组中与所述子数据流所匹配的目标链路;
将所述子数据流通过所述目标链路转发至所述目的设备。
19.根据权利要求18所述的数据流分割方法,其特征在于,所述将所述子数据流的五元组信息增加扰动值后进行哈希运算,以得到子数据流运算结果包括:
在分割得到所述子数据流的情况下,将上一次子数据流对应的扰动值加一后与所述子数据流的五元组信息相加,以得到扰动后的五元组信息;
对所述扰动后的五元组信息进行哈希运算,以得到所述子数据流运算结果。
20.一种数据流分割装置,其特征在于,包括第一确定单元、第二确定单元、分割单元、传输单元和调整单元;
所述第一确定单元,用于依据各等价多路径组的链路状态信息,确定出各所述等价多路径组的流量阈值;
所述第二确定单元,用于根据各所述等价多路径组的流量阈值以及源设备传输的数据流的流量信息,确定出所述数据流所属的类别和目标等价多路径组;
所述分割单元,用于按照所述目标等价多路径组当前对应的时间间隔,对待传输数据流进行分割;
所述传输单元,用于将分割得到的子数据流通过所述目标等价多路径组中对应的链路传输至目的设备;
所述调整单元,用于每完成一个所述子数据流的传输,则基于所述子数据流的带宽与所述目标等价多路径组的流量阈值的大小关系,调整所述目标等价多路径组当前对应的时间间隔;将取值最大的报文往返时间除以2得到的数值作为时间间隔,在子数据流的带宽小于目标等价多路径组的流量阈值时,调大目标等价多路径组当前对应的时间间隔。
21.一种数据流分割设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如权利要求1至19任意一项所述数据流分割方法的步骤。
22.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至19任意一项所述数据流分割方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410059683.1A CN117579543B (zh) | 2024-01-16 | 2024-01-16 | 一种数据流分割方法、装置、设备和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410059683.1A CN117579543B (zh) | 2024-01-16 | 2024-01-16 | 一种数据流分割方法、装置、设备和计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117579543A CN117579543A (zh) | 2024-02-20 |
CN117579543B true CN117579543B (zh) | 2024-04-05 |
Family
ID=89862855
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410059683.1A Active CN117579543B (zh) | 2024-01-16 | 2024-01-16 | 一种数据流分割方法、装置、设备和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117579543B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109361603A (zh) * | 2018-11-26 | 2019-02-19 | 浪潮思科网络科技有限公司 | 基于可编程交换芯片动态调整等价路径流量的方法及系统 |
CN113037624A (zh) * | 2019-12-25 | 2021-06-25 | 华为技术有限公司 | 一种数据流控制的方法和装置 |
CN114095441A (zh) * | 2021-11-15 | 2022-02-25 | 新华三大数据技术有限公司 | 一种实现ecmp流量负载均衡的方法及电子设备 |
CN114567915A (zh) * | 2022-01-25 | 2022-05-31 | 中科南京移动通信与计算创新研究院 | 基于改进等价多路由的最佳路径规划方法及系统 |
CN114979005A (zh) * | 2021-02-24 | 2022-08-30 | 华为技术有限公司 | 一种负载分担方法、装置及芯片 |
CN116489154A (zh) * | 2022-01-14 | 2023-07-25 | 华为技术有限公司 | 一种负载分担方法和相关装置 |
-
2024
- 2024-01-16 CN CN202410059683.1A patent/CN117579543B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109361603A (zh) * | 2018-11-26 | 2019-02-19 | 浪潮思科网络科技有限公司 | 基于可编程交换芯片动态调整等价路径流量的方法及系统 |
CN113037624A (zh) * | 2019-12-25 | 2021-06-25 | 华为技术有限公司 | 一种数据流控制的方法和装置 |
CN114979005A (zh) * | 2021-02-24 | 2022-08-30 | 华为技术有限公司 | 一种负载分担方法、装置及芯片 |
CN114095441A (zh) * | 2021-11-15 | 2022-02-25 | 新华三大数据技术有限公司 | 一种实现ecmp流量负载均衡的方法及电子设备 |
CN116489154A (zh) * | 2022-01-14 | 2023-07-25 | 华为技术有限公司 | 一种负载分担方法和相关装置 |
CN114567915A (zh) * | 2022-01-25 | 2022-05-31 | 中科南京移动通信与计算创新研究院 | 基于改进等价多路由的最佳路径规划方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN117579543A (zh) | 2024-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10735325B1 (en) | Congestion avoidance in multipath routed flows | |
US10778588B1 (en) | Load balancing for multipath groups routed flows by re-associating routes to multipath groups | |
US10693790B1 (en) | Load balancing for multipath group routed flows by re-routing the congested route | |
Wang et al. | Freeway: Adaptively isolating the elephant and mice flows on different transmission paths | |
US8149708B2 (en) | Dynamically switching streams of packets among dedicated and shared queues | |
WO2017025021A1 (zh) | 一种处理流表的方法及装置 | |
CN110650099B (zh) | 预测计算设备中的包寿命的排队系统 | |
CN107404443B (zh) | 队列缓存资源控制方法及装置、服务器及存储介质 | |
WO2020192358A1 (zh) | 一种转发报文的方法和网络设备 | |
WO2012145841A1 (en) | Hierarchical profiled scheduling and shaping | |
US10419370B2 (en) | Hierarchical packet buffer system | |
CN109614215A (zh) | 基于深度强化学习的流调度方法、装置、设备及介质 | |
CN111585911B (zh) | 数据中心网络流量负载的均衡方法 | |
CN114079638A (zh) | 多协议混合网络的数据传输方法、装置和存储介质 | |
Hu et al. | TLB: Traffic-aware load balancing with adaptive granularity in data center networks | |
CN110519302A (zh) | 一种防报文攻击的方法和装置 | |
CN111224888A (zh) | 发送报文的方法及报文转发设备 | |
CN116097631A (zh) | 跨具有自适应每隧道服务质量(QoS)的多个集线器的带宽的动态确定性调整 | |
CN113328953A (zh) | 网络拥塞调整的方法、装置和存储介质 | |
Wang et al. | Load balancing for heterogeneous traffic in datacenter networks | |
CN111740922B (zh) | 数据传输方法、装置、电子设备及介质 | |
CN117579543B (zh) | 一种数据流分割方法、装置、设备和计算机可读存储介质 | |
CN109547352B (zh) | 报文缓存队列的动态分配方法和装置 | |
Li et al. | CoopCon: Cooperative hybrid congestion control scheme for named data networking | |
CN113765796B (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 |