技术领域
[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://www.caida.org/publications/papers/2014/measurement_analysis_internet_interconnection/)。这些论文考虑数据可以如何用于推断拥塞(特别是网络域之间的拥塞),并且讨论如何分析数据来检测网络问题。
[0014] 参考其它现有技术引用,由B.Augustin等人创作的标题为“Multipath Tracing with Paris Traceroute”(2007年5月)的论文讨论了跟踪路由以及如何凭借负载平衡的部署,不再存在到目的地的单条路线,因此传统跟踪路由系统性地错过一些路径。该论文指定朝向目的地报告所有路径的被称为多路径检测算法的自适应随机探测算法。
[0015] 由C.Crespelle等人创作的标题为“Rigorous Measurement of IP-level Neighborhood of Internet Core Routers”(2010年3月)的论文涉及互联网核心路由器的IP级邻居的测量结果,并且提出一种旨在避免由于传统测量结果引起的问题的专用于互联网的核心的方法。
[0016] EP1206085(“Infonet”)涉及用于自动化服务等级协议的方法和设备。
[0017] 日期为1998年11月且由G.Almes、S.Kalidindi以及M.Zekauskas创作的标题为“A Round-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发送的两个探测消息,两个探测消息中的一个在节点A 30a作为其目标节点的情况下被发送,并且两个探测消息中的另一个在节点B 30b作为其目标节点的情况下沿着节点A 30a是中间节点的路径被发送。将理解,在不同实施方式中,相应探测消息可以由测试源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的右手侧,考虑经由节点A 30a发送的从同一测试源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] 代替分析同一路径上的不同节点(即,诸如在以上参照图3描述的情形下),我们可以比较来自沿着两个或更多个不同路径发送的探测的、与单个节点有关的结果。这在路径完全不相交时最强有力,但在路径共享某一设备(例如,最后一跳或几跳、或例如目标节点上的接口)时仍然可以在一定程度上工作。
[0121] 该方法优选地涉及查看来自多个测试点的测量结果。一个示例可以为检查从在目标节点的任一侧上的测试点开始的路径。另选地,该方法可以涉及查看与从单个测试点到同一目标节点的多条路径有关的测量结果(例如,在宽带和无线连接存在的情况下)。
[0122] 前提是虽然这些测量结果中的每个将具有不同网络延迟和故障,但是即使这些探测到达不同接口,响应于在目标节点本身处的探测消息的延迟很可能非常类似,这是因为它们均将依赖目标节点本身内的“慢速路径”处理。因此,如果所有路径示出类似鲜明特征(signature),则这很可能是由于节点本身响应中的延迟导致。
[0123] 这还可以通过查看之前和随后节点来进一步加强(如参照图3阐述的)。例如,如果所有路径具有低延迟且然后在单个节点处示出突然增加(尽管不共享任何网络基础设施),则可以更确信地推断出该节点的测量结果对于网络分析是有问题的。
[0124] 关于诸如图4所示的网络的网络给出以下说明,图4例示了可以允许使用沿着到同一目标节点的不同路径发送的探测消息的分析的节点和路径。示出了五个节点。虽然五个这种节点可以充当单条路径(例如,测试源S1 40与测试源S2 40d之间),但为了该说明的目的,它们将被认为是两条不同路径,在测试源S1 40与节点B 40b之间的一条路径和在测试源S2 40d与节点B 40b之间的另一条路径。图4将用来例示可以如何沿着到/从同一目标节点的不同路径进行测试。应注意,如图所示且如将描述的,不同路径可以从不同测试源开始,但在另选实施方式(未示出)中,不同路径可以为从同一测试源开始经由不同中间节点的路径。
[0125] 与以上图3相同,图4例示了根据那些节点是充当与特定探测有关的目标节点还是仅充当在测试源与目标节点之间的路径上的中间节点在不同节点处执行“快速路径”处理和“慢速路径”处理。为简单起见,图4例示了两个探测消息被发送,一个探测消息从测试源S1 40经由中间节点A 40a到公共目标节点(节点B 40b),并且另一个探测消息从不同测试源S2 40d经由中间节点C 40c到公共目标节点(节点B)40b。
[0126] 将理解,在不同实施方式中,相应探测消息可以由测试源S1和S2同时或不同时地发送,并且多个消息可以均被发送到公共目标节点B,并且其它节点还可以同时或不同时地被涉及作为测试源、中间节点以及目标节点。将使用该简单示例说明可以如何进行并使用(使用“查验”、“跟踪路由”或其它这种探测技术)关于到同一目标节点的不同路径进行的不同探测测量结果的比较。
[0127] 在可应用的情况下以缩写形式示出节点40、40a、40b、40c以及40d的独立功能模块(即,I/O接口、转发处理器、CPU及其关联的存储器),但是因为早先已经参照图1说明了这些模块,所以图4中不对它们单独编号,以便不使附图过分复杂。图4中使用虚线箭头来示出所关心的路径(即,节点之间的外部跳以及节点本身内的内部处理路径),这些路径关于相应探测被遍历(即,由从相应测试源S1和S2到目标节点B的相应探测测试消息采取的相应“向外”路径、以及由从目标节点B返回到相应测试源S1和S2的相应探测响应消息采取的相应“返回”路径)。上面由相应测试源进行相应测量的双向或“往返”路径在附图的右面被称为“第一路径测量结果”(即,与往返“S1-B-S1”有关的测量结果)和“第二路径测量结果”(即,与往返“S2-B-S2”有关的测量结果)。
[0128] 凭借优选实施方式,将关于沿着到同一目标节点的不同路径发送的探测消息作出/获取的性能测量结果进行比较,以调查特定网络节点的性能。如所指示的,测量结果可以查验或者跟踪路由测量结果,所述测量结果提供从不同测试源到目标节点和返回的往返响应时间的量度。每个响应时间包括来自跨网络转发的探测和关联响应消息的延迟加上来自在目标节点本身上生成响应的处理的延迟。
[0129] 通常预期一些路径将具有合理更高延迟(例如,因为它们更长)或由于排队延迟而具有更高延迟变化,特别是在更高网络使用时。基于类似路径上的其它节点的理论知识和观察,可以分析到目标节点的相应路径,以确定结果是预期的还是意外的。例如,因为总等级比模型暗示的等级远远更高或更可变,或者因为总等级与用于讨论中的路径的大部分结果或与关于讨论中的路径在不久之前和/或不久之后获取的结果(显著)不同,所以结果可能是意外的。通过针对时间分析结果,还可以识别比其它时段更多展示意外行为的时段。然而,由此,通常仅可以推断出沿着到目标节点的路径的探测的结果出人意料,无法推断出出人意料的结果是因为目标节点上的“慢速路径”处理。
[0130] 通过将到同一目标节点的多条路径进行比较,可以确定沿着一条路径的出人意料行为是否也沿着到同一目标节点的一条或更多条其它路径展示。优选地,相应路径将完全不相交,这允许得出任意“共享”出人意料行为可能是由于目标节点本身内的处理导致的合理结论,该目标节点是相应路径的唯一共享元件。如果路径共享某一网络段(例如,被分析的目标节点上的接口),那么可以假定意外行为来自接口(这可以被认为是用于网络性能分析的合理量度)或来自目标节点上的处理。
[0131] 如果到目标节点的两条/全部路径示出相同的出人意料行为,那么可以以某一置信度推断出目标节点上的处理是意外行为的原因,这是因为以相同意外方式影响所有路径的概率很小。如果路径不示出相同的出人意料行为,则可以以某一置信度推断出所获取的测量结果指示与测试源和目标节点之间的相应路径有关的性能。
[0132] 图5和图6中例示了以上两种类型的可能结果。在这些结果中,为简单起见,路径分别被示出为P1和P2。
[0133] 图5例示了可以从沿着具有共享意外异常的到同一目标节点的不同路径发送的探测获取的可能结果,这是针对时间出现在每个度量图中的小峰值。
[0134] 图6例示了从沿着不具有共享意外异常的、到同一目标节点的不同路径发送的探测获取的可能结果。
[0135] 沿着路径的结果多么出人意料的计算可以以各种方式来执行。可以将结果与预期性能的理论或经验模型进行比较。简单方法可以是针对总体等级和变化测量预期结果和观察结果之间的差异。这可以通过在每个单位时间比较不同路径来改进。虽然结果总体可能相当好地符合模型,但在任意时间点,性能可能更异常。
[0136] 当比较两条路径时,可以确定两条/全部路径是否具有相同总异常等级。实际上,更好地是比较路径是否同时具有相同异常。虽然一些节点处理可以提供连续更高或易变的响应,但其它节点将根据节点上的其它处理展示不同等级的处理延迟/可变性。因此,对于到节点的不同路径,可以同时看到这些处理延迟的影响。
[0137] 现在将参照图7描述根据优选实施方式的方法,图7是例示了根据优选实施方式的方法的流程图,其中,分析来自沿着到同一目标节点的不同路径发送的探测消息的测量结果,以识别有问题的节点数据。
[0138] 为了该说明,我们将考虑由“查验”探测获取的往返时间(RTT)的测量结果,但将理解,可以使用其它探测技术测量其它特性。我们将考虑可以收集与到多个不同可能目标节点的不同路径有关的多批探测测量结果的实施方式,但将理解,在其它实施方式中,处理可以简单地执行一次关于一个“目标节点”的分析。
[0139] 如果使用预期路径性能的模型,而不是或也依赖不同时间的测量结果的比较,则例如可以在步骤s70处获取或产生模型,以便使得能够根据模型评定路径结果的意外性。
[0140] 在优选实施方式中,关于到该目标节点(或每个目标节点)的相应路径收集探测测量结果(步骤s70),并且选择一个目标节点(例如,在图4、图5以及图6中为节点B)以便分析(步骤s71)。
[0141] 然后通过路径识别并划分涉及到所选目标节点的不同路径(例如,在图5和图6中为从不同测试源S1和S2开始的路径P1和P2)的探测测量结果(步骤s73)。
[0142] 在步骤s74处,通过将关于路径的结果与预期路径性能的模型(如果该模型可用)进行比较,通过将关于同一路径的不同结果进行比较(如果每条路径多个结果可用)或以其它方式评定与每条路径有关的结果的意外性。
[0143] 在步骤s74处,将针对到目标节点的相应路径获取的意外性进行比较。
[0144] 如果发现(在步骤s76处)用于相应路径的路径测量结果示出意外强共性,则因为共性更可能是由于节点本身上的内部(即,“慢速路径”)处理问题导致的,而不是由于(巧合地)影响测试源与目标节点之间的两条/全部路径的性能问题导致的,所以可以推断出(在步骤s80)与目标节点有关的测量结果至少是有问题的。可以使用在组合测量结果中可能具有低权重的测量结果,并且处理然后可以返回到步骤s72,并且如果在步骤s79处发现来自其它目标节点的测量结果可用,则选择新目标节点以便分析,或者如果在步骤s79处未发现来自其它目标节点的测量结果可用,则处理可以返回到步骤s71,以便收集进一步测量结果。
[0145] 如果发现(在步骤s76处)用于相应路径的路径测量结果未示出意外强共性,则可以推断出(在步骤s77)与目标节点有关的测量结果至少可能有效,这是因为共性的缺乏暗示所获取的路径测量结果不受内部处理问题过度影响,并因此很可能指示关于测试源与目标节点之间的单独路径中的一个或更多个的性能问题。在这种情况下,可以向目标节点或关于到其的路径获取的测量结果分配可以为“1”或在“0”至“1”之间的值的正权重,这指示这种测量结果可以用于网络性能量度的整个确定中。
[0146] 处理然后继续到步骤s78,在步骤s78处,可以基于通过该目标节点(和例如已经分配正权重的任意其它节点)已经或随后获取的测量结果,确定整体网络性能量度。
[0147] 如果发现(在步骤s79处)基于作为“目标节点”的一个或更多个其它节点的测量结果可用,则处理可以返回到步骤s72,并且从步骤s72关于其它节点被重复,或者处理可以返回到s71,并且关于新收集的测量结果被重复。
[0148] 在所描述的本发明的实施方式至少部分使用软件控制可编程处理装置(诸如微处理器、数字信号处理器或其它处理装置)、数据处理设备或系统可实现的情况下,将理解,用于配置可编程装置、设备或系统配置以实现前面所描述的方法的计算机程序被设想为本发明的一个方面。例如,计算机程序可以被具体实现为源代码或者经受编译以用于在处理装置、设备或系统上实现或者例如可以被具体实现为对象代码。
[0149] 适当地,计算机程序被存储在为机器或装置可读形式的载体介质上,例如存储在固态存储器、磁存储器(诸如盘或带)、光或磁光可读存储器(诸如光盘或数字通用光盘)等中,并且处理装置使用程序或其部分来配置它以便操作。计算机程序可以从以通信介质(诸如电子信号、射频载波或光载波)具体实现的远程源供应。这种载体介质也被设想为本发明的多个方面。
[0150] 本领域技术人员将理解,虽然已经关于以上所描述的示例实施方式描述了本发明,但本发明不限于此,并且存在落在本发明范围内的许多可能的变型例和修改例。
[0151] 本发明的范围包括任意新特征或这里所公开的特征的组合。申请人据此预示,可以在本申请或从其衍生的任意这种另外申请的审查期间对这种特征或特征的组合制定新权利要求。具体地,参照附图,来自从属权利要求的特征可以与独立权利要求的特征组合,并且来自各独立权利要求的特征可以以任意适当方式组合,并且不仅仅是采用权利要求中列举的特定组合。