您好, 访客   登录/注册

嵌入式系统的网络测试的分析

来源:用户上传      作者: 强璐璐

   [摘 要] 本文主要阐述了一款基于嵌入式Linux操作系统的网络测试仪的设计和实现方案。该测试采用Intel x86开发版,简化硬件平台的设计,配合相应的嵌入式Linux操作系统和应用软件,可以监测网络设备的状况,通过对网络数据的分析,获得网络通信信息,并且可以通过对网络故障进行分析,查找出网络故障点。
   [关键词] 网络故障 网络测试 进程间通信
  Abstract: A way to design and realize net test equipment based on embedded system is presented. The equipment adopts an Intel x86 development board to simplify the design of hardware platform. With the corresponding embedded Linux OS and applications, it can monitor net device, through analysis to network data capture net communication information, and by analyzing to network failure find out net failure position.
  Key words: net fault; net test; IPC
  
  引言
  随着网络规模不断的发展,新的设备越来越多,网络出现的主要问题也随之变化,这推动了为解决这些问题而产生的网络测试技术和测试设备的不断发展。网络测试涉及到网络7层模型的各个层次。根据不同的应用范围,网络测试工具主要分成两大类:一类是物理层(OSI的第一层)分析工具,另一类是高层协议(OSI的第2到第7层)分析工具。本篇阐述了一款网络测试仪的设计和实现方案,力争将各项测试技术进行搭配组合,以期达到理想的网络监控和故障诊断效果。
  1 网络测试仪的平台搭建
  1.1 硬件平台
  该款测试仪是便携式的,并将分布式分析仪的所有特点集成在一台仪器中。采用低功耗、高可靠、高集成的嵌入式Intel x86开发版,简化硬件平台的设计。系统所需的大部分功能模块,如100 BASE-T快速以太网卡、18-bit TFT液晶驱动等都被集成在其中,同时它也支持各种PC标准外设,大部分操作系统可以在它上面运行。选用的存储介质是CF卡。首先通过其他存储介质(如硬盘)上已装好的Linux操作系统将CF卡格式化成ext3文件系统格式,并在其上安装剪裁编译后的Linux操作系统。由于采用的是MiniGUI图形用户界面接口,编译操作系统内核时,需加入对FrameBuffer的支持。然后通过grub命令完成对CF卡的引导方式的grub写入。之后用BusyBox工具生成CF卡上所需的root文件系统。BusyBox工具为小型系统和嵌入式系统提供了一个相当完美的POSIX环境。最后还需要把所需的库文件复制到CF卡的目录上,这样一个小型的嵌入式Linux系统就可以建立起来了。
  1.2 软件平台
  该款测试仪的嵌入式操作系统内核是通过剪裁标准的Linux内核得到的。大多数Linux系统运行在普通的PC平台上,但Linux也可以作为嵌入式系统的可靠主力。一个功能完备的Linux内核要求大约1 MB内存。而Linux微内核只占用其中很小一部分内存,包括虚拟内存和所有核心的操作系统功能在内,只需占用Pentium CPU系统的100kB内存。所以,只要有500kB的内存,一个有网络栈和基本实用程序完全的Linux系统就可以在一台8位总线(SX)的Intel386微处理器上运行的很好。采用嵌入式Linux这样的开放源码的操作系统的另外一个优势是Linux开发团体会比RTOS的供应商更快地支持新的IP协议和其它协议。基于以上优点,这款网络测试仪选用嵌入式Linux操作系统,为进一步的扩展功能和完善性能打下基础。图形用户界面系统采用的是MiniGUI系统。由于在嵌入式操作系统中,其硬件环境比较苛刻,因此要求运行其中的图形界面系统尽可能的精简,而传统的图形界面系统尚不能满足嵌入式系统的需求。目前比较成熟,同时得到最多开发人员认可的有MicroWindows, Qt/Embedded以及MiniGUI等三个系统,相比较而言,MiniGUI是一个非常适合于工业控制实时系统以及嵌入式系统。它的轻型、占用资源少、高性能、可配置的特点,是MiniGUI有其独特的优势。
  2 网络测试仪功能的实现
  2.1 服务器程序与IPC机制的实现
  该测试仪采用MiniGUI-Lite版本。Lite版本是支持客户/服务器(C/S)方式的多进程系统,在运行过程中有且仅有一个服务器程序在运行,它的全局变量mgServer被设为TRUE,其余的MiniGUI应用程序为用户;mgServer变量被设为FALSE,各个应用程序分别运行于各自不同的进程空间。各个应用程序使用System V进程间通信机制进行相互通信。
  主程序运行时,首先调用ServerStartup ()启动服务器程序。之后利用System V IPC(信号灯、消息队列和共享内存)机制建立一个消息队列;启动一个线程监听客户程序的请求。在该线程内部循环检测接收消息队列中由客户程序传来的相应消息,如果存在需要的消息,则取出并作出相应处理。
  之后启动客户进程。在其进程主界面上一个图标对应一个客户应用程序,点击其中的每一个图标,将向服务器消息队列发送一个消息该消息由主程序的生成的子进程接收并处理。
  2.2 客户功能模块介绍
  系统的客户功能模块处于整个系统的最上层,每一个模块负责实现网络测试仪的某个特定功能。文中以其中的一个模块即ping模块为例说明功能模块的工作流程。在诊断IP网络故障的时候,首先应尽量弄清故障现象,即网络是否仍能发起或建立网络连接?现有连接是否被故障中断?是否有部分服务(或全部服务)的响应时间延长或吞吐量降低?如果标准的硬件测试表明站点确实连接在网络上,而且网络适配器的配置和运行状态都正常,但就是无法与其它主机进行通信,那么就可以使用ping来探查故障域的范围,用ICMP Echo Request(回显请求)和EchoReply(回显应答)包来测试IP主机的可达及当前状态。ping的工作原理是:向某些IP地址发送一个ICMP回显请求,如果指定系统得到了报文,它将传回一个ICMP回显应答给发送者。
  3 结束语
  随着后PC时代的来临,基于嵌入式系统的高性能的网络测试仪能够帮助描述网络的运行状态,捕获和解码穿过网络的数据帧,检测网络中的设备。该款网络测试仪基本实现了这些功能,可以满足小型网络的监测和诊断需要。
  参 考 文 献
  [1]Kyas O.网络故障诊断与测试[M].夏俊杰,周雪峥译.北京:人民邮电出版社,2002.
  [2]Petersen R.Linux技术大全[M].陶华敏等译.北京:机械工业出版社,2002.
  [3]Wall K.GNU/Linux编程指南[M].张 辉译.北京:清华大学出版社,2002.


转载注明来源:https://www.xzbu.com/8/view-49625.htm