本发明依照35 U.S.C.§119(e)要求2004年1月30日提交的序号为60/540738,名称为“多跳无线网络中的故障检测、隔离和诊断”的美国临时专利申请的优先权。
具体实施方式
概述
下面说明供有线和/或无线网络维持有效和可靠网络运行之用的网络诊断故障构架。这里所述的构架可以利用联机轨迹驱动网络仿真,来检测故障和执行故障的根原因分析。网络仿真是可以从真实网络获得网络性能的“联机”。
该构架可适用于诊断各种各样的性能问题(即,故障),比如由分组丢弃、链路拥挤、媒体访问控制(MAC)行为不端、外部噪声等造成的故障。构架还可以用来评估可替代的网络配置,以改善网络性能。尽管以下讨论描述了典型无线网络中的构架,但是也可以在有线网络中利用该构架。
典型环境
如上所述,网络管理已经受到工业界和研究界的有限关注。网络管理的实施可以包含:连续监测网络功能,收集网络中节点和链路的信息,删除报告数据中的不一致和噪声,分析数据,以及执行改善网络可靠性和性能的适当行为。
网络诊断故障是负责维护网络的“健康”以及确保其平稳和连续操作的网络管理的一个方面。诊断有线或无线网络故障,因各种交互作用而复杂化,此类交互作用比如是,不同网络实体之间发生的交互作用、故障间的交互作用等。诊断多跳无线网络故障,因各种附加因素而变得更加复杂。例如,典型的多跳无线网络通常容易链接由信号传播波动造成的错误,该波动导致动态和不可预知的网络拓扑。此外,多跳无线网络的容量通常受限于资源(例如,带宽、蓄电池电源等等)的不足,这又抑止了网络可以容忍的管理业务开销量。
下面说明解决这些复杂性的构架。构架可以利用联机轨迹仿真来检测故障并且执行根原因分析。仿真可以用来再现在造成故障的网络中发生的事件,从而标识和纠正故障。
图1是一个典型实施例中的环境的示意图,显示了具有多个节点102(1)、102(2)、102(3)、……102(n),……102(N)的网络100。图1的多个节点102(1)-102(N)实现一个典型构架,该构架利用了用于故障检测、诊断和假设分析的网络100的仿真。构架具有多种有益特性。首先,构架是弹性的(灵活的)。由于仿真是高度客户化的并且可以适用于在不同环境中实施的大类别网络,因此建立在仿真器顶部的诊断故障可以被配置成继承该灵活性。第二,仿真能够获得各种复杂的交互作用。例如,可以在网络内、网络与环境之间捕获交互作用,以及捕获在网络运行期间发生的不同故障之中的交互作用。因此,构架(通过使用仿真)提供宽范围故障及其组合的系统诊断。第三,该构架是可扩展的,其中通过模仿不依赖于系统中其它故障的仿真中的故障,可以把检测新的故障的能力嵌入到构架中。通过仿真的执行,可以隐性地捕获构架中模仿的新故障与先前存在的故障之间的交互作用。第四,仿真器内的网络再现便于假设分析,所述假设分析提供可以对网络进行修改的性能效果的定量反馈。例如,校正行为可以开始校正网络运行中的故障,修改可以增加网络性能,等。
构架可以利用一个或多个多种现存网络仿真器来仿真网络100,比如QUALNET(QUALNET是位于洛杉矶的Scalable Network技术公司的商标)、OPNET MODELER(OPNET MODELER是位于华盛顿特区的OPNET技术公司的商标),等等。提供给仿真器的跟踪是从正在诊断的网络(即“真实”网络)获得的。利用来自真实网络的跟踪,删除也许不捕获硬件、软件和所述特定网络的环境的细微差别的一般推理模型的构架的依赖性,从而提高构架的精度。
构架还可以利用诊断故障方案执行根原因分析。例如,该方案可以把联机跟踪仿真器发射的已估算网络性能数据利用为真实网络的期望性能的基线。然后利用与期望性能的偏差指示潜在的故障。此外,该方案可以选择性地把候选故障集注入到仿真器中,以通过使诊断故障缩小到搜索故障集的问题来执行根原因分析。因此,可以根据当注入时使仿真逼近真实网络的已观测性能的故障,标识根原因。因此,构架可以利用搜索算法检测和诊断故障,比如分组丢弃、链路拥挤、外部噪声、MAC行为不端等等。这些故障对性能可以具有比较长的持续影响,并且更难于检测失败停止错误,比如当电源或者电池断电造成的节点自身断开的失败停止错误。
这样,构架可以把仿真利用为网络中可选和潜在性能增强配置的诊断故障和测试的分析工具。在以下部分中,网络跟踪被标识为,当提供给仿真器时,提供给予真实网络行为的精确描述。技术还被描述为减少或者删除来自跟踪的错误数据,该技术的进一步讨论可以在关于图8和图9的描述中发现。因此,仿真器装备有高质量的数据。此外,搜索算法被描述为有效诊断网络中的多个故障,该算法的进一步讨论可以在参照图7的描述中发现。仿真器还可以用来执行假设分析并且量化当前网络上的可能行为的性能效益,进一步的讨论可以在操着图10-13的说明中发现。
诊断故障构架可以被利用在各种各样的网络配置中。图1的网络100图示了一个这样的实例,网络100被描述为一个无线网状网络。网状网络可以利用各种安排,比如全网状拓扑或者部分网状拓扑。在全网状拓扑中,每个节点被直接连接到网络中的每个其它节点。在部分网状拓扑中,每个节点被连接到至少一个其它节点,但不需要被连接到网络中的每个其它节点上。
网状网络例如可以作为用于邻居的使能技术,协作地构成自管理的社团无线网状网络。每个邻居可以提供网络100的多个节点102(1)-102(N)的一个或多个。借助这样的网络,邻居可以例如以成本效益方式共享互联网网关104。
在邻域中利用的网状网络的实例中,用来通信地链接多个节点102(1)-102(N)的路由器位于家庭中,并且被插入在电插座中。因此,该实例中的每个路由器限制移动性。然而,这样的网络中的相对可靠性使得网络诊断故障甚至更加重要,因为故障队网络性能具有持续影响。应当注意的是,该实例中的路由器移动性的缺乏不能减弱网络拓扑的活力,因为环境改变导致无线链路可以访问或者不可以访问。在另一个实例中,网状网络的节点可以是移动的,比如通过具有无线通信能力的移动计算装置、比如个人数字助理(PDA)、图形输入板个人计算机(PC)、膝上型计算机等等的使用而移动。
此外,社团网状网络的增长是有组织的,因为由用户购买和安装加入网状网络的设备。传统网状网络缺乏负责网络管理的中心实体。然而,可以提供经由所述构架提供的自管理能力和自修复能力,从而使每个节点102(1)-102(N)实施诊断故障能力。在所示的实施例中,提供了具有管理能力的单一节点。
在图1所示的网络100中,每个节点具有一个处理器、存储器和网络连接装置。节点102(n)显示了一个实例,它包括处理器106(n)、存储器108(n)和网络链接装置110(n)。处理器(例如,处理器106(n),106(N))不限于构成它们的材料,或者所使用的处理机制。例如,处理器可以由半导体和/或晶体管(例如,电子继承电路(IC))组成。在这样的语境中,处理器可执行指令可以是电可执行指令。作为选择,处理器的机制,因而节点的机制可以包括(但不限于)量子计算、光计算、机械计算(例如,使用纳米技术)等等。
存储器(例如,存储器108(n),108(N))包括取易失性和/非易失性存储器的计算机存储媒介,比如只读存储器(ROM),随机存取存储器(RAM)等等。存储器还可以包括可查协/不可拆卸、易失性/非易失性计算机存储媒介。存储器提供计算机可读指令、数据指令、软件分量以及用于节点的其它数据的存储。
网络链接装置(例如,网络链接装置110(n),110(N))可以采用各种用来通信地把节点连接到网络100的配置。当用于局域网(LAN)环境时,例如节点102(n)经由可以是有线的和/或无线的网络接口或者适配器通信地连接LAN。当用于广域网(WAN)环境时,网络链接装置可以被配置成调制解调器,或者用于建立通信的其它装置,比如经由数字用户线(DSL)的有线连接、装备有卫星装置的无线连接等。在图1中通过箭头的使用,示出了逻辑连接。尽管图1所示的网络100是无线网状网络,但是也可以利用各种其它网络,比如互联网、内联网等。
节点102(n)、102(N)示出了由软件模块组成的典型管理结构。通常,可以使用软件、固件(例如,固定逻辑电路)、互处理、或者这些实施的组合来实现所述的任何一种功能。这里使用的术语“模块”、“功能”和“逻辑”通常代表软件、固件或者软件和固件的组合。在软件实现的情况下,模块、功能或者逻辑代表程序码,当在处理器如一个或多个中央处理单元(CPU)上运行程序码时,该程序码执行特定作业。程序码可以被存储在一个或多个计算机可读存储器装置中。下面所述的构架特征是独立平台,即,可以在具有处理器的各种商业计算平台上实现的诊断故障技术。
设置代理模块112(n),以便在网络100的每个节点102(n)上运行。代理模块112(n)代理模块112(n)被显示为在处理器106(n)上运行,并且可存储在存储器108(n)中。代理模块112(n)包括一个数据收集模块114(n)(以下称之为“收集模块”),当运行时,该收集模块可以从各种协议层和/或从网络连接装置110(n)中收集数据。在图1所示的网络100中,代理模块112(n)向具有管理功能的节点102(N)(以下称之为管理器节点)报告该数据。管理器节点102(N)执行数据的分析(例如通过实施接受作为输入的数据的仿真)并采取诊断网络故障的适当行动。通过把管理器置于如图1所示网络100的单一节点上,可以统一网络的管理,或者该管理被描述成多个网络节点分别包括管理功能。
当在相应处理器106(n)、106(N)上运行代理模块112(n)、112(N)时,这些代理模块收集并向管理器节点102(N)传送描述它们(本地)观看的网络行为。发送的数据的实例可以包括话务统计、不同链路上的接收分组信号强度、每条链路上的重传计数等等。
管理器节点102(N)包括管理器模块116(N),该模块可存储在存储器108(N)中并且可以在处理器106(N)上运行以处理来自诊断网络100故障的代理112(n)、112(N)的数据。管理器模块116(N)例如包括一个仿真器118(N)(以下称之为“仿真器”),它可在处理器106(N)上运行并可存储在存储器108(N)中,以仿真网络100。
管理器节点102(N)从各个代理112(n)、112(N)接收的数据可以导致网络100的不一致观察。这种不一致可以是拓扑和环境改变的结果、测量误差、节点行为不端等的结果。因此,管理器节点102(N)包括可在处理器106(N)上运行以解决这种不一致的数据清零模块120(N)(以下称之为“清零模块”)。然后提供从清零模块120(N)输出的清零数据,以供根原因分析模块122(N)(以下称之为“分析模块”)进行处理,下面将参照附图进行进一步讨论。尽管管理器节点102(N)被图示为包括代理模块112(N)和管理器模块116(N),但是在另一个实施例中,管理器节点102(N)是不包括代理模块112(N)的专用管理器。此外如上所述,管理器模块116(N)的功能可以由网络100中的一个以上地节点提供。
图2是详细显示图1的分析模块122(N)的典型实施例200的示意图。一旦图1的清零模块120(N)已经解决了数据的不一致,该清零数据就被馈送到分析模块122(N),用于进一步探察。
分析模块122(N)利用联机跟踪驱动仿真,分析与仿真的网络运行所指示的预期网络性能之差的根原因。在下面的讨论中,预期网络性能和仿真网络性能被用来交换地指示由网络仿真提供的网络性能。分析模块122(N)可以利用从跟踪使用程序获得的清零数据202,这种数据的实例在图2中被图示为链路接收强度(RSS)204、链路定位206和路由更新208,以便在给定的网络配置和话务图形下,驱动联机仿真并建立预期性能。
分析模块122(N)被图示为包括通过仿真器118(N)的运行提供的网络仿真210。网络仿真210可以通过一个或多个软件模块的运行来提供,所述软件模块提供网络特征的仿真,这些模块在图2中被显示为干涉诸如模块212、话务仿真模块214以及拓扑改变模块216。干涉诸如模块212通过对网络仿真210注入外部噪声,执行对外部噪声源的仿真。话务仿真器模块214可执行确保网络仿真210的话务逼近真实网络的话务。拓扑改变模块216可执行对拓扑变化的仿真,比如通过条加和/或删除网络仿真210中的噪声来仿真。
分析模块122(N)通过将网络仿真210所指示的预期性能与观测性能进行比较,检测图1的网络100中的故障。当观测到不一致时,分析模块122(N)通过搜索一个或多个被存储在故障目录218中的故障,确定差异的根原因,从而导致仿真与观测网络性能之间的最佳匹配。
分析模块122(N)例如可以接收来自图1的一个或多个代理模块112(n)的描述损耗率、吞吐量和噪声220(在图2中,被显示为“损耗率、吞吐量和噪声220”)的观测数据220。网络仿真210计算预期数据222,描述预期损耗率、预期吞吐量和预期噪声(在图2中被图示为“预期损耗率、吞吐量和噪声222”)的计算。观测数据220经过延迟224被传递到比较器226,使比较器226同时接收观测数据和预期数据220、222。比较器226随后确定观测数据220是否草果预期数据222。如果是,则比较器226把用于通信的错误消息228输出给网络管理器,并且把错误传送给故障目录218,以确定错误的根原因。
在经过从故障目录218选择一个或多个故障标识错误的根原因之后,分析模块122(N)可以仿真用于纠正故障的一个或多个可替代行为。可替代行为是在话务仿真器214和拓扑改变模块216分别提供的当前话务图形和网络拓扑条件下仿真的。根据仿真,分析模块122(N)可以建议减轻故障并增强网络的整个性能的一个或多个行动,其一个实例被图示为图2的链路节点故障230。例如,可以通告网络管理员软件或硬件是否被怀疑为故障,如果检测到不良连接性,可以经由传输功率调整改变拓扑,路由器可以利用速率限制减轻拥塞,等等。
联机诊断的网络仿真210的使用提供了超过传统的试探或推理诊断技术的多种效益。例如,网络仿真210可以提供超过传统试探或者推理技术的,对网路行为的增强理解。运行的无线网络例如是一个复杂系统,具有复杂的部分,比如话务流、连网协议、信号处理算法、硬件、射频(RF)传播等等。此外,交互作用可以发生在网络的所有部分之间。可以经过从故障目录218中选择一个或多个故障,来有效诊断和解决故障之间的交互作用,所述故障目录218产生对应于“真实”网络的实际行为的网络仿真210。
此外,网络行为可以由彼此的节点交互作用、以及位于节点附近的外部噪声源支配。传统的试探或者推理技术不会捕获这种网络的行为,并且不会充分地解决网络的部分成份之间的交互作用。
作为一个实例,考虑一个图3所示的7×3格栅拓扑网络300。网络300中示出了5个流,并且被标注为F1302、F2304、F3306、F4308和F5310。在所示的实例中,每个流302-310具有相似的通信话务量。例如,每个流302-310从相应应用中充分接收相似的数据量。
此外,在该实例中,邻近节点彼此可以“听”,并且干扰范围是通信范围的两倍。节点A312与节点O314之间的话务例如干扰节点C316与节点Q318之间的话务。同样,节点G320与节点U32之间的话务干扰节点E324与节点S326之间的话务。然而,节点G320与节点U322之间的话务和节点A312与节点O314之间的话务不干涉节点D328与节点R330之间的话务。
下表描述了当每个流以11Mbps速率发送恒定比特速率(CBR)话务的吞吐量302-310的一个实例。
F1 |
F2 |
F3 |
F4 |
F5 |
2.50Mbps |
0.23Mbps |
2.09Mbps |
0.17Mbps |
2.53Mbps |
如上表所示,流F3306接收高于流F2304和F4308的吞吐量。换言之,流F3306消耗比网络300的其它流更高的带宽部分。
传统上,探索技术的应用导致流F3306接收带宽的不适当较大共享的推断。然而通过联机跟踪驱动仿真的使用,管理器节点102(N)可以推断这是一种常规行为。例如,网络仿真可以考虑链路质量,因而确定流F1302和流F5310对接流F2304和流F4308。因此,流F3306设有附加带宽,因为缺乏与F2304和F4304相对的流F1302和F5310的干扰。这样,仿真可以确定:即使流可以具有相同的应用等级发送速率,但是仍然期待观测的吞吐量。然而,试探可以获得节点D328和R330行为不端的错误推断。
通过从给定当前话务流和链路质量的网络得知“期望什么”,分析模块122(N)利用网络仿真来管理网络。换言之,分析模块122(N)可以根据网络仿真提供的估算评论形成了什么常规行为。在上述实例中,即使F3306利用比网络300中的流更宽的网络300的带宽共享,这也不能被管理模块标记为故障,因为期待该行为。当观测行为偏离预期行为时,管理器模块可以调用利用图2的故障目录218确定偏离的根原因的故障搜索算法。
此外,尽管能够把基于签名或者基于规则的故障诊断方案应用于特定类型的网络,并且处于特定环境和配置下,但是简单签名或者规则不能充分捕获一般设置中的故障诊断的固有复杂性。相反,仿真器是非常用户化的,并且可以借助适当参数设置应用于被配置用于不同环境的大类别网络。建于这种仿真器顶层的故障诊断继承该普遍性。
基于仿真方案的再一个优点是执行假设分析的能力。也就是,通过修改设置或者在仿真器中执行某些动作,仿真器可以预测用于假设情况的性能。根据该数据,管理器模块可以指令代理模块(例如,图1的代理模块112(n))采用适当行动最佳化网络的性能。如上所述,这样的假设分析是有价值的,因为难于预知网络中多个因素的交互作用造成的校正动作的结果。例如,可以增加发射器功率改善链路质量,但是增加功率还会造成影响网络中其它节点的附加干扰。
故障检测和诊断
下面说明基于仿真的诊断方案,该方案考虑了在逼近真实网络的功能的仿真器(例如,网络仿真210)内部建立环境。然后将建立的环境(即,网络仿真)可以被利用来确定真实网络的预期行为,以及确定真实网络运行中的差异何时发生。为了发现这些差异的根原因,管理器模块可执行对故障空间的搜索,以确定哪些故障或者哪组故障可再现逼近真实网络中观测的网络性能的网络性能。仿真网络可以再现各个网络方面,比如真实网络中观测到的网络拓扑、路由行为、话务图形等。
利用作为构建块的联机跟踪驱动仿真,描述可执行发现故障的根原因地诊断算法。诊断算法例如可以在给定的故障集下,首先估算网络性能。然后,根据已估算性能与已观测性能之差,诊断算法搜索故障空间,以再现任何已观测的差异。在一个实施例中,诊断算法可以诊断相同类型(例如网络拓扑)的多个故障,以及诊断多种类型故障(例如,噪声和拓扑)的存在。
甚至当用来驱动仿真的跟踪数据包含差错时,也可以诊断故障。例如,图1的代理模块112(n)提供的数据可以包含各种原因导致的误差,比如测量误差、假通信、节点102(n)的运行中的软件/硬件误差,网络通信误差,等等。清零节点102(N)运行清零模块120(N),以从该跟踪中减少或者消除误差,使质量跟踪数据被利用来驱动基于仿真的故障诊断。可以在参照图8-图9的说明中发现清零模块120(N)运行的进一步讨论。
跟踪驱动仿真
图4是显示包括图2的仿真器118(N)和网络仿真210的系统400的一个典型实施例的示意图,经由真实网络运行获得的跟踪数据能够使仿真器118(N)精确地代表真实网络的网络运行,并检查给定故障集对真实网络的影响。可以从对仿真器的输入中收集各种跟踪数据,下面描述了一些实例:
网络拓扑402
网络拓扑402数据描述了网络的拓扑,比如节点当前是网络的成员以及节点之间的相应链路。网络中的每个节点例如可以被配置成报告多个邻居节点和在节点的一个或多个路由表中引用的多个节点的状态。这样,可以把网络中的节点从属关系传送给图1的管理器节点102(N)。在一个实施例中,仅仅报告邻居或者路由中的变化。该数据可以用来驱动路由仿真,下面将参照图4的路由仿真器更详细说明该路由仿真。
话务统计404
话务统计404数据可以被用来描述经由网络和传送该数据的特定节点传送的数据量。话务统计404可以被图2的话务仿真器模块214用作输入,使网络仿真210具有逼近该真实网络的话务流。网络的每个节点可以维持一个或多个计数器,该计算器描述发送给其直接邻居以及从该直接邻居接收的话务量。该数据用来驱动由话务仿真模块214提供的路由话务仿真,图4还详细说明了话务仿真模块214。
物理媒介406
物理媒介406数据可以描述对被用来实现网络的物理媒介的网络性能的作用。例如,在无线网络中,每个节点可以报告其噪声电平以及来自其邻居节点的无线链路的信号强度。在一个实施例中,通过时间平均、标准偏离或者其它统计集合可以周期地捕获信号强度的变化。
网络运行408
网络运行408数据描述了真实网络的网络运行408。如上所述,将观测的网络运行与从网络仿真输出的估算网络运行进行比较,以检测网络运行差异。网络运行可以包括链路运行和端对端运行,通过各种度量,比如分组丢失速率、延迟和吞吐量,测量这两个运行。以下说明集中于链路级运行。
数据收集可以包括两个步骤:(1)在本地节点收集原始性能数据,和(2)把收集的数据分布到用于分析的收集点。多种工具可以被用于本地数据收集,比如自然(native)路由协议和分组探测。
在一个实施例中,即使对管理器模块的数据分配引入了网络开销,网络开销也是很小的,并且对网络中的数据话务影响很小。此外,通过使用压缩、数据编码、多播、时标和/或分布的时间范围的自适应变化等,可以减少网络开销。例如,在网络的常规运行期间收集合交换最小数据集。一旦一种需要出现附加数据(例如,当收集的信息指示一个差异时),管理器模块可以请求附加信息并增加用于需要增加监测的节点的子集的数据收集的频率。
仿真方法
可以以各种类别分类由仿真器模仿的网络特征,如话务负荷、路由、无线信号、故障等等。以下部分将这些典型类别之每个的仿真实例描述为用来使仿真器仿真相应网络特征的各个模块。
话务负荷仿真器410
仿真器生成的网络仿真可以被配置成,使它提供逼近真实网络的话务图的一个话务图。话务负荷仿真方案的一个实例包括端对端应用需求的仿真。然而,N个节点网络可以包括潜在的N2个需求。然而,端对端应用需求也许很难获得应用需求的给定不均匀性以及不同传输协议(比如传输控制协议(TCP)、用户数据报协议(UDP)、快速传输协议(RTP)等等)的使用。
在一个实施例中,话务负荷仿真器410模块是图2的话务方针模块214的一部分,并且提供一个基于链路的话务仿真,该话务仿真用于可伸缩性并且避免获得端对端应用需求的需要。基于链路的话务仿真在实施时,可以调整每条链路的应用级发送速率,以匹配真实网络的观测的链路级话务计数。这样,较高层(例如,传输层,应用层,等等)被抽取,以允许仿真集中到分组大小以及话务速率上。
当不能直接控制链路上的发送速率时,比如当仅仅可以调整应用级发送速率以及必需处理媒体访问控制(MAC)协议时,在仿真器中基于每条链路匹配发送速率也许是重要的。例如,当链路的应用发送速率被设置在1Mbps时,实际发送速率(空中)可能因为MAC层上的补偿而变得较低,或者因为MAC级重传而变得较高。问题因干扰而更加复杂,从而带来不同链路的发送速率之间的相依性。
通过确定每条链路上的发送速率,迭代搜索技术可以被用来解决这些问题。可以利用各种迭代搜索技术,比如(i)倍增和倍减,以及(ii)附加增加和附加减小。如以下使用典型伪码描述的过程所示,每条链路单独尝试减少仿真器中当前发送速率与真实网络中实际发送速率之差。
while(不收敛并且i<multiplicative)
i=i+1
If(option==multiplicative)
对于每条链路(j)
prevRatio=targetMacSent(j)/simMacSent(J);
currRatio=(1-α)+α*prevRatio;
simAppSent(J)=prevAppSent(j)*currRatio;
else//附加
对于每条链路(j)
diff=targetMacSent(j)=prevMacSent(j)
currsimAppSent(j)=prevAppSent(j)+α*diff;
利用作为输入的simAppSent运行仿真
依据仿真结果确定用于所有链路的simMacSent
conveyed=isConverge(simMacSent,targetMacSent)
因而,上述伪码图示了使用倍增/倍减或者附加增加/附加减小的应用级发送速率的搜索的实例。在上述典型过程中,引入了衰减振荡的参数α,其中α≤1(例如,α=0.5)。该处理重复,直至速率逼近目标速率(表示为targetMacSent)或者达到迭代的最大数。
路由仿真器412
路由选择在网络性能方面起到重要作用,特别是在多跳无线网络中起到重要作用。一个路由方案包括仿真器内部的用于真实网络的路由协议的仿真。为了再现与真实网络相同的路由行为,获得建立路由得分组的详细跟踪。
分组采用的实际路由可以被作为对路由仿真器412模块的输入。当路由不能频繁波动时,可以追踪路由改变,以取代管理器上基于逐个分组的收集路由。为此目的,路由仿真器412模块可以是跟踪驱动。例如,可以在仿真器118(N)(比如QUALNET仿真器(QUALNET是位于洛杉矶CA的Scalable网络技术有限公司的商标))内部实施路由仿真模块。路由仿真412模块接收作为输入的路由更新和相应的时间标记,然后确保网络仿真中的分组跟踪与真实网络中相同的路由。
信号强度仿真器414
信号强度影响有线和无线网络性能。由于不同网络连接装置(例如,无线卡)和环境地变化,普通传播模型也许很难得到捕获所有这些因素的结论。为了解决该问题,可以依据真实网络中信号强度的真实测量(比如,从网络连接装置本身获得)驱动信号强度仿真器414。
故障注入416
构架可以包括故障注入416模块,该模块可把不同类型的故障,比如主机上的分组丢弃、外部噪声源、MAC行为不端等等注入到仿真器中。这样,分析模块可以检查故障对网络的影响。主机的分组丢弃例如发生于行为不端节点丢弃一部分来自一个或多个邻居节点的话务时,这种丢弃例如是硬件/软件差错、缓存器溢出、恶意丢弃等造成的。检测这种终端主机丢弃的能力是有用的,因为它允许管理器将终端主机造成的损耗与网络造成的损耗区别开来。
通过故障注入416模块的运行,构架还支持网络中的注入外部噪声源的能力。因而,构架可以提供复制噪声源效果的仿真,该噪声源位于网络之外(即,不是节点提供的)但仍然影响网络。
MAC行为不端发生于故障节点不遵从MAC规则(规矩)并获得信道带宽的不公正共享的时候。例如,在IEEE802.11中,故障节点可以选择更小的争用窗口(CW),攻击性地发送话务。
构架还可以通过把高数据发射负荷应用于仿真网络上,来仿真链路争用。与其它类型的故障不同,链路拥塞通过从每个节点收集的话务统计来隐性地捕获。因此,增机驱动仿真可以访问真实网络上的链路拥塞的影响。从以下部分可以发现故障诊断的进一步讨论。
故障诊断
通过图2的分析模块122(N)的运行可以诊断故障的根原因和性能问题。通过把故障应用于网络仿真,网络差异的诊断可以被归纳为故障集的搜索,其中当故障注入到仿真网络时,产生逼近真实网络的观测性能的被仿真网络地估算性能。更正式地,给定网络设置NS、FaultSet被认为使:
SimPerf(NS;FaultSet)≈RealPerf,
其中,网络性能是可以使用各种不同度量量化的功能值。故障的搜索空间可以包含多个搜索维数,这归因于可能遇到的故障的不同组合。在一个实施例中,由于不同类型故障经常改变一些特定网络性能度量的现时,因此为了有效搜索而优化分析模块122(N)。例如,主机的分组丢弃通常影响链路损失率,但是不影响其它网络性能度量。因此,网络性能度量可以用来,通过注释由度量指示的观测与估算网络性能之间的差异,来诊断网络性能。
在一个实施例中,不需要提供用于故障诊断目的地预测模块。此外,只需要仿真事后网络发生了什么事情。例如,代理模块可以周期地向管理器模块报告关于链路条件和话务图的信息。该信息被处理,然后馈入仿真器,以建立可以用来确定故障的可能的根原因。
初始诊断
图5是描述一个典型实施例中的过程500的流程图,其中最初诊断彼此具有相同类型的故障。为了便于描述,以下讨论包含三种故障的典型类型:(1)主机中的分组丢弃;(2)外部噪声;(3)MAC行为不端。然而,应当明白,也可以处理各种各样的其它故障和故障组合。以下讨论包括利用所述系统和装置可以实现的过程。每个过程的诸多方面可以在硬件、固件或者软件或者其组合中实现。过程被显示为一组方框,该方框指定由一个或多个装置执行的操作,但是不一定限制到由相应方框执行操作所显示的顺序。
如上所述,当跟踪驱动仿真以真实网络的当前网络设置维持时,该仿真可以被用来建立网络的估算网络性能。根据估算网络性能与观测网络性能之差,可以使用诊断树确定故障类型,其一个实施例被显示在图6中。
由于各种因素,估算网络性能很可能与被观测的网络性能相同,即便没有故障。因此,可以使用阈值确定网络性能的差异。例如,可以根据已估算与被观测(即,真实的)网络性能之差是否超过相应阈值来确定差异。可以以各种方式计算阈值,如通过观测仿真的和实际网络性能之间的历史差异来计算。
故障分类方案(图6所示的一个实例)被配置成通过,注释不同故障展示不同相应行为,确定造成差异的故障类型。尽管每个故障展示的行为也许仍然重叠(例如,噪声源和主机中的分组丢弃增加损失率,降低争用窗口增加话务量,以及因此增加干扰噪声等等),但是通过检查不同的相应行为,可以首先分类故障。例如,外部噪声源增加邻居节点经历的噪声电平,但是不增加任何节点的发送速率。因此,可以从MAC不端行为何主机的分组丢失区别外部噪声源。
再次参见图5,以下讨论具有突出文字的置于括号内的说明,该突出文字描述典型伪码(被包含在有关附图的讨论中)中利用的可替代符号。在方框502上,分析模块从多个故障中选择一个或多个故障,比如从图2的故障目录218中选择一个或多个故障。在过程500的第一重复(迭代)上,没有选择到在正常操作条件下驱动网络的预期性能的多个故障的任何一个,即没有故障。在另一个实施例中,图5的过程500被用来执行初始诊断并且不重复,即它是“一次完成”过程。在这样的实施例中,方框502可以从过程500中移除,并且作为空集{}提供故障集。
在方框504上,故障集(FS)和网络设置(NS)作为输入被提供给网络仿真。可以供应各种网络设置,比如信号强度、话务统计、路由表等等。
在方框506上,通过用所提供的输入执行网络仿真,来预测预期性能(SimPerf)。在判决方框506,确定预期性能(SimPerf)与真实性能(RealPerf)之差(Diff)是否大于阈值。如果该差异大于阈值(方框506),则确定故障类型(FT)(方框510)。故障类型确定的进一步讨论可以在参照图6的说明中找到。
在确定故障类型之后,通过找到具有超过特定故障类型的阈值的观测与预期网络性能之差(方框514)的一组节点和链路,查找故障(方框512)。故障类型确定使用什么网络性能度量来量化性能差异。例如,通过找到具有预期与观测损失率之间的明显差异,可以辨识分组丢弃。
在方框516上,确定故障的量级。一个功能(表示为“g()”)例如可以用来把故障的影响映射到对应的量级。例如,在终端主机丢弃情况下,g()功能是一个身份功能,因为链路损失率的差异可以被直接映射到链路上分组丢弃率(故障量级)的变化。在外部噪声故障情况下,g()功能是噪声信号的传播功能。可以为每个链路或节点重复方框510-516。然后,把具有对应量级的故障添加到故障集上(方框516)。
下文描述了为实施类似于图5的过程500的过程执行的典型伪码,该过程被显示为:
让NS代表网络设置(即,信号强度,话务统计,路由表)
让RealPerf代表真实网络性能
FaultSet={}
通过用输入(NS;FaultSet)运行仿真,预测SimPerf
if|Diff(SimPerf,RealPerf)|>阈值
使用用于每个链路或者节点i的决策树,确定故障类型
if(|Diffft(SimPerf(i),RealPerf(i))|>阈值)
添加具有量(i)=g(Diffft(SimPerf(i),RealPerf(i)))的故
障(ft,i)
伪码描述了可以用来检测故障是否已经发生的诊断算法。以下过程是可以用来确定已检测故障类型的算法的一个实例。
图6是描述一个典型实施例中的过程600的流程图,其中决策树被用来确定故障类型。图6中所示的过程600可以或不可以对应于图5的方框510。在判决方框602,确定分组发送的仿真量(SimSent)加分组发送的真实量(RealSent)的绝对值是否大于阈值,表示为ThreshSentDiff。如果是,则发送指示争用窗口(CW)被设置得太低的故障(方框604)。
如果未超过方框602的阈值,则在判决方框606上,确定是否存在真实网络与的真实噪声(RealNoise)与仿真网络的预期噪声(SimNoise)之间的差异(即,已经超过阈值噪声差异ThreshNoiseDiff)。如果是,则确定噪声故障(方框608)。
如果未超过噪声阈值(方框606),则在判决框610上,确定仿真分组损失(SimLoss),即预期分组损失,是否因为大于阈值损失差异(ThreshLossDiff)而不同于真实分组损失(RealLoss)。如果是,则已经经历分组丢弃故障(方框612)。否则,节点则正常操作(方框614)。应当明白,还可以以类似方式确定各种各样的其它故障类型。
图7是描述一个典型实施例中过程700的流程图,其中使用迭代诊断算法诊断彼此具有不同类型的故障。通常,在网络中可以经历多种类型的对接故障。即使故障是相同类型的故障,也仍然可以经历交互作用,因此不足以一次完成诊断算法。因此,图7所示的迭代诊断算法可以被实施,以找到根原因。算法包括两阶段:(i)类似于图5的过程500的初始诊断级,以及(ii)迭代细化。
在初始诊断期间,一次完成诊断算法适用于导出初始故障集。在第二阶段期间,通过(i)调整已经插入到故障集的故障的量级,(ii)如果需要把新的故障添加到故障集上,来迭代地细化故障集。可以重复进行过程700,直至故障集的改变可以忽略,比如当故障类型和位置不改变时,故障量级改变到最小量,等等。
迭代方案还可以用来搜索故障的量级。在一个高层上,该方案类似于参照图5所述的基于链路的仿真,其中目标与当前值之差被用作逐步向目标移动的反馈。
在方框702上,例如,在现有的用于每个迭代的故障下,估算预期网络性能。例如,可以经过使用从真实网络获得的网络设置的网络仿真来估算预期网络性能。经由每个节点上代理模块的运行,提供网络设置。每个节点提供的网络设置可以描述节点的本地网络性能以及邻居节点的网络性能。
在方框704上,计算估算网络性能(在现有故障集之下)与真实性能之差。例如,可以通过管理器节点运行管理器模块,计算该差异。当管理器模块运行时,该模块将从仿真网络获得的估算(即,预期的)网络性能与真实(即,观测的)网络性能进行比较,所述真实网络性能由从多个代理获得的附加网络设置指示。
图7的过程700首先采用类似于图5所示的过程500的方式进行初始故障诊断。例如,在判决方框706上,确定比较的差异是否大于相应的阈值。如果否,则报告故障集(方框708)。在该情况下,由于计算的差值不大于阈值,因此这向分析模块指示网络正在正常运行。然而,如果所计算的差异大于相应的阈值(方框706),则确定故障类型(方框710)。可以采用各种方式确定故障类型,图6描述了其中的一个实例。
在方框712,差异被变换成故障量级中的变化,并且根据所比较的变化调整故障量级(方框714)。例如,参照图5所述的功能g()可以被用来根据预期与真实网络性能之差,计算每个故障地故障量级。这样,可以逐一比较故障,以确定故障具有对对应于所观测的差异的网络性能的影响。在一个实施例中,最大故障量级首先被用来解释差异,从而标识造成差异的特定故障。在另一个实施例中,比较故障量级,以查找导致逼近所计算差异的的一个差异的故障。例如,多个故障之每个可以有预期与真实网络性能之间的相应差异。通过将相应差异与网络性能中计算差异相匹配,可以选择一个或多个故障。在方框716上,删除具有低于相应阈值得量级的故障。
在判决方框718上,确定使用当前故障集的网络的预期性能是否正在收敛于真实网络性能。例如,分析模块可以存储描述故障集的一个或多个在前迭代的试探数据以及网络仿真中的合成性能值。目标值(即,真实网络性能值)与当前值(即,仿真网络性能值)之差被分子模块用作逐步“运行”网络仿真以逼近真实网络的反馈。
如果预期性能未收敛真实网络性能(方框718),则把新的故障候选者添加到故障集上。除了搜索故障的正确量级外,例如可以通过选择可以最佳解释预期与真实网络性能之差的新故障候选者,来迭代地细化故障集中的从属关系(方框720)。这些新故障被添加到故障集上(方框722)。随后将包括故障候选者的故障集用作对网络仿真的输入,以在现有故障集之下估算预期网络性能(方框702)。在一个实施中,在可以解释最大差异的过程700的每个迭代期间,添加故障,由此控制错误坑定。随后可以重复过程700,直至仿真网络的预期性能逼近真实网络的真实性能。这样,可以经由故障的内含物运行仿真网络,使它提供产生真实网络中已观测的网络性能的故障的精确描述。
下面说明可以运行以提供图7的过程700的典型伪码。
1)让NS代表网络设置
(即,信号强度,话务统计和路由表)
让RealPerf代表真实网络性能
2)FaultSet={}
3)通过用输入(NS;FaultSet)运行仿真,预测SimPerf
4)if|Diff(SimPerf,RealPerf)|>阈值
转到(5)
else
转到(7)
5)初始诊断:通过应用图5的算法,初始化FaultSet
6)while(未收敛)
a)调整故障量
对FaultSet中的每一故障类型ft(以图6中决策树的顺序)
对(FaultSet,ft)中的每个故障i
量(i)-=g(Diffft(SimPerf(i),RealPerf(i)))
if(|量(i)|<阈值)
删除故障(ft,i)
b)需要时,添加新的候选故障
对每个故障类型ft(图6的决策树的顺序)
i)发现故障i,使得它不位于FaultSet中并且具有最大
|Diffft(SimPerf(i));RealPerf(i))|
ii)if|Diffft(SimPerf(i),RealPerf(i))|>阈值
把(ft,i)添加到具有量(i)=g(Diffft(SimPerf
(i))的FaultSet
c)仿真
7)报告FaultSet
因而,上述伪码描述了被配置成诊断多类型的诊断故障的典型诊断算法。
消除跟踪数据中的差错
在在前部分中,描述了故障诊断,其中根总数据被用来驱动联机仿真。实际上,由代理模块收集的原始跟踪数据在相应节点运行时,该原始跟踪数据可以包含上述的各种原因的错误,比如由于硬件、软件和/或网络差错造成的错误。因此,可以运行图1的清零模块120(N),清零从多个代理接收的“原始”跟踪数据,以向用于故障诊断地仿真器118(N)提供作为输入的已清零跟踪数据。
图8是一个实施例中的网络800的示意图,其中图1的多个节点102(1)-102(N)包括可运行执行邻居监测的代理模块。在网络中的每个节点上运行的代理模块执行邻居监测,这是一种多个节点102(1)-102(N)报告不仅用于它自己的输入/输出链路,而且还用于通信范围之内的其它链路的性能和话务统计的技术。乐意以各种方式执行邻居监测。例如,第一节点的代理模块可以检查网络中的第二节点,以从第二节点获得网络性能。在另一实例中,第一节点从第二节点接收通信如广播,包括网络性能数据。在另一个实例中,第一节点监测由经由网络通信的第二节点发送的数据,以监测网络性能。第一节点例如可以运行于“混杂”模式,该模式允许节点的网络连接装置全面截听和读出到达该特定节点的每个数据分组。
由于邻居监测,来自不同源(即,节点)的多个报告很可能被提交给每条链路。节点102(3)例如可以从节点102(2)获得描述节点102(2)的网络性能以及节点102(1)、102(n)的网络性能的报告802(2)。用于图8中报告的参考标号的括号被选择来显示具有其相应节点的报告的通信,例如节点102(2)与报告802(2)。
节点102(3)包括来自报告802(3)中的报告802(2)(在图8中被显示在阴影中)的网络性能数据,报告802(3)是为了向管理器节点102(N)通信而形成的。报告802(3)还可以包括节点102(3)通过监测节点102(2)、102(1)获得的网络性能。在一个实施例中,报告802(3)通过代理模块的运行来优化,以删除冗余信息。例如,代理模块102(3)可以删除相应报告802(2)、802(3)中相一致的并被节点102(2)、102(3)重复的信息。同样,节点102(n)可以运行收集模块114(n),以从节点102(2)、102(3)获得网络性能。网络性能数据被配置成报告802(n),用于向管理器节点1102(N)通信。
冗余报告可以被管理器节点102(N)用来检测一个或多个网络性能的不一致。例如,管理器节点102(N)通过运行清零模块120(N)对报告802(2)、803(3)进行相互比较,以发现这里所述的网络性能的不一致。可以以各种方式发现不一致,下图描述了其中的一个实例。
图9是描述一个典型实施例中的过程900的流程图,其中比较描述邻居节点的诸多报告,以查找网络中行为不端的节点。在该实施例中,过程900把行为不端节点标识为可以解释报告差异的最小节点集。
在参照图9所述的过程900中,第二节点i把多个分组发送和为直接链路而接收的多个MAC级确认报告为(senti(1),acki(1))。接收节点j把链路上接收的多个分组报告为recvj(1)。此外,发送或接收节点的直接邻居k还把脸路上发送或接收的分组数量以及MAC级确认报告为(sentk(1),recvk(1),ackk(1))。报告中的不一致被定义为以下情况之一。
在判决方框902上,确定目的地报告的链路接收的分组数量是否明显大于(由阈值描述)它的源报告的同一链路上发送的分组数量。也就是,对于从节点i到节点j的链路1,并且给定阈值t,进行以下确定:
recvj(1)-senti(1)>t
阈值t被利用,因为通常不同步相应节点的报告通信。如果所接收的报告的数量明显大于发送的分组的数量,则记录报告的不一致,这将在方框912中进行更详细说明。如果相应节点接收和发送的分组的数量对应,则过程900前进到方框904。
在判决方框904上,确定它的源报告的链路上发送的多个MAC级确认是否对应由它的目的地报告的该链路上接收的多个分组。换言之,对于从节点i到节点j的链路,并且给定属于t,进行以下确定:
|acki(1)-recvj(1)|>t
因此,如果确认的数量不对应(即,逼近)接收的分组的数量(方框904),则记录报告中的不一致。如果所接收的确认和报告的数量对应(方框904),则过程900前进到方框906。
在判决方框906,确定由它的目的地的邻居报告的链路上接收的分组数量是否明显大于由它的源报告的相同链路上发送的分组数量。也就是,对于从节点i到节点j的链路1,其中节点j的邻居是节点k,并且给定阈值t,则进行以下确定
recvk(1)-senti(1)>t
因此,如果所接收的分组数量对应(即,逼近)发送的分组数量(方框906),则记录报告中的不一致。否则,过程900前进到方框908。
在判决方框908,确定源的邻居报告的链路上发送的分组数量是否明显大于源报告的相同链路上发送的分组数量。换言之,对于从节点i到节点j的链路1,i的邻居k以及给定阈值t,确定下式:
sentk(1)-senti(1)>t
如上式所示,如果发送的分组数量逼近分别由源和邻居节点指示的发送的分组数量(方框908),则记录报告中的不一致。否则,报告是一致的(方框910)。
在判决方框912,确定节点的不一致对是否已经被包含在不一致图形中。如果否,则节点被添加到不一致图形上(方框914)。如果节点的不一致对已经被在不一致图形中(方框912)或者已经被添加到不一致图形上(方框914),则在不一致图形中的节点之间增加一个边缘(方框916)。
在每个不一致对已经被标识之后,在方框918在可以解释已观测的不一致的不一致图形中找到最小节点集(即,最小数量)。例如,可以假定网络中的大多数节点发送可靠的报告。因此,可以解释已观测的不一行的最小节点集被发现。这可以例如通过发现覆盖不一致图形的最小最小顶点集来实现,其中被标识的顶点代表行为不端的节点。
通过利用最小顶点覆盖问题(cover problem)(被认为是NP难题),可以发现最小顶点集。应用贪恋算法,从当前不一致图形中迭代地挑选并移除具有最多边缘和事变(incident)边缘的节点,直至不剩余边缘。
报告的历史可以用来进一步改善不一致监测的精度。例如,在方框920,可以增加新报告,以更新不一致图形,但不删除在前信息。然后使用过程900的方框912-918,处理新报告中的节点的不一致对。例如,方框918的相同贪恋算法可以被再应用于标识行为不端节点。
假设分析
在上述部分中,可以有选择地把故障注入到网络仿真中,以标识故障(如果有的话)可以造成预期与观测网络性能之差。网络仿真还可以用来执行假设分析,以改善网络运行。假设分析允许管理器模块在运行时,确定不同的可能网络以及节点配置对网络性能的影响。假设分析的结果是允许管理器模块有效操作网络的动作集,比如通过使网络中的已选节点上的代理模块配置相应的节点来有效操作网络。
例如,通过使用上述的联机跟踪驱动仿真,可以执行假设分析。在可以收集以驱动仿真器(例如,图2的仿真器118(N))的以下讨论中,标识典型跟踪。例如,仿真器可以用来提供真实网络的网络仿真。网络仿真可以被配置成测试不同节点和网络配置,并确定配置产生用于现有话务条件的最佳整体网络性能。管理器模块然后可以根据配置确定网络中的特定节点实施的动作集。
利用假设分析的传统技术用来简化网络模型,和通过分析导出预期性能。然而,联机跟踪仿真具有优于推理分析的优点,其中仿真器的使用提供对网络行为的改进洞察力,它高于试探或者推理技术本身可能的洞察力。例如,一个运行的无线网络是一个具有许多复杂部分的复合系统,这些部分包括话务流、连网协议、信号处理协议、硬件、RF传播以及这些部分之每个之间的最重要交互作用。此外,网络行为可以被彼此范围内的节点之间的交互作用以及附近的噪声源支配。试探技术和推理技术都不能捕获这种网络的行为何不同成份之间的交互作用。
图10是描述典型实施例中的过程1000的流程图,其中根据联机跟踪仿真执行假设分析。在高层上,过程1000首先利用网络仿真再现真实网络。然后通过应用网络仿真中这些变化,确定应用于真实网络时的对网络修改的结果,以量化网络性能含义。
在方框1002,通过运行管理器模块选择多个修改的一个或多个。可以采用各种方式选择修改。例如,修改可以被管理器模块考虑为造成网络性能增加而不是降低的故障。这种情况中的修改可以被存储在图2的故障目录218中,并且根据类型安排该修改。在方框1004,分析模块提供真实网络的网络设置,和包括对作为输入的网络仿真的选择修改的修改集。
在方框1006,根据输入预测网络的预期性能。例如,仿真器可以根据真实网络的网络设置和修改集建立网络仿真。上述的网络仿真随后被用来确定对真实网络修改的结果。
分析模块在运行时,导出由网络的代理模块将要执行的一个或多个动作,以实施修改(方框1008)。分析模块例如可以包括被映射到对应修改的动作的目录。分析模块然后可以根据修改获得对应动作。
在方框1010分析模块构成描述对相应代理模块通信的一个或多个动作的通信。相应的代理模块随后可以使网络的相应代理实施所述的代理。因此,管理器和代理模块可以被用来根据联机跟踪驱动仿真,采用类似于故障监测的方式执行假设分析。
在另一示例性实现中,使用仿真来确定将对网络进行的修改,以改善网络性能,例如通过使用迭代方案来执行假设分析。该方案类似于参照图5和图7所述的仿真。由此,当需要多个修改动作时,可使用迭代精简。
图11是描述一个实施例中的过程1100的流程图,其中根据破坏流的诊断导出对网络的修改。在方框1102,管理器模块(例如,图1和图2的管理器模块116(N))被运行,以确定网络中一个或多个流正在经历低于它们的相应预期目标吞吐量值得吞吐量值。在方框1104,管理器模块确定网络中的任何一个流是是否“破坏流”。破坏流是一种类型的故障,它的存在使网络吞吐量严重恶化,并且该故障不同于破坏流自身健康,但是又不与竞争流发生交互作用的在前故障。
在方框1106,例如收集描述目标端对端需求以及正在使用的路由协议的网络设置。应当注意,这些网络设置可以不同于诊断故障所用的跟踪,因为过程1100检查网络(例如,链路负荷和路由)如何调整网络配置中的变化。
在方框1108,根据每次一个从网络仿真的每个流的移除,检查对总计网络吞吐量的影响。在一个实施例中,破坏流被标识为一个流,该流的移除产生对网络性能的最明显得整体改善。例如,图12示出了包括多个流1202-1216的网络1200。流8 1216(如图12中的F8所示)交叉所示网络1200中的其它流1202-1214。因此,与其它流1202-1214的移除相反,流8 1208的移除导致吞吐量的最大增加。换言之,流8 1216的存在造成对网络1200的性能的最大破坏量。这样,可以确定导致网络性能的最大增加的对网络1200的修改(例如,流8 1216对系统的其它流的影响的消除或者减少)。
在方框1110,根据可以用来改善网络性能的修改导出一个或多个动作。典型动作可以包括流8 1216速率限制、路由选择以及拓扑控制。网络仿真能够使管理器模块进一步精确估算这些动作的益处。例如,下表显示了典型校正动作的预期吞吐量。
动作 |
总吞吐量(Mbps) |
无动作 |
1.064 |
流8速率减半 |
1.148 |
经由格栅边界潞由流8 |
1.217 |
把传输功率增加到20dBM |
0.990 |
把传输功率增加到25dBM |
1.661 |
如表所示,在研究中,传输功率增加到25dBm在四格典型动作(和一个静止动作)之中产生最高吞吐量,因为它减少了达到目的地所需的中继段的数量。根据这些结果。管理器模块构成通信,使相应节点上的一个或多个代理增加功率,以减轻网络性能问题。
典型构架实施
所述构架的一个实例已经在WINDOWS XP平台(WINDOWS XP是微软公司(Redmond WA)的商标)上实现。该部分描述了典型实施例的部件、涉及原理以及其特征。
该实例的典型构架包括两个分离的部件:代理模块和管理器模块。如参照图1所述,代理模块在网络的每个节点上运行,以周期地或随选地报告本地数据。管理器模块从代理模块收集相应数据并分析数据,比如通过运行参照图2所述的分析模块来分析数据。
典型构架利用简单和可扩展设计原理。例如,为监测和管理而收集和传播地数据可以被输入WINDOWS(WINDOWS是微软公司(Redmond WA)的商标)支持的性能计数器。可以按类别成组的(名称,值)对提供性能计数器。
所述的构架还可扩展。增加监测的数据包括性能计数器的新类别的建立以及写一个模块,以便随着信息变化更新计数器值。涉及传输控制协议(TCP)、用户数据报协议(UDP)、互联网协议(IP)的性能数据以及工作站远程应用编程接口(WRAPI)可以并入具有少量附加工作的构架。
这些性能计数器中的值可以是只读的或者可写的。可写计数器例如提供一种用于改变值以及影响节点行为的已授权管理器节点的方式,以便确定问题或者远程启动试验,比如通过管理器模块与运行于不同的相应节点上的代理模块的通信来确定问题或者远程启动试验。
每个管理器节点还可以装备与网络管理员交互作用的图形用户接口(GUI)1300(图13示出了其中的一个实例)。GUI允许管理员观察网络以及经由管理器模块发出管理请求。GUI 1300显示一个用于典型网络试验台的不拘。该实例中的GUI 1300用被显示在23个节点的试验台上的代理描述了一个管理器窗口。管理器模块可以根据直接获得或推断的节点的相应坐标显示拓扑。GUI 1300还允许管理员把网络的特定部分放大以得到更详细信息,并点击链接以表格式显示特定链接的网络性能数据。
结束语
尽管已经采用专用于结构特征和/或方法动作的语言描述了本发明,但是应当明白所附权利要求定义的本发明不一定局限于所述的特定特征或动作。特定特征和动作是作为实施本发明的典型形式公开的。