(3)从学术研究上来看:随着网络测量越来越受到研究人员的重视,这几年来也有大量的相关研究成果产生。国际上比较著名的计算机组织比如说IEEE和ACM都有专门的会议对行这方面的研究进行交流。比较著名的国际会议有ACM组织的SIGCOM会议赞助的IMC(InternetMeasurementConference),PAM(Passive& Active Measurement Workshop)等。除此之外在IPOM、NOMS以及INFOCOM等与网络管理和网络技术研究相关的会议中也有许多相关的学术论文发表,对网络测量及其相关研究做出了很多理论工作。
(4)从VoIP测量技术方面来看:国内外的研究处在一个发展的阶段,各个协议有相关的网络管平台和网管标准来对呼叫进行集中控制.集中起来进行控制的研究目前还是一个盲点.我们的工作利用网络测量技术在VoIP方面进行应用,同时根据VoIP测量本身的特点提出了一个体系结构和核心查找器件,在这方面进行了有益的尝试。
四、VOIP监测系统
1.术语
接入网:省、市、自治区的各种网络接入服务器之间构成的网络。
骨干网:各个接入网的上一级网络,相当于OSPF协议的Area0。
流量镜像:利用路由交换机的流量镜像功能,将某个设备端口的流量按照某种方式镜像产生到该设备另外一个空闲的端口上。
语音干扰:在原有话音的基础上加入一些合成的提示音(常见于剩余通话时间提示),或者加入噪声干扰,是的通话质量降低。
2.系统结构
网络监测系统是一个采用跨接或者镜像分析互连网络数据的系统。它的主要功能是从海量的数据包中快速过滤出需要的信息,然后对过滤出的数据进行分析,得出监测结果。例如某IP群用户的网络访问目的,所有互联网H.323呼叫信息,ICQ信息中包含特定字符的用户等等。网络监测系统相对于网络计费系统来说的特点是需要处理高速的数据流,过滤出的有用信息非常少。因此降低了监测成本与监测速度比的核心就是采用简单的硬件设备,来完成数据的过滤。
目前的网络监测系统很多都是利用现有的高端路由器或者防火墙来进行改造,这样的做法优点是开发周期短,但是缺点是大量的硬件配置闲置与巨大成本投入。本文介绍的网络监测系统的结构能够利用简单的器件来完成高速的过滤,能够在节省开发周期的同时减少硬件成本的投入。
下面先介绍网络监测系统在网络的架设与连接方式。网络监测设备的实际机架物理图,这个物理结构不是必须的。但这样可充分利用网络监测设备的连接特点,既能连接汇聚层或者骨干层的设备,同时也使用了接入设备。
网络监测设备的两种逻辑连接结构。这两种方式各有优缺点,第一种方式需要对网络首先进行断网或者数据流的转向(首先利用其它设备进行通信然后进行施工),同时监测设备的性能直接影响到整个网络的性能,对于监测设备这种周边设备,很少有运营商愿意接受。第二种方式是采用路由交换机的镜像功能来进行数据的取得,但是也存在问题,利于路由交换机的速率较低一般都在2.5G以下。
3.设计与实现
(1)硬件系统
硬件的结构,其中数据从光纤数据接口经过模块转化为实际的数据包,由于大多数光纤的速度为OC48(2.5G)或者OC192(10G)的接口,对于这样高速度的数据进行缓存然后分析按照目前SDRAM的速度来说是不可能实现的,同时网络VoIP数据的特点就是VoIP只占整个网络流量的很少一部分,而且在分析的过程中只需要分析协议的开始于结尾信息(经过实际分析发现只有百万分之二一下的流量)。于是我们在设备中加入了一个并行硬件过滤系统,来将整个网络流量的绝大多数过滤。
(2)并行硬件过滤系统结构
这个系统模拟人的思维过程。在我们长期对于人类思维模式的分析中我们发现有时候我们不能准确的记住某个画面或者某个人物(相比计算机来说)。但是当情景再现或者整个人出现在我们面前的时候我们就能立刻认出来。同时这种认出也是一种在很少概率情况下允许错误的。BloomFilter的出现模拟了人的思维过程,BloomFilter在可调整的允许地范围内设定匹配错误的几率,通过少量的存储来完成搜索的过滤。
但是对于电信级的应用来说,需要达到线速的处理,而且准确率需要达到99.999%的情况下使用BloomFilter已经意义不大,而且BloomFilter实现起来仍然需要大量设备与存取器件,我们设计出一种新的算法:并行硬件过滤算法,同时采用硬件实现了该算法。
(3)算法介绍
令表示一串字符表,我们将整个字符分段.下面的表1给出了一个例子,其中m=6。
下面我们将纵向上的一个串放到一个环形数字图上进行分析。令分别表示的纵向方向上存在最大空袭的最大值和最小值。以表1的第一个串为例,按照从小到大,在构成环的方式。其中可以看出01010101与11000011之间的空隙最大,因此max()=11000011,min()=01010101.由于空隙的出现有可能在两端(例如:00000000和11111111之间),我们设置一个位寄存器flag来记录是否存在这样的现象。
对于任何进行匹配的字符串,取出相应的字段K,然后按照下面的伪码来进行分析。
if(min
if(flag=0)丢弃该包
else本节匹配
else
if(flag=0)本节匹配
else丢弃该包
