测量网络运行流量经历的网络运行参数的制作方法

文档序号:7949972阅读:376来源:国知局
专利名称:测量网络运行流量经历的网络运行参数的制作方法
技术领域
本发明涉及用于测量网络运行参数例如单向端到端延迟的方法和系统,这些参数为网络运行流量(例如使用基于因特网协议第六版的传输控制协议(TCP/IPv6)的网络中的数据分组)所经历。
背景技术
随着因特网的增长并在商业和个人活动中变得越来越普及,对其运行的监控和优化的需求也相应地增长。一个例子就是对单向端到端延迟的测量。这种延迟的较大值能影响一些应用的性能;过度的延迟变化(抖动)可能扰乱实时应用;如果端到端延迟太大,传输层协议就不足以维持高带宽;最小的端到端延迟提供了对在轻载路径条件下传播和传输延迟或可能延迟的一个估计;并且,大于该最小值的值提供了对分组所遵循的路径中出现的拥塞级别的很好的指示。往返(round-trip)延迟更容易确定,但它未必提供了估计单向延迟的好方法,因为上行和下行数据路径可能会明显地不同并且即使当它们对称时也可能会表现出很不相同的性能特性。
21世纪初最广泛使用的因特网技术是因特网协议第四版(IPv4),大多数与该因特网技术一起使用的测量和监控技术落在两种主要的分类之一中被动技术和主动技术。
被动测量技术观测链路上的实际流量(数据分组)而不扰乱那些分组所携带的服务。一般地,这些技术涉及状态机的使用,这些状态机执行一些初始级别的过滤以选择所关心的流量,然后使用模式匹配技术搜索特定的事件。一旦检测到这些事件,就可适当地更新各种计数器。例子包括网络设备供应商(NEP)实现的性能测量管理信息库(ManagementInformation Base,MIB)和远程监控(RMON)探测。其他被动监控探测方案通过从匹配指定模式的分组中抽取有效载荷数据而使其更进一步。全分组捕获也是可能的。或者在要求时(拉动模型)或者在有预定义的触发事件发生时(推动模型)向用户提供收集到的数据。
关于下述的主动测量,一个顾虑是用户可能生成大量需要在与测量相关的IP链路上运送的测量数据,而由于竞争性资源需求,这可能会降低测试中的服务性能。可从不同的被动监控方法所获得的测量中推断出的内容也有很大的不同。基于RMON和MIB的方案往往基本由计数器构成,这些计数器提供了网络上所有流量活动的一个全局视图。难于将获得的信息关联到单个服务上或推断出可用来监控对契约性协定(contractualagreement)的遵守程度的信息。行业或正式标准通常管理各种计数器的实现,因此一种新型测量被批准和采用可能需要一定的时间。依赖于生成于特定流量流的事件的技术可能会更适合于解决与服务质量(QoS)性能相关的问题。
被动监控技术对在网络上一个观测点处收集实际用户流量的单点测量尤其有用。然而,由于关联在两个不同观测点处检测到的分组所涉及的复杂度,被动技术就不太适用于对实际用户流量进行2点测量,例如单向延迟。现有的技术方案一般涉及在适当定位的监控点处观测分组中可识别的数据模式。生成并存储时间戳和适当的数据模式摘要。接着可以计算出沿着一个特定路径的单向端到端延迟,该延时就是从所述路径的任一端对同一数据模式在多个监控点处进行观测之间的时间。然而,这种方法有一些缺点。不像往返延迟测量的情况,至少必须将测量数据从一个监控点传输到另一个监控点用于关联,甚至更不情愿地要将测量数据从两个监控点传输到第三位置用于关联。这些附加的测量数据可能需要沿着与那些正被监控的网络链路相同的网络链路进行运送,可能会影响得到的结果。由于监控点处的调度延迟、与把测量数据传输到关联点相关的后续传播和传输延迟以及用于关联自身的时间,因此在进行测量与计算端到端延迟值之间,也可能会有相当大的延迟。关联过程的位置和功能是可能影响这方面测量性能的额外因素。
除了用于进行延迟测量的同步时钟之外,还需要用于确保两个观测点在相同的分组上触发以搜集测量数据的技术。用于丢失或误匹配采样的错误处理也是必需的。而且,当流量大小和数据率增加时,被动测量探测就可能跟不上了。
主动技术基于向网络中插入专门被创建用于测量的人工流量(synthetic traffic)。此人工流量具有已知的特性,被设计用来测试服务的特定属性。这一类测量技术常用来进行两点测量,尤其是与响应时间、分组丢失、带宽和服务可用性有关的测量。主动技术对服务中(in-service)测试或服务中止(out-of-service)测试同样适用。许多全球性的项目采用了这些技术,尤其是一些基于使用人工流量的技术正在被因特网工程工作组(IETF)的IP性能标准工作组进行标准化。
对单向延迟来说,被插入的分组必须或者在发出前被打上时间戳,或者是所获得并被存储的时间与分组标识的记录。被插入的分组(或者是它们的全部或者是采样)在远端被识别并从流中去除。另一个时间戳被获得,并与分发时间戳一起使用以导出所需的延迟测量。
主动测量技术的主要缺点在于它们测量了由人工流量而不(一定)是实际用户流量所经历的分组转发和路由行为。作为结果的测量值然后被用来做出有关实际用户流量的假设并预测实际用户流量的经历。因此,为确保好的结果,确保人工流量是被适当地形成并具有与实际用户数据类似的传输特性就非常重要,以使它受到相同的处理和/或遵循相同的传递路径。虽然如此,仍依赖于主动测量的精确性以执行有关被测试的服务的增值判断。
因特网技术的一个扩展版本,版本6(IPv6),已被定义并正在操作系统中实现。与IPv4相比,IPv6提供了多种改善-128位的IP地址;-用于“聚合”(aggregation)的可升级的、分层的编址;-被更好形成的分组,考虑到了包括‘扩展’头部,简化了处理,消除了冗余并提供了改进的功能;-服务质量/服务等级支持;-协议内在的安全性;-主机的“即插即用”自动配置;
-移动性支持。
这类改善被设计来改进或扩展因特网的基本功能,使其以一种高效、可靠、鲁棒的方式传送数据。然而,本发明人已经在此标识出其他的机会,以使用一个或多个这类改善来促进对使用IPv6的因特网设备的运行进行改进的监控和测量。

发明内容
根据本发明的一个方面,提供了一种测量网络运行流量所经历的网络运行参数的方法,包括如下步骤根据分组的数据结构定义中的能力,选择经过网络中第一监控点的分组,以将附加信息包含到该分组中;根据所述被选择的分组的数据结构定义,将用于测量至少一个网络运行参数的预定信息包含到所述被选择的分组中;根据该分组的寻址信息将所述分组转发到它的目的地;根据所述预定信息的出现,选择经过网络中第二监控点的所述分组,并观测所述预定信息;和根据观测到的信息,实现对所述网络运行参数的测量。
本发明认识到并发展了由IPv6分组扩展头部所提供的一个机会以执行“内联测量”(inline measurement)。术语“内联”在此用来表示引发测量活动的测量触发器和/或测量数据本身被包含到实际用户分组中,以使得测量操作可在正常的分组处理过程中或被位于网络中适当的点上的专用软件或专用硬件模块执行。这提供了很大程度的可能性,使得用于执行测量的分组经历与大多数用户分组相同的处理和延迟。可以容易地通过使用IPv6扩展头部来实现所需功能,以执行更精确、灵活并且不太具有干扰性的测量。因此内联技术可被用来开发具有创造性、更精确和灵活的测量、管理、记帐和计费运行支持系统。
根据本发明的另一个方面,提供了一种用于测量网络运行流量所经历的网络运行参数的系统,包括选择器,用于根据分组的数据结构定义中的能力,选择经过网络中第一监控点的分组,以将附加信息包含到该分组中;分组修改器,用于根据所述被选择的分组的数据结构定义,将用于测量至少一个网络运行参数的预定信息包含到所述被选择的分组中;分组转发器,用于根据该分组的寻址信息将所述分组转发到它的目的地;选择器,用于根据所述预定信息的出现,选择经过网络中第二监控点的所述分组,并观测所述预定信息;和参数测量器,用于根据观测到的信息,实现对所述网络运行参数的测量。


下面参照附图以示例的方式描述一种根据本发明,用于对诸如单向端到端延迟的网络运行参数执行内联测量的方法和系统,其中图1示出了因特网的一个示意性片段;图2示出了IPv6分组头部的通用格式;图3示出了IPv6目的地选项扩展头部的通用格式;图4示出了类型-长度-值(TLV)元组的通用格式,该元组构成了目的地选项扩展头部的一部分;图5示出了IPv6路由扩展头部的通用格式;图6图示了IPv6扩展头部可以如何被嵌入到IPv6分组中;图7示出了目的地选项扩展头部的一个例子的格式,该头部被配置来根据本发明辅助测量;图8示出了IPv6分组的例子;图9示出了根据本发明通过包含一个扩展头部以辅助单向延迟测量而被修改的图8的IPv6分组的例子;图10是指示了在网络元件中可用于软件实现本发明的可能的点的方框图;和图11概述了本发明的一个实现中涉及的过程性步骤。
具体实施例方式
为方便起见,本发明将参考一个实现了IPv6的网络来描述,在该网络中,数据为了传输而被划分成分组。然而应该理解到,在其他提供了与IPv6扩展头部相似功能的网络技术的上下文中,本发明也同样适用。因此,在此使用的术语分组应被理解成包含了在那些其他网络技中的不同术语所指称的数据划分,如信元(cell)或帧(frame)。
参考图1,示出了因特网的一个示意性片段,包括被多个链路互联的路由器10到22。根据路由器通过它们彼此之间交换的信息所构建起来的路由表,例如到达路由器10的分组24被送到它们的目的地,所述目的地在构成分组一部分的头部中被标识出来。图2中示出了在因特网学会(Internet Society)的Request for Comments(RFC)2460中为IPv6定义的分组头部的格式。
参考图2,分组头部习惯上表示为一序列的行,每一行表示32个连续的二进制位值(四个八位组)。构成功能实体的相邻位的群组由矩形标识。IPv6头部包含8个下述群组-Version(版本)4位因特网协议版本号码(=6)。
-Traffic Class(流量等级)8位流量等级字段。
-Flow Label(流标签)20位流标签。
-Payload Length(有效载荷长度)16位无符号整数。以八位组表示的IPv6有效载荷(即跟随在IPv6头部后的分组剩余部分,包括任何扩展头部)的长度。
-Next Header(下一个头部)8位选择器。指示紧跟在IPv6头部后的头部类型,使用(当前)由因特网分配号码局(InternetAssigned Numbers Authority,IANA)在http//www.iana.org/assignments/protocol-numbers所指定的协议号。
-Hop Limit(跳限制)8位无符号整数。被每个转发该分组的节点减1。如果跳限制被减到0则该分组被丢弃。
-Source Address(源地址)分组发起者的128位地址,按照RFC2373格式化。
-Destination Address(目的地地址)分组的预计接收者(如果有Routing(路由)头部则可能不是最终接收者)的128位地址。
在IPv6中,可选的因特网层信息可被编码在不同的头部中,这些头部可被放置在分组中图2所示的IPv6头部和上层(例如TCP)头部之间。有多个这样的扩展头部,每个都被一个不同的Next Header值所标识。图3示出了一个这样的扩展头部的格式,即Destination Options(目的地选项)头部的格式。此头部用来携带只需要被分组的(多个)目的地节点检查的可选信息。Destination Options头部被在紧邻的前导头部中值为60的Next Header值所标识,并包括如下字段-Next Header 8位选择器。以与上述IPv6头部的Next Header字段相同的方式标识紧跟在该Destination Options头部后的头部的类型。
-Hdr Ext Len 8位无符号整数。Destination Options头部以8个八位组(64位)为单元的长度,不包括第一个8个八位组。
-Options可变长度字段,它的长度可以使完整的Destination Options头部是8个八位组的整数倍长。如下所述,包括一个或多个类型-长度-值(TLV)编码选项。
TLV编码的选项具有下述格式,如图4所图示-Option Type(选项类型)选项类型的8位标识符(见下文)。
-Opt Data Len(选项数据长度)8位无符号整数。此选项的Option Data字段的长度,以八位组计算。
-Option Data(选项数据)可变长度字段。Option Type专用数据。
如果所述的处理IPv6节点没有识别出Option Type,那么选项类型标识符的最高端两位规定了必须要采取的动作00-忽略这个选项并继续处理该头部;01-丢弃分组;10-丢弃分组,而且无论该分组的Destination Address是否为多播地址,都把一个代号为2的因特网控制消息协议(ICMP)参数问题消息发送到分组的Source Address,指向未被识别的Option Type;11-丢弃分组,而且只有当分组的Destination Address不是多播地址时,才把一个代号为2的因特网控制消息协议(ICMP)参数问题消息发送到分组的Source Address,指向未被识别的Option Type。
Option Type的第三高端位规定了那个选项的Option Data在到分组的最终目的地的途中是否可改变,以使得执行认证值的计算或验证可以不受这些改变的影响。这个位的含义如下所述0-Option Data在途中不改变;1-Option Data在途中可改变。
在图5中示出了另一类扩展头部,即Routing头部的格式。此头部被IPv6源用来列举一个或多个在到分组目的地的途中要被“访问”的中间节点。Routing头部被在紧邻的前导头部中值为43的Next Header值所标识,具有如下格式-Next Header 8位选择器。以与上述IPv6头部的Next Header字段相同的方式标识紧跟在该Routing头部后的头部的类型。
-Hdr Ext Len 8位无符号整数。Routing头部以8个八位组为单元的长度,不包括第一个8个八位组。
-Routing Type特定的Routing头部变量的8位标识符。
-Segments Left(剩余段)8位无符号整数。剩余路由段的数目,即明确列举出的中间节点,在到达最终目的地前它们仍要被访问。
-Type-specific data(类型专用数据)可变长度字段,具有由Routing Type确定的格式,且具有使完整的Routing头部是8个八位组的整数倍长的长度。
所有的扩展头部必须被格式化以使它们的整体长度是8个八位组的整数倍,并且头部内宽为n个八位组(n=1,2,4或8)的字段应该被放置在距头部起点n个八位组的整数倍的位置上。为此,定义了两个特殊的TLV编码选项Pad1选项和PadN选项,Pad1选项包括单个零值八位组(没有长度或值字段),PadN选项(用于整体插入N个八位组,其中N>1)包括N-2个零值八位组,加上包含值1的类型字段和包含值N-2的长度字段。
除了一个特殊的Hop-by-Hop(一跳接一跳)选项头部之外(在此没有讨论,但在RFC 2460中被描述了),RFC要求只在具有主Ipv6头部中所包含的目的地地址的节点处,对不同的IPv6头部中的每一个都进行检查。换言之,根据IPv6,沿着分组的转发路径,那些仅仅实现路由功能的中间节点不对分组的扩展头部进行检查或处理。
每个扩展头部都通过Next Header字段指向下一个头部的起点,形成一种单向链。链中的每一个头部都严格依次被处理,而且每个扩展头部的内容和语义确定了接收节点是否要继续处理下一个头部。对于已经把一Destination Options头部插入到IPv6头部和分组有效载荷之间的情形,图6图示了这样一种头部链的例子。在此情形下,IPv6头部的NextHeader字段包含了值60,而Destination Options头部的相应字段包含了值6,表示此扩展头部的后面跟着一个TCP上层协议层头部和数据。
本发明利用扩展头部,例如Destination Options和Routing头部,来辅助对运行参数的‘内联’测量,所述的运行参数例如单向端到端延迟、双向(往返)延迟、累积延迟(使用时间戳,该时间戳随着分组经历链路的多个段而累加)和两点丢失(在两点之间传输的分组的丢失)。本发明也可用于监控路由器的运行,例如利用扩展头部中的标签(tag)来标识要被跟踪的分组,以跟踪分组穿过网络的进展。作为网络正常操作的一部分,这种测量和监控可通过向正在穿过网络的分组添加扩展头部来完成,这些头部的格式如在下面的例子中所描述。
例如,通过将扩展头部的选项类型标识符的最高端两位设置为00,Destination Options头部可方便地用于这些目的而不会干扰路由器的正常运行,这些处理器处理已被添加这个头部的分组。如果需要,Destination Options头部可在分组被传递到其计划目的地(例如客户端/服务器)之前被去除。但即使没有做这一处理(或者是故意地,或者是因错误而没有去除头部),目的地节点在接收后仍会根据值为00的选项类型标识符而简单地跳过这一选项。
由于RFC 2460允许将来对附加的扩展头部类型进行可能的定义,在原则上可能会定义一个专门的扩展头部用于测量。如果定义了这些专门的扩展头部,本发明可与它们一起使用。然而,这个方法可能会导致需要定义一个专门的Next Header值,该值只和测量扩展头部有关并且在网络中的任何位置都同样可识别。因此,网络设备制造商和运营商要能确定任何具有包含这个Next Header值的头部的分组正在被用来搜集测量和管理数据。设备可容易地被设计成以一种有利但非典型的方式处理这些分组,可能会妨害测量的目的。通过使用Destination Options扩展头部(或Routing头部),这种风险最小化了,因为没有任何东西能区分该头部的测量目的。而且,只有那些Destination Options或Routing头部对之适用的节点才会在正常的网络运行过程中处理这些头部,减少了干扰运行的风险。
然而,当然也需要在测量过程中所涉及的节点(例如前述例子中的路由器10和16)去检测和处理相关的扩展头部,即使这些节点在正常的网络运行中会忽略它们。如下所述,可以这样来实现,即按照所需向这些节点中正常的操作固件增加某些模块,这些模块扩展了所述节点的分组处理功能。
对延迟测量来说,Destination Options扩展头部被方便地用来携带测量所需的信息。图7示出了这样一个头部的格式,用在测量单向延迟中,包括了如下的合适的选项数据字段-Pointer(指针)8位无符号整数。用来指示选项数据中下一个未使用的空隙(slot)的位置,即用来存储时间戳。
-Overflow(溢出)8位无符号整数。用来指示是否尝试过存储比用来容纳时间戳的空隙更多的时间戳。
-Flags包括8个二进制标志位的八位组,例如用来指示存储在选项数据字段其他地方的数据的性质。
-Reserved(保留)一个被包含用来对齐的零值八位组,即用来确保完整的扩展头部在大小上是8个八位组的整数倍。
-Source timestamp(源时间戳)两个32位无符号整数。该时间戳指示了从扩展头部被插入的节点的接口处转发分组的时间。这两个组成整数分别表示了从全球协同时间(UTC)1970年1月1日的0000时以来逝去的时间的秒数和微秒数。
-Destination timestamp(目的地时间戳)两个32位无符号整数。该时间戳指示了在检测到扩展头部的节点的接口处接收分组的时间,它与源时间戳的格式相同。
头部中的Option Type标识符被设置成这样一个值,该值被分配来标识“单向端到端延迟测量”。
图1所示的本发明的例子图示了在网络的一部分之内延迟测量的情形,例如处于由单个运营商控制下穿过一个部分的边界的分组流的进入点和离开点之间。然而,本发明对“端到端”测量同样适用,例如从服务器(例如为一个网站提供服务)到客户端(例如运行网络浏览器应用程序的无线连接的个人数字助理(PDA))。
再次参考图1,根据合适的、预定的标准,路由器10被配置来选择一个或多个分组。例如,分组可随机地从那些要被发送到特定目的地的分组中选择,或者从那些从一个特定的源发送出去而与其目的地无关的分组中选择。其他用于选择的可能性包括被特定的上层协议传送的所有分组,这些上层协议诸如TCP、用户数据报协议(UDP)、ICMP或因特网群组管理协议(IGMP);或特定应用类型的所有分组,这些应用类型诸如对话发起协议(SIP)、实时传输协议(RTO)或超文本传输协议(HTTP)。因此,对遵从相同特性的期望分组流中的分组进行识别(例如在网络入口点处)可由任何复杂的规则所控制,从而将扩展头部(具有其选项字段)插入所识别出的分组,这些规则涉及诸如下述任何因素的组合源IP地址、目的地IP地址和前缀;传输协议;包含在传输协议如TCP和UDP中的源端口号和目的地端口号;流量类别;和流标签。如果网络既携带IPv4分组又携带IPv6分组,那么就要从IPv6分组中做出选择。
如果需要进行重复测量,并且在内联测量所选择的分组之间要使用统一的时间间隔,那么所测量的延迟可能会被其他应用的操作所影响,这些应用使用碰巧在相同周期基础上通信的相同路径。为减少这一可能性,所选择的分组之间的时间间隔最好从一个随机分布中选出,例如一个泊松分布或截断的帕累托分布。
一旦选择了合适的分组,就要加入Destination Options扩展头部(或者,如果分组已经包含了一个Destination Options头部,则修改它),并且加入如图7所示进行格式化的TLV选项,该TLV选项具有表示“单向端到端延迟”的类型字段和一时间戳值。要被测量的延迟是分组在离开发送节点的链路接口和到达目的地节点的链路接口之间穿越网络的全部的时间(称为“线路时间”,wire time),所以在把时间戳插入分组头部之前,它应该加上已知的或估计的节点上的最终处理时间,该处理时间是从获得时间戳开始,一直到该分组从所述接口离开为止。如果需要,可包含另一个TLV编码选项以提供一个地址(例如网络管理节点的地址),延迟测量结果在接收节点处进行计算后应该被转发到这个地址。
图8示出了在插入用于延迟测量的Destination Options扩展头部之前的IPv6分组的例子,而图9示出了在加入包含了用于时间戳和转发地址的TLV选项的头部(用虚线突出)之后的相同分组。比较两个图,图9中的IPv6有效载荷长度字段已增加了48,表示了扩展头部中的八位组的数目。IPv6头部中的Next Header字段已被改变成60(表示后面跟着Destination Options扩展头部),并且Hop Limit已被减少。扩展头部的Next Header字段包含了先前在IPv6头部中的值6(用于后续的TCP头部),并且扩展头部的长度被表示为第一个8个八位组之外的五个8个八位组单元。第一个TLV选项具有值为33(0010 0001)的选项类型,在此例中用来表示“单向端到端延迟”,而且也表示了该选项可被任何没有被配置为处理它的节点跳过并且该选项数据可改变(即目的地时间戳)。所述选项的长度是20个八位组。Pointer值是13(0000 1101),表示第13个八位组(目的地时间戳的起点)是选项中下一个未使用的空隙,并且Overflow和Flag八位组被设置为零。源时间戳包含了值3D10 FC00H秒(对应于2002年6月中的一个时期)和000B 86A0H微秒(对应于刚刚在1800年后的时刻)。下一个TLV选项一共包含6个八位组的填充,后面跟着最后的选项,并指定了转发地址。这个选项具有类型34(0010 0010),在此例中用来表示“延迟测量的转发地址”,也表示该选项可被任何没有被配置为处理它的节点跳过并且选项数据不可改变。所述选项的长度是16个八位组,包括128位的转发地址本身。
其上的延迟要被测量的路径的另一端的节点(在图1中的例子中这是节点16)按如下所述进行配置,以处理Destination Options头部,并且尤其能够解释特殊的“单向端到端延迟”和“延迟测量的转发地址”TLV选项。一旦接收到具有这些头部之一的分组,节点16就读取并存储头部的内容。然后,重组装所述分组,如果没有出现其他的选项字段则可能不要Destination Options头部,接着把该分组继续转发到其最终目的地。
在目的地节点上,读取包含在Destination Options头部中的源时间戳并把它从当前时间中减掉,以计算单向端到端链路传输时间延迟。在计算中还应该考虑初始分组处理时间,它处在分组到达节点接口和获得节点自己的当前时间值之间。为了把计算出的值转发到Destination Options头部中所指定的地址,可以通过包含在为该目的而生成的新分组中的Destination Options头部的TLV编码选项,或者把该计算出的值附加到前往相同地址的用户分组上,这取决于测量的紧迫性。或者,另一个TLV选项可以用来规定把延迟测量结果存储在节点16的高速缓存中以用于以后的分发或收集。
有必要确保源节点和目的地节点的时钟或者被同步到一个所期望的准确程度,或者它们之间的时间偏差是稳定且已知的。延迟测量和因此而来的时间戳处理所需的准确性和精度在时钟同步方法的选择中是一个非常重要的因素。这些和相关的问题在RFC 2679中有更详细的讨论。
IPv6规范要求每个链路必须有一个大小为1280个八位组或更大的最大传输单元(MTU)以使IPv6可运行。建议的MTU是1500个八位组。如果把Destination Options附加到所选择的分组会冒险违反了节点10将沿其转发分组的链路的MTU限制,则应该选择下一个合适的分组。这是因为延迟测量是时间敏感的并且它可能因此不适当地引起时间损失,该时间损失与在链路上转发分组所需的对下层分组的分片和重组装有关。由于分组选择过程最好是随机化的,因此对该过程的这一修改不应该具有任何不好的统计影响。
如上所述,把Destination Options头部附加到分组上和在其他地方检测并去除它们以执行延迟测量的处理是由路由器如10和16来承担的。这些路由器实际上是专用数据处理器,包含了在软件程序控制下的一个或多个处理器单元、用于存储程序和相关数据的有关存储器、用于保存正进行处理的分组的缓冲存储器和用于接收和发送分组的输入接口和输出接口。
在这个系统级别上,可以实现执行延迟和其他测量的所需功能,例如通过使用动态可加载模块来提供附加的处理逻辑以控制分组在头部上的扩展和其他支持功能,例如存储、获取、关联和转发与测量相关的数据。通过对监控和测量任务的集合进行模块化处理,可以只动态地加载那些在某一特定时刻所需要的模块,然后一旦不用就卸载它们。可以把可加载模块远程传递到节点进行加载和配置,并且在使用时实际上成为节点的操作软件的一个有机嵌入部分。
以这种方式将被主动使用的处理逻辑最小化可减少存储器的使用,加速处理时间,限制电路板空间需求,简化设计并减少整体子系统复杂度。对无线局域网(LAN)中包含移动设备的节点的情形,如蜂窝电话和手持个人数字助理(PDA),它们在处理能力和存储器方面具有有限的资源,这种模块化方法尤其有利。可以容易地在网络基站处提供所需的功能以根据信令,甚至根据数据流量自身来自动加载/卸载模块,这有助于为部署有效的测量和监控实现自动化的反应策略。尤其是,这个方法消除了在网络上为了测量而四处跟踪流量的需要,因为流量自身可启动测量/监控功能。这可能在移动蜂窝无线电接入网络的上下文中尤其有用,因为移动终端可自由地漫游并在单个对话期间使用通过网络的多个路径。
这种模块化方式也使它自己获得一种远程、分布式的实现,因为模块可在网络上如所需地自由插入和去除,为动态可配置的、本地化的处理站点和关联实体提供了可能。嵌入式模块方法的另一个重要优点在于它不需要物理连接到组成路由器之间链路的电缆或光缆上以监控通过的数据。相反地,嵌入式模块方法利用了路由器或其他网络设备内部空余的可编程逻辑或处理能力,提供了一种更集成的、本质强大的方案。升级涉及到把新模块传递到节点(例如通过网络自身),这些模块或者可在传递后直接被加载,或者暂时存储在某种形式的本地介质(如硬盘存储器)上以供后用。
图10示出了单个网络元件30的示意性体系结构,具有多个线接口32和一控制器34,控制器34包括处理器、存储器和程序软件或固件。该示了三个不同的示例集成点,依赖于网络元件30的设计,可以在这些集成点上容纳动态可加载模块-(A)模块可被加载到线接口32上以控制硬件(例如现场可编程门阵列-FPGA)的动态重配置,或者作为用来控制线接口的处理逻辑的软件/固件,或者作为两种选项的混杂式组合;-(B)模块可作为控制器34的软件操作系统‘内核’或其等同物中的可加载软件而存在;-(C)模块可作为控制器的操作系统所提供的‘用户’空间中的可加载应用程序而存在。
根据选项B的集成假定了操作系统使得模块附加到系统内核上,例如可加载内核模块(Loadable Kernel Module,LKM)。与在用户空间中执行的应用程序相比,这些模块一般提供更好的处理性能,并且可容易地作为网络协议栈的内核实现的一个有机部分而被配置来附加、去除和修改扩展头部,而不必在外部的用户空间进程中显式地构建完整的分组。
选项C涉及在用户空间中处理IPv6扩展头部,而不是作为操作系统的协议栈实现。这不可能像使用内核模块的方案那么好,可能具有较差的性能。然而它不需要操作系统内核编程技术的知识,并且因此可能会更易于实现。另外,它避免了与操作系统安全性和完整性有关的可能的问题,操作系统安全性和完整性可能会与运行在此所讨论的路由器或其他节点的机构的安全策略发生冲突。
依赖于特定的管理应用需求,可以动态地控制把扩展头部插入到用户流量中用于测量和监控。因此不是所有的用户分组需要在其中嵌入扩展头部。可以基于应用作出选择,而且可能使用采样。
上述用于执行内联监控和测量的技术与现有方法相比提供了许多优点-实现IPv6协议的路由器功能也用于检测哪些分组需要进行处理,因为这些分组是通过标准扩展头部而被识别的;因此可避免复杂的过滤技术来检查每个到达接口的分组,以检验该分组是否符合预定义的标准而被包括在监控/测量操作中。
-正是用户流量自身携带了测量和触发信息,因此当分组在两个监控点中的任一处被观测时,可确保在两个场合下涉及的是同一分组。
-类似地,来自路径端点的数据的关联不是必需的,减少了测量系统的复杂度,可能减少了必须在网络上传输的测量数据的数量,并有助于更快地获得测量结果。
-任何增加的数据都被包含在实际用户流量的内部。假定分组头部长度中的少量增长不改变分组在其通过网络的旅程中是怎样被处理的话,那么所增加的数据就很可能因此会受到同样的处理并遵循与实际用户流量相同的路由路径。
-在网络上传送的用于测量目的的附加流量的总量是受限的。
-与由所插入的分组构成的主动测量不同,两点内联测量结果将更准确地反应分组会影响用户对网络运行的体验的行为,只具有很小的附加系统处理延迟和与未被干扰的分组相比稍大的整体分组长度。
-以一种较优的方式使用IPv6协议的特性,以使得用来对网络行为进行测量和监控的动态实现得到简化,并因此减少了成本、复杂度和对提供相同功能的专用探测的需求。
-使用IPv6扩展头部的内联测量大体上没有被所使用的高层传输协议(例如UDP或TCP)影响。因此,可对任何选定的传输协议进行类似的测量或相反,不论给定什么传输协议都执行类似的测量。
主IPv6头部(图2)中的20位流标签字段本质上是试验性的。很大程度上这个字段实际上没有用于其最初设想的目的,并假定它用于其他目的时不会损害网络的运行,Destination Options、Routing头部和流标签字段的组合使得可选择性地将数据加到实际用户流量上,该流量在实现必要功能的地方,由节点的IPv6协议层进行检测和处理。处理的级别和本质可由包含在扩展头部中的选项所确定,并且可能涉及增加计数器的值,加入时间戳注释,抽取分组数据并将之倒入具有时间戳注释和各种计数的高速缓存,或者触发对分组完整拷贝的捕获。Destination Options自己就可用于执行端到端内联服务测量(在IPv6网络上)。增加一路由头部,就可以选定路径上的特定节点,以使得当用户流量穿过网络云团的关键点时,实现更具体的服务测量。当包含内联数据的用户流量通过途中节点被转发到其目的地时,也可利用流标签字段中的一些位来容易地标识和触发测量和监控行为。
总体说来,本发明涉及下述过程性步骤,如图11所图示,可在设备(如路由器)的几个不同组分上分配这些步骤(a)在网络中的第一“逻辑”点处选择分组(40);(b)通过至少一个扩展头部把数据附加到分组上(42);(c)可选择性地修改任何现有扩展头部中的数据;(d)例如在网络中的第二“逻辑”点处观测分组中的扩展头部数据(44,46);(e)然后可去除扩展头部数据(48)并且获得了所需的测量(50)。
网络中的“逻辑”点也可以是物理上分开的点。然而,依赖于测量和监控活动的本质,两个“逻辑”点也可物理上同时位于相同的物理点上。例如,单个观测点可用来跟踪(trace或track)经过此观测点的TCP连接或任何事务性“对话”(conversation)(例如用于状态建立和维护的信令协议)。因此,观测点可将扩展头部插入到向一个方向流动的分组中,并接收相反方向的分组中的扩展头部的回应值,用于基于响应的测量。按这种方式,就可以估计TCP的连接建立时间或者其他面向连接的或事务性的协议。另一种可能性就是测量建立SIP关联所占用的时间,这样就可以传送实时服务如网络电话(VoIP)。逻辑观测点位于同一位置的另一个例子是对环形网络上的参数的测量。
虽然出于方便,本发明在遵循IPv6的网络上下文中进行了描述,但它对其他网络系统和协议也同样适用,这些系统和协议使得分组在网络上传输时可包含附加信息。
权利要求
1.一种用于测量网络运行流量所经历的网络运行参数的方法,包括如下步骤根据分组的数据结构定义中的能力,选择经过网络中第一监控点的分组,以便将附加信息包含到该分组中;根据所述被选择的分组的数据结构定义,将用于测量至少一个网络运行参数的预定信息包含到所述被选择的分组中;根据该分组中的寻址信息将所述分组转发到它的目的地;根据所述预定信息的出现,选择经过网络中第二监控点的所述分组,并观测所述预定信息;和根据观测到的信息,实现对所述网络运行参数的测量。
2.根据权利要求1的方法,其中,所述的第一和第二监控点位于网络中相同的物理位置。
3.根据权利要求1的方法,其中,所述的第一和第二监控点中的至少一个位于所述被选择的分组的源端点或目的地端点。
4.根据权利要求3的方法,其中,到所述端点的所述分组路径包括无线连接。
5.根据权利要求1的方法,其中,所述网络运行参数是单向端到端延迟、往返延迟、累积延迟、两点丢失和分组穿过网络的进展中的任何一个。
6.根据权利要求5的方法,其中,所述预定信息包括从所述的第一监控点发送所述分组的时间戳。
7.根据权利要求1的方法,其中,所述网络使用因特网协议第六版,并且所述预定信息被包含在因特网协议第六版扩展头部中。
8.根据权利要求7的方法,其中所述因特网协议第六版扩展头部是目的地选项扩展头部。
9.一种用于测量网络运行流量所经历的网络运行参数的系统,包括选择器,用于根据分组的数据结构定义中的能力,选择经过网络中第一监控点的分组,以便将附加信息包含到该分组中;分组修改器,用于根据所述被选择的分组的数据结构定义,将用于测量至少一个网络运行参数的预定信息包含到所述被选择的分组中;分组转发器,用于根据该分组的寻址信息将所述分组转发到它的目的地;选择器,用于根据所述预定信息的出现,选择经过网络中第二监控点的所述分组,并观测所述预定信息;和参数测量器,用于根据观测到的信息,实现对所述网络运行参数的测量。
10.根据权利要求9的系统,其中,所述网络运行参数是单向端到端延迟、往返延迟、累积延迟、两点丢失和分组穿过网络的进展中的任何一个。
全文摘要
通过根据分组的数据结构定义中的能力,选择经过网络中第一监控点的分组以将附加信息包含到该分组中,网络运行流量所经历的网络运行参数得到了测量。根据被选择的分组的数据结构定义,用于测量至少一个网络运行参数的预定信息被包含到被选择的分组中,并且根据该分组的寻址信息将分组转发到它的目的地。根据预定信息的出现,分组在经过网络中第二监控点时再次被选择,该分组被观测并且根据观测到的信息被用来实现对网络运行参数的测量。本发明可通过在遵循IPv6的网络中使用扩展头部来实现。
文档编号H04L12/24GK1492630SQ0315712
公开日2004年4月28日 申请日期2003年9月15日 优先权日2002年9月16日
发明者弗朗西斯科·加西亚, 罗伯特·加德纳, 约瑟夫·斯文特克, 加德纳, 斯文特克, 弗朗西斯科 加西亚 申请人:安捷伦科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1