用于宽带通信链路性能监控的系统和方法与流程

文档序号:22244220发布日期:2020-09-15 20:00阅读:220来源:国知局
用于宽带通信链路性能监控的系统和方法与流程



背景技术:

本公开总体上涉及用于管理通信系统的系统和方法。更具体地,本公开涉及用于监控通信网络内的一个或多个通信链路的操作和性能的系统、设备和方法。

背景技术

现代通信网络系统的复杂性对以有效的方式管理通信链路提出了巨大的挑战。链路管理的一个重要的方面是吞吐量,其通常通过在网络中的两个通信设备之间传送大文件来测量。产生的业务往往会劣化网络内用户有效载荷业务的性能。此外,在计量接入网络中,文件传送被计入数据使用量,这可能会触发吞吐量节流或数据使用收费,因此致使下载大文件成为用于连续监控链路性能的不合适的方法。

分组配对是用于通过以下方式来测量链路吞吐量的常用技术:连续发送两个分组,测量对应地接收到的时间戳之间的分散度,并通过将分组大小除以分散度来计算吞吐量。尽管这种方法减少了对用户有效载荷业务性能的影响,但是测量要求高度准确的时间戳,这可能不合适于某些网络架构。例如,许多接入网络采用业务整形来限制最大的数据速率。为了测量终端用户体验到的吞吐量,测量方案需要发送足够数量的分组以触发业务整形,以便避免高估实际的终端用户吞吐量。由于分组配对方法只发送两个分组,所以它不会触发业务整形,并且因此,在存在业务整形器的情况下,常常会高估接入网络的吞吐量。在多个业务相交时,交叉业务(cross-traffic)可能由于路由器处的附加排队延迟而引起分组分散度的增加,这可能引起分组配对低估链路上的实际吞吐量。分组列分散度可以通过增加发送的分组的数量和应用统计分析来提高吞吐量估计准确性。分组列分散度也可以用于检测业务整形的存在。不幸地,分组列的注入可能对有效载荷业务性能产生负面影响,并且典型地不能用于连续地监控接入网络的性能。

网关后面的通信设备不具有公共ip地址,并且因此无法从网络外部访问。网络地址转换(nat)技术用于在私有ip地址/端口对和公共ip地址/端口对之间转换地址。经常地,nat使用包含将私有ip地址/端口对映射到公共ip地址/端口对的条目的转换表。如果通信会话在一定的超时持续时间内处于非活动状态,则可以删除条目。许多家庭网络设备和外部网络之间的ip地址关系可以使用nat冲孔(natholepunching)来维持,由此“保持活动的ip分组”被周期性地与外部服务器交换以保持nat表中的条目。然而,用于nat冲孔的分组并不非常适合用于监控接入网络性能。

因此,需要的是在克服现有方法的缺点的同时,可以有效地和连续地监控通信链路性能的系统、设备和方法。



技术实现要素:

本公开的实施例描述了一种方法,该方法在实现nat冲孔的同时,连续地监控接入网络并确定接入网络是否支持感兴趣的服务类型,并且准确地测量链路吞吐量,而对有效载荷业务性能影响很小或没有影响。在实施例中,位于nat后面的代理(例如,硬件和/或软件)通过去往或来自远程/外部服务器发送/接收通信分组的短突发来周期性地测量分组分散度,并通过将服务所要求的最小数据速率与根据分组分散度估计的吞吐量的下限相比较来确定链路是否可以支持特定的服务类型。这种发送的发生频率可以被调整,使得nat冲孔可以被维持。在期望更准确的吞吐量测量时,本公开的实施例可以通过使用某些协议(例如,lower-than-best-effort传输协议,例如低额外延迟后台传输(lowextradelaybackgroundtransport)(ledbat))来测量数据传送吞吐量,而不劣化用户有效载荷业务,使得在存在用户有效载荷业务的情况下,发送速率被降低以便避免干扰用户有效载荷业务。

在实施例中,用于在实现nat遍历的同时周期性地监控通信链路性能的方法包括:(1)通过第一通信设备发送至少一个通信分组,该通信分组包括时间戳和标识符,该第一通信设备位于nat后面并经由包括通信链路的网络耦合到第二通信设备;(2)测量通信分组到达第二通信设备的时间;(3)根据分组中的时间戳和到达第二通信设备的测量的时间,导出通信性能;(4)通过由第二通信设备发送包括时间戳、标识符和序列号的分组来确认接收到的分组,该第二通信设备通过包括(接收)时间戳、(接收)标识符和序列号来确认接收到的分组;(5)测量通信分组到达第一通信设备的时间;(6)根据分组中的时间戳和到达第一通信设备的测量的时间,导出通信性能;(7)如果满足触发条件,则通过第一通信设备触发通信链路的吞吐量的测量。在某些实施例中,如果吞吐量估计的下限低于预定义的阈值,或者如果计时器过期,则吞吐量测量被触发。在实施例中,通过使用某些协议(例如,lower-than-best-effort传输协议)传送大量数据来测量吞吐量,使得吞吐量测量不会劣化用户有效载荷业务性能。

附图说明

将参考本公开的实施例,其示例可以在附图中示出。这些图旨在是说明性的,而不是限制性的。尽管本公开通常在这些实施例的上下文中描述,但是应当理解,它不旨在将本公开的范围限制于这些特定的实施例。图中的项目未按比例绘制。

图(“fig.”)1是根据本公开的各种实施例的通信链路监控系统的框图。

图2是示出了根据本公开的各种实施例的由代理监控通信链路的方法的示例性流程图。

图3是示出了根据本公开的各种实施例的在服务器处监控通信链路的方法的示例性流程图。

图4示出了根据本公开的各种实施例的示例性探测分组结构。

图5描绘了根据本公开的各种实施例的用于估计宽带性能的操作。

图6示出了根据本公开的各种实施例的互联网速度测试和互联网有效载荷业务的示例性速度。

图7示出了根据本公开的实施例的用于互联网速度测试和互联网有效载荷业务的速度的示例性系统。

图8描绘了根据本公开的实施例的计算设备/信息处理系统的简化框图。

具体实施方式

在下面的描述中,出于解释的目的,阐述了具体细节,以便提供对本公开的理解。然而,对于本领域技术人员来说将显而易见的是,本公开可以在没有这些细节的情况下实践。此外,本领域技术人员将认识到,下面描述的本公开的实施例可以以多种方式实现,例如在有形的计算机可读介质上的过程、装置、系统、设备或方法。

图中所示的组件或模块是本公开的示例性实施例的说明,并且意在避免模糊本公开。还应理解,在整个本讨论中,组件可以被描述为单独的功能单元,其可以包括子单元,但是本领域技术人员将认识到,各种组件或其部分可以被划分为单独的组件或者可以被集成在一起,包括集成在单个系统或组件内。应当注意,本文讨论的功能或操作可以作为组件来实现。组件可以以软件、硬件或其组合实现。

此外,图内组件或系统之间的连接并不旨在限于直接连接。而是,这些组件之间的数据可以被中间组件修改、重新调整格式或以其他方式改变。此外,可以使用附加的或更少的连接。还应注意,术语“耦合”、“连接”或“通信地耦合”应理解为包括直接连接、通过一个或多个中间设备的间接连接以及无线连接。

在说明书中对“一个实施例”、“优选实施例”、“实施例”或“多个实施例”的引用意味着结合实施例描述的特定特征、结构、特性或者功能被包括在本公开的至少一个实施例中,并且可以在多于一个实施例中。此外,上述短语在说明书中的不同位置中的出现不一定都指代相同的一个或多个实施例。

在本说明书中的不同位置中使用某些术语是为了说明,并且不应被解释为限制性的。服务、功能或资源并不限于单个服务、功能或资源;这些术语的使用可以指代相关服务、功能或资源的分组,这些服务、功能或资源可以是分布的或聚合的。

术语“包括”、“包括有”、“包含”和“含有”应理解为开放式术语,并且以下任何列表均为示例性的,并且不意在限于所列项目。本文使用的任何标题仅用于组织的目的,并且不应用于限制说明书或权利要求书的范围。本专利文档中提及的每个参考文献均通过引用方式以其全部内容并入本文中。

此外,本领域技术人员应当认识到:(1)可以可选地执行某些步骤;(2)步骤可以不限于本文所阐述的特定顺序;(3)某些步骤可以以不同的顺序执行;以及(4)某些步骤可以同时完成。

在本文档中,术语“有效载荷下游业务的平均速度”、“有效载荷下游速率”和“用户有效载荷业务速度”可互换地使用。类似地,术语“互联网下游速度测试”和“速度测试下游速率”可互换地使用,并且“互联网速度测试的下载速度”和“速度测试业务的业务速率”可互换地使用。此外,如果一个位置比设备离互联网/云更远,则该位置被视为在设备“后面”。

尽管本公开是在“最大”或“平均”值的上下文中描述的,但本领域技术人员将理解,可以使用其他统计度量,例如平均值、中位数、百分位、标准差、方差、变化、最大值、最小值和n阶统计值。类似地,关于下游测量所描述的系统和方法可以等同地应用于上游测量。

图1是根据本公开的各种实施例的通信链路监控系统的框图。在实施例中,图1中的系统连续地且并发地确定接入网络是否支持感兴趣的服务类型并实现nat遍历。系统可以准确地测量链路吞吐量,而减少对有效载荷业务性能的影响。系统包括服务器100、网关110和lan设备140。网关110经由宽带连接150耦合到服务器100。在图1中的示例中,代理130-1驻留在网关110内,并且代理130-2驻留在lan设备140-1内。接入网络160可以是宽带连接150的一部分,宽带连接150将网关110连接到互联网或其他网络。例如,接入网络160可以是dsl系统或电缆调制解调器系统。宽带连接150可以经历诸如低吞吐量、过度延时、断电之类的问题或本领域技术人员已知的其他问题。此类问题可以发生在网络(包括接入网络160)内的不同位置处。

代理130可以位于nat120后面,并且使用nat遍历操作与服务器100通信。lan设备140耦合到网关110并且位于nat120后面。本领域技术人员将认识到lan设备140使用nat遍历操作,以便经由nat120内的地址转换过程与服务器通信。

在操作中,代理130可以周期性地向服务器100发送至少一个通信分组。通信分组被发送的速率可以是固定的、可变的、可配置的或以其他方式控制的,例如由代理130本身或由一些外部源(未示出)控制。分组可以包括诸如时间戳和代理的身份之类的信息,这些信息实现链路测量,并且可以用于监控宽带连接150的上游性能。在某些实例中,将周期设置为比nat绑定超时短,以维持nat孔。代理130可以在适当的情况下触发更准确的宽带吞吐量测量,例如,通过发送大文件。在服务器100从代理130接收分组时,服务器100测量通信分组的到达时间,并根据接收到的分组中的时间戳和测量的到达时间导出一个或多个通信性能度量,如将参考图4所讨论的。然后,服务器100可以将一个或多个确认分组发送回代理130。通信分组可以包括信息,例如用于监控宽带连接的下游性能的时间戳。此外,通信分组可以具有可以用于发现宽带连接的往返性能或上游性能的信息。

在实施例中,代理130测量来自服务器100的通信分组的到达时间。然后,代理130根据接收到的分组中的时间戳和分组的测量的到达时间来导出一个或多个通信性能。例如,如果检测到宽带连接中的问题,则代理130可以发起或请求更准确的上游宽带连接或下游宽带连接的吞吐量测量。在实施例中,可以通过在代理130和速度测试服务器170之间传送大文件来测量准确的吞吐量。在某些示例中,速度测试服务器170嵌入在服务器100中。

图2是示出了根据本公开的各种实施例的由代理监控通信链路的方法的示例性流程图。该方法可以由诸如图1中所示的系统之类的系统或落入本公开的范围和精神内的其他系统应用。

在某些实施例中,代理130使用所阐述的步骤和/或与其补充步骤的组合来执行实现检测链路性能的步骤。该过程可以在触发器200(例如,周期性地触发向服务器发送分组的代理)时开始。在某些示例中,可以将触发时段设置为小于或等于nat绑定超时以维持nat孔。在实施例中,在不存在关于nat绑定超时的先验知识时,周期性触发器可以测试不同的周期,监控来自服务器的确认分组,并确定代理130接收确认分组的周期。如果被触发,则代理130可以将m个分组210发送到服务器100,其中m大于或等于一。

图4示出了根据本公开的各种实施例的示例性探测分组结构。本领域技术人员将认识到,发送的分组的分组架构可以被修改、补充或以其他方式改变以允许链路监控。在图4中的示例中,分组包括udp报头、代理身份(id)、序列号和在分组被发送时的时间戳。另外,分组可以包括来自先前分组交换的测量结果,或允许服务器100或代理130更好地评估链路(例如,链路质量)的其他参数。如果期望大分组来提高监控的准确性,则代理130可以将随机数据添加到发送的分组。第三,如图2的220所示,代理130从服务器100接收n个确认分组,并且可以获得针对每个接收到的分组的时间戳。

在实施例中,代理130基于在步骤230处获得的时间戳和接收分组中的信息来导出通信性能度量。通信性能度量可以包括队列延迟、延时、往返时间(rtt)、错误概率、下游吞吐量的下限以及下游吞吐量低于阈值的概率,例如,由用于支持某些服务(例如,iptv)的最小下游吞吐量或由宽带提供商承诺的最小速度定义的阈值。本领域技术人员将认识到,可以使用本公开的各种实施例来监控和/或识别其他链路特性。

在图2中的步骤240处,例如如果满足触发条件,则代理130可以触发更准确的吞吐量测试。如果不满足触发条件,则代理130可以返回到周期性触发步骤200。在实施例中,在吞吐量的下限小于预定阈值(例如,支持诸如iptv之类的某些服务的最小吞吐量)时,更准确的吞吐量测量被触发。在实施例中,在计时器过期时,吞吐量测量被触发。吞吐量测量触发可以被延迟,直到通过网关的正在进行的业务可以下降到预定义阈值以下。如果吞吐量测量被触发,则代理130开始吞吐量测试。

在实施例中,通过在服务器100和代理130之间移动大文件来测量吞吐量。针对下游吞吐量测量,代理130可以从服务器下载大文件。针对上游吞吐量测量,代理130可以(创建并)使用大文件以将其上载到服务器。注意,用于吞吐量测试的服务器可以与服务器100不同,并且可以包括允许上载和下载大文件的任何类型的web服务器。由于大文件传递可能会劣化有效载荷业务的性能,因此在实施例中,吞吐量测量触发可以被延迟,直到网关中正在进行的有效载荷业务下降到阈值以下。

根据本公开的各种实施例,代理130可以集成在网关内,并且可以充当nat后面的lan设备的代理服务器,以便允许nat后面的其他lan设备连接到服务器,而不要求每个lan设备执行nat遍历操作。在该示例中,代理130可以位于nat后面,并且通过周期性地交换分组来维持与外部服务器的连接。代理130可以运行代理服务器,该代理服务器从其他lan设备接收通信分组,将分组中继到家庭网络之外的目的地,接收其目的地是lan设备的分组,并将分组中继到对应的lan设备。例如,可以利用插口安全协议(“socks”)作为代理服务器。在中继分组时,代理130可以使用先前使用的本地地址和端口对,例如用于nat冲孔。结果,并非所有lan设备都需要执行nat遍历操作。

图3是示出了根据本公开的各种实施例的在服务器处监控通信链路的方法的示例性流程图。服务器100可以耦合到代理130以连续地监控代理130并确定宽带连接150是否支持感兴趣的服务类型,而在同时实现nat遍历。在步骤300处,服务器100可以从代理130接收分组并测量接收到的时间戳。在步骤310处,服务器可以向代理130发送n个确认分组。在实施例中,由服务器100发送的分组可以与由代理130发送的分组相同并且包括一些相同的信息,例如,如图4中所示,图4示出了根据本公开的各种实施例的示例性探测分组结构。

回到图3,在实施例中,由服务器100发送的分组可以包括写入接收到的分组中的时间戳和序列号。在步骤320处,服务器100可以根据在步骤300处获得的时间戳和包含在接收到的分组中的信息来导出通信性能。在实施例中,通信性能包括队列延迟、延时、错误概率、上游吞吐量的下限以及上游吞吐量低于阈值的概率,该阈值被定义为支持诸如iptv之类的某些服务的最小上游吞吐量。本领域技术人员将认识到,通信性能可以包括与通信链路相关的其他参数和/或附加参数。

服务器100开始等待来自代理130的分组。在实施例中,服务器100可以提供用于大文件上载和下载的web服务,代理130可以使用该web服务来测量上游吞吐量和下游吞吐量。

图5描绘了根据本公开的各种实施例的用于估计通信链路的宽带性能特性的操作。特性可以包括队列延迟、延时、rtt、错误概率、吞吐量以及吞吐量低于阈值的概率,其中阈值是用于支持诸如iptv之类的某些服务的最小吞吐量。

如图5中所描绘的,代理130向服务器100发送具有bu字节的一个分组,并且无负载的上游吞吐量为rukbps。服务器100向代理130发送具有bd字节的两个分组,并且无负载的下游吞吐量为rdkbps。因为测量涉及到少量的分组,因此不会影响有效载荷业务的质量。在图5中,t表示时间戳,并且t表示持续时间。时间测量可以包含例如三个下标,每个下标用逗号隔开,其中第一个下标表示类型,第二个下标表示批次索引,并且最后一个下标表示序列号。五种字母代表:t代表发送,r代表接收,q代表队列延迟,d代表分散度,b代表基线延迟,o代表处理延迟,例如诸如延迟os延时之类的处理延迟。批次索引k指示它是在服务器和代理130之间交换的第k个分组。序列号是批次内分组的索引,从1开始。为了便于解释,假设用于上游和下游的序列号是每批一起计数的,这与图4中的探测分组结构中的序列号不同。例如,tt,k,n/tr,k,n表示在服务器100和代理130之间的第k个分组交换期间第n个分组的发送/接收时间戳。类似地,tq,k,n表示在第k个分组交换期间第n个分组的排队延迟。

延迟的估计表示为da,b,k,其中a表示下游d或上游u,b表示类型,并且k表示批次号(如果它是瞬时估计的话)或统计类型(如果它是使用从多个批次的估计获得的统计值)。以下类型用于d:q代表队列延迟,d代表分散度,b代表基线延迟,o代表os延迟,w代表单向延迟。注意,d用于表示“估计”,并且t用于表示地面真值。例如,du,w,k是第k批次的上游单向延迟的估计。在实施例中,代理130基于序列号来计数分组丢弃的数量,并通过将分组丢弃的数量除以接收到的分组的数量来测量分组丢失率。

在实施例中,代理130可以发送具有发送时间戳ts,k,1的分组560,如图5中所示。分组可以在时间tr,k,1到达服务器100。上游基线延迟(即,在没有业务时从代理130到服务器的延迟)可以是tb,k,1。在路径中存在交叉业务580时,分组可以通过排队延迟tq,k,1被进一步延迟。由于有限的上游带宽ru,其中td,k,1=8*bd/rd毫秒,接收到的分组570可以通过td,k,1被分散。服务器100和代理130通常不是时间同步的;因此,服务器100和代理130中的时间戳具有可以随时间波动但是与排队延迟相比相对稳定的时钟偏移tδ,并且因此没有批次索引。那么ts,k,1-tr,k1=tb,k,1+tq,k,1+td,q,1+tδ。在实施例中,服务器100花费时间to,k,1来准备分组500,并分别在时刻ts,k,2和ts,k,3将分组500和510发送到代理130。δts,k=ts,k,3-ts,k,2是两个连续分组发送之间的时间。

分组530和550可以对应于发送的分组500和510,并且它们可以在相应的时间tr,k,2和tr,k,3被接收。类似于上游条件,下游基线延迟为tb,k,2。在实施例中,在路径中存在交叉业务520时,分组530可以通过排队延迟tq,k,2被进一步延迟。由于有限的带宽rd,其中td,k,2=8*bd/rd毫秒,接收到的分组530可以通过td,k,2被分散。类似地,在路径中存在交叉业务540时,分组550可以通过排队延迟tq,k,3被进一步延迟。如果分组530具有相同的大小并且如果下游吞吐量rd没有改变,则接收到的分组550可以被相同的8*bd/rd毫秒分散。

使用这些测量,本公开的各种实施例可以将上游单向延迟导出为:

du,w,k=tr,k,1-ts,k,2=tb,k,1+tq,k,1+td,l,1+tδ

服务器可以使用写入分组560中的时间戳ts,k,1来估计du,w,k。注意,由于时钟偏移tδ,因此单向延迟估计du,w,k可能是不准确的。然而,在实施例中,即使具有时钟偏移,例如通过使用统计分析方法,也可以相对准确地估计排队延迟和延迟抖动。

首先,最小单向延迟可以被定义为du,w,k=mink=1,...,kdu,w,k。在延长的时间段内,上游路径和上游吞吐量可以保持不变。在这个示例中,基线延迟和分散度在测量时段内可以是常数,并且因此在排队延迟为零(即,tq,k,l=0)时,丢弃批次索引k,即,tb,k,1=tb,1,td,k,1=td,1,对于因此du,w,,min=tb,1+td,1+tδ。

在分组k处的排队延迟的估计等于du,q,k=du,w,k-du,w,min。由于排队延迟通常随着上游路径中的队列而增加,因此可以将排队延迟用作上游路径中的拥塞的良好指标。同样,可以将单向延迟抖动定义为du,w,jitter=std(du,w,k)=std(tq,k,1),其中std(x)表示随机变量x的标准偏差,这是因为tb,1+td,1+tδ几乎是常数。因此,单向延迟抖动可以用作糟糕多媒体通信性能的良好指标。

下游单向延迟估计为:

dd,w,k=ts,k,2-tr,k,2=tb,2+tq,k,2+td,2-tδ;

下游最小延迟估计为dd,w,min=mink=1,...,kdd,w,k;

下游队列延迟估计为dd,q,k=dd,w,k-dd,w,min;以及

下游单向延迟抖动为dd,w,jitter=std(dd,w,k)=std(tq,k,2)。

注意,如果发送时间戳ts,k,2存在于发送的分组500中,则代理130可以测量下游队列延迟和抖动。进一步注意,如果tq,k,2+td,2>δts,k,则使用第二下游分组510测量的单向延迟可能是不准确的,这是因为ts,k,3-tr,k3=tb,2+tq,k,2+td,k,2+td,k,31+tq,k,3-δts,k-tδ,这受到排队延迟和δts,k二者的影响。因此,在实施例中,如果第一分组的队列延迟大于阈值(其可以是δts,k-td,k,2),则可以通过仅使用接收到的第一分组来分析单向延迟。

本领域技术人员将认识到,本文中的等式和数学表达式旨在代表某些实施例。本公开的其他变体可以通过其他和/或附加的等式和变量来描述。

在实施例中,代理130可以从rtt、下游队列延迟和下游延迟抖动导出上游队列延迟和上游延迟抖动;因此,通过服务器100进行的上游测量不需要写入发送的分组500中。

首先,代理130可以将rtt测量为:

rttk=tr,k,2-ts,k,1=tb,1+tq,k,1+td,k,1+to,k,1+tb,k,2+tq,k,2+td,2

其与时钟偏移tδ无关。在某些示例中最小rtt可以定义为rttmin=mink=1,...,krttk,并且在这两个方向上队列延迟的总和是ddu,q,k=rttk-rttmin=tq,k,1+tq,k,2,这是因为路由路径、上游/下游速率和服务器准备分组的时间to,k,1在一段时间内相对恒定。在实施例中,代理130可以将上游队列延迟计算为du,q,k=ddu,q,k-dd,q,k,例如,如果du,q,k不在分组500中。rtt抖动可以被计算为rttjitter=std(rttk)=std(tq,k,1+tq,k,2)。由于上游队列延迟和下游队列延迟经常是不相关的,因此上游延迟抖动du,w,jitter可以根据rtt抖动估计为并且因此,代理130不需要在分组500中获得服务器的上游延迟抖动估计。再次,数学表达式和表示旨在代表实施例的示例,可能存在以不同数学方式定义的其他实施例。

在实施例中,代理130可以通过分析分散度识别接入网络速度的下限来导出下游吞吐量。代理130可以根据代理130中接收到的两个时间戳的差(即,dd,d,k=tr,k,3-tr,k,2=tq,k,3+td,k,3)来估计下游分散度,并且可以将下游瓶颈吞吐量估计为在实施例中,代理130可以丢弃下游瓶颈吞吐量估计,例如,如果dd,q,2>threshold。如果瓶颈位于路径的末端,则可以代表实际吞吐量rd,k的下限。因为代理130耦合到宽带连接的接入网络部分(例如,dsl和电缆),并且接入网络往往是宽带连接的瓶颈链路,因此可以是接入网络下游吞吐量的下限。在网关中,代理130可以访问计数器,该计数器测量网关在某一时间段期间接收的字节数。在实施例中,代理130可以使用这样的计数器来代替bd(下游发送分组中的字节数),例如,以提高吞吐量估计的准确性。

在实施例中,代理130可以知道lan设备使用的最小下游速率,表示为rd,req,这有助于识别吞吐量低于阈值的可能性。例如,如果用户以6mbps的速率观看hdtv流,并且使用lan设备140-1,则接入网络的最小下游吞吐量rd,req为6mbps。如果则接入网络具有足够的下游容量来支持用户服务。如果则接入网络可能没有足够的下游容量来支持这种用户服务,这是由于是接入网络容量的下限。在实施例中,例如,基于历史数据,p(rd,k≥rd,req),可以计算下游接入网络在第k批次为用户服务提供足够的容量的概率,其中如果则p(rd,k≥rd,req)=1,并且如果则为的单调递减函数。

在实施例中,如果满足触发条件240,则代理130可以估计宽带连接的准确的下游吞吐量。准确的下游吞吐量是要监控的重要的参数,以便确保[sp遵守其sla(服务水平协议),例如,isp承诺向用户递送的宽带速度。通常,宽带速度不受接入网络的容量的限制,而是受在业务整形器的队列已满的情况下延迟下游分组的业务整形器限制,例如,网关在某一时间段内接收超过某个数量的字节。测量系统应该发送足够数量的字节/分组来触发业务整形,以监控下游宽带速度。

在实施例中,服务器100可以向代理130发送n个分组,并且然后将宽带速度计算为在实施例中,服务器100可以开始针对第一批次发送2个分组(n1=2),并发送更多的分组(例如,nk=2×nk),直到(n-1)bd/(tr,k,n+1-tr,k,2)在没有排队延迟的情况下开始减小为止。在又一实施例中,可以重复测量的每个批次以提高估计的准确度。注意,该过程减少了对有效载荷业务的干扰,这是由于只有最后的测量才会触发业务整形。例如,假设执行l个测量,并且每个测量使用的分组是紧接在前的测量的两倍。由于这会增加分组的数量,直到互联网速度下降,这意味着业务整形被触发,所以只有最后的测量才会触发业务整形。因此,针对第一个l-1测量,有效载荷业务不会受到业务整形的影响,即,对有效载荷业务的干扰被显著减少。

在实施例中,代理130可以通过在代理130和服务器170之间传送大文件来估计宽带连接的准确的吞吐量。例如,如果具有b千字节的文件在t1秒内从速度测试服务器170传送到代理,则代理130可以将下游宽带吞吐量估计为b×8/t1kbps。如果用户在测量期间使用宽带连接,则这样的大文件传送可能会劣化用户有效载荷业务的性能。代理130可以首先确定正在进行的用户有效载荷业务的存在。在实施例中,代理130可以读取网关在过去t2秒内已经从宽带连接接收到的字节数,并声明如果接收到的字节数大于阈值,则在下游方向上存在用户有效载荷业务,并推迟触发准确的下游吞吐量测量。然而,在该t2秒中没有用户有效载荷业务可能不能确保在测量期间没有任何新的用户有效载荷业务。在实施例中,为了最小化大文件传送对新的用户有效载荷业务的影响,代理130可以使用lower-than-best-effort传输协议,该协议自动地产生tcp流。在实施例中,代理130和速度测试服务器170使用ledbat作为传输协议。

如前所提到的,本公开的实施例可以用于监控isp是否提供由sla阐述的互联网速度。例如,sla可以指定给定的时间内的一定的下载速度rdown。为了确定是否满足sla中的指定的速度,可以使用现有的互联网速度测试工具将rdown与当前的互联网下载速度x(t)进行比较。然而,这些现有的方法具有三个主要问题:

首先,如果rdown高,则速度测试要求相对大量的数据;因此,消耗相对大量的互联网带宽。例如,如果rdown为1gbps,并且持续时间或测试为1秒,则速度测试可以要求传送125mb的数据。

第二,在速度测试期间,由于用户有效载荷业务必须与速度测试业务共享带宽,因此互联网服务的质量可能会劣化;特别地,如果二者都具有相同的优先级(例如,在二者都使用tcp协议时),则用户负载业务可能会遭受分组丢失和不希望的速度降低。

第三,互联网服务质量可以随着时间而改变。例如,更多的用户可以在晚上使用互联网服务,使得在一天中的某些时间可能无法满足sla下载速度要求。作为另一示例,在某些时间期间,可能存在无线电干扰,再次引起指定的下载速度不被满足。因此,不频繁的速度测试可能无法检测到sla中指定的rdown与实际下载速度之间存在的差异。

本公开的实施例以若干种方式解决上面提到的问题:

(1)代替测量高达最大值rdown的互联网速度,某些实施例确定附加于用户有效载荷业务的测试分组是否可以在代理和服务器之间被成功地发送。如果可以在不影响用户有效载荷业务质量的情况下发送附加的测试分组,则可以得出结论:isp不对用户有效载荷应用节流,并且因此,用户的互联网体验不受例如sla中指定的下载速度(rdown)的影响。

为了说明某些实施例如何测试是否可以发送附加的测试分组,可以参考图6作出下面的假设,图6示出了根据本公开的各种实施例的互联网有效载荷业务和互联网速度测试的示例性速度:

ts表示速度测量的采样间隔(例如,每秒采取一个样本)。注意,为了便于呈现,假设了统一(等距)采样。在实践中,可以根据有效载荷业务模式和/或先前获得的互联网速度测试结果来调整采样间隔ts。还注意到,所提出的下游速度测量和测试仅仅是示例性的。类似地,所呈现的方法可以等同地用于上游速度测试。

x(n)表示在采样间隔ts中的测量窗口内(其中n代表样本索引)的有效载荷下游业务的平均速度,其是时间(n-1)ts≤t<nts处所有下游有效载荷服务所使用的互联网下载带宽的总和。

z(n)表示时间(n-1)ts≤t<nts处的互联网下游速度测试。

t1表示在有效载荷业务特性被监控时采样间隔的持续时间(例如,60秒)。

n1是有效载荷业务下游速度样本数,n1=t1/ts。

n2是互联网下游速度测试样本数,n2=t2/ts,并且t=0指示速度测试开始时的时间。t2表示速度测量间隔持续时间。

rmax(t1)是在不存在速度测试业务的情况下,t1≤t<0之间的最大下游用户有效载荷业务速度,其与max(x(n))(n1≤n<0)相同。

rdown是指定的下载速度,例如在sla中。

问题是检测在n1≤n<0上,rmax(t1)=max(x(n))是否被isp节流。

注意z(t)小于rmax,即-t1≤t<0之间的最大有效载荷速度或sla中指定的下载速度rdown;然而,有效载荷下游速率和速度测试下游速率的总和可能高于rmax。

为了测试该假设,在实施例中,代理可以以z(n)的速率下载分组,使得

max(z(n))=rd(在0≤n<n2上,其中rd≤rmax(t1))和rdown。

可选地,sum(z(n)+x(n),0≤n<=n2)≥bs,其中bs是触发业务整形的最小数据大小。

注意z(n)小于rmax(t1)和rdown。在现有技术系统中,z(n)大于rdown并且通常是无限制的。因此,本公开的实施例使用较低量的下载业务来测量互联网速度。

在实施例中,如果z(n)+x(n)≥(rmax(t1)+阈值)或应用于(z(n)+x(n))的任何统计值≥rmax(t1),则可以得出结论:可以通过互联网下载附加的测试分组,即,互联网服务没有被节流。

相反地,如果z(t)+x(t)或应用于(z(n)+x(n))的任何统计值<(rmax(t1)+阈值),则在实施例中可以得出结论,互联网服务可能已经被节流。在检测到此事件时,可选地,在没有速率限制或者具有rdown的速率限制的情况下可以测试互联网下载速度,该下载速度可以是由sla指定的下载速度。在实施例中,如果该互联网下载速度测试示出测量的互联网下载速度小于指定的rdown,则可以得出不满足sla中的下载速度的结论。

在实施例中,rd(互联网速度测试样本n2的下载速度)和阈值可以基于有效载荷下游业务x(n)的速度的统计值和样本数量来配置,以确定有效载荷业务速度样本n1的统计值。例如,假设在采样间隔ts内通过均匀采样测量互联网速度,并进一步假设x(n)在–n1≤n<0上的高斯分布具有标准偏差rs和平均值ra,则如果rd被设置为rmax(t1)+阈值-ra-rs,则每个样本n处x(n)+rd≥rmax(t1)+阈值的概率为16%。假设x(n)为独立且相同分布的随机变量,并且rd被设置为rmax(t1)+阈值-ra-rs,则对于0≤t<n2,x(n)+rd>rmax(t1)+阈值的概率至少一次为1-(1-0.15)n2。基于此关系,可以选择n2和rd使得它们提供目标检测概率。例如,给定rd,如果rd被设置为rmax(t1)+阈值-ra-rs,则n2可以通过设置1-(1-0.15)n2来设置以便具有某个期望的概率p。如果rd被不同地设置,则可以通过经验确定或使用本领域已知的任何方法来确定n2。同样,可以设置阈值以调整置信区间。假设用户业务是随机的,如本领域技术人员将理解的,可以在给定n1次重复测量的情况下计算测量的业务速度的统计的置信区间。例如,代替使用有效载荷业务速度的最大值,最大业务速度的置信区间可以被计算并用于设置rmax(t1)。

在实施例中,采样间隔ts或采样方法一般可以基于线路特性来调整。例如,如果代理和速度测试服务器之间的rtt相对较长,则可以增加ts以便减轻tcp慢启动的影响。在另一示例中,如果用户有效载荷业务是突发性的,或者互联网用户的数量大,则ts应该被设置得相对较短,以捕获突发性行为。

(2)为了最小化对用户有效载荷业务的影响,在实施例中,互联网速度测试分组可以使用诸如ledbat之类的lower-than-best-effort传输协议。

(3)由于(1)和(2)中的条件,因此不需要连续监控互联网速度。因此,在实施例中,在互联网速度可能被节流时,触发互联网速度测试。

在实施例中,可以采用机器学习方法来学习何时以及如何触发互联网速度测试。示例性机器学习方法可以使用已从用户有效载荷业务速度x(n)、先前速度测试结果、非侵入性速度测试(例如,分组对、分组分散度测量或rtt测量)结果中提取的特征,以及可以由代理收集的其他特征,以确定互联网速度被节流的可能性。例如,如果可以每分钟测量最大用户有效载荷速度v[k]=max(x[n]),其中k表示用于测试互联网节流可能性的k个最大用户有效载荷速度测量值内的样本索引,并且如果max(v[k])–min(v[k])在k分钟内小,例如,k=5分钟(在此期间,最大用户有效载荷速度被确定5次),则互联网速度更有可能被节流在与max(v[k])相等的速度。

在实施例中,如果非侵入性速度测试检测到分组丢失的突发,则确定互联网速度更可能已经被节流。在实施例中,通过应用使用例如逻辑回归的机器学习方法,可以估计互联网速度节流的可能性,并且然后响应于可能性大于给定阈值而触发速度测试。

在实施例中,可以协调用于不同的代理的互联网速度测试的触发器,以便增强对网络问题的诊断并实现sla违反检测。接着讨论了这种协调的六个示例性用例:

(1)在典型的接入网络中,许多接入线路(例如,dsl、pon和有线互联网)连接到诸如dslam、onu和电缆头端之类的网络聚合单元,如图7中所示,图7示出了根据本公开的实施例的用于互联网有效载荷业务的速度和互联网速度测试的示例性系统。

然后,来自多条线路的业务可以经由单个聚合线路连接到互联网。例如,耦合到同一接入网络的许多线路可以经由接入聚合单元(例如,dslam)连接到互联网。在另一示例中,许多无线线路可以连接到基站,该基站连接到互联网。因此,在连接到接入网络聚合单元的用户消耗大量带宽时,单个聚合线路可以代表瓶颈。因此,在实施例中,在触发条件被满足时,例如,在代理中的一个中,共享相同网络聚合单元代理中的多于一个代理可以发起互联网速度测试,使得网络聚合单元和互联网之间的连接可以被测试。

(2)由于速度测试使用大量的互联网带宽,因此如果许多网络节点同时运行速度测试,则这可能会造成网络拥塞。因此,各种实施例跨网络分配速度测试负载,以便避免拥塞。在实施例中,可以调度互联网速度测试,使得仅同时共享相同接入网络的相对较少的代理被允许运行速度测试。

(3)如果用户经历网络问题,某些实施例通过测量网络中不同节点之间的速度来确定问题的位置。在实施例中,确定问题是由wi-fi问题还是接入网络问题引起的。为了识别问题,耦合到网关(或cpe)的两个或更多个互联网速度测试代理可以同时开始互联网速度测试,例如,如果满足触发条件的话。如果接入网络被识别为问题的来源,则互联网速度测试中涉及的所有代理可以被指派低于历史上正常的速度。相反地,如果wi-fi被识别为问题,则可以为一些代理指派正常的速度,而触发互联网速度测试的代理可以被指派低于历史上正常的速度。测试服务器和代理可以位于访问聚合单元处。为了识别问题,实施例可以测量(1)接入聚合节点与互联网之间的速度以及(2)接入聚合节点与cpe之间的速度;并且如果测量(2)指示问题,则将问题归因于接入网络。

(4)为了测试相对较高的最大速度,例如1gbps,由于诸如cpu、存储器和os之类的硬件/软件限制,因此一个代理可能很难发送和接收高速通信流。为了解决这个问题,在实施例中,如果满足触发条件,连接和/或嵌入到网关(或cpe)中的两个或更多个互联网速度测试代理可以同时开始互联网速度测试。由于多个代理正在发送和接收数据,因此更容易达到相对较高的数据速率,例如1gbps。在实施例中,涉及多个代理的速度测试可以由网关/cpe处的代理或由服务器协调。

(5)在存在多于一个测试服务器时,在实施例中,可以协调两个互联网速度触发器(例如,每个对应于不同的测试服务器),以便检测网络问题的位置。例如,在图7中的代理和测试服务器之间测量的互联网速度测试结果相对较低时,则可以触发利用另一个测试服务器(未示出)进行的速度测试。如果结果一致,则其可能是由宽带速度问题引起的。如果不一致,则结果可能不是由宽带速度问题引起的。

(6)在实施例中,在代理具有多于一个宽带连接时,可以协调用于宽带连接的触发器。例如,假设针对所有宽带连接都触发了速度测试,不同速度测试结果的比率差异可以指示宽带连接中的一个中的一些互联网速度节流。

在实施例中,互联网速度测试代理可以与彼此协调,或者它们可以由多个测试服务器协调。例如,测试服务器可以从本地代理或远程代理接收速度测试触发器,并向连接到同一接入网络聚合单元的多于一个代理发送速度测试触发器。在另一个示例中,代理可以向连接到同一接入网络聚合单元或cpe的所有代理发送触发器。

可以理解,可以有许多可能的方法来识别连接到同一接入网络聚合单元的代理。例如,在实施例中,icmp路由跟踪(traceroute)可以用于发现相邻网络节点的主机名。在另一个示例中,可以发送lan广播分组来发现连接到同一lan的代理。

图8描绘了根据本公开的实施例的计算设备的简化框图。将理解的是,针对系统800所示的功能可以操作用于支持计算系统的各种实施例,但应当理解,计算系统可以被不同地配置并且包括不同的组件,包括具有与图8中描绘的组件相比更少或更多的组件。

如图8中所示,计算系统800包括提供计算资源并控制计算机的一个或多个中央处理单元(cpu)801。cpu801可以用微处理器等实现,并且还可以包括用于数学计算的一个或多个图形处理单元(gpu)819和/或浮点协处理器。系统800还可以包括系统存储器802,其可以是随机存取存储器(ram)、只读存储器(rom)或二者的形式。

还可以提供多个控制器和外围设备,如图8中所示。输入控制器803代表到各种输入设备804的接口。计算系统800还可以包括用于与一个或多个存储设备808接合的存储控制器807,该存储设备808可以用于记录用于操作系统、实用程序和应用的指令的程序,其可以包括实现本发明的各个方面的程序的实施例。存储设备808还可以用于存储经处理的数据或要根据本发明进行处理的数据。系统800还可以包括显示控制器809,以用于提供到显示设备811的接口,该显示设备811可以是阴极射线管(crt)、薄膜晶体管(tft)显示器、有机发光二极管、电致发光面板、等离子面板或其他类型的显示器。计算系统800还可以包括用于一个或多个外围设备的一个或多个外围控制器或接口805。外围设备的示例可以包括一个或多个打印机、扫描仪、输入设备、输出设备、传感器等。通信控制器814可以与一个或多个通信设备815接合,这使得系统800能够通过各种网络中的任何一种或者通过任何合适的电磁载波信号(包括红外信号)连接到远程设备,各种网络包括互联网、云资源(例如,以太网云、以太网光纤通道(fcoe)/数据中心桥接(dcb)云等)、局域网(lan)、广域网(wan)、存储区域网(san)。

在所示系统中,所有主要系统组件可以连接到总线816,该总线816可以代表多于一个物理总线。然而,各种系统组件可以在物理上彼此接近,也可以不在物理上彼此接近。例如,输入数据和/或输出数据可以从一个物理位置远程发送到另一个物理位置。另外,可以通过网络从远程位置(例如,服务器)访问实现本发明的各个方面的程序。这种数据和/或程序可以通过各种机器可读介质中的任何一种来传送。

本发明的各个方面可以编码在一个或多个非暂时性计算机可读介质上,非暂时性计算机可读介质具有指令以供一个或多个处理器或处理单元引起步骤被执行。应注意的是,一个或多个非暂时性计算机可读介质应包括易失性存储器和非易失性存储器。应注意的是,替代的实施方式是可能的,包括硬件实施方式或软件/硬件实施方式。硬件实现的功能可以使用专用集成电路(asic)、可编程阵列、数字信号处理电路等来实现。因此,任何权利要求中的术语旨在涵盖软件实施方式和硬件实施方式二者。类似地,本文所使用的术语“一个或多个计算机可读介质”包括具有体现于其上的指令的程序的软件和/或硬件,或其组合。考虑到这些实施方式备选方案,应当理解附图和伴随的描述提供了本领域技术人员编写程序代码(即,软件)和/或制造电路(即,硬件)以执行所要求的处理所需要的功能信息。

应注意的是,本发明的实施例可以进一步涉及具有非暂时的有形的计算机可读介质的计算机产品,其上具有用于执行各种计算机实现的操作的计算机代码。介质和计算机代码可以是出于本发明的目的而专门设计和构造的,或者它们可以是对于相关领域技术人员已知或可用的类型。有形的计算机可读介质的示例包括但不限于:诸如硬盘之类的磁性介质;诸如cd-rom和全息设备之类的光学介质;磁光介质;以及专门配置用于存储或存储并执行程序代码的硬件设备,例如asic、可编程逻辑器件(pld)、闪存设备以及rom和ram设备。计算机代码的示例包括机器代码,例如由编译器产生的代码,以及包含由计算机使用解释器执行的高级代码的文件。本发明的实施例可以全部或部分地实现为可以在由处理设备执行的程序模块中的机器可执行指令。程序模块的示例包括库、程序、例程、对象、组件和数据结构。在分布式计算环境中,程序模块可以物理地位于本地的、远程的或二者的设置中。

本领域技术人员将认识到,没有任何计算系统或编程语言对本发明的实践是关键的。本领域技术人员还将认识到,上面描述的多个元件可以在物理上和/或功能上分离成子模块或组合在一起。

本领域技术人员将理解,前面的示例和实施例是示例性的,并且不限制本公开的范围。在阅读了说明书并研究了附图时,对本领域技术人员来说显而易见的所有排列、增强、等同物、组合和对其的改进都被包括在本公开的真正精神和范围内。还应注意的是,任何权利要求的要素可以被不同地布置,包括具有多个依赖项、配置和组合。

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