CN104753963B - 基于冗余技术的数据中心短流加速方法及系统 - Google Patents
基于冗余技术的数据中心短流加速方法及系统 Download PDFInfo
- Publication number
- CN104753963B CN104753963B CN201510196467.2A CN201510196467A CN104753963B CN 104753963 B CN104753963 B CN 104753963B CN 201510196467 A CN201510196467 A CN 201510196467A CN 104753963 B CN104753963 B CN 104753963B
- Authority
- CN
- China
- Prior art keywords
- stream
- redundancy
- repnum
- path
- source
- 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
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了基于冗余技术的数据中心短流加速方法和系统,方法包括周期性运行冗余流数量分配模块的步骤,和为应用程序短流分配冗余流数量,并通过路径碰撞避免方法获得路径不重叠的源端口号集合来创建原始流和对应数量的冗余流的步骤;系统包括负责选择冗余流数量的冗余流数量分配模块、负责避免原始流和冗余流之间发生路径重叠的路径碰撞避免模块、数据库,和用于向应用程序提供建立TCP流的调用接口,并根据冗余流数目调用路径碰撞避免模块获得路径不重叠的源端口号集合来创建原始流和对应数量冗余流的主模块。避免了原始流及冗余流之间发生路径重叠;并对不同大小的短流分配不同数量的冗余流,等价路径利用合理,更为高效、易部署、负载低。
Description
技术领域
本发明涉及一种数据中心的短流加速方法和系统,具体涉及一种基于冗余技术的数据中心短流加速方法和系统。
背景技术
在数据中心中,实时应用的任务大多由短流构成,这些短流完成的快慢对用户的体验有重要的影响。使用冗余技术降低短流完成时间是一种很有潜力的方法,具体方法是为每一条短流(原始流)创建一条携带相同内容的流(冗余流),应用程序使用最先完成的流的结果。在理想的情况下,这种技术可以利用数据中心的等价路径加速短流的完成。然而,由于数据中心中等价多路径协议的使用,冗余流和原始流很有可能被路由到同一条路径,这导致冗余技术加速短流的作用十分有限。另外,为每一条短流之创建一条冗余流不能有效利用数据中心中的多条等价路径。现有技术中存在的冗余流与原始流的路径碰撞以及等价路径不能充分利用等问题,带来了较大的性能损失,这些问题亟待解决。
发明内容
发明目的:为了解决现有的数据中心短流加速方法的不足,提供一种基于冗余技术的数据中心短流加速方法,同时提供一种基于冗余技术的数据中心短流加速系统。
技术方案:为解决上述技术问题,本发明提供的基于冗余技术的数据中心短流加速方法,包括如下步骤:
周期性运行冗余流数量分配模块的步骤,包括:周期性地根据历史数据确定不同大小的短流创建冗余流的数量,并将结果存储在数据库的冗余流数量表中;
为应用程序的短流分配冗余流数量,并通过路径碰撞避免方法获得路径不重叠的源端口号集合来创建原始流和对应数量的冗余流的步骤,包括:
1)应用程序调用主模块提供的接口创建TCP连接时,主模块判断该TCP流的源IP地址和目的IP地址是否在同一Top-of-Rack交换机上,如是则结束,如否则进入步骤2);
2)判断该TCP流的大小L是否大于短流长度阈值S,如是则结束,如否则进入步骤3);
3)根据TCP流的大小L查询数据库中的冗余流数量表repNum确定要创建的冗余流的数目repNumL;
4)调用路径碰撞避免模块得到路径不重叠的1+repNumL个源端口号;
5)将获得的1+repNumL个源端口号分别作为1条原始流和repNumL个冗余流的源端口号,调用TCP套接字创建1+repNumL条TCP连接。
优选的,所述通过路径碰撞避免模块得到路径不重叠的1+repNumL个源端口号的步骤包括:根据至少包括TCP流的源IP地址、目的IP地址、目的端口号和要创建的复制流的数目k=1+repNumL的输入参数来查询源端口号对应表,当源端口号对应表中存储有该输入参数对应的记录时,直接查表获得路径不重叠的1+repNumL个端口号作为原始流和冗余流的源端口号;以及当源端口号对应表中没有该输入参数对应的记录时,迭代式地通过路径侦测模块获得路径不重叠的1+repNumL个端口号作为原始流和冗余流的源端口号,并将这1+repNumL个端口号及其对应的输入参数作为一条记录存储在数据库的源端口号对应表中。具体为:
41)输入参数包括TCP流的源IP地址、目的IP地址、目的端口号和要创建的复制流的数目k=1+repNumL,所述复制流包括1条原始流和repNumL条冗余流,初始化源端口号集合srcPorts及其对应的路径集合Addr为空集;
42)以步骤41)输入参数中的源IP地址、目的IP地址和目的端口号为主键,判断是否能够在数据库中的表IP_srcPorts中查询到相应的记录,如是,则将查询到的结果存储在源端口号集合srcPorts中,进入步骤48),如否,则进入步骤43);
43)选择最小的可用端口号port作为原始流的源端口号,同时使port自减1;
44)判断k是否为0,如是则进入步骤47),如否则进入步骤45);
45)port以步长为1递增,通过路径侦测模块获得递增后的端口号port对应的路径addr,判断该路径addr是否属于路径集合Addr,如是则重复步骤45),如否,则进入步骤46);
46)将当前的port及其对应的addr分别加入源端口号集合srcPorts和路径集合Addr中去,k=k-1,进入步骤44);
47)将输入参数及其对应的源端口号集合srcPorts作为一条记录存储到数据库中的源端口号对应表IP_srcPorts中;
48)输出路径不重叠的包括原始流和冗余流在内的源端口号集合srcPorts,结束。
优选的,所述通过路径侦测模块获得端口号对应的路径的步骤包括:根据至少包括源IP地址、目的IP地址、端口号port、目的端口号的输入参数,创建一个TTL为3的报文,并发送出去获得ICMP应答报文,根据应答报文的源IP地址获得输入参数中端口号port对应的路径。
优选的,所述周期性运行的冗余流数量分配模块的步骤,包括:
61)输入参数包括历史数据的总流量Θ、历史数据中不同大小的流的数目数组π={π1,π2,…,πi,…,πs}、用于约束负载的冗余流数目的约束系数∈和短流长度阈值S;
62)初始化sum为0,T为从1到S的整数的集合,以及长度为S用来存储不同大小的短流创建冗余流的数量的冗余流数量表repNum={0,0,0,0,…,0},大小为i的所有流的流量和η={π1,2*π2,…,i*πi,…,S*πs};
63)在集合T中选择使最大的i赋值给L,其中p为碰撞概率,进入步骤64);
64)判断当大小为L的流增加一条冗余流时,新增加的流量会不会使总的流量大于限制流量,即sum+ηL>ε*Θ是否成立,若是,则进入步骤65),否则,进入步骤66);
65)从集合T中删除L,进入步骤63);
66)判断数组π的第L项πL不等于零及冗余流数量表repNum中表示大小为L的流的冗余流数目repNumL小于数据中心中等价路径数目ecpNum两个条件是否同时成立,当判断结果为否时,则进入步骤67),否则进入步骤68);
67)从集合T中删除L,进入步骤69);
68)更新冗余流数量表repNum中表示大小为L的流的冗余流数目repNumL=repNumL+1,同时更新sum=sum+ηL,进入步骤69);
69)判断集合T是否为空,若是,则进入步骤610),否则进入步骤63);
610)将用来存储不同大小的短流创建冗余流的数量的冗余流数量表repNum写入数据库,结束。
本发明同时提供的一种基于冗余技术的数据中心短流加速系统,包括:
主模块,用于向应用程序提供建立TCP流的调用接口;以及用于根据流的大小L查询数据库中的冗余流数量表确定要创建的冗余流的数目repNumL;以及用于调用路径碰撞避免模块得到原始流和repNumL个冗余流的源端口号集合,并调用TCP套接字创建1条原始流和repNumL条冗余流;
冗余流数量分配模块,用于根据历史数据,确定不同大小的短流创建冗余流的数量,并将结果存储在数据库的冗余流数量表中;
路径碰撞避免模块,用于根据至少包括TCP流的源IP地址、目的IP地址、目的端口号和要创建的复制流的数目k=1+repNumL的输入参数,获得路径不重叠的1+repNumL个端口号作为原始流和冗余流的源端口号集合;并将这1+repNumL个端口号集合及其对应的输入参数作为一条记录存储在数据库的源端口号对应表中;
数据库,用于存储冗余流数量分配模块得到的冗余流数量表,和通过路径碰撞避免模块获得的对应不同输入参数的原始流和冗余流的源端口号对应表。
优选的,所述路径碰撞避免模块HCA,用于根据至少包括TCP流的源IP地址、目的IP地址、目的端口号和要创建的复制流的数目k=1+repNumL的输入参数来查询源端口号对应表,当源端口号对应表中存储有该输入参数对应的记录时,查询源端口号对应表获得路径不重叠的1+repNumL个端口号作为原始流和冗余流的源端口号;以及当源端口号对应表中没有该输入参数对应的记录时,通过路径侦测模块获得路径不重叠的1+repNumL个端口号作为原始流和冗余流的源端口号,并将这1+repNumL个端口号及其对应的输入参数作为一条记录存储在数据库的源端口号对应表中。
优选的,上述路径侦测模块,用于根据至少包括源IP地址、目的IP地址、端口号port、目的端口号的输入参数,创建一个TTL为3的报文,并发送出去获得ICMP应答报文,根据应答报文的源IP地址获得并返回输入参数中端口号port对应的路径。
有益效果:本发明向应用程序提供接口,为应用程序的短流创建多条冗余流,一方面通过路径碰撞避免技术把冗余流和原始流路由到不同的路径,避免原始流和冗余流、及冗余流和冗余流之间发生路径重叠;另一方面通过冗余流数量分配技术,针对不同大小的短流分配不同数量的冗余流,整体而言,在控制负载的前提下最大化等价路径的使用,等价路径利用合理高效。本发明提供的基于短流路径碰撞避免和冗余流分配技术的数据中心短流加速方法和系统,相对现有技术,其主要优势包括:
1、高效:该方案能够有效避免冗余流的路径冲突,大大降低数据中心中短流的完成时间,通过仿真实验表明,相比现有技术基于简单复制的短流加速方案,本发明能够进一步对短流提速至少25%。
2、易部署:不需要修改数据中心中的交换机,以及主机的TCP/IP协议栈,可以作为应用层与套接字层之间的中间软件层,以实现为库供应用程序调用,整体易于在数据中心中部署,易实现。
3、负载低:冗余流的创建对大流的影响几乎可以忽略不计。
整体而言,本发明克服了现有的数据中心短流加速方案的不足,即冗余流与原始流的路径碰撞以及等价路径不能充分利用带来的性能损失,更为高效、易部署实现、负载低。
附图说明
图1是实施例的系统架构图;
图2是实施例中主模块SmartRep的流程图;
图3为实施例中短流路径重叠避免模块HCA的流程图;
图4为实施例中路径探测例程traceRoute的流程图;
图5为实施例中冗余流分配模块RepNumAssign的流程图。
具体实施方式
下面结合实施例对本发明做进一步的详细说明,本实施列对本发明不构成限定。
如图1所示,本实施例提供的基于冗余技术的数据中心短流加速系统,包括:
主模块SmartRep,用于向应用程序提供建立TCP流的调用接口;以及用于根据流的大小查询数据库中的冗余流数量表RepNum确定要创建的冗余流的数目repNumL;以及用于调用路径碰撞避免模块得到原始流和repNumL个冗余流的源端口号集合srcPorts,并调用TCP套接字创建1条原始流和repNumL条冗余流。
冗余流数量分配模块RepNumAssign,用于根据历史数据,确定不同大小的短流创建冗余流的数量,并将结果存储在数据库的冗余流数量表RepNum中。
路径碰撞避免模块HCA,用于根据至少包括TCP流的源IP地址、目的IP地址、目的端口号和要创建的复制流的数目k=1+repNumL的输入参数,获得路径不重叠的1+repNumL个端口号作为原始流和冗余流的源端口号集合srcPorts;并将这1+repNumL个端口号集合及其对应的输入参数作为一条记录存储在数据库的源端口号对应表IP_srcPorts中。在数据中心中,等价多路径协议通过哈希TCP流的五元组得到该流的路径。冗余流和原始流的IP地址和目的端口号是一样的,只有源端口号不同。为了避免冗余流和原始流以及冗余流和冗余流通过同一条路径,利用ICMP的差错报告报文和数据中心网络有规则的FatTree结构,可以对每对主机间的TCP流通过的路径给出预测,并通过源端口号选择,保证这些流通过不同的路径。本实施例是通过构造一个具有指定TCP五元组并且TTL为3的报文,发送出去得到ICMP应答报文,根据应答报文的IP地址识别路径;进而通过修改探测报文的源端口号,可以探测出与原始流具有相同IP和目的端口号但是源端口号不同的流的路径,通过本方法可以找到原始流的路径,以及各个源端口对应的路径,从这些源端口中选择一个对应路径与原始流的路径不同的端口,分配给冗余流,从而获得路径不重叠的1+repNumL个端口号作为原始流和冗余流的源端口号集合srcPorts。
数据库,用于存储冗余流数量分配模块得到的冗余流数量表RepNum,和通过路径碰撞避免模块获得的对应不同输入参数的原始流和冗余流的源端口号对应表IP_srcPorts。
本实施例中,上述路径碰撞避免模块HCA,根据至少包括TCP流的源IP地址、目的IP地址、目的端口号和要创建的复制流的数目k=1+repNumL的输入参数来查询源端口号对应表IP_srcPorts,当源端口号对应表中存储有该输入参数对应的记录时,直接查表获得路径不重叠的1+repNumL个端口号作为原始流和冗余流的源端口号;以及当源端口号对应表IP_srcPorts中没有该输入参数对应的记录时,迭代式地通过路径侦测模块TraceRoute获得路径不重叠的1+repNumL个端口号作为原始流和冗余流的源端口号,并将这1+repNumL个端口号及其对应的输入参数作为一条记录存储在数据库的源端口号对应表IP_srcPorts中。
路径碰撞避免模块HCA调用路径侦测模块TraceRoute主动发送报文探测具有特定TCP五元组的流的路径,从而为冗余流选择合适的TCP源端口,避免冗余流之间以及冗余流和原始流之间的路径重叠。其中路径侦测模块TraceRoute,用于通过主动发送报文探测具有各种TCP/IP五元组的流的路径,具体为用于根据至少包括源IP地址、目的IP地址、端口号port、目的端口号的输入参数,创建一个TTL为3的报文,并发送出去获得ICMP应答报文,根据应答报文的源IP地址获得并返回输入参数中端口号port对应的路径。
本实施例提供的基于冗余技术的数据中心短流加速方法,包括:周期性运行冗余流数量分配模块的步骤,和为应用程序的短流分配冗余流数量,并通过路径碰撞避免方法获得路径不重叠的源端口号集合来创建原始流和对应数量的冗余流的步骤。
其中为应用程序的短流分配冗余流数量,并通过路径碰撞避免方法获得路径不重叠的源端口号集合来创建原始流和对应数量的冗余流的步骤,主要通过主模块SmartRep来实现,在接受应用程序创建一条TCP流的请求时,主模块SmartRep首先要检测流的两端主机是否在同一个Top-of-Rack交换机上,如果是,那么不需要为该流创建冗余流,因为该流的主机之间只有一条等价路径,创建冗余流没有意义;然后SmartRep需要判断应用程序创建的流是否为短流,可根据实际需要设定长度阈值S,并规定大小不大于长度阈值S的流是短流,只有短流才有实施加速的必要。最后查询数据库的表repNum获得需要创建的冗余流数目repNumL,调用HCA获得原始流和repNumL条冗余流的源端口号,并使用这1+repNumL个端口号调用TCP套接字创建原始流和repNumL条冗余流。结合图2所示的主模块SmartRep的流程图可见,具体包括:
1)应用程序调用主模块提供的接口创建TCP连接时,主模块判断该TCP流的源IP地址和目的IP地址是否在同一Top-of-Rack交换机上,如是则结束,如否则进入步骤2);
2)判断该TCP流的大小L是否大于短流长度阈值S,如是则结束,如否则进入步骤3);
3)根据TCP流的大小L查询数据库中的冗余流数量表repNum确定要创建的冗余流的数目repNumL;
4)调用路径碰撞避免模块得到路径不重叠的1+repNumL个源端口号;
5)将获得的1+repNumL个源端口号分别作为1条原始流和repNumL个冗余流的源端口号,调用TCP套接字创建1+repNumL条TCP连接。
路径碰撞避免模块HCA针对三元组(srcIP,dstIP,dstPort)和要创建的冗余流的数目k=1+repNumL,计算获取原始流和冗余流的源端口号,并且保证使用这些端口号这些流的路径均不发生重叠,即迭代式地搜索可用的源端口,并返回搜索到的路径均不重叠的k个端口号。为了提高效率,本实施例提供的方法中把已经计算得到的结果保存在数据库中的源端口号对应表IP_srcPorts中,以避免重复计算。上述通过路径碰撞避免模块得到路径不重叠的k=1+repNumL个源端口号的步骤,如图3所示,具体包括:
41)输入参数包括TCP流的源IP地址、目的IP地址、目的端口号和要创建的复制流的数目k=1+repNumL,所述复制流包括1条原始流和repNumL条冗余流,初始化源端口号集合srcPorts及其对应的路径集合Addr为空集;
42)以步骤41)输入参数中的源IP地址、目的IP地址和目的端口号为主键,判断是否能够在数据库中的表IP_srcPorts中查询到相应的记录,如是,则将查询到的结果存储在源端口号集合srcPorts中,进入步骤48),如否,则进入步骤43);
43)选择最小的可用端口号port作为原始流的源端口号,同时使port自减1;
44)判断k是否为0,如是则进入步骤47),如否则进入步骤45);
45)port以步长为1递增,通过路径侦测模块获得递增后的端口号port对应的路径addr,判断该路径addr是否属于路径集合Addr,如是则重复步骤45),如否,则进入步骤46);
46)将当前的port及其对应的addr分别加入源端口号集合srcPorts和路径集合Addr中去,k=k-1,进入步骤44);
47)将输入参数及其对应的源端口号集合srcPorts作为一条记录存储到数据库中的源端口号对应表IP_srcPorts中;
48)输出路径不重叠的包括原始流和冗余流在内的源端口号集合srcPorts,结束。
本方法通过traceRoute计算k个源端口集合时,保证计算每一个端口时,它对应的路径都与之前计算的端口对应的路径不重叠。通过图3可见,一旦找到的下一个端口的路径与之前的端口对应的路径重叠,就选择下一个端口重新测试,直到找到对应路径不重叠的端口为止。
源端口对应的路径的确定由路径侦测模块TraceRoute完成,如图4所示,上述通过路径侦测模块TraceRoute获得端口号port对应的路径的步骤包括:根据至少包括源IP地址、目的IP地址、端口号port、目的端口号的输入参数,创建一个TTL为3的报文,并发送出去,当这个报文到达第三跳时,TTL变为0,第三跳交换机发送ICMP差错报文给源主机,这个差错报文包含第三跳交换机的地址信息。由于FatTree数据中心拓扑的特殊性,第三跳交换机能够确定一条路径,因此这样就可以根据获得的ICMP应答报文的源IP地址获得输入参数中端口号port对应的路径。
为每一条短流创建一条冗余流不能够利用数据中心中大量的等价路径,而为每一条原始流创建与等价路径等量的冗余流会造成很大的开销。为此,本发明对不同大小和数量的冗余流对数据中心短流完成时间的影响建模,为了充分利用数据中心中存在的多条等价路径同时保持额外负载在可以忍受的范围内,该模块建立了如下模型:
其中,S是短流和长流的界限,即长度阈值,也可称为小流划分界限,也就是说当一条流的容量不大于S时,它被认为是一条短流;πi是历史数据中大小为i的流的数目;xi表示为大小为i的流创建的复制流的数目,不能超过等价路径的数目ecoNum减1;因此,不等式的左边就是因为创建冗余流引起的开销。Θ是历史数据的总流量;ε是负载约束系数,为一个小于1的数,表示把创建复制流的开销限制在一个很小的范围。
式(2)为目标函数,其中的p表示碰撞概率,通常设置为0.1。当xi的冗余流都与原始流发生路径碰撞时,此时的收益为0,否则为1。即冗余流与原始流都不发生路径碰撞时概率是(),因此总的收益的期望值是最大化这个收益等价于最小化
通过上述建立的模型,本实施例提供了一个以历史数据为输入的离线算法,该算法在限定冗余流开销的前提下,根据历史数据中短流的大小和数量来确定某一指定大小的流应创建的冗余流数量。该算法运行于冗余流数量分配模块RepNumAssign,它每次选择x的某一项xi加1,这相当于对目标函数 中的第i项乘以p。由于p小于1,因此每次执行(xi+1)都会使得目标函数值变小,而且如果在目标函数的S项()中选择最大的一项执行(xi+1),会使得目标函数值减小的最多。
上述周期性运行冗余流数量分配模块RepNumAssign的步骤,具体如图5所示:
61)输入参数包括历史数据的总流量Θ、历史数据中不同大小的流的数目数组π={π1,π2,…,πi,…,πs}、用于约束负载的冗余流数目的约束系数∈和短流长度阈值S;
62)初始化sum为0,T为从1到S的整数的集合,以及长度为S用来存储不同大小的短流创建冗余流的数量的冗余流数量表repNum={0,0,0,0,…,0},即repNum初始化为0的集合,大小为i的所有流的流量和η={π1,2*π2,…,i*πi,…,S*πs},其中η的第L项ηL=L*πL表示大小为L的所有流的流量之和,repNum的第L项repNumL表示大小为L的流的冗余流的数目;
63)在集合T中选择使最大的i赋值给L,其中p为碰撞概率,进入步骤64);
64)判断当大小为L的流增加一条冗余流时,新增加的流量会不会使总的流量大于限制流量,即sum+ηL>ε*Θ是否成立,若是,则进入步骤65),否则,进入步骤66);
65)从集合T中删除L,进入步骤63);
66)判断数组π的第L项πL不等于零及冗余流数量表repNum中表示大小为L的流的冗余流数目repNumL小于数据中心中等价路径数目ecpNum两个条件是否同时成立,当判断结果为否时,则进入步骤67),否则进入步骤68);
67)从集合T中删除L,进入步骤69);
68)更新冗余流数量表repNum中表示大小为L的流的冗余流数目repNumL=repNumL+1,即将数组repNum的第L项repNumL加1,同时更新sum=sum+ηL,进入步骤69);
69)判断集合T是否为空,若是,则进入步骤610),否则进入步骤63);
610)将用来存储不同大小的短流创建冗余流的数量的冗余流数量表repNum写入数据库,结束。
仿真实验:
实验条件:
硬件:24核心,24Gb内存;
系统:linux系统,2.6版本内核;
仿真平台:ns-2.35;
仿真设置:数据中心网络采用Fattree结构,网络中有250个节点,运行的ECMP协议采用crc16作为哈希函数,流的发送端和接收端随机选择,流的产生时间符合指数分布,流的大小符合数据中心网络中经验性的分布函数,仿真实验在八种不同的负载下运行。
与本实施例对比的现有技术为:为每一条短流(原始流)创建一条携带相同内容的流(冗余流),应用程序使用最先完成的流的结果。
实验结果:下面的表格是本发明与现有技术的实验结果对比,其中表1是短流AFCT(Average Flow Completion Time,标准化流平均完成时间)的对比,表2是短流Tail-FCT(标准化流平均完成时间)的对比,标准化流完成时间是用真实的流完成时间除以流单独占用所有带宽资源时的完成时间得到的。从仿真实验结果来看,相比现有技术基于简单复制的短流加速方案,本发明能够进一步对短流提速至少25%(提速比例通过(现有技术AFCT-本发明AFCT)/现有技术AFCT得到)。
表1
表2
由上可见,本实施例提供的短流加速方法中,包括负责避免冗余TCP流之间发生路径重叠的HCA模块,以及负责选择最优冗余流数量的RepNumAssign模块。HCA算法通过主动发送报文探测具有各种TCP/IP五元组的流的路径信息,然后利用这些信息为冗余流选择合适的源端口,使其路径各不相同,即原始流和冗余流的路径互不重叠;同时,为了使得多条等价路径得到合理的利用,且开销尽可能小,本实施例根据历史数据对不同大小的流分配不同数量的冗余流,即通过RepNumAssign模块,对不同大小的冗余流对数据中心短流完成时间的影响建模,选择为不同大小的TCP流确定最优的冗余流数量。该方案能够有效避免冗余流的路径冲突,大大降低数据中心中短流的完成时间;另外,该方案不需要修改数据中心中的交换机,以及主机的TCP/IP协议栈,可以实现为库供应用程序调用,使其易于在数据中心中部署。
本发明具体应用途径很多,以上所述仅是本发明的优选实施方式,应当指出以上实施列对本发明不构成限定,相关工作人员在不偏离本发明技术思想的范围内,所进行的多样变化和修改,均落在本发明的保护范围内。
Claims (7)
1.一种基于冗余技术的数据中心短流加速方法,其特征在于包括如下步骤:
周期性运行冗余流数量分配模块的步骤,包括:周期性地根据历史数据确定不同大小的短流创建冗余流的数量,并将结果存储在数据库的冗余流数量表中;
为应用程序的短流分配冗余流数量,并通过路径碰撞避免方法获得路径不重叠的源端口号集合来创建原始流和对应数量的冗余流的步骤,包括:
1)应用程序调用主模块提供的接口创建TCP连接时,主模块判断该TCP流的源IP地址和目的IP地址是否在同一Top-of-Rack交换机上,如是则结束,如否则进入步骤2);
2)判断该TCP流的大小L是否大于短流长度阈值S,如是则结束,如否则进入步骤3);
3)根据TCP流的大小L查询数据库中的冗余流数量表repNum确定要创建的冗余流的数目repNumL;
4)调用路径碰撞避免模块得到路径不重叠的1+repNumL个源端口号;
5)将获得的1+repNumL个源端口号分别作为1条原始流和repNumL个冗余流的源端口号,调用TCP套接字创建1+repNumL条TCP连接;
其中步骤4)调用路径碰撞避免模块得到路径不重叠的1+repNumL个源端口号的步骤包括:根据至少包括TCP流的源IP地址、目的IP地址、目的端口号和要创建的复制流的数目k=1+repNumL的输入参数来查询源端口号对应表,当源端口号对应表中存储有该输入参数对应的记录时,直接查表获得路径不重叠的1+repNumL个端口号作为原始流和冗余流的源端口号;以及当源端口号对应表中没有该输入参数对应的记录时,迭代式地通过路径侦测模块获得路径不重叠的1+repNumL个端口号作为原始流和冗余流的源端口号,并将这1+repNumL个端口号及其对应的输入参数作为一条记录存储在数据库的源端口号对应表中。
2.根据权利要求1所述的基于冗余技术的数据中心短流加速方法,其特征在于:
所述通过路径碰撞避免模块得到路径不重叠的1+repNumL个源端口号的步骤包括:
41)输入参数包括TCP流的源IP地址、目的IP地址、目的端口号和要创建的复制流的数目k=1+repNumL,所述复制流包括1条原始流和repNumL条冗余流,初始化源端口号集合srcPorts及其对应的路径集合Addr为空集;
42)以步骤41)输入参数中的源IP地址、目的IP地址和目的端口号为主键,判断是否能够在数据库中的表IP_srcPorts中查询到相应的记录,如是,则将查询到的结果存储在源端口号集合srcPorts中,进入步骤48),如否,则进入步骤43);
43)选择最小的可用端口号port作为原始流的源端口号,同时使port自减1;
44)判断k是否为0,如是则进入步骤47),如否则进入步骤45);
45)port以步长为1递增,通过路径侦测模块获得递增后的端口号port对应的路径addr,判断该路径addr是否属于路径集合Addr,如是则重复步骤45),如否,则进入步骤46);
46)将当前的port及其对应的addr分别加入源端口号集合srcPorts和路径集合Addr中去,k=k-1,进入步骤44);
47)将输入参数及其对应的源端口号集合srcPorts作为一条记录存储到数据库中的源端口号对应表IP_srcPorts中;
48)输出路径不重叠的包括原始流和冗余流在内的源端口号集合srcPorts,结束。
3.根据权利要求2所述的基于冗余技术的数据中心短流加速方法,其特征在于:所述通过路径侦测模块获得端口号对应的路径的步骤包括:根据至少包括源IP地址、目的IP地址、端口号port、目的端口号的输入参数,创建一个TTL为3的报文,并发送出去获得ICMP应答报文,根据应答报文的源IP地址获得输入参数中端口号port对应的路径。
4.根据权利要求1所述的基于冗余技术的数据中心短流加速方法,其特征在于:
所述周期性运行的冗余流数量分配模块的步骤,包括:
61)输入参数包括历史数据的总流量Θ、历史数据中不同大小的流的数目数组π={π1,π2,…,πi,…,πs}、用于约束负载的冗余流数目的约束系数ε和短流长度阈值S;
62)初始化sum为0,T为从1到S的整数的集合,以及长度为S用来存储不同大小的短流创建冗余流的数量的冗余流数量表repNum={0,0,0,0,…,0},大小为i的所有流的流量和η={π1,2*π2,…,i*πi,…,S*πs};
63)在集合T中选择使最大的i赋值给L,其中p为碰撞概率,进入步骤64);
64)判断当大小为L的流增加一条冗余流时,新增加的流量会不会使总的流量大于限制流量,即sum+ηL>ε*Θ是否成立,若是,则进入步骤65),否则,进入步骤66);
65)从集合T中删除L,进入步骤63);
66)判断数组π的第L项πL不等于零及冗余流数量表repNum中表示大小为L的流的冗余流数目repNumL小于数据中心中等价路径数目ecpNum两个条件是否同时成立,当判断结果为否时,则进入步骤67),否则进入步骤68);
67)从集合T中删除L,进入步骤69);
68)更新冗余流数量表repNum中表示大小为L的流的冗余流数目repNumL=repNumL+1,同时更新sum=sum+ηL,进入步骤69);
69)判断集合T是否为空,若是,则进入步骤610),否则进入步骤63);
610)将用来存储不同大小的短流创建冗余流的数量的冗余流数量表repNum写入数据库,结束。
5.一种基于冗余技术的数据中心短流加速系统,其特征在于,包括:
主模块,用于向应用程序提供建立TCP流的调用接口;以及用于根据流的大小L查询数据库中的冗余流数量表确定要创建的冗余流的数目repNumL;以及用于调用路径碰撞避免模块得到原始流和repNumL个冗余流的源端口号集合,并调用TCP套接字创建1条原始流和repNumL条冗余流;
冗余流数量分配模块,用于根据历史数据,确定不同大小的短流创建冗余流的数量,并将结果存储在数据库的冗余流数量表中;
路径碰撞避免模块,用于根据至少包括TCP流的源IP地址、目的IP地址、目的端口号和要创建的复制流的数目k=1+repNumL的输入参数,获得路径不重叠的1+repNumL个端口号作为原始流和冗余流的源端口号集合;并将这1+repNumL个端口号集合及其对应的输入参数作为一条记录存储在数据库的源端口号对应表中;
数据库,用于存储冗余流数量分配模块得到的冗余流数量表,和通过路径碰撞避免模块获得的对应不同输入参数的原始流和冗余流的源端口号对应表。
6.根据权利要求5所述的基于冗余技术的数据中心短流加速系统,其特征在于:
所述路径碰撞避免模块HCA,用于根据至少包括TCP流的源IP地址、目的IP地址、目的端口号和要创建的复制流的数目k=1+repNumL的输入参数来查询源端口号对应表,当源端口号对应表中存储有该输入参数对应的记录时,查询源端口号对应表获得路径不重叠的1+repNumL个端口号作为原始流和冗余流的源端口号;以及当源端口号对应表中没有该输入参数对应的记录时,通过路径侦测模块获得路径不重叠的1+repNumL个端口号作为原始流和冗余流的源端口号,并将这1+repNumL个端口号及其对应的输入参数作为一条记录存储在数据库的源端口号对应表中。
7.根据权利要求6所述的基于冗余技术的数据中心短流加速系统,其特征在于:所述路径侦测模块,用于根据至少包括源IP地址、目的IP地址、端口号port、目的端口号的输入参数,创建一个TTL为3的报文,并发送出去获得ICMP应答报文,根据应答报文的源IP地址获得并返回输入参数中端口号port对应的路径。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510196467.2A CN104753963B (zh) | 2015-04-23 | 2015-04-23 | 基于冗余技术的数据中心短流加速方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510196467.2A CN104753963B (zh) | 2015-04-23 | 2015-04-23 | 基于冗余技术的数据中心短流加速方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104753963A CN104753963A (zh) | 2015-07-01 |
CN104753963B true CN104753963B (zh) | 2017-08-25 |
Family
ID=53593067
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510196467.2A Active CN104753963B (zh) | 2015-04-23 | 2015-04-23 | 基于冗余技术的数据中心短流加速方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104753963B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112751727A (zh) * | 2020-12-23 | 2021-05-04 | 新华三技术有限公司 | 一种检测链路的方法和网络设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101924705A (zh) * | 2010-09-13 | 2010-12-22 | 韩来权 | 基于可编程路由器的多路径旁路分流转发方法及系统 |
CN104038418A (zh) * | 2014-05-19 | 2014-09-10 | 暨南大学 | 针对混合型拓扑结构数据中心的路由方法、路径探测机制和报文处理机制 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8125907B2 (en) * | 2008-06-12 | 2012-02-28 | Talari Networks Incorporated | Flow-based adaptive private network with multiple WAN-paths |
-
2015
- 2015-04-23 CN CN201510196467.2A patent/CN104753963B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101924705A (zh) * | 2010-09-13 | 2010-12-22 | 韩来权 | 基于可编程路由器的多路径旁路分流转发方法及系统 |
CN104038418A (zh) * | 2014-05-19 | 2014-09-10 | 暨南大学 | 针对混合型拓扑结构数据中心的路由方法、路径探测机制和报文处理机制 |
Also Published As
Publication number | Publication date |
---|---|
CN104753963A (zh) | 2015-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109818865B (zh) | 一种sdn增强路径装箱装置及方法 | |
CN103746911B (zh) | 一种sdn网络结构及其通信方法 | |
CN106416132A (zh) | 使用控制器处的交换机建模接口控制网络交换机的系统和方法 | |
CN108566659A (zh) | 一种基于可靠性的5g网络切片在线映射方法 | |
CN104717098B (zh) | 一种数据处理方法及装置 | |
CN106537824B (zh) | 用于减少信息中心网络的响应时间的方法和装置 | |
CN103036792B (zh) | 一种最大化最小公平多数据流传输调度方法 | |
CN106899503B (zh) | 一种数据中心网络的路由选择方法及网络管理器 | |
Wang et al. | Virtual network mapping with traffic matrices | |
Wang et al. | Survivable virtual network mapping using optimal backup topology in virtualized SDN | |
CN107909228B (zh) | 基于模因计算的动态车辆收发货路径规划方法及装置 | |
CN104503826A (zh) | 一种云计算数据中心的虚拟机映射方法及装置 | |
CN109995580A (zh) | 5g网络切片中基于ga_pso混合算法的vn映射方法 | |
CN114285758A (zh) | 基于opnet的通信网络优化仿真系统、方法和装置 | |
Buriol et al. | Survivable IP network design with OSPF routing | |
CN104601473A (zh) | 一种带约束的多目标路径的路由生成方法及系统 | |
CN108259387A (zh) | 一种通过交换机构建的交换系统及其路由算法 | |
Cholvi et al. | Self-adapting network topologies in congested scenarios | |
Liu et al. | Optimal scheduling for multi-flow update in software-defined networks | |
Zhu et al. | Service function chain mapping with resource fragmentation avoidance | |
Mahey et al. | Capacity and flow assignment of data networks by generalized Benders decomposition | |
CN104753963B (zh) | 基于冗余技术的数据中心短流加速方法及系统 | |
CN105634976B (zh) | Clos系统中基于输出状态反馈的负载均衡方法及装置 | |
KR20150080183A (ko) | 데이터 센터 네트워크의 동적 트래픽 분배 방법 및 장치 | |
CN105453494B (zh) | 虚拟最短路径树建立及处理的方法及路径计算单元 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |