用于估计丢失数据的方法和系统与流程

文档序号:11532173阅读:289来源:国知局
用于估计丢失数据的方法和系统与流程
本发明总体上涉及计算机网络领域。更具体地说,本发明揭示用于重新产生通过聚合连接(aggregatedconnection)在第一通信路由器与第二通信路由器之间建立的数据会话的丢失数据包的方法和系统。
背景技术
:多广域网(wan)站点到站点vpn路由器是支持集中多个互连(例如,用于访问一个或多个远程专用网络的wan连接)的带宽的路由器。在一些实施方案中,每个tcp/ip会话仅路由到一个wan。在此配置中,单个tcp文件传送会话仅能够利用每个终端上的一个wan连接的带宽。例如,在基于会话的站点到站点虚拟专用网络(vpn)连接中,vpn流量被路由到两个站点(例如,站点a和b)之间的多个wan连接。在一个实施方案中,在wan连接之间初始地形成m×n个隧道,其中m和n分别是站点a和站点b的wan网络连接的数目。随后经由不同的隧道路由应用程序tcp/ip会话。然而,应注意,虽然基于会话的站点到站点vpn能够针对不同的会话利用不同的隧道,但是此类型的连接中的单个下载会话仅能够利用一个隧道。当在两个路由器之间的数据会话中存在丢包或弃包时,可以存在用于恢复丢失包的不同方法。通常在接收路由器接收数据包并发送对应确认之前,发送器路由器重新发送丢弃或丢失的数据包。然而,这可以消耗带宽并且增加网络拥塞。更高网络拥塞可以引起更多弃包。因此,需要一种可以在发送装置不重新发送数据包的情况下恢复丢弃或丢失包的解决方案。技术实现要素:本发明揭示用于重新产生通过聚合连接在第一通信路由器与第二通信路由器之间建立的数据会话的丢失数据包的方法和系统。当第一通信路由器通过聚合连接从第二通信路由器接收属于数据会话的数据包时,第一通信路由器将数据包传输到第一主机并且确定是否存在一个或多个丢失数据包。如果存在一个或多个丢失数据包,则第一通信路由器确定一个或多个丢失数据包的全局序列号(gsn)和每隧道序列号(ptsn)并且重新产生一个或多个丢失数据包的净负荷。随后将一个或多个新数据包传输到第一主机。一个或多个新数据包包括一个或多个丢失数据包的净负荷,并且分配有所述一个或多个丢失数据包的gsn和ptsn。根据本发明的一个实施例,基于同一数据会话的一个或多个前一数据包和/或同一数据会话的一个或多个下一数据包而重新产生一个或多个丢失数据包的净负荷。根据本发明的一个实施例,通过计算一个或多个前一数据包和/或一个或多个下一数据包的净负荷的平均值来重新产生一个或多个丢失数据包的净负荷。根据本发明的一个实施例,至少部分基于一个或多个前一数据包和/或一个或多个下一数据包的净负荷的方差值和平均值来重新产生一个或多个丢失数据包的净负荷。使用一个或多个前一数据包和/或一个或多个下一数据包的净负荷的平均值和标准差的组合来计算丢失数据包的净负荷。根据本发明的一个实施例,通过执行音频数据库的查找来重新产生一个或多个丢失数据包的净负荷。或者,通过执行文本数据库的查找来重新产生一个或多个丢失数据包的净负荷。当对于丢失数据包的净负荷存在多于一个可能性时,第一通信路由器基于从历史数据产生的可能性而选择所述多于一个可能性中的一个。根据本发明的一个实施例,通过使用非线性插值、最近邻插值、双线性插值和双三次插值中的一个或多个来重新产生一个或多个丢失数据包的净负荷。根据本发明的一个实施例,计算一个或多个前一数据包和/或一个或多个下一数据包的变换系数的平均值。变换系数的平均值随后用作丢失数据包的第一变换系数。逆变换应用于第一变换系数,并且基于第一变换系数的逆变换而重新产生丢失数据包。根据本发明的一个实施例,使用一个或多个前一数据包和/或一个或多个下一数据包的净负荷创建回归分析模型,其中数据包的净负荷是因变量。随后根据回归分析模型确定近似函数。通过使用近似函数计算丢失数据包的净负荷来重新产生一个或多个丢失数据包的净负荷。回归分析模型的自变量可以是数据包的时间、gsn或数据包的时间和gsn的组合。具体实施方式以下说明仅提供优选的示例性实施例且并不意图限制本发明的范围、适用性或配置。实际上,优选的示例性实施例的以下说明将为本领域技术人员提供实施本发明的优选示例性实施例的有利描述。应理解,在不脱离如在所附权利要求书中阐述的本发明的精神和范围的情况下可以对元件的功能和布置进行各种改变。在以下描述中给出具体细节以提供对实施例的透彻理解。然而,本领域技术人员应理解,可以在没有这些具体细节的情况下实践所述实施例。例如,可以框图示出电路以免以不必要的细节混淆实施例。在其它情况下,在没有不必要的细节的情况下示出熟知的电路、过程、算法、结构以及技术以便避免混淆实施例。同样,应注意,实施例可以描述为过程,过程描绘为流程图、流程图表、数据流图、结构图或方块图。尽管流程图可以将操作描述为连续过程,但许多操作可以并行或同时执行。另外,可以重新布置操作的顺序。当操作完成时,过程终止,但是过程可以具有不包含在图中的另外步骤。过程可以对应于方法、函数、程序、子例程、子程序等。当过程对应于函数时,其终止对应于函数返回到调用函数或主函数。实施例或其各部分可以程序指令来实施,所述程序指令可在处理单元上操作以用于执行如本文中所描述的功能和操作。构成各种实施例的程序指令可以存储于存储媒体中。构成各种实施例的程序指令可以存储于存储媒体中。此外,如本文所揭示,术语“存储媒体”可以表示用于存储数据的一个或多个装置,包含只读存储器(rom)、可编程只读存储器(prom)、可擦除可编程只读存储器(eprom)、随机存取存储器(ram)、磁性ram、磁芯存储器、软盘、软磁盘、硬盘、磁带、cd-rom、快闪存储器装置、存储卡和/或用于存储信息的其它机器可读媒体。术语“机器可读媒体”包含,但不限于,便携式或固定存储装置、光学存储媒体、磁性媒体、存储器芯片或盒式磁盘、无线信道以及能够存储、容纳或载送指令和/或数据的各种其它媒体。机器可读媒体可以通过虚拟化来实现,且可以是虚拟机器可读媒体,包含在基于云的实例中的虚拟机器可读媒体。如本文中所使用的术语“计算机可读媒体、主存储器或辅助存储装置”是指参与将指令提供到处理单元以用于执行的任何媒体。计算机可读媒体仅是机器可读媒体的一个实例,所述机器可读媒体可以载送指令以用于实施本文中所描述的方法和/或技术中的任一个。此媒体可以采用许多形式,包含但不限于非易失性媒体、易失性媒体和传输媒体。非易失性媒体包含例如光盘或磁盘。易失性媒体包含动态存储器。传输媒体包含同轴电缆、铜线以及光纤。传输媒体还可以采用声波或光波的形式,例如在无线电波和红外线数据通信期间产生的声波或光波。易失性存储装置可以用于在通过处理单元执行指令期间存储临时变量或其它中间信息。非易失性存储装置或静态存储装置可以用于存储用于处理器的静态信息和指令,以及各种系统配置参数。存储媒体可以包含多个软件模块,所述软件模块可以实施为通过处理单元使用任何合适的计算机指令类型来执行的软件代码。软件代码可以作为一系列指令或命令、或作为程序存储在存储媒体中。各种形式的计算机可读媒体可以涉及将一个或多个指令的一个或多个序列载送到处理器以供执行。例如,指令可以首先承载在远程计算机的磁盘上。替代地,远程计算机可以将所述指令加载到其动态存储器中,且将指令发送到运行一个或多个指令的一个或多个序列的系统。处理单元可以是微处理器、微控制器、数字信号处理器(dsp)、那些装置的任何组合、或被配置成处理信息的任何其它电路。处理单元执行程序指令或代码段以用于实施本发明的实施例。此外,实施例可以由硬件、软件、固件、中间件、微码、硬件描述语言或其任何组合来实施。当在软件、固件、中间件或微码中实施时,用于执行必要任务的程序指令可以存储于计算机可读存储媒体中。处理单元可以通过虚拟化来实现,且可以是虚拟处理单元,包含在基于云的实例中的虚拟处理单元。本发明的实施例涉及使用计算机系统来实施本文所描述的技术。在实施例中,本发明的处理单元可以驻留在计算机平台等机器上。根据本发明的一个实施例,响应于处理单元执行易失性存储器中所包含的一个或多个指令的一个或多个序列,本文中所描述的技术由计算机系统执行。此类指令可以从另一计算机可读媒体读取到易失性存储器中。对易失性存储器中所包含的指令序列的执行使得处理单元执行本文中所描述的过程步骤。在替代实施例中,硬连线电路可以用于取代或结合软件指令来实施本发明。因此,本发明的实施例不限于硬件电路以及软件的任何具体组合。程序指令等代码段可以表示步骤、函数、子程序、程序、例程、子例程、模块、软件包、类或者指令、数据结构或程序语句的任何组合。代码段可以通过传递和/或接收信息、数据、自变量、参数或存储器内容而耦合到另一代码段或硬件电路。信息、自变量、参数、数据等可以经由包含存储器共享、消息传递、令牌传递、网络传输等任何合适的方式传递、转发或传输。替代地,硬接线电路可以用于取代或结合软件指令以实施符合本发明的原理的过程。因此,符合本发明的原理的实施方案不限于硬件电路和软件的任何特定组合。可以由节点提供的网络接口是以太网接口、帧中继接口、光纤接口、电缆接口、dsl接口、令牌环接口、串行总线接口、通用串行总线(usb)接口、火线接口、外围组件互连(pci)接口等。网络接口可以通过独立的电子组件实施或可以与其它电子组件整合。取决于配置,网络接口可以不具有网络连接或具有至少一个网络连接。网络接口可以是以太网接口、帧中继接口、光纤接口、电缆接口、数字订户线(dsl)接口、令牌环接口、串行总线接口、通用串行总线(usb)接口、火线接口、外围组件互连(pci)接口、蜂窝网络接口等。网络接口可以连接到有线或无线接入网络。接入网络可以载送一个或多个网络协议数据。有线接入网络可以使用以太网、光纤、电缆、dsl、帧中继、令牌环、串行总线、usb、火线、pci或可以传递信息的任何材料来实施。无线接入网络可以使用红外线、高速包接入(hspa)、hspa+、长期演进(lte)、wimax、通用分组无线业务(gprs)、全球移动通信系统(gsm)、gsm演进增强数据速率(edge)、码分多址(cdma)、wifi、cdma2000、宽带cdma(wcdma)、时分cdma(td-scdma)、蓝牙、wibro、演进数据优化(ev-do);数字增强型无绳通信(dect);数字amps(is-136/tdma);集成数字增强型(iden)或任何其它无线技术来实施。例如,网络接口可以用作局域网(lan)接口或广域网(wan)接口。实施例或其各部分可以计算机数据信号来实施,所述计算机数据信号可以采用用于经由传输媒体进行通信的任何合适形式,使得所述计算机数据信号是可读的以用于通过功能装置(例如,处理单元)来执行,从而执行本文中所描述的操作。计算机数据信号可以包含能够经由传输媒体传播的任何二进制数字电子信号,所述传输媒体例如电子网络信道、光纤、空气、电磁媒体、射频(rf)链路等,且因此数据信号可以采用电信号、光信号、射频或其它无线通信信号等形式。在某些实施例中,代码段可以经由计算机网络下载,所述计算机网络例如因特网、企业内部网、lan、城域网(man)、广域网(wan)、公共交换电话网络(pstn)、卫星通信系统、电缆传输系统和/或其类似者。图1a说明根据实施例调适的系统100,所述系统被配置成通过调节在数据传送会话期间的隧道带宽加权模式来优化结合的多个可变带宽连接的吞吐量。系统100包含多个站点102和104,所述站点各自包括至少一个网络节点。网络节点可以称为通信路由器。然而,本发明的范围不限于通信路由器,使得可以在网关、路由器、服务器或任何其它类型的网络节点处执行本发明。为简单起见,图1a说明站点102和104分别包括通信路由器106和108。通信路由器106和108可以实施为支持集中多个因特网连接的带宽的多wan路由器。通信路由器106和108通过网络110连接。网络110可以包括fan、man、wan、无线网络、pstn、因特网、企业内部网、外联网等。站点102和路由器106可以包括m个连接112,且站点104和路由器108可以包括n个连接114。连接112和114是用于在站点102与104之间的网络110内传送信息的数据连接。在所说明的实施例中,m等于3且n等于2;然而,这些值可以根据所需的路由器和配置改变。连接112和114可以具有类似的或不同的带宽能力。此外,连接112和114可以包括不同类型的wan连接,例如wifi、电缆、dsl、t1、3g、4g、卫星连接等。还应注意,站点102和站点104可以被认为是发送器或接收器两者,并且关于任一站点的功能性的论述可以在另一站点上实施。换句话说,系统100可以实施为对称网络。图1b说明根据本发明的一个实施例的网络环境。在通信路由器106与通信路由器108之间建立隧道103a、103b和103c。可以结合隧道103a、103b和103c以形成聚合连接。根据一个实施例,通信路由器106和108可以具有多个网络接口。通信路由器106经由其多个网络接口中的一个或多个与通信路由器108的一个或多个网络接口建立隧道103a、103b和103c。通信装置106和108可以充当网关、路由器、交换器、接入点、集线器、网桥等。图1c说明根据实施例调适的系统100,所述系统被配置成优化结合的多个可变带宽连接的吞吐量。系统100类似于系统101,除m×n个虚拟隧道116之外。当例如通过实施结合的站点到站点vpn连接在站点102与104之间建立结合的连接时,可以创建m×n个隧道116。隧道116对应于站点102的网络连接和站点104的网络连接的独特排列。可以在通信路由器106与108之间形成聚合连接。隧道116可以是虚拟隧道。多个建立的隧道116可以集中、组合或结合在一起以形成一个聚合连接。本领域技术人员将了解,存在用于集中、组合或结合多个建立的隧道以形成一个集中式隧道的多种方法。使用聚合连接的会话或应用将所述聚合连接视为一个隧道。聚合连接可以是端到端连接、虚拟专用网络连接或面向无连接的连接。例如,聚合连接可以是tcp连接或udp连接。在另一实例中,聚合连接是多个隧道的集中,并且每个隧道连接在通信路由器106与通信路由器108之间。在另一实例中,聚合连接可以是vpn隧道,包括多个建立的隧道,并且每个建立的隧道连接在通信路由器106与通信路由器108之间。图2a示出系统100的操作的高级流程图,其描绘了用于增加结合的连接的吞吐量的方法200。应了解,图2中提供的具体功能、功能的顺序等意图是根据本发明的概念的示例性操作。因此,本文中的概念可以用与所说明的实施例的方式不同的方式来实施。在所说明的实施例的块201处,当例如通过实施结合的站点到站点vpn连接而在路由器102与104之间建立结合的连接时,可以创建m×n个虚拟隧道116,如在图1c中所说明。虚拟隧道116对应于站点102的网络连接和站点104的网络连接的独特排列。在所说明的实施例的块202处,确定和/或分配隧道的默认权重。为了确定默认权重,实施例在站点102与104之间交换连接112和114的上行和下行带宽数据。使用此带宽数据,可以根据以下来计算默认权重:假设站点102的连接1至m的下行带宽是dl、d2、……dm,并且站点104的连接1至n的上行带宽是ur、u2、……un;站点102的连接x与站点104的连接y之间的隧道的默认权重可以定义为dw(x,y),其中dw(x,y)=dx.dy。使用以上方法来计算默认权重,如果连接112-1到112-3是具有10m/6m、8m/4m和6m/6m的相应上行带宽/下行带宽的多wan路由器的wan连接,且连接114-1到114-2是具有7m/5m和9m/3m的相应上行带宽/下行带宽的多wan路由器的wan连接,则每个隧道的相应默认权重将是如下:对于站点102对于站点104dw(1,1)=6*7=42dw(1,1)=5*10=50dw(1,2)=6*9=54dw(1,2)=5*8=40dw(2,1)=4*7=28dw(1,3)=5*6=30dw(2,2)=4*9=36dw(2,1)=3*10=30dw(3,1)=6*7=42dw(2,2)=3*8=24dw(3,2)=6*9=54dw(2,3)=3*6=18应注意,可构想计算默认权重的其它方式,并且上文仅是本发明的实施例的实施方案的实例。应注意,可以使用许多不同的加权模式来定义隧道的初始带宽。例如,可能希望仅使用接收站点的下行容量和发送站点的上行容量对一个方向上的隧道加权。用来表征在建立结合的连接时的隧道容量的任何加权方案可以用于本发明的目的。当根据实施例将包从站点102路由到站点104时,将以根据有效权重ew(x,y)的比率将包分布到隧道。初始地,实施例的有效权重设定成等于默认权重,ew(x,y)=dw(x,y),并且如果隧道116的带宽从初始设定保持不变,则所述有效权重对于包分布是最佳的。然而,如果用户在具有存在弃包情况的一个或多个隧道的tcp会话中正经由结合的网络连接下载文件,则所述会话的整体吞吐量将急剧地下降。这部分地是因为弃包将继续引起tcp重新传输,并且tcp的流量控制将保持较低吞吐量,即使无弃包的隧道未被全部占用。提高吞吐量的一种有效方式可以是避免此类弃包。为了这样做,在所说明的实施例的块203处,本发明的实施例对隧道正经历丢包率的提高或降低进行辨别。在块204处,实施例进一步用于修改正经历或已经经历丢包率变化的隧道的有效权重。可以连续地监控或基于特定时间周期监控丢包率信息。一旦确定隧道正经历不可接受的丢包率(块204-1),在块204-2处,所说明的实施例就减小隧道的有效权重。在一些实施例中,“不可接受的”可能意味着丢包率是非零数量,而其它实施例可以确定不可接受的比率是除预定义阈值以外的任何比率。实施例以逐步的方式、以连续的方式、以与丢包率的提高成一倍比例地降低等来实施这些降低。当以逐渐的方式进行降低时,实施例可以继续监控隧道以便优化所实施的降低的量。可以通过经由每个隧道从路由器106或路由器108发送心跳包来建立或监控隧道116。在一些实施例中,当接收终端在一段时间未能从隧道接收到心跳包时,所述接收终端将会将所述隧道看作下行并且所述隧道将不会用于路由流量。如果心跳包再次开始被接收,则所述隧道可以重新建立并连同其它隧道一起加权。由此,在所有包在隧道中被丢弃并且所述隧道的有效权重还原为零的情况下,实施例可以利用心跳包来监控并重新建立连接。此外,当隧道恢复其相应带宽的全部或部分时,例如,确定丢包率降低(块204-3)时,所说明的实施例用于提高此类隧道的有效权重(块204-4),以便充分或更充分地利用所述带宽。一些实施例使用预定步长提高隧道的有效权重,直到恢复精确的有效权重。其它实施例与最新测量的带宽成比例地提高有效权重,最新测量的带宽可以对应于最新测量的丢包率。此外,实施例可以基于预定线性或指数比例提高隧道的有效权重。在调节隧道的有效权重之后,或在确定无需调节之后,在所说明的实施例的块205处更新系统的加权模式。此更新可以包括存储任何处理后的信息、在进一步处理中使用此类信息、使得系统采取措施等。例如,关于块205进行的处理可以用于在一段时间内对加权模式取平均值,以便减少与高度瞬态异常相关联的误差。此外,可以在系统100上使用更新后的信息以修改数据传送会话的包分布,如关于图2b所论述。系统100可以在整个数据传送会话中连续地或周期性地继续实施步骤203到205。图2b说明其中在实施加权方法200之后至少部分基于隧道的修改后权重分布包的实施例。具体来说,所说明的实施例的块206用于根据通过方法200的操作确定的加权方案在隧道上分布包。在一些实施例中,此分布将在整个数据传送会话中改变,并且因此图2b的步骤被示为重复的。一些实施例在每次在块205处更新系统时改变包分布。此外,块205可以使得响应于特定丢弃率变化阈值等而周期性地实施改变。应了解,通过方法200的操作确定加权以及在块206处将所确定加权应用到包分布可以具有不同的周期性。例如,方法200可用于使用相对较短的迭代循环来提供加权模式信息的更新,而包的分布使用较长的迭代循环基于此类加权模式信息而变化。为了监控各个隧道116的带宽,本发明的一些实施例用各种信息封装每个所传输的ip包。图3说明示出可以封装在所传输ip包中的信息300的类型的实例实施例。版本字段302可以含有关于所利用的协议版本的信息且协议类型字段303可以含有净负荷包的协议类型。一般来说,此字段的值将对应于包的以太网协议类型。然而,另外的值可以在其它文档中定义。隧道id字段304可以是32位字段并且可以含有用以识别ip包的当前隧道的标识符。高级加密标准(aes)初始化向量字段306可以是32位字段并且可以含有aes加密的初始化向量。全局序列号字段308可以是32位字段并且可以含有序列号,所述序列号用来在用于各个会话的包中的每个包已经从它们的相应隧道出现时将所述包重新排序为适当的顺序。每隧道序列号字段310可以是32位字段并且可以表示分配给被路由到具体隧道的每个包的序列号。aes加密后的净负荷字段312可以用于传送ip包的净负荷。aes加密可以适用于净负荷的较高安全性,以便防止第三方攻击。上文所论述的每隧道序列号可以用于监控隧道中的弃包。在一个实施例中,接收终端上的路由器通过监控接收到的包的每隧道序列号来计算每f秒每个隧道的丢包率dr(x,y)。dr(x,y)可以表征为在周期f内错过的序列号除以序列号增加量。周期f的长度可以改变,并且在一个实施例中,f等于5秒。其它方法还可以用于监控弃包,例如:发送器可以周期性地通知接收终端其已发送的包的数目;发送器在每一恒定时间周期将心跳包发送到接收终端;以及通过监控心跳包的丢弃率通过从物理接口/装置/层等获取丢弃率图,接收终端可以估计总体丢弃率。接收终端可以将特定隧道的丢弃率、有效权重或其它带宽指示反馈到发送路由器。当发送器接收到关于丢包的信息时,一些实施例将隧道的有效权重ew(x,y)减小ew(x,y)·dr(x,y)。可以使用其它度量来修改隧道的有效权重。在一些实施例中,发送器可以接收反馈,并且有效权重可以降低大于或小于丢包率的数目。可以根据通信系统的具体需要来配置此类变化。以上实例表示尝试将隧道的有效权重降低至防止进一步弃包,同时最大化隧道的可用带宽量的权重的度量。发现此平衡的任何度量可以是优选的。图4a说明可以封装在反馈包中的信息400的类型的实例实施例,将所述反馈包发送到传输路由器,以便报告丢包率或在接收终端路由器处接收到的其它带宽相关数据。类型字段402可以包含关于将包含在数据-1字段404和数据-2字段406中的数据的类型的数据。数据-1字段404和数据-2字段406可以包含可以用于帮助路由器确定关于隧道数目、隧道带宽、隧道中的弃包数等的隧道信息的任何信息。在图4b的图表中示出数据字段404和406中的类型字段402的可能值的实例。封装在例如图3和图4中所示的所传输ip包中的信息还可以用于包缓存和重新排序。因为每个隧道的时延可能不同,所以当同一tcp会话的两个连续包通过结合的vpn隧道发送到vpn对等装置时,所述两个连续包不按顺序到达,因为所述两个连续包经由两个不同隧道路由。如果tcp会话从vpn接收无序包,则tcp会话将由于tcp重新传输而减慢。因此,在较慢包到达之前或在已经过到期时间之前,接收终端应缓存太早出现的包。通过此缓存,在到期时间之前出现的迟延包将按顺序转发到目标装置。此缓存有助于优化端对端吞吐量。应注意,时常在vpn连接的上下文中论述本文中所描述的实施例。呈现这些论述,以便示出结合的连接的实例实施例。在本文的权利要求中描述的发明性概念不限于此连接。实际上,可以通过本发明的实施例来实施其中可以获得和交换足够数据,以便动态地监控多个通信路径的带宽的任何连接,所述带宽用于数据传送会话。如上文所论述,每个包可以分配有两个不同序列号,即全局序列号(gsn)和每隧道序列号(ptsn)。这些数字可以用于有助于包缓存和重新排序操作。在将包传递到上层之后,接收终端可以更新下一预期的每隧道序列号(ne-ptsn)和下一预期的全局序列号(ne-gsn)。下文将描述在接收和解密包之后包可以如何进行缓存或转发到目标装置的一个方法。1.如果包的gsn等于零,则立即将包转发到目标装置。2.检查包的ptsn是否等于ne-ptsn。如果不是,则按顺序将具有较小gsn的所有包出列(转发到目标装置)。保持包未处理。3.更新ne-ptsn(即,将ne-ptsn设定成ptsn+1)。4.如果gsn小于ne-gsn,则转发到目标装置。5.如果包的gsn等于ne-gsn,则更新ne-gsn(即,将negsn设定成gsn+1)且转发到目标装置。重复更新ne-gsn,并且如果缓存头的gsn等于新的ne-gsn,则将缓存头从缓存器出列。6.否则(gsn大于ne-gsn),按gsn的顺序将包入列。7.如果包处于比固定时间量长的队列中,则将negsn设定成包的gsn+1且按顺序将包以及具有较小gsn的所有包出列。因此,在图2和图3中论述的封装包信息可以包含通过响应于监控丢包率而帮助优化隧道带宽以及通过帮助有效地重新排序数据传送会话中所接收包两者来优化数据传输系统(例如,100)的总体吞吐量的信息。图5说明根据某些实施例的可以用于实施系统、装置和方法的示例性基于处理器的系统500。基于处理器的系统500可以表示通信路由器106和108的架构。中央处理单元(cpu)501耦合到系统总线502。cpu501可以是任何通用cpu,或可以是被设计成实施以上教示的专用cpu。只要cpu501(和系统500的其它组件)支持如本文所描述的发明性操作,则本发明不受cpu501(或示例性系统500的其它组件)的架构限制。cpu501可以执行本文所描述的各种逻辑指令。例如,cpu501可以根据上文结合图2描述的示例性操作流执行机器级指令。当执行表示图2中所说明的操作步骤的指令时,cpu501变为具体来说被配置成根据本文所描述的教示的各种实施例操作的专用计算平台的专用处理器。系统500还包含随机存取存储器(ram)503,其可以是sram、dram、sdram等。ram503可以是存储可由cpu501执行的程序指令的辅助存储装置。系统500包含只读存储器(rom)504,其可以是prom、eprom、eeprom等等。如在本领域中众所周知,ram503和rom504保存用户和系统数据以及程序。系统500还包含输入/输出(i/o)适配器505、通信适配器511、用户接口适配器508和显示适配器509。在某些实施例中,i/o适配器505、用户接口适配器508和/或通信适配器511可以使用户能够与系统500交互,以便输入信息。i/o适配器505将例如硬盘驱动器、压缩光盘(cd)驱动器、软盘驱动器、磁带驱动器等中的一个或多个的存储装置506连接到系统500。除了ram503之外,存储装置用于执行以上实施例中所论述的操作的相关存储器需求。通信适配器511被调适成将系统500耦合到网络512,这可以使信息能够经由此网络512(例如,因特网或其它广域网、局域网、公共或私有交换电话网络、无线网络、上述项的任何组合)输入系统500和/或从系统500输出。通信适配器511可以被视为网络接口,并且系统500可以包括多个通信适配器511。用户接口适配器508将用户输入装置,例如键盘513、指向装置507和麦克风514和/或输出装置,例如扬声器515耦合到系统500。显示适配器509由cpu501驱动以控制在显示装置510上的显示。显示适配器509传输用于变换或控制供显示装置510使用的各种数目个像素的状态的指令,以在视觉上向用户呈现所需信息。此类指令包含用于从开到关改变状态、设定特定的色彩、强度、持续时间等的指令。每个此种指令组成呈现指令以控制如何在显示装置510上显示以及在显示装置510上显示什么内容。图6说明基于图1a中所说明的网络环境的网络环境。通信路由器106的lan接口中的一个连接到主机103,并且通信路由器108的lan接口中的一个连接到主机105。主机103和105分别处于站点102和104中。可以通过网络110在通信路由器106与108之间建立多个隧道。通信路由器106可以通过通信路由器106的一个或多个wan接口以及通信路由器108的一个或多个wan接口与通信路由器108建立隧道。仅出于说明的目的,通信路由器108通过三个连接来连接到因特网110,而通信路由器106通过两个连接来连接到网络110。网络110可以是互连网络,例如因特网。当在通信路由器106与108之间建立的数据会话的数据包丢失或丢弃时,通信路由器108确定存在一个或多个丢失数据包。如果通过通信路由器106重新发送丢失数据包,则带宽消耗增加,这可以引起网络拥塞。本发明揭示通信路由器108可以如何估计丢失数据包的内容,使得通信路由器106不需要重新发送丢失数据包。图7是说明根据本发明的一个实施例的过程的流程图。结合图1a观察,例如,当主机103传输去往主机105的数据包时,通过通信路由器106、因特网110和通信路由器108将数据包从主机103传输到主机105。当数据包从主机103到达通信路由器106时,通信路由器106通过因特网110将数据包转发到通信路由器108。随后在通信路由器108处执行图2的过程。在步骤701中,通信路由器108通过聚合连接从通信路由器106接收数据包。如果数据包属于数据会话,则当通信路由器108接收数据包时,在步骤702中确定数据包属于的数据会话。在步骤703中,数据包随后可以用于产生数据会话的一个或多个前一和/或下一数据包。通信路由器108可以使用下文将更详细论述的不同技术来执行步骤703。图8是说明根据本发明的一个实施例的过程的流程图。例如,在主机103与主机105之间建立数据会话。通过通信路由器106、通信路由器108和因特网110将属于数据会话的数据包从主机103传输到主机105。在步骤801中,通信路由器108接收数据会话的数据包。通信路由器108随后可以在步骤802中确定是否存在任何丢失数据包。如果存在丢失数据包并且在步骤803中确定丢失数据包在数据会话的顺序中不是第一或最后,则在步骤804中可以基于数据会话的前一数据包和下一数据包产生丢失数据包。如果丢失数据包在数据会话的顺序中是第一或最后,则通信路由器108在步骤805中将请求发送到通信路由器106以重新发送丢失数据包,因为基于仅一个或多个前一数据包或一个或多个下一数据包产生丢失数据包可能不可行。例如,如果通信路由器108被配置成通过计算一个或多个前一数据包的净负荷和一个或多个下一数据包的净负荷的平均值来产生丢失数据包,则通信路由器108不能够基于仅一个或多个前一数据包或仅一个或多个下一数据包产生丢失数据包。如果使用仅前一数据包或仅下一数据包,则产生的丢失数据包可能较不准确。在步骤806中,过程结束。根据一个实施例,通信路由器108计算一个或多个前一数据包和一个或多个下一数据包的净负荷值的方差和标准差。在一个变形例中,通过加上一个或多个前一数据包和/或一个或多个下一数据包的净负荷值的标准差值和平均值来产生丢失数据包的净负荷。在另一变形例中,通过从一个或多个前一数据包和/或一个或多个下一数据包的净负荷值的平均值中减去标准差值来产生丢失数据包的净负荷。本发明的范围不限于加上或减去标准差值和平均值,使得丢失数据包的净负荷可以通过使用平均值、方差值和标准差值的其它组合来计算,或者可以等于方差值或标准差值。在一个变形例中,通信路由器108通过检查数据包的全局序列号来确定是否存在丢失数据包。例如,当接收具有全局序列号0001、0002、0003、0004和0006的数据包时,通信路由器108可以确定具有全局序列号0005的数据包是丢失数据包。通信路由器108随后可以基于具有全局序列号0004的前一数据包以及具有全局序列号0006的下一数据包来产生具有全局序列号0005的丢失数据包。下文是通过分别计算三个前一数据包的净负荷p1、p2和p3的平均值来产生丢失数据包的净负荷p4的说明。例如:pl=00000040b850a5ac0007530217d108004500p2=001005d458b440002b06f44ad85c63idcoa8p3=0020010200500bf69efc464aabdba4f85010在一个变形例中,如下通过单独地加上净负荷的每个字节来计算净负荷的平均值:p4=(pl+p2+p3)/3p4=(003006116110154f01a2c910918d9619a20810f115155b8)/3p4=10025c5a71508b4358843288ad5a5c713d在另一变形例中,如下通过将所有净负荷的字节加在一起来计算净负荷的平均值:p4=(pl+p2+p3)/3p4=(3007171154fla200000000000000000000)/3p4=10025d05c6fb3600000000000000000000根据本发明的一个实施例,基于仅同一数据会话的一个或多个前一数据包而产生丢失数据包。例如,如果具有gsn0005的数据包是丢失数据包,则基于具有gsn0004的前一数据包产生丢失数据包。当在通信路由器108处重新产生丢失数据包作为新数据包时,新数据包分配有gsn0005。随后按以下顺序将前一数据包和新数据包以及新数据包传输到主机105:具有gsn0004的前一数据包、具有gsn0005的新数据包和具有gsn0006的下一数据包。当新数据包仅基于前一数据包时,新数据包的净负荷与前一数据包,即,具有gsn0004的数据包的净负荷相同。在一个变形例中,将ptsn分配到新数据包。随机地分配新数据包的ptsn。由于新数据包在通信路由器108处产生并且未通过任何隧道接收,因此随机地分配ptsn。或者,确定丢失数据包的ptsn,并且分配到新数据包的ptsn与丢失数据包的ptsn相同。例如,通信路由器108通过隧道103a接收具有ptsn0001a、0002a、0003a、0005a的数据包。所接收数据包的gsn分别是0001、0003、0004和0007。已通过隧道103b接收具有gsn0002和0005的数据包。因此,通信路由器108确定具有gsn0006和ptsn0004a的数据包是丢失数据包。因此,新数据包分配有gsn0006和ptsn0004a。在另一变形例中,通信路由器106将管理消息发送到通信路由器108。管理消息包括数据包的gsn以及数据包的对应ptsn的列表。因此,当已知丢失数据包的gsn时,可以确定丢失数据包的ptsn。在一个变形例中,新数据包的净负荷是一个或多个前一数据包的净负荷的平均值。新数据包的标头含有与数据会话的其它数据包的标头相同的信息,不同之处在于gsn。新数据包的gsn不同于数据会话的其它数据包,因为gsn应该是唯一的。根据本发明的一个实施例,基于仅一个或多个下一数据包产生丢失数据包。例如,如果具有gsn0005的数据包是丢失数据包,则基于具有gsn0006的下一数据包产生丢失数据包。当在通信路由器108处产生丢失数据包作为新数据包时,新数据包分配有gsn0005。当新数据包仅基于一个下一数据包时,新数据包的净负荷可以与下一数据包,即,具有gsn0006的数据包的净负荷相同。或者,当新数据包基于多于一个下一数据包时,新数据包的净负荷可以是一个或多个下一数据包的净负荷的平均值。根据本发明的一个实施例,通信路由器108具有音频处理功能。当在通信路由器108处接收音频包时,临时地保存音频包,使得通信路由器108的处理单元可以使用音频包的净负荷,以便创建音频数据库。当音频包含有语音时,这可能尤其有益。处理单元执行音频数据库的查找以重新产生丢失数据包的净负荷。例如,词语“苹果”出现于音频片段中。词语“苹果”可以包括在一个或多个数据包中,并且通信路由器108将对应于词语“苹果”的数据内容或净负荷存储于音频数据库中。出于说明的目的,词语“苹果”包括在两个数据包中,即,第一数据包和第二数据包。第一数据包和第二数据包是连续的数据包。如果由通信路由器108成功地接收第一数据包,但是未由通信路由器108接收第二数据包,则通信路由器108通过使用第一数据包的净负荷以及对应于音频数据库中的词语“苹果”的净负荷来产生新的第二数据包。根据第一数据包,通信路由器108估计词语是“苹果”,因为其净负荷含有与存储于音频数据库中的词语“苹果”对应的净负荷的至少一些部分。通信路由器108随后将第一数据包和新的第二数据包发送到主机105。根据本发明的一个实施例,当主机103将视频数据传输到主机105时,通信路由器108使用插值技术产生丢失数据包。例如,视频的每一帧封装在单独的数据包中。可以通过使用分别封装在一个或多个前一数据包中的一个或多个前一帧以及通过使用分别封装在一个或多个下一数据包中的一个或多个下一帧来产生封装在丢失数据包中的丢失帧。例如,非线性插值、最近邻插值、双线性插值、双三次插值等技术可以用于估计和重新产生丢失数据包的净负荷。根据本发明的一个实施例,通信路由器108使用存储于其存储媒体中的文本数据库,以便产生丢失数据包。例如,主机103正通过通信路由器106和108将文本数据传输到主机105。配置通信路由器106,使得在单独数据包中传输每个字符,并且还通知通信路由器108每个数据包仅包括一个字符。通过主机103连续地传输第一、第二和第三数据包。通信路由器108成功地接收第一和第三数据包,但不接收第二数据包。由于第二数据包是丢失数据包,因此第一数据包是前一数据包并且第三数据包是下一数据包。出于说明的目的,第一数据包含有字符“a”,并且第三数据包含有字符“d”。通信路由器108确定第二数据包丢失,并且第一、第二和第三数据包的净负荷形成三字符词语。通信路由器108随后查找词典,以便确定词语。由于三字符词语的第一字符确定为“a”并且三字符词语的第三字符确定为“d”,因此通信路由器108可以将第二字符估计为“n”。然而,假定第一字符和第三字符的另一可能性是词语是“添加”。在一个变形例中,通信路由器108随机地从用于词语的不同可能性中选择词语。在另一变形例中,通信路由器108基于历史数据选择词语。例如,如果根据前一数据包,词语为“添加”的可能性高于词语为“和”的可能性,则通信路由器108选择“添加”。因此,产生的新数据包具有对应于字符“d”的净负荷。在一个变形例中,通信路由器108借助于“空间”字符或对应于标点符号的任何字符来确定词语是三字符词语。或者,对应于词语的第一个或最后一个字符的数据包包括指示数据包包括词语的第一个字符或最后一个字符的指示符。根据本发明的一个实施例,当主机103将多媒体数据传输到主机105时,可以实施不同插值技术来产生丢失数据包。例如,主机103实施用于音频数据包的变换编码并且随后将音频数据包传输到主机105。音频数据包因此包括变换系数。如果存在丢失音频数据包并且通信路由器108接收前一音频数据包和下一音频数据包,则通信路由器108能够使用前一和下一音频数据包的变换系数来产生丢失音频数据包。在一个变形例中,前一和下一音频数据包的变换系数的平均值可以计算且用作对应于丢失音频数据包的新变换系数。随后通过将逆变换应用于新变换系数来产生丢失音频数据包。在另一变形例中,将不同权重分配到前一和下一音频数据包的变换系数。随后添加加权变换系数,以提供对应于丢失音频数据包的新变换系数。应了解,在所有以上实例中,代替使用一个前一数据包和一个下一数据包,多个前一和下一数据包可以用于产生丢失数据包。根据本发明的一个实施例,当通信路由器108通过因特网110从主机103接收数据包时,通信路由器108在预定义时间周期内临时地存储数据包。数据包存储于通信路由器108的存储媒体中,使得数据包可以用于重新产生任何丢失数据包。当存在丢失数据包时,通信路由器108可以使用所存储数据包来重新产生丢失数据包。例如,具有gsn0001、0002、0003和0004的数据包在通信路由器108处接收并且存储于存储媒体中。具有gsn0005的数据包未接收到,并且因此是丢失数据包。通信路由器108随后计算具有gsn0001、0002、0003和0004的数据包的净负荷的平均值。平均值随后用作所产生的新数据包的净负荷并且gsn0005被分配到新数据包。随后将新数据包传输到主机105。在一个变形例中,通过通信路由器108的用户和/或管理员设定预定义时间周期。在另一变形例中,基于由从通信路由器106发送到通信路由器108的数据包经历的总体时延而确定预定义时间周期。出于说明的目的,当通信路由器108被配置成使用至少四个数据包来产生丢失数据包时,设定预定义时间周期,使得至少四个数据包在给定时间存储于存储媒体中。因此,为了设定预定义时间周期,确定用于接收每个数据包所需的时间,即时延,并且基于所述时延计算预定义时间周期。根据本发明的一个实施例,通过近似函数产生丢失数据包。近似函数使用多个前一数据包的净负荷的回归来确定丢失数据包的净负荷。例如,通过因变量和自变量创建回归分析模型。因变量是净负荷的值。在一个变形例中,自变量是gsn。或者,自变量是时间。使用回归分析估计丢失数据包的净负荷,并且因此丢失数据包重新产生且发送到主机105。例如,在通信路由器108处接收具有gsn0001、0002、0003、0004、0005、0006和0007、0008、0009、0010和0012的数据包。具有gsn0011的数据包丢失。因此,通信路由器108通过创建所接收数据包的净负荷的回归分析模型而重新产生丢失数据包的净负荷。因变量(p)是数据包的净负荷值,并且自变量(x)是数据包的gsn。下文说明所接收包和回归分析模型的净负荷值(p1、p2、p3、p4、p5、p6、p7、p8、p9、p10、p12):pl=97p2=98p3=99p4=100p5=101p6=102p7=103p8=104p9=105p10=106p12=108因此,当相对于对应gsn创建净负荷值的回归分析模型时,如下获得近似函数:p=96+x使用此近似函数,如下计算具有gsn0011的丢失数据包p11的净负荷:p11=96+0011=107因此,通信路由器108通过等于107的净负荷值重新产生丢失数据包。应注意,为了更容易说明,上述实例中的净负荷值是示例性值。应了解,包的净负荷值通常可以较大并且数据包的尺寸较大。根据本发明的一个实施例,主机105被配置成执行估计并且重新产生丢失数据包。例如,软件、程序或应用程序可以安装在主机105处,以使用上述技术重新产生丢失数据包。附图说明图1a说明根据本发明的实施例的用于优化多个可变带宽连接的吞吐量的整个系统;图1b说明根据本发明的各种实施例的网络环境;图1c说明根据实施例调适的系统100,所述系统被配置成优化结合的多个可变带宽连接的吞吐量;图2a说明根据本发明的实施例的描绘用于增加结合连接的吞吐量的方法的流程图;图2b说明根据本发明的实施例的描绘用于增加结合连接的吞吐量的方法的流程图;图3是说明根据本发明的实施例的可以封装在所传输ip包中的信息的类型的实例实施例;图4a是说明根据本发明的实施例的可以封装在反馈包中的信息的类型的实例实施例;图4b是说明图4a的反馈包的字段的可能值的图表;图5描绘被调适成实施本发明的处理系统的框图;图6说明根据本发明的一个实施例的网络环境;图7是说明根据本发明的一个实施例的过程的流程图;图8是说明根据本发明的一个实施例的过程的流程图。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1