选择性禁用网络连接上的可靠性机制的制作方法

文档序号:6359782阅读:184来源:国知局
专利名称:选择性禁用网络连接上的可靠性机制的制作方法
选择性禁用网络连接上的可靠性机制
背景技术
大规模联网系统是在用于为业务和操作功能运行应用和维护数据的多种设定中使用的常见平台。例如,数据中心(例如物理云计算基础设施)可以同时为多个顾客提供多种服务(例如web应用、电子邮件服务、搜索引擎服务等等)。这些大规模联网系统通常包括遍及该数据中心分布的大量资源,其中每个资源都类似物理机或在物理主机上运行的虚拟机。当数据中心托管多个承租人(例如顾客程序)时,这些资源被最优地从同一数据中心分配给不同的承租人。数据中心的顾客常常要求运行在私有企业网(例如由地理上处于该数据中心的远程的顾客管理的服务器)中的业务应用与运行在该数据中心中的资源上的软件交互。在这种情况下,在商业应用的组件和运行在数据中心中的软件的组件之间建立网络连接。这一网络连接通常使用诸如传输控制协议(TCP)之类的网络传输协议来促进该网络连接上的包 的可靠传递。这一基于TCP的网络连接(或称为TCP连接)负责管理跨独立运行的私有企业网络和数据中心的端对端消息传输。例如,这些工具可管理差错控制、分割、流程控制、拥塞控制以及应用寻址(例如,端口号)。在运行中,这些工具可通过请求重发丢失的包以及改变发送包时曾使用的速率来减少拥塞来检测和改善诸如网络拥塞之类的有问题的网络行为以及丢包。当基于TCP的连接被运行在另一 TCP连接的之上时,则内侧的TCP连接和外侧的TCP连接所使用的这些机制之间的相互作用可导致夸张的重新发送和流量限制,这进而导致整个连接的性能的显著下降。因此,使用禁用与基于TCP的通信的各层相关联的一个或多个工具的新兴技术将增强所建立的网络连接的吞吐量和性能,且同时仍确保可靠的包传递和拥塞控制。

发明内容
提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的概念。本发明内容并非旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。本发明的各实施例提供了用于配置整体地运行于基于传输控制协议(TCP )的隧道内的工具并且用于抵抗由于那些工具的重复作用所引起的无法保证的性能衰减的系统、方法和计算机可读介质。通常,基于TCP的隧道用作不同位置的端点之间的网络连接。例如,端点可包括由云计算平台主控的源端点和由私有企业网络内的资源主控的目标端点。这些配置工具的示例性实施例涉及在包括基于TCP隧道的各个连接上单独地选择性启用和禁用可靠性机制(例如,拥塞控制机制和丢失恢复机制)。在一个示例中,这些信道包括较低层级的基于TCP的连接和较高层级的基于TCP的连接。在运行中,应用数据包经由运行在较低层级的基于TCP的连接之上的较高层级的基于TCP的连接发送。在各个实施例中,可使用构造控制器来允许内建在较低层级的基于TCP的连接之中的拥塞控制机制和/或丢失恢复机制的启用(开启)。集成在较低层级的基于TCP的信道内的一个或多个可靠机制的选择性禁用可由预定义的标准(例如,来自云计算服务模型的指令、源端点的身份、目标端点的身份、诸如此类)来调用,并且可基于每个网络连接来调用。以此方式,较高层级的基于TCP信道的工具主动执行确保在基于TCP的隧道上的数据包的完整和高效传递的一组可靠性规则,而较低层级的基于TCP信道的一个或多个工具被去激活以减少由工具的冗余效果所导致的潜在的性能衰减。


以下参考附图详细描述本发明的各实施例,附图中图I是适用于实现本发明的各实施例的示例性计算环境的框图;图2是示出示例性云计算平台的方框图,该云计算平台适用于实现本发明的各实
施例,该云计算平台被提供以配置被内建在基于传输控制协议(TCP)的隧道内的可靠性机制;图3是根据本发明的实施例的里面建立有基于TCP的隧道的示例性分布式计算环境的框图;图4是根据本发明的实施例的包括基于TCP的隧道的基于TCP的信道的分层的示意性描述;图5是根据本发明的实施例的使用构造控制器来选择性地启用/禁用内建在基于TCP的隧道内的可靠性机制的示例性数据中心的方框图;以及图6和7是示出根据本发明的实施例的、用于促进跨在多个位于不同位置的多个端点之间建立的网络连接的通信的方法的流程图。
具体实施例方式此处用细节来描述本发明的各实施例的主题以满足法定要求。然而,该描述本身并非旨在限制本专利的范围。相反,发明人设想所要求保护的主题还可结合其他当前或未来技术按照其他方式来具体化,以包括不同的步骤或类似于本文中所描述的步骤的步骤组合。此外,尽管术语“步骤”和/或“框”可在此处用于指示所采用的方法的不同元素,但除非而且仅当明确描述了各个步骤的顺序时,该术语不应被解释为意味着此处公开的各个步骤之中或之间的任何特定顺序。本发明的各实施例涉及用于建立和配置跨所连接的网络内的位于远程的各个网络或端点的隧道的方法、计算机系统以及计算机可读介质。如此处所使用的,术语“隧道”意在限定但可包括任何可通信地链接源端点和目标端点以便桥接不同网络上的通信的网络连接。在一个示例中,可建立一隧道作为在分开的本地网络中主控的各端点间流传输数据包的网络连接,其中各端点通过分配给其的因特网协议(IP)地址来发现和标识。此外,在经由隧道行进时,流传输数据包以及其它通信量可穿过多个链接、防火墙以及其它安全措施。这一表面上在各端点间的直接连接允许两端的端点以类似于它们被相邻放置在经由IP层通信的公共网络中的方式交谈。在一些实施例中,分别使用传输控制协议(TCP)或超文本传输协议(HTTP)或安全HTTP (HTTPS)来建立隧道,其中各端点可以或可以不参与。隧道方便地连接各端点并且启用跨一个网络或不同网络的通信。例如,HTTP或HTTPS隧道为各端点提供当端点甚至位于两个不同网络时建立直接虚拟IP级连接的能力。换言之,隧道允许两侧端点以与它们相邻地处于经由IP层通信的公共网络中时相同的方式交谈。例如,当前在两个端点上运行的应用可能不知晓其端点驻于两个不同的网络中;因此,应用不知晓其正运行于隧道之上。HTTP或HTTPS隧道的这一特性是基于HTTP和HTTPS的网络连接的绕开防火墙和诸如代理服务器之类的其它网络边缘设备的能力的产物。此外,HTTP或HTTPS隧道是由具有内建的端对端可靠性机制的基于TCP的连接所支持,因为基于TCP的连接被用在广泛的各种网络上。这些可靠性机制执行诸如丢失恢复以及拥塞控制之类的功能以处理连接这些各种网络的这些链接上的丢失和拥塞。换言之,TCP被提供了内建的可靠性机制,用于检测丢包以及检测拥塞,并且用于对此分别作出响应。在一个示例中,当检测到基于TCP的连接中的拥塞,可靠性机制的响应可以是降低数据 包通信量在网络连接中分布的速率。在另一示例中,当检测到基于TCP的连接中的丢包时,可靠性机制的响应可以是重新发送丢失的数据包。有可能地,在端对端TCP连接期间存在运行在彼此之上的两个或更多基于TCP的连接。在这种情况下,如果发生丢包或网络拥塞,则集成在每个层叠的连接中的可靠性机制独立地对丢包和网络拥塞作出响应而不在彼此间通信。例如,除了来自较低层级连接的丢失恢复机制的响应,较高层级的基于TCP的连接的丢失恢复机制还可尝试执行其自身的响应。也就是说,两个丢失恢复机制都重新发生数据,从而导致增加的而且非必要的网络连接的性能衰减。而且,两个信道都可具有可对作为拥塞问题的丢包作出反应的拥塞控制机制,并且当一起运作时,会重复它们在限制传输速率时的作用。例如,如果两个拥塞控制机制都将流传输数据包的速率减少一半,则合计的效果是速率减少为四分之一,这远低于解决丢包问题所需的速率。因此,这些重复的纠正事实上对起因作了过补偿并且变得低效率。这种过补偿常常对端点间的通信产生将延迟增加到超过足够解决待决的丢包或网络拥塞问题所需的程度的反作用。在一方面,本发明的实施例涉及一种或多种其上包含计算机可执行指令的计算机存储介质,这些指令在被执行时执行用于跨建立在位于不同网络的多个端点之间的网络连接来通信的方法。最初,方法包括提供横跨源端点和目的端点的网络连接的步骤。如以上所讨论的,网络连接用作桥接源端点和目的端点分别所位于的不同网络的基于TCP的隧道。方法还包含选择性地禁用集成地运行在基于TCP的隧道上的一个或多个较低层级的可靠性机制,以及在第一端点第二端点之间发送消息而较低层级的可靠性机制不会影响消息被发送的定时的步骤。在各实施例中,在第一端点第二端点之间发送消息可具体包括经由基于TCP的隧道将来自第一端点的IP包发送给第二端点。在一示例性实施例中,较低层级的可靠性机制包括拥塞机制和丢包机制。拥塞机制可被配置成管理在IP包内传递的数据的量。丢包机制可被配置成通过自动重新发送未发送或延迟的IP包来管理网络连接上的丢包。在另一方面,本发明的实施例涉及用于管理位于各个本地网络中的端点之间的数据流的计算机系统。最初,计算机系统包括以下要素位于云计算平台内的数据中心,位于私有企业网络内的资源、构造控制器、以及虚拟机。在各实施例中,数据中心可主控被分配给同时运行在云计算平台和私有企业网络上的应用的源端点。资源可主控也被分配给该应用的目的端点。当启动它们之间的通信时,源端点和目的端点通过直接在它们之间传输数据流的隧道连接,其中隧道可包括运行在较低层级的连接之上的较高层级的连接。如以上所讨论的,拥塞控制机制和丢包机制都被分别内建在较高层级的连接和较低层级的连接的每一个中。构造控制器运行在数据中心内,并且能够建立隧道并且配置该隧道。在一个实例中,配置隧道包括选择性地禁用内建在较低层级的连接中的拥塞控制机制和丢包机制。在另一个实例中,配置连接包括选择性地启用内建在较高层级的 连接中的拥塞控制机制和丢包机制。数据中心内的虚拟机生成在较高层级的连接上被运载到源端点的第一 IP包。当接收到第一 IP包,源端点(或源隧道终端端点)将第一 IP包封装为第二 IP包,并且在较低层级的连接上发送第二 IP包。因此,当在基于TCP的隧道的端点之间发送数据包时两个连接都参与。在又一方面,本发明的实施例涉及一种用于促进跨基于TCP的隧道的源端点以及目的端点之间的通信的计算机化方法。在一示例性实施例中,方法包括使用构造控制器来建立可通信地链接一个网络上或跨不同网络的源端点和目的端点的基于TCP的隧道。如之前所提到的,源端点的操作由数据中心所支持,而目的端点的操作由位于远程的、位于所述数据中心的客户机所管理的私有企业网络上的资源所支持。方法还包括在源端点处接收第一 IP包的步骤,该第一 IP包是从在数据中心内实例化的虚拟机处传送而来的。这些第一IP包是经由具有提供在其上的第一组可靠性机制的较高层级的连接来运载的。第一 IP包在源端点处(或在同一网络中作为源端点的源隧道终端端点)被封装成第二 IP包并且经由较低层级的连接在基于TCP的隧道上被发送给目的网络中的隧道终端端点,随后转发给远程网络中的最终目的端点。通常,较高层级的连接被提供有第二组可靠性机制。在各实施例中,这些第一组和第二组可靠性机制各自分别包括拥塞控制机制和丢失恢复机制。方法通过执行使用构造控制器来选择性地禁用在较低层级的连接上提供的拥塞控制机制和丢失恢复机制的步骤来继续。所述构造控制器还被用来被动地允许提供在所述较高层级的连接上的拥塞控制机制和丢失恢复机制保持启用。至少临时地存储较低层级连接的禁用条件和较高层级连接的启用条件。作为说明,禁用条件表示对在较低层级的连接上提供的拥塞控制机制和丢失恢复机制的禁用。相反,启用条件表示对在较高层级的连接上提供的拥塞控制机制和丢失恢复机制的启用。在简要描述了本发明的各实施例的概览后,以下描述适于实现本发明的各实施例的示例性操作环境。概括地参考附图,并首先具体参考图1,示出了用于实现本发明的各实施例的示例性操作环境,并将其概括地指定为计算设备100。计算设备100只是合适的计算环境的一个示例,并且不旨在对本发明的各实施例的使用范围或功能提出任何限制。也不应该把计算环境100解释为对所示出的任一组件或其组合有任何依赖性或要求。本发明的各实施例可以在由计算机或诸如个人数据助理或其它手持式设备之类的其它机器执行的计算机代码或机器可使用指令的一般上下文中描述,该机器可使用指令包括诸如程序组件之类的计算机可执行指令。一般而言,包括例程、程序、对象、组件、数据结构等的程序组件指的是执行特定任务或实现特定提取数据类型的代码。本发明的各实施方式可以在各种系统配置中实施,这些系统配置包括手持式设备、消费电子产品、通用计算机、专用计算设备等等。本发明也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实施。继续参考图1,计算设备100包括直接或间接耦合以下设备的总线110 :存储器112、一个或多个处理器114、一个或多个呈现组件116、输入/输出(I/O)端口 118、I/O组件120、和说明性电源122。总线110可以是一条或多条总线(诸如地址总线、数据总线、或其组合)。虽然为了清楚起见利用线条示出了图I的各框,但是实际上,各组件的轮廓并不是那样清楚,并且比喻性地来说,线条更精确地将是灰色的和模糊的。例如,可以将诸如显示设备等呈现组件认为是I/O组件。而且,处理器具有存 储器。发明人认识到,这是本领域的特性,并且重申,图I的图示只是例示可结合本发明的一个或多个实施例来使用的示例性计算设备。诸如“工作站”、“服务器”、“膝上型计算机”、“手持式设备”等分类之间没有区另IJ,它们全部都被认为是在图I的范围之内并且被称为“计算机”或“计算设备”。计算设备100通常包括各种计算机可读介质。作为示例而非限制,计算机可读介质可以包括随机存取存储器(RAM);只读存储器(ROM);电可擦除可编程只读存储器(EEPROM);闪存或其它存储器技术;CDR0M、数字多功能盘(DVD)或其它光或全息介质;磁带盒、磁带、磁盘存储或其它磁存储设备;或可用于对所需信息进行编码并且可由计算设备100访问的任何其它介质。存储器112包括易失性和/或非易失性存储器形式的计算机存储介质。存储器可以是可移动的、不可移动的、或其组合。示例性硬件设备包括固态存储器、硬盘驱动器、光盘驱动器等。计算设备100包括从诸如存储器112或I/O组件120等各种实体读取数据的一个或多个处理器。呈现组件116向用户或其他设备呈现数据指示。示例性呈现组件包括显示设备、扬声器、打印组件、振荡组件等。I/O端口 118允许计算设备100在逻辑上耦合至包括I/O组件120在内的其他设备,其中某些设备可以是内置的。说明性组件包括话筒、操纵杆、游戏板、圆盘式卫星天线、扫描仪、打印机、无线设备等等。参考图I和2,第一计算设备255和/或第二计算设备265可以由图I的示例性计算设备100来实现。另外,端点201和/或端点202可以包括图I的存储器112的一部分和/或图I的处理器114的一部分。现在转到图2,示出了根据本发明的实施例示出示例性云计算平台200的框图,该云计算平台200被配置为分配数据中心225内的虚拟机270和275以供服务应用使用。能够理解和明白,图2中所示的云计算平台200仅仅是一个合适的计算环境的示例,并且不旨在对本发明的实施例的使用范围或功能提出任何限制。例如,云计算平台200可以是公共云、私有云、或专用云。也不应该将云计算平台200解释为对其中所示出的任何单个组件或组件组合有任何依赖性或要求。此外,尽管为了清楚起见用线条示出了图2的各个框,但是在实际上,各组件的轮廓并不是那样清楚,并且比喻性地来说,线条更精确地将是灰色的和模糊的。另外,可以采用任何数目的物理机、虚拟机、数据中心、端点或其组合来在本发明的实施例的范围内实现所期望的功能。云计算平台200包括数据中心225,该数据中心225被配置为主控和支持特定服务应用的端点201和202的操作。在此使用的用语“服务应用”宽范围地指运行在数据中心225之上或访问数据中心225内的存储位置的任何软件或软件部分。在一个实施例中,端点201和202中的一个或多个可以表示软件部分、组件程序、或者参与服务应用的角色的实例。在另一实施例中,端点201和202中的一个或多个可以表不服务应用可访问的所存储的数据。能够理解和明白,图2中所示的端点201和202仅仅是支持服务应用的合适部分的实例,并且不旨在对本发明的实施例的使用范围或功能提出任何限制。一般而言,虚拟机270和275基于对服务应用提出的需求(例如处理负载的量)被分配给服务应用的端点201和202。如在此所使用的那样,用语“虚拟机”无意为限制性的,并且可以指由处理单元执行以支持端点201和202的功能的任何软件、应用、操作系统或程序。另外,虚拟机270和275可以包括处理能力、存储位置、以及数据中心225内的其他资产以合适地支持端点201和202。在操作中,虚拟机270和275被动态分配在数据中心225的资源(例如第一计算设备255和第二计算设备265)内,并且端点(例如,端点201和202)被动态地放置在所分配 的虚拟机270和275上以满足当前处理负载。在一个实例中,构造控制器210负责自动分配虚拟机270和275以及将端点201和202放置在数据中心225内。举例来说,构造控制器210可以依靠服务模型(例如其由拥有服务应用的顾客来指定)来提供关于如何和何时分配虚拟机270和275以及将端点201和202放置到其上的指导。此外,在确定是否启用(开启)或禁用(关闭)与端点201和202以及位于远端的端点之间的隧道类型的网络连接集成在一起的可靠性机制时,构造控制器210可读取来自云计算服务模型的指令。这种情况将在以下参考图3更全面地讨论。如上面所讨论的那样,虚拟机270和275可被动态地分配在第一计算设备255和第二计算设备265内。按照本发明的实施例,计算设备255和265表示任何形式的计算设备,比如例如服务器、个人计算机、台式计算机、膝上型计算机、移动设备、消费者电子设备、服务器、图I的计算设备100等等。在一个实例中,计算设备255和265主控和支持虚拟机270和275的操作,同时主控被开辟为支持数据中心225的其他承租人的其他虚拟机,其中所述承租人包括由不同顾客拥有的其他服务应用的端点。在一方面,端点201和202在云计算平台200的上下文内操作,并且因此通过在虚拟机270和275之间动态进行的连接进行内部通信,并且通过到远程网络的资源(例如在图
3的企业私有网325的资源375)的物理网络拓扑进行外部通信。内部连接可以包括经由网络云(未示出)来互连分布在数据中心225的物理资源之中的虚拟机270和275。网络云互连这些资源,使得端点201可以识别端点202和其他端点的位置以便建立其之间的通信。另外,网络云可在逻辑地链接端点201和202的第一计算设备255和第二计算设备265的端点之间的隧道上建立这一通信。举例来说,这些信道依赖于但不限于一个或多个局域网(LAN)和/或广域网(WAN)。这样的联网环境常见于办公室、企业范围计算机网络、内联网和因特网中。因此,网络不在此进一步描述。现在转到图3,示出了根据本发明的实施例示出示例性分布式计算环境300的框图,该分布式计算环境300具有建立在其中的基于TCP的隧道330。最初,分布式计算环境300包括企业私有网络325以及如结合图2所讨论的云计算平台200。企业私有网络325和云计算平台200可经由由物理网络所支持的网络315来连接。如在此所述使用的那样,用语“私有网络”无意为限制性的,而是可以涵盖促进地理上为远程的位置处的通信的有形机构和设备(例如光纤线、电路箱、交换机、天线、IP路由器等等)和无形通信和载波。举例来说,物理网络(未在图3中示出)可以包括用在因特网内或者可用于提升不同网络间通信的任何有线或无线技术。一般而言,企业私有网325包括诸如资源375之类的资源,所述资源由云计算平台200的顾客来管理。这些资源常常主控和支持顾客所拥有的服务应用的组件的操作。端点B 385表示服务应用的组件中的一个或多个。在实施例中,诸如图2的虚拟机270之类的资源在图2的数据中心225内被分配为托管和支持服务应用的远程分布组件的操作。端点A395表示云计算平台200内的服务应用的这些远程分布组件中的一个或多个。在操作中,端点A 395和B 385彼此一致地工作以保证服务应用正确地运行。在一个实例中,一致地工作包括在物理网络所支持的网络315上在端点A 395和B 385之间传送数据包315或IP数据包。在各实施例中,包316可用来在端点A 395和B 385之间交换信息。一般来说,包316由一序列字节组成,并且还包括头部及其后的主体。头部描述了包316的目的,以及可选地描述物理网络中被用来转发直到包316抵达其最终目的(诸如资源375)的路由器。主 体包含在包316的始发(诸如虚拟机270)处生成的数据或载荷。通常,资源375以及数据中心225包括、或链接到某种形式的计算单元(例如中央处理单元、微处理器等等)以支持端点和/或其上运行的组件的操作。如在此所使用的那样,用语“计算单元”通常是指具有处理能力和存储存储器的专用计算设备,该专用计算设备支持一个或多个操作系统或其他底层软件。在一个示例中,该计算单元是用有形硬件元件或机器来配置的,所述有形硬件元件或机器是集成的、或者可操作地耦合到源375以及数据中心225以使得每个设备都能够执行多种过程和操作。在另一实例中,该计算单元可以涵盖处理器(未示出),该处理器耦合到由资源375和数据中心225中的每一个所容纳的计算机可读介质。一般而言,计算机可读介质至少临时地存储可由处理器执行的多个计算机软件组件(例如端点A 395和B 385)。如本文所使用的,术语“处理器”不旨在是限制性的,并且可涵盖具有计算能力的计算单元的任何元素。在这种能力中,处理器可被配置成处理指令的有形物品。在示例性实施例中,处理可以包括取指令、解码/解释指令、执行和写回指令。可建立基于TCP的隧道330 (“隧道330”)以在分配给单个服务应用(诸如包括端点A 395和B 385的服务应用)或服务独立服务应用的多个配对的各端点间通信,以桥接分配给不同网络上的端点之间的通信。隧道330使用TCP,TCP提供应用层和网络/IP层之间的传输层处的通信服务,并且当TCP使用HTTP或HTTPS时可包括430和440的应用层。这显示在图4的TCP/IP栈430和440,其中隧道330用作虚拟机270中的传输层的低层级信道425之间的逻辑链接。在运行中,当应用程序想要使用IP来在网络(例如因特网)上发送一个大数据块的数据而不是将数据拆分成IP大小的片断并发出一系列IP请求时,应用程序可经由使用TCP的传输层发出单个请求以便处理IP细节。因此,传输层可被认为是一种确保完整递送的传输机制,例如可被认为是一种负责确保其内容或载荷安全且完全地抵达其目的的运载工具。在各实例中,确保递送包括内建在隧道330中的用来处理众多可靠性问题并且提供数据包316的可靠传送的可靠性机制。这些可靠性机制运行在高层级,并且涉及两个终端系统(例如,Web浏览器和Web服务器)。具体来说,TCP通过实施一组规则来提供包316的流从一个计算机上的端点395到另一计算机上的端点385的可靠、有序递送。所述一组规则可规定数据包316按序抵达、数据包316没有差错(即、准确性)、重复的数据包316被丢弃、以及丢失/延迟的数据包316被重新发送。前述的示例的一组规则可由图5的丢失恢复机制505来实施,该机制检查数据流以标识任何丢失的包316。可靠性机制还可包括图5的拥塞机制515,其被配置成管理IP包内传递的数据的量,并且总体地管理隧道330上的流量拥塞。一般来说,隧道330代表经由传输层连接沿两个端点间的部分路径或完整路径的各端点的逻辑链接。在各实施例中,隧道330使用IP-HTTPS、SSL、SSTP或被设计用来创建通过网络315跨IP网络边界的桥接链接的另一基于TCP的隧道技术。因此,隧道330表面上允许创建端点385和395之间、与底层物理网络无关的逻辑链接,由此允许各端点像被相邻放置在数据中心225内一样地交互。
在一示例实施例中,隧道330可包括层叠在彼此之上的一个或多个基于TCP的连接。转到图4,显示了根据本发明的实施例的包括隧道330的基于TCP的连接的分层的示意性描述。如图4中所示,有两个运行在彼此之上的基于TCP的连接,这两个连接都对各自的数据包316的流实施(前述的)一组规则以确保完整和高效的递送。这两个基于TCP的连接包括较高层级的信道415和较低层级的信道425。较高层级的信道415将未封装的数据从虚拟机270流传输到数据中心225内的端点A 395。未封装的数据可在端点A 395处被封装并被放置到较低层级的信道425上,较低层级的信道425将封装在数据包316中的数据传递到端点B 385。当抵达端点B 385之后,数据包316在较低层级的信道425上被接收、解封装、并经由较高层级的信道415被转发给资源375。虽然描述的是包括隧道330的两个不同信道,但应当理解的是提供IP数据包的流传输的其它类型的合适的连接也可被使用,并且本发明的实施例不限于在此描述的那些信道 415 和 425。丢失恢复机制505和拥塞控制机制515 (参见图5)可都被内建在并且整体地运行在较高层级的信道415和较低层级的信道425中的每一个上。这些机制515和525的同时激活运行经常导致因重复以及冗余效果引起的性能衰减。例如,如果数据包316丢失了,两个信道415和425内的两个机制515和525分别执行丢失恢复和拥塞控制。相应地,图2和5的构造控制器210可被用来独立地、选择性地设置(打开或关闭)信道415和425的任一个上的机制515和525的任一个。现在参考图5,显示了示出根据本发明的实施例的示例性数据中心225的方框图,数据执行225使用构造控制器210来选择性地启用/禁用内建在基于TCP的隧道330内的可靠性机制505和515。如所描述的,数据在较高层级的信道415上从虚拟机270被流传输到端点395。端点A 395封装流传输的数据并经由较低层级的信道415在网络315上转发该数据。构造控制器210可将指令510传递给端点A 395,端点A 395选择性地禁用内建在较低层级的信道425内的丢失恢复机制505和/或拥塞控制机制515。这些指令510可通过标准来提示,并且通常以对隧道330所使用的基于TCP的信道415和425的逐个连接为基础发出。针对逐个连接或逐个套接字选项,用来独立地打开或关闭拥塞控制机制505和/或丢失恢复机制515的指令510可由标准来调用,诸如可由消费者(例如,云计算服务模型、经协商的服务级协议、诸如此类)所提供的策略。在另一实施例中,选择性地禁用机制505和515可由与源端点(端点A 395)的身份和目的端点(端点B 385)的身份、被传递的数据的类型、被建立的隧道的类型、被执行的应用/操作的类型、或基于策略的信息有关的标准所调用。在一示例性实施例中,构造控制器210发出禁用运行在较低层级的信道425上的机制505和515的指令510,而保持运行在较高层级的信道415上的机制(未示出)被启用,由此提供了数据流的端对端可靠性并且降低了导致延迟的双机制冗余。在一个示例中,对较低层级的信道425的机制505和515的禁用的这一配置被提供在构造控制器210内作为默认设置。在这一实施例中,构造控制器210将自动禁用机制505和515,除非有相反的输入。在各实施例中,当禁用拥塞控制机制515时,构造控制器210可作用于隧道330的发送端(例如源端点、图3 - 5的端点A 395、或者图2 — 5的虚拟机270)处的组件而无需对隧道330的接收端(例如目的端点、图3 - 5的端点B 385、或者图3和4的资源375)作 出修改。因此,拥塞控制机制515可被关闭而无需与接收端协商,并因此是向后兼容的。在运行中,参考图5,当作用于端点A 395时,这一源端点发送由较高层级的信道415的拥塞控制机制(未示出)所指定的一定量的数据或一定速率的数据包316。因此,只有较高层级的信道415的拥塞控制机制控制数据的量,使得网络315不会因导致高数据丢失的过多数据而不堪重负。在各实施例中,当禁用丢失恢复机制505时,构造控制器210可作用于隧道330的发送端(例如源端点、图3-5的端点A 395、或者图2-5的虚拟机270)以及接收端(例如目的端点、图3-5的端点B 385、或者图3和4的资源375)的组件。因此,丢失恢复机制515可经由隧道330的发送端和接收端之间的协商通过协作而关闭。也就是说,可使接收端通过协商知晓数据包316的丢失将不会由发送端恢复。对应地,在运行中,即使中间数据可能会丢失,接收端会传递经递送的数据包316,直到资源375或在端点B 385下游的服务应用的其它目的端点。然而,如果隧道330的接收端不支持关闭丢失恢复机制515,则丢失恢复机制515通常将保持激活和启用。在一个协商的实例中,端点A 395可向端点B 385发送初始同步(SYN)包(运载协商信息),端点B 385可确认收到SYN包。此外,端点B 385可通过发送给端点A 395 —个确收(SYN-ACK)来交换给端点A 395 —个握手。这时,当交换发生时,较低层级的信道425的丢失恢复机制515被禁用,而较高层级的信道415的丢失恢复机制(未示出)保持激活和启用,从而通过重新发送网络315中丢失或延迟的任何数据来帮助从数据包316的递送期间的任何丢失或延迟中恢复。现在参考图6,显示的是示出根据本发明的实施例的、用于便于在位于不同网络中的多个端点之间建立的网络连接上的通信的方法600的流程图。如方框602所示,提供了网络连接。在一个实例中,网络连接跨在源端点(例如,图4的端点A 395)和目的端点(例如,图4的端点B 385)。如以上所讨论的,网络连接用作桥接源端点和目的端点所位于的不同网络(例如,云计算平台200和图3的企业使用网络325)的基于TCP的隧道。方法600在方框604和606还包含选择性地禁用集成地运行在基于TCP的隧道上的一个或多个较低层级的可靠性机制,以及在第一端点和第二端点之间传送消息而较低层级的可靠性机制不会影响消息被发送的定时的步骤。在各实施例中,在第一端点第二端点之间传送消息可具体包括经由基于TCP的隧道将来自第一端点的IP包发送给第二端点。在一示例性实施例中,可以在对应于预定义的标准的事件发生时启动选择性禁用的动作。预定义的标准可为构造控制器所知,构造控制器可基于检测到以下的对应事件而选择性地禁用可靠性机制中的一个或多个(例如,图5的丢失控制机制505和拥塞控制机制515):预定端口正尝试在隧道上发送数据包;在预定的数据中心、虚拟机、或源端点处创建了新的网络连接;或者在预定的资源或目的端点处创建了新的网络连接。在另一实施例中,数据中心的用户或客户机可被授权施加手动控制以打开/关闭一组实例化在云计算平台中的可靠性机制。以此方式,客户机的用户可通过在Π中指定隧道的端点来动态地决定是否要禁用或启用一个或多个可靠性机制。相应地,用户或客户机能够确定是否避免与在通常会以冗余和低效率的方式执行拥塞控制和丢失恢复的隧道上运行重复的多层可靠性协议(诸如TCP)相关联的性能惩罚。
转到图7,显示了根据本发明的实施例的、示出用于促进跨基于TCP的隧道的源端点与目的端点之间的通信的方法700的流程图。如框702所示,方法700包括使用构造控制器来建立可通信地链接一个网络上或跨不同网络的源端点和目的端点的基于TCP的隧道。在各实施例中,源端点的操作由数据中心(例如,使用图3的数据中心225)所支持,而目的端点的操作由位于远程的、位于私有企业网络中的资源(例如,使用图3的资源375)所支持,其中该资源可以由数据中心的客户机所管理/拥有。方法700还包括在源端点接收第一 IP包流的步骤,该第一 IP包流是从在数据中心内实例化的虚拟机处传递来的。该步骤显示在框704。在一些实施例中,这一第一 IP包流经由具有在其上所提供的第一组可靠性机制的较高层级的信道来运载。当抵达源隧道端点之后,第一 IP包流被封装为第二 IP包流,该第二 IP包流经由较低层级的连接在基于TCP的隧道上发送,如框706和708所示。在基于TCP的隧道的一种配置中,较低层级的连接被层叠在较高层级的信道之下,由此串行运行以传递IP包并且确保其传递的可靠性。以此方式,较低层级的信道通常被提供有第二组可靠性机制。在一示例性实施例中,第一和第二组可靠性机制各自分别至少包括拥塞控制机制和丢失恢复机制。方法700通过执行使用构造控制器来选择性地禁用在较低层级的信道上提供的拥塞控制机制和丢失恢复机制的步骤来继续,如框710所示。构造控制器还被用来被动地允许在较高层级的信道上提供的拥塞控制机制和丢失恢复机制保持启用,如框712所示。存储较低层级信道的禁用条件和较高层级信道的启用条件,如框714所示。作为说明,禁用条件表示对在较低层级的信道上提供的拥塞控制机制和丢失恢复机制的禁用。相反,启用条件表示对在较高层级的信道上提供的拥塞控制机制和丢失恢复机制的启用。信道的条件可被存储在数据中心、资源、端点或可由构造控制器访问的任何其它位置。参考各具体实施例描述了本发明的各实施例,各具体实施例在所有方面都旨在是说明性的而非限制性的。在不背离本发明范围的情况下各替换实施例对本发明的各实施例的所属领域的普通技术人员将变得显而易见。从前面的描述可以看出,本发明很好地适用于实现上文所阐述的所有目的和目标,并且具有对于该系统和方法是显而易见且固有的其他优点。可以理解,某些特征和子组合是有用的,并且可以在不参考其他特征和子组合的情况下使用。这由权利要求所构想的,并在权利要求的范 围内。
权利要求
1.一个或多个其上包含计算机可执行指令的计算机可读介质,这些指令在被执行时执行用于在位于不同网络中的多个端点之间所建立的网络连接上通信的方法,该方法包括 提供跨在源端点和目的端点之间的网络连接,其中所述网络连接用作基于传输控制协议(TCP)的隧道,所述隧道桥接所述源端点和所述目的端点所分别位于的不同网络; 选择性地禁用整体地运行在所述基于TCP的隧道上的一个或多个较低层级的可靠性机制;以及 在第一端点和第二端点之间通过所述隧道传送消息,而所述一个或多个较低层级的可靠性机制不干扰所述消息被发送的定时。
2.如权利要求I所述的一个或多个计算机可读介质,其特征在于,在第一端点和第二端点之间传送消息包括经由所述基于TCP的隧道将因特网协议(IP)包从第一端点发送到AA- ~4 山 _h-弟*~*%5点。
3.如权利要求2所述的一个或多个计算机可读介质,其特征在于,所述一个或多个较低层级的可靠性机制包括被配置成管理IP包的传输速率的拥塞控制机制。
4.如权利要求2所述的一个或多个计算机可读介质,其特征在于,所述一个或多个较低层级的可靠性机制包括被配置成通过自动重发未传递或延迟的IP包来管理所述网络连接上的丢包的丢包机制。
5.如权利要求I所述的一个或多个计算机可读介质,其特征在于,所述网络连接包括运行在较低层级的基于TCP的连接之上的较高层级的基于TCP的连接。
6.如权利要求5所述的一个或多个计算机可读介质,其特征在于,一个或多个较高层级的可靠性机制整体地运行在所述较高层级的基于TCP的连接上,并且一个或多个较低层级的可靠性机制整体地运行在所述较低层级的基于TCP的连接上。
7.如权利要求6所述的一个或多个计算机可读介质,其特征在于,当选择性地禁用一个或多个较低层级的可靠性机制时,一个或多个较高层级的可靠性机制保持启用。
8.如权利要求6所述的一个或多个计算机可读介质,其特征在于,一个或多个较高层级的可靠性机制包括被配置成管理IP包的传输速率的拥塞控制机制以及被配置成通过自动重发未传递或延迟的IP包来管理所述网络连接上的丢包的丢包机制。
9.如权利要求6所述的一个或多个计算机可读介质,其特征在于,一个或多个较高层级的可靠性机制在被启用时实施用来管理较高层级的基于TCP的连接上的数据流的一组规则,并且其中一个或多个较低层级的可靠性机制在被启用时实施同一组规则来管理较低层级的基于TCP的连接上的数据流。
10.如权利要求I所述的一个或多个计算机可读介质,其特征在于,根据部分由云计算平台的客户机所设计的云计算服务模型来选择性地禁用一个或多个较低层级的可靠性机制,并且其中所述云计算平台包括主控所述源端点的数据中心。
11.如权利要求I所述的一个或多个计算机可读介质,其特征在于,所述目的端点由位于由客户机管理的私有企业网络内的资源所主控。
12.一种用于管理位于各个网络中的端点间的数据流的计算机系统,所述计算机系统包括 位于云计算平台内的数据中心,该数据中心主控源端点,其中所述源端点被分配给在云计算平台和私有企业网络上都运行的应用;位于所述私有企业网络内的资源,该资源主控分配给所述应用的目的端点,其中所述源端点和所述目的端点通过隧道连接,所述隧道直接传输两个端点间的数据流,其中所述隧道启用运行在较低层级的连接上的较高层级的连接,并且其中拥塞控制机制和丢包机制(505)都被分别内建在所述较高层级的连接和所述较低层级的连接的每一个中;以及 运行在所述数据中心内的构造控制器,该构造控制器建立所述隧道并且配置所述隧道内的连接,其中配置所述连接包括选择性地禁用内建在所述较低层级的连接内的拥塞控制机制和丢包机制,并且选择性地启用内建在所述较高层级的连接内的拥塞控制机制和丢包机制。
13.如权利要求12所述的计算机系统,其特征在于,还包括位于所述数据中心内的虚拟机,所述虚拟机生成在所述较高层级的连接上被运载给所述源端点的第一因特网协议(IP)包,并且其中所述源端点将所述第一 IP包封装成第二 IP包并在所述较低层级的连接上发送所述第二 IP包。
14.如权利要求13所述的计算机系统,其特征在于,在选择性地禁用内建在所述较低层级的连接中的拥塞控制机制时,所述构造控制器与所述源端点通信,而当选择性地禁用内建在所述较低层级的连接中的丢包机制时,所述源端点与所述目的端点协商。
15.一种用于促进跨基于传输控制协议(TCP)的隧道的源端点与目的端点之间的通信的计算机化方法,该方法包括 使用构造控制器来建立所述基于TCP的隧道,所述基于TCP的隧道可通信地链接跨不同网络的源端点和目的端点,其中所述源端点的操作由数据中心所支持,而所述目的端点的操作由位于远程的、位于所述数据中心的客户机所管理的私有企业网络上的资源所支持; 在所述源端点处接收由数据中心内实例化的虚拟机所传递的第一因特网(IP)包,其中所述第一 IP包经由具有在上面提供有第一组可靠性机制的较高层级的连接来运载; 在所述源端点将所述第一 IP包封装成第二 IP包; 经由层叠在所述较高层级的连接之下的较低层级的连接在所述基于TCP的隧道上发送所述第二 IP包,其中所述较高层级的信道被提供有第二组可靠性机制,并且其中所述第一组和第二组可靠性机制各自分别包括拥塞控制机制和丢失恢复机制; 使用所述构造控制器来选择性地禁用提供在所述较低层级的连接上的拥塞控制机制和丢失恢复机制; 使用所述构造控制器来被动地允许提供在所述较高层级的连接上的拥塞控制机制和丢失恢复机制保持启用;以及 存储所述较低层级的连接的禁用条件和所述较高层级的连接的启用条件,其中禁用条件表示对在所述较低层级的连接上提供的拥塞控制机制和丢失恢复机制的禁用,并且其中启用条件表示对在所述较高层级的连接上提供的拥塞控制机制和丢失恢复机制的启用。
全文摘要
提供了用于建立和管理基于传输控制协议(TCP)的隧道(“隧道”)的计算机化方法、系统和计算机存储介质。该隧道横跨在数据中心和私有企业网之间并且连接服务应用的位于每个位置的端点。在通信期间,各端点在包括该隧道的一个或多个信道(例如,较高层级的信道和较低层级的信道)上发送数据包。每一个信道支持整体地运行于其上的用于确保完整的数据包传递的可靠性机制(例如,拥塞控制机制和丢失恢复机制)。为了避免由于可靠性机制的重复效果所引起的性能衰减,构造控制器被用来选择性地、单独地禁用可靠性机制中的一个或多个。可靠性机制的选择性禁用是由预定标准所调用的,诸如来自服务模型的指令或所检测到的源/目的端点的身份,并且是基于每一个网络连接来调用的。
文档编号G06F15/16GK102792637SQ201180012155
公开日2012年11月21日 申请日期2011年3月2日 优先权日2010年3月4日
发明者D·班塞尔, H·阿尔卡特比 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1