七号信令网中多板卡适配器系统设计与实现.docVIP

  • 4
  • 0
  • 约1.06万字
  • 约 23页
  • 2018-08-13 发布于福建
  • 举报

七号信令网中多板卡适配器系统设计与实现.doc

七号信令网中多板卡适配器系统设计与实现

七号信令网中多板卡适配器系统的设计与实现   摘要:本文主要研究了基于SNMP简单网络协议如何在网络中实现数据的实时和无误传送。由于用于传输和接收数据的板卡众多,且类型各异,导致在收集海量数据时会产生较大的传输时延和丢包率。本文研究解决了低速板卡与高速板卡在数据处理时对资源的竞争,实现了多链路中三种不同数据帧类型的过滤。并验证了多板卡多进程同时进行数据采集时的准确性和稳定性,为七号信令网监测系统提供了一个可靠的采集数据、分析数据的中间层软件系统。   关键词:计算机软件;七号信令;数据采集;监测系统   中图分类号:TP311.1   文献标识码:A   0 引言   七号信令系统是现代通信网的关键技术之一,是电信网三大支撑网之一,是发展综合业务、智能网业务以及新业务的必备条件。它具备信令容量大、传送速度快的优点。目前七号信令网真正成为了电信网的神经网和支撑网。网络规模的扩大使得业务数量和种类逐增多,在这种环境下数据分析成为了抓住用户趋势的重要工作,而数据采集是各种数据分析的首要步骤,然而核心网的链路类型各异,用于接收数据的网卡种类多,各网卡的工作模式也不尽相同。在开发此类软件系统时,如果每生产出一个板卡就要修改大量代码,就要求开发人员同时关心已存在的各个板卡的加载存取技术,同时某一模块的错误也可能会导致整个系统无法运行。各类网卡的接口信息交互方式与数据结构各不相同,缺乏公开、统一化的通用接口标准,这使得开发和维护的难度以及压力大大增加。因此,设计一个通用的、具有较好灵活性的和扩展性的异构终端管理接口成为板卡统一管理的重要内容。   1 系统概述   1.1系统设计架构   多板卡适配系统的设计架构如图1所示。上层应用端通过统一接口访问多板卡适配器系统,获取数据流,开发过程比较简单。但是大多数板卡适配器都没有进行高速板卡和低速板卡混用的设计,在多个上层客户端访问多板卡的情况下,就需要从驱动区到Linux内核再到软件系统缓存的拷贝,这样,低速板卡由于要与高速板卡抢占资源,传输效率受到了极大的障碍,容易产生单点瓶颈,并且直传输的延时大大超过了监测系统要求的精准度。   通信网中存在的大量数据流对系统的实时性和稳定性要求比较高,因此设计数据传输时,解决高速板卡的数据传输速度瓶颈及处理延时问题是要解决的关键问题。本文采用低速卡缓存、高速卡内存映射的设计,一方面降低传输延时,另一方面了解决了低速板卡与高速板卡对系统的占用导致的丢包现象,加强了系统的准确性和可靠性。   1.2现有数据捕获方式的不足   1.2.1普通板卡环形队列缓冲方案的限制   对于现有的环形缓冲队列,当缓冲内容饱和时,如果不进行容量扩充,后续进入的数据将因为无法存入队列而被丢弃;如果临时进行扩充,如遇到长时间传输流量走低,扩充的那部分资源则被浪费,如果对这些内存进行再回收,会导致大量碎片产生。环形队列相对于普通队列虽然有防止假上溢的优点,但是它自身也存在一定的局限性。对于环形队列选取长度大小是内存管理成功与否的关键因素之一。如果队列的长度过短,则缓冲区很同意被读取的数据迅速充满;如果队列的长度过大,则造成资源的浪费。由于操作系统的内存资源宝贵,堆空间无法承载过多的待处理数据,也会造成有很多零碎的空余存储空间,而大容量需求的任务得不到资源。因此已有的环形缓冲队列已经不能满足链路速率突发状况的需求,需要一个可以动态扩容的缓冲队列承担起数据传输的任务。   1.2.2高速板卡数据拷贝过程过多   多板卡适配器系统从网卡驱动获取数据,网卡的设备驱动都是运行在Linux系统的服务器中,在Linux下的驱动程序中都有一个函数init module(),此函数在驱动程序装载时执行,主要负责完成硬件资源的查找、注册中断、注册设备等等。设备注册可以将设备和对设备的操作关联起来,这个函数集中的各个成员是上层应用程序对硬件的进行的各种操作的实现,其具体内容如下:   驱动程序的主要任务就是实现file operation这个结构体中的各个成员函数。这种常规的处理过程给在数据传输上消耗了很多时间。在发包源设备产生巨大的数据量时,数据要从驱动层缓存向应用层拷贝,再进入应用层缓存,最后向存储设备拷贝,系统的吞吐量受到了严重的限制。对于高速板卡的数据采集,如果要保证数据的实时性接收,以现有的数据传输模型将数据一层层拷贝向上传输,很难达到需求的性能。   1.2.3高速板卡和低速板卡共同抢夺资源   当高速板卡和低速板卡一起参与数据传输时,由于读包机制是在轮询每一个板卡队列的同时,比较时间戳最小的包,将其放入Am的缓存,假设在某一个时间高速板卡以最大速率发包,会导致以下原因:   系统每次轮询时都会取高速板卡驱动队列的数据包,因为其大量数据包都比其它板卡队列

文档评论(0)

1亿VIP精品文档

相关文档