针对符合条件的包通过隧道传输和接收数据的方法和系统与流程

专利2022-06-29  101


本申请是申请号为201480079776.5、名称为“用于针对符合一个或多个条件的包通过一个或多个隧道传输和接收数据的方法和系统”的发明专利申请的分案申请。

本发明总体而言涉及计算机网络的领域。更确切地说,本发明涉及一种由第一节点执行的用于主要通过第一隧道组将数据传输到第二节点以及主要通过第二隧道组从第二节点接收数据的方法。



背景技术:

因特网服务提供商可以通过地球同步卫星向用户提供卫星因特网服务,地球同步卫星可以提供高数据吞吐量。除了高吞吐量之外,与当代可用的其它无线网络相比,卫星网络的覆盖区域也非常大。卫星网络通常在其它无线网络不可用的多个农村地区提供覆盖。然而,与其它无线通信相比,卫星通信由于数据必须行进长距离到达地球同步卫星而具有较高时延。尽管卫星通信为下行链路数据提供非常高的性能,但是对上行链路数据而言通过卫星的通信性能可能并不令人满意,尤其在一次从多个装置(即,从因特网服务提供商的客户)完成上行链路的情况下。

标题为“使用直播卫星的联网(networkingusingdirectbroadcastsatellite)”的论文(文卡塔·帕德马纳班(venkatapad-manabhan)、哈利·巴拉(haribalakrishnan)、凯斯·斯科洛(keithsklower)、艾伦·阿米尔(elanamir)和兰迪·h·卡茨(randyh.katz)。使用直播卫星的联网。在关于基于卫星的服务的第一届国际研讨会的会刊中,赖伊(rye),伯克利加利福尼亚大学,1996年11月,纽约)展示联网架构,其中地球同步卫星直接广播到用户端,同时从用户端到因特网的去话话务在slip/ppp线上发送。此论文详细解释了不对称的路由技术。存在用于将包从用户发送到因特网的两个选项。在第一选项中,包被封装且使用dbs源地址在slip线上发送。在第二选项中,使用基于归属代理的路由。

当通过卫星网络接入因特网时用户可以享用高下行带宽。然而,为了将包传输到通过因特网可接入的主机或节点,除卫星网络之外使用无线网络可以提供较低时延并且可以是具有经济效益的。对于使用面向连接的协议的数据会话,需要这样的技术:其自动地使用户能够使用用于下行链路的卫星网络和用于上行链路的另一无线或有线网络,同时考虑不对称带宽和不对称时延。



技术实现要素:

本发明的实施例总体来说描述通过一个或多个隧道彼此通信的第一节点和第二节点。

根据本发明的实施例中的一者,第一节点从局域网(lan)接口接收包并检测所述包。接着第一节点确定所述包是否符合至少一个包条件。若所述包符合至少一个包条件,则第一节点通过第一隧道传输所述包。若所述包不符合至少一个包条件,则第一节点通过第二隧道传输所述包。

根据本发明的实施例中的一者,第一隧道是在第一节点接收包之前建立的预定义隧道。

根据本发明的实施例中的一者,第一隧道是单向的。

根据本发明的实施例中的一者,第一节点在检测包之后确定所述包是否属于任何会话。若所述包不属于任何会话,则第一节点确定所述包是否符合至少一个包条件,并且若所述包符合至少一个包条件则通过第一隧道传输所述包,以及若所述包不符合至少一个包条件则通过第二隧道传输所述包。若所述包确实属于一个会话,则第一节点确定是否已经为所述会话指派了所指派隧道。若已经为所述会话指派了所指派隧道,则第一节点通过所述所指派隧道传输所述包。若并未为所述会话指派所指派隧道,则第一节点确定所述会话是否符合至少一个会话条件。若所述会话符合至少一个会话条件,则第一节点通过第三隧道传输所述包。若所述会话不符合至少一个会话条件,则第一节点通过第四隧道传输所述包。

根据本发明的实施例中的一者,第三隧道是预定义隧道。可以在第一节点接收包之前建立第三隧道。

根据本发明的实施例中的一者,第一隧道与第三隧道相同。

根据本发明的实施例中的一者,第三隧道是单向的。

根据本发明的实施例中的一者,第四隧道属于第一隧道组或第二隧道组。类似地,第三隧道也属于第一隧道组或第二隧道组。

在附图和以下描述中阐述本发明的一个或多个实施例的细节。本发明的其它特征、目标和优势将从所述描述和图示以及权利要求中明显。

具体实施方式

以下说明仅提供优选的示例性实施例且并不意图限制本发明的范围、适用性或配置。实际上,优选的示例性实施例的以下说明将为所属领域的技术人员提供实施本发明的优选的示例性实施例的有利描述。应理解,在不脱离如在所附权利要求书中阐述的本发明的精神和范围的情况下可以对元件的功能和布置进行各种改变。

在以下描述中给出具体细节以提供对实施例的透彻理解。然而,所属领域的技术人员应理解,所述实施例可以在没有这些具体细节的情况下实践。例如,可以方块图示出电路以免以不必要的细节混淆实施例。在其它情况下,在没有不必要的细节的情况下示出熟知的电路、过程、算法、结构以及技术以便避免混淆实施例。

同样,应注意,实施例可以描述为过程,过程描绘为流程图、流程图表、数据流图、结构图或方块图。尽管流程图可将操作描述为连续过程,但许多操作可并行或同时执行。另外,可以重新布置操作的顺序。当操作完成时,过程终止,但是过程可以具有不包含在图中的另外步骤。过程可以对应于方法、功能、程序、子例程、子程序等。当过程对应于功能时,过程的终止对应于功能返回到调用功能或主功能。

实施例或其各部分可以程序指令来实施,所述程序指令可在处理单元上操作以用于执行如本文中所描述的功能和操作。构成各种实施例的程序指令可以存储于计算机可读存储介质中。

此外,如本文中所揭示,术语“计算机可读存储介质”、“主存储器”或“辅助存储装置”可以表示用于存储数据的一个或多个装置,包含只读存储器(rom)、可编程只读存储器(prom)、可擦除可编程只读存储器(eprom)、随机存取存储器(ram)、磁ram、磁芯存储器、软盘、软磁盘、硬盘、磁带、cd-rom、快闪存储器装置、存储卡和/或用于存储信息的其它机器可读媒体。术语“计算机可读存储介质”还可包含但不限于便携式或固定存储装置、光学存储介质、磁媒体、存储器芯片或盒式磁盘、无线信道以及能够存储、含有或携载指令和/或数据的各种其它媒体。计算机可读存储介质可以通过虚拟化来实现,且可以是虚拟计算机可读存储介质,包含在基于云的实例中的虚拟计算机可读存储介质。

如本文中所使用,术语“计算机可读存储介质”、“主存储器”或“辅助存储装置”是指参与提供指令到处理单元以用于执行的任何媒体。主存储器或辅助存储器仅是机器可读媒体的一个实例,所述机器可读媒体可以携载指令以用于实施本文中所描述的方法和/或技术中的任一者。此媒体可以采用许多形式,包含但不限于非易失性媒体、易失性媒体和传输媒体。非易失性媒体包含例如光盘或磁盘。易失性媒体包含动态存储器。传输媒体包含同轴电缆、铜线以及光纤。传输媒体还可以采用声波或光波的形式,例如在无线电波和红外线数据通信期间产生的声波或光波。

易失性存储装置可以用于在通过处理单元执行指令期间存储临时变量或其它中间信息。非易失性存储装置或静态存储装置可以用于存储处理单元的静态信息和指令以及各种系统配置参数。

计算机可读存储介质可以包含多个软件模块,所述软件模块可以实施为通过处理单元使用任何合适的计算机指令类型来执行的软件代码。软件代码可以存储为一系列指令或命令,或存储为计算机可读存储介质中的程序。

在将一个或多个指令的一个或多个序列携载到处理单元以执行时可以涉及各种形式的计算机可读存储介质。举例来说,指令可以首先携载在远程计算机的磁盘上。或者,远程计算机可以将所述指令加载到其动态存储器中,且将指令发送到运行一个或多个指令的一个或多个序列的系统。

处理单元可以是微处理器、微控制器、数字信号处理器(dsp)、那些装置的任何组合、或经配置以处理信息的任何其它电路。

处理单元执行程序指令或代码段以用于实施本发明的实施例。此外,实施例可以由硬件、软件、固件、中间件、微码、硬件描述语言或其任何组合来实施。当在软件、固件、中间件或微码中实施时,用于执行必要任务的程序指令可以存储于计算机可读存储介质中。处理单元可以通过虚拟化来实现,且可以是虚拟处理单元,包含在基于云的实例中的虚拟处理单元。

本发明的实施例涉及使用计算机系统来实施本文中所描述的技术。在实施例中,本发明的处理单元可以驻留在计算机平台等机器上。根据本发明的一个实施例,本文中所描述的技术由计算机系统执行,以响应于处理单元执行易失性存储器中所包含的一个或多个指令的一个或多个序列。此类指令可以从另一计算机可读媒体读取到易失性存储器中。对易失性存储器中所包含的指令的序列的执行使得处理单元执行本文中所描述的过程步骤。在替代实施例中,硬连线电路可以用于取代或结合软件指令来实施本发明。因此,本发明的实施例不限于硬件电路以及软件的任何具体组合。

代码段可以表示步骤、函数、子程序、程序、例程、子例程、模块、软件包、类,或指令、数据结构或程序语句的任意组合。代码段可以通过传递和/或接收信息、数据、自变量、参数或存储器内容而耦合到另一代码段或硬件电路。信息、自变量、参数、数据等可以经由包含存储器共享、消息传递、令牌传递、网络传输等任何合适的方式传递、转发或传输。

可以由节点提供的网络接口是以太网接口、帧中继接口、光纤接口、电缆接口、dsl接口、令牌环接口、串行总线接口、通用串行总线(usb)接口、火线接口、外围组件互连(pci)接口等。

网络接口可以通过独立的电子组件实施或者可以与其它电子组件整合。取决于配置,网络接口可以不具有网络连接或具有至少一个网络连接。网络接口可以是以太网接口、帧中继接口、光纤接口、电缆接口、数字订户线(dsl)接口、令牌环接口、串行总线接口、通用串行总线(usb)接口、火线接口、外围组件互连(pci)接口等。

本发明的当前优选的实施例可以利用网关。网关是执行不同类型的网络或应用之间的协议转换的装置。术语网关并不意图限于单一类型的装置,因为出于本申请案的目的,可以充当用户与网络之间的桥梁的任何装置、硬件或软件都可以被考虑为网关。网关可以与多个多网络耦合。路由器、接入点或无线接入点都可以出于本发明的目的被视为网关。

实施例或其各部分可以计算机数据信号来实施,所述计算机数据信号可以采用用于经过传输媒体进行通信的任何合适的形式,使得所述计算机数据信号是可读的以用于通过功能装置(例如,处理单元)来执行以执行本文中所描述的操作。计算机数据信号可以包含能够经过传输媒体传播的任何二进制数字电子信号,所述传输媒体例如电子网络信道、光纤、空气、电磁媒体、射频(rf)链路等,且因此数据信号可以采用电信号、光信号、射频或其它无线通信信号等形式。在某些实施例中,可经由计算机网络下载代码段,计算机网络例如因特网、企业内部网、lan、man、wan、pstn、卫星通信系统、电缆传输系统和/或类似物。

图3是根据本发明的实施例中的一者的计算机系统或网络节点(例如,节点101)的示意性方块图。节点101包括处理单元301、主存储器302、系统总线303、辅助存储器304、局域网(lan)接口122a和122b以及广域网(wan)接口121a、121b和121c。辅助存储器304和主存储器302是计算机可读存储介质。处理单元301和主存储器302彼此直接连接。系统总线303将处理单元301直接或间接连接到辅助存储器304、lan接口122a和122b以及wan接口121a、121b、121c和121d。使用系统总线303允许节点101具有增加的模块性。系统总线303将处理单元301耦合到辅助存储器304、lan接口122a和122b,以及wan接口121a、121b、121c和121d。系统总线303可以是包含存储器总线、外围总线以及使用各种总线架构中的任一者的本地总线的若干类型总线结构中的任一者。辅助存储装置304存储用于由处理单元301执行的程序指令。本发明的范围不限于具有五个网络接口的节点101,因此节点101可以具有更多网络接口。仅出于说明的目的指定lan接口122a和122b以及wan接口121a、121b、121c和121d。

图4是根据本发明的实施例中的一者的计算机系统或网络节点(例如,节点102)的示意性方块图。节点102包括处理单元401、主存储器402、系统总线403、辅助存储器404、lan接口132、wan接口131a、131b和131c。节点102的组件以与节点101的组件类似的方式彼此连接。

图5是根据本发明的实施例中的一者的计算机系统或网络节点(例如,节点702)的示意性方块图。节点702包括处理单元501、主存储器502、系统总线503、辅助存储装置504以及wan接口703。节点702的组件以与节点101的组件相似的方式彼此连接。或者,节点702也可以表示为图3或图4中的方块图,使得节点702可具有一个或多个wan接口以及一个或多个lan接口。

图1说明根据本发明的各种实施例的网络配置。节点101通过图2中所说明的四个隧道(隧道201a、201b、201c和201d)连接到节点102。lan接口122a通过互连网络117使用连接115a和115c将节点101连接到主机103a。lan接口122b使用连接115b将节点101连接到主机103b。

出于说明的目的,节点101通过wan接口121a连接到卫星网络以用于与节点102建立隧道201a。wan接口121a通过使用卫星调制解调器161与卫星网络150通信;节点102通过wan接口131a和卫星调制解调器160连接到卫星网络150以与节点101建立隧道201a。

wan接口121a与卫星网络150之间的连接和wan接口131a与卫星网络150之间的连接分别使用卫星调制解调器160和161。卫星调制解调器160和161可以具有用于分别通过连接112a和110a与卫星网络150通信的嵌入式天线或外部天线。wan接口131a和121a分别通过有线或无线连接媒体114和113分别连接到卫星调制解调器160和161。优选地,连接媒体114和113是快速有线连接媒体,例如计算机总线、通用串行总线(usb)、串行总线、并行总线、光纤、火线、雷电接口(thunderbolt)等。卫星调制解调器160也可以包含在含有节点102的壳体内,并且卫星调制解调器161可以包含在含有节点101的壳体内。或者,节点102可以包含辅助端口,卫星调制解调器160插入所述辅助端口中。卫星调制解调器160和161经配置以传输通信到卫星网络150以及从卫星网络150接收通信。卫星调制解调器160和161可以选自任何数目的可用卫星调制解调器,包含但不限于:quakeglobal公司;康泰易达公司(comtechefdata);达图姆系统公司(datumsystems);休斯网络系统公司(hughesnetworksystems);newtec公司;paradisedatacom公司;radynecomstream公司;shiron卫星通信公司(shironsatellitecommunications);ad-vantechamt公司(从前的信号处理器,spl/act、act无线);以及tsi技术公司(tsitechnology)。

同样示例性地,节点101通过wan接口121b、无线网络180和wan接口131b与节点102建立隧道201b。wan接口121b通过无线通信信道110b与无线网络180通信。类似地,wan接口131b通过无线通信信道112b与无线网络180通信。通过无线通信信道110b和112b的通信可以通过无线调制解调器或蜂窝调制解调器实现。无线网络180的大小不受限制。例如,无线网络180可以是由威瑞森(verizon)、att、中国移动或沃达丰(vodafone)操作的蜂窝网络。蜂窝网络还可以是提供无线通信服务但不拥有无线或蜂窝网络基础设施的移动虚拟网络运营商(mvno)或移动其它授权运营商(molo),mvno经由所述无线或蜂窝网络基础设施向其客户提供服务。

同样示例性地,节点101通过wan接口121c、无线网络181、互连网络171和wan接口131c与节点102建立隧道201c。wan接口121c通过无线通信信道110c与无线网络181通信。无线网络181通过互连网络171与wan接口131c通信。无线网络181的大小不受限制。例如,无线网络181可以是由威瑞森(verizon)、at&t、中国移动或沃达丰(vodafone)操作的蜂窝网络。无线网络181和互连网络171通过连接111a彼此通信。节点102通过连接112c与互连网络171通信。

无线网络180和181优选地经配置用于使用合适的数字数据传送协议进行无线数字传送,所述协议例如,高速下行链路分组接入(hsdpa)和高速上行链路分组接入(hsupa)、码分多址(cdma)、演进数据优化(evdo)、gsm演进增强数据速率(edge)、通用分组无线业务(gprs)、第三代合作伙伴项目长期演进(3gpplte)或用于经由无线电、微波或用于无线网络的频带进行无线数据传送的任何其它数字数据传送协议。在一个变体中,无线网络180和181经配置用于使用全球微波接入互操作性(wimax)、本地多点分配业务(lmds)、多信道多点分配业务(mmds)、ieee802.11技术(例如,ieee802.11a、ieee802.11b、ieee802.11g、ieee802.11n、ieee802.11ac和/或ieee802.11ad)进行无线数字传送。

wan接口121b、121c和131b可以通过使用经由蜂窝电话、蜂窝调制解调器和/或无线通信调制解调器的连接来实现。例如3gpplte调制解调器的蜂窝调制解调器能够与一个或多个蜂窝网络通信。蜂窝调制解调器可以是嵌入式蜂窝调制解调器或外部蜂窝调制解调器。

连接110a、112a、112c、111a、111b、115a、115b和116可以通过使用任何类型的有线或无线连接媒体来实现。例如,有线连接媒体可以包含以太网、光纤信道、数字订户回路、电缆调制解调器、帧中继、令牌环、串行总线、usb、火线、pci等。无线连接媒体可以包含无线链路,例如,wi-fitm;使用无线通信协议的无线连接,例如,ieee802.11(无线以太网);蓝牙等。

互连网络117、171和172可以是公共互连网络(例如,因特网)、私有互连网络或混合公共和私有互连网络。例如,互连网络117和172均可以是通过隧道201a、201b、201c和201d连接在一起的局域网(lan)。在另一实例中,互连网络117是lan且互连网络172是因特网,使得节点102作为用于互连网络117的网关执行以通过隧道201a、201b、201c和201d的至少隧道与因特网通信。

在两个网络之间建立隧道,例如,隧道201a、201b、201c和201d。通过隧道,来自两个不同网络的主机可以如在相同网络中(如在相同ip子网中)一样进行通信。例如,隧道可以使用安全套接层(ssl)、l2tp、互联网协议安全(ipsec)和ssl、ipsec和二层隧道协议(l2tp)或点到点隧道协议(pptp)来实施。可以在例如wan接口121c和131c的两个网络接口之间建立一个或多个隧道。因此,可以存在将在节点101与节点102之间建立的超过四个隧道,即,隧道201a、201b、201c和201d。例如,若无线网络180可以与互连网络171通信,则wan接口121b还可以与wan接口131c建立另一隧道。

数据可以存储于数据包的有效负载中。节点101将数据包封装在封装包中,并且随后通过一个或多个隧道将封装包传输到节点102。当节点102接收到封装包时,节点102对所述封装包进行解封装以检索数据包。封装包可以分配在多个隧道(即,隧道201a、201b、201c和201d)之中。

类似地,当节点102需要将数据包传输到节点时,节点102首先将数据包封装在封装包中,并且随后通过一个或多个隧道将封装包传输到节点101。当节点101接收到封装包时,节点101对所述封装包进行解封装以检索数据包。

所属领域的技术人员将了解,隧道实现数据从相同或不同协议的数据报内的一种类型的协议的封装。所属领域的技术人员还将了解,隧道可以用于实施虚拟专用网络(vpn)。在一个变体中,节点101与102之间的隧道经聚合以形成聚合的隧道或聚合的vpn连接。例如,隧道201a、201b和201c经聚合以形成一个聚合的vpn连接。聚合的vpn连接例如使属于一个tcp会话的数据包能够通过隧道201a、201b和201c传输和接收,以利用连接到wan接口121a、121b和121c的网络的可用性。

所属领域的技术人员将了解,存在用于聚合多个隧道以形成一个聚合的隧道或连接的多个方法。在2009年12月23日提交的发明名称为“绑定的可变带宽连接的吞吐量优化(throughputoptimizationforbondedvariablebandwidthconnections)”的第12/646,774号美国专利申请案中揭示了所述方法之一。

根据本发明的实施例中的一者,当第一节点与第二节点形成至少两个隧道组时,隧道组中的一个主要用于将数据包从第一节点传输到第二节点,并且另一隧道组主要用于从第二节点接收数据包。在每个隧道组中,可以存在一个或多个隧道。由于存在至少两个隧道组并且每个隧道组具有至少一个隧道,因此在第一节点与第二节点之间存在建立的至少两个隧道。通过第一节点的网络接口中的两个网络接口和第二节点的至少一个网络接口建立所述至少两个隧道。在一个变型例中,第二节点可以作为用于第一节点的网关执行。在一个变型例中,当隧道组主要用于将数据包从第一节点传输到第二节点时,不存在通过所述隧道组从第二节点传输到第一节点的数据包。在一个变型例中,当隧道组主要用于将数据包从第一节点传输到第二节点时,存在通过所述隧道组从第二节点传输到第一节点的少量包,因为那些包用于管理所述隧道组,例如,传输健康检查包、建立隧道组中的隧道中的一者以及发送状态信息。在一个变型例中,当隧道组主要用于通过第一节点从第二节点接收数据包时,不存在通过所述隧道组由第一节点传输到第二节点的数据包。在一个变型例中,当隧道组主要用于通过第一节点从第二节点接收数据包时,存在通过所述隧道组从第一节点传输到第二节点的少量包,因为那些包用于管理所述隧道组,例如,传输健康检查包、建立隧道组中的隧道中的一者以及发送状态信息。

示例性地,第一节点是节点101且第二节点是节点102;第一隧道组包括隧道201b和201c;且第二隧道组包括隧道201a和201d。第一隧道组用于将数据包从节点101传输到节点102,而第二隧道组用于将数据包从节点102传输到节点101。因此,节点102可以作为用于节点101和连接到节点101的网络(例如,网络117)、主机103a和主机103b的网关执行与互连网络172通信。此外,由于第一隧道组中的隧道数目可以为超过一个,因此节点101可以使用第一隧道组中的多个隧道来将数据包传输到节点102。当节点102通过第一隧道组的一个或多个隧道接收到数据包时,节点102在将所述包传输到互连网络172之前重新排序所述包(必要时)。类似地,在另一实例中,由于第二隧道组中的隧道数目可以为超过一个,因此节点102可以使用第二隧道组中的多个隧道来将数据包传输到节点101。当互连网络172中的主机将包发送到主机103a时,节点102通过第二隧道组中的一个或多个隧道将所述包发送到节点101。随后节点101通过互连网络117将所述包发送到节点103a。

类似地,由于第二隧道组中的隧道数目可以为超过一个,因此节点102可以使用第二隧道组中的多个隧道来传输数据包。在一个变型例中,数据包属于一个会话且节点101在将所述包传输到互连网络117或主机103b之前重新排序所述包。所属领域的技术人员将了解,存在使用多个网络接口来传输属于相同会话的数据包的多种方法。

根据本发明的实施例中的一者,当隧道用于将数据包从节点101传输到节点102时,所述隧道并不用于将数据包从节点102传输到节点101。例如,当隧道201b用于将数据包从节点101传输到节点102时,隧道201b并不用于将数据包从节点102传输到节点101。为了节点102将数据包传输到101,必须使用其它隧道(例如,隧道201a、隧道201c或/和201d)中的一个或多个。隧道管理消息由节点101发送以指示节点102不使用隧道201b来将数据包传输到节点101。在一个变型例中,节点102可以拒绝由节点101发送的指令。拒绝指令的能力允许节点101和102的管理员具有适应变化的网络环境的更多灵活性。在一个变型例中,节点102仍可以通过隧道201b将数据包的一部分传输到节点101并且所述部分可以由节点102的管理员、节点102的管理员预配置和/或在节点101与节点102之间协商。

在一个变型例中,当隧道用于将数据包从节点101传输到节点102时,在节点101处建立隧道的对应wan接口并不用于从节点102接收数据包。例如,当隧道201b用于将数据包从节点101传输到节点102时,wan接口121b并不用于从节点102接收数据包。在一个变型例中,当隧道用于从节点102到节点101接收数据包时,在节点101处建立隧道的对应wan接口并不用于向节点102传输数据包。例如,当隧道201a用于从节点102到节点101接收数据包时,wan接口121a并不用于向节点101传输数据包。可存在具有仅用于传输或接收数据包的wan接口的多个原因,包含wan接口是半双工,连接到wan接口的连接的网络性能不对称,通过连接到wan接口的连接传输或接收数据包的成本不对称等。

根据本发明的实施例中的一者,节点101将隧道管理消息传输到节点102以用于管理一个或多个隧道。因此,隧道管理消息的使用还包含:告知节点102隧道所属的组;告知节点102如何使用隧道;告知节点102何时通过特定隧道或隧道组传输数据包。在一个变型例中,节点101从节点102接收用于管理一个或多个隧道的隧道管理消息。因此,隧道管理消息的使用还包含:告知节点101隧道所属的组;告知节点101如何使用隧道;告知节点101何时通过特定隧道或隧道组传输数据包。

隧道管理消息包括隧道标识字段和指令字段。例如,仅示例性地,第一隧道和第三隧道属于第一隧道组,而第二隧道属于第二隧道组。在此情况下,隧道标识字段包括第一隧道、第二隧道和第三隧道的标识,且指令字段包括第一隧道和第三隧道属于第一隧道组而第二隧道属于第二隧道组的信息。因此,在接收到隧道管理消息之后,节点102可以期望数据包通过第一和第三隧道到达,并且不使用第一和第三隧道来将数据包传输到节点101,同时仅通过第二隧道将数据包传输到节点101。可以在将建立隧道时、建立隧道时或已建立隧道后发送隧道管理消息。在另一实例中,隧道管理消息包括帮助节点102识别指令字段中的隧道和对应隧道组以及隧道标识字段中的对应隧道的标识的信息。不存在隧道消息仅可以由节点101发送的限制,因此节点102也可以发送隧道消息。例如,隧道消息可以包括隧道201a和201b属于第一隧道组且隧道201c和201d属于第二隧道组的信息。在一个变型例中,隧道管理消息还包括指示隧道组是用于传输和接收两者还是仅用于传输或仅用于接收的指示符。例如,指示符指示出第一隧道组仅用于传输且第二隧道组用于传输和接收两者。

指示符可以由位、多个位、字节、多个字节、字符串、多个字符串、xml消息等表示。所属领域的技术人员将了解,存在用于表示指示符的多种方法。

在一个变型例中,聚合第一隧道组的一个或多个隧道和第二隧道组的一个或多个隧道以形成一个聚合的隧道。当节点101通过聚合的隧道将数据包传输到节点102时,节点101使用第一隧道组来传输数据包。由于隧道201a和201b属于第一隧道组,因此节点101通过隧道201a和201b将数据包传输到节点102。当节点102通过聚合的隧道将数据包传输到节点101时,如通过隧道管理消息指示,节点102使用第二隧道组来传输数据包。由于隧道201c和201d属于第二隧道组,因此节点102通过隧道201c和201d将数据包传输到节点101。隧道管理消息还可以用于管理聚合的隧道。例如,当将隧道添加到第一隧道组时,节点101将聚合的隧道中存在再多一个隧道的隧道管理消息发送到节点102。

根据本发明的实施例中的一者,隧道管理消息包括用于指示隧道是用于传输和接收两者,还是仅用于传输或仅用于接收的指令字段中的指示符。例如,示例性地,隧道201a仅用于节点101从节点102接收数据包;隧道201b、201c和201d仅用于节点101将数据包传输到节点102。因此,指示符指示隧道201a仅用于接收数据包且隧道201b、201c和201d仅用于传输数据包。节点102随后根据隧道管理消息中的信息通过隧道201a将数据包传输到节点101且通过隧道201a、201b和201c从节点102接收数据。

在一个变型例中,隧道管理消息包括隧道的状态信息。状态信息可以是存储于指令字段中的信息的一部分。在一个变型例中,隧道管理消息还包括状态字段。状态字段用于保存隧道的状态的信息。例如,当节点101关于隧道的状态更新节点102时,节点101将具有状态字段中的隧道状态的隧道管理消息发送到节点102。隧道标识字段保存对应隧道的标识。在此情况下,指令字段可以是空的,因为隧道管理消息用于状态报告的目的。

在一个变型例中,隧道可以由节点101用于将数据包传输到节点102以及从节点102接收数据包。因此,隧道管理消息中的指示符示出隧道可以用于传输和接收两者。在一个变型例中,示例性地,隧道优选地由节点101用于将数据包传输到节点102并且并不优选地由节点101用于从节点102接收数据包,即使隧道能够进行传输和接收。因此,隧道管理消息中的指示符示出对应偏好。类似地,示例性地,另一隧道优选地由节点102用于将数据包传输到节点101且并不优选地由节点102用于从节点101接收数据包,即使隧道能够进行传输和接收。因此,隧道管理消息中的指示符示出另一隧道的对应偏好。

在一个变型例中,第一隧道组包括连接到一个或多个网络的一个或多个隧道,并且每个网络应具有小于150毫秒的时延。当网络时延限于小于150毫秒时,网络被视为高速网络。更重要的是,150毫秒网络时延低于卫星通信的常见网络时延。当第一隧道组的网络时延超过150毫秒时,对于节点101使用第一隧道组来将数据包传输到节点102的优点变得不显而易见,因为若第二隧道组连接到一个或多个卫星连接,则第一隧道组的网络时延并不会显著优于第二隧道组的网络时延。在此情况下,隧道管理消息由节点101和节点102中的任一者或两者发送到另一节点,所述隧道管理消息为:最初仅用于接收的隧道组随后可以用于接收和传输两者,或最初仅用于传输的隧道组随后可以用于接收和传输两者。时延的值可以基于针对隧道组中的每个隧道观察到的时延的平均值、最大值、最小值或其它统计运算来确定。

在一个变型例中,当第一隧道组具有超过一个隧道时,节点101一次仅使用第一隧道组的一个隧道来将数据传输到节点102。所述隧道根据预定义标准(例如,网络时延、弃包率、带宽、价格、信号强度等)选自第一隧道组中的隧道。预定义标准由节点101的管理员通过web接口、命令行、系统控制台和/或任何其它数据输入机构输入。或者,通过因特网连接、企业内部网连接或sms将预定义标准从远程服务器发送到节点101。预定义标准可以储存于节点101的存储介质中,例如,辅助存储器304或主存储器302。在一个变型例中,预定义标准首先从远程主机检索到且随后存储于节点101的存储介质中,例如,辅助存储器304或主存储器302。在一个变型例中,当第一隧道组具有超过一个隧道时,节点101使用链路负载均衡技术将数据包传输到节点102。

在实施例中的一者中,当满足第一条件时,节点101使用第二隧道组来传输数据。例如,当节点101不能够使用第一隧道组来将数据传输到节点102或第一隧道组的性能变得不可接受时,满足第一条件且节点101使用第二隧道组来传输数据。在实施例中的一者中,当满足第二条件时,节点101使用第一隧道组来接收数据。例如,当节点101不能够使用第二隧道组来从节点102接收数据或第二隧道组的性能变得不可接受时,满足第二条件且节点101使用第一隧道组来接收数据。条件的使用允许隧道组可以在隧道组或另一隧道组的状态或网络性能变化时重新配置的灵活性。

第一和第二条件基于以下标准中的至少一者:覆盖范围、性能、通信量拥挤和时延敏感度。例如,当第一条件基于覆盖范围时,当节点101的位置在第一隧道组所连接到的一个或多个网络的覆盖范围之外时满足第一条件。当满足所述条件时,节点101无法使用第一隧道组来传输数据,并且因此节点101使用第二隧道组来传输数据。在另一实例中,第二条件基于覆盖范围,且当节点101的位置在第二隧道组所连接到的一个或多个网络的覆盖范围之外时满足第二条件。当满足第二条件时,节点101无法使用第二隧道组来接收数据,并且因此节点101使用第一隧道组来接收数据。

针对节点101在网络的覆盖范围之外存在多个原因。例如,当第一隧道组中的一个或多个隧道连接到不提供特定国家或区域外的覆盖范围的蜂窝网络时,当节点101移动出特定国家或区域时节点101变为在蜂窝网络的覆盖范围之外。使用漫游服务可能在一些情形中不具有经济效益,并且因此节点101开始使用第二隧道组来传输数据。在另一实例中,节点101可能取决于其位置(例如,当其在室外移动时或当其在室内移动时)而失去第二隧道组所连接到的一个或多个网络的覆盖。第二隧道组包括通过卫星网络150建立的隧道201a。当卫星调制解调器161在室内移动并且不指向天空时,节点101可能不能够通过属于第二隧道组的隧道201a从卫星接收数据,随后节点101使用第一隧道组从节点102接收数据。

在另一实例中,第一条件基于性能且当由通过第一隧道组传输或接收的数据经历的性能变得非常差且不符合要求时满足第一条件。例如,当满足第一条件时,节点101开始使用第二隧道组来传输数据。在另一实例中,第二条件基于性能且当由通过第二隧道组接收的数据经历的性能变得非常差时满足所述第二条件。例如,当满足第二条件时,节点101开始使用第一隧道组来接收数据。

在另一实例中,当第一条件基于时延敏感度时,当数据传送为时延不敏感时满足所述第一条件。当数据传送为时延不敏感时,其可以使用具有高时延的隧道。因此,当满足第一条件且数据传送为时延不敏感时,节点101可以使用第二隧道组来传输数据,因为第二隧道组的高时延对于时延不敏感的数据传送而言是可接受的。当隧道201a处于第二隧道组中时,第二隧道组可以在传输数据时具有高时延,因为例如,隧道201a通过卫星网络150建立。或者,当第二条件基于时延敏感度且从节点102到节点101的数据传送为时延敏感的时,节点101使用第一隧道组来从节点102接收数据。当数据传送为时延敏感的时,优选地使用具有低时延的隧道。例如,传送的数据由实时音频转换应用产生且在传输或接收数据时的任何时延都将使音频转换难以被监听到。包括隧道201a的第二隧道组可以比第一隧道组具有更高时延。因此,第一隧道组由节点101用于从节点102接收属于时延敏感数据传送的数据。

可以存在一个或多个第一条件和一个或多个第二条件。第一条件和第二条件可以或可以不基于相同标准。条件可以基于一或多个标准。

根据实施例中的一者,当隧道组具有超过一个隧道时,第一隧道组的网络时延是超过一个隧道的时延的平均时延、最大时延、最小时延或时延差异。例如,当第一隧道组的网络时延用于确定第一隧道组是否应用于传输数据时,那么所述确定基于属于第一隧道组的超过一个隧道的时延的平均时延、最大时延、最小时延或时延差异。

在另一实例中,当第二隧道组的网络时延用于确定第二隧道组是否应用于接收数据时,那么所述确定基于属于第二隧道组的超过一个隧道的时延的平均时延、最大时延、最小时延或时延差异。节点101和/或节点102的管理员可以确定适合其要求的时延种类。

在本发明的实施例中的一者中,处理单元301基于性能标准确定第一隧道组是否应用于传输数据。性能标准选自包括以下项的群组:包延迟、带宽、吞吐量、丢包、弃包、功率消耗和信噪比、往返时间、干扰电平、差错率、服务质量、排队延迟以及包抖动。在一个变型例中,阈值预定义用于选定性能标准,并且当不符合阈值时,处理单元301确定使用第二隧道组来传输数据。处理单元301保持监视第一隧道组中的隧道的性能,以便确定是否符合阈值。

在实施例中的一者中,处理单元301基于性能标准确定第二隧道组是否应用于接收数据。性能标准选自包括以下项的群组:网络时延、响应时间、包延迟、带宽、吞吐量、丢包、弃包、功率消耗和信噪比、往返时间、干扰电平、差错率、服务质量、排队延迟以及包抖动。在一个变型例中,阈值预定义用于选定性能标准,并且当不符合阈值时,处理单元301确定使用第一隧道组来接收数据。处理单元301保持监视第二隧道组中的隧道的性能,以便确定是否符合阈值。

在本发明的实施例中的一者中,处理单元301基于一个或多个性能标准选择第一隧道组和第二隧道组的隧道。性能标准选自包括以下项的群组:网络时延、响应时间、包延迟、带宽、吞吐量、丢包、弃包、功率消耗、信噪比、往返时间、干扰电平、差错率、服务质量、排队延迟、使用价格、位置和包抖动。在一个变型例中,阈值预定义用于对应于第一隧道组的选定性能标准和对应于第二隧道组的选定性能标准。例如,处理单元301确定隧道201b是否符合用于对应于第一隧道组的选定性能标准的阈值。若隧道201b符合用于对应于第一隧道组的选定性能标准的阈值,则隧道201b属于第一隧道组。类似地,处理单元301确定隧道201a是否符合用于对应于第二隧道组的选定性能标准的阈值。若隧道201a符合用于对应于第二隧道组的选定性能标准的阈值,则隧道201a属于第二隧道组。用于选择第一隧道组的隧道的性能标准以及用于选择第二隧道组的隧道的性能标准可以相同或可以不相同。

若隧道的性能不满足隧道组的性能标准,那么所述隧道可能不属于任何隧道组。

在本发明的实施例中的一者中,处理单元301保持监视属于第一隧道组和第二隧道组的隧道中的每一者的性能。例如,隧道201b和隧道201c属于第一隧道组。对应于第一隧道组的选定性能标准是网络时延和吞吐量。针对网络时延定义的阈值是150毫秒,因此隧道所连接到的网络的网络时延必须小于150毫秒。针对吞吐量的阈值是20mbps,因此通过隧道的数据传输的吞吐量大体上应等于或大于20mbps。处理单元301周期性地确定隧道201b是否符合网络时延和吞吐量的阈值。若隧道201b所连接到的网络的网络时延变成明显超过150毫秒,则处理单元301从第一隧道组移除隧道201b,因为隧道201b不符合阈值。类似地,若通过隧道201b的数据传输的吞吐量大体上变为小于20mbps,则处理单元301从第一隧道组移除隧道201b,因为隧道201b不符合阈值。在一个变型例中,隧道201b应满足这两个性能标准的阈值以保留在第一隧道组中。或者,隧道201b应符合性能标准中的至少一者的阈值以保留在第一隧道组中。在一个变型例中,在预定义时间周期内,处理单元301确定仅在隧道201b尚未符合性能标准的阈值时从第一隧道组移除隧道201b。例如,处理单元301周期性地确定隧道201b是否应保留在第一隧道组中。若隧道201b在处理单元301的三次连续确定期间不符合性能标准的阈值,则处理单元301从第一隧道组移除隧道201b。在另一实例中,若处理单元301确定隧道201b所连接到的网络的网络时延已在大于15分钟内超过150毫秒,则处理单元301从第一隧道组移除隧道201b。当从第一隧道组移除隧道201b时,处理单元301使用第一隧道组的隧道201c来传输数据。

隧道的吞吐量可以通过经由隧道传输数据包或测试包而由处理单元301确定。所估计的吞吐量可以是平均吞吐量、最小吞吐量、最大吞吐量。测试包的格式优选地与使用隧道201b传输的数据包的格式相同。

在另一实例中,隧道201a和201d属于第二隧道组。对应于第二隧道组的选定性能标准是使用价格和弃包率。由于一些运营商可能在某一时间段内隧道连接到网络之后收取较高使用价格,因此在建立隧道时使用价格可能增加。处理单元301周期性地确定隧道201a和201d的使用价格是否低于阈值。若隧道(例如,隧道201a)的使用价格变为高于阈值,则处理单元301从第二隧道组移除隧道201a。当从第二隧道组移除隧道201a时,节点101使用隧道201d来接收数据。处理单元301还通过隧道201a和201d监视弃包率。当隧道(例如,隧道201d)的弃包率变为高于阈值时,处理单元301从第二隧道组移除隧道201d。在一个变型例中,隧道201a应符合这两个性能标准的阈值以保持在第二隧道组中。或者,隧道201a应符合性能标准中的至少一者的阈值以保持在第二隧道组中。

根据本发明的实施例中的一者,隧道属于隧道组,但并未得到利用。仅示例性地,隧道201b、201b和201c属于第一隧道组且隧道201a属于第二隧道组。第一隧道组用于将数据从节点101传输到节点102并且第二隧道组用于将数据从节点102传输到节点101。可能并非所有隧道201b、201b和201c同时用于将数据从节点101传输到节点102。在一个变型例中,隧道201b、201b和201c中的仅一者用于传输数据,而另两个隧道用于备用或热故障恢复目的。在一个变型例中,隧道201b、201b和201c中的两者用于传输数据,而并不使用剩余的一个隧道。选择利用的隧道以及如何使用隧道的决策可以由节点101的管理员、节点102的管理员或操作节点101和102两者的系统操作员来预定义。可以在设定隧道之前、在建立隧道期间和/或在建立隧道后任何时间定义数据在所利用的隧道之中如何分配的决策。尽管此说明仅涉及第一隧道组和第一隧道组的隧道,但是其还适用于第二隧道组和第二隧道组的隧道。

在本发明的实施例中的一者中,通过节点101将优先级指派给隧道组中的每个隧道。例如,隧道201b、201c和201d属于第一隧道组。节点101将最高优先级指派给隧道201b、第二高优先级指派给隧道201c以及最低优先级指派给隧道201d。节点101在给定时间使用属于第一隧道组的任两个隧道来传输数据。因此,由于隧道201b和201c比隧道201d具有更高优先级,因此在可能时节点101使用隧道201b和201c来传输数据。若通过隧道201b的连接失败,则节点101随后开始使用隧道201c和201d来传输数据。通过隧道201b的连接可能由于各种原因失败,例如通信量拥挤,隧道201b不具有足够容量、不具有网络覆盖或设备发生故障。或者,若通过隧道201b的数据传输的性能显著退化,则节点101停止使用隧道201b且开始使用隧道201c和201d来传输数据。

在另一实例中,隧道201a和201b属于第二隧道组。节点101将最高优先级指派给隧道201a且将最低优先级指派给隧道201b。例如,节点101配置有预定义配置以将最高优先级指派给第二隧道组中的隧道201a,因为隧道201a是通过卫星网络150建立的。在另一实例中,节点101将最高优先级指派给第二隧道组中的隧道201a,因为隧道201a具有最高吞吐量和最大覆盖区域。如果通过隧道201a的连接失败,那么节点101开始使用隧道201b来接收数据。通过隧道201a的连接可能由于各种原因失败。例如,当卫星调制解调器161在室内移动时,其可以不直接指向卫星网络150且因此通过隧道201a的连接可能失败。在另一实例中,用于通过隧道201a接收数据的网络时延可能变得非常高并且连接可能由于高网络时延而失败。

根据一个或多个性能标准将优先级指派给隧道组中的隧道或者可以根据预定义配置指派优先级。可以由节点101的管理员或用户经由web接口、应用程序编程接口(api)、命令行接口或控制台输入预定义配置。

当根据性能标准指派优先级时,节点101确定隧道组中的每个隧道的性能。例如,处理单元301可以将最高优先级指派给第一隧道组中的隧道201b,因为隧道201b具有最高吞吐量和最低弃包率。或者,处理单元301可以将最高优先级指派给第一隧道组中的隧道201b,因为隧道201b具有最低使用价格。

在本发明的实施例中的一者中,当隧道组中的隧道的性能退化时,不将所述隧道从隧道组移除,但是节点101确定不使用所述隧道。例如,当属于第一隧道组的隧道(例如,隧道201b)的性能退化且变为不符合要求时,节点101停止使用隧道201b来传输数据,直到隧道201b的性能再次变得符合要求为止。隧道201b被标记为闲置的且节点101使用第一隧道组中的其它隧道(例如,隧道201c)来传输数据。节点101可以基于一个或多个性能标准确定隧道201b的性能已降低。例如,当通过隧道201b的数据传输的弃包率已显著增加时,节点101停止使用隧道201b来传输数据。

在另一实例中,当属于第二隧道组的隧道(例如,隧道201a)的性能退化且变为不符合要求时,节点101停止使用隧道201a来接收数据,直到隧道201a的性能再次变得符合要求为止。隧道201a被标记为闲置的且节点101使用第二隧道组中的其它隧道(例如,隧道201d)来接收数据。节点101可以基于一个或多个性能标准确定隧道201a的性能已降低。例如,当隧道201a的时延显著增加时,节点101停止使用隧道201a来接收数据。

不从隧道组移除性能已退化的隧道的益处包含:节点101可能够在隧道的性能一旦变得符合要求就再次开始使用所述隧道。处理单元301不需要再次确定所述隧道是否应属于所述隧道组。

在实施例中的一者中,隧道可以属于第一隧道组和第二隧道组两者。例如,隧道201b属于第一隧道组和第二隧道组两者。隧道201b随后由节点101用于分别将数据传输到节点102以及从节点102接收数据。第一隧道组包括隧道201b和201c,并且第二隧道组包括隧道201a和201b。节点101使用隧道201b和201c来传输数据,以及使用隧道201a和201b来接收数据。换句话说,节点101仅使用隧道201c来传输数据,仅使用隧道201a来接收数据,并且使用隧道201b来传输和接收数据。处理单元301可以选择隧道201b以使其属于第一隧道组和第二隧道组两者,因为隧道201b具有非常好的性能,例如,高吞吐量、低弃包率、低时延、低使用价格或基于其它性能标准的良好性能。

当节点101的处理单元301或节点102的处理单元401确定隧道离开或加入隧道组时,由处理单元发送新隧道管理消息以告知另一处理单元是否应使用所述隧道以及如何使用所述隧道。

在一个变型例中,当隧道管理消息指示第一隧道组仅由节点101用于将数据传输到节点102时,不允许第一隧道组用于从节点101至节点102接收数据,即使已满足对应条件。类似地,当隧道管理消息指示第二隧道组仅由节点101用于从节点102接收数据时,不允许第二隧道组用于将数据传输到节点102,即使已满足对应条件。或者,由节点101或节点102发送新隧道管理消息以作出以下更新:第一隧道组和/或第二隧道组可以用于双向通信。或者,由节点101或节点102发送新隧道管理消息以作出以下更新:第一隧道组和/或第二隧道组不再用于双向通信且仅可以用于分别从节点101传输数据和/或通过节点101接收数据。

新隧道管理消息的使用允许在已建立隧道之后改变第一隧道组和第二隧道组如何用于传输和接收数据的灵活性。在一个变型例中,新隧道管理消息用于管理一个或多个特定隧道,而不是隧道组。这允许隧道的更精细管理。

在一个变型例中,不需要在第一隧道组已用于将数据从节点102传输到节点101时传输隧道管理消息。这是因为以下事实:当数据已从第一隧道组到达节点101时,节点101能够确定节点102已确定使用第一隧道组来传输数据,而不需要隧道管理消息的协助。类似地,不需要在第二隧道组已用于将数据从节点101传输到节点102时传输隧道管理消息。

在一个变型例中,在节点101不再能够或不确定通过第二隧道组或第二隧道组的隧道中的一者接收数据的情况下,例如,在处于覆盖范围之外的情况下,节点101将通过使用隧道管理消息告知节点102不通过第二隧道组或第二隧道组的隧道中的一者进一步传输数据。类似地,在节点102不再能够或不确定通过第一隧道组或第一隧道组的隧道中的一者接收数据的情况下,例如,在重丢包率的情况下,节点102将通过使用隧道管理消息告知节点101不通过第一隧道组或第一隧道组的隧道中的一者进一步传输数据。

图6a和图6b是分别说明节点101将数据包传输到节点102以及从节点102接收数据包的本发明的实施例中的一者的两个流程图。

参考图1,在步骤601处,节点101首先选择节点101的第一一个或多个wan接口,例如,wan接口121a、121b、121c和121d。当在步骤602处节点101从主机或连接到其lan接口122a和122b中的一者的节点接收到数据包时,在步骤603处所述节点将所述数据包封装成一个或多个封装包。所属领域的技术人员将了解,封装数据包的步骤允许通过隧道发送数据包。在一个变型例中,步骤601和步骤602可以调换,使得在已接收到数据包之后执行wan接口的选择。所选择的节点101的第一一个或多个wan接口主要用于将数据包从节点101传输到节点102。在一个变型例中,节点102不通过节点101的第一一个或多个wan接口将数据包传输到节点101。在一个变型例中,节点102通过节点101的第一一个或多个wan接口将少量包传输到节点101,并且所述包用于管理目标,例如,连接到第一一个或多个wan接口的连接的状态信息。

随后在步骤604处,节点101通过在步骤601处选择的第一一个或多个wan接口传输一个或多个封装包。所述第一一个或多个wan接口可以连接到有线或无线网络。

节点101还可以选择第二一个或多个wan接口主要用于从节点102接收数据包。来自节点102的数据包可以是封装包。在一个变型例中,节点102仅通过节点101的第二一个或多个wan接口将数据包传输到节点101,使得节点101仅通过节点101的第二一个或多个wan接口从节点102接收数据包。在一个变型例中,节点102通过节点101的不属于节点101的第二一个或多个wan接口的wan接口将少量包传输到节点101;所述包用于管理目的,例如,传输健康检查包、连接到一个或多个wan接口的连接的状态信息。因此,节点101仅通过节点101的不属于节点101的第二一个或多个wan接口的wan接口从节点102接收少量包。

在一个变型例中,节点101通过使用wan接口管理消息向节点102发送第二一个或多个wan接口的信息。在此情况下,所述信息包含节点101的对于节点102将数据包传输到节点101而言优选的wan接口的标识。因此,节点102可以将封装包的目的地地址设定为节点101的优选wan接口的地址。在一个变型例中,所述信息用作节点102的指令。在一个变型例中,节点102还单独确定节点101的哪些wan接口应用于从节点102至节点101接收数据包。

wan接口管理消息的使用包含:告知节点102如何使用节点101的wan接口;告知节点102何时通过节点101的特定wan接口传输数据包。在一个变型例中,节点101从节点102接收用于管理一个或多个wan接口的wan接口管理消息。因此,wan接口管理消息的使用还包含:告知节点101如何使用wan接口;告知节点101何时通过特定wan接口传输数据包。

如图6b中示出,当在步骤611处节点101通过wan接口121a、121b、121c和121d中的一者从节点102接收封装包时,在步骤612处节点101对所述封装包进行解封装以检索数据包。随后在步骤613处,节点101根据数据包的目的地地址通过其lan接口122a和122b中的一者将数据包传输到主机或节点。

优选的是,在步骤601处,节点101选择连接到具有小于150毫秒的网络时延的网络的第一一个或多个wan接口。这允许封装包迅速到达节点102。因此,优选地不选择连接到卫星网络的wan接口,因为卫星往返时间通常超过150毫秒。

在一个变型例中,分别在步骤603和步骤612处由节点101执行的封装和解封装具体地允许通过一个或多个隧道将数据传输到节点102以及从节点102接收数据。所述一个或多个隧道可以经由一对wan接口建立,例如,wan接口121b和wan接口131b。

在一个优选实施例中,节点102通过卫星网络(例如,通过隧道201a)将封装包传输到节点101。尽管卫星往返时间可能大于其它网络的往返时间,但是由卫星网络提供的带宽可以大于其它网络的带宽。此外,对节点102的管理员而言,通过卫星网络将数据包和/或封装包传输到节点101可更经济。

在一个变型例中,节点102的处理单元401确定节点101的哪些wan接口用于将封装包从节点101传输到节点102。例如,节点102可以选择节点101的wan接口121b。当节点102已作出wan接口选择决策时,其将关于所述决策的wan接口管理消息发送到节点101。在不具有wan接口管理消息的情况下,节点101将不能够识别使用wan接口121b以将封装包传输到节点102的需要。

根据本发明的实施例中的一者,在步骤601处的wan接口选择决策以及用于节点102确定哪个wan接口用于传输和接收封装包的wan接口选择决策可以根据以下项确定:连接到wan接口的网络的网络性能、条件、网络覆盖范围、地理位置、网络使用价格等。

图6c是说明根据本发明的各种实施例的流程图。节点101分别将数据包传输到节点102以及从节点102接收数据包。节点101和节点102在一起作为连接到节点101的lan接口122a和122b中的一者的主机或节点的代理伺服器/网关执行。所属领域的技术人员将了解,更新源地址、更新目的地地址以及恢复原始目的地地址的技术描述如下,一般来说由代理伺服器或网关部署。

类似于图6a中所说明的流程图,在步骤631处,节点101首先选择一个或多个wan接口,例如,wan接口121a、121b、121c和121d。当在步骤632处节点101从连接到其lan接口122a和122b中的一者的主机或节点接收数据包时,在步骤633处节点101将接收到的数据包的目的地地址修改成节点102的wan接口中的一者的地址。记录数据包的原始目的地地址并且在传输数据包之前将所述原始目的地地址发送到节点102。原始目的地地址用于节点102恢复目的地地址。

随后在步骤634处节点101通过所选择的一个或多个wan接口传输具有修改的目的地地址的数据包。当节点102接收包时,节点102将目的地地址恢复成原始目的地地址且将数据包的源地址修改成节点102的wan接口中的一者的地址,并且随后将数据包传输到原始目的地地址。恢复原始目的地地址的目的是允许将数据包传输到原始目的地地址。将数据包的源地址更新为节点102的wan接口中的一者的地址的目的是:允许原始目的地地址的主机或节点能够使用节点102的wan接口中的一者的地址而不是使用节点101的wan接口中的一者对所传输的数据包作出响应。当节点102接收到所述响应时,其通过修改ip包的目的地地址而将所述响应转发到节点101的wan接口中的一者,所述ip包保持对节点101的wan接口的地址的响应。当节点101接收到保持所述响应的ip包时,节点101将ip包的源地址修改成原始目的地地址的地址。

在一个变型例中,由节点101选择的用于将数据包传输到节点102的节点101的wan接口以及由节点102选择的用于从节点102接收数据包的节点101的wan接口可以相同或不同。例如,在步骤601处,节点101选择wan接口121b来传输封装包,并且节点102选择wan接口121a来接收对封装在封装包中的数据包的封装响应。类似地,例如在步骤631处,节点101选择wan接口121c来传输数据包,并且节点102选择wan接口131c来将对数据包的响应传输到节点101。

图7说明根据本发明的各种实施例的网络配置。

节点702可以作为用于节点101的网关、vpn网关或代理伺服器执行,使得例如节点101、主机103b、互连网络117中的主机和节点以及主机103a可以通过节点702传输和接收数据。

根据本发明的实施例中的一者,节点101经配置以使用第一一个或多个wan接口来将包发送到节点702以及使用第二一个或多个wan接口来从节点702接收包。例如,节点101使用wan接口121b和121c将数据包发送到节点702,并且使用wan接口121a从节点702接收数据包。节点101可以由管理员或网络运营商配置,例如,由卫星网络150的运营商和无线网络180的运营商配置。在一个实例中,由于已配置节点101使用哪些wan接口,因此不需要执行步骤601,因为不存在执行wan接口选择。

图8说明节点702作为用于主机103b的网关执行以与互连网络171中的主机通信的实例的通信步骤。

图9说明在图8的每个通信步骤处传输的ip包的结构。当主机103b将ip包901传输到互连网络171中的主机时,在步骤801处主机103b首先将ip包901传输到节点101。ip包901可以用于服务请求、数据传送或任何其它目的。图9中说明ip包901的结构。在ip包901中,有效负载字段用于保存数据。标头部分具有目的地地址字段和源地址字段。目的地地址字段是互连网络171中的主机的ip地址。源地址字段是主机103b的ip地址。

在通信步骤801处节点101已接收ip包901后,节点101将ip包901封装在ip包902中。由于节点101具有多个wan接口,因此节点101可以选择wan接口中的任一者来传输ip包902。或者,节点101可以选择在ip包901已到达之前已经确定或配置的wan接口。例如,节点101基于以下项选择wan接口:通过节点101的管理员输入的配置;wan接口所连接到的连接的时延;通过节点101的管理员输入的条件;以及从远程服务器或节点接收到的指令。

示例性地,节点101选择wan接口121b,随后在通信步骤802处通过连接到wan接口121b的无线调制解调器将ip包902传输到无线网络180。ip包902的有效负载字段存储ip包901。ip包902的标头部分具有目的地地址字段和源地址字段。ip包902的目的地地址字段是节点702的wan接口703的ip地址。ip包902的源地址字段是节点101的wan接口121b的ip地址。

由于wan接口703通过路由器704可达,因此在通信步骤803处,无线网络180将ip包902路由到路由器704。无线网络180可以通过私有互连网络或公共互连网络连接到路由器704。例如,若节点702和无线网络180由相同管理员操作,则无线网络180可以通过到路由器704的直接连接路由ip包902。另一方面,若节点702和无线网络180不由相同管理员操作,则一般来说,ip包902将通过公共互连网络路由到路由器704。

当路由器704接收ip包902时,在通信步骤804处所述路由器将ip包902路由到wan接口703。在一个变型例中,路由器704作为具有网络地址转换(nat)能力的网关或代理伺服器执行并且随后相应地更新ip包902的目的地地址。

当节点702接收到ip包902时,其对ip包902进行解封装以检索ip包901。在检查ip包901的目的地地址之后,节点702对ip包901的源地址执行网络地址转换(nat)。修改后的ip包901是ip包903。因此,ip包903是基于ip包901的。ip包903的源地址是wan接口703的ip地址。因此,若互连网络171中的主机作出回复,则wan接口703可以接收所述回复。ip包903的目的地地址与ip包901的目的地地址相同,所述ip包901的目的地地址是主机103b尝试将ip包901发送到的互连网络171中的主机的ip地址。随后在通信步骤805处,节点702将ip包903传输到路由器704。

当路由器704接收到ip包903时,在通信步骤806处,所述路由器将ip包903路由到互连网络171中的主机。在一个变型例中,路由器704执作为具有nat能力的网关或代理伺服器执行并且随后相应地更新ip包903的源地址。

当互连网络171中的主机接收到ip包903时,所述主机可以或可以不作出回复。若所述主机作出回复,则在通信步骤807处,其应使用至少一个ip包(例如,ip包904)回复。ip包904的目的地地址和源地址分别是wan接口703的ip地址和互连网络171中的主机的ip地址。

当路由器704接收到ip包904时,在通信步骤808处所述路由器将ip包904路由到节点702。在一个变型例中,路由器704作为具有nat能力的网关或代理伺服器执行并且随后相应地更新ip包904的目的地地址。

当节点702接收到ip包904时,其对ip包904执行nat。因此,已修改ip包904且修改后的ip包904的目的地地址变为主机103b的ip地址。随后节点702将修改后的ip包904封装在ip包905中,且随后在通信步骤809处将ip包905传输到路由器704。ip包905的有效负载字段存储修改后的ip包904。因此,ip包905是基于ip包904的。ip包905的标头部分具有目的地地址字段和源地址字段。ip包905的目的地地址字段是节点101的wan接口中的一者的ip地址。示例性地,节点702选择wan接口121a。因此,ip包905的目的地地址字段是wan接口121a的ip地址。ip包905的源地址字段是wan接口703的ip地址。

由于可以存在连接到节点101的多个wan接口的超过一个连接,因此节点702可以选择节点101的wan接口中的一者来将ip包905传输到节点101。或者,节点702可以选择在ip包904已到达之前已经确定或配置的wan接口。例如,节点702基于以下项选择节点101的wan接口:通过节点702的管理员输入的配置;wan接口所连接到的连接的时延;通过节点702的管理员输入的条件;以及从远程服务器或节点接收到的指令。

当路由器704接收到ip包905时,在通信步骤810处,所述路由器通过卫星调制解调器160将ip包905路由到卫星网络150。在一个变型例中,路由器704作为具有nat能力的网关或代理伺服器执行并且随后相应地更新ip包905的目的地地址。在通信步骤811中,卫星调制解调器160将ip包905传输到卫星网络150,所述卫星网络随后将ip包905传输到卫星调制解调器161。卫星调制解调器161在通信步骤812中通过连接媒体113将ip包905转发到节点101。

当节点101接收到ip包905时,其对ip包905进行解封装以检索修改后的ip包904,所述修改后的ip包与ip包906相同,并且随后在通信步骤813中根据ip包906的标头中的目的地地址将ip包906传输到主机103b。

图8中示出的通信步骤说明节点101的不同wan接口用于传输和接收ip包,即使ip包属于相同会话。

所属领域的技术人员将了解,当路由器704执行nat时,路由器704可能需要使用状态数据库来记录转换,并且状态数据库一般存储于路由器704的存储单元中。

在一个变型例中,当在步骤808之后节点702接收到ip包904时,所述节点不对ip包904执行nat。因此,ip包904未进行修改,并且ip包905封装ip包904而不是修改后的ip包904。在步骤812后,ip包904的地址的目的地通过节点101改变至ip包906。这允许nat由节点101执行,而不是由节点702执行。这样可以减少节点702的计算资源要求。

根据本发明的实施例中的一者,节点101发送wan接口管理消息以告知节点702:节点702应将ip包传输到节点101的哪个wan接口。wan接口管理消息包括wan接口标识字段和指令字段。例如,仅示例性地,wan接口121a和121d可以由节点101用于从节点702接收ip包,而wan接口121b和121c无法由节点101用于从节点702接收ip包。wan接口管理消息包括wan接口标识字段和指令字段中的wan接口121a和121d的标识,其保存wan接口121a和121d可以由节点101用于从节点702接收ip包而wan接口121b和121c无法由节点101用于从节点702接收ip包的信息。在步骤809中,可以在通过节点702传输ip包905之前任何时候发送wan接口管理消息。在另一实例中,用于节点101将ip包传输到节点702的节点101的wan接口的标识储存于wan接口字段中,并且此(这些)wan接口仅用于传输的指令储存于指令字段中。

在一个变型例中,wan接口管理消息包括指令字段中指示wan接口是用于传输和接收两者还是仅用于传输或仅用于接收的指示符。例如,示例性地,所述指示符可以由位、多个位、字节、多个字节、字符串、多个字符串、xml消息等表示。所属领域的技术人员将了解,存在用于表示指示符的多种方法。

在一个变型例中,通过节点101或节点702中的一者确定和传输wan接口管理消息。因此,通过节点101或节点702确定节点101的哪个wan接口用于传输和/或接收ip包的决策。例如,节点101的管理员可以确定节点101和节点702的哪个(哪些)wan接口用于传输和/或接收ip包。因此,wan接口可以被设定为单向传输、单向接收或双向的。

在一个变型例中,wan接口管理消息包括wan接口的状态信息。状态信息可以是存储于指令字段中的信息的一部分。在一个变型例中,状态存储于wan接口管理消息的状态字段中。例如,当节点101关于wan接口的状态更新节点102时,节点101将具有状态字段中的wan接口状态的wan接口管理消息发送到节点102。wan接口标识字段保存对应wan接口的标识。在此情况下,指令字段可以是空的,因为wan接口管理消息用于状态报告目的。

根据本发明的实施例中的一者,在两个节点的两个wan接口之间建立一个或多个隧道并且当选择wan接口用于传输和接收、仅用于传输或仅用于接收时,通过选定wan接口建立的对应一个或多个隧道将受wan接口管理消息的影响。例如,当wan接口121a仅可用于从节点702接收ip包且无法用于将ip包传输到节点702时,通过wan接口121a至wan接口705建立的一个或多个隧道也仅可用于从节点702接收ip包且无法用于将ip包传输到节点702。

根据本发明的实施例中的一者,节点的管理员确定阐述节点的wan接口以及另一节点的wan接口的wan接口对,使得在wan接口对中阐述的wan接口用于传输和接收、仅传输或仅接收两个节点之间的ip包。例如,管理员确定仅用于从wan接口703接收ip包的wan接口对、wan接口121a和wan接口703。在另一实例中,管理员确定wan接口对、wan接口121d和wan接口703是双向的,使得wan接口121和wan接口703可以用于将ip包传输到彼此以及从彼此接收ip包。

根据实施例中的一者,节点(例如,节点102)通过主机(例如,主机103a或103b)的接入介导到互连网络172。在一个实例中,节点102终止在开放式系统互连(osi)参考模型或tcp/ip模型的应用层处的来话接入请求和连接。在此实例中,节点102充当应用层代理伺服器来防止互连网络172中的资源直接暴露于连接到节点101的主机。节点102接收封装在包中的来话接入请求,对接入请求进行解封装以到达底层应用数据,并且将包括接入请求的应用数据发送到互连网络172。

在另一实例中,节点102允许osi参考模型或tcp/ip模型的层之间的直接连接。在此实例中,节点102使用与请求主机(例如,主机103a或103b)协商的安全信道来交换数据。节点102经由隧道201a、201b、201c或201d中的一者接收安全请求,并且代表请求主机(即,主机103a或103b)向互连网络172发出请求以在请求主机与互连网络172之间建立数据连接。

图10说明用于配置节点101的网页。可以在膝上型计算机、桌上型计算机、手持式计算装置、移动电话或能够显示网页1001的任何装置的显示器处显示网页1001。网页1001具有两个部分:vpn设定档1011和wan连接优先级1012。管理员可以输入使用vpn设定档1011设定vpn以及配置wan连接优先级1012中的wan接口的数据的优先级、传输和接收所需的信息。所述信息用于创建属于vpn的一个或多个隧道。例如,所述信息用于创建多个隧道并且聚合多个隧道以形成用于vpn的一个聚合的隧道。所属领域的技术人员将了解,所需信号包含安全信息、身份信息和加密信息。在一个变型例中,从远程管理服务器、耦合到节点101的安全装置或预配置数据库中检索所需信息。这样减少了管理员通过网页手动输入所需信息的负担。

wan连接优先级1012具有三个主要部分:wan接口标识1021、优先级选择1022和方向选择1031至1033。由于节点101具有四个wan接口,因此wan接口标识1021具有示出的四个wan接口。例如,wan接口标识1021中的“wan1”、“wan2”、“wan3”和“wan4”分别对应于wan接口121a、121b、121c和121d。优先级选择1022用于配置对wan接口的优先级。例如,“wan1”的优先级配置成“off”,使得处理单元301将不使用wan接口121a来传输或接收数据通信量。由于“wan2”、“wan3”、“wan4”的优先级配置成“最高”,因此处理单元301使用具有相同优先级的wan接口121b、121c和121d。方向选择1031配置成“仅向上”,使得处理单元301仅使用wan接口121b来传输数据。方向选择1032配置成“仅向下”,使得处理单元301仅使用wan接口121c来接收数据。方向选择1033配置成“仅向上/向下”,使得处理单元301使用wan接口121d来传输和接收数据。

在一个变型例中,从远程管理服务器、耦合到节点101的安全装置或预配置数据库中检索用于配置wan连接优先级1012的信息。这样减少了管理员通过网页手动输入所需信息的负担。

用于配置节点102的网页类似且wan接口标识1021中的wan接口的数目将为三个,因为节点102具有三个wan接口。

图11说明用于配置节点101的网页。网页1101的设计类似于网页1001的设计。网页1101具有两个部分:vpn设定档1111和隧道优先级1112。管理员可以输入使用vpn设定档1111设定vpn以及配置隧道优先级1112中的隧道数据的优先级、传输和接收所需的信息。在设定vpn所需的信息相同的情况下,vpn设定档1111可以与vpn设定档1011相同。

隧道优先级1112具有三个主要部分:隧道标识1121、优先级选择1122和方向选择1131至1133。由于节点101已经与节点102建立了四个隧道,因此隧道标识1121具有示出的四个隧道。例如,隧道标识1121中的“隧道a”、“隧道b”、“隧道c”和“隧道d”分别对应于隧道201a、201b、201c和201d。优先级选择1122用于配置隧道的优先级。例如,“隧道a”的优先级配置成“off”,使得节点101将不使用隧道201a来传输或接收数据通信量。由于“隧道b”、“隧道c”、“隧道d”的优先级配置成“最高”,因此处理单元301使用具有相同优先级的隧道201b、201c和201d。方向选择1131配置成“仅向上”,使得节点101仅使用隧道201b来传输数据。方向选择1132配置成“仅向下”,使得节点101仅使用隧道201c来接收数据。方向选择1133被配置成“仅向上/向下”,使得节点101使用隧道201d来传输和接收数据。

在一个变型例中,从远程管理服务器、耦合到节点101的安全装置或预配置数据库中检索用于配置隧道优先级1112的信息。这样减少了管理员通过网页手动输入所需信息的负担。

用于配置节点102的网页类似且隧道标识1121中的隧道数目将相同,因为在节点101与102之间建立的隧道数目也是四个。

在一个变型例中,代替在隧道标识1121中示出的隧道标识,在隧道标识1121中示出节点101和节点102的wan接口。由于可以在节点101的一个或多个wan接口与节点102的一个或多个wan接口之间建立隧道,因此可以由用于建立隧道的wan接口来替换隧道标识。

本发明的优选实施例的前述描述提供说明以及描述,但并不意欲为穷尽性的或将本发明限于所揭示的精确形式。有可能根据以上教示内容进行修改和改变,或可以从本发明的实践中获得修改和改变。

图12说明根据本发明的实施例中的一者。在步骤1201处,节点101从其lan接口122a或122b中的一者接收包,并且所述包被指定到通过节点102可到达的主机。所述主机可以位于连接到lan接口132的lan处或可以位于经由wan接口131c的互连网络171处。

在步骤1202处,通过检测逻辑检测所述包。在步骤1203处,检测逻辑确定所述包是否符合至少一个包条件。检测逻辑可以包含软件控制的微处理器、离散逻辑(例如,asic)、模拟电路、数字电路、程序化逻辑装置、含有指令的存储器装置等。检测逻辑可以包含一个或多个逻辑门、逻辑门的组合或其它电路组件。在描述多个检测逻辑处,可能的是将多个检测逻辑合并成一个物理逻辑。类似地,可能的是将检测分配到多个检测逻辑。所属领域的技术人员将了解,存在检测包的多种方式。例如,通过检测逻辑检测包的标头以确定源地址、目的地地址和/或协议。也可以使用深度包检测技术来执行检测以检测包的有效负载。

在检测之后,若发现包符合至少一个包条件,则在步骤1204处,处理单元301通过预定义隧道传输所述包。若不符合包条件,则在步骤1205处,处理单元301通过第一隧道组或第二隧道组中的隧道中的一者传输所述包。在节点101与节点102之间,可以存在超过一个预定义隧道。预定义隧道是在处理单元301已经接收包之前预定义的隧道。

可以预定义包条件以及从节点101的存储介质(例如,主存储器302或辅助存储装置304)检索包条件。可以存在一个或多个包条件。例如,若包大小在预定义范围内,则符合包条件。在另一实例中,包条件可以基于特定端口编号。示例性地,特定端口编号是22。使得当包具有设置成22的端口编号时,所述包已经符合包条件。包条件并非限制为仅基于ip标头中的信息。例如,当包指定用于位于连接到lan接口132的lan处的会话发起协议(sip)电话且包是ip承载语音(voip)包时,在步骤1203处符合包条件。随后在步骤1204处,使用对应于包条件的预定义隧道来传输所述voip包。由于高时延可能不利地影响使用sip电话的用户体验,因此优选的是通过低时延隧道传输voip包。因此,预定义隧道应是低时延隧道。在此说明中,预定义隧道可以是单向隧道或双向隧道。

在一个变型例中包条件可以基于包和其它信息。其它信息不与包相关。例如,其它信息可以是一天中的时间、包的发送者的地理位置、节点101的地理位置、节点102的地理位置、一个或多个隧道的网络性能等。例如,若包源自摄像机并且本地时间在上午7点与下午7点之间,则符合包条件。因此,若在上午5点包源自摄像机,则在步骤1203处不符合包条件。另一方面,若在上午9点包源自摄像机,则在步骤1203处符合包条件。当符合包条件时,在步骤1204处,使用对应于包条件的预定义隧道来传输源自摄像机的包。由于视频传输一般来说是单向的,因此预定义隧道可以是通过卫星网络携载的单向隧道。这并非将预定义隧道限制为单向隧道。当存在有限资源时,通过单向隧道传输源自摄像机的包可以节省其它隧道中的资源以用于其它应用用途。因此,对于此视频传输,单向隧道是优选的。

预定义隧道是当包符合包条件中的一者时用于传输包的隧道。在接收包之前建立预定义隧道以便减少用于建立预定义隧道的时间。预定义隧道可以是属于第一隧道组、第二隧道组或其它隧道组的隧道。预定义隧道还可以不属于任何隧道组。其可以通过节点101的管理员或通过服务器配置。在一个变型例中,预定义隧道是聚合的隧道中的隧道中的一者。

例如,管理员可以使用ipsec和l2tp将预定义隧道配置为vpn连接以用于传输具有实时视频内容的包。在另一实例中,管理员可以使用ssh隧道协议将另一预定义隧道配置为vpn连接以用于传输源自特定源的包。在一个变型例中,预定义隧道还由节点102用来将符合条件中的至少一者的包传输到节点101。例如,预定义隧道经配置以用于节点101和节点102两者的使用ssh文件传送协议(sftp)的文件传送。因此,当在步骤1202处节点101或节点102检测包是使用sftp传输的时,在步骤1204处,节点101或节点102将通过预定义隧道将所述包传输到彼此。

在一个变型例中,当在步骤1202处包经过检测和确定属于可容许高时延的会话时,在步骤1203处符合包条件,并且在步骤1204处使用对应高时延的单向隧道来传输包。例如,由于隧道201a经配置以用于仅通过卫星网络150将数据从节点102传输到节点101,因此在步骤1204处将通过从节点102到节点101的单向隧道201a传输符合包条件的包。

在另一变型中,若包属于无法容许高时延的会话,则符合包条件,且使用对应低时延的双向隧道来传输包。例如,若隧道201b配置成双向隧道且具有用于双向包传输的低时延,则隧道201b可以配置成用于针对具有低时延要求的包的包条件的对应预定义隧道。

管理员可以在节点(例如,节点101和节点102)处配置包条件和对应于包条件的预定义隧道。在一个变型例中,管理员可以在远程服务器处配置包条件和预定义隧道,并且远程服务器将包条件和预定义隧道的信息发送到节点。管理员可以将预定义隧道配置成仅用于单向包传输,例如,仅将包从节点101传输到节点102,但是不从节点102传输到节点101。类似地,管理员可以将预定义隧道配置成用于双向包传输,例如,将包从节点101传输到节点102以及从节点102传输到节点101。

在一个特定实施例中,用性能标准配置预定义隧道,并且当预定义隧道的性能不符合对应性能标准时,所述预定义隧道不再用于传输符合包条件的包。随后可以将另一隧道选择为预定义隧道。这确保了通过具有所需性能的预定义隧道传输符合包条件的包。例如,节点101已经与节点102建立三个隧道,即,隧道a、隧道b和隧道c。隧道a、b和c可以属于第一隧道组、第二隧道组、其它隧道群或不属于任何隧道组。隧道a、b和c聚合在一起以形成聚合的连接。隧道a配置成预定义隧道,其用于源自连接到节点101的lan接口中的一者的主机的包。隧道a是单向隧道,节点102不使用其将包传输到节点101。另一方面,节点101可以通过隧道a将包传输到节点102。隧道a的性能标准是其时延不能大于200ms。当包源自所述主机,指定用于连接到节点102的主机,并且隧道a的时延在200ms内时,节点101通过隧道a将包传输到节点102。当发现隧道a的时延为超过200ms时,隧道a不再是用于源自所述主机的包的预定义隧道,并且可以通过备用预定义隧道或隧道a、b或c中的任一者传输包。可以通过管理员配置性能标准或从服务器检索性能标准。

在一个变型例中,当隧道a不再是预定义隧道时,若隧道b或隧道c符合200ms的时延要求,则可以选择隧道b或隧道c作为预定义隧道。若没有隧道符合时延要求,则可以使用隧道a、b或c中的任一者来传输符合包条件的包。

在一个实例中,管理员可以通过web接口输入预定义隧道的配置。在一个特定实施例中,提示管理员选择经配置隧道中的一者为预定义隧道。经配置隧道可以属于第一组隧道、第二组隧道或其它组。对于管理员必须如何输入配置不存在限制。在另一实例中,管理员可以通过控制台端口输入配置。

图13是说明根据本发明的实施例中的一者的过程的流程图。在步骤1301处,节点101从其lan接口122a和122b中的一者接收包,并且所述包预定目的地为通过节点102可到达的主机。所述主机可以位于连接到lan接口132的lan处或可以位于经由wan接口131的互连网络171处。来自图12中说明的流程图的步骤1203到1205并入图13中的流程图,因为此实施例也使用步骤1203到1205。

在步骤1302处,通过检测逻辑检测所述包。检测逻辑提供结果以用于识别包所属于的会话。所属领域的技术人员将了解,存在用以通过检测包来确定包所属于的会话的多种方式。例如,通过检测逻辑检测包的tcp标头以确定源地址、目的地地址、协议和/或端口编号。也可以使用深度包检测(dpi)技术来执行检测以检测包的有效负载以便确定对应会话。在另一实例中,通过检测逻辑检测包的标头以基于源地址、目的地地址、协议端口编号等确定会话。例如,可以通过目的地地址和端口编号确定会话。也可以使用dpi技术来执行检测以检测包的有效负载。例如,通过检查包的tcp标头会话中的端口编号或通过检测包的有效负载中的数据。

包可以不属于任何会话。例如,包是地址解析协议(arp)包或因特网控制报文协议(icmp)包。用户数据报协议(udp)包可以属于或可以不属于会话。尽管在udp的标头中可以不存在任何会话信息,但是所属领域的技术人员将了解,存在用以通过检测源地址、目的地和/或端口编号来确定udp包所属于的会话的多种方式。所属领域的技术人员还将了解,udp包的有效负载中的内容可以用来确定udp包所属于的会话。不存在仅通过包的标头和/或tcp/udp的标头中的信息来识别会话的约束。可以采用dpi技术以确定会话。在步骤1303处,若确定包不属于任何会话,则将执行步骤1203。

若包属于一个会话,则在步骤1304处,处理单元301确定是否已经为所述会话指派了隧道。若已经为所述会话指派了隧道,则这意味着所述包不是属于节点101接收到的所述会话的第一包中的一者,并且已经针对所述会话执行了步骤1305。因此,不需要再次执行步骤1305。这可以节省用于执行dpi和用于在步骤1305处进行决策的计算资源。随后在步骤1308处通过已经指派的隧道(所指派隧道)传输所述包。所指派隧道可以是预定义隧道、第一隧道组的一个或多个隧道、或第二隧道组的一个或多个隧道。

当不存在用于所述会话的所指派隧道时,执行步骤1305以确定所述会话是否符合至少一个会话条件。在步骤1305中使用的会话条件可以与在步骤1203中使用的包条件相同或可以不相同。

在步骤1306处,在检测之后,若发现会话符合至少一个会话条件,则处理单元301指派用以传输包的预定义隧道。所指派的预定义隧道现在变为用于所述会话的所指派隧道。处理单元301将所指派隧道的标识保存在存储介质中,例如保存在主存储器302或辅助存储装置304中。因此,当接收到所述会话的未来的包时,不需要再次执行步骤1305并且可以减少节点101的计算资源使用。由于包可以在高速下到达,因此优选的是将所指派隧道的标识保存在处理单元301的高速缓冲存储器或处理单元301可以迅速访问的主存储器302中。若不符合包条件,则在步骤1307处,处理单元301通过第一隧道组或第二隧道组中的隧道中的一者传输所述包。

在步骤1306处的所指派的预定义隧道可以与在步骤1204处使用的预定义隧道相同或可以与其不同。这允许基于不同标准将包分配到不同预定义隧道的灵活性。类似地,在步骤1307处用于传输包的隧道可以与在步骤1205处用于传输包的隧道相同或可以与其不同。例如,取决于隧道可用性和网络性能,处理单元301可以在步骤1307和步骤1205处将包分配到合适的隧道。

会话可以在所述会话期间开始符合会话条件。会话还可以停止符合所述会话过去曾符合的会话条件。因此,所指派隧道可能不再有效。还可能不同的预定义隧道应变成用于传输会话的包的所指派隧道。还可能第一或第二组的一个或多个隧道应用于传输属于会话的包。因此,在一个变型例中,针对会话周期性地执行步骤1305以便确定所述会话是否仍然符合至少一个会话条件,并且确定所述会话符合哪些至少一个会话条件。

在一个变型例中,若所指派隧道不再有效,并且不同的预定义隧道变为最新的所指派隧道,则处理单元301可以继续使用同一所指派隧道来传输属于会话的包直到所述会话已经结束。或者,处理单元301可以使用最新的所指派隧道来传输属于所述会话的包,并停止使用先前的所指派隧道来传输属于所述会话的包。

在一个变型例中,当节点101已经为会话指派了隧道时,其向节点102发送消息以指示节点102使用相同隧道来将包从节点102传输到节点101。这允许相同的所指派隧道用于传输和接收属于所述会话的包这两者。在一个变型例中,当节点101已经为会话指派了隧道时,其向节点102发送消息以指示节点102使用不同隧道来将包从节点102传输到节点101。因此,针对相同会话,节点102用来将包传输到节点101的所指派隧道不同。例如,节点101可以使用隧道201a来将属于ftp会话的包传输到节点102,同时通过隧道201c接收属于相同ftp会话的包。并行地,节点101和节点102可以通过隧道201d将实时ip承载语音包传输到彼此。

在一个实例中,当会话使用bittorrent协议时符合会话条件。若节点101使用bittorrent协议下载会话中的文件,则可优选的是使用单向隧道用于所述会话以便节省其它隧道中的资源以用于其它应用用途。单向隧道可以仅用于在节点101处从节点102接收包,而不是相反情况。例如,隧道201d是具有最低优先级的单向隧道,并且因此对应于使用bittorrent协议的会话的预定义隧道是隧道201d。当存在根据隧道的性能指派给隧道的优先级时,也可以优选的是使用具有最低优先级的隧道以便节省其它隧道的带宽资源。当在步骤1304中确定尚未给会话指派隧道,并且在步骤1305中确定所述会话使用bittorrent协议时,在步骤1306处使用隧道201d传输属于所述会话的包。在一个变型例中,由于隧道201d配置成单向的,因此节点101可以使用另一隧道来将属于所述会话的任何包传输到节点102。

在另一实例中,当会话用于屏幕共享时符合会话条件。示例性地,主机103b与通过互连网络172可到达的第二主机共享屏幕。主机103b可以与使用节点101与102之间的一个或多个隧道的第二主机建立屏幕共享会话。当节点101通过lan接口122b从主机103b接收属于屏幕共享会话的包,并且在步骤1304中确定尚未给屏幕共享会话指派隧道时,在步骤1305中,节点101确定屏幕共享会话是否符合会话条件。节点101确定屏幕共享会话确实符合会话条件,并且因此在步骤1306中通过预定义隧道传输包。预定义隧道优选的是单向隧道,因为属于屏幕共享会话的包仅从节点101传输到节点102,而不是相反情况。将单向隧道选择为对应于会话条件的预定义隧道可以节省其它隧道中的资源以用于其它应用用途。

在一个特定实施例中,用性能标准配置所指派隧道,并且当所指派隧道的性能不符合对应性能标准时,所述所指派隧道不再用于传输符合会话条件的包。随后可以将另一隧道选择为所指派隧道。这确保了通过具有所需性能的所指派隧道传输符合会话条件的包。例如,节点101已经与节点102建立四个隧道,即,隧道d、隧道e、隧道f和隧道g。隧道d和e属于第一隧道组并且隧道f和g属于第二隧道组。隧道d、e、f和g聚合在一起以形成聚合的连接。隧道d配置成用于源自监控摄像机的会话的包的所指派隧道。可存在连接到节点102的多个监控摄像机。隧道d可以是双向隧道。隧道d的性能标准是其弃包率不能大于一秒钟20个。当包源自监控摄像机且属于一个会话并且隧道d的弃包率小于一秒钟20个时,通过隧道a传输包。当发现隧道d的弃包率超过一秒钟20个时,隧道d不再是用于源自监控摄像机的会话的包的所指派隧道,并且可以通过备用的所指派隧道或隧道d、e、f或g中的任一者传输包。可以通过管理员配置性能标准或从服务器检索性能标准。

在一个变型例中,当隧道d不再是预定义隧道时,若隧道e、f或g符合弃包要求,则可以选择隧道e、f或g作为预定义隧道。若没有隧道符合弃包要求,则可以使用隧道d、e、f或g中的任一者来传输符合会话条件的包。

附图说明

图1示出根据本发明的各种实施例的网络配置。

图2示出根据本发明的各种实施例的在第一节点与第二节点之间建立的隧道。

图3是根据本发明的实施例中的一者的计算机系统或网络节点的示意性方块图。

图4是根据本发明的实施例中的一者的计算机系统或网络节点的示意性方块图。

图5是根据本发明的实施例中的一者的计算机系统或网络节点的示意性方块图。

图6a是说明根据本发明的实施例中的一者的用于第一节点将数据传输到第二节点且从第二节点接收数据的过程的流程图。

图6b是说明根据本发明的实施例中的一者的用于第一节点将数据传输到第二节点且从第二节点接收数据的过程的流程图。

图6c是说明根据本发明的实施例中的一者的用于第一节点将数据传输到第二节点且从第二节点接收数据的过程的流程图。

图7示出根据本发明的各种实施例的网络配置。

图8示出根据本发明的实施例中的一者的与主机通信的节点的通信步骤。

图9示出根据本发明的实施例中的一者的在每个通信步骤处传输的ip数据包的结构。

图10示出根据本发明的实施例中的一者的用于配置第一节点的网页。

图11示出根据本发明的实施例中的一者的用于配置第一节点的网页。

图12是说明根据本发明的实施例中的一者的用于第一节点将数据传输到第二节点且从第二节点接收数据的过程的流程图。

图13是说明根据本发明的实施例中的一者的用于第一节点将数据传输到第二节点且从第二节点接收数据的过程的流程图。


技术特征:

1.一种用于安置在网络环境中的第一节点的方法,其包括:

a.从局域网(lan)接口接收第一数据包;

b.检测所述第一数据包;

c.确定是否符合至少一个条件;

d.将第一数据包封装在第一封装包中;

e.若符合所述至少一个条件,通过第一隧道从第一网络接口传输所述第一封装包;

f.若不符合所述至少一个条件,通过第二隧道从第二网络接口传输所述第一封装包;

其中所述至少一个条件是基于以下项的一个或多个:所述第一数据包的大小、所述第一数据包的协议、所述第一节点的地理位置、一天中的时间及属于所述第一数据包的会话的时延敏感度;

其中所述第一隧道和所述第二隧道有不同的网络时延;

其中所述网络时延是基于每个隧道观察到的时延的平均值、最大值、最小值或其它统计运算来确定;以及

其中所述第一隧道及所述第二隧道聚合在一起以形成聚合隧道。

2.根据权利要求1所述的方法,其中所述第一隧道及所述第二隧道中的至少一个是通过无线通信信道建立。

3.根据权利要求1所述的方法,其中所述第一隧道是没有方向性。

4.根据权利要求1所述的方法,其中所述第一隧道是基于至少一个性能标准选择。

5.根据权利要求4所述的方法,其中所述至少一个性能标准选自包括以下项的群组:网络时延、响应时间、包延迟、带宽、吞吐量、丢包、弃包、功率消耗、信噪比、往返时间、干扰电平、差错率、服务质量、排队延迟以及包抖动。

6.根据权利要求1所述的方法,进一步包括:

g.通过第三隧道接收第二封装包;

h.解封装所述第二封装包以检索第二数据包,以及转发所述第二数据包到目的地址。

7.根据权利要求6所述的方法,其中所述第三隧道是不同于所述第一隧道。

8.根据权利要求7所述的方法,其中所述第三隧道通过第三网络接口建立,其中所述第三网络接口是相同于所述第二网络接口。

9.根据权利要求7所述的方法,其中所述第三隧道是通过所述第一网络接口建立。

10.一种通过多个网络接口于第一设备传输数据包的方法,其包括:

a.选择所述多个网络接口;

b.确定所述多个网络接口的每个网络接口的优先级;

c.确定所述每个网络接口是否仅用于传输、仅用于接收、还是用于传输和接收;

d.通过所述多个网络接口中的一个或多个网络接口传输所述数据包;以及

其中所述数据包通过所述一个或多个网络接口确定是仅用于传输、仅用于接收、还是用于传输和接收。

11.根据权利要求10所述的方法,其中步骤a-c是通过接口执行。

12.一种安置在网络环境中的第一节点,其包括:

多个网络接口;

至少一个处理单元;

至少一个主存储器;

至少一个辅助存储器,其存储程序指令,所述程序指令可由所述至少一个处理单元执行以用于:

a.从局域网(lan)接口接收第一数据包;

b.检测所述第一数据包;

c.确定是否符合至少一个条件;

d.将第一数据包封装在第一封装包中;

e.若符合所述至少一个条件,通过第一隧道从第一网络接口传输所述第一封装包;

f.若不符合所述至少一个条件,通过第二隧道从第二网络接口传输所述第一封装包;

其中所述至少一个条件是基于以下项的一个或多个:所述第一数据包的大小、所述第一数据包的协议、所述第一节点的地理位置、一天中的时间及属于所述第一数据包的会话的时延敏感度;

其中所述第一隧道和所述第二隧道有不同的网络时延;

其中所述网络时延是基于每个隧道观察到的时延的平均值、最大值、最小值或其它统计运算来确定;以及

其中所述第一隧道及所述第二隧道聚合在一起以形成聚合隧道。

13.根据权利要求12所述的第一节点,其中所述第一隧道及所述第二隧道中的至少一个是通过无线通信信道建立。

14.根据权利要求12所述的第一节点,其中所述第一隧道没有方向性。

15.根据权利要求12所述的第一节点,其中所述第一隧道是基于至少一个性能标准选择。

16.根据权利要求15所述的第一节点,其中所述至少一个性能标准选自包括以下项的群组:网络时延、响应时间、包延迟、带宽、吞吐量、丢包、弃包、功率消耗、信噪比、往返时间、干扰电平、差错率、服务质量、排队延迟以及包抖动。

17.根据权利要求12所述的第一节点,其中所述至少一个辅助存储器,其存储程序指令,所述程序指令可由所述至少一个处理单元执行以用于:

g.通过第三隧道接收第二封装包;

h.解封装所述第二封装包以检索第二数据包,以及转发所述第二数据包到目的地址。

18.根据权利要求17所述的第一节点,其中所述第三隧道是不同于所述第一隧道。

19.根据权利要求18所述的第一节点,其中所述第三隧道通过第三网络接口建立,其中所述第三网络接口是相同于所述第二网络接口。

20.根据权利要求18所述的第一节点,其中所述第三隧道是通过所述第一网络接口建立。

技术总结
一种用于第一节点的将包传输到第二节点的方法和系统,其包括:从局域网(LAN)接口接收包,检测所述包;确定所述包是否符合至少一个包条件;若所述包符合所述至少一个包条件则通过预定义隧道传输所述包;若所述包不符合所述至少一个包条件则通过第二隧道传输所述包。所述预定义隧道是第一隧道并且是在所述第一节点接收所述包之前建立的。所述第二隧道属于第一隧道组或第二隧道组。所述第一隧道、所述第二隧道和其它隧道可以在一起形成聚合的连接。此外,预定义隧道的使用可以基于所述包是否符合会话条件。

技术研发人员:宋浩伟;周杰怀;吴锦超;梁允俊;关英;马丁·朗梅德
受保护的技术使用者:柏思科技有限公司
技术研发日:2014.06.25
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-20142.html

最新回复(0)