一种数据通信方法及数据通信网络与流程

文档序号:16848190发布日期:2019-02-12 22:30阅读:209来源:国知局
一种数据通信方法及数据通信网络与流程

本申请实施例涉及通信技术领域,尤其涉及一种数据通信方法及数据通信网络。



背景技术:

数据中心网络(datercenternetwork,dcn)通常采用层次化的组网模式,为数据中心内的众多服务器(server)提供全连接的网络,将不同服务器之间的数据进行交换。层次化组网模式的网络通常包括三层,即接入层、汇聚层和核心层,接入层的下行端口与服务器连接,接入层的上行端口与汇聚层的下行端口连接,汇聚层的上行端口与核心层连接。接入层和汇聚层可以被划分为多个群组(pod),通过汇聚层可以实现同一pod内连接的不同服务器之间的数据流量交换,通过汇聚层和核心层可以实现不同pod内连接的服务器之间的数据流量交换。由于每一层都可以包括多个节点,同一pod内也会包括多个节点,从而在进行数据流量交换时,从任一源节点到目的节点之间都有多条可用的发送路径。

现有技术中,通常是按照负载均衡(loadbalance,lb)的方式进行数据流量的交换,负载均衡包括按照流(flow)均衡和按照包(packet)均衡的方式。按照流均衡的方式是指:在同一时刻或者不同时刻传递多条数据流时,为每一条数据流分配一条发送路径,通过分配的发送路径发送对应的数据流的全部数据内容。在按照流均衡发送数据包的方式下,由于数据流的全部内容都是通过统一的发送路径传递,不会乱序。按照包均衡的方式是指将一个数据流的多个数据包按照一定的负载分配原则分发在多条发送路径中,最终由目的接入节点对多条发送路径中接收到的数据包进行排序,以得正确的数据包顺序。

但是,按照流均衡的方式容易产生哈希冲突,即将多个数据流在同一上行端口上分发,若这些数据流同时突发流量,则会造成上行端口拥塞。按照包均衡将属于同一条数据流的数据包经过不同的路径发送,不同路径的拥塞程度不同,从而相应的延时不同,所以这些数据包到达目的节点的时间不同,目的节点需要对这些数据包进行排序。由于网络中同一pod内的汇聚节点很多,与其连接的核心节点也很多,从而可用的发送路径的数量很大,且每个路径的时延会不同,因此,目的接入节点进行排序时需要的内存会比较大,且排序工作量较大,从而导致数据通信效率较低。



技术实现要素:

本发明的实施例提供一种数据通信方法及数据通信网络,用于提高数据通信的效率。

为达到上述目的,本发明的实施例采用如下技术方案:

第一方面,提供一种数据通信方法,应用于包括多个群组(pod)和核心层的数据通信网络中,多个pod中的每个pod包括汇聚层,汇聚层包括多个汇聚节点,核心层包括多个核心节点,该方法包括:第一pod中的第一汇聚节点将第一数据流的数据包按照包均衡的方式发送给核心层中的至少一个核心节点;至少一个核心节点接收第一数据流的数据包,并将接收到的数据包发送给第二pod中的第二汇聚节点;第二汇聚节点接收第一数据流的数据包,并对第一数据流的数据包进行排序,得到第一数据流。上述技术方案中,第一汇聚节点通过按照包均衡的方式发送第一数据流的数据包,可以充分利用其上行端口的带宽和可用的发送路径发送第一数据流,避免发生端口拥塞的问题,同时由第二汇聚单元对接收到的数据包时排序,恢复得到第一数据流,从而可以减小目的接入节点对不同发送路径接收到的数据包进行排序时所需的内存和排序复杂度,进而提高了数据通信的效率。

在第一方面的一种可能的实现方式中,多个pod中的每个pod还包括接入层,接入层包括多个接入节点,第一pod中的第一汇聚节点将第一数据流的数据包按照包均衡的方式发送给核心层中的至少一个核心节点之前,该方法还包括;第一pod中的第一接入节点将第一数据流包括的数据包按照流均衡的方式发送给第一汇聚节点。上述可能的实现方式中,第一接入节点按照流均衡的方式发送第一数据流给第一汇聚节点,从而在第二汇聚节点将第一数据流发送给第二接入节点时,第二接入节点无需对其排序,从而可以充分利用不同的端口带宽和可用的发送路径,提高数据通信的效率。

在第一方面的一种可能的实现方式中,多个pod中的每个pod还包括接入层,接入层包括多个接入节点,第一pod中的第一汇聚节点将第一数据流的数据包按照包均衡的方式发送给核心层中的至少一个核心节点之前,该方法还包括;第一pod中第一接入节点将第二数据流包括的数据包按照包均衡的方式发送给第一pod中的至少两个汇聚节点,至少两个汇聚节点包括第一汇聚节点,第二数据流包括至少两个第一数据流;相应的,第二汇聚节点接收第一数据流的数据包,并对第一数据流的数据包进行排序,得到第一数据流之后,该方法还包括:第二pod中的第二接入节点接收第二pod中至少两个汇聚节点发送的至少两个第一数据流,并对至少两个第一数据流进行排序,得到第二数据流,第二pod中的至少两个汇聚节点包括第二汇聚节点。上述可能的实现方式中,第一接入节点按照包均衡的方式发送第一数据流给第一pod中的多个汇聚节点,每个汇聚节点同样按照包均衡的方式发送各自接收的数据包,当第二pod中的各汇聚节点接收到数据包后对其排序,以恢复得到第一pod中各汇聚节点分发导致的乱序前的数据包的顺序,再由第二接入节点接收到所有数据包后,对第一接入节点分发时发生乱序的数据包排序,以得到数据流中正确的数据包顺序,从而将乱序的数据包的分两层进行排序,可以减小第二接入节点对不同发送路径的数据包进行排序时所需的内存和排序复杂度,进而提高数据通信的效率。

在第一方面的一种可能的实现方式中,每个数据包中包括第一序列指示和第二序列指示,第一序列指示用于指示数据包在所在的第一数据流中的排列顺序,第二序列指示用于指示数据包在第二数据流中的排列顺序。上述可能的实现方式中,当每个数据包中包括第一序列指示和第二序列指示时,第二汇聚节点和第二接入节点可以根据数据包中相应的序列指示进行排序,从而可以提高排序的效率,进而提高数据通信的效率。

第二方面,提供一种数据通信方法,应用于包括多个群组(pod)的数据通信网络中,多个pod间通过核心节点进行通信连接,每个pod包括汇聚层和接入层,汇聚层包括多个汇聚节点,接入层包括多个接入节点;该方法包括:当第一接入节点从服务器接收到目的节点为第二接入节点的数据流时,第一接入节点判断第二接入节点与第一接入节点是否处于同一个pod;若不处于同一个pod,则第一接入节点按照流均衡的方式向处于同一pod中的汇聚节点发送该数据流;若处于同一个pod,则第一接入节点按照包均衡的方式向处于同一pod中的汇聚节点发送该数据流。上述技术方案中,第一接入节点可以根据数据流的目的节点与第一接入节点是否处于同一pod中,确定该数据流是按照流均衡发送,还是按照包均衡方式发送,从而可以充分利用不同的端口带宽和可用的发送路径,提高数据通信的效率。

在第二方面的一种可能的实现方式中,当第一接入节点按照流均衡的方式向处于同一pod中的第一汇聚节点发送数据流时,该方法还包括:当第一汇聚节点接收到该数据流时,第一汇聚节点将该数据流包括的数据包按照包均衡的方式发送给核心层中的至少一个核心节点;至少一个核心节点将接收到的数据包发送给与第二接入节点处于同一pod中的第二汇聚节点;当第二汇聚节点接收到至少一个核心节点发送的数据包时,对数据包进行排序,得到该数据流;第二汇聚节点按照该数据流中数据包的顺序,将该数据流发送给第二接入节点。

第三方面,提供一种数据通信网络,数据通信网络包括多个群组(pod)和核心层,多个pod中的每个pod包括汇聚层,汇聚层包括多个汇聚节点,核心层包括多个核心节点;其中,第一pod中的第一汇聚节点,用于将第一数据流的数据包按照包均衡的方式发送给核心层中的至少一个核心节点;至少一个核心节点,用于接收第一数据流的数据包,并将第一数据流的数据包发送给第二pod中的第二汇聚节点;第二汇聚节点,用于接收第一数据流的数据包,并对第一数据流的数据包进行排序,得到第一数据流。

在第三方面的一种可能的实现方式中,多个pod中的每个pod还包括接入层,接入层包括多个接入节点;其中,第一pod中的第一接入节点,用于将第一数据流包括数据包按照流均衡的方式发送给第一汇聚节点。

在第三方面的一种可能的实现方式中,多个pod中的每个pod还包括接入层,接入层包括多个接入节点;其中,第一pod中的第一接入节点,用于将第二数据流包括的数据包按照包均衡的方式发送给第一pod中的至少两个汇聚节点,至少两个汇聚节点包括第一汇聚节点,第二数据流包括至少两个第一数据流;第二pod中的第二接入节点,用于接收第二pod中至少两个汇聚节点发送的至少两个第一数据流,并对至少两个第一数据流进行排序,得到第二数据流,第二pod中的至少两个汇聚节点包括第二汇聚节点。

在第三方面的一种可能的实现方式中,每个数据包中包括第一序列指示和第二序列指示,第一序列指示用于指示数据包在所在的第一数据流中的排列顺序,第二序列指示用于指示数据包在第二数据流中的排列顺序。

第四方面,提供一种数据通信网络,数据通信网络包括多个群组(pod),多个pod间通过核心节点进行通信连接,每个pod包括汇聚层和接入层,汇聚层包括多个汇聚节点,接入层包括多个接入节点;其中,第一接入节点,用于当从服务器接收到目的节点为第二接入节点的数据流时,判断第二接入节点与第一接入节点是否处于同一个pod;第一接入节点,还用于若不处于同一个pod,则按照流均衡的方式向处于同一pod中的汇聚节点发送该数据流;第一接入节点,还用于若处于同一个pod,则按照包均衡的方式向处于同一pod中的汇聚节点发送该数据流。

在第四方面的一种可能的实现方式中,第一汇聚节点,用于当接收到该数据流时,将该数据流包括的数据包按照包均衡的方式发送给核心层中的至少一个核心节点;至少一个核心节点,用于将接收到的数据包发送给与第二接入节点处于同一pod中的第二汇聚节点;第二汇聚节点,用于当接收到至少一个核心节点发送的数据包时,对数据包进行排序,得到该数据流;第二汇聚节点,还用于按照该数据流中数据包的顺序,将该数据流发送给第二接入节点。

在本申请的又一方面,提供了一种节点,该节点用于实现上述第一方面或第一方面的任一种可能的实现方式、或者第二方面所提供的数据通信方法中任一节点的功能,所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个上述功能相应的单元。

在一种可能的设计中,该节点的结构中包括处理器和通信接口,该处理器被配置为支持该管理节点执行上述第一方面或第一方面的任一种可能的实现方式、或者第二方面所提供的方法中任一节点的步骤。该通信接口用于支持该节点与其他网元之间的通信。该节点还可以包括存储器,该存储器用于与处理器耦合,其保存该设备必要的程序代码和数据。

本申请的又一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所提供的数据通信方法中任一节点的步骤。

本申请的又一方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所提供的数据通信方法中任一节点的步骤。

可以理解地,上述提供的任一种数据通信方法的网络、设备、计算机存储介质或者计算机程序产品均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。

附图说明

图1为一种数据通信网络的结构示意图;

图2为本发明实施例提供的一种网络中节点的结构示意图;

图3为本发明实施例提供的一种数据通信方法的流程示意图;

图4为本发明实施例提供的另一种数据通信方法的流程示意图;

图5为本发明实施例提供的一种数据通信的示意图;

图6为本发明实施例提供的又一种数据通信方法的流程示意图;

图7为本发明实施例提供的一种数据包报头的格式示意图;

图8为本发明实施例提供的另一种数据通信的示意图;

图9为本发明实施例提供的一种节点的结构示意图;

图10为本发明实施例提供的另一种节点的结构示意图。

具体实施方式

图1为一种层次化组网模式的数据通信网络的结构示意图。参见图1,该数据通信网络中包括接入层、汇聚层和核心层,接入层中包括多个接入(access)节点,汇聚层中包括多个汇聚(aggregation)节点,核心层包括多个核心(core)节点,且接入节点的下行端口与需要进行数据流量交换的服务器连接,其上行端口与汇聚节点的下行端口连接,汇聚节点的上行端口与核心节点连接。其中,汇聚层和接入层可以被划分为多个群组(pod),一个pod中可以包括多个接入节点和多个汇聚节点,且每个接入节点与多个汇聚节点全连接。与同一个汇聚节点连接的多个核心节点可以称为一个核心(core)平面,每个核心平面分别和各pod中的不同汇聚节点连接。图1中仅以网络包括3个pod,一个pod内包括3个接入节点和4个汇聚节点,每个核心平面包括两个核心节点为例进行说明。图1中的接入节点可以表示为a1~a9,汇聚节点可以表示为b1~b12,核心节点可以表示为c1~c8,3个pod分别表示为pod1~pod3。

其中,当一个pod内不同接入节点连接的服务器之间进行数据流量交换时,可以通过与接入节点在同一pod内的汇聚节点实现,比如,接入节点a1和接入节点a3连接的服务器需要进行数据流量交换,则接入节点a1可以通过汇聚节点b1将其连接的服务器的数据流发送给接入节点a3。当不同pod内的接入节点连接的服务器之间进行数据流量交换时,可以通过与接入节点在同一pod内的汇聚节点、以及与汇聚节点连接的核心节点实现,比如,接入节点a1和接入节点a5连接的服务器需要进行数据流量交换,则接入节点a1可以将其连接的服务器的数据流发送给汇聚节点b1,由汇聚节点b1转发给核心节点c1,再由c1通过汇聚节点b5发送给接入节点a5。

现有技术中,按照流(flow)均衡的方式交换数据流量时,通常是通过哈希(hash)算法获得多条等价的可用路径(equalcostmultiplepath,ecmp),按照流均衡的方式是指:然后在同一时刻或者不同时刻传递多条数据流时,为每一条数据流分配一条发送路径,通过分配的发送路径发送对应的数据流的全部数据内容。在按照流均衡发送数据包的方式下,由于数据流的全部内容都是通过统一的发送路径传递,实现不同服务器间的数据交换,这样不会乱序。比如,在图1所示的网络中,若源接入节点为a1,目的接入节点为a5,由于一个pod内包括4个汇聚节点,一个汇聚节点与两个核心节点连接,则从a1到a5总共包括8条路径,若通过哈希短发选择最终的发送路径为a1-b1-c1-b5-a5。虽然,按照流均衡的方式发送数据流的数据包时,数据流中数据包不会发生乱序,但是由于哈希算法的选路机制会产生哈希冲突,即哈希算法会将多个数据流往同一个端口上发送,比如,接入节点a1同时将多个数据流通过路径a1-b1-c1-b5-a5发送,则会造成该路径上的端口拥塞。另外,可用的发送路径比较多,按照流均衡的方式只使用其中的一条路径发送,也会造成资源浪费的问题。

现有技术中,按照包(packet)均衡的方式交换数据流量时,通常是将同一数据流的数据包按照一定的负载分配原则分发在多条发送路径中,从而数据流中的数据包发生了乱序,当目的接入节点接收到经过不同发送路径的数据包时,需要对接收到的数据包进行排序,以恢复数据包在数据流中的正确顺序。比如,在图1所示的网络中,若源接入节点为a1,目的接入节点为a5,则从a1到a5总共包括8条路径,源接入节点可以将数据流均匀分发给同一pod内的汇聚节点b1~b4,b1将其接收到的数据包均匀分发给与其连接的核心节点c1和c2,由c1和c2将其发送给b5;同理,b2、b3和b4将数据包对应转发送至b6、b7和b8;然后,b5、b6、b7和b8将接收到的数据包发送给目的接入节点a5,a5对从不同路径接收到的数据包进行排序,得到数据包的初始顺序。由于按照包均衡进行数据流量交换时,若同一pod内的汇聚节点越多、以及与其连接的核心节点越多,则可用的发送路径越多,而每条发送路径的时延都可能不同,因此,目的接入节点需要保持先接收到的数据包,并在所有数据包到达后对其进行排序,从而需要的内存空间比较大,且进行排序后的工作量也较大。

由于网络中不同节点的端口带宽会有不同,比如,通常接入节点的上行端口带宽(比如,10gbps)大于其下行端口(比如,40gbps)的带宽,因此,本申请实施例提供的方案充分利用不同节点的端口带宽、以及网络中的可用的发送路径来实现不同节点间的数据流量交换,从而在避免端口拥塞的情况下,减小目的接入节点排序时的内存需求和排序工作量,进而提高数据交换的效率。

本申请实施例应用于数据流量交换的场景中,对于交换的网络中包括的pod的数量、每个pod中汇聚节点和接入节点的数量、网络包括的核心平面的数量、以及每个核心平面中核心节点的数量,本申请实施例不作具体限定。另外,网络中不同核心平面包括核心节点的数量可以相同,也可以不同,以及不同pod中汇聚节点和接入节点的数量可以相同,也可以不同。

图2为申请实施例提供的一种节点的结构示意图,该节点可以为核心节点、汇聚节点或者接入节点。在实际应用中,网络中的核心节点、汇聚节点和接入节点可以为交换机、路由器、或者其他网络设备等。本申请实施例以交换机为例对该节点的结构进行说明。

参见图2,该节点包括处理器、存储器、和以太网接口。其中,处理器通过运行或执行存储在存储器内的软件程序和/或模块,以及调用存储在存储器内的数据,执行该节点的各种功能。处理器可以包括一个或者多个模块,比如,包括中央处理单元(centralprocessingunit,cpu)和网络处理器(networkprocessor,np),该网络处理器可以由专用集成电路(application-specificintegratedcircuit,asic)或现场可编程门阵列(field-programmablegatearray,fpga)芯片实现。存储器可用于存储数据、软件程序以及模块,可以由任何类型的易失性或非易失性存储器或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘等等。以太网接口即为该节点的端口,一个节点可以包括多个以太网接口,每个以太网接口可以被配置为该节点的上行端口,也可以被配置为下行端口,且该节点可以通过上行端口和下行端口对数据流量进行转发。

本领域技术人员可以理解,图2示出的该节点的结构并不构成对其结构的限定。在实际应用中,该节点还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

图3为本申请实施例提供的一种数据通信方法的流程示意图,该方法应用于包括多个pod和核心层的数据通信网络中,参见图3,该方法包括以下几个步骤。

步骤201:第一pod中的第一汇聚节点将第一数据流的数据包按照包均衡的方式发送给核心层中的至少一个核心节点。

其中,第一pod可以是多个pod中的任意一个,第一数据流可以是与第一pod连接的服务器需要交换的数据流量中的数据流。第一pod包括的汇聚层中包含多个汇聚节点,第一汇聚节点可以是该多个汇聚节点中的任一汇聚节点。该至少一个核心节点可以是核心层中与第一汇聚节点连接的核心节点。

另外,第一数据流可以包括多个数据包,按照包均衡的方式分发多个数据包时,每一条可用的发送路径分发的数据包可以是第一数据流中互相连续的数据包、或者是第一数据流中互相间隔的数据包、或者是按照其他规则分发的数据包。比如,第一数据流包括数据包1-数据包4,且存在两条可用的发送路径,则可以将数据包1和数据包2发送给第一条发送路径,将数据包3和数据包4发送给第二条发送路径;或者,将数据包1和数据包3发送给第一条发送路径,将数据包2和数据包4发送给第二条发送路径等等,本申请实施例对此不作限定。

具体的,第一汇聚节点可以将第一数据流包括的数据包按照一定的负载原则分发给与该汇聚节点连接的至少一个核心节点,当至少一个核心节点为一个核心节点时,该核心节点可以包括多个下行端口,从而第一汇聚节点将第一数据流包括的数据包分发给该核心节点的多个下行端口。以图1所示的网络为例,若第一pod为pod1,第一数据流为pod1中汇聚节点b1处的数据流,且第一数据流包括数据包1-数据包4,当第一汇聚节点为b1,与b1连接的至少一个核心节点为c1和c2,汇聚节点b1按照一条发送路径中数据包互相间隔的规则分发时,则汇聚节点b1可以将数据包1和数据包3发送给核心节点c1,将数据包2和数据包4发送给核心节点c2。

需要说明的是,按照包均衡分发第一数据流的数据包时,分发后每个核心节点接收到的数据包的数量可能相同,也可以不同。另外,任意两个核心节点接收到的数据包的数量的差值最大为1。

步骤202:至少一个核心节点接收第一数据流的数据包,并将接收到的数据包发送给第二pod中的第二汇聚节点。

其中,第二pod是多个pod中与第一pod不同的任一pod,且第二pod连接的服务器是第一pod连接的服务器需要进行数据流量交换的服务器,即第一pod连接的服务器为源服务器,第二pod连接的服务器为目的服务器,源服务器需要将数据流量发送至目的服务器。第二汇聚节点可以是第二pod中与该至少一个核心节点连接的汇聚节点。

具体的,第一数据流的数据包中可以包括第二汇聚节点的地址信息或者路由信息等用于标识核心节点与第二汇聚节点之间路径的信息,从而当该至少一个核心节点接收到第一数据流的数据包时,该至少一个核心节点可以根据该地址信息或者路由信息等,将接收到的数据包发送给第二pod中与其连接的第二汇聚节点。以图1所示的网络为例,当汇聚节点b1将数据包1和数据包3发送给核心节点c1,以及将数据包2和数据包4发送给核心节点c2时,若第二pod为pod2,则核心节点c1在接收到数据包1和数据包3时,可以将其发送给汇聚节点b5;核心节点c2在接收到数据包2和数据包4时,也可以将其发送给汇聚节点b5。

步骤203:第二汇聚节点接收第一数据流的数据包,并对第一数据流的数据包进行排序,得到第一数据流。

其中,第一汇聚节点将第一数据流的数据包按照包均衡的方式分发给至少一个核心节点时,第一数据流中的数据包发生了乱序,因此,当第二汇聚节点接收到乱序的第一数据流的数据包时,第二汇聚节点可以对第一数据流中乱序的数据包进行排序,以恢复出正确的数据包顺序,即得到第一数据流。

具体的,第二汇聚节点对第一数据流的数据包进行排序时,可以按照第一汇聚节点分发第一数据流的数据包时的规则,相应的进行排序,得到第一数据流。其中,按照包均衡的方式分发第一数据流的数据包的规则,可以事先在第一汇聚节点和第二汇聚节点上设置或配置等。

以图1所示的网络为例,第二汇聚节点b5接收到核心节点c1发送的数据包1和数据包3,以及接收到核心节点c2发送的数据包2和数据包4时,第二汇聚节点b5可以按照第一汇聚节点b1分发数据包时的规则(比如,该规则为数据包间隔分发),将数据包进行排序,得到数据包1-数据包4,从而得到第一数据流。

可选的,第一数据流包括的每个数据包中可以包括第一序列指示,第一序列指示用于指示该数据包在第一数据流中的排列顺序,从而当第二汇聚节点对第一数据流的数据包进行排序时,第二汇聚节点可以按照每个数据包中的第一序列指示,确定其在第一数据流中的排列顺序,从而对第一数据流的数据包进行排序,得到第一数据流。

进一步的,多个pod中的每个pod还包括接入层,该接入层中包括多个接入节点,第一pod中第一汇聚节点发送的第一数据流可以是由第一pod中的第一接入节点发送的,第一接入节点是与源服务器连接的接入节点,且第一接入节点可以按照流均衡的方式发送,也可以按照包均衡的方式发送,具体如下所述。

(1)、第一接入节点按照流均衡的方式发送,参见图4,在步骤201之前,该方法还包括:步骤200a。

步骤200a:第一接入节点将第一数据流的数据包按照流均衡的方式发送给第一汇聚节点。

其中,当第一接入节点从源服务器接收到第一数据流时,第一接入节点可以按照流均衡的方式将第一数据流的数据包发送给第一pod中的第一汇聚节点。第一汇聚节点可以是第一pod中汇聚层包括的多个汇聚节点中的任一汇聚节点,也可以是根据哈希算法从该多个汇聚节点中选择的一个汇聚节点。

相应的,如图4所示,在步骤203之后,该方法还包括:步骤204a和步骤205a。

步骤204a:第二汇聚节点将第一数据流发送给第二pod中的第二接入节点。

其中,若目的服务器与第二pod中的第二接入节点连接,则第二接入节点为第一数据流的目的接入节点,当第二汇聚节点排序得到第一数据流后,第二汇聚节点可以将第一数据流发送给第二接入节点。

步骤205a:第二接入节点接收第一数据流的数据包。

由于第一接入节点按照流均衡的方式发送第一数据流的数据包时,不会影响第一数据流中数据包的顺序,因此,当第二接入节点接收到第一数据流的数据包时,第二接入节点直接将其发送给目的服务器,从而实现源服务器和目的服务器之间的数据流量的交换。

以图1所示的网络为例,第一数据流从源服务器连接的第一接入节点发送至目的服务器连接的第二接入节点的过程可以如图5所示。具体的,第一接入节点a1按照流均衡方式将第一数据流的数据包发送给第一汇聚节点b1,第一汇聚节点b1按照包均衡方式将第一数据流的数据包发送给核心节点c1和c2,并由核心节点c1和c2发送至第二汇聚节点b5,第二汇聚节点b5对pod1中第一汇聚节点分发时发生乱序的数据包排序,并将排序后的第一数据流发送给第二接入节点a5。

进一步的,当第一接入节点通过数据通信网络将第一数据流发送给第二接入节点时,第一接入节点还可以按照包均衡的方式将第一数据流的数据包分发给与第一接入节点同在第一pod中的多个汇聚节点,该多个汇聚节点将各自接收到的数据包按照流均衡的方式发送给与其连接的核心节点,进而通过核心节点将其转发至第二pod中的多个汇聚节点,再由第二pod中的多个汇聚节点转发至第二pod中的第二接入节点,第二接入节点对接收到的数据进行排序,即将接收到的数据包恢复至第一接入节点按照包均衡分发前的顺序,从而得到第一数据流。

(2)、第一接入节点按照包均衡的方式发送。参见图6,在步骤201之前,该方法还包括:步骤200b。

步骤200b:第一接入节点将第二数据流的数据包按照包均衡的方式发送给第一pod中的至少两个汇聚节点,至少两个汇聚节点包括第一汇聚节点,第二数据流包括至少两个第一数据流。

当第一接入节点从源服务器接收到第二数据流时,第一接入节点可以按照流均衡的方式将第二数据流的数据包发送给第一pod中的至少两个汇聚节点。即第二数据流包括至少两个第一数据流,第一接入节点向该至少两个汇聚节点中的每个汇聚节点发送一个第一数据流。

其中,第一数据流是指第一接入节点按照包均衡的方式将第二数据流包的数据包分发给第一pod中的多个汇聚节点后,每个汇聚节点对应的数据流。以图1所示的网络为例,若第二数量流包括数据包1-数据包8,第一接入节点a1将数据包1-数据包10分发给汇聚节点b1-b4时,若汇聚节点b1-b4对应的第一数据流分别为:数据包1和数据5、数据包2和数据包6、数据包3和数据包7、数据包4和数据包8。

需要说明的是,按照包均衡分发第二数据流的数据包时,分发后每个第一数据流包括的数据包的数量可能相同,也可以不同。另外,任意两个第一数据流包括的数据包的数量的差值最大为1。

当第一接入节点向第一pod中至少两个汇聚节点中的每个汇聚节点发送第一数据流后,每个汇聚节点会按照上述步骤201-步骤203将第一数据流的数据包发送至第二pod中的至少两个汇聚节点,且每个汇聚节点排序后得到对应的第一数据流。

相应的,如图6所示,在步骤203之后,该方法还包括:步骤204b和步骤205b。

步骤204b:第二汇聚节点将排序后得到第一数据流发送给第二接入节点。

第二汇聚节点为第二pod中至少两个汇聚节点中的任一汇聚节点,该至少两个汇聚节点分别会将其排序后得到的第一数据流发送给第二接入节点,即该至少两个汇聚节点中的每个汇聚节点都可以通过步骤204b将其排序后得到的第一数据流发送给第二接入节点。

以图1所示的网络为例,汇聚节点b1-b4对应的第一数据流分别经过核心层的核心节点转发至第二pod中的汇聚节点b5-b8,汇聚节点b5-b8排序后得到的第一数据流分别为:数据包1和数据5、数据包2和数据包6、数据包3和数据包7、数据包4和数据包8。以汇聚节点b5为例,汇聚节点b5将包括数据包1和数据5的第一数据流发送给第二接入节点,同理汇聚节点b6、b7和b8也将其对应的第一数据流发送给第二接入节点。

步骤205b:第二接入节点接收至少两个第一数据流,并对至少两个第一数据流进行排序,得到第二数据流。

其中,当第二pod中的至少两个汇聚节点分别将其排序后得到的第一数据流发送给第二接入节点时,由于第一接入节点将第二数据流的数据包按照包均衡的方式分发给至少两个汇聚节点时,第二数据流中的数据包发生了乱序,且被分为至少两个第一数据流,因此,第二接入节点可以该至少两个第一数据流进行排序,以恢复出每个数据包在第二数据流中的顺序,从而得到第二数据流。

具体的,第二接入节点对至少两个第一数据流包括的数据包进行排序时,可以按照第一接入节点分发第二数据流的数据包时的规则,相应的进行排序,得到第二数据流。其中,按照包均衡的方式分发第二数据流的数据包的规则,可以事先在第一接入节点和第二接入节点上设置或配置等。

以图1所示的网络为例,若第二接入节点a5接收到至少两个第一数据流为:数据包1和数据5、数据包2和数据包6、数据包3和数据包7、数据包4和数据包8,则第二接入节点a5可以按照第一接入节点a1分发数据包时的规则(比如,该规则为数据包间隔分发),将数据包进行排序,得到数据包1-数据包8,从而得到第二数据流。

可选的,第一数据流包括的每个数据包中可以还可以包括第二序列指示,第二序列指示用于指示该数据包在第二数据流中的排列顺序,从而当第二接入节点对至少两个第一数据流包括的数据包进行排序时,第二接入节点可以按照每个数据包中的第二序列指示,确定其在第二数据流中的排列顺序,从而对数据包进行排序得到第二数据流。比如,每个数据包的报文头格式如图7所示,该报文头包括mac头、ip头、tcp/udp头、第一序列指示、第二序列指示和负载部分。其中,mac头、ip头、tcp/udp头和负载部分为常规的报文头,本申请实施例对此不作阐述。

以图1所示的网络为例,第二数据流从源服务器连接的第一接入节点发送至目的服务器连接的第二接入节点的过程可以如图8所示。具体的,第一接入节点a1按照包均衡方式将第二数据流的数据包分发给pod1中的汇聚节点b1-b4,每个汇聚节点接收到的数据包称为第一数据流,汇聚节点b1-b4中的每个汇聚节点分别将其转发至pod2中的汇聚节点b5-b8。以第一汇聚节点b1为例,第一汇聚节点b1按照包均衡方式将第一数据流的数据包发送给核心节点c1和c2,并由核心节点c1和c2发送至第二汇聚节点b5,第二汇聚节点b5对pod1中第一汇聚节点分发时造成乱序的数据包排序,得到第一数据流。之后,pod2中的汇聚节点b5-b8分别将其对应的第一数据流发送给第二接入节点a5,由第二接入节点a5对接收到的多个第一数据流包括的数据包进行排序,得到第二数据流。

进一步的,第一数据流在接入层和汇聚层之间是按照流均衡的方式发送,还是按照包均衡的方式发送,还可以根据第一数据流的目的节点与第一接入节点是否在同一pod中确定,具体包括:当第一接入节点从服务器接收到目的节点为第二接入节点的第一数据流时,第一接入节点判断第二接入节点与第一接入节点是否处于同一个pod中;若不处于同一个pod中,则第一接入节点按照流均衡的方式向处于同一pod中的第一汇聚节点发送第一数据流;若处于同一个pod中,则第一接入节点按照包均衡的方式向处于同一pod中的汇聚节点发送第一数据流。

也即是,若第一数据流为同一pod内的数据交换,则第一接入节点在接收到第一数据流后,按照包均衡的方式向处于同一pod中的第一汇聚节点分发第一数据流的数据包;若第一数据流为不同pod间的数据交换,则第一接入节点在接收到第一数据流后,按照流均衡的方式向处于同一pod中的汇聚节点发送第一数据流的数据包。

在本申请实施例中,第一pod中的第一接入节点按照流均衡的方式或者按照包均衡的方式向第一pod中的第一汇聚节点发送第一数据流,第一汇聚节点按照包均衡的方式将第一数据流的数据包分发给核心层的至少一个核心节点,由至少一个核心节点将其发送给第二pod中的第二汇聚节点,第二汇聚节点对其进行排序,得到第一数据流并将其发送给第二pod中的第二接入节点,并在第一接入节点按照包均衡的方式发送时,第二接入节点进行再次排序,得到第一接入节点发送时数据流中数据包的顺序,从而充分利用不同节点的端口带宽、以及网络中的可用的发送路径来实现不同节点间的数据流量交换,在避免端口拥塞的情况下,减小第二接入节点排序时的内存需求和排序工作量,进而提高数据交换的效率。

本申请实施例还提供一种数据通信网络,该数据通信网络包括多个pod和核心层,多个pod中的每个pod包括汇聚层,汇聚层包括多个汇聚节点,核心层包括多个核心节点。

其中,第一pod中的第一汇聚节点,用于将第一数据流的数据包按照包均衡的方式发送给核心层中的至少一个核心节点;

至少一个核心节点,分别用于接收第一数据流的数据包,并将第一数据流的数据包发送给第二pod中的第二汇聚节点;

第二汇聚节点,用于接收第一数据流的数据包,并对第一数据流的数据包进行排序,得到第一数据流。

进一步的,多个pod中的每个pod还包括接入层,接入层包括多个接入节点。其中,第一pod中的第一接入节点,用于将第一数据流包括数据包按照流均衡的方式发送给第一汇聚节点。

或者,多个pod中的每个pod还包括接入层,接入层包括多个接入节点。其中,第一pod中的第一接入节点,用于将第二数据流包括的数据包按照包均衡的方式发送给第一pod中的至少两个汇聚节点,至少两个汇聚节点包括第一汇聚节点,第二数据流包括至少两个第一数据流;第二pod中的第二接入节点,用于接收第二pod中至少两个汇聚节点发送的至少两个第一数据流,并对至少两个第一数据流进行排序,得到第二数据流,第二pod中的至少两个汇聚节点包括第二汇聚节点。

可选的,每个数据包中包括第一序列指示和第二序列指示,第一序列指示用于指示该数据包在所在的第一数据流中的排列顺序,第二序列指示用于指示该数据包在第二数据流中的排列顺序。

本申请实施例还提供一种数据通信网络,该数据通信网络包括多个pod,多个pod间通过核心节点进行通信连接,每个pod包括汇聚层和接入层,汇聚层包括多个汇聚节点,接入层包括多个接入节点;其中,第一接入节点,用于当从服务器接收到目的节点为第二接入节点的数据流时,判断第二接入节点与第一接入节点是否处于同一个pod;第一接入节点,还用于若不处于同一个pod,则按照流均衡的方式向处于同一pod中的汇聚节点发送该数据流;第一接入节点,还用于若处于同一个pod,则按照包均衡的方式向处于同一pod中的汇聚节点发送该数据流。

上述主要从各个网元之间交互的角度对本申请实施例提供的方案进行了介绍。可以理解的是,各个网元,例如第一汇聚节点、第二汇聚节点、第一接入节点和第二接入节点等为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的网元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

本申请实施例可以根据上述方法示例对第一汇聚节点、第二汇聚节点、第一接入节点和第二接入节点进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

在采用对应各个功能划分各个功能模块的情况下,图9示出了上述实施例中所涉及的节点的一种可能的结构示意图,该节点可以为第一汇聚节点、第二汇聚节点、第一接入节点和第二接入节点中的任一节点,该节点包括:接收单元301、处理单元302和发送单元303。

其中,当该节点为第一接入节点时,接收单元301用于支持该节点接收源服务器发送的数据流;当该节点为第一汇聚节点时,接收单元301用于支持该节点接收第一接入节点发送的数据流;当该节点为第二汇聚节点时,接收单元301用于支持该节点接收至少一个核心节点发送的数据包;当该节点为第二接入节点时,接收单元301用于支持该节点接收第二汇聚节点发送的数据包(图4中的步骤205a)、或者接收第二pod中的每个汇聚节点发送的数据包。

当该节点为第二汇聚节点时,处理单元302用于支持该节点执行图3、图4、或图6中的步骤203;当该节点为第二接入节点时,处理单元302用于支持该节点执行图6中的步骤205b。

当该节点为第一接入节点时,发送单元303用于支持该节点执行图4中的步骤200a、或者图6中的步骤200b;当该节点为第一汇聚节点时,发送单元303用于支持执行图3、图4、或者图6中的步骤201;当该节点为第二汇聚节点时,发送单元303用于支持该节点执行图4中的步骤204a、或者图6中的步骤204b。

在硬件实现上,上述处理单元302可以为处理器;接收单元301可以为接收器、发送单元303可以为发送器,接收器和发送器可以构成通信接口。

图10所示,为本申请的实施例提供的上述实施例中所涉及的节点的一种可能的逻辑结构示意图。该节点包括:处理器312、通信接口313、存储器311以及总线314。处理器312、通信接口313以及存储器311通过总线314相互连接。在本申请的实施例中,处理器312用于对该节点的动作进行控制管理,例如,当该节点为第二汇聚节点时,处理器312用于支持该节点执行图3、图4、或图6中的步骤203,当该节点为第二接入节点时,处理器312用于支持该节点执行图6中的步骤205b,和/或用于本文所描述的技术的其他过程。通信接口313用于支持该节点进行通信。存储器311,用于存储该节点的程序代码和数据。

其中,处理器312可以是中央处理器单元,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。总线314可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

在本申请的另一实施例中,还提供一种可读存储介质,可读存储介质中存储有计算机执行指令,当一个设备(可以是单片机,芯片等)或者处理器执行图3、图4或图6所提供的数据通信方法中任一节点的步骤。前述的可读存储介质可以包括:u盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。

在本申请的另一实施例中,还提供一种计算机程序产品,该计算机程序产品包括计算机执行指令,该计算机执行指令存储在计算机可读存储介质中;设备的至少一个处理器可以从计算机可读存储介质读取该计算机执行指令,至少一个处理器执行该计算机执行指令使得设备实施图3、图4或图6所提供的数据通信方法中任一节点的步骤。

在本申请实施例中,第一pod中的第一接入节点按照流均衡的方式或者按照包均衡的方式向第一pod中的第一汇聚节点发送第一数据流,第一汇聚节点按照包均衡的方式将第一数据流的数据包分发给核心层的至少一个核心节点,由至少一个核心节点将其发送给第二pod中的第二汇聚节点,第二汇聚节点对其进行排序,得到第一数据流并将其发送给第二pod中的第二接入节点,并在第一接入节点按照包均衡的方式发送时,第二接入节点进行再次排序,得到第一接入节点发送时数据流中数据包的顺序,从而充分利用不同节点的端口带宽、以及网络中的可用的发送路径来实现不同节点间的数据流量交换,在避免端口拥塞的情况下,减小第二接入节点排序时的内存需求和排序工作量,进而提高数据交换的效率。

最后应说明的是:以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1