掌桥专利:专业的专利平台
掌桥专利
首页

基于数据中心网络的数据传输方法和数据中心系统

文献发布时间:2024-04-18 19:48:15


基于数据中心网络的数据传输方法和数据中心系统

技术领域

本申请涉及通信技术和云计算技术领域,特别是涉及一种基于数据中心网络的数据传输方法、数据中心系统和计算机设备。

背景技术

数据中心是全球协作的特定设备网络,用来在互联网基础设施上传递、加速、展示、计算、存储数据信息。而数据中心网络则连接数据中心大规模服务器进行分布式计算的桥梁。

常见的数据中心的网络的网络拓扑架构包括以交换机为核心的拓扑方案,如Fat-Tree拓扑结构,和以服务器为核心拓扑方案,如FiConn拓补结构。数据中心网络的任意服务器节点对之间都是有多条路径的,而且往往这些路径都是等长的。但多个路径之间大概率存在重叠,对于存在重叠的路径来说,其中一条链路故障时,多个路径上数据流将会中断,而影响数据传输的可靠性。

发明内容

基于此,有必要针对上述技术问题,提供一种能够提高传输可靠性的基于数据中心网络的数据传输方法、数据中心系统和计算机设备。

第一方面,本申请提供了一种基于数据中心网络的数据传输方法。所述方法包括:

接收数据包,解析所述数据包得到四元组信息和指定的用于发送所述数据包的独立路径信息;

根据所述四元组信息和候选出端口序列进行负载均衡计算,确定初始端口索引号;

根据所述独立路径信息,对所述初始端口索引号在所述候选出端口序列中进行循环偏移,得到目标端口索引号;

将所述数据包通过所述目标端口索引号对应的目标出端口发送至数据中心网络上交换机的下一处理节点。

第二方面,本申请还提供了一种数据中心网络的数据传输方法,在数据中心服务器实现以下方法:

确定数据包的独立路径信息;

将所述独立路径信息和所述数据包的四元组信息写入数据包的包头;

将所述数据包发送至数据中心网络的交换机,所述交换机接收数据包,解析所述数据包得到四元组信息和指定的用于发送所述数据包的独立路径信息;根据所述四元组信息和候选出端口序列进行负载均衡计算,确定初始端口索引号;根据所述独立路径信息,对所述初始端口索引号在所述候选出端口序列中进行循环偏移,得到目标端口索引号;将所述数据包通过所述目标端口索引号对应的目标出端口发送至数据中心网络上交换机的下一处理节点。

第三方面,本申请还提供了一种数据中心系统,包括服务器,以及实现服务器间数据传输的数据中心网络,服务器间通过所述数据中心网络进行数据传输;所述数据中心网络包括多层交换机,在各层交换机包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现在各层交换机实现的基于数据中心网络的数据传输方法的步骤;

所述服务器包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现在数据中心服务器实现的数据中心网络的数据传输方法的步骤。

上述基于数据中心网络的数据传输方法、数据中心系统和计算机设备,通过对数据包指定用于发送数据包的独立路径信息,在各层交换机上,根据四元组信息和候选出端口序列进行负载均衡计算,确定初始端口索引号,能够将四元组信息相同的数据包均衡到多个链路,而不是集中在某个链路上,在此基础上,根据所述独立路径信息,对所述初始端口索引号在所述候选出端口序列中进行循环偏移,得到目标端口索引号,使得相同四元组信息的数据包,由于独立路径信息不同,而被分配至不同的目标端口索引号上,通过在多层交换机上分别实现该方法,在每层交换机上,均根据独立路径信息做出相同的偏移,从而形成对于该数据包来说,不与其它相同四元组的连续数据包的路径存在重叠的独立路径,一个数据服务器对之间的路径中,即使有链路出现故障,仍不影响其它的独立路径,提高数据传输的可靠性。

附图说明

图1为一个实施例中数据中心网络架构的示意图;

图2为一个实施例中基于数据中心网络的数据传输方法的流程示意图;

图3为一个实施例中数据中心网络架构的示意图;

图4为一个实施例中交换机处理的示意图;

图5为另一个实施例中基于数据中心网络的数据传输方法的流程示意图;

图6为一个实施例中发送服务器侧的调度处理示意图;

图7为一个实施例中数据中心网络系统的交互示意图;

图8为一个实施例中基于数据中心网络的数据传输的结构示意图;

图9为另一个实施例中基于数据中心网络的数据传输的结构示意图;

图10为一个实施例中服务器的内部结构示意图;

图11为一个实施例中交换机的内部结构示意图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请实施例提供的基于数据中心网络的数据传输方法,可以应用于数据中心系统,数据中心系统包括服务器,以及实现服务器间数据传输的数据中心网络架构。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。

其中,数据中心可用于云技术,云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。

云技术(Cloud technology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。云计算可实现大数据处理。

大数据(Big data)是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。随着云时代的来临,大数据也吸引了越来越多的关注,大数据需要特殊的技术,以有效地处理大量的容忍经过时间内的数据。适用于大数据的技术,包括大规模并行处理数据库、数据挖掘、分布式文件系统、分布式数据库、云计算平台、互联网和可扩展的存储系统。

数据中心网络架构可以为传统的三层结构包括了接入层,汇聚层和核心层。其中,接入层交换机通常位于机架顶部,所以它们也被称为ToR(Top of Rack)交换机,它们物理连接服务器。汇聚层交换机连接接入层交换机,同时提供其他的服务,例如防火墙,SSLoffload,入侵检测,网络分析等。核心层交换机为进出数据中心的包提供高速的转发,为多个汇聚层提供连接性,核心交换机为通常为整个网络提供一个弹性的L3路由网络。

当然,也可以为大两层的网络拓扑架构,包括汇聚层和核心层。图1为一种传统的三层结构的数据中心网络架构,可以理解的是,图1所示的数据中心网络架构是一种示例,该方法不局限于如图1所示的数据中心网络架构。

数据中心利用数据中心网络实现服务器节点间的数据传输,发送数据包的服务器作为数据发送端,接收数据包的服务器作为数据接收端,数据发送端和数据接收端之间基于数据中心网络拓扑结构进行数据传输。其中,数据中心网络拓扑结构包括了多层交换机。

在一个实施例中,如图2所示,提供了一种基于数据中心网络的数据传输方法,数据中心网络架构包括多层交换机,在各层交换机实现以下方法:

步骤202,接收数据包,解析数据包得到四元组信息和指定的用于发送数据包的独立路径信息。

其中,各层交换机接收数据中心网络上上一处理节点发送的数据包。上一处理节点,是指对于执行本实施例的方法的本层的交换机而言,在数据包传输方向上的上一处理节点。对于数据发送侧,以图1所示的接入层的交换机为例,上一处理节点为发送端服务器。以图1所示的汇聚层的交换机为例,上一处理节点为接入层的交换机,以图1所示的核心层的交换机为例,上一处理节点为汇聚层的交换机。对于数据接收侧服务器,以图1所示的汇聚层的交换机为例,上一处理节点为核心层的交换机,以图1所示的接入层的交换机为例,上一处理节点为汇聚层的交换机。

上一处理节点向本层交换机发送数据包。可以理解的是,数据包是由发送服务器向目标服务器发送的。数据包中携带了四元组信息和指定的用于发送数据包的独立路径信息。具体地,数据包包头包括了四元组信息,即源IP、目的IP、目的端口号和协议号,在其他实施例中,数据包还可以包括五元组信息,即源IP、源端口号、目的IP、目的端口号和协议号。其中,源IP是指数据发送服务器的IP地址,源端口号是指发送服务器用来发送数据包的端口号,目的IP是指接收服务器的IP地址,目的端口号是指接收服务器用来接收数据端的端口号。

独立路径是指从发送端的接入层交换机到接收端的接入层交换机之间,不与其它路径重叠的路径。以图3所示的,服务器节点0到15之间的一条路径为服务器0-接入层12-汇聚层8-核心层1-汇聚层32-接入层39-服务器15,另一条路径为服务器0-接入层13-汇聚层8-核心层1-汇聚层32-接入层39-服务器15(见加粗的链路),在网络侧,两条路径存在重叠如核心层1-汇聚层32,那么这两条路径为非独立路径。对于重叠的路径来说,若一部分链路失效,则会出现相关的多个路径的数据流中断。如核心层1-汇聚层32的链路失效,则这两条路径均不能工作。最差的情况下,所有路径都会经过某一跳链路,该数据流的所有子流的带宽总和就是此链路的带宽,而此链路的故障将会导致整条流中断服务。

本申请的目的,是两个服务器节点间的传输链路上,使不同的数据包以不同独立路径的方式,发送至数据接收端。由于独立路径间不存在重叠的链路,从而一个数据服务器对之间的路径中,即使有链路出现故障,仍不影响其它的独立路径,提高数据传输的可靠性。

其中,对于数据中心网络架构而言,独立路径的数量是确定的。预先设置用于分别表示各独立路径的独立路径信息,可以理解为独立路径标识,如独立路径信息可以为独立路径编号,每个编号用于表示一条独立路径。

如图1所示的数据中心网络架构,若只看网络侧,即从发送端的接入层交换机到接收端的接入层交换机,任意一对服务器之间都有4条完全独立的路径。则可以设置4个连续的编号,用于区分各独立路径。如0,1,2,3分别表示相对的4条独立路径。应当明确的是,在数据包发送前,并不是按照确定的指定路径发送的,而是实施了本申请的基于数据中心网络的数据传输方法,以达到使不同的数据包在不同独立路径的方式,发送至数据接收端的效果。

在发送端服务器,维护了每对服务器对的各独立路径编号的拥塞控制模块。以服务器0为例,维护了服务器0至各服务器(1至15)间,每个独立编号的拥塞控制模块。例如,服务器0-1间的4个独立路径编号的拥塞控制模块,服务器1-12间的4个独立路径编号的拥塞控制模块。根据4元组信息,确定服务器对的各拥塞控制模块,其中,可以轮询的方式,确定可用的独立路径编号。例如,遍历当前的独立路径编号的拥塞控制模块,在该独立路径不拥塞的情况下允许发送,则将该独立路径作为指定用于发送数据包的独立路径信息。

步骤204,根据四元组信息和候选出端口序列进行负载均衡计算,确定初始端口索引号。

具体地,候选出端口序列是当前处理层所提供的端口列表,数据流可以从其中任意一个端口发出至下一处理节点,在候选端口序列中,每一个端口索引对应一个端口号。可以理解的是,候选出端口序列是可以根据数据中心网络架构所确定的。例如,对于服务器Pod0而言,接入层的候选端口序列为[8、9,10,11]。其中,对应的索引号为0~3,0号索引对应接入层交换机8,1号索引对应接入层交换机9,2号索引对应接入层交换机10,3号索引对应接入层交换机11。

其中,负载均衡对于交换机而言,指的是数据能够均衡的分配给各链路,而不是集中在某个或多个链路上。数据中心网络架构的负载均衡算法有多种,可以在当前层交换机上,进行负载均衡计算,确定通往下一处理节点的初始端口索引号。一个实施例中,负载均衡计算可以采用等价多路径(ECMP,Equal CostMulti-Path)。

一般情况下,交换机先使用路由表根据目的IP获取候选出端口。在有多个候选出端口的情况下,交换机会对数据包包头的五元组(即源/目的IP,源/目的端口号和协议号,所有的TCP和UDP包都有这五元组)或四元组进行负载均衡计算以选定一个出端口。如图4所示,通往目的IP有a~e五个候选出端口,索引分别为0~4。交换机通过负载均衡计算确定实际出端口的索引号1(索引从0开始),即选择端口b发送出去。所以五元组相同的数据包一定会从相同的出端口发出去,最终效果就是五元组相同的数据包的路径一定是一致的。这样的路由设置可以一定程度上让一个节点对的五元组不同数据流走不同的路径,进行负载均衡。

步骤206,根据独立路径信息,对初始端口索引号在候选出端口序列中进行循环偏移,得到目标端口索引号。

在负载均衡得到初始端口索引号后,通过对独立路径信息,对初始端口索引号在候选出端口序列中进行循环偏移,使得初始端口索引号相同,但独立路径信息不同时,能够偏移至不同的目标端口索引号,进而可以根据目标端口索引号,确定目标出端口号,从而五元组或四元组信息相同,但独立路径编号不同的数据包,能够从不同的目标出端口发送至下一处理节点。而在每层交换机上,均根据独立路径信息做出相同的偏移,从而形成对于该数据包来说,不与其它相同五元组或四元组数据包的路径存在重叠的独立路径。

具体地,循环偏移是指为实现指定偏移量的要求,查找偏移目标的过程在候选出端口序列循环,直到满足偏移量要求。例如,当在候选出端口序列进行循环,一轮循环不能达到设定的偏移量时,从候选出端口序列的第一个出端口继续循环查找,直到满足偏移量。例如,偏移量为3,[8、9,10,11],初始端口索引号为2,对应第三个出端口号10,则循环偏移后得到的目标端口索引号为9。

通过偏移,能够使得相同四元组或五元组信息的数据包,通过指定不同的独立路径信息,而指向不同的交换机上,形成对应的独立路径。为了使为不同路径信息指向不同的交换机,可以设置不同路径信息对应的偏移量。例如,独立路径信息为0号路径,偏移量为1,独立路径信息为1号路径,偏移量为2,独立路径信息为2号路径,偏移量为3,独立路径信息为3号路径,偏移量为4。通过对初始端口索引号根据独立路径信息,在候选出端口序列中进行循环进行偏移,在负载均衡到一个相同的初始端口索引号后,由于下一处理节点的出端口号不同而路径不同。

步骤208,将数据包通过目标端口索引号对应的目标出端口发送至数据中心网络上交换机的下一处理节点。

具体地,在该层交换机上将数据包通过目标端口索引号对应的目标出端口发送至数据中心网络上交换机的下一处理节点,通过在多层交换机上分别实现该方法,在每层交换机上,均根据独立路径信息做出相同的偏移,从而形成对于该数据包来说,不与其它相同四元组或五元组信息数据包的发送路径存在重叠的独立路径。

如图3所示的,服务器节点2至10之间,能够基于该数据中心网络的拓扑结构,确定存在4条独立路径。一个数据包指定的用于发送数据包的独立路径编号为0,其对应的偏移量为1,选择接入链路至接入层交换机14,在接入层交换机14,假如通过计算确定的初始端口号为11,偏移后的目标端口索引号为8,跳转至汇聚层交换机8,在汇聚层交换机8,假如通过计算确定的初始端口号为1,偏移后的目标端口索引号为核心层交换机0,跳转至核心层交换机0。在核心层交换机0,假如通过计算确定的初始端口号为23,偏移后的目标端口索引号为汇聚层交换机20,跳转至汇聚层交换机20。在汇聚层交换机20,假如通过计算确定的初始端口号为23,偏移后的目标端口索引号为汇聚层交换机20,跳转至汇聚层交换机31,偏移后的目标端口索引号为接入层30,其所形成的路径为服务器2-接入层14-汇聚层8-核心层0-汇聚层20-接入层30-服务器10。

参照相同的方法,数据包指定的用于发送数据包的独立路径编号为1,在各层交换机上对初始端口索引号进行偏移的偏移量为2,通过偏移所形成的路径为服务器2-接入层15-汇聚层10-平面层4-汇聚层22-接入层30-服务器10,这两条路径在发送端的接入层交换机和接收端的接入层交换机之间不存在重叠,为相互独立的路径,即为服务器对2和10之间的独立路径。

而由于独立路径之间不存在重叠,即使一条链路失效,也不会影响其它独立路径,提高了数据流的可靠性,。

其中,对于一个确定的数据中心网络架构来说,独立路径的数量是确定的。如图1所示的数据中心网络架构,任意一对服务器之间都有两条完全独立(无任何重叠)的路径。若只看网络侧,即从发送端的接入层交换机到接收端的接入层交换机,任意一对服务器之间都有4条完全独立的路径。在规模更大的网络中(汇聚层交换机和核心层的平面数目增大),独立路径的数目将会更大。多条独立路径的存在带来的好处主要是两方面:更高的网络带宽(带宽冗余)和更好的可靠性(链路/路径冗余)。

上述的基于数据中心网络的数据传输方法,通过对数据包指定用于发送数据包的独立路径信息,在各层交换机上,根据四元组信息和候选出端口序列进行负载均衡计算,确定初始端口索引号,能够将四元组信息相同的数据包均衡到多个链路,而不是集中在某个链路上,在此基础上,根据独立路径信息,对初始端口索引号在候选出端口序列中进行循环偏移,得到目标端口索引号,使得相同四元组信息的数据包,由于独立路径信息不同,而被分配至不同的目标端口索引号上,通过在多层交换机上分别实现该方法,在每层交换机上,均根据独立路径信息做出相同的偏移,从而形成对于该数据包来说,不与其它相同四元组的连续数据包的路径存在重叠的独立路径,一个数据服务器对之间的路径中,即使有链路出现故障,仍不影响其它的独立路径,提高数据传输的可靠性。

在另一个实施例中,独立路径信息为独立路径编号。如前面所提到的,对于确定的数据中心网络架构而言,该数据中心网络架构中的独立的独立路径的数量是能够确定的。在这种情况下,可以预先设置独立路径编号,如图1所示的数据中心网络架构,存在4条独立路径,则可以设置0~3,分别表示4条独立路径。

根据独立路径信息,对初始端口索引号在候选出端口序列中进行循环偏移,得到目标端口索引,包括:根据独立路径编号与偏移量的预设映射关系,确定独立路径编号的偏移量;根据偏移量,对初始端口索引号在候选出端口序列中进行循环偏移,得到目标端口索引号。

其中,独立路径编号是连续的,独立路径编号对应的偏移量是连续的,从而能够使不同的独立路径编号在候选出端口序列中的偏移结果不同,即偏移至不同的目标端口索引号。

其中,可以设置独立路径编号与偏移量的预设映射关系,独立路径信息为0号路径,偏移量为1,独立路径信息为1号路径,偏移量为2,独立路径信息为2号路径,偏移量为3,独立路径信息为3号路径,偏移量为4。根据预设映射关系,确定独立路径编号对应的偏移量。

再根据偏移量和初始端口索引号,得到目标端口索引号。如初始端口索引号为1,独立路径信息为0号路径,偏移量为1,则目标端口索引号为2。

本实施例中,通过设置独立路径编号与偏移量的预设映射关系,能够快速地确定独立路径信息对应的偏移量。

在一个实施例中,为了避免需要将独立路径编号写入数据包而导致数据包结构的变化,本实施例中,预先构建源端口号与独立路径编号的映射关系,从而发送端服务器能够将路径信息编码进源端口号,而源端口号通常被写入了数据包的包头。当交换机获取到数据包时,解析数据包获得源端口号,基于源端口号而获得对应的独立路径编号。

一种方式,可以为选择基准源端口号;取与独立路径数量相应的连续数字,根据各连续数字在基准源端口号上分别偏移,得到连续的源端口号;对源端口号基于独立路径的数量取余,得到源端口号对应的独立路径编号。

具体地,发送端先选定一个基准源端口号sport0(最大为65535),然后使用此基准源端口号叠加路径编号偏移(注意路径编号偏移需要连续)得到代表不同路径的源端口号序列。例如,用H表示路径的数目,N表示接入链路的数目。在连接初始化阶段,连接发起端可以以某种方式选定一个基准源端口号sport0=13271,然后叠加1~H的编号(即索引号0~3)得到不同的源端口号序列为13271,13272,13273,13274。而这些源端口号与路径的对应关系可以通过对源端口号基于路径数进行模操作取余得到,即pathId=sport%H。在上面例子中的四个源端口号对应的路径ID分别是13271%4=3,13272%4=0,13273%4=1,13274%4=2。接收端对源端口号与路径的映射方式和发送端保持一致(H会在连接发起报文中带给接收端)。

在此基础上,根据源端口号,对独立路径数目进行取余,可以得到独立路径信息,进而在初始端口索引号的基础上,进行循环偏移,得到目标端口索引号。

一种方式具体可以是,利用公式j=(i+sport)%S,S为候选端口数,sport为源端口号,i为初始端口索引号。最终的出端口则为V[j]。例如,交换机得到当前数据包的候选出端口列表V=[8,9,10,11]。交换机先使用四元组进行负载均衡计算,得到初始端口索引号i=1,再根据源端口号sport=13271进行偏移得到j=(i+sport)%S=(1+13273)%4=2。则最终出端口为V[j]=V[2]=10。

一种方式具体还可以利用其他线性映射函数,只需要满足映射到索引号是连续保序的即可。如可以加一个常数,即j=(i+sport+C)%S(C是常数)。也可以只截取源端口号的若干低位,即j=(i+sport&mask+C)%S,其中&mask表示按位取与操作,mask可以是0b11,0b111,...,0xFF。上述方案陈述中相当于用了mask=0xFF和C=0。

本实施例中,可以利用源端口号与独立路径编号之间的映射关系,将独立路径信息编码至源端口号,无需改变数据包包头的结构。

在另一个实施例中,根据四元组信息和候选出端口序列进行负载均衡计算,确定初始端口索引号,包括:根据四元组信息和候选出端口序列进行哈希计算,将哈希值作为初始端口索引号;其中,同一层次的交换机上的哈希算法和哈希种子一致。

具体地,负载均衡计算采用哈希计算,如可以采用ECMP算法,在有多个候选出端口的情况下,交换机会对数据包包头的五元组(即源/目的IP,源/目的端口号和协议号,所有的TCP和UDP包都有这五元组)或四元组进行哈希计算以选定一个出端口。所以五元组信息或四元组信息相同的数据包一定会从相同的出端口发出去,最终效果就是五元组或四元组相同的数据包的路径一定是一致的。这样的路由设置可以一定程度上让一个节点对的不同数据流走不同的路径,进行负载均衡。

而同一层次的交换机上的哈希算法和哈希种子一致,能够可保证向下选路可以最大化遍历所有候选路径,还可以使四元组信息不同的数据包,指向不同的路径。如在图1中,交换机12,13,14,15的哈希算法和哈希种子需要都一样,交换机8,9,10,11的哈希算法和哈希种子都一样。

本申请还提供应用于数据中心的服务器,实现基于数据中心网络的数据传输方法,如图5所示,包括:

步骤502,确定数据包的独立路径信息。

其中,独立路径是指从发送端的接入层交换机到接收端的接入层交换机之间,不与其它路径重叠的路径。对于数据中心网络架构而言,独立路径的数量是确定的。预先设置用于分别表示各独立路径的独立路径信息,可以理解为独立路径标识,如独立路径信息可以为独立路径编号,每个编号用于表示一条独立路径。

在发送端服务器,维护了每对服务器对的各独立路径编号的拥塞控制模块。以服务器0为例,维护了服务器0至各服务器(1至15)间,每个独立编号的拥塞控制模块。例如,服务器0-1间的4个独立路径编号的拥塞控制模块,服务器1-12间的4个独立路径编号的拥塞控制模块。根据4元组信息,确定服务器对的各拥塞控制模块,其中,可以轮询的方式,确定可用的独立路径编号。例如,遍历当前的独立路径编号的拥塞控制模块,在该独立路径不拥塞的情况下允许发送,则将该独立路径作为指定用于发送数据包的独立路径信息如图6所示,在发送时数据的时候,发送模块会以轮询的方式向当前路径p请求发送数据包。若路径p的拥塞控制模块允许发送,则把报文从路径p发出去(把报文从路径p绑定的接入链路发送出去,并把报文源端口号设置路径p绑定的源端口号),并把当前路径切换成下一条路径p=(p+1)%H。若路径p的拥塞控制模块不允许发送,则把当前路径切换成下一条路径p=(p+1)%H,并请求发送。这样的调度形成的效果是,发送端可以把发送负荷均衡地分散到多条(独立)路径中,而路径中的实际负载由其拥塞控制模块控制。如路径1~4的拥塞控制模块计算的理论速率分别是3Gbps,2Gbps,4Gbps,1Gbps,那么这4条路径实际的发送带宽就是路径的理论速率,而发送端的总带宽就是这几条路径的总发送带宽10Gbps。

步骤504,将独立路径信息和数据包的四元组信息写入数据包的包头。

具体地,可以将独立路径信息和四元组信息分别写入数据包的包头,如,将独立路径信息和四元组信息分别作为独立的字段写入数据包的包头。也可以将独立路径信息编码进源端口号,如,根据预先建立的独立路径信息与源端口号的映射关系,使用该独立路径信息对应的源端口号写入包头。

步骤506,将数据包发送至数据中心网络的交换机,交换机接收数据包,解析数据包得到四元组信息和指定的用于发送数据包的独立路径信息;根据四元组信息和候选出端口序列进行负载均衡计算,确定初始端口索引号;根据独立路径信息,对初始端口索引号在候选出端口序列中进行循环偏移,得到目标端口索引号;将数据包通过目标端口索引号对应的目标出端口发送至数据中心网络上交换机的下一处理节点。

具体地,将数据包发送至数据中心的网络机,利用数据中心网络架构将数据包发送至目标服务器,通过对数据包指定用于发送数据包的独立路径信息,在各层交换机上,根据四元组信息和候选出端口序列进行负载均衡计算,确定初始端口索引号,能够将四元组信息相同的数据包均衡到多个链路,而不是集中在某个链路上,在此基础上,根据独立路径信息,对初始端口索引号在候选出端口序列中进行循环偏移,得到目标端口索引号,使得相同四元组信息的数据包,由于独立路径信息不同,而被分配至不同的目标端口索引号上,通过在多层交换机上分别实现该方法,在每层交换机上,均根据独立路径信息做出相同的偏移,从而形成对于该数据包来说,不与其它相同四元组的连续数据包的路径存在重叠的独立路径,一个数据服务器对之间的路径中,即使有链路出现故障,仍不影响其它的独立路径,提高数据传输的可靠性。

在另一个实施例中,该方法还包括:构建独立路径编号与源端口号的映射关系。由于独立路径编号与源端口号存在映射关系。通常而言,数据包的包头还会包括了源端口号,通过建立独立路径编号和源端口号之间的映射关系,能够通过源端口号,传递独立路径信息,而无需改变数据包包头结构。当交换机接收到数据包时,通过源端口号确定独立路径编号,该方法无需改变数据包的包头结构,即可传递独立路径信息。

在另一个实施例中,独立路径编号是连续的,构建独立路径编号与源端口号的映射关系,包括:选择基准源端口号;设定与独立路径数量相应的连续数字,根据各连续数字在基准源端口号上分别偏移,得到连续的源端口号;对源端口号基于独立路径的数量取余,得到源端口号对应的独立路径编号。

具体地,先选定一个基准源端口号sport0(最大为65535),然后使用此基准源端口号叠加路径编号偏移(注意路径编号偏移需要连续)得到代表不同路径的源端口号序列。例如,用H表示路径的数目,N表示接入链路的数目。在连接初始化阶段,连接发起端可以以某种方式选定一个基准源端口号sport0=13271,然后叠加1~H的编号(即0~3)得到不同的源端口号序列为13271,13272,13273,13274。而这些源端口号与路径的对应关系可以通过对源端口号基于路径数进行模操作取余得到,即pathId=sport%H。在上面例子中的四个源端口号对应的路径ID分别是13271%4=3,13272%4=0,13273%4=1,13274%4=2。接收端对源端口号与路径的映射方式和发送端保持一致(H会在连接发起报文中带给接收端)。

本实施例中,通过初始化连接时,以将独立路径编号编码进源端口号的方式写入数据包包头,无需对数据包的包头结构做出改变。

在另一个实施例中,将数据包发送至路由交换机,包括:将数据包通过独立路径编号对应的接入链路发送至接入层路由交换机;接入链路与独立路径编号预先绑定,不同接入链路绑定的独立路径编号的数量相当或相同。

其中,不同接入链路绑定的独立路径编号的数量相当,指的是不同接入链路绑定的独立路径编号的数量相近。可以理解的是,为了实现接入链路的负载均衡,优选的方式是各接入链路绑定的独立路径编号的数量相同。但当独立路径数量不能被接入链路的数量平均时,只需要不同接入链路绑定的独立路径编号的数量相近。例如,接入链路的数量为2,而独立路径的数量为5,则可以一个接入链路绑定2个独立路径编号,一个接入链路绑定3个独立路径编号。

其中,接入链路是指发送服务器至接入层交换机是的链路,为确保链路的可靠性,每个服务器均有多条接入链路接入至接入层交换机。基于数据中心网络架构不同,接入链路的数量也不相同。如图1所示,每个服务器有两条接入链路。

为有效、均衡的利用接入链路,一种实施方式中,预先设置接入链路和独立路径编号之间的对应关系。其中,不同接入链路绑定的独立路径编号的数量相当或相同,发送服务器发送数据包时,基于接入链路和独立路径编号之间的对应关系,将数据包通过独立路径编号对应的接入链路发送至接入层路由交换机。一种接入链路和独立路径编号之间的对应关系如表1所示。

表1接入链路和独立路径编号之间的对应关系

一种方式中,可以采用轮询遍历的方式,依次将数据包通过轮询的方式通过接入层链路发出,而实现接入链路的负载均衡。

可以理解的是,发送端服务器也可能是接收端服务器。在接收端组件,可以采用发送端相同的方法,在接收到数据后,对发送侧服务器采用相同的方法发送确认包,以实现两个服务器间的确认包以独立路径的方式发送。另一种方式,还可以是接收侧服务器接收到数据包后,先提取源端口号sport,计算出路径编号p=sport%H,再把生成的确认包的源端口字段置为sport。最后把确认包从路径p绑定的接入链路发送出去。确认包在网络上的路由机制和数据包一致。

一个实施例中,数据中心网络系统的工作过程如图7所示,包括以下步骤:

步骤①,发送侧服务器确定数据包的独立路径信息,利用独立路径信息对应的源端口号,将源端口号和数据包的四元组信息写入数据包的包头,将数据包发送至数据中心网络的交换机。

步骤②,网络侧交换机接收上一处理节点发送的数据包,解析数据包得到四元组信息和源端口号,根据源端口号和独立路径信息的映射关系,获得独立路径信息;根据四元组信息和候选出端口序列进行负载均衡计算,确定通往下一处理节点的初始端口索引号;根据独立路径信息,对初始端口索引号在候选出端口序列中进行循环偏移,得到目标端口索引号;将数据包通过目标端口索引号对应的目标出端口发送至下一处理节点。

步骤③,接收侧服务器接收数据包。

步骤④,接收侧服务器生成确认包,先提取接收到的数据包的源端口号sport,计算出路径编号p=sport%H,再把生成的确认包的源端口字段置为sport。最后把确认包从路径p绑定的接入链路发送出去。

本实施例中,结合交换机确定性路由技术和服务器侧负载感知的路径调度技术,提出了确定多路径的传输方法,使得多条传输路径在网络中没有重叠,以最大限度地利用网络带宽和最大程度地利用多路径的链路冗余能力,达到高可靠和高可用传输的目标。具体地,本方案的服务器侧在发数据包时,会根据路径的负载状态(由拥塞控制系统确定)进行调度发包。而且在发送报文时在源端口字段携带路径信息(但所有路径的其他四元组的是一样的),交换机在做路由选择时,先基于四元组(源/目的IP,目的端口号和协议号)做常规ECMP哈希以获取基准索引,再在此索引基础上利用源端口做一次(确定性的)索引的循环偏移。这样的四元组哈希加确定性偏移既可以保持传统多路径负载均衡效果,又可以兼顾确定性的路径感知和控制,保证高可靠和高可用的目标。常规ECMP多路径方案中,单链路故障可导致所有路径失效和业务中断;本方案中单链路故障最多导致1/N的路径失效(N为服务器接入链路数),不会导致业务中断。

相对于传统的ECMP多路径优势在于:从业务应用的性能和管控角度来说,可以原生地利用数据中心网络等价多路径的特点,充分利用多路径的带宽,在两条接入链路的网络最多可以提高100%的带宽,在N条接入链路的网络最多可以提高(N-1)*100%的带宽;可以大幅度提高运输层服务的可靠性和可用性。例如在传统ECMP多路径的方案中,多条路径可能重叠在同一条链路上,若此链路故障,将会导致所有路径不可用和传输服务中断。在本方案中,单链路故障最多导致H/N条路径失效(N是接入链路数)。对于非接入链路的故障,单链路故障最多导致1条路径失效。

从网络管理监察的角度来说,可以做到更充分的负载均衡,提高网络利用率;可以缓解传统ECMP多路径方案里的瓶颈点的压力,降低故障概率。

应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。

基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的基于数据中心网络的数据传输方法的基于数据中心网络的数据传输装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个基于数据中心网络的数据传输装置实施例中的具体限定可以参见上文中对于基于数据中心网络的数据传输方法的限定,在此不再赘述。

在一个实施例中,如图8所示,提供了一种基于数据中心网络的数据传输装置,包括:

解析模块802,用于接收数据包,解析数据包得到四元组信息和指定的用于发送数据包的独立路径信息。

均衡模块804,用于根据四元组信息和候选出端口序列进行负载均衡计算,确定初始端口索引号。

偏移模块806,用于根据独立路径信息,对初始端口索引号在候选出端口序列中进行循环偏移,得到目标端口索引号;

发送模块808,用于将数据包通过目标端口索引号对应的目标出端口发送至数据中心网络上交换机的下一处理节点。

在另一个实施例中,偏移模块,包括:

偏移量确定模块,用于根据独立路径编号与偏移量的预设映射关系,确定独立路径编号的偏移量;其中,独立路径编号是连续的,独立路径编号对应的偏移量是连续的;

偏移处理模块,用于根据偏移量,对初始端口索引号在候选出端口序列中进行循环偏移,得到目标端口索引号。

在另一个实施例中,独立路径编号与源端口号存在映射关系,数据包还包括源端口号。

数据中心网络的数据传输装置还包括映射模块,用于根据源端口号与独立路径编号之间的映射关系,确定源端口号对应的独立路径编号。

在另一个实施例中,均衡模块,用于根据四元组信息和候选出端口序列进行哈希计算,将哈希值作为初始端口索引号;其中,同一层次的交换机上的哈希算法和哈希种子一致。

本申请还提供一种数据中心网络的数据传输装置,如图9所示,包括:

路径信息获取模块902,用于确定数据包的独立路径信息;

编码模块904,用于将独立路径信息和数据包的四元组信息写入数据包的包头;

发送模块906,用于将数据包发送至数据中心网络的交换机,交换机接收数据包,解析数据包得到四元组信息和指定的用于发送数据包的独立路径信息;根据四元组信息和候选出端口序列进行负载均衡计算,确定初始端口索引号;根据独立路径信息,对初始端口索引号在候选出端口序列中进行循环偏移,得到目标端口索引号;将数据包通过目标端口索引号对应的目标出端口发送至数据中心网络上交换机的下一处理节点。

在另一个实施例中,数据中心网络的数据传输还包括:

构建模块,用于构建独立路径编号与源端口号的映射关系。

编码模块,用于将源端口号和数据包的四元组信息写入数据包的包头。

在另一个实施例中,独立路径编号是连续的,构建模块,用于设定与独立路径数量相应的连续数字,根据各连续数字在基准源端口号上分别偏移,对源端口号基于独立路径的数量取余,得到源端口号对应的独立路径编号。

在另一个实施例中,发送模块,用于将数据包发送至路由交换机,包括:将数据包通过独立路径编号对应的接入链路发送至接入层路由交换机;接入链路与独立路径编号预先绑定,不同接入链路绑定的独立路径编号的数量相当或相同。

上述数据中心网络的数据传输装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图10所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据中心的数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据中心网络的数据传输方法。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是交换机,其内部结构图可以如图11所示。该计算机设备包括处理器、存储器、输入/输出接口、通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种数据中心网络的数据传输方法。

本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时上述各实施例的数据中心网络的数据传输方法的步骤。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各实施例的数据中心网络的数据传输方法的步骤。

在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各实施例的数据中心网络的数据传输方法的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

技术分类

06120116310754