首页 / 专利库 / 物理 / 质量 / 作为服务的网络质量

作为服务的网络质量

阅读:649发布:2020-05-11

专利汇可以提供作为服务的网络质量专利检索,专利查询,专利分析的服务。并且本 发明 提供了一种用于提高接入网络的性能的系统,所述接入网络用于将用户设备耦合至应用 服务器 。所述系统包括通过所述接入网络而被耦合至中间服务器的用户设备。所述用户设备具有处理器,该处理器适合于利用网络性能增强编码(NPEC)对数据进行编码,并且适合于通过所述接入网络将编码数据传输至所述中间服务器。所述中间服务器适合于接收该编码数据,并且具有处理器,该处理器适合于利用所述NPEC对该编码数据进行解码,并且适合于将解码数据传输至所述 应用服务器 。,下面是作为服务的网络质量专利的具体信息内容。

1.一种用于提高接入网络的性能的方法,所述接入网络用于将用户设备耦合至应用服务器,所述方法包括:
在所述用户设备处利用网络性能增强编码亦即NPEC对数据进行编码;
将编码数据传输至与所述应用服务器耦合的中间服务器;以及
在所述中间服务器处利用所述NPEC对所述编码数据进行解码,然后将解码数据传输至所述应用服务器。
2.根据权利要求1所述的方法,其中所述中间服务器是代理服务器。
3.根据权利要求2所述的方法,其中所述代理服务器与所述应用服务器共同位于一处。
4.根据权利要求1所述的方法,其中所述中间服务器选自于由代理服务器、中继穿越网络地址转换服务器亦即TURN服务器、虚拟专用网络服务器亦即VPN服务器构成的群组。
5.根据权利要求1所述的方法,其中所述中间服务器能够利用至少一个所述NPEC来进行编码和解码。
6.根据权利要求1所述的方法,其还包括:
在所述中间服务器处从所述应用服务器接收应用数据;
在所述应用服务器处利用所述NPEC对所述应用数据进行编码;
将编码的所述应用数据传输至所述用户设备;以及
在所述用户设备处利用所述NPEC对所述编码的应用数据进行解码。
7.根据权利要求1所述的方法,其中所述中间服务器包括NPEC服务器,所述NPEC服务器与代理服务器并置着。
8.根据权利要求1所述的方法,其中所述中间服务器选自于由代理服务器、中继穿越网络地址转换服务器亦即TURN服务器、虚拟专用网络服务器亦即VPN服务器构成的群组。
9.一种用于提高接入网络的性能的系统,所述接入网络用于将用户设备耦合至应用服务器,所述系统包括:
通过所述接入网络而被耦合起来的中间服务器和所述用户设备,
所述用户设备具有适合于利用网络性能增强编码亦即NPEC对数据进行编码、且适合于通过所述接入网络将编码数据传输至所述中间服务器的处理器,并且所述中间服务器适合于接收所述编码数据,而且具有适合于利用所述NPEC对所述编码数据进行解码、且适合于将解码数据传输至所述应用服务器的处理器。
10.根据权利要求9所述的系统,其中所述中间服务器是代理服务器。
11.根据权利要求10所述的系统,其中所述代理服务器与所述应用服务器共同位于一处。
12.根据权利要求9所述的系统,其中所述中间服务器选自于由代理服务器、中继穿越网络地址转换服务器亦即TURN服务器、虚拟专用网络服务器亦即VPN服务器构成的群组。
13.根据权利要求9所述的系统,其中所述中间服务器能够利用至少一个所述NPEC来进行编码和解码。
14.根据权利要求9所述的系统,其中
所述中间服务器中的所述处理器还适合于从所述应用服务器接收应用数据、利用所述NPEC对所述应用数据进行编码、以及将编码的所述应用数据传输至所述用户设备,并且所述用户设备中的所述处理器还适合于利用所述NPEC对所述编码的应用数据进行解码。

说明书全文

作为服务的网络质量

技术领域

[0001] 本发明涉及通信数据网络。更具体地,从网络的边缘来看,本发明涉及用于增加通过网络进行的数据传输的吞吐量的系统和方法。

背景技术

[0002] 为了实现从源终端站(source end-station)或网络至目标终端站(destination end-station)或网络的数据通信,基于数据包的网络分解数据(break-up data)分流到较小的数据包中。在这些数据包穿越网络的时候,这些数据包中的一些可能会因为拥塞或其他的网络局限而丢失。这样的丢失可能会极大地影响对源终端站与目标终端站之间的通信信道起杠杆作用的应用程序。理想的是,从许多应用程序的度来看,网络必须提供具有确定性的数据包延时和无数据包丢失的完美性能。然而,对于大多数服务与企业网络供应商来说,为实现完美网络性能的资金和经营成本是不切实际的。
[0003] 于是,为了提供具有高的网络性能的应用程序,需要有能够与低成本的网络一起使用的系统和方法。一种途径是创建新的编码协议栈(encoding protocol stack),它们被安装于各终端站处以改善对丢失和延时的响应。然而,因为源网络和目标网络中的全部终端站都必须升级以便使用新的编码协议栈,所以这种途径是非同小可的。
[0004] 另一种途径使用了截取标准协议的网络设备和在这些截取网络设备(intercepting network device)之间的编码协议,以便从网络丢失中进行恢复。这些设备被部署在网络的如下区域中:在这些区域处,驻留的应用程序需要比在网络本身中通常可获得的网络性能更好的网络性能。在美国专利No.7,953,114中说明了上述这样的设备,该美国专利是美国专利No.8,009,696的部分延续申请案,而后者又是美国专利No.7,742,501的部分延续申请案。
[0005] 该编码协议旨在减少丢失。为了实现这个目标,该编码协议增大了网络内所需的总带宽。由于网络限制,带宽的增加实际上反而会导致丢失的增加。截取网络设备必须检查这个问题,并且做出反应以确保通信终端站实现所期望的应用性能。
[0006] 现有的接入网络一般都提供了差的、不可靠的质量。一般来说,所产生的性能是不可靠的,并且质量是不可预知的。在另一方面,主干网络(backbone network)已经被升级为具有高速链路,并且通常具有足够的能,因此该工程化是更可靠的。
[0007] 为了避免不得不继续停留于差质量网络来获得内容,已经普遍地实施了缓冲。缓冲是通过如下方式来提高性能的解决方案,该方式是:在多个位置处复制数据以使该数据更接近应用程序,缓解了一些由于长跳(long hop)而导致的网络质量问题。
[0008] 然而,不是所有的内容都能被缓冲(例如,实时应用程序、用户生成的内容),并且缓冲的成本可能过高。最后,缓冲器的位置可能还是距离源太远,因而仍然会导致差的性能。
[0009] 对于不能被缓冲的应用程序,或者在缓冲过于昂贵或接近不能实现的情况下,目前需要提高应用程序的性能。

发明内容

[0010] 根据一个实施例,提供了一种用于提高接入网络的性能的系统,所述接入网络用于将用户设备耦合至应用服务器。所述系统包括通过所述接入网络而被耦合起来的用户设备和中间服务器。所述用户设备具有处理器,该处理器适合于使用网络性能增强编码(network performance enhancing coding;NPEC)来对数据进行编码,且适合于通过所述接入网络将编码数据传输至所述中间服务器。所述中间服务器适合于接收所述编码数据,并且具有处理器,该处理器适合于使用所述NPEC对所述编码数据进行解码,且适合于将解码数据传输至所述应用服务器。在优选实施例中,所述中间服务器是代理服务器、或者是中继穿越网络地址转换服务器(traversal using relays-around-network-address-translator server)亦即TURN服务器、或者是虚拟专用网络服务器(virtual-private-network server)亦即VPN服务器。这些中间服务器中的任意一者可以与所述应用服务器共同位于一处。
[0011] 优选地,所述中间服务器中的所述处理器还适合于从所述应用服务器接收应用数据、使用所述NPEC对所述应用数据进行编码、以及将编码的所述应用数据传输至所述用户设备。而且,优选地,所述用户设备中的所述处理器还适合于使用所述NPEC对所述编码的应用数据进行解码。附图说明
[0012] 现在参照附图,将仅以示例的方式来说明本发明的实施例。附图如下所述。
[0013] 图1是可以在其中实施本发明的环境的框图
[0014] 图2是图示了图1中所使用的截取网络设备中的组件的框图。
[0015] 图3图示了标准数据包的示例性分段和编码。
[0016] 图4图示了用于评估丢失的第一示例算法
[0017] 图5图示了考虑到平均丢失的示例性实施例。
[0018] 图6图示了编码层级回退(en encoding level back-off)的示例。
[0019] 图7是图示了当检测到丢失的显著增加并且启用编码层级回退时所执行的步骤的流程图
[0020] 图8是图示了为了检测在启用编码层级回退之后的丢失率稳定性而执行的步骤的流程图。
[0021] 图9是图示了当检测到丢失的显著增加并且启用编码层级回退时所执行的可替换用算法的流程图。
[0022] 图10是由于突发丢失(burst loss)因而对编码层级进行限制的示例的流程图。
[0023] 图11是在编码信道保持打开着的保持时间内对受限制的编码层级进行处理的示例的流程图。
[0024] 图12是在时间段d内对受限制的编码层级进行处理的示例的流程图。
[0025] 图13是对受限制的编码层级进行处理的示例的流程图。在这种情况下,在一时间段上将编码层级增大,以匹配受限制的编码层级。
[0026] 图14是本发明的实施例的交错模式的示例的流程图。
[0027] 图15是本发明的实施例的多级交错模式的示例的流程图。
[0028] 图16是图示了当截取网络设备正在处理突发丢失时所执行的步骤的流程图。
[0029] 图17是图示了当截取网络设备正在处理突发丢失并且启用交错模式时所执行的步骤的流程图。
[0030] 图18是图示了当截取网络设备正在离开交错模式并且启用随机模式时所执行的步骤的流程图。
[0031] 图19是图示了当截取网络设备正在离开交错模式并且启用随机模式时所执行的可替换用算法的流程图。
[0032] 图20是图示了当截取网络设备正在离开交错模式并且启用随机模式时所执行的另一可替换用算法的流程图。
[0033] 图21是图示了当截取网络设备正在离开交错模式并且启用随机模式时所执行的又一可替换用算法的流程图。
[0034] 图22是图示了当截取网络设备正在使用交错模式和编码层级回退来处理突发丢失时所执行的步骤的流程图。
[0035] 图23是图示了当处理突发丢失时用于判断是否需要编码层级回退的步骤的流程图。
[0036] 图24是性能没有增强的现有网络的代表。
[0037] 图25是用于实现性能增强的代理服务器的示例。
[0038] 图26是具有额外的性能增强的TURN服务器的示例。

具体实施方式

[0039] 虽然将结合某些优选实施例来说明本发明,但是应当理解的是,本发明不局限于这些特定实施例。相反,本发明旨在覆盖落入在由随附权利要求限定的本发明的精神和范围内的所有替换、修改和等同配置。
[0040] 图1图示了网络环境,其中,源终端站10和目标终端站30具有使用标准协议(通常是基于数据包)进行通信的应用程序。这种协议是通过网络20而传送的,网络20例如可以是因特网或一些其他通信网络。终端站10和30可以是诸如通过调制解调器、局域网或广域网、或者能够使用网络20的其他设备或系统而被连接起来的个人计算机等终端。对于驻留于终端站10和30上的某些应用程序,需要更好的网络性能,并且通过网络设备40和50来截取与这些应用程序有关的数据包。被称作“截取”网络设备的网络设备40和50使用编码协议对标准数据包进行编码,以提高网络性能。为了图示这种网络是如何运行的,假设标准数据包流是从源终端站10至目标终端站30(即,图1中的从左至右)。截取网络设备40对来自源终端站10的标准数据包进行编码,然后将编码数据包通过网络20传送至截取网络设备50。截取网络设备50对数据包进行解码,然后将重构的标准数据包传送至目标终端站30。在相反的方向上,由截取网络设备50对从目标终端站30至源终端站10的数据包流进行编码,然后将编码数据包通过网络20传送至截取网络设备40。截取网络设备40对这些数据包进行解码,然后将重构的标准数据包传送至源终端站10。
[0041] 图2图示了截取网络设备40的示例性实施例,截取网络设备40包括用于实施编码协议所必需的模,从而提高网络性能。模块能够驻留在单个设备中,或者能够被分布在几个设备中。在图2的说明性实施例中,截取网络设备40包括本地接口60、编码接口70、解码器80和编码器90。本地接口60将标准数据包发送到源终端站10,并且接收来自源终端站10的标准数据包,编码接口70将编码数据包发送到网络20,并且接收来自网络20的编码数据包。
[0042] 编码器90接收来自本地接口60的标准数据包,然后通过将数据包分割成一个以上的段来产生编码数据包,这些段随后就准备经由编码接口70而被传输至网络20。解码器80接收来自编码接口70的编码数据包,然后产生标准数据包,这些标准数据包要经由本地接口60而被传输至源终端站10。
[0043] 为了协助从编码数据包中重建标准数据包,编码器90还可以创建额外的编码数据包。这些额外的编码数据包是从标准数据包和编码数据包中推导出来的。如果一个以上的编码数据包在它们通过网络20进行传输的期间内丢失了,那么额外的编码数据包就协助目标截取网络设备50中的解码器重建或重组原始的标准数据包。
[0044] 图3图示了一个实施例的标准数据包的编码。为了简化说明,已经从原始的标准数据包和编码数据包中省略了头文件(header)。在编码器处所接收到的标准数据包400具有l字节的数据包负载,并且被分为n段402。这里,如该图所示,将n选择为l的整数因子,这n段中的各者都将具有l/n字节。此外,创建m个额外的编码数据包。在图3所示的示例中,m=1,并且附加的或额外的段404是通过如下方式而创建的奇偶校验段(parity segment),该方式是:向所有的n段都应用逻辑函数(例如,XOR(异或)函数)。
[0045] 一旦编码器已经完成了用于创建段和额外的编码段的处理,头文件就被添加到数据包中,从而创建编码数据包和额外的编码数据包。头文件使用了标准协议以使得在网络中预期没有专有的操作函数。因此,编码数据包和额外的编码数据包通过网络而被传送到解码截取网络元件。编码器能考虑到数据包的大小,并且能自动地增大n以避免发送如下这样的编码数据包:该编码数据包的大小在标准协议头文件被添加到编码数据包中时将会超过网络的最大传输单元(Maximum Transfer Unit;MTU)。而且,这种能力对于在巨型(jumbo frame)进入不能处理它们的网络之前将巨型帧予以分割也是有用的。
[0046] 因为解码器从编码数据包和额外的编码数据包重组标准数据包,所以它能处理编码数据包的丢失。如果在额外的编码数据包中包含足够的信息,就能重建因丢失的编码数据包所引起的缺失段。如果丢失太多,那么编码器就具有一些选项。如果标准数据包具有有限的使用期限(诸如视频数据包),那么就丢弃受到影响的标准数据包。如果应用程序本来提供了对数据包丢失的恢复能力,那么再一次而言,可以丢弃标准数据包。如果标准数据包具有合理的使用期限并且应用程序本来未提供恢复能力,那么解码器可以要求从编码器重发该缺失段。这假定编码器缓冲标准数据包直到该标准数据包已经在网络的另一终端上被成功地解码为止。
[0047] 为了实现用于通信应用的更高网络性能,在截取网络设备之间建立编码信道。在美国申请案No.12/193,345中说明了如何创建这些信道的示例。为了这一应用的目的,假设成功地协商了截取网络设备40与50之间的编码信道。编码信道被用于既传送数据又传送控制信息,并且编码数据包和额外的编码数据包现在能够在截取网络设备之间被发送和接收。
[0048] 驻留在上述网络中的终端站上的应用程序能容许通信网络内的不同层级的丢失数据包。基于标准协议信令元件(signaling element),截取网络设备能区分这些应用程序。使用TCP端口以信号告知使用FTP的文件传输。这将会打开64000范围内的TCP端口,从而在终端站之间传输文件。TCP对于网络内的丢失和延时变动有恢复能力。传输的关键目标是确保文件完整无缺地且以网络所允许的尽可能及时的方式到达。这种应用程序与视频会议应用程序形成对比。视频会议应用程序能够使用UDP端口5060上的会话初始化协议(Session Initiation Protocol)来以信号告知,并且视频会议应用程序包含与会议相关联的视频会话、语音会话和数据会话的信息。视频会话对丢失具有低容忍度;视觉帧(eye frame)(屏幕的完整图片)的丢失会极大地破坏视频压缩算法。视频流所需要的带宽越大,对丢失的容忍度越低,这是因为各标准数据包正传送着更多的与视频流相关的信息。语音会话相对更能容忍丢失,这是因为人类语言的可推测性本质。语音编解码器(voice codec)能够填充空隙,从而确保连续的语音流。不论在哪种情况下,视频会话和语音会话都需要具有小于1%的标准数据包丢失,从而避免视频阻断(video blocking)或语音剪辑(voice clipping),并且大多数供应商试图将标准数据包丢失保持在小于0.5%。
[0049] 在给定会话的上下文内,能用不同的丢失目标来处理不同的数据流。深度数据包检测(Deep Packet Inspection;DPI)能被用于截取网络设备中,从而检测应用程序(视频/语音/数据)的类型,并且根据为该类型的应用程序而配置的网络策略来设定丢失目标。最终,基于头文件中所提供的用于识别所要求的保护级别的信息(例如,SVC┄可伸缩视频编解码(scalable video codec)),各标准数据包能具有其自己的丢失目标。该丢失目标被定义为目标丢失率(Target Loss Ratio;TLR)。
[0050] TLR能被用来确定编码率,该编码率是由n和m确定的。对于在与给定的截取网络设备相关联的编码组件处终结的一个或所有编码信道,可以基于所观察的和/或所报告的网络性能来调节编码率。该目标是将编码层级设定成使得编码信道实现会话的TLR或者更好。
[0051] 参照图4,说明所观察的丢失率的确定,其跟截取网络设备A1106与截取网络设备B1107之间的编码信道有关,更具体地,参看在从截取网络设备A至截取网络设备B的方向上的信道。在“无丢失”或“可接受的丢失”的条件下,能够将编码设定为n=1和m=0,从而避免在不必要时在网络中使用额外的带宽。截取网络设备B1107的解码器1109使用图4中所示的子程序来计算在W个时间单位(例如,W=8秒)的间隔内所接收到的数据包数量Px和丢失的数据包数量LPx。该间隔时期还能被定义为对特定数量的数据包的接收。或者,LPx能表示重发请求的次数,使得已成功恢复的丢失不算作丢失率的一部分。在步骤1100中检测各个间隔的结束,并且在步骤1101中,使用例如下面的比率来计算丢失率Lx:
[0052]
[0053] 等式(1)中的Px可以是在时间段W内发送的标准数据包的数量。在这种情况下,LPx是丢失的标准数据包的数量。这被引用到SPLx。Px的另一个候选是对在时间段W内应当已到达解码器以重组标准数据包的编码段和额外的编码段的数量进行计数。那么LPx是在时间段W内在网络中丢失的段和额外的段的数量。这被引用到EPLx。通常,SPLx小于EPLx,这是因为如下事实:编码方案帮助解码器从丢失中恢复,这使得即使丢失了与标准数据包相关的编码数据包也能够再现标准数据包。从这个观点来看,EPLx是网络性能的更真实的指示。
[0054] 当前丢失率(Lx)可以指从标准数据包的测量结果中计算出的丢失(SPLx)。当前丢失率还可以指从编码段和额外的编码段计算出的当前丢失(EPLx)。另外,当前丢失率也可以指从SPLx和EPLx的组合中计算出的当前丢失率。这种组合的一个示例是:
[0055]
[0056] 这里,ωS是赋予给标准数据包的丢失的权值,并且ωE是赋予给编码段的丢失的权值。
[0057] 为了避免对随机事件做出反应,步骤1102在最后的z个丢失测量结果上计算平均丢失。为了考虑最近以来的网络状态,例如使用下面的等式来执行加权平均,从而使最近以来的当前丢失率测量结果加权:
[0058]
[0059] 这里,WLx表示对于间隔x对最近以来的丢失测量结果的加权平均值。权值是这样的:对于i
[0060] 为了避免保持对许多的丢失测量结果的跟踪,之前的加权丢失也可以被用于求出新的加权丢失,例如使用下面的等式:
[0061]
[0062] 这里,ωold和ωnew是总的来说被设定成使得满足ωold<ωnew的权值。
[0063] 可供选择地,可以在步骤1103中使加权丢失率归一化,从而仅使用整数以简化查找。可以使用下面的等式来计算归一化的丢失NLx:
[0064]
[0065] 这里,N是归一化因数(例如,N=10000)。
[0066] 然后,在步骤1104中,使用NLx来索引编码层级表格,从而提取当前编码层级。下面示出了编码层级表格的示例,该表格提供了8个层级,其中INT_max表示最大整数或大的值(例如,10000)。
[0067]
[0068] 然后,截取网络设备B1107的编码器1111把为那个会话发送的各编码数据包的头文件中所提取的编码层级1105插入到截取网络设备A1106。截取网络设备A1106中的解码器1112从所接收到的数据包中读取编码层级。然后,解码器1112用编码层级来索引新参数表格,以获得I和Max_n的值,Max_n表示考虑到当前编码层级而应当将n设定成的最大值。可以使用多种新参数表格来实现基于应用程序需求和可接受开销的不同的TLR。下面示出了使用8个丢失率的这种新参数表格的示例:
[0069]
[0070] 这里,INT_max表示最大整数(无穷大)。
[0071] 在截取网络设备A1106的编码器1108将s大小的数据包编码之前,它用s索引预配置的数据包大小表格,以获得Rec_n,该Rec_n表示考虑到数据包大小的n的推荐值。下面示出了一个示例性数据包大小表格:
[0072]
[0073] 使用该表格,s<88字节大小的数据包返回Rec_n=1。如果s>528字节,那么Rec_n=4。然后,把被用来对数据包进行编码的n的值确定为n=min(Rec_n,Max_n)。
[0074] 在另一实施例中,解码器1109使用上面的等式(3)或(4)来计算加权丢失率WLx。解码器1109能视需要进行归一化以使用等式(5)计算NLx。准确的丢失值(WLx或NLx)以插入到用于该会话的编码信道中的控制消息的形式,定期地(例如,每秒)被发送到解码器
1112。解码器1112从控制消息中提取准确的丢失值。编码器1108使用该准确的丢失值来索引新参数表格,从而获得Max_n和m。
[0075]
[0076] n的值被推导为n=min(Rec_n,Max_n)。可以构造多种新参数表格以反映不同的目标丢失率,并且编码器1108基于应用程序的目标丢失率而使用适当的表格。发送实际丢失率而不是当前丢失率,这允许在编码侧构造出参数表格,因此简化了构造。
[0077] 之前的等式说明了如何计算单个流的丢失率。使用图5作为示例,截取网络设备D1203计算分别来源于截取网络设备A1202、B1207和C1208的三个流1204、1205和1206的丢失率。除了返回为该流而测量到的丢失率之外,接收截取网络设备能在间隔时期x内从被发送给它的三个流计算出加权丢失率的平均值ALx。
[0078] 间隔时期可以与用于计算单个流的丢失率的间隔时期相同。例如,能按如下这样来计算平均丢失率:
[0079]
[0080] 这里,能使用上面的等式(3)或(4)来计算出WLi。然后,能使用上面的等式(5)使ALx归一化,从而创建归一化的平均丢失率NALx。然后,在编码层级表格中对NALx进行索引,从而获得远端处的平均丢失率(ALFEx)。编码层级表格可以与上面图示的表格相同,或者由不同的数字预配置而成。ALFNx被添加到与如上所述计算出的每流的当前丢失率一起由截取网络设备D1203的解码器传输到各个截取网络设备1202、1207和1208的编码数据包的数据包头文件中。
[0081] 如果在数据包头文件中包含了聚合信息(aggregate information),那么截取网络设备1202、1207或1208能使用该信息来决定是否改变它的编码层级。截取网络设备A1202的解码器还计算出近端处的平均丢失(ALNEx),近端处的平均丢失是在编码信道中从在测量期间x内起作用的g个编码会话1211、1212和1204接收到的当前丢失率的平均值。
[0082]
[0083] 在图5的示例中,在截取网络设备A1202处计算出的ALNEx表示从截取网络设备D1203、E1209和F1210接收到的当前丢失率的平均值。
[0084] 如果该会话的当前丢失率与ALFEx之间的差值小于预定阈值,那么如上所述,当前丢失率被用于设定编码层级。在这种情况下,假设该会话不大可能拥塞上游网络,这是因为当前丢失率比计算的ALFEx好,或者比计算的ALFEx稍微差一些。
[0085] 如果当前丢失率与ALFEx之间的差值在预定阈值以上,并且当前丢失率减去ALNEx的值在预定阈值以上,那么忽略当前丢失率,并且仅根据数据包大小表格来设定编码层级,从而通过为给定的数据包选择最高带宽效率的编码方法来使带宽使用最小化。预定阈值可以不同,并且可以根据网络策略和拓扑来设定。
[0086] 不论如何确定n(当前丢失或平均丢失),都能逐步地执行n的值的增大,从而避免开销的大幅度增加。当利用表格来推荐n的较高值时,n只能应用于随后的标准数据包的子集:下一次进入的w个标准数据包之中只有v个标准数据包使用n的增加值,而其他的w-v个数据包使用之前的n的较低值。如果所测量的丢失率继续增大或者随着所测量的丢失率接近下一个层级,那么v和w的值还能改变。
[0087] 例如,如果所测量的丢失(加权的或归一化的丢失)是0%,那么n=1、m=0且v=w=1。因此,所有数据包用n=1、m=0进行编码。如果所测量的丢失增加到大于0%但小于0.05%,那么n=4、m=1,但是v=1、w=3,以使得三个数据包中只有一个数据包用n=4进行编码,而其他数据包使用之前的编码层级n=1、m=0。当所测量的丢失超过0.05%但小于0.1%时,那么改变成v=1和w=2,以使得每隔一个数据包用n=4进行编码,而其他数据包使用之前的编码层级n=1、m=0。当所测量的丢失超过0.1%但不超过0.2%时,那么使用v=1和w=1,以使得每个数据包用n=4进行编码。在不同的预定丢失率下,能构造出不同值的v和w以缓和开销增加。这种能力能够显著地调和不同丢失率之间的传输功能。
[0088] 截取网络设备在网络丢失会随着编码层级的增大而减少的理论上进行操作。然而,随着n和/或m增大,由截取网络设备生成的且穿越网络的数据包的数量增多。这导致了在实现应用通信时所必需的带宽的增大。
[0089] 在某些情况下,额外的带宽会导致丢失的增加。如果路径中的至少一个链路是受带宽限制的,那么额外的数据包实际上就增加了这点上的拥塞。当数据包到达传输用链路时,数据包可能会立即传输或者可能无法立即传输。如果数据包不能被发送,那么大多数设备会实施排队以缓冲数据包,使得稍后能传输该数据包。在一些设备中,随着与该链路相关联的排队增长到特定级别,网络拥塞控制机制(例如,RED、WRED等)可能被调用以处理该链路上的拥塞。随着到达该链路的数据包的数量增多,丢弃编码数据包中的一者的可能性就增大。该可能性还会由于因编码信道而添加的额外开销而增大。额外开销会使排队的深度更快地增加,因此增大了数据包将会被丢弃的可能性。
[0090] 拥塞的另一个原因可能是切换上下文(switching context)。源终端站与目标终端站之间的路径中的网络设备可能在每个时间段内仅能够传送有限数量的数据包。因此,即使有足够的链路带宽可用于传输编码数据包,但是网络设备也不能传送所有帧,这导致丢失。
[0091] 因此,通过增大编码层级(这会增加路径中的数据包的数量和开销量),丢失率会增大。截取网络设备要求算法对这种情况做出反应。首先,截取设备必须检测编码信道上的丢失率的显著增加。这例如能通过在一时间段内跟踪丢失率的结果来完成。这可以是如利用等式(1)或(2)计算出的当前丢失率、利用等式(3)或(4)计算出的加权丢失率、利用等式(5)计算出的归一化丢失率、或者用任何其他方法来获得丢失。
[0092] 用于检测显著增加的一种方法是利用丢失率中的瞬时变化。这要考虑当前丢失率与之前的丢失率’之间的差值。
[0093] ΔCLRx=CLRx-CLRx-1 (8)
[0094] 如果该差值超过显著增加阈值(定义为SIT),那么将检测到丢失率中的显著增加。为了避免谬误地宣称已经发生了显著增加,在源截取网络设备与目标截取网络设备之间发送的编码数据包的数量必须是在统计上相关的。在这种情况下,利用下面的等式来决定:
[0095]
[0096] 之前的等式可以使用平均丢失率(像等式(3)和(4)),来替代瞬时比率的使用。这种变化能使用等式(10)来计算:
[0097] ΔWLx=WLx-WLx-1 (10)
[0098] 于是,能够按如下方式来确定显著增加:
[0099]
[0100] 另一种途径是当遇到编码层级的增大时就记录丢失率。丢失率(CLRoriginal)的变化被记录下来,并且被用作与当前的瞬时丢失率进行比较的基础。如果当前丢失率例如是原始丢失率的10倍,那么已经检测到丢失的显著增加:
[0101]
[0102] 一旦已经检测到丢失率中的显著增加,截取网络设备就会使用编码层级回退方案做出反应。在这种情况下,截取网络设备是通过减小编码层级以替代增大编码层级来对丢失做出反应。图6是用于响应于检测到丢失率中的显著增加而减小编码层级的一种技术的流程图。首先,步骤1300尽力找出会使丢失率停止增加的编码层级。一旦获得了这个层级,步骤1301就确保在使截取网络设备返回丢失率的正常处理之前丢失率是稳定的。
[0103] 图7图示了图6中的步骤1300的一个实施例。这种算法规定了用于找出能使丢失率停止增加的编码层级的步骤。该算法通过在步骤1400中记录当前丢失率而开始,然后在步骤1401中减小该信道的编码层级。能以数种方式来实现编码层级的减小。例如,对于该算法的每次迭代,可以线性地减小编码层级,或者编码层级能够以指数方式减小。一种实施方案支持这两种方法,并且在建立编码信道时允许选择其中一种方法。另一个例子使用了在创建编码信道之前所设定的配置策略。
[0104] 一旦在步骤1401中已经减小了编码层级,步骤1402就判断编码层级是否大于0。步骤1402中的否定回答表明当前丢失率仍然高于起始丢失率,这意味着编码回退算法不起作用,因此在步骤1403中终止该算法。随后,编码信道返回正常的丢失率处理,或者回到n=1和m=0并且通知用户和/或系统。
[0105] 如果步骤1402中的回答是肯定的,那么系统前进到步骤1404:在这个步骤中,在通过步骤1405再次对当前丢失率进行取样之前,截取网络设备等待时间段d。然后,在步骤1406中,该步骤1406判定当前丢失率是否大于起始丢失率,即,丢失率是否仍然大了某个预定量,算法从步骤1406返回到步骤1401和1402,以再次减小该信道的编码层级。如果步骤1406中的回答是否定的,那么系统前进到步骤1407,以判定当前编码层级是否导致了稳定的丢失率。
[0106] 图8图示了图6中的步骤1301的一个实施方案。这种算法规定了用于判定当前编码层级是否已导致稳定的丢失率的步骤。该算法以循环的方式运行,该循环在步骤1500中被初始化。然后,在通过步骤1502再次对当前丢失率进行取样之前,截取网络设备在步骤1501中等待时间段d。如果当前丢失率显著地大于起始丢失率,那么在步骤1503中该算法退出并且返回至使编码层级回退。步骤1503判定当前丢失率是否仍然小于起始丢失率(步骤1503),然后该算法使循环计数器递增(步骤1504),并且继续对当前丢失率进行取样直到已达到迭代次数的最大值(步骤1505)。此时,由于已经处理了丢失率的显著增加,所以退出算法。
[0107] 存在有图6的算法的另一个实施方案。例如,图9图示了编码层级回退方案的替代用实施方案。在这种情况下,算法在步骤1600中将起始丢失率设定为当前丢失率值,然后步骤1601首先增大编码层级,以判断丢失率是否将会降低。如果步骤1604检测到丢失率的降低,那么该算法退出,并且继续前进以确保在返回正常的丢失率处理之前丢失率是稳定的。如果步骤1604没有检测到丢失率的降低,那么该算法前进到步骤1605和1606,从而将编码层级降低2个层级,然后前进到步骤1602,从而在再次检查当前丢失率之前等待一时间段。如果这成功了(步骤1603和1604),那么算法再次确保在返回正常的丢失率处理之前丢失率是稳定的。如果步骤1604判定当前丢失率仍然大于起始丢失率,并且步骤1605判定这不是第一次迭代,那么该算法使用图7的算法继续使编码层级回退。
[0108] 用于处理丢失率中的显著增加(在图6的步骤1300中)的另一种途径是使用图10的算法来限制引起了显著增加的编码层级。在步骤1700中,将当前编码层级记录为受限制的编码层级,然后在步骤1701中减小当前编码层级。然后,步骤1702确保当前编码层级仍然小于受限制的编码层级。
[0109] 存在有许多方法来判定编码层级的限制是否在图6的步骤1301中使丢失率稳定化。图11所示的一种方法是仅仅退出算法以使得再也不会使用该编码层级,虽然该编码信道是起作用的。图12图示了另一替代用技术,该技术在步骤1800中延迟一时间段d,之后才在步骤1801中重新启用用于该编码信道的编码层级。图13图示了另一种可选方案,其中编码层级被慢慢地调回到受限制的编码层级。其中发生了编码层级被慢慢地调回到受限制的编码层级的这一时间段依赖于在步骤1900中设定的延迟时间段d以及在步骤1902中的用来增大编码层级的增量。步骤1901将当前编码层级与受限制的编码层级相比较,从而判定当前编码层级是否小于受限制的编码层级。只要该回答是肯定的,那么系统前进到步骤1902以增大编码层级。一旦实现了受限制的层级,就在步骤1903中退出算法。
[0110] 用于处理高层级的网络丢失的另一种策略是将编码器构造成以交错的方式(称作“交错模式”)传输编码数据包,因而将丢失多个编码数据包的险分散到不同的标准数据包上,并且提供了编码数据包重组的更高可能性。因此,取代顺序地发送编码数据包组以使得各组对应于一个标准数据包的是,来自不同的标准数据包的编码数据包彼此交错。图14图示了交错模式的示例。在该示例中,假设将标准数据包A、B和C分别分段为编码数据包A1、A2;B1、B2、B3;以及C1、C2、C3和C4。编码数据包A2、B3和C4是额外的编码数据包。取代发送这些根据它们各自的标准数据包而被分组的编码数据包的是,这些编码数据包通过k个标准数据包的组而交错。在图14的示例中,k=3。编码器将与k个标准数据包对应的编码数据包存储在缓冲器1303中。或者,编码器存储许多数据包,这些数据包是在预定时间段内到达的或是直到检测(例如,通过深度数据包检查)出具有时间敏感信息的数据包之前到达的。为了避免重排,将编码数据包的集合对齐于左边,以使得各标准数据包的倒数第二个数据处在尾部且最后被发送,而各标准数据包的第一编码数据包处在头部且最早被传输。编码器在物理接口1304上按照从顶部到底部的顺序来传输头部处的数据单元,或者按照任意的能最小化地发送来自同一标准数据包的两个连续编码数据包的顺序来传输头部处的数据单元。在图14的示例中,可以按照C1、B1、C2、A1、B2、C3、A2、B3和C4的顺序发送编码数据包。最后发送所有的额外的编码数据包能使延迟最小化。交错也能够随机地进行。交错的数据包组可以包括从接口传输过来的所有编码数据包,或者交错组可以包括同一应用程序(例如,视频会议的同一信道)、同一目的地或预配置分组的编码数据包。
[0111] 在图15中,通过使交错的编码数据包的不同交错组1401、1402、1403的编码数据包交错,实现了另一个层级的交错。通过这样的交错,数据单位的任何大丢失的影响能被最小化,并且,取决于所采用的编码和策略,这种类型的丢失是可以恢复的。
[0112] “交错模式”还能被用于解决突发丢失。如果当前丢失率(即,等式(1)、(2)、(3)或(4)的结果)超出目标丢失率(Target Loss Ratio)预定量(例如,两倍),那么能检测到突发丢失。图16图示了用于处理突发丢失的一种技术。当最初检测到突发丢失时,使丢失率去抖动(debounced)。假设该突发丢失坚持存在,那么在步骤2000中执行向交错模式的转变。如果交错模式是启用的,那么在步骤2001中检查并核实向随机模式返回的状况。
[0113] 图17图示了如何向交错模式转变的示例。这种算法将当前丢失率去抖动,从而确保在启用交错模式之前该问题是坚持存在的。该实施方案使用循环,该循环在步骤2100中被初始化,然后在步骤2101中延迟时间段d。在步骤2102中重获当前丢失率,然后在步骤2103中检查当前丢失率,从而判定当前丢失率是否超过目标丢失率的两倍(该两倍对于这一标准协议类型而言是可接受的)。步骤2103中的肯定回答导致循环计数器在步骤2104中递增,然后步骤2105判定循环计数是否已经达到最大迭代次数。如果回答是否定的,那么系统返回步骤2101,然后重复步骤2102和2103。步骤2103中的否定回答使得流程结束,步骤2105中的肯定回答使得交错模式在步骤2106中得以启用。
[0114] 因此,假设丢失率维持了延迟时间段d乘以最大迭代次数,将排队设定为交错模式,且算法继续进行,以处理向随机模式的返回。如果丢失率未继续超过用于该应用程序的TLR的两倍,那么退出算法,且禁用交错模式。
[0115] 能通过图18至图21所图示的几种不同方法中的任意一种方法来实施向随机模式的返回。能够以几种方式来选择实际上被用于编码信道的方法。截取网络设备可以被构造成使该方法被用于所有编码信道。另外,截取网络设备可以具有与正被编码的标准协议相匹配的策略。或者,当建立编码信道时,截取网络设备可以协商所要使用的方法。
[0116] 图18图示了用于向随机模式返回的最直接的方法。在这种情况下,当编码信道已经进入交错模式时,在步骤2200中启动定时器。当定时器期满时,在步骤2201中信道返回随机模式。
[0117] 在图19中,该算法确保在排队返回随机模式之前交错模式对当前丢失率有影响。在随机模式被启用之前,在时间段d乘以最大迭代次数的期间内,当前丢失率必须小于目标丢失率的两倍。为了完成这个,使用循环以对当前丢失率进行取样。该循环在步骤2300中被初始化,然后在步骤2301中等待延迟时间段d。在步骤2302中重获当前丢失率,然后在步骤2303中检查当前丢失率,从而判断当前丢失率是否超过目标丢失率的两倍。步骤
2303中的肯定回答导致循环计数器在步骤2304中递增,然后步骤2305判定循环计数是否已经达到最大迭代次数。如果回答是否定的,那么系统返回步骤2301,然后重复步骤2302和2303。步骤2305中的肯定回答导致随机模式在步骤2306中得以启用。
[0118] 图20类似于图19,除了使用平均丢失率来代替使用当前丢失率之外。在步骤2400中,通过将循环计数器设定为0且将起始平均丢失设定为当前平均丢失,循环被初始化,然后在步骤2401中,系统等待延迟时间段d。在步骤2402中,重获当前平均丢失率,然后在步骤2403中检查当前平均丢失率,从而判定当前平均丢失率是否超过起始平均丢失。步骤2403中的肯定回答导致循环计数器在步骤2404中递增,然后步骤2405判定循环计数是否已经达到最大迭代次数。如果回答是否定的,那么系统返回步骤2401,然后重复步骤2402和2403。步骤2405中的肯定回答导致随机模式在步骤2406中得以启用。
[0119] 图21类似于图20,除了还允许改变编码层级之外。在步骤2500中,通过将循环计数器设定为0且将起始平均丢失设定为当前平均丢失,循环被初始化,然后在步骤2501中,系统等待延迟时间段d。在步骤2502中重获当前平均丢失率,然后在步骤2503中检查当前平均丢失率,从而判定当前平均丢失率是否超过起始平均丢失。步骤2503中的否定回答使得在步骤2507中调节编码层级,从而处理当前平均丢失率,然后返回步骤2500。步骤2503中的肯定回答导致循环计数器在步骤2504中递增,然后步骤2505判定循环计数是否已经达到最大迭代次数。如果回答是否定的,那么系统返回步骤2501,然后重复步骤2501至2503。步骤2505中的肯定回答导致随机模式在步骤2506中得以启用。
[0120] 图22图示了与既处理当前丢失率的显著变化又处理超过TLR的两倍的突发丢失相结合的算法。在该实施例中,在步骤3000中,通过判定编码信道是否需要向交错模式转变而开始该算法。假设这是必需的,则在步骤3001中该算法进行检查以判定是否需要编码层级回退。不论是否需要回退,该算法随后都会在步骤3002中判定编码信道何时转变回随机模式。
[0121] 步骤3000中的处理向交错模式的转变能够以与图18中相同方式来处理。步骤3002使用图18至图21所示的任意一种算法来关注转变回到随机模式。
[0122] 图23图示了在步骤3002中判定是否需要回退。该算法对从随机模式向交错模式转变的影响去抖动。该测量应当在增大编码层级之后进行。该算法循环了延迟时间段d乘以最大迭代次数,并且检查当前丢失率。在步骤3100中,该循环被初始化,在步骤3101中,该循环具有延迟时间段d。当该延迟时间段期满时,在步骤3102中对当前丢失率进行取样,然后在步骤3103中与TLR的两倍相比较。如果当前丢失率大于TLR的两倍,那么超出计数器在步骤3104中递增。否则,循环计数器在步骤3105中递增。该处理继续进行直到循环计数器在步骤3106中达到最大迭代次数。此时,在步骤3107中检查超出计数器,如果其等于最大迭代次数,那么在步骤3108中启用编码层级回退。否则,算法继续进行,从而处理向随机模式的返回。
[0123] 在图24中,设备101、102使用本地的、质量低劣的、具有不可靠的网络性能的网络TM连接104来接入应用服务器103(例如Youtube 服务器)。
[0124] 存在有几种网络性能增强的编码技术(NPEC)。NPEC包括任意一种如下的网络编码技术:该网络编码技术在一个位置使用编码器,同时在第二个位置使用解码器,并且在该网络编码技术中,位于编码器与解码器之间的部分中的网络的性能得以提高。NPEC包括例如上述的NPEC、以及在美国专利No.7,706,365和美国专利公开No.2011/0149087中说明的那些、或者任何其他的类似方法。因为这些技术通常修改标准协议,并且如果在另一侧没有相配的解码器,数据包就不会被恢复,所以NPEC通常需要标记符“bookending”,它意味着在一端需要有编码器/解码器对,同时在另一端也需要解码器/编码器对,从而解决双向连接。
[0125] 图25图示了不能将NPEC放置在应用服务器端的实施例。代理服务器201被添加到网络中,从而实施一个以上的NPEC机制的编码/解码。通信量经由代理服务器路由,并且设备101、102与代理服务器201(通常是接入网络)之间的网络部分202基于代理服务器201中所实施的所选NPEC规范而被编码/解码。结果,该网络部分具有增强的性能和可靠性。
[0126] 代理服务器201可以与应用服务器103并置着,以便进一步使性能劣化最小化。在另一实施例中,NPEC服务器被部署成与代理服务器并置着。
[0127] 在代理服务器中使用上述NPEC,备份应用程序能减少80%的备份时间。灾难恢复能提高5倍,并且大文件的传输能缩短6倍。
[0128] 中继穿越NAT(Traversal Using Relays around NAT;TURN)是一种协议:该协议允许网络地址转换器(NAT)或防火墙后面的元件接收TCP或UDP连接上的输入数据。图26示出了这样的示例:其中TURN服务器301实施NPEC服务且客户端302、303中的一者或两者能受益于在NPEC所保护的网络部分304中增强的/可靠的质量。
[0129] 能设计任意的性能敏感的应用程序,从而实施NPEC的编码/解码,然后通过代理服务器或TURN服务器来接入NPEC服务。或者,设备可以已经包括一个以上的NPEC能力驱动器(NPEC capable driver)。
[0130] 提供质量作为服务的另一实施例是通过使用VPN服务器。一个以上的NPEC编码/解码机制能在VPN服务器及在VPN客户端中被实施,从而至少客户端与VPN服务器之间的部分具有增强的质量。
[0131] 代理服务器实施例能任意搜集测量结果,以确保NPEC管理部分的性能为足够,且能在测量结果上进行性能分析以确保网络工程为足够。
[0132] 在下面的说明中,为了解释而陈述了很多细节,为的是提供本发明的透彻理解。然而对本领域技术人员很显然,为了实践本发明,这些特定细节不是必需的。在其他情况下,为了不难理解本发明而以框图形式示出已知的电结构和电路。例如,未提供关于文中说明的本发明实施例是否作为软件程序、硬件电路、固件或它们的组合而被实施的特定细节。
[0133] 可以在具有端点的网络(诸如服务器或其它计算设备以及相关联的编码组件)中实施本发明的实施例。能在硬件、软件或它们的组合中实施编码组件和所说明的方法。这些在软件中实施的部分能被表示为存储在机器可读介质(还称作计算机可读介质、处理器可读介质或具有计算机可读程序代码的计算机可用介质)中的软件产品。机器可读介质可以是任意合适的有形介质,其包括磁、光或电存储介质,磁、光或电存储介质包括磁盘、光盘只读存储器(CD-ROM)、存储设备(易失性或非易失性)或者类似的存储机制。机器可读介质可以包含指令、代码序列、配置信息或其他数据的各种集合,当执行它们时,导致处理器执行方法中的步骤。本领域的普通技术人员感激的是,实施上述实施例所必需的其他指令和操作也可以存储于机器可读介质上。从机器可读介质运行的软件可以与电路连接,从而执行上述任务。
[0134] 虽然本发明的具体实施例和应用已经被图示和说明,但是需要理解的是,本发明不局限于文中公开的精确结构和组成,并且在不背离如随附权利要求所限定的本发明的本质和范围的情况下,从前述说明可以做出显而易见的各种修改、改变和变化。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈