CN102611612A - 数据中心环境中的多路径通信 - Google Patents
数据中心环境中的多路径通信 Download PDFInfo
- Publication number
- CN102611612A CN102611612A CN2011104313622A CN201110431362A CN102611612A CN 102611612 A CN102611612 A CN 102611612A CN 2011104313622 A CN2011104313622 A CN 2011104313622A CN 201110431362 A CN201110431362 A CN 201110431362A CN 102611612 A CN102611612 A CN 102611612A
- Authority
- CN
- China
- Prior art keywords
- computing equipment
- recipient
- packet
- data center
- communication stream
- 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.)
- Pending
Links
Images
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/19—Flow control; Congestion control at layers above the network layer
- H04L47/193—Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/14—Multichannel or multilink protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Abstract
此处描述了与数据中心环境中的多路径通信有关的各种技术。网络基础结构设备彼此传递通信流,其中通信流包括期望以特定顺序传输并接收的供特定的接收者计算设备使用的多个数据分组。以防止网络基础结构设备重传特定的数据分组的方式处理对通信流中的数据分组未按特定顺序被接收的指示。
Description
技术领域
本发明涉及数据中心,尤其是数据中心中的多路径通信。
背景技术
数据中心是用于容纳特定企业的计算机系统及相关联的组件的设施。这些系统及相关联的组件包括处理系统(诸如服务器)、数据存储设备、电信系统、网络基础结构设备(诸如交换机和路由器)、及其他系统/组件。通常存在工作流,使得在数据中心中的一个或多个计算设备处生成的数据必须被传输到数据中心中的另一个计算设备以实现特定的任务。通常,通过分组交换网络在数据中心中传输数据,使得在网络基础结构设备之间传输通信流,其中通信流是与一段时间内的特定任务有关的数据分组序列。在某些情形中,通信流是相对大的,诸如当搜索引擎所使用的索引的部分被从若干服务器理想地聚集的时候。在其他情形中,通信流可以是相对小的,但在计算设备之间传递时也可以与相对短的可接受的等待时间相关联。
数据中心设计的一贯主题是使用低成本商用组件来构建高度可用的高性能计算与存储基础结构。具体而言,价格在2000美元以下、以1Gbps提供多达48个端口的低成本交换机是常见的。若干最近的研究建议构想了使用构建在这种商用交换机之上的新颖的基础结构来创建经济的、易于管理的数据中心。因此,使用这些交换机,数据中心中的计算设备(例如服务器)之间的多条通信路径通常存在。
数据中心中的网络基础结构设备被配置为通过使用传输控制协议(TCP)来通信。TCP是被配置为提供数据分组从运行在第一计算设备上的程序到运行在第二计算设备上的程序的可靠、顺序的递送的通信协议。然而,使用TCP的网络上的通信流通常受限于计算设备之间的单个通信路径(即,一系列单独的链路),即使其他链路具有传输数据的带宽。这在托管搜索引擎的数据中心的上下文中可能是有问题的。例如,诸如与搜索引擎所利用的索引的部分相关联的文件传送的大的流(例如100MB或更大)可能干扰对等待时间敏感的小的流,诸如查询交通。
发明内容
以下是在本文详细描述的主题的简要的发明内容。本发明内容不旨在是关于权利要求的范围的限制。
此处描述的是与数据中心网络中的计算设备之间的通信有关的各种技术。更具体地,此处描述的是便于数据中心网络中的计算设备之间的多路径通信的各种技术。如此处描述的数据中心可包括多个计算设备,该多个计算设备可包括服务器、路由器、交换机、以及通常与数据中心相关联的其他设备。服务器可在数据中心中被委托以运行执行各种计算任务的程序。根据一个特定的示例,数据中心中的服务器可被委托以维护搜索引擎所利用的索引、可被委托以在接收用户查询之后针对该索引进行搜索、以及其他信息检索任务。然而,应当理解的是,可以出于任何合适的目的来委托数据中心中的计算设备。
可以是交换机、路由器、组合交换机/路由器等的网络基础结构装置可从发送者计算设备接收通信流,该通信流被期望传输到接收者计算设备。通信流包括特定序列中的由接收者计算设备期望接收的多个数据分组。例如,接收者计算设备可被配置为根据传输控制协议(TCP)来发送及接收通信。数据中心网络的拓扑结构可以被配置,使得多条通信路径/链路存在于发送者计算设备与接收者计算设备之间。网络基础结构装置可以使通信流跨多条通信链路分布,使得当在发送者计算设备与接收者计算设备之间传输通信流时,网络资源被汇合。具体地,通信流中的第一数据分组可以跨第一通信链路被传输到接收者计算设备,而通信流中的第二数据分组可以跨第二通信链路被传输到接收者计算设备。
根据此处描述的一方面,网络基础结构设备和/或发送者计算设备可被配置为向通信流中的每个数据分组添加熵。通常,网络交换机基于数据分组头部中的内容跨链路分布通信量,使得数据分组头部中从特定发送者到指定接收者的网络通信量跨单个通信信道被传输。基础结构设备可被配置为更改数据中心网络中的接收者计算设备的地址的不重要部分(保留在头部的地址字段中),由此导致网络基础结构设备跨多条通信链路分布通信流中的数据分组。接收者交换机可包括移除熵的散列算法或其他合适的算法,使得接收者计算设备接收通信流中的数据分组。
另外,基础结构装置可被配置为识别来自接收者计算设备的对通信流中一个或多个数据分组未按期望的序列被接收的指示。例如,发送者计算设备和接收者计算设备可被配置为通过TCP来通信,其中如果例如第一个接收到期望在序列中第一个被接收的第一分组,没有接收到期望在序列中第二个被接收的第二分组,并且在期望被第二个接收的分组之前接收到期望在序列中第三个被接收的第三分组,则接收者计算设备传输重复确认。在这种情形中,接收者计算设备向发送者计算设备传输指示第一分组已被接收的重复确认(由此初始化对第二分组的传输)。发送者计算设备可以以防止发送者计算设备重发第二分组的方式来处理重复确认。由于通信流中的数据分组通过可能具有不同的对应等待时间的不同的通信路径被传输,因此通信流中的数据分组的非顺序接收可能会发生。
发送者计算设备执行的处理可包括忽略重复确认,等待直到与数据分组有关的重复确认的数量达到特定的阈值(高于与TCP相对应的阈值),或者将重复确认作为普通确认来对待。
在阅读并理解了附图和描述后,可以明白其他方面。
附图说明
图1是便于数据中心中的发送者计算设备通过多条路径向数据中心中的接收者计算设备传输通信流的示例性系统的功能框图。
图2是便于通过多条通信路径在发送者计算设备与接收者计算设备之间传输通信流的示例性系统的功能框图。
图3是此处描述的各方面的高级示例性实现。
图4是数据中心中的示例性网络/计算拓扑结构。
图5是示出处理对在支持多路径通信的数据中心中以非期望的顺序接收数据分组的指示的示例性方法的流程图。
图6是示出通过向通信流中的数据分组添加熵在数据中心网络中的多条通信路径上传输通信流的示例性方法的流程图。
图7是示例性计算系统。
具体实施方式
现在将参考附图来描述关于数据中心环境中的多路径通信的各种技术,在全部附图中相同的附图标记表示相同的元素。另外,本文出于解释的目的示出并描述了各示例性系统的若干功能框图;然而可以理解,被描述为由特定系统组件执行的功能可以由多个组件来执行。类似地,例如,一组件可被配置成执行被描述为由多个组件执行的功能。另外,如此处所用的,术语“示例性”旨在表示用作某些事物的图示或示例,而不意图指示优选。
参考图1,示出了示例性数据中心100,其中计算设备通过支持多路径通信的数据中心网络来通信。该数据中心100包括可协同工作以为特定企业执行计算任务的多个计算设备。在示例性实施例中,数据中心100的至少一部分可被配置为执行与搜索引擎有关的计算任务,包括构建并维护万维网上可用的文档索引、在接收查询之后搜索该索引、输出与该查询相对应的网页等。由此,数据中心100可包括多个计算设备(诸如服务器、或其他处理设备)和允许这些计算设备彼此通信的网络基础结构设备(诸如交换机、路由器、中继器)、以及用于在网络基础结构设备和/或计算设备之间传输数据的传输介质。
如上所示,在一个计算设备上执行的应用通常可能期望跨数据中心网络向在另一个计算设备上执行的应用传输数据。在数据中心网络中,由于多个路由器、交换机和其他网络基础结构设备,多条通信路径可以存在于任意两个计算设备之间。数据中心100包括计算设备和/或便于计算设备之间通信流的多路径通信的网络基础结构设备。
更具体地,数据中心100包括发送者计算设备102,该发送者计算设备可以是托管被配置为执行特定计算任务的第一应用的服务器。数据中心100还包括接收者计算设备104,其中该接收者计算设备104托管消费第一应用已处理的数据的第二应用。根据此处描述的一方面,发送者计算设备102和接收者计算设备104可被配置为通过利用传输控制协议(TCP)来彼此通信。由此,发送者计算设备104可以期望将通信流传输到接收者计算设备104,其中该通信流包括多个数据分组,并且其中该多个数据分组期望情况下按照特定顺序被发送者计算设备102发送并由接收者计算设备104接收。
数据中心100还可包括发送者计算设备104和接收者计算设备104通过其通信的网络106。如上所示,网络106可包括多个网络基础结构设备,包括路由器、交换机、中继器等。网络106可以被配置,使得多条通信路径108-114存在于发送者计算设备102与接收者计算设备104之间。如将被示出及以下更详细地描述的,网络106可被配置为允许发送者计算设备102通过多条通信链路/路径向接收者计算设备104传输单个通信流,使得通信流中的两个不同的数据分组通过两条不同的通信路径从发送者计算设备102传输到接收者计算设备104。因此,数据中心100被配置用于计算设备之间的多路径通信。
允许数据中心100中的多路径通信是不同寻常的建议。如上所示,数据中心中的计算设备可被配置为通过TCP(或期望通信流中特定的分组序列的其他合适的协议)来通信。由于数据中心100中计算设备之间的不同通信路径可能具有不同的等待时间和/或带宽,因此存在如下可能:通信流中的数据分组将未按期望顺序达到预期的接收者计算设备。对于广域网(WAN)中的多路径通信的所建议的方法包括显著地修改TCP标准,并且这在现实世界应用中可能是不实际的。此处描述的对于数据中心中多路径通信的方法很大程度上使TCP标准保持不变,并且不会显著地影响网络中数据传输的可靠性。这至少部分地由于与数据中心有关的因素,但对于WAN不为真。
例如,数据中心100中的条件是相对同质的,使得数据中心网络106中的每条通信路径具有相对类似的瓶颈能力和延迟。此外,在某些实现中,数据中心100中的通信流可利用大致类似的拥塞流策略,诸如已在2010年2月26日提交的、题为“COMMUNICATION TRANSPORT OPTIMIZED FOR DATACENTER ENVIRONMENT”(为数据中心环境优化的通信传输)的美国专利申请序列号12/714,266中有所描述的DCTCP,上述专利申请的全部通过引用包含于此。另外,数据中心100中的每个路由器和/或交换机可以支持每分组循环ECMP、或支持跨通信路径对数据分组平分的类似协议。该同质性是可能的,因为单个实体通常具有对数据中心100中的每个设备的控制。给定这种同质性,可以实现从发送者计算设备102到接收者计算设备104的通信流的多路径路由。
现在参考图2,示出了便于发送者计算设备102与接收者计算设备104之间的通信流的多路径传输的示例性系统200。计算装置202与发送者计算设备102通信,其中该计算装置202可以是网络基础结构设备,诸如交换机、路由器等。计算装置202可以与多个其他网络基础结构设备通信,使得计算装置202可以通过多条通信路径204-208来传输数据分组。诸如交换机或路由器的网络基础结构设备210可以通过多条通信路径204-208来接收数据分组。接收者计算设备104与网络基础结构设备210通信,使得网络基础结构设备210通过通信路径204-208接收的数据分组可由网络基础结构设备210定向到接收者计算设备104。由此,多条通信路径存在于发送者计算设备102与接收者计算设备104之间。
如上所述,发送者计算设备102包括输出数据的第一应用,该数据期望情况下由在接收者计算设备104上执行的第二应用接收。发送者计算设备102可以根据诸如TCP或其他合适的协议的特定的分组交换网络协议来传输数据。由此,发送者计算设备102可以输出通信流,其中该通信流包括以特定顺序排列的多个数据分组。每个数据分组可包括头部,其中该头部包括接收者计算设备104的地址、以及指示通信流中数据分组的特定顺序中的各个数据分组的位置的数据。发送者计算设备102可输出前述的通信流,并且计算装置202可以接收通信流。
计算装置202包括从发送者计算设备102接收通信流的接收器组件212。例如,接收器组件212可以是或包括传输缓冲区。计算装置202还包括向通信流中每个数据分组头部中的数据添加某种形式的熵的熵生成器组件214。例如,计算装置202通常可被配置为根据TCP传输数据,使得计算装置202尝试通过单个通信路径传输通信流的全部。通常,这通过分析数据分组的头部并且通过相同的通信路径将每个数据分组从特定的发送者计算设备传输到单个地址来实现。因此,熵生成器组件214可被配置为向接收者计算设备104的地址添加熵,使得计算装置202通过多条通信路径传输通信流中的数据分组。在一个示例中,熵可被添加到每个数据分组头部中的地址数据中的不重要的位(例如,地址中的最后两个数字)。
计算装置202中的发送器组件216可以跨多条通信路径204-208传输通信流中的数据分组。另外,发送器组件214可以利用每分组循环ECMP、或支持跨通信路径对数据分组平分的类似协议。
网络基础结构设备210通过多条通信路径204-208接收通信流中的数据分组。网络基础结构设备210随后将通信流中的数据分组定向到接收者计算设备104。如上所述,接收者计算设备104通过协议(例如TCP)进行通信,其中通信流中的数据分组期望以特定的顺序到达。然而,可以查明的是,通信路径204-208可能具有不同的等待时间和/或一链路可能失效,由此导致通信流中的数据分组未按期望的顺序被接收。在一个示例性实施例中,网络基础结构设备210或者接收者计算设备104可被配置有缓冲区,该缓冲区在接收这些分组时缓存多个数据分组并对通信流中的数据分组进行正确地排序。一旦被置于正确的顺序,数据分组就可由接收者计算设备104中的第二应用来处理。
然而,可能不期望维持这种缓冲区。因此,接收者计算设备104可包括确认生成器组件218。确认生成器组件218可根据TCP标准来操作。例如,确认生成器组件218可被配置为在接收特定的数据分组之际输出确认。此外,确认生成器组件218可被配置为如果未按期望的顺序接收分组则输出重复确认。在一个具体的示例中,期望的顺序可以如下:分组1;分组2;分组3;分组4。在通过单个通信路径传输通信流的常规实现中,通常按照正确的顺序传输并接收分组。然而,由于通信路径204-208的不同的等待时间,接收者计算设备104可以不按正确的顺序接收这种分组。
例如,接收者计算设备可以第一个接收到第一数据分组,确认生成器组件可以向发送者计算设备输出第一数据分组已被接收的确认,由此通知发送者计算设备102:接收者计算设备104准备好接收第二数据分组。接收者计算设备104随后可能接收第三数据分组。确认生成器组件218可以识别第三数据分组被失序地接收,并且可以生成并传输以下确认:接收者计算设备104已经接收第一数据分组,由此再次通知发送者计算设备102:接收者计算设备104准备好接收第二数据分组。该确认可被认为是重复确认,因为它与第一数据分组被接收时的最初确认基本相似。继续该示例,接收者计算设备104随后可接收第四数据分组。确认生成器组件218可以识别第四数据分组已被失序地接收(例如,第二数据分组尚未被接收),并且可以生成并传输另一个确认:接收者计算设备104已经接收第一数据分组并准备好接收第二数据分组。
这些确认可被传输回到发送者计算设备102。发送者计算设备102包括确认处理器组件220,该确认处理器组件220以防止发送者计算设备102向接收者计算设备104重传数据分组的方式来处理由确认生成器组件218生成的重复确认。
在第一个示例中,确认处理器组件220可以接收重复确认,识别该重复确认,并且在识别该重复确认之际丢弃该重复确认。使用该方法,例如软件可被配置作为TCP的覆盖,使得不需要修改TCP标准以实现多路径通信。确认处理器组件220的这种方法在数据中心网络中可能是实用的,因为通信通常是可靠的,并且被丢弃的数据分组和/或链路失效是罕见的。
在第二个示例中,确认处理器组件220可以接收重复确认,识别该重复确认,并且将该重复确认作为最初确认来对待。由此,发送者计算设备102可以响应该重复确认。使用该方法,可以从与网络条件有关的重复确认中提取数据。然而,对重复确认的这种类型的处理可以落在TCP标准以外。换言之,数据中心中的一个或多个计算设备可能需要TCP标准以外的更改从而以该方式来对待重复确认。因此,该方法对于单个实体对数据中心中的每个计算设备(包括网络基础结构设备)具有所有权/控制的情形是实用的。
在第三个示例中,确认处理器组件220可被配置为对关于特定数据分组接收到的重复确认的数量进行计数,并且将该数量与一阈值进行比较,其中该阈值大于3。如果重复确认的数量低于阈值,则确认处理器组件220防止发送者计算设备102重传数据分组。如果重复确认的数量等于或大于阈值,则确认处理器组件220使发送者计算设备102重传接收者计算设备104没有接收的数据分组。再次,对重复确认的该处理落在与TCP相对应的标准以外(当TCP用于重传数据分组的重复确认的阈值数为3时),并且由此数据中心中的一个或多个计算设备(包括网络基础结构设备)可能需要TCP标准以外的变更从而以此方式来对待重复确认。再次,该方法对于单个实体对数据中心中的每个计算设备(包括网络基础结构设备)具有所有权/控制的情形是实用的。
虽然系统200已被示出并被描述为具有被包括在特定计算设备/装置中的特定组件,但应该理解的是,其他实现也被发明人所构想并旨在落入所附权利要求书的范围之内。例如,网络基础结构设备210可包括确认生成器组件218,和/或接收者计算设备104本身可以是交换机、路由器等。另外,发送者计算设备102可包括熵生成器组件。此外,计算装置202可包括确认处理器组件220。
现在参考图3,示出了TCP底层的示例性实现300。在此示例中,在计算设备上执行的应用302是经由套接字306与TCP协议栈304的接口。底层308位于TCP协议栈304之下,使得TCP协议栈304无需被修改。底层308可以识别重复确认并使其被抛出/忽略,由此允许TCP协议栈304保持不变。另外,未修改IP协议栈310。
现在参考图4,示出了示例性数据中心结构400。数据中心结构400包括例如可以是服务器的多个处理设备402-416。这些处理设备如图4所示用字母“H”来表示。处理设备的特定分组(例如,402-404、406-408、410-412和414-416)可以与相应的顶架路由器(T-路由器)进行通信。由此,处理设备402-404与T-路由器418直接通信,处理设备406-408与T-路由器420直接通信,处理设备410-412与T-路由器422直接通信,并且处理设备414-416与T-路由器424直接通信。虽然每个T-路由器被示出与20个处理设备通信,T-路由器上的端口的数量可以变化并不限于20个。
数据中心结构400还包括中间路由器(I-路由器)426-432I-路由器426-432的子集可与T-路由器418-420的子集通信以在概念上生成I-T二分图,该I-T二分图可被划分为若干子图,每个子图是全连接的(在二分图的意义上)。多个底架路由器(B-路由器)434-436可以耦合到每个I-路由器426-432。
虽然此处示出的结构是相对简单的,但可以在这种结构上扩展以在数据中心中使用。根据一个示例,可以基于4元参数系统(DT,DI,DB,NB),构建包括T-路由器、I-路由器和B-路由器在内的所显示的三层对称结构(组结构)。DT、DI和DB可以分别是T-路由器、I-路由器和B-路由器的度(例如,网络接口控制器的可用数量),并且可以是独立的参数。NB可以是数据中心中的B-路由器的数量,并且不是完全独立的,因为NB≤DI-1(每个I-路由器将被连接到至少一个T路由器)。下面以列表形式示出这4-元参数系统可表示的若干其他结构化属性值:
I-路由器的总数NI=DB。
连接到每个I-路由器的T-路由器的数量nT=DI-NB,也可以是每个一级(T-I级)全网状二分图中的T-路由器的数量nT=DI-NB。
T-路由器的总数
每个T-I二分图和I-B二分图的维度可以分别是(DI-NB)×DT和DB×NB,二者都是全网状的。
可以注意到,由于整数限制,DB可以是DT的倍数。
现在参考图5-6,示出并描述了各种示例性方法。尽管各方法被描述为顺序地执行的一系列动作,但可以理解,这些方法不受该顺序的次序的限制。例如,一些动作能以与本文描述的不同的次序发生。另外,动作可以与另一动作同时发生。此外,在一些情况下,实现本文描述的方法并不需要所有动作。
此外,本文描述的动作可以是可由一个或多个处理器实现的和/或存储在一个或多个计算机可读介质上的计算机可执行指令。计算机可执行指令可包括例程、子例程、程序、执行的线程等。另外,这些方法的动作的结果可以存储在计算机可读介质中,显示在显示设备上,等等。计算机可读介质可以是非瞬时介质、诸如存储器、硬盘驱动器、CD、DVD、闪存驱动器等。
现在参考图5,示出了便于在数据中心网络中通过多条通信路径传输通信流的方法500。方法500在502开始,并且在504,接收供数据中心网络中的接收者计算设备使用的通信流。例如,可在交换机或路由器处接收通信流,并且该通信流可包括期望按照特定顺序传输并接收的多个数据分组。
在506,通过多条通信链路将通信流传输到接收者计算设备。在一个示例中,接收者计算设备可以是网络交换机或路由器。在另一个示例中,接收者计算设备可以是服务器。
在508,从接收者计算设备接收对未按特定顺序接收通信流中的数据分组的指示。如上所述,这是有可能的,因为数据分组是通过具有不同的对应等待时间的不同的通信路径来传输的。根据一个示例,前述的指示可以是根据TCP标准生成并传输的重复确认。
在510,处理该指示以防止从发送者计算设备到接收者计算设备的通信流中的数据分组的重传。例如,可以采用软件覆盖来识别该指示并丢弃这种指示。在另一个示例中,该指示可以是重复确认,并且可被作为根据TCP标准的最初确认来对待。在又一个示例中,可以对关于特定数据分组接收的重复确认的数量进行计数,并且可将所得数量与一阈值进行比较,该阈值大于TCP标准中所利用的阈值。方法500在512完成。
现在参考图6,便于在数据中心中通过多条通信路径传输通信流的示例性方法600。方法600在602开始,并且在604,接收供数据中心网络中的接收者计算设备使用的数据。例如,可从在数据中心中的服务器上运行的应用接收数据,并且交换机可被配置为将这种数据划分为根据TCP标准期望按照特定顺序传输并接收的多个数据分组。
在606,将熵添加到通信流中每个数据分组的头部。例如,可采用散列算法来更改预期的接收者计算设备的地址中的不重要的位。这可以使得交换机通过不同的通信路径来传输通信流中的数据分组。
在608,至少部分地基于在动作606添加的熵,跨多条通信链路将通信流传输到接收者计算设备。接收者计算设备可包括用于移除数据分组中的熵的散列算法,使得可以重构通信流,并且可向预期的接收者应用提供所得数据。方法600在610完成。
现在参考图7,示出了可以根据本文公开的系统和方法使用的示例性计算设备700的高级图示。例如,计算设备700可用在支持数据中心中通信流的多路径通信的系统中。在另一示例中,计算设备700的至少一部分可以用在支持WAN或LAN中通信流的多路径通信的系统中。计算设备700包括执行存储在存储器704中的指令的至少一个处理器702。存储器704可以是或可以包括RAM、ROM、EEPROM、闪存、或其它适合的存储器。这些指令可以是例如用于实现被描述为由上述一个或多个组件执行的功能的指令或用于实现上述方法中的一个或多个的指令。处理器702可以通过系统总线706访问存储器704。除存储可执行指令以外,存储器704还可以存储通信流的一部分、TCP网络栈的全部或部分等。
计算设备700附加地包括可由处理器702通过系统总线706访问的数据存储708。数据存储可以是或可以包括任何合适的计算机可读存储,包括硬盘、存储器等。数据存储708可以包括可执行指令、通信流等。计算设备700还包括允许外部设备与计算设备700进行通信的输入接口710。例如,可以使用输入接口710来从外部计算机设备、网络基础结构设备等接收指令。计算设备700还包括将计算设备700与一个或多个外部设备进行接口的输出接口712。例如,计算设备700可以通过输出接口712显示文本、图像等。
另外,尽管被示为单个系统,但可以理解,计算设备700可以是分布式系统。因此,例如,若干设备可以通过网络连接进行通信并且可共同执行被描述为由计算设备700执行的任务。
如此处所使用的,术语“组件”和“系统”旨在涵盖硬件、软件、或硬件和软件的组合。因此,例如,系统或组件可以是进程、在处理器上执行的进程、或处理器。另外,组件或系统可以位于单个设备上或分布在若干设备之间。此外,组件或系统可指存储器的一部分和/或一系列晶体管。
注意,出于解释目的提供了若干示例。这些示例不应被解释为限制所附权利要求书。另外,可以认识到,本文提供的示例可被改变而仍然落入权利要求的范围内。
Claims (10)
1.一种方法,包括:
从数据中心中的发送者计算设备接收供特定的接收者计算设备使用的通信流,其中所述通信流包括期望由所述接收者计算设备以特定顺序接收的多个数据分组,其中所述多个数据分组的每一个标识所述特定的接收者计算设备,并且其中在所述发送者计算设备与所述接收者计算设备之间存在多条通信路径;
选择性地将熵添加到所述通信流中的所述多个数据分组的每一个的头部;
至少部分地基于被添加到所述多个数据分组的每一个的所述头部的所述熵,通过所述多条通信路径将所述网络通信流传输到所述接收者计算设备,其中所述接收者计算设备未按所述特定顺序接收所述多个数据分组的子集;
从所述接收者计算设备接收对未按所述特定顺序接收所述多个数据分组的所述子集的指示;以及
处理所述指示以防止所述多个数据分组的所述子集中的至少一个数据分组被重传到所述接收者计算设备。
2.如权利要求1所述的方法,其特征在于,所述发送者计算设备和所述接收者计算设备是所述数据中心中的服务器。
3.如权利要求1所述的方法,其特征在于,其中网络交换机被配置为执行接收和传输的动作。
4.如权利要求1所述的方法,其特征在于,所述发送者计算设备和所述接收者计算设备被配置为经由传输控制协议彼此通信。
5.如权利要求1所述的方法,其特征在于,所述指示是根据传输控制协议传输的重复确认。
6.如权利要求5所述的方法,其中处理所述重复确认包括:
在接收所述重复确认之际递增计数,其中每次接收与所述通信流中的特定数据分组相对应的重复确认时,递增所述计数;
将所述计数与阈值进行比较,其中所述阈值大于3;
如果所述计数小于或等于所述阈值,则忽略所述重复确认;以及
如果所述计数大于所述阈值,则将所述数据分组重传到所述接收者计算设备。
7.如权利要求5所述的方法,其中处理所述重复确认包括:
识别所述重复确认;以及
选择性地丢弃所述重复确认。
8.如权利要求5所述的方法,其中处理所述重复确认包括:
识别所述重复确认;以及
根据所述传输控制协议,将所述重复确认选择性地作为普通确认来对待。
9.一种数据中心中的装置(202),包括:
接收器组件(212),它从发送者计算设备接收期望被传输到接收者计算设备的通信流,其中所述通信流包括多个数据分组,其中所述数据分组的每一个包括头部;
熵生成器组件(214),它将熵添加到每个数据分组的头部;以及
发送器组件(216),它至少部分地基于被添加到每个数据分组的头部的所述熵,跨所述发送者计算设备与所述接收者之间的所述数据中心中的多条通信路径传输所述通信流。
10.如权利要求9所述的装置,其特征在于,还包括:
确认处理器组件,它从所述接收者计算设备接收对未按期望顺序接收所述通信流中的数据分组的指示,并且处理所述指示以防止所述通信流中的至少一个数据分组被重传到所述接收者计算设备。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/973,914 | 2010-12-21 | ||
US12/973,914 US20120155468A1 (en) | 2010-12-21 | 2010-12-21 | Multi-path communications in a data center environment |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102611612A true CN102611612A (zh) | 2012-07-25 |
Family
ID=46234364
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011104313622A Pending CN102611612A (zh) | 2010-12-21 | 2011-12-20 | 数据中心环境中的多路径通信 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20120155468A1 (zh) |
CN (1) | CN102611612A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104052574A (zh) * | 2013-03-15 | 2014-09-17 | 国际商业机器公司 | 在网络控制器和交换机之间控制数据的传输的方法和系统 |
CN105743610A (zh) * | 2014-12-27 | 2016-07-06 | 英特尔公司 | 用于多网络分组操作的数据完整性的技术 |
US9609086B2 (en) | 2013-03-15 | 2017-03-28 | International Business Machines Corporation | Virtual machine mobility using OpenFlow |
US9769074B2 (en) | 2013-03-15 | 2017-09-19 | International Business Machines Corporation | Network per-flow rate limiting |
CN109302270A (zh) * | 2017-07-24 | 2019-02-01 | 大唐移动通信设备有限公司 | 一种处理报文的方法及装置 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102011360B1 (ko) | 2012-09-10 | 2019-10-21 | 삼성전자주식회사 | 디바이스에서 어플리케이션을 실행하는 방법 및 그 장치 |
US9843520B1 (en) * | 2013-08-15 | 2017-12-12 | Avi Networks | Transparent network-services elastic scale-out |
US10110684B1 (en) | 2013-08-15 | 2018-10-23 | Avi Networks | Transparent network service migration across service devices |
KR102139721B1 (ko) * | 2013-08-29 | 2020-07-30 | 삼성전자주식회사 | 다중 경로 프로토콜에서 이중으로 네트워크 코딩을 적용하는 방법 및 그 장치 |
US11283697B1 (en) | 2015-03-24 | 2022-03-22 | Vmware, Inc. | Scalable real time metrics management |
US9942132B2 (en) * | 2015-08-18 | 2018-04-10 | International Business Machines Corporation | Assigning communication paths among computing devices utilizing a multi-path communication protocol |
US9843530B2 (en) | 2015-12-15 | 2017-12-12 | International Business Machines Corporation | System, method, and recording medium for queue management in a forwarder |
US10498654B2 (en) * | 2015-12-28 | 2019-12-03 | Amazon Technologies, Inc. | Multi-path transport design |
US9985904B2 (en) | 2015-12-29 | 2018-05-29 | Amazon Technolgies, Inc. | Reliable, out-of-order transmission of packets |
CN105739929B (zh) * | 2016-01-29 | 2019-01-11 | 哈尔滨工业大学深圳研究生院 | 大数据向云端迁移时的数据中心的选择方法 |
US10069734B1 (en) | 2016-08-09 | 2018-09-04 | Amazon Technologies, Inc. | Congestion avoidance in multipath routed flows using virtual output queue statistics |
US10097467B1 (en) | 2016-08-11 | 2018-10-09 | Amazon Technologies, Inc. | Load balancing for multipath groups routed flows by re-associating routes to multipath groups |
US10116567B1 (en) | 2016-08-11 | 2018-10-30 | Amazon Technologies, Inc. | Load balancing for multipath group routed flows by re-routing the congested route |
US10009275B1 (en) | 2016-11-15 | 2018-06-26 | Amazon Technologies, Inc. | Uniform route distribution for a forwarding table |
US10936218B2 (en) * | 2019-04-18 | 2021-03-02 | EMC IP Holding Company LLC | Facilitating an out-of-order transmission of segments of multi-segment data portions for distributed storage devices |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050120140A1 (en) * | 2002-03-14 | 2005-06-02 | Bodlaender Maarten P. | Method of and system for multi-patch communication |
CN1700629A (zh) * | 2004-05-21 | 2005-11-23 | 三星电子株式会社 | 移动自组织网中发送数据的方法及利用该方法的网络设备 |
US20060098573A1 (en) * | 2004-11-08 | 2006-05-11 | Beer John C | System and method for the virtual aggregation of network links |
CN101124754A (zh) * | 2004-02-19 | 2008-02-13 | 佐治亚科技研究公司 | 用于并行通信的系统和方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7287092B2 (en) * | 2003-08-11 | 2007-10-23 | Sharp Colin C | Generating a hash for a TCP/IP offload device |
US8166205B2 (en) * | 2007-07-31 | 2012-04-24 | Cisco Technology, Inc. | Overlay transport virtualization |
US8094557B2 (en) * | 2008-07-09 | 2012-01-10 | International Business Machines Corporation | Adaptive fast retransmit threshold to make TCP robust to non-congestion events |
-
2010
- 2010-12-21 US US12/973,914 patent/US20120155468A1/en not_active Abandoned
-
2011
- 2011-12-20 CN CN2011104313622A patent/CN102611612A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050120140A1 (en) * | 2002-03-14 | 2005-06-02 | Bodlaender Maarten P. | Method of and system for multi-patch communication |
CN101124754A (zh) * | 2004-02-19 | 2008-02-13 | 佐治亚科技研究公司 | 用于并行通信的系统和方法 |
CN1700629A (zh) * | 2004-05-21 | 2005-11-23 | 三星电子株式会社 | 移动自组织网中发送数据的方法及利用该方法的网络设备 |
US20060098573A1 (en) * | 2004-11-08 | 2006-05-11 | Beer John C | System and method for the virtual aggregation of network links |
Non-Patent Citations (1)
Title |
---|
孙宝林等: "Ad Hoc网络多路径需求路由及路径熵选择算法", 《软件学报》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104052574A (zh) * | 2013-03-15 | 2014-09-17 | 国际商业机器公司 | 在网络控制器和交换机之间控制数据的传输的方法和系统 |
US9590923B2 (en) | 2013-03-15 | 2017-03-07 | International Business Machines Corporation | Reliable link layer for control links between network controllers and switches |
US9596192B2 (en) | 2013-03-15 | 2017-03-14 | International Business Machines Corporation | Reliable link layer for control links between network controllers and switches |
US9609086B2 (en) | 2013-03-15 | 2017-03-28 | International Business Machines Corporation | Virtual machine mobility using OpenFlow |
US9614930B2 (en) | 2013-03-15 | 2017-04-04 | International Business Machines Corporation | Virtual machine mobility using OpenFlow |
US9769074B2 (en) | 2013-03-15 | 2017-09-19 | International Business Machines Corporation | Network per-flow rate limiting |
CN105743610A (zh) * | 2014-12-27 | 2016-07-06 | 英特尔公司 | 用于多网络分组操作的数据完整性的技术 |
CN105743610B (zh) * | 2014-12-27 | 2019-11-15 | 英特尔公司 | 用于多网络分组操作的数据完整性的技术 |
CN109302270A (zh) * | 2017-07-24 | 2019-02-01 | 大唐移动通信设备有限公司 | 一种处理报文的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US20120155468A1 (en) | 2012-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102611612A (zh) | 数据中心环境中的多路径通信 | |
CN104205942B (zh) | 多跳错误恢复 | |
CN106254202B (zh) | 一种基于喷泉码的多路并行传输方法以及装置 | |
CN1697354B (zh) | 用组播和单播协议可靠传输数据的方法及接收数据的主机 | |
US7355975B2 (en) | Method and apparatus for group communication with end-to-end reliability | |
JP5131194B2 (ja) | パケット回復方法、通信システム、情報処理装置およびプログラム | |
CN101207466B (zh) | 用于有损介质的重发方案 | |
CN107222427A (zh) | 一种报文处理的方法及相关设备 | |
CN107483349A (zh) | 传输数据流的方法与设备 | |
US9118478B2 (en) | Fault-tolerant data transmission system for networks with non-full-duplex or asymmetric transport | |
JP2020522922A (ja) | ブロックチェーンネットワークにおいてトランザクションを伝播するためにネットワークコーディングを選択的に使用する方法及びシステム | |
JP4656415B2 (ja) | 通信装置およびその通信方法ならびにプログラム | |
CN102025473A (zh) | 分组网中基于代间网络编码的重传方法 | |
US20080107116A1 (en) | Large scale multi-processor system with a link-level interconnect providing in-order packet delivery | |
Ha et al. | TCP Network Coding with Enhanced Retransmission for heavy and bursty loss | |
CN101783763B (zh) | 防拥塞的处理方法及系统 | |
Qin et al. | Steady-state throughput analysis of network coding nodes employing stop-and-wait automatic repeat request | |
Yu et al. | Scalable, High-performance NIC-based All-to-all Broadcast over Myrinet/GM | |
CN109274467A (zh) | 一种数据重传处理方法、rlc实体和mac实体 | |
Doddamani et al. | Delay tolerant network | |
Karnani et al. | Improved BER and PER by Reducing Communication Traffic in Wireless Communication using a Modified Network Coding Technique | |
KR101151615B1 (ko) | Udp기반의 p2p 데이터 전송 방법 및 시스템 | |
CN101267395A (zh) | 数据传输方法及装置 | |
Broustis et al. | A modular framework for implementing joint wireless network coding and scheduling algorithms | |
CN100583878C (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 | ||
ASS | Succession or assignment of patent right |
Owner name: MICROSOFT TECHNOLOGY LICENSING LLC Free format text: FORMER OWNER: MICROSOFT CORP. Effective date: 20150727 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20150727 Address after: Washington State Applicant after: Micro soft technique license Co., Ltd Address before: Washington State Applicant before: Microsoft Corp. |
|
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20120725 |
|
RJ01 | Rejection of invention patent application after publication |