用于分析网络传输事件的方法和系统的制作方法

文档序号:7620838阅读:125来源:国知局
专利名称:用于分析网络传输事件的方法和系统的制作方法
技术领域
本发明一般地涉及监控网络传输。
背景技术
在很多应用(例如VoIP应用)中,设备可通过网络与其它设备交换很多传输消息。通过参考下面的具体应用,可以最好地描述对从这些传输消息中收集的大量数据进行分析的需要。
实时协议(RTP)提供端到端的网络传输功能,其适于通过组播或单播网络服务来传输实时数据(例如音频、视频或仿真数据)的应用。RTP不解决资源保留问题,也不保证实时服务的服务质量。RTP被设计为独立于底层的传输层和网络层。确定最坏情况下的RTP流所涉及的问题之一是,用于检查和分析在端点之间传送的每个RTP流的可用处理功率。例如,在网络中的任意一点处有数以千计的RTP流经过,因此不能通过现有的处理技术来分析经过该任意点的每个RTP流。
虽然上述讨论参考了RTP流,但是使用其它协议进行传输的很多数据流也会发生相同的状况。
需要这样的方法和系统,其允许对在网络中的任意一点处收集的多个数据流进行分析。

发明内容
通过下面所述的本发明的实施例,可满足上述对发明的需要并获得本发明的更多的和其它的需要和优点。
提出了对在网络中的任意一点处收集的多个数据流进行分析的方法和系统。
在本发明的方法实施例中,获取一条或多条传输消息,所述传输消息是根据预定协议通过网络传输的。将一条或多条所获取的传输消息提供给状态机。使用该状态机,获得对应于一条或多条所获取的传输消息的预期行为(在一个实施例中为预期状态)。将一条或多条所获取的传输消息中的每一条与所述预期行为进行比较,如果比较结果表明偏离预期行为,则提供通知。
还公开了实现本发明的方法的系统,以及实践该方法所使用的计算机程序产品。
为了更好地理解本发明和它的其它和更多的目的,参考了附图和详细说明,并且在所附权利要求书中指出了其范围。


图1是对本发明的方法实施例的示意性流程图描述;图2是对本发明的系统实施例的示意性方框图描述;图3是对使用本发明的系统的网络的示意性图示描述;图4是对本发明的系统的另一个实施例的示意性方框图描述;图5是对传统协议状态机的示意性方框图描述;以及图6是对另一种传统协议状态机的示意性方框图描述。
具体实施例方式
下面公开用于对在网络中任意一点处收集的多个数据流进行分析的方法和系统。
图1示出了本发明的方法实施例的流程图描述。参考图1,在本发明的方法实施例10中,获取根据预定协议而进行传输的一条或多条传输消息(也称为数据流)(步骤20,图1),并将一条或多条所获取的传输消息提供给状态机(步骤30,图1)。使用状态机,获得对一条或多条所获取的传输消息的预期行为(在一个实施例中为预期状态)(步骤40,图1)。将一条或多条所获取的传输消息中的每一条与对应的预期行为进行比较(步骤50,图1),如果比较结果表明偏离预期行为,则提供通知(步骤60,图1)。在一些实施例中,多条传输消息的获取和处理(从步骤30到步骤60)是并行的。
在本发明的系统的一个实施例中,包括获取子系统,其能够获取根据预定协议而通过网络传输的一条或多条消息,还包括用于实例化状态机的装置,所述状态机包括用于在多个数据消息上迭代的装置,用于向分析过程提供一条数据消息的装置,用于获得被提供给分析过程的数据消息的预期状态的分析处理装置,用于将所述预期状态下的行为与所述数据消息的行为进行比较的装置,以及,用于通知所述预期状态和所述数据消息之间的差异的装置。在本实施例中,本发明的系统还包括用于将一条或多条所获取的消息提供给所述状态机的装置,以及这样的输出子系统,其能够提供一条或多条所获取的消息与对应于一条或多条所获取的消息的预期状态之间的差异的通知。(这里对“实例化”的使用方式类似于“实例化”在面向对象的计算机语言中的使用方式。用于实例化的装置由以下部分组成导致状态机对于预定协议实例化的软件或专用硬件或硬件/软件。)图2所示的示意性图示描述了本发明的系统实施例100,其使用了层状表示法(类似于用于描述协议的层状表示法)。参考图2,本发明的系统实施例100通过获取硬件110(所述获取硬件可以类似于但并不局限于可在网络分析器中找到的获取硬件,所述网络分析器例如是安捷伦科技有限公司的“J6800A网络分析器”)来获取来自传输消息(数据流)105的数据。获取层和过滤层接收来自一条或多条传输消息105的数据,并以可被提供给状态机分析层130的形式来呈递数据。获取层和过滤层构成了用于将来自一条或多条传输消息105的数据提供给状态机的装置。(在一个实施例中,获取层和过滤层包括这样的软件,其指示处理器分析所接收的消息并将数据提供给状态机。在另一个实施例中,在专用硬件或专用硬件/软件中可以实现相同的功能。)使用状态机来分析数据,并将来自一条或多条传输消息105的数据和对应于所述一条或多条传输消息105的预期状态之间的差异通知表示层140。表示层140提供关于所述差异的通知,并且在一个实施例中,包括输出子系统的软件组件。
图3所示的网络200使用本发明的网络监控系统实施例。参考图3,使用了本发明的网络监控系统实施例的网络200包括网络监控系统(设备)210,其能够监控网络位置220处的网络传输消息;服务器230;位于多个其它网络位置250、270、285、295处的多个其它网络监控设备240、260、280、290。
在一个实施例中,本发明的系统基于但并不局限于例如图4所示的实现方式,在图4中,系统包括网络接口/数据获取组件320、一个或多个处理器310、一个或多个计算机可读存储器360、至少一个其它计算机可读存储器340,以及输出子系统370。所述网络接口组件320、一个或多个处理器310、一个或多个计算机可读存储器360、输出子系统370和一个或多个其它计算机可读存储器340通过互连装置325(例如但并不局限于公共“总线”)被有效地连接。
所述输出子系统可以包括但并不局限于用于存储通知的存储装置(例如任何计算机可读介质);用于显示通知或者对通知的处理结果的显示器;或者用于通过网络向中央服务器传输所述结果的装置(使用网络接口组件)。
所述一个或多个计算机可读存储器360具有包含于其中的计算机可读代码,所述计算机可读代码能够使得所述一个或多个处理器310进行如下操作为了使用预定协议通过网络进行传输而提供状态机的实例化,实例化状态机,向状态机提供一条或多条获取的传输消息,使用状态机来获得对一条或多条所获取的传输消息的预期行为,使用状态机将一条或多条所获取的传输消息与所述预期行为进行比较,如果比较结果表明偏离预期行为,则使用状态机来提供通知,并且复位状态机。
下面给出用于本发明的状态机的伪代码实施例。
StateMachine::begin(){
在获取硬件所观察到的各个数据流上迭代,而且并行地处理它们}StateMachine::processMessage(newMessage,messageProcessObject){把消息交给处理对象,并向该处理对象委派评估工作}messageProcessObject::evaluate(newMessage){将新消息与预期消息进行比较如果其为预期消息,则移至下一状态,否则通知观察到了错误}StateEvaluation::run(){在未完成状态中,将所收集的消息与所预期的进行比较停在当前状态中或者移至新状态或者触发或清零计数并使状态复位}StateMachine::incorrectStateObserved(){执行期望的通知操作}为了更清楚地理解本发明,现在参考下述实施例。再次参考图3,呼叫电话285(即源)通过网络205对接收电话250(即接收者)发起电话呼叫。在图3所示的实施例中,网络是因特网协议网络。在一个实施例中,电话呼叫的发起是通过使用SIP作为信令协议的信令消息(信令传输事件)而发生的。在网络监控设备210、240、260、280、290中的任意一个设备处观察和收集多个信令消息。在网络监控设备210、240、260、280、290中的一个设备处,通过获取硬件(110,图2)获取来自多个信令(传输)消息(数据流)(105,图2)的数据。所获得的一条或多条信令(传输)消息被提供给状态机。
状态机具有几个状态,其中通过事件来引起状态改变。依赖于当前状态,事件可以导致不同的状态。状态机在通过获取硬件获取的各个数据流(消息)上迭代,而且并行地处理这些数据流。关于所要分析的协议来初始化状态机、复位状态机并提供初始状态之后,在每个并行处理线程中向过程状态演变提供一条消息。从有限状态机获得客户端和服务器的SIP事务(客户端发送请求,服务器提供响应。参见RFC3261,“SIPSessionInitiation Protocol”,2000年6月,可在http//www.ietf.org/rfc/rfc3261.txt处获得,第122页,其通过引用而包括在这里)。可在状态评估功能中包括适当的SIP有限状态机。例如,图5示出了用于“邀请”客户端事务的传统的有限状态机。(图5所示的状态机在RFC3261,第127页描述,并且在“Testing SIP using XML Templates”中示出,后者可在http//www.testcom2003.org/Presentations/Session 1/3_Testing%20SIP.ppt处获得。注意,该传统的有限状态机是一种描述SIP的状态机。此后,协议状态机也被称为一个过程。)在过程操作完成之前的任意状态中,都要将消息与根据协议状态机(过程)演变所预期的行为进行比较。如果消息行为符合预期行为,则状态机移动到下一状态;否则状态机通知发现了错误。该过程对所获取的每条信息都是并行发生的。
可以针对多种其它协议获得状态机,所述其它协议例如但并不局限于RTP(实时传输协议)。图6示出了传统的通用化协议状态机(过程)(在渥太华大学2004冬的讲稿13,CE64183中有描述,其可在http//www.discover.uottawa.ca/~shervin/ceg4183/lectures/Lecutre13.pdf处获得。)一旦状态机已被初始化为正在使用协议过程(协议状态机)进行分析的协议,网络监控设备就能使用上述方法和系统对传输消息进行分析。
注意,虽然上面参考SIP和RTP协议描述了本发明,但是本发明并不局限于这些协议。除了无状态协议之外的其它协议都可以利用本发明的方法和系统而被类似地分析。
而且为了便于解释,图3的示例性网络200被简化了。网络200可包括更多或更少的其它元件,例如网络、通信链路、代理、防火墙或其它安全机制、因特网服务提供者(ISP)、MCU、网守(gatekeeper)、网关,以及其它元件。
一般地,上述技术可以用例如硬件、软件、固件或任意组合来实现。上述技术可以用一个或多个在可编程计算机上运行的计算机程序来实现,所述可编程计算机包括处理器、处理器可读存储介质(包括例如易失和非易失存储器和/或存储元件)、至少一个输入设备和至少一个输出设备。可将程序代码应用于使用输入设备而进入的数据,以执行所描述的功能并生成输出信息。可将输出信息应用于一个或多个输出设备。
这里描述的元件和组件可进一步划分为附件组件或组合在一起以形成用于执行相同功能的更少的组件。
下面的权利要求范围内的各计算机程序(代码)可用任何编程语言来实现,所述编程语言例如汇编语言、机器语言、高级程序性编程语言、或面向对象编程语言。所述编程语言可以是编译过或解释过的编程语言。
各计算机程序可在有形地实施于计算机可读存储设备中的计算机程序产品中实现,以用于计算机处理器的执行。本发明的方法步骤可由执行有形地实施于计算机可读介质的程序的计算机处理器来执行,从而通过操作输入和生成输出来执行本发明的功能。
计算机可读或可用介质的一般形式包括例如软盘、软碟、硬盘、磁带或任何其它磁介质、CDROM、其他光介质、穿孔卡片、纸带、具有孔图案的任何其他物理介质、RAM、PROM、EPROM、闪存、任何其他存储芯片或编码磁带、载波、或计算机可从其读取的任何其他介质。
虽然参考多个实施例描述了本发明,但是应当认识到,本发明还能够具有在所附权利要求精神和范围内的多种进一步的和其他的实施例。
权利要求
1.用于分析数据传输的方法,所述方法包括以下步骤获取至少一条传输消息,所述传输消息是根据预定协议而通过网络传输的;将至少一条所获取的传输消息提供给状态机;使用所述状态机,获得对所述至少一条所获取的传输消息的预期行为;将所述至少一条所获取的传输消息与所述预期行为进行比较;如果所述比较结果表明偏离所述预期行为,则提供通知。
2.如权利要求1所述的方法,其中所述获得预期行为的步骤包括确定预期状态的步骤;并且其中所述将所述至少一条所获取的传输消息与所述预期行为进行比较的步骤包括以下步骤将所述预期状态下的行为和所述至少一条所获取的传输消息进行比较。
3.如权利要求1所述的方法,其中所述网络包括因特网协议网络。
4.如权利要求1所述的方法,其中所述预定协议包括信令协议。
5.如权利要求4所述的方法,其中所述信令协议是会话发起协议,即SIP。
6.如权利要求1所述的方法,其中所述预定协议包括实时传输协议。
7.一种系统,包括能够获取通过网络传输的至少一条消息的获取子系统,所述至少一条消息是根据预定协议而被传输的;用于实例化状态机的装置,所述状态机包括用于在多条数据消息上迭代的装置;用于从所述多条数据消息中提供一条数据消息给分析过程的装置;用于获得所述一条数据消息的预期状态的分析处理装置;用于将所述预期状态与所述一条数据消息进行比较的装置;和用于通知所述预期状态和所述一条数据消息之间的差异的装置;用于向所述状态机提供所述至少一条所获取的消息的装置;以及输出子系统,该输出子系统能够提供关于所述至少一条所获取消息与对应于所述至少一条所获取的消息的预期状态之间的差异的通知。
8.如权利要求7所述的系统,其中所述至少一条所获取的消息包括多条所获取的消息;并且其中所述状态机还包括用于重复地向所述分析过程提供所述多条数据消息中的每一条以并行处理的装置。
9.如权利要求7所述的系统,其中所述网络包括因特网协议网络。
10.如权利要求7所述的系统,其中所述预定协议包括信令协议。
11.如权利要求10所述的系统,其中所述信令协议是会话发起协议,即SIP。
12.如权利要求7所述的系统,其中所述预定协议包括实时传输协议。
13.一种计算机程序产品,包括至少一个其中包含有计算机可读代码的计算机可用介质,所述计算机可读代码能够使得至少一个处理器为使用预定协议通过网络进行传输而实例化状态机,所述状态机包括用于向分析过程提供至少一条数据消息的装置;用于获得所述一条数据消息的预期状态的分析处理装置;用于将所述预期状态与所述至少一条数据消息进行比较的装置;以及用于通知所述预期状态与所述至少一条数据消息之间的差异的装置;初始化所述状态机;将至少一条所获取的传输消息提供给所述状态机;使用所述状态机,获得对所述至少一条所获取的传输消息的预期行为;使用所述状态机,将所述至少一条所获取的传输消息与所述预期行为进行比较;如果所述比较结果表明偏离预期行为,则使用所述状态机提供通知;并且复位所述状态机。
14.如权利要求13所述的计算机程序产品,其中所述至少一条所获取的传输消息包括多条所获取的传输消息;其中在所述状态机中,所述至少一条数据消息包括多条数据消息;并且其中所述状态机还包括用于在所述多条数据消息上迭代的装置。
15.如权利要求13所述的计算机程序程序产品,其中所述网络包括因特网协议网络。
16.如权利要求13所述的计算机程序程序产品,其中所述预定协议包括信令协议。
17.如权利要求16所述的计算机程序程序产品,其中所述信令协议是会话发起协议,即SIP。
18.如权利要求13所述的计算机程序程序产品,其中所述预定协议包括实时传输协议。
全文摘要
用于分析在网络中任意点处收集的多个数据流的方法和系统。在本发明的方法实施例中,获取一条或多条传输消息,所述传输消息是根据预定协议通过网络进行传输的。所述一条或多条所获取的传输消息被提供给状态机。
文档编号H04L29/06GK1741471SQ20051008513
公开日2006年3月1日 申请日期2005年7月20日 优先权日2004年8月25日
发明者约翰·M·蒙克 申请人:安捷伦科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1