在广域网中建立安全、低延迟、优化路径的方法和装置与流程

文档序号:24502197发布日期:2021-03-30 21:31阅读:116来源:国知局
在广域网中建立安全、低延迟、优化路径的方法和装置与流程

本发明涉及一种用于在广域网(wan)中建立安全、低延迟、优化路径的方法和装置,特别涉及但不限于例如通过减少wan中高延迟通信链路上的传输控制协议(tcp)连接建立时间来减少wan中的连接建立时间。



背景技术:

在通信网络中,延迟(latency)是对时延(delay)的度量。延迟可以包括跨通信网络或在所述网络中特定节点之间建立连接的延迟的度量。延迟还可以包括将数据传输到网络中其目的地的延迟的度量。延迟通常以往返延迟来度量,尽管不一定总是这样。延迟也可以视为衡量网络响应能力的标准,它反映了网络有效建立连接和/或有效传输数据的能力。

在全球组织或跨国公司的典型wan部署中,组织站点通常位于全球各地,而且它们之间可能有很长的地理距离。在这种情况下,组织站点可能需要长距离的通信链路,这可能会表现出高延迟。通常,组织站点之间有多个通信链路相互连接。例如,这种通信链路可以包括但不限于租用线路、多协议标签交换(mpls)网络链路、专用网络链路、公共网络链路、卫星系统链路和互联网链路。长距离链路或连接可能会遇到大量的握手信号延迟。例如,在tcp的情况下,长距离链路或连接可能会导致用于tcp连接建立的高延迟三向握手(three-wayhandshake),并因此导致在通过此连接发送或传递第一个数据之前存在高延迟。此外,由于缺乏对不同类型网络流量的链路选择的动态管理,链路带宽利用率通常较低。因此,由于高延迟和低链路带宽利用率,可能会大大降低wan网络中站点之间的数据包吞吐量。

us9722815公开了一种边缘网关多路径方法,包括提供局域网中的边缘设备与云计算网络中的云计算服务通信连接。自动检测到连接到边缘设备的一组wan链路。不需要外部路由器即可自动检测wan链路。边缘设备与云计算网络中的中央配置点通信连接。该方法还包括以下步骤:从中央配置点将企业特定的配置数据下载到边缘设备中。企业特定的配置数据包括网关信息。边缘设备与云计算网络中的网关通信连接。边缘设备与网关的通信练级包括多路径(mp)协议。实际上,云服务器中的集中式配置点会根据每个路径上的可用带宽来选择路径。

ep1333642公开了一种用于支持通信网络安全的方法。网络设备包括安全对等方,该安全对等方在数据网络(如卫星网络)上建立安全隧道以传输加密业务。该设备还包括一个性能对等方,用于建立安全隧道支持的连接。

us10122829公开了一种用于提高网络通信性能的网络系统。该系统包括至少在第一客户站点实施的至少一个客户站点网络组件。客户站点网络组件绑定或聚合一个或多个不同的网络连接,以便配置具有增加吞吐量的绑定连接。该系统包括至少一个网络服务器组件,网络服务器组件被配置成使用绑定连接来连接到客户站点网络组件。网络服务器组件自动终止绑定连接并将数据业务传递到至少一个网络。该系统包括在至少一个网络服务器组件处的虚拟控制平面接口和被配置成管理数据业务的云网络控制器。云网络控制器可用于配置虚拟控制平面接口,以便为来自或去往多个客户站点网络组件的数据业务提供优先级队列。

us7680051公开了一种系统,用于预配置流控制传输协议(sctp)关联,接收网络设备中的tcp数据包,其中tcp数据包用于目标节点,并将tcp数据包封装到sctp有效载荷中,以便在wan上传输sctp有效载荷。但是,当延迟最小化时,最好避免由于不当注入过多流量超出wan链路容量或超过服务质量(qos)策略而造成数据丢失。

us9450817公开了一种可扩展软件定义网络(sdn)控制器,该控制器提供了一个应用程序感知框架,使各种不同的用户应用程序能够与控制器进行通信,并允许控制器根据应用程序的需求自动配置网络中的设备。因此,sdn控制器可以根据应用程序的需求自动配置网络中的设备。

us10021594公开了一种卫星通信系统,其被配置成根据协议在第一卫星调制解调器和第二卫星调制解调器之间建立多个不同的隧道。第一卫星调制解调器可以经由根据不同协议建立的隧道来接收数据包。然后,它可以基于包含在数据包中的一个或多个报头(header)的信息来确定对应于隧道的端点标识符,识别对应于隧道的多个不同隧道中的一个,生成一个相应的数据包,该数据包省略了来自一个或多个报头的至少一部分信息,并包括所述数据包有效载荷中包含的至少一部分数据,以及包括与多个不同隧道中的所识别的那一个隧道的隧道索引相对应的信息块,并经由多个不同隧道中的识别的那个隧道将相应的数据包传输到第二卫星调制解调器。但是,tcp建立时间没有减少,发送第一数据有效载荷的延迟也没有减少。

因此,仍然需要至少一种能够在wan中的通信链路上,特别是在wan中的长距离通信链路上提高连接建立效率的方法和设备。

发明目的

本发明的一个目的是在一定程度上减轻或消除与wan中使用高延迟网络连接的已知方法相关的一个或多个问题。

上述目的通过主权利要求的特征组合来实现;从属权利要求公开了本发明的其他有利实施例。

本发明的另一个目的是在一定程度上减轻或消除与在wan中的通信链路上,特别是在wan中的长距离通信链路上的连接建立效率相关的一个或多个问题。

本发明的另一个目的是减少wan中tcp连接建立的延迟。

本发明的另一个目的是改善wan中的路径优化。

本发明的另一个目的是提高wan中的数据包传输吞吐量。

本发明的另一个目的是提高wan中的网络安全性。

本领域技术人员将从以下描述中得出本发明的其他目的。因此,上述目的的陈述不是穷举性的,仅用于说明本发明的许多目的中的一些。



技术实现要素:

本发明涉及一种用于在wan中建立安全、低延迟和/或优化路径的方法和装置。

在第一主要方面,本发明提供了一种用于在通信网络中的广域网(wan)上传输数据包的方法和装置,其中该wan包括多个互连的节点,该互连的节点至少包括第一通信节点、第二通信节点和wan控制器节点。该方法包括:在部分或全部通信节点之间的通信链路上建立虚拟专用网(vpn)隧道连接,使用非面向流的传输层协议为每个vpn隧道连接建立非面向流的关联,在接收到来自所述第一通信节点的源设备的分组连接时,将来自所述分组连接的数据包封装到第一通信节点与第二通信节点之间的一个或多个非面向流的关联中,从而将所述数据包从源设备传输到第二通信节点。wan控制器节点向第一通信节点传送链路或路由的选择,以用于将数据包传输到第二通信节点。第一通信节点从多个非面向流的关联中选择一个或多个非面向流的关联,用于数据包封装,所述多个非面向流的关联在所述wan控制器节点向所述第一节点通信传达的链路或路由上建立。

优选地,所述第一通信节点接收到的来自源设备的分组连接包括面向流的分组连接和可选的tcp分组连接。同样优选地,非面向流的传输层协议包括面向消息的传输层协议。优选地,面向消息的传输层协议包括流控制传输协议(sctp)。可选地,每个sctp关联是在互联网协议安全(ipsec)vpn隧道中加密的。

在第二主要方面,本发明提供了一种用于通信网络中的wan的节点,该wan包括通信网络中的多个互连的节点。该节点包括vpn模块,该vpn模块被配置成在所述节点与构成wan的部分或全部其他节点之间的通信链路上建立vpn隧道连接。该节点还包括非面向流的传输层协议模块,该模块被配置成在所述节点处为每个vpn隧道连接建立非面向流的关联。还包括面向流的传输层协议代理模块,该模块被配置成:在所述节点处接收来自源设备的面向流的连接时,将来自所述面向流连接的数据包封装到所述节点和目标节点之间的一个或多个非面向流的关联中,从而将所述数据包从源设备传输到目标节点。远程过程调用(remoteprocedurecall,rpc)模块被配置成从wan控制器节点接收链路或路由的选择,以用于从所述节点到构成wan的其他节点的数据包传输。所述节点被布置成使得面向流的传输层协议代理模块从多个非面向流的关联中选择一个或多个非面向流的关联,用于封装数据包,所述多个非面向流的关联是建立在wan控制器节点向第一节点传达的链路或路由上的。

在第三主要方面,本发明提供了一种方法,包括:预配置多个非tcp关联,该非tcp包括面向消息的传输层协议和可选地包括sctp;从网络设备接收tcp数据包,该tcp数据包旨在用于目标节点或设备;将tcp数据包封装成一个或多个选定的非tcp关联的非tcp有效载荷;以及将非tcp有效载荷在一个或多个选定的非tcp关联上以一个或多个流的形式,跨wan传输到目标节点或设备,其中,选定的一个或多个非tcp关联是基于wan的一个或多个拓扑和/或一个或多个运行参数来选择的。

在第四主要方面,本发明提供一种通信节点,包括非面向流的传输层协议模块,用于预配置多个非tcp关联,该非tcp包括面向消息的传输层协议,并且可选地,包括sctp,面向流的传输层协议代理模块,用于接收来自网络设备的tcp数据包,该tcp数据包旨在用于目标节点或设备,所述面向流的传输层协议代理模块被配置成将tcp数据包封装成一个或多个非tcp关联的tcp有效载荷,并将非tcp有效载荷以一个或多个流的形式在一个或多个非tcp关联上传输到目标节点或设备,其中面向流的传输层协议代理模块被配置成选择在一组链路或路由上建立的一个或多个非tcp关联,所述一组链路或路由是基于wan的一个或多个拓扑和/或一个或多个运行参数来选择的。

在第五主要方面,本发明提供了一种通过通信网络中wan传输数据包的方法,该wan包括多个互连的通信节点,包括至少第一通信节点、第二通信节点和wan控制器节点,该方法包括以下步骤:在wan控制器节点处,从第一和第二通信节点接收有关wan的一个或多个拓扑和/或一个或多个运行参数的信息;处理所述接收到的信息,以便为第一和第二通信节点确定各自选择的vpn隧道连接,所述各自选择的vpn隧道连接已经建立在连接所述第一和第二通信节点的链路或路由上了,每个所述vpn隧道连接上已经建立了一个非面向流的关联,用于封装来自面向流的分组连接的数据包;并将所述各自选择的vpn隧道连接发送到所述第一和第二通信节点。

在第六主要方面中,本发明提供一种wan控制器节点,包括多个互连的通信节点,包括至少第一通信节点和第二通信节点,该wan控制器节点包括rpc模块,用于从第一和第二通信节点接收关于wan的一个或多个拓扑和/或一个或多个运行参数的信息,以及处理器,用于处理所述接收到的信息,以便为每个所述第一和第二通信节点确定各自选择的vpn隧道连接,所述各自选择的vpn隧道连接已经建立在连接所述第一和第二通信节点的链路或路由上了,每个所述vpn隧道连接已经在其上建立了非面向流的关联,用于封装来自面向流的分组连接的数据包。

本发明概述并不一定公开定义本发明必不可少的所有特征。本发明可以存在于所公开特征的子组合中。

附图说明

从下面对优选实施例的描述中可以看出本发明的上述和进一步的特征,这些优选实施例仅结合附图以举例的方式提供,其中:

图1是现有技术的wan配置示意图。

图2是本发明一个实施例的wan配置示意图。

图3是本发明一个实施例的wan配置的wan控制器节点的示意框图。

图4是本发明一个实施例的wan配置的通信节点的示意框图。

图5是本发明一个实施例的wan配置示意图,显示了数据包传输路径的建立。

图6是本发明的wan配置的控制器节点动态选择wan中通信节点链路或路由的方法流程图。

图7显示本发明的减少跨wan的连接建立时间的方法的信号图。

图8是进一步说明本发明的减少跨wan的连接建立时间的方法的信号图。

图9是本发明另一实施例的wan配置示意图。

具体实施方式

以下描述的是优选实施例,仅举例说明,并不限于实施本发明所需的特征组合。

本说明书中提到的“一个实施例”或“实施例”是该实施例描述的特定特征、结构或特性包括在本发明的至少一个实施例中。说明书中各个地方出现的短语“在一个实施例中”不一定都指同一实施例,也不是与其他实施例互斥的单独或替代的实施例。而且,描述的各种特征,可能由一些实施例展现,而不是由其他实施例展现。类似地,描述的各种要求,可能是某些实施例的要求,但不是其他实施例的要求。

应当理解,附图中所示的元件可以以各种形式的硬件、软件或其组合来实现。这些元件可以在一个或多个适当编程的通用设备上以硬件和软件的组合来实现,该通用设备可以包括处理器、存储器和输入/输出接口。

本说明书说明了本发明的原理。因此,可理解的是,本领域技术人员将能够设计出尽管未在本文中明确描述或示出但体现本发明原理并且包括在其精神和范围内的各种布置。

此外,本文中叙述本发明的原理、方面和实施例及其具体实施例的所有陈述旨在涵盖其结构和功能上的等同物。另外,意在使这样的等同物包括当前已知的等同物,也包括将来开发的等同物,即,任何开发的无论其结构如何但具有相同功能的元件。

因此,例如,本领域技术人员可理解的是,本文提出的框图代表了体现本发明原理的系统和装置的概念图。

附图中所示的各种元件的功能可以通过使用专用硬件以及能够与适当的软件联合执行软件的硬件来提供。当由处理器提供时,这些功能可以由单个专用处理器、单个共享处理器或多个单独的处理器提供,其中一些可以共享。此外,术语“处理器”或“控制器”的明确使用不应解释为仅能够执行软件的硬件,并且可以隐含地包括但不限于数字信号处理器(“dsp”)硬件、用于存储软件的只读存储器(“rom”)、随机存取存储器(“ram”)和非易失性存储器。

在权利要求书中,任何表示为执行特定功能的装置的元件旨在涵盖执行该功能的任何方式,例如包括a)执行该功能的电路元件的组合,或b)任何形式的软件,因此包括固件、微代码或与类似适当电路组合用于执行该软件以执行该功能。由这样的权利要求书定义的本发明在于以下事实:由各种所述装置提供的功能是以权利要求书所要求的方式组合和汇集在一起。因此认为,可以提供那些功能的任何装置都等同于本文所示的装置。

本发明将仅通过示例的方式无线通信网络进行描述,但是应当理解,本文所公开的发明原理同样适用于具有一个或多个高延迟网络连接的任何类型的通信网络,无论是传统网络连接类型,还是高延迟回程网络连接类型,例如卫星网络连接或跨大陆光纤网络连接。

参考图1,图1显示一个全球组织如跨国公司的wan10的简化常规配置。wan10包括第一组织站点“站点1”12,其通过多个通信链路14连接到第二组织站点“站点2”16。组织站点12、16可以在地理上相隔很长的距离,甚至可以位于不同国家。在该示例中,第一站点12位于香港,第二站点16位于旧金山。

尽管未示出,但是每个站点12、16可以包括多个通信节点,包括枢纽站点节点和分支站点节点。在站点12、16处,枢纽站点节点18、20为其站点12、16处的其他通信节点提供到通信链路14的网关。包括枢纽站点节点18、20的通信节点为连接设备如个人计算机(pc)(如图1中的源pc22和目标pc24)以及本领域技术人员熟悉的通信设备(未示出)(如手机等)提供对通信链路14的访问。可以理解的是,示例性的源pc22和目标pc24并不限于图1中指代所传达的各自的角色,而是可以同时用作源和目的。图1中角色指代是为了便于描述常规配置的wan的典型运作,以说明所述wan中的不足之处。站点12、16处的其他通信节点可以包括服务器、数据库、交换机、路由器等的任意组合。通信链路14可以包括但不限于租用线路14a、mpls网络连接14b和互联网提供的连接14c。

通常,wan10被配置成tcp网络,当源pc22希望将有效载荷数据包传输到目标pc24时,必须首先在源pc22与目标pc24之间建立或设置tcp连接。这需要一个tcp三向握手过程。该tcp三向握手过程中的从香港到旧金山的单向tcp连接信号延迟通常约为164ms。因此,tcp三向握手过程的总延迟约为492ms。结果,由于站点1的枢纽站点节点18和站点2的枢纽站点节点20之间的长距离连接上的高延迟tcp连接建立,用户体验将很差。进一步的后果是,从枢纽站点节点18到枢纽站点节点20开始传输接收到的有效载荷数据包就会出现延迟。其他后果包括:互联网提供的连接14c可能无法充分利用,互联网提供的连接14c可能不安全,即使租用线路14a和/或mpls网络连接14b变得拥塞时,枢纽站节点18仍将继续使用它们,并且枢纽站点节点18无法在通信链路14之间动态切换。因此,由于高延迟和低链路利用率,第一站点12和第二站点16之间的tcp有效载荷数据包传输可能会显著减少。

下面描述的本发明旨在克服图1所示的传统wan配置中的缺陷,其主要目的是降低跨wan的连接建立的延迟,改善路径优化,提高有效载荷数据包吞吐量,以及改善网络安全性,包括在任何或所有易受攻击的wan通信链路上的安全性,尤其是互联网提供链路上的安全性。

参考图2,图2显示了根据本发明的wan100的简化配置。在wan100的以下描述中,类似的组件或部件将使用与图1中类似的数字标记,但是在数字前加“1”。类似组件或部件之间的任何差异将在下面描述,以突出这种差异。

在图2中,可以看到wan100的配置与图1的传统wan的配置基本相同,除了包括控制器126和其他功能上的差异,以下将对其进行描述。wan100包括第一组织站点“站点1”112,其通过多个通信链路114连接到第二组织站点“站点2”116。站点112、116包括多个通信节点,包括枢纽站点节点和分支站点节点。可以认为包括第一和第二通信节点的枢纽站点节点118、120为其他通信节点(未示出)提供到通信链路114的网关,并且包括枢纽站点节点118、120的通信节点为诸如源pc122和目标pc124之类的设备以及其他通信设备(未示出)提供对通信链路114的访问。通信链路114可以包括但不限于租用线路114a、mpls网络连接114b和互联网提供的连接114c。控制器126可以不包括单独的物理节点,但可以通过wan100的任何合适的节点中的软件来体现。

参见图3,控制器126,在本文中也称为“wan控制器节点”,包括远程过程调用(rpc)模块128,其被配置成从枢纽站点节点118、120和/或从站点112、116上其他通信节点接收关于wan100的一个或多个拓扑和/或一个或多个运行参数的信息。wan100的一个或多个拓扑和/或一个或多个运行参数可以包括wan通信节点配置数据、wan通信节点状态数据、wan链路配置数据、wan链路状态数据、wan链路质量数据中的任意一个或任意组合。枢纽站点节点118、120和/或其他通信节点可以被配置成周期性地将拓扑和/或运行参数数据提供给控制器126。控制器126包括至少一个处理器130和至少一个存储器132。存储器132可以包括路由表133。控制器126可以包括在wan100中通信连接到每一个枢纽站点节点118、120和/或其他通信节点的不同通信节点,或者它可以体现在上述节点中任何一个节点或另一个wan节点中。换句话说,控制器126可以体现在wan100中的任何合适的节点中,只要它可以与提供拓扑和/或运行参数数据的每个节点通信连接。

此外,控制器126可以使用存储在存储器132中的逻辑电路和/或可执行代码/机器可读指令来实现,以便由处理器130执行,从而执行如下所述的功能。例如,可执行代码/机器可读指令可以存储在一个或多个存储器132(如随机存取存储器(ram)、只读存储器(rom)、闪存、磁存储器、光存储器等)中,适合于存储一个或多个指令集(如应用软件、固件、操作系统、小程序等)、数据(如配置参数、运行参数和/或阈值、收集的数据、已处理的数据等)。一个或多个存储器132可以包括处理器可读存储器,针对一个或多个处理器130使用,其可运行以执行控制器126的代码段和/或利用由此提供的数据来执行如本文所述的控制器126的功能。另外地或可替代地,控制器126可以包括一个或多个专用处理器(如专用集成电路(asic)、现场可编程门阵列(fpga)、图形处理单元(gpu)等)和/或被配置成执行如本文所述控制器126的功能的类似物。

处理器130被配置成接收拓扑和/或运行参数数据,并处理所述数据,以便为所述第一和第二枢纽站点节点118、120在已建立的vpn隧道连接选择通信链路或路由114,其中每个所述vpn隧道连接已经在其上建立了非面向流的传输层协议关联(non-stream-orientedtransportlayerprotocolassociation),用于封装来自面向流的传输层协议分组连接的数据包,这将在下面更全面地描述。

参照图4,每个枢纽站点节点118、120或站点112、116处的任何其他合适的节点可以包括wan通信节点134,用于实施根据本发明的方法。wan通信节点134包括vpn模块136,该vpn模块136被配置成在所述节点134和构成wan100的一些或所有其他节点(如枢纽站点节点120)之间的通信链路114上建立vpn隧道连接148(图5)。

wan通信节点134包括非面向流的传输层协议模块138,其被配置成在所述节点134处为每个vpn隧道连接148建立非面向流的关联150(图5)。非面向流的传输层协议优选地包括面向消息的传输层协议。更优选地,面向消息的传输层协议包括sctp。sctp是面向消息的,而tcp是面向流或字节的。sctp可以处理多个同时流和多路流,而tcp只能处理每个连接的单一数据流。可选地,每个sctp关联150在互联网协议安全(ipsec)vpn隧道148中被加密,或者至少在公共网络(如互联网)上提供的vpn隧道被加密为ipsec隧道148。

wan通信节点134还包括面向流的传输层协议代理模块140,其被配置成在所述节点134上接收来自源设备(如源pc122)的面向流的连接152(图5)时,将来自所述面向流的连接152的数据包封装为在所述节点134与目标节点之间的选定的非面向流的关联150上的一个或多个数据流,从而将所述数据包从源pc122传输到目标节点。在所述wan通信节点134处接收到的来自源pc122的面向流的连接152优选为tcp分组连接。面向流的传输层协议代理模块140可以认为包括tcp代理模块。

wan通信节点134还包括rpc模块142,其被配置成从wan控制器节点126接收链路或路由的选择,以用于从所述节点134到其他节点120的数据包传输。

wan通信节点134被布置成,使面向流的传输层协议代理模块140从多个非面向流的关联中选择非面向流关联150用于封装数据包,所述多个非面向流的关联是建立在wan控制器节点126向所述节点134传达的链路或路由114上的。

wan通信节点134还包括至少一个处理器144和至少一个存储器146。存储器可以包括路由表147。

wan通信节点134可以使用存储在存储器146中的逻辑电路和/或可执行代码/机器可读指令来实现,以便由处理器144执行,从而执行下文所述的功能。例如,可执行代码/机器可读指令可以存储在一个或多个存储器146(如随机存取存储器(ram)、只读存储器(rom)、闪存、磁存储器、光存储器等)中,适合于存储一个或多个指令集(如应用软件、固件、操作系统、小程序等)、数据(如配置参数、运行参数和/或阈值、收集的数据、已处理的数据等)。一个或多个存储器146可包括处理器可读存储器,关于一个或多个处理器144使用,其可运行以执行wan通信节点134的代码段和/或利用由此提供的数据来执行如本文所述的wan通信节点134的功能。另外,或可替代地,wan通信节点134可以包括一个或多个专用处理器(如专用集成电路(asic)、现场可编程门阵列(fpga)、图形处理单元(gpu)和/或类似的处理器,被配置成执行如本文所述的wan通信节点134的功能。

参照图5,可以看出,在一个优选的布置中,vpn模块136在部分或全部通信节点(如第一通信节点118和第二通信节点120)之间的通信链路114上建立ipsecvpn隧道连接148。然后,第一通信节点118的非面向流的传输层协议模块138优选使用sctp为每个ipsecvpn隧道连接148建立sctp关联或连接150。面向流的传输层协议代理模块140在接收来自源pc122的tcp分组连接152时,将来自所述tcp分组连接152的数据包封装成一个或多个选定的sctp关联150的数据流,从而将所述数据包从源pc122传输到第二通信节点120,如枢纽站点节点120。wan控制器节点126将选择的链路或路由114传送到rpc模块142,以将数据包传送到第二通信节点120。面向流的传输层协议代理模块140利用接收到的链路或路由114的选择,从多个sctp关联150中选择sctp关联,用于封装tcp数据包,所述多个sctp关联150建立在wan控制器节点126向所述第一通信节点118传达的链路或路由114上。因此可以看出,在第一通信节点118从源pc122接收tcp分组连接152之前,wan控制器节点126已选择向第一通信节点118传达链路或路由114。

当第一通信节点118接收到来自源pc122的tcp分组连接152时,面向流的传输层协议代理模块140使用选定的sctp关联150来向第二通信节点120发出信号,从而第二通信节点120在收到信号时,与目标节点或目标设备(如目标pc124)建立本地tcp连接154,从而形成从源pc122到目标pc124的跨wan100的虚拟tcp连接,同时避免了跨wan100进行三向tcp握手的需要。随后,但是在完全建立跨wan100的虚拟tcp连接之前,可以开始从第一通信节点118到至少第二通信节点120的tcp有效载荷数据包传输。

一旦在第二通信节点120处接收到tcp有效载荷数据包,则所述节点120解封装来自所选sctp关联150的一个或多个流的封装tcp有效载荷数据包,并将所述解封装的tcp有效载荷数据包通过本地tcp连接154传输到目标pc124。

当对要发送到第一通信节点118的链路或路由114进行选择时,且从第一通信节点118无法获得链路114的状态数据或链路状态在管理上不可用时,wan控制器节点126可以不将所述链路114包括在发送到第一通信节点118的数据包传输的链路或路由114的选择中,或者wan控制器节点126可以包括链路114,但是将所述链路114标识为不可用于高优先级数据包传输。

当要对发送到第一通信节点118的链路或路由114进行选择时,并且当第一通信节点118的链路的一个或多个运行参数超过各自的阈值时,wan控制器节点126可以不将所述链路114包括在发送到第一通信节点118的数据包传输的链路或路由114的选择中,或wan控制器节点126可以包括链路114,但是将所述链路114标识为不可用于高优先级数据包传输。各个阈值可以由wan控制器节点126定义,并且可以由其动态地调整。

替代地或额外地,当要对发送到第一通信节点118的链路或路由114进行选择时,并且当第一通信节点118的链路的一个或多个运行参数超过特定业务类型的相应阈值时,wan控制器节点126可以不将所述链路114包括在发送到第一通信节点118的特定类型业务的数据包传输的链路或路由114的选择中,或者wan控制器节点126可以包括链路114,但是将所述链路114标识为不可用于特定业务类型的高优先级数据包传输。

在上述任何情况下,链路114的一个或多个运行参数可以包括抖动、延迟和丢包率中的任意一个或任意组合。

仅举例来说,对于实时业务如视频和音频流媒体业务,链路的运行参数的相应阈值可包括:抖动阈值5ms;延迟阈值100ms;丢包率为1%。

同样,仅作为示例,对于事务性(transactional):请求-应答业务(rpc、http、dns),链路的运行参数的相应阈值可以包括:抖动阈值10ms;延迟阈值150ms;丢包率2%。

同样,仅作为示例,对于批量(bulk):网络备份业务(networkbackuptraffic,ftp),链路的运行参数的相应阈值可以包括:抖动阈值15ms;延迟阈值200ms;丢包率3%。

优选的是,wan控制器节点126为wan100中的通信节点118、120动态选择相应的链路或路由114。参考图6,图6显示了为通信节点118、120动态选择相应链路或路由114的方法160。在第一初始步骤162,wan控制器节点126已从wan100中的通信节点118、120接收到拓扑和/或运行数据,已处理所述数据并将各自的选择传达给通信节点118、120。在判定步骤164,wan控制器节点126处理从通信节点118、120新接收的拓扑和/或运行数据,以确定自接收到已处理数据以来是否发生了任何变化。如果在判定步骤164,确定新接收的数据与上一次先前处理的数据相比,没有发生变化,则wan控制器节点126维持先前确定的各自选择的链路或路由114。但是如果在判定步骤164,wan控制器节点126确定数据发生了改变,则在步骤166计算或确定通信节点118、120的链路或路由114的新的各自选择。在步骤168,wan控制器节点126将新的各自选择的链路或路由114发送给相应的通信节点118、120。在步骤170,通信节点118、120使用新的各自选择的链路或路由114,来选择已经在所述新的各自选择的链路或路由114上建立的sctp关联150,用于将有效负载数据包传输到wan100中的任何目标节点或设备124。

参照图7,图7的信号图显示了本发明方法如何减少跨wan100的连接建立时间。

在图7所示的示例中,信号组1为每个ipsecvpn隧道连接148建立sctp关联150。

在第一通信节点118,信号组2从路由表147(图4)中选择sctp关联150。第一通信节点118可以根据优先级从路由表147中选择sctp关联150。路由表147中的sctp关联150的优先级由wan控制器节点126提供给第一通信节点118,并且可以在wan控制器节点126向通信节点118、120同时提供各自选择的路由和链路114。此外,作为信号组2的一部分,第一通信节点118从源pc122接收或接受传入的tcp分组连接152,然后在选定的sctp关联150上为tcp分组连接152分配一个或多个sctp流,并记录选定的sctp关联150到传入的tcp分组连接152的映射。此后,第一通信节点118通过选定的sctp关联150向第二通信节点120发送定制的sctptpsync消息。该映射在数据平面中进行并存储在代理模块140中。

在第二通信节点120处,信号组3从第二通信节点120开始,第二通信节点120在从第一通信节点118的所选sctp关联150上接收到定制的sctptpsync消息之后,发起到目标节点或目标设备(如目标pc124)的本地tcp连接154。第二通信节点120记录本地tcp连接154到所选sctp关联150的映射。

信号组4开始于第一通信节点118从传入tcp连接152接收tcp有效载荷数据包,并且向源pc122发送ack信号。然后,第一通信节点118将接收到的封装在一个或多个sctp内的tcp有效载荷数据包,在选定的sctp关联150上传送给第二通信节点120。

信号组5开始于源pc122关闭tcp连接152,由此第一通信节点118向第二通信节点120发送定制的sctptpfin消息。然后,第一通信节点118释放先前分配给第二通信节点120的一个或多个sctp流,并从其路由表147中清除映射。

信号组6开始于第二通信节点120接收定制的sctptpfin消息,并作为响应,关闭到目标pc124的本地tcp连接154。然后,第二通信节点120清除该连接的映射。

从图7可以看出,由此示出的信令消除了为建立有效载荷分组连接的跨wan100的tcp三向握手过程的需要,并且还允许跨wan100的有效载荷分组连接在源pc122建立到第一通信节点118的传入(本地)tcp连接152之前被启动。因此,根据本发明方法建立跨wan100的有效载荷分组连接的建立时间明显少于跨wan100的使用tcp三向握手过程的建立时间。

图8进一步显示了本发明方法如何减少跨wan100的连接建立时间。在组织“站点1”112位于香港而组织“站点2”116位于旧金山的情况下,在此示例中,信号组1的tcp连接建立时间约为0.221ms。信号组2的ipsecvpn隧道上定制的sctptpsync消息和http请求传输时间约为164ms。信号组3的tcp服务器设置和http响应时间约为0.237ms。信号组4的ipsecvpn隧道上的http响应传输时间约为164ms。源pc122的http结果传输时间约为0.062毫秒。因此,信号组1至5的连接建立时间的总和约为328.52毫秒,而不是像相同距离的tcp三向握手情况的640毫秒。信号组1至5的连接建立时间约为328.52毫秒,是每个信号从使用curl命令发送到tcp数据包到服务器所需的时间。在此需要注意的是,来自传入tcp分组连接152的tcp有效载荷数据包可以在信号组1信号被处理之后立即传输,而在跨wan100上通过tcp三向握手过程的方式使用tcp信令时,需要等待三向握手完成。

参照图9,提供了根据本发明的wan配置的另一实施例。图9所示的wan配置仍然是简化的配置,但比图2更能代表实际的wan配置。

图9的wan200包括三个地理上隔开的站点,包括“站点a”210,“站点b”230和“站点c”250。站点210、230、250通过ipsecvpn隧道202、204、206互连各个枢纽站点而互连。每个站点还与一个控制器208通信连接。

站点a210包括枢纽站点a1212、第一分支站点a2214、第二分支站点a3216、和由pc218呈现的多个通信设备。由pc218呈现的多个通信设备通过局域网(lan)连接220分别连接到各个分支站点。第一和第二分支站点214、216分别通过各自的ipsecvpn隧道222、224连接到枢纽站点a1212。第一、第二分支站点214、216通过ipsecvpn隧道226互连。枢纽站点a1212和第一、第二分支站点214、216的连接配置包括为组织站点a210定义的“配置文件a”。

站点b230包括枢纽站点b1232、第一分支站点b2234、第二分支站点b3236、和多个通信设备(未示出)。第一和第二分支站点234、236分别通过各自的ipsecvpn隧道连接到枢纽站点b1232。枢纽站点b1232和第一、第二分支站点234、236的连接配置包括为组织站点b230定义的“配置文件b”。

站点c250包括枢纽站点c1252、第一分支站点c2254、第二分支站点c3256、和由pc258呈现的多个通信设备。由pc258呈现的多个通信设备通过局域网(lan)连接各个分支站点。第一和第二分支站点254、256中每一个都通过各自的ipsecvpn隧道连接到枢纽站点c1252。枢纽站点c1252和第一、第二分支站点254、256的连接配置包括为组织站点c250定义的“配置文件c”。

本发明方法的增强包括使用控制器208来帮助包括节点212、232、252在内的所有通信节点使用基于预定义的配置文件a、b、c的自动vpn过程来自动建立ipsecvpn隧道连接。在这种情况下,控制器208和包括节点212、232、252在内的所有通信节点能够执行自动vpn建立过程。控制器208可以被设置以从连接到wan200的数据库(未示出)接收站点配置,即预定义的配置文件a、b、c,并利用该预定义配置文件a、b、c以及由通信节点212、232、252周期性报告的拓扑和/或运行参数,为所述通信节点212、232、252动态确定新的各自选择的链路或路由114,并将所述新的动态确定的各自选择的链路114发送到所述通信节点212、232、252。

wan200可以被布置成,在从控制器208接收到新的ipsec规则时,每个站点上的autovpn策略将启动与其他“对等”站点的ipsecvpn隧道建立,并且每个站点上的互联网密钥交换(internetkeyexchange,ike)过程将启动与其他“对等”站点的ike程序。

更概括地,在本发明方法中,通信节点的代理模块被布置成接收来自同一节点的数据平面的tcp连接建立请求(tcpsyn),并在连接建立请求中的tcp连接信息中代表tcp服务器执行tcp端点功能,包括服务器ip和端口。代理功能提供连接建立、连接终止和可靠的数据传输。在接收到tcp数据包时,数据平面会找到tcp目标地址的路由条目,并记录ipsecvpn隧道的映射,然后将需要加速的tcp数据包转发到同一节点上的面向流的传输层协议代理模块(tp)功能或代理模块。在接收到tcp连接建立请求时,tp功能将使用ipsecvpn隧道和所选的sctp关联(连接)的映射,并为此tcp连接分配一个空闲流,然后将tcp连接建立请求和tcp连接信息同步到目标通信节点上的tp功能或代理模块。

在接收到传入的tcp连接请求(定制的sctptpsync)时,代理模块代表原tcp客户端和tcp连接的发起者处理tcp连接建立的后续步骤。对于从另一个代理模块同步而来的任何传入连接,该方法可以包括使用接收到的tcp连接信息构造有一个tcp连接建立请求(syn),并直接处理与tcp服务器建立tcp连接的后续步骤。在通过wan网络传输到另一个站点上的另一个代理模块时,该方法为tcp有效载荷提供可靠的数据传输。可靠的传输可保证tcp数据有效载荷的完整性和顺序性。

从上述内容可以理解,根据本发明的方法不需要将新硬件添加到已经实施的wan配置中。本发明方法可以在现有wan配置中通过升级wan中现有通信节点和其他节点上的软件、固件、机器代码等来实现。因此,本发明代表了一种显着升级现有wan配置的低成本手段。

上述装置至少可以部分地以软件实现。本领域技术人员将理解,上述装置至少可以部分地使用通用计算机设备或使用定制设备来实现。

这里,本文所述方法和装置的各方面可以在包括通信系统的任何装置上执行。可以将技术的程序方面视为“产品”或“制品”,通常是以承载或体现在一种机器可读介质上的可执行代码和/或相关数据的形式存在。“存储”类型的介质包括移动台、计算机、处理器等,或其相关模块,例如各种半导体存储器、磁带驱动器、磁盘驱动器等,它们可以在任何时候为软件编程提供存储。软件的全部或部分有时可通过internet或各种其他电信网络进行通信。例如,这种通信可以使软件从一台计算机或处理器加载到另一台计算机或处理器中。因此,可以承载软件元素的另一种类型的介质包括光波、电波和电磁波,例如在本地设备之间的物理接口、通过有线和光固话网络以及通过各种空中链路。携带这种波的物理元件,诸如有线或无线链路、光链路等,可以被视为承载软件的介质。如本文所使用的,除非限于有形的非暂时性“存储”介质,否则诸如计算机或机器“可读介质”的术语是指参与向处理器提供指令以供执行的任何介质。

尽管已经在附图和前述描述中详细说明和描述了本发明,但是本发明应被认为是示例性的,而不是限制性的,应理解,已经示出和描述的只是示例性的实施例,并不以任何方式限制本发明的范围。可以理解的是,本文描述的任何特征可以与任何实施例一起使用。说明性实施例并不彼此排斥,也不排斥本文未列举的其他实施例。因此,本发明还提供了包括上述一个或多个说明性实施例的组合的实施例。在不脱离本发明的精神和范围的情况下,可以对本文所述发明进行修改和变型,因此,只应施加如所附权利要求书所示的限制。

在所附权利要求书和本发明的先前描述中,除非由于明确的语言或必要的暗示,上下文另有要求,否则“包括”一词或诸如“包含”或“包含”的变体是以包容性含义使用的,即指明所述特征的存在,但不排除在本发明的各种实施例中存在或增加进一步的特征。

应当理解的是,如果在本文中提及任何现有技术出版物,这种提及并不构成承认该出版物构成了本领域公知常识的一部分。

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