首页 / 网络性能的分析

网络性能的分析有效专利 发明

技术领域

[0001] 本发明涉及数据网络,并且涉及用于分析关于数据网络的性能的方法和设备。具体地,本发明的实施方式涉及分析或测试关于使用诸如数据分组或其它这种消息的数据项的数字数据网络(诸如因特网、企业网络、数据中心或局域网)的网络性能。

相关背景技术

[0002] 为了获取指示网络性能的测量结果而分析网络可以使用各种技术来进行,包括涉及主动测试(在主动测试中,通信量通过特别用于进行测试目的的网络来发送)的技术和涉及被动测试(在被动测试中,分析由于用户活动导致已经流经网络的通信量)的技术。
[0003] 涉及被动测试的技术可以示出如由真实用户使用的真实应用程序的性能,但通常限于测试在特定时间使用的应用程序和网络,并且可能因为应用测试的通信量变化而使得难以比较网络性能。使用跨网络发送的参考通信量的主动测试通常不具有该缺点。
[0004] 然而,涉及主动测试的技术还具有可以测试什么的问题。通常,主动测试技术测试服务本身(例如,网页或视频性能)或基础网络二者之一。测试通常从测试点到服务或到位于网络中的测试服务器来执行。通过使用多个测试服务器,网络运营商可以取得跨网络的不同路径或子路径的性能的观察,但大规模部署并维护测试服务器昂贵,并且这无法给出不在运营商的控制下的网络的观察,除非测试服务器位于这些网络中。因此,关注使用基本网络路由设备来进行测试,使用诸如“跟踪路由(traceroute)”和“查验(ping)”的基本工具。
[0005] “跟踪路由”是在存活时间(TTL)或跳限制计数到期时利用因特网协议(IP)网络的特征来生成对消息的发送者的回复消息的技术。
[0006] “查验”是可以用于测试网络中的节点的可靠性并测量用于从源节点(诸如计算机、服务器、路由器等)向目的地节点发送并返回的消息的往返时间(RTT)的技术。被称为“ICMP探测”、“探测消息”或简称为“探测”的根据因特网控制消息协议(ICMP)的消息通常可以经由一个或更多个中间节点从充当测试点的发送者被发送到远程网络节点,如果该远程网络节点是用于探测的预期目的地或“目标”(通常在包括在探测中的报头信息中指示),则该远程网络节点将关联探测响应消息发回给发送者,这允许发送者确认已经达到目标,并且允许发送者测量RTT(还被称为时延)。
[0007] 在本背景以及下文中,将注意,词语“探测”通常在“调查”或一个或更多个“调查性消息”的意义上使用,而不是在“传感器”的意义上使用。因此,所涉及的探测可以为经由网络发送的一个或更多个分组或一个或更多个另一种消息。
[0008] 诸如上述的技术通常用于确定沿着网络路径定位的节点,而且分析多对节点之间的时延或时延变化。总时延可以确定节点有多远,同时可能由网络队列的填充而引起的时延变化可以用作网络拥塞的指示。这种技术可以提供每一个网络路径的相应节点处的网络性能的非常细粒度观察,这允许网络运营商甚至关于不在运营商的所有权或控制下的节点和跨网络的路径查看性能。
[0009] 这种技术的问题是结果不总是网络性能的可靠指示器。虽然穿过节点的实际网络通信量通常在节点的优化转发元件中处理(“快速路径”处理),但“跟踪路由”响应或“查验”通常将由节点的一般中央处理单元(CPU)来处理,并且通常涉及新分组或其它这种消息的生成(“慢速路径”处理)。由此,跟踪路由和查验测量结果通常指示所转发的用户通信量实际上未经历的延迟和损失。
[0010] 因此,使用诸如跟踪路由和查验的基本路由器功能确定网络性能的之前尝试由于由标准网络设备(诸如路由器和其它节点)进行的这些探测(即,探测分组或其它消息)的可能缓慢或可变处理而经常有缺陷,这导致网络问题的错误诊断。因此,许多系统已经使用专业测试基础设施(例如,专用测试服务器),但如以上所指示的,这些基础设施可能通常仅给出测试点与这些测试服务器所在的任何地点之间的总端到端路径性能。
[0011] 由此,需要即使当在IP网络中使用基本探测技术(诸如“跟踪路由”和“查验”)时也可应用的测试网络性能的改进方式。
[0012] “应用因特网数据分析中心”(“CAIDA”)已经开发了在被称为“Archipelago”项目的项目中使用的被称为“Scamper”的工具。该工具旨在允许批量跟踪路由和查验测量结果。它们已经发布以下论文:
[0013] M.Luckie、A.Dhamdhere、D.Clark、B.Huffaker以及K.Claffy的“Challenges in Inferring Internet Interdomain Congestion”,Internet Measurement Conference(IMC),2014年11月,15-22页(该论文可在以下位置在线获取:https://www.caida.org/publi cations/papers/2014/challenges_inferring_interdomain_congestion/)和D.Clark、S.Bauer、K.Claffy、A.Dhamdhere、B.Huffaker、W.Lehr以及M.Luckie的“Measurement and Analysis of Internet Interconnection and Congestion”,Telecommunications Policy Re search Conference(TPRC),2014年9月(该论文可在以下位置在线获取:https://ww w.caida.org/publications/papers/2014/measurement_analysis_internet_interconnection/)。这些论文考虑数据可以如何用于推断拥塞(特别是网络域之间的拥塞),并且讨论如何分析数据来检测网络问题。
[0014] 参考其它现有技术引用,US2005122983(“Gilmartin”)涉及计算VLAN时延量度,并且具体涉及在不需要知道VLAN的连接拓扑的详情的情况下计算多点VLAN时延量度。
[0015] US2014269303(“Comcast/Toy”)涉及管理网络中的拥塞。一种方法涉及接收与一个或更多个网络点有关的延迟信息(表示链路级延迟、连接级延迟或服务级延迟的类别),将延迟信息与阈值进行比较,以及如果延迟信息超过阈值,则执行与一个或更多个网络点关联的拥塞控制处理。
[0016] EP1206085(“Infonet”)涉及用于自动化服务等级协议的方法和设备。
[0017] 日期为1998年11月且由G.Almes、S.Kalidindi以及M.Zekauskas创作的标题为“ARound-trip Delay Metric for IPPM”的IETF网络工作组互联网草案定义了用于分组跨因特网路径的往返延迟的度量。
[0018] 日期为2010年1月的标题为“Understanding the Ping and  Traceroute Commands”(http://www.cisco.com/image/gif/paws/12778/ping_traceroute.pdf)的来自思科系统(Cisco System)的“Tech Notes”公开出版物例示了查验和跟踪路由命令的使用,并且在一些调试命令的帮助下捕获这些命令如何工作的更详细观察。
[0019] US2010/315958(“Luo等人”)涉及用于以非协作方式测量网络路径质量的方法和设备,并且涉及向远程节点发送由探测数据分组构成的探测并从其接收由至少一个响应数据分组构成的响应。

具体实施方式

[0073] 参照附图,将描述根据优选实施方式的方法和设备。
[0074] 在描述本发明的优选实施方式之前,将参照图1、图2以及图3更详细地说明以上简要提及的网络节点(诸如路由器)中的“慢速路径”和“快速路径”处理的问题。
[0075] 参照图1,图1示出了网络节点10和两个相邻节点10’和10”,这两个相邻节点分别被称为“上游”节点10’和“下游”节点10”。网络节点10通过所示单独/内部功能模块(注意,这些模块可以被实现为软件或硬件模块,并且注意,它们之间的分离实际上可以为功能的,而不是为空间的)被展开并且具体地示出,以辅助说明网络节点10的主要功能。两个相邻节点10’和10”通常将具有类似或对应单独/内部功能模块,但为了避免使附图不必要地复杂,未示出这些模块。
[0076] 将理解,术语“上游”和“下游”为相对的,并且取决于特定节点关于数据的特定交换扮演的角色,第一节点可以关于由一个分组采取的路径为第二节点的上游,并且关于由另一个分组采取的路径为第二节点的下游,但对于本讨论,这些术语关于以下场景来使用:
[0077] (i)上游节点10’沿着经由节点10的路径向“下游”网络节点10”发送数据(例如,一个或更多个探测消息,包括一个或更多个数据分组),在这种情况下,节点10的功能是从上游节点10’接收数据并将其转发到下游节点10”;以及
[0078] (ii)上游节点10’向节点10本身发送数据并从其接收响应。
[0079] 在图1中,实线箭头(H1、h1、h2、H2)涉及场景(i),并且指示由从上游节点10’发送的数据采取的单向路径,该数据以下游节点10”作为其(预期)目的地地址(如在其报头中或以其它方式指示的),该数据到达节点10并由节点10在其路径上从上游节点10’转发到下游节点10”。这些箭头中,具有大写字母“H”(即,H1和H2)的那些箭头指示路径上的外部跳(hop),即,节点10’与10之间的跳H1和节点10与10”之间的跳H2。具有小写字母“h”的箭头(即,h1和h2)指示用于数据的节点10内的内部处理路径,该数据由节点10的第一输入/输出(I/O)接口101从节点10’接收并被传递到节点10的转发处理器103(h1),然后从节点10的转发处理器103传递到节点10的第二I/O接口109(h2),该第二I/O接口呈现用于从节点10转发到节点10”的数据。
[0080] 如以上所指示的,IP网络中的数据分组通常在它们的IP报头中指示它们的目的地IP地址(以及它们的源地址和其它信息),这些IP地址通常将关于“查验”测试被使用。对于跟踪路由请求,报头(还)可以指示存活时间(TTL)跳计数,但在该场景中,目标IP地址可能不与跟踪路由目的地/目标相同。
[0081] 虚线箭头(h3、h4、h5以及H3,并且目前忽略h1/3和h4/5)涉及场景(ii),并且连同实线箭头H1和H3一起指示在数据以节点10作为其(预期)目的地地址从上游节点10’被发送时、在该数据到达节点10且在那里被处理时、以及在由节点10向上游节点10’发回关联响应时采取的双向路径。再次,具有大写字母“H”(即,H1和H3)的箭头指示路径上的外部跳,即,节点10’与10之间的跳H1(也在场景(i)中执行)和从节点10返回到节点10’的跳H3。具有小写字母“h”的那些箭头(即,h1、h3、h4以及h5)指示用于数据的节点10内的内部处理路径,该数据由节点10的I/O接口101从节点10’接收并被传递到节点10的转发处理器103(h1,与场景(i)共用),由节点10发现该数据的目标为节点10本身,该数据因此被传递用于由节点10的CPU 105处理(h3),在那里被处理,被传递回到节点10的转发处理器103(h4),从那里传递回到节点10的I/O接口101(h5)并被呈现以便从节点10转发回到节点10’(H3)。CPU 105被示出为具有关联存储器107,在该存储器107中,可以存储诸如路由表、接口的IP地址等的信息。
[0082] 由此,关于场景(i),如果节点10充当上游节点10’与下游节点10”之间的中间节点且因此仅需要将诸如探测消息的数据从节点10’转发到节点10”,则数据所采取的路径为:
[0083] H1->h1->h2->H2。
[0084] 然而,关于场景(ii),如果节点10充当用于从上游节点10’发送到它的诸如探测消息的数据的目标或目的地节点且因此请求向上游节点10’发送探测响应(因此需要在将响应消息发回节点10’之前在其CPU 105中处理探测消息),则数据所采取的路径为:
[0085] H1->h1->h3->h4->h5->H3。
[0086] (注意,关于如上所述的目前所描述的实施方式,节点10的I/O接口101和109简单地充当功能是向转发处理器103转发从外部节点(例如,节点10’或节点10”)接收的数据并向外部节点(例如,节点10”或10’)转发从转发处理器103接收的数据的接口。转发处理器103的功能是检查所接收的数据,并且在包括诸如“查验”请求的消息的大多数数据分组的情况下,确定(例如,从读取分组或其它这种消息的报头中的“目的地地址”指示)节点本身是否是用于数据的预期目的地(在这种情况下,数据被传递到CPU 105)或另一个节点是否是用于数据的预期目的地(在这种情况下,数据被传递到适当I/O接口以便转发)。(然而,对于“跟踪路由”测试,问题可能是分组的报头是否指示到期TTL,而不是分组是否到达其预期目的地)。然而,在任何情况下,将注意,图1中示出被称为“h1/3”和“h4/5”的弯曲虚线箭头。
这些箭头例示了与另选实施方式有关的情形,在另选实施方式中,检查所接收数据并确定节点本身是否是用于数据的预期目的地或另一个节点是否是用于数据的预期目的地的功能可以由接收数据的I/O接口来执行。在这种实施方式中,需要由CPU 105处理的数据可以沿着由弯曲虚线箭头h1/3指示的内部处理路径从I/O接口101内部地传递到CPU 105,而不经过转发处理器103,并且响应数据可以沿着由弯曲虚线箭头h4/5指示的路径从CPU 105内部地传递回到I/O接口101,再次不经过转发处理器103。以上和以下所讨论的“快速路径”和“慢速路径”处理的问题可关于这两种实施方式来应用。)
[0087] 关于上文注意的重要问题是在转发探测(诸如“跟踪路由”或“查验”消息)时,普通节点(如与专用测试服务器相对的)通常以与它处理其它分组相同的方式来处理该探测(NB,也就是在“快速路径”上被处理,其中,这里的词语“路径”是指“节点内的内部处理路径,而不是网络路径”);节点被优化以用于转发分组,并且操作可以整体在硬件中执行。然而,在这种节点对探测响应时(比如,因为跟踪路由分组的TTL已经达到零,或者因为节点是“查验”分组的目标或预期目的地),那么也就是节点在“慢速路径”上处理分组(词语“路径”再次是指“节点内的内部处理路径”);“响应”操作涉及节点的CPU,并且通常包括生成朝向探测的源发送回的新分组/消息。
[0088] 作为这样的结果,期望使用一个或更多个探测消息测量的与沿着网络路径的性能有关的特性(例如,往返响应时间或延迟、往返响应时间或延迟的变化等)的测量结果可能由于探测的目标节点本身的内部处理(并且具体是由于目标节点本身的CPU的速度、拥塞状态、可靠性或另一个特性)导致关于探测的“目标节点”本身的探测消息的“慢速路径”处理而失真。如果所期望的性能测量结果是指示测试节点与目标节点之间的路径的性能状态的性能测量结果,则受由过慢的目标节点本身的“慢速路径”处理过度影响的这种测量结果的失真通常是不期望的。
[0089] 由此,可能期望识别由于由它们自己的“慢速路径”处理引起(或被视为很可能引起)对单独探测测量结果的显著失真的节点,和/或期望识别引起(或被视为很可能引起)最少或最多失真的节点,因此允许整个网络分析至少主要基于来自被发现(或被视为很可能)引起最少失真的一个或更多个节点的探测测量结果,并且可能期望允许从整个网络分析去除或忽略可能更失真的测量结果。
[0090] 为了简化以上问题的说明,图1仅例示了涉及必要的最少数量节点的情形,但将理解,跨网络的路径可以涉及多个节点及其之间的跳,并且网络通常分支,因此节点之间的其它路线也是可能的。
[0091] 进一步地,虽然节点10被示出为具有两个I/O接口,用于从节点10’接收数据并向节点10’发送数据的第一接口(101)和用于从节点10”接收数据并向节点10”发送数据的第二接口(109),但节点可以仅具有用于所有发送和接收的一个接口、用于发送的一个接口和用于接收的另一个接口、多个接口、用于大量相邻节点中的每一个的一个接口、或接口的另一个这种布置。
[0092] 例如,参照示出了路径上的多个网络节点的图2,将理解,跨网络的路径在诸如探测消息的消息的初始发送者(例如,测试源S,20)与用于该数据的目标之间通常可以具有多个中间节点。例如,如果节点E 20e是用于来自测试源S的探测消息22e的目标节点,并且从测试源S向节点E行进的数据在到达节点E之前由节点A、B、C以及D(20a、20b、20c、20d)分别接收并转发,则节点A、B、C以及D中的每一个充当与从测试源S到节点E的探测消息22e有关的中间节点,并且还可以充当与从节点E返回到测试源S的关联响应消息24e有关的中间节点(但应注意,该“返回”路径可以不必须是“向外”路径的反向)。在这种场景中,消息将经受由节点A、B、C以及D中的每一个进行的“快速路径”处理,并且经受仅由节点E进行的“慢速路径”处理。
[0093] 还将理解,虽然测试源S被示出为向节点A、B、C、D以及E中的每一个发送探测消息22a、22b、22c、22d以及22e(即,节点A、B、C、D以及E中的每一个充当与发送到其的探测消息有关的目标节点),并从其接收关联响应消息24a、24b、24c、24d以及24e,但所示节点中的任一个可以充当测试源,并且同时或不同时向其它节点中的任一个发送探测消息和从其接收关联响应消息,消息可以在任一方向上沿着链接节点的任意路径行进。特定节点在特定探测尝试中被涉及作为测试源、作为中间节点还是作为目标节点将确定其角色通常将涉及发送、转发还是接收并响应探测消息,这转而通常将确定特定节点将仅经由其“快速路径”处理路线来处理探测(以便向另一个节点下游发送或转发探测消息或朝向讨论中的测试源转发回响应消息)还是(另外)经由其“慢速路径”处理路线来处理探测(以便在其自己的CPU中处理探测消息,产生响应消息,并且朝向讨论中的测试源呈现该消息,以便传输回上游)。
[0094] 图3例示了可以如何根据节点是充当与特定探测有关的目标节点还是仅充当在测试源与目标节点之间的路径上的中间节点在不同节点处执行“快速路径”和“慢速路径”处理。为了简单起见,图3简单地例示了从测试源S 30发送的两个探测消息,两个探测消息中的一个在节点A30a作为其目标节点的情况下被发送,并且两个探测消息中的另一个在节点B 30b作为其目标节点的情况下沿着节点A30a是中间节点的路径被发送。将理解,在不同实施方式中,相应探测消息可以由测试源S 30同时或不同时地被发送,并且多个消息可以被发送到每个目标节点,并且其它节点还可以同时或不同时涉及作为测试源、中间节点以及目标节点。将使用该简单示例,以说明可以如何进行并使用(使用“查验”、“跟踪路由”或其它这种探测技术)所作出的不同探测测量结果的比较。
[0095] 在可应用时以缩写形式示出节点30、30a以及30b的单独功能模块(即,I/O接口、转发处理器、CPU及其关联存储器),但因为早先已经参照图1解释了这些模块,所以图3中不对它们单独编号,以便不使附图过分复杂。图3中使用虚线箭头来示出所涉及的路径(即,节点之间的外部跳以及节点内的内部处理路径),这些路径关于相应探测被遍历(即,由从测试源S到相应目标节点的相应探测测试消息采取的相应“向外”路径和由从相应目标节点返回到测试源S的相应探测响应消息采取的相应“返回”路径),但是再次,不标记这些路径,因为认为这将使得附图不必要地复杂。
[0096] 凭借本发明的优选实施方式,以以下这种方式来比较从在不同路径上和/或在不同测试源和/或目标节点之间发送的不同探测消息获取的性能测量结果:指示哪些测量结果已经或很可能已经受在充当用于讨论中的探测消息的目标节点的节点中的过度慢、不可靠、误导或另外很差的“慢速路径”处理过度影响。这种比较的结果可以指示哪一个节点或哪些节点以关于提供讨论中的网络路径上的性能的真实或实际指示的这种方式来响应。
[0097] 参照图3的左手侧,考虑从测试源S到节点A的探测涉及在允许作出单个探测测量结果的过程中遍历的以下元素:
[0098] (i)从始发测试点(测试源S)到节点A的“向外”网络路径(该网络路径本身包括在测试源S内从测试源的CPU开始且到其到节点A的I/O接口上的虚线箭头、和从测试源S的I/O接口到节点A的I/O接口的虚线箭头,但因为部件为附图的左手侧和右手侧共用的,所以该细分不重要);
[0099] (ii)节点A上来自测试源S的入接口;
[0100] (iii)与节点A内的探测有关的响应处理(该探测本身由节点A内的从节点A的I/O接口经由其转发处理器到其CPU并经由其转发处理器返回到其I/O接口的虚线箭头来表示);
[0101] (iv)节点A上朝向测试源S返回的出接口;以及
[0102] (v)到测试源S的“返回”网络路径。
[0103] 简化术语,我们以下可以说:
[0104] 总节点A测量结果=从S到A的返回路径+A的探测响应,
[0105] 其中,被称为“从S到A的返回路径”对总节点A测量结果的贡献包括以下四个子贡献:
[0106] (i)与从测试源S到节点A的“向外”网络路径有关的子贡献;
[0107] (ii)与节点A上的入接口有关的子贡献;
[0108] (iv)与节点A上朝向测试源S返回的出接口有关的子贡献;以及
[0109] (v)与从节点A到测试源S的“返回”网络路径有关的子贡献。
[0110] 将注意,不形成“从S到A的返回路径”贡献的一部分的总测量结果的唯一部分是与以上(iii)有关的部分(即,与节点A本身内的探测有关的响应处理)。
[0111] 现在,参照图3的右手侧,考虑经由节点A30a发送的从同一测试源S到随后节点B 30b的探测。除了与节点A本身内的探测有关的“慢速路径”响应处理之外,该探测测量与到节点A的探测相同的元素(当到节点B的探测仅跨节点A经由其“快速路径”处理被转发,而不是经由节点A的“慢速路径”处理由节点A的CPU来处理,但是另外,该探测现在包括节点A与节点B之间的网络路径(“向外”和“返回”贡献,如由节点A与节点B之间的虚线箭头表示的)和节点B本身的探测响应(由在节点B内从其I/O接口经由其转发处理器到其CPU并经由其转发处理器返回到其I/O接口的虚线箭头表示)时)。
[0112] 使用与上文相同的约定,总测量结果的贡献可以如下考虑:
[0113] 总节点B测量结果=从S到B的返回路径+B的探测响应
[0114] 总节点B测量结果=从S到A的返回路径+A与B之间的返回路径+B的探测响应[0115] 总节点B测量结果=总节点A测量结果-节点A与节点B之间的节点A返回路径的探测响应+节点B的探测响应
[0116] 以及
[0117] 总节点B测量结果-总节点A测量结果=节点A与节点B之间的返回路径+节点B的探测响应-节点A的探测响应
[0118] 从上文可以看到,在节点B是目标节点时看到的性能(可以在速度、吞吐量、可靠性、一致性或各种其它类型的特性中的任一个方面来测量)将不总是比在节点A是目标节点时(例如,在节点A探测响应过度慢时)看到的性能更低、更长、更小、更大或另外更差(取决于讨论中的性能特性的类型)。然而,到节点A的路径的任意网络性能必须被包括在在节点B处看到的性能中。由此,虽然可能不可以清楚或完全地隔离到节点A的网络性能,但如果例如与从测试源S到节点A的探测有关的往返时间测量结果具有比与从同一测试源S经由节点A到随后节点B的探测有关的并发测量结果更大的RTT,则可以识别强烈地看起来被节点A的探测响应时间危害的节点测量结果。
[0119] 对节点分组和域分析
[0120] 网络中的节点通常被一起分组到网络域或网络部分中(或其它类型的分组)。根据优选实施方式,基于以上概念的技术可以用于允许以对应方式(例如,在同时,使用来自同一测试源的探测)测试在同一域或部分(或其它这种节点组)中的不同节点,以获取很可能指示关于域或部分(或其它这种组)的网络性能且不(过度,至少)受有问题的节点测量结果影响的整体性能测量结果。如果人们关注网络性能在域或部分之间如何变化,而不是关注网络性能如何由单独节点变化,则这可以有意义。这一点的论证基于以下思想:如果从同一域或部分(或其它这种组)中的不同目标节点获取的结果显著不同,则它指示目标节点本身或在域或部分内到它们的相应局部路径之间的显著差异,而不是与来自测试源位于的域/部分和目标节点位于的域/部分的域间或部分间路径有关的问题。
[0121] 将关于诸如图4所示的网络的网络给出以下说明。图4示出了包括不同域中的节点的网络,并且用来例示可以如何在根据优选实施方式的方法中使用同一域中的不同节点来进行测试;与以上图3相同,图3例示了根据那些节点是充当与特定探测有关的目标节点还是仅充当在测试源与目标节点之间的路径上的中间节点,在不同节点处执行“快速路径”和“慢速路径”处理。为简单起见,图4例示了从域W 45w中的测试源S 40发送的两个探测消息。在探测消息中,一个消息在节点C 40c作为其目标节点的情况下被发送,并且另一个消息在节点D 40d作为其目标节点的情况下被发送。节点C和D都处于域Y 45y中,沿着节点A40a和节点B 40b是中间节点的路径从域W到达域Y。节点A处于域X 45x中。节点B与节点C和D一样处于域Y中。将理解,在不同实施方式中,相应探测消息可以由测试源S 40同时或不同时被发送,并且多个消息可以被发送到相应目标节点,并且其它节点还可以同时或不同时被涉及作为测试源、中间节点以及目标节点。将使用该简单示例,以说明可以如何进行并使用(使用“查验”、“跟踪路由”或其它这种探测技术)所做出的不同探测测量结果的比较。
[0122] 在可应用情况下以缩写形式示出节点40、40a、40b、40c以及40d的单独功能模块(即,I/O接口、转发处理器、CPU及其关联存储器),但因为早先已经参照图1说明了这些模块,所以图4中不对它们单独编号,以便不使附图过分复杂。图4中使用虚线箭头示出所关心的路径(即,节点和域之间的外部跳以及节点本身内的内部处理路径),这些路径关于相应探测被遍历(即,由从测试源S到相应目标节点C和D的相应探测测试消息采取的相应“向外”路径和由从相应目标节点C和D返回到测试源S的相应探测响应消息采取的相应“返回”路径),但是再次,不标记这些路径,因为认为这将使得附图不必要地复杂。
[0123] 凭借优选实施方式,将当同一域(或节点的其它这种组)中的不同节点中的每一个用作“目标节点”时关于这些节点做出/获取的性能测量结果进行比较。
[0124] 现在将参照图5、图6、图7、图8以及图9描述根据优选实施方式的方法。
[0125] 图5是例示了如何逐域分析节点以使域中的单独异常节点的影响最小化的高级流程图。图5示出了关于从同一测试源(例如,测试源S)到在彼此相同的域中的至少两个不同目标节点(例如,节点C和D,在域Y中)的探测收集(步骤s50)探测测量结果。在步骤s52处,将关于其收集测量结果的各种目标节点分组到域中,并且在步骤s54处,选择域,以便分析。
[0126] 在这种情况下,两个目标节点在域Y中,因此该域是被选择用于分析的域,但将理解,还可以收集并分析与其它域中的其它节点有关的探测测量结果。
[0127] 在步骤s56处,可以通过使跨域内的节点的测量结果最小化来计算域测量结果,或者可以使用加权和。如果在步骤s58处发现存在要分析的其它域,则处理可以返回到步骤s50并关于那些域重复。
[0128] 图6是例示了根据优选实施方式的方法的流程图。
[0129] 对于该说明,我们将考虑由“查验”探测获取的往返时间(RTT)的测量结果,但将理解,可以使用其它探测技术测量其它特性。我们将考虑可以收集多批探测测量结果的实施方式,这些探测测量结果可以包括与多个可能域、网络部分或其它这种节点组有关的测量结果,但将理解,在其它实施方式中,处理可以简单地一次执行与一组节点有关的分析。
[0130] 在该实施方式中,收集探测测量结果(步骤s60),从同一测试源(例如,节点S)或由同一网络部分(诸如域W)中的测试源测试与同一网络部分(诸如域Y)中的至少两个目标节点(诸如图4中的节点C和D)中的每一个有关的一个或更多个探测测量结果。如果与相应节点有关的多于一个测量结果可用,则根据讨论中的特性,可以使用结果的平均、总数、最高、最低、变化或标准偏差、分位数(例如,第95个百分位)或可用的那些结果的某一其它适当函数。
[0131] 在步骤s61处,选择网络部分。在图4的简单情况下所示的域中,该网络部分将为域Y,因为该域是被示出为具有多于一个节点的唯一域,但在更复杂的情况下,该域可以为另一个域、网络部分或其它这种组。
[0132] 在步骤s62处,选择来自所选域(或其它这种网络部分)中的一组节点中的至少两个目标节点。在图4的简单情况下,该至少两个目标节点是节点C和D,并且以下描述将基于此,但还可以选择域中的其它节点(诸如节点B)或代替这两个节点中的任一个。
[0133] 然后将来自所选目标节点(C和D)的探测测量结果进行比较(步骤s63)。
[0134] 在步骤s64处,基于所选目标节点的测量结果的比较对所选目标节点排序,并且基于此向它们分配权重(步骤s65)。
[0135] 步骤s64和s65可以简单地涉及选择“最佳”节点(或多个节点)或满足预定可靠性准则的任一个节点,并且向该节点(或那些节点)分配权重“1”,同时向任意其它节点分配权重“0”,以便允许基于在该节点(或那些节点)为目标节点的情况下已经或随后获取的测量结果确定整体网络性能量度。另选地,步骤s64和s65可以涉及选择“最差”节点(或多个节点)或未能满足预定可靠性准则的任何一个节点,并且向该节点(或那些节点)分配权重“0”,同时向任意其它节点分配权重“1”,以便允许确定不受在该节点(或那些节点)作为目标节点的情况下已经或随后获取的测量结果影响的整体网络性能量度。在这种另选方案中,将理解,术语“最佳”的意义将取决于所做出的测量结果的类型,但是通常,关于诸如“时间”测量结果和“变化”测量结果的一些类型的测量结果,最低将通常被视为最佳,而关于其它测量结果(例如,可靠性或数据量测量结果),最高将通常被视为最佳。
[0136] 将注意,根据是否期望基于来自某些节点而不是其它节点的测量结果确定整体网络性能量度或者基于来自具有正权重的所有节点的测量结果的加权和确定整体网络性能量度,所分配的权重可以为“0”、“1”或“0”至“1”之间的值。
[0137] 处理然后继续到步骤s66,在步骤s66处,可以基于在“最佳”节点作为目标节点的情况下或用具有正权重的任意节点已经或随后获取的测量结果确定整体网络性能量度。
[0138] 如果在步骤s67处发现来自其它网络部分的测量结果可用于分析,那么处理可以返回到步骤s61并关于其它网络部分重复。另选地,处理然后可以返回到步骤s60并关于新探测测量结果重复。
[0139] 由此可以将与组中的不同节点有关的节点测量结果进行比较。如果节点具有很少或没有探测响应延迟和/或探测故障,那么组中的其它节点例如应具有类似或更多延迟和/或故障。在其它节点中的一个或更多个也可能具有有问题的数据时,将特定节点的测量结果与应提供类似结果的组中的更大数量其它节点进行比较通常将增加检测具有显著内部问题(例如,“慢速路径”响应延迟)的节点的可能性,并且允许忽略或加权这些节点,以便不对整体网络性能量度具有重大影响。
[0140] 该方法可以滤除明显具有一定程度节点探测延迟且因此对于在分析网络路径性能中使用不可信的节点测量结果。
[0141] 在考虑结果是否真正高于另一个结果时,优选地还应考虑值的误差或置信度。例如,即使测量结果样本的平均值实际上更高,如果以90%置信等级(例如)确定节点的延迟超过组中其它节点的延迟,则也可以决定丢弃节点的测量结果。
[0142] 时间分析
[0143] 简单地比较同一组中的不同目标节点之间的平均延迟或探测故障并丢弃更高测量结果仍然可能留下仍然被节点探测响应延迟损害的测量结果。例如,节点C可能具有非常易变的探测响应延迟。在时间上取平均,节点C的延迟可能看起来低于节点D处的延迟。然而,在单个时间点处,可能可以看到节点C上的延迟实际上远远超过同时在节点D上的延迟。因此,在这种情况下,由于它们的不可靠性或不一致性,仍然可以推断节点C处的测量结果对于网络性能分析有问题。
[0144] 为了滤除更不可信的节点测量结果,可以将相应节点处的测量结果分到时空中。例如,测量结果可以被简单地分成峰值时间和非峰值网络使用时段。如果节点具有比组中的其它节点更高的峰值或非峰值测量结果,那么可以认为该节点有问题。凭借足够的结果,相应节点例如可以进一步被细分成一天中的小时(例如,下午8-9点),或者简单地在沿着连续时间轴的桶(bucket)内(例如,2015年8月20日下午8-9点)。可以决定,对于被认为有效的节点的测量结果,发现(在预定置信度上)时空的相应划分中的延迟和/或故障等级在组中的大多数节点或所有其它节点处更高。
[0145] 图7是例示了根据优选实施方式的方法的流程图,其中,可以将和域有关的探测测量结果与和随后域有关的探测测量结果进行比较,以识别有问题的域数据。该方法可以被看作是参照图4、图5以及图6说明的方法与早先参照图3说明的方法的组合,但其中,参照图3说明的方法涉及第一目标节点与经由第一目标节点到达的一个或更多个随后目标节点之间的比较,以确定关于第一目标节点做出的测量结果是否不可靠。图7的方法涉及“域/随后域”等级的类似比较。图7的方法可关于诸如图8和图9所示的那些网络拓扑的网络拓扑应用。以下将进一步讨论图7的方法。
[0146] 图8示出了包括不同域中的节点的网络,并且用来例示可以如何使用不同域中的不同节点来进行测试以产生合成域测量结果结果。图8示出了从测试源S 80向全部在域X 85x中的节点A80a、节点B 80b以及节点C 80c而且向全部在域Y 85y中的节点D 80d和节点E 
80e发送的探测消息,其中,网络拓扑使得从测试源S沿着域X的节点是中间节点的路径到达域Y中的节点。还示出了数据库88x和88y,两个数据库分别存储用于域X和Y的合成测量结果,稍后将讨论。
[0147] 凭借这种网络拓扑,可以被看作是参照图4、图5以及图6说明的方法与早先参照图3说明的方法的组合的根据优选实施方式的方法允许组合域内的节点,以给出用于该域的最佳情况或“合成测量结果”。术语“合成测量结果”是指使用多个单独节点到单个域/组数据集中的组合就像其是虚拟节点的思想,来自该虚拟节点的测量结果被“同步”以表示与本身未直接测量的域/组有关的测量结果。
[0148] 然后可以将域等级结果与一个或更多个随后域进行比较,以查看域结果甚至在组合其中的多个节点之后是否仍然有问题。
[0149] 图9示出了从测试源S 90向全部在域W中的节点A90a、节点B 90b、节点C 90c以及节点E 90e发送探测消息的网络。探测还可以经由节点C传递到域X中的节点D 90d,并且探测可以经由该路径传递到域Z中的目标节点T 90t。类似地,探测还可以经由节点E传递到域Y中的节点F 90f,并且探测可以经由该路径传递到目标节点T。这例示了以下思想:根据本发明的实施方式,可以存在经由多个域到同一目标节点的多条路线,这允许进行各种类型的比较。这一点的目的是分析域/组之间的不同对等链路的影响。域X和域Y的使用允许单独进行每一个域与域W的比较。
[0150] 返回到图7的方法,选择“第一域”(步骤s70)。然后选择“随后域”(步骤s71),该随后域可以为诸如探测消息的数据经由第一域中的节点到达的域。相应域例如可以为图8中的域X和Y。然后例如将根据图6的方法针对相应域获取指示与各个域有关的性能的测量结果,并且将用于第一域(例如,域X)的测量结果与用于随后域(例如,域Y)的测量结果进行比较(步骤s72)。如果发现(在步骤s73处)用于“更近”域(例如,域X)的域测量结果给出比用于“随后”域(例如,域Y)的域测量结果更低(或不那么易变)的RTT测量结果(例如),则可以推断出(在步骤s74处)域X测量结果至少可能有效(即,没有它有问题的明确暗示),并且可以分配正权重或另外视作在整个网络性能分析期间可能可靠。另一方面,如果发现(在步骤s73处)用于“更近”域(域X)的域测量结果给出比用于“随后”域(域Y)的域测量结果更高(或更易变)的RTT测量结果(例如),则可以推断出(在步骤s75处)域X测量结果有问题(即,可能或已经受域X内的处理问题过度影响)。虽然这未给出域Y测量结果有效的具体暗示,但它指示它们比与域X有关的那些测量结果更少有问题。
[0151] 由此,可以组合或另外分析并处理在单个网络部分、域或其它这种节点组内的两个或更多个节点的测量结果,以产生“最佳情况”延迟或故障率,该延迟或故障率例如更可能精确反映与组有关的网络性能,而不受提供对探测的响应时的任何单独节点的处理影响。用于相应节点的测量结果可以与之前一样分到时空中。然后可以对于时空中的同一点跨域(或其它组)内的节点取最小延迟或故障值。这意味着如果节点中的任意一个不受劣化探测响应影响,那么所产生的值将指示在该域(或其它组)内的实际网络性能。因为通常存在同时类似地影响所有节点的低可能性,所以该技术在节点受缓慢探测响应间歇影响时可以工作。
[0152] 注意,用于分析的域或其它这种组可以为节点的任意分组,并且不必限于因特网内的整个自主系统,或者还可以跨多个自主系统。域可以仅包括单个节点。例如,如果例如两个网络运营商之间存在多个链路(诸如运行图9中的测试源S和域Z的运营商),那么运营商网络中的一个或两个可以被细分成多个分析域,以捕获各个对等链路上的两个运营商之间的性能。在这种情况下,在在两个域之间共享节点的情况下,将根据探测跟随的路径在两个域之间划分测量结果。
[0153] 在所描述的本发明的实施方式至少部分使用软件控制可编程处理装置(诸如微处理器、数字信号处理器或其它处理装置)、数据处理设备或系统可实现的情况下,将理解,用于配置可编程装置、设备或系统配置以实现前面所描述的方法的计算机程序被设想为本发明的一个方面。例如,计算机程序可以被具体实现为源代码或者经受编译以用于在处理装置、设备或系统上实现或者例如可以被具体实现为对象代码。
[0154] 适当地,计算机程序被存储在为机器或装置可读形式的载体介质上,例如存储在固态存储器、磁存储器(诸如盘或带)、光或磁光可读存储器(诸如光盘或数字通用光盘)等中,并且处理装置使用程序或其部分来配置它以便操作。计算机程序可以从以通信介质(诸如电子信号、射频载波或光载波)具体实现的远程源供应。这种载体介质也被设想为本发明的多个方面。
[0155] 本领域技术人员将理解,虽然已经关于以上所描述的示例实施方式描述了本发明,但本发明不限于此,并且存在落在本发明范围内的许多可能的变型例和修改例。
[0156] 本发明的范围包括任意新特征或这里所公开的特征的组合。申请人据此预示,可以在本申请或从其衍生的任意这种另外申请的审查期间对这种特征或特征的组合制定新权利要求。具体地,参照附图,来自从属权利要求的特征可以与独立权利要求的特征组合,并且来自各独立权利要求的特征可以以任意适当方式组合,并且不仅仅是采用权利要求中列举的特定组合。

当前第1页 第1页 第2页 第3页
相关技术
网络性能相关技术
特雷弗·伯布里奇发明人的其他相关专利技术