摘要:网络性能的实时监测已经成为一项必要的工作,网络性能测试终端正是这样一种设备。用嵌入式系统实现网络测试终端是一个理想的选择。文中介绍了一种以若干个测试终端组成一个测试网络来监控网络性能的方法,具体分析了嵌入式网络性能测试终端的软硬件设计,利用GPS解决多个测试终端时间同步的问题。给出了修改操作系统内核以获取高精度时间和文件系统设计及配置的方法。

  随着计算机网络的普遍使用,人们越来越关注网络服务质量,某些应用程序和协议对网络服务质量也有一定的要求。网络的带宽、时延是表征网络服务质量的一个重要参数,通过对它们的测量和监督可以了解网络在一段时间内的服务质量。网络性能测试终端通过按一定的方式发送、接收各种网络测试包,计算各个测试点之间的丢包率、双向和单向的时延来监测网络服务质量。

  网络时延的测量方式

  本系统测量网络时延有两种方式:单向式和双向式。双向式测量的原理类似于网络应用程序ping。在这种方式下,网络时延可近似视为时间之差的1/2。这种方法的优点是不用同步发送方和接收方的时间,缺点是测试包在两个测试终端间的传递可能经过不同的路线。单向测量的过程与双向测量方式相似,但接收方不再将测试包返回,而是通过比较本机的接收时间和测试包里的时间戳,得到网络时延。在这种测试过程中,对多个测试终端的时间同步要求非常高,否则计算结果毫无意义。

  对于一个具有一定规模的网络,可以用多个测试终端来监视网络的运行情况。在这种情况下,若干个测试终端组成一个测试网络,根据测试人员的要求,每个测试终端有相应的测试配置,例如测试包的类型、长短,发送过程的随机过程类型及参数等。整个测试网络由少量的测试控制服务器控制测试过程。测试终端和服务器的通信采用C/S结构,测试终端启动时从服务器得到测试配置,开始测试过程后记录测试结果并将结果发回测试服务器,服务器接收数据并存入数据库。本测试终端采用以三星公司的微处理器S3C4510B为核心的一个嵌入式系统来实现上述功能。

  硬件设计

  测试终端的硬件应具备以下功能:①有网络接口,可以发送多种网络测试包;②有高精度时钟源,并且多个时钟源间可以良好同步,用于单向测试;③有一定的用户接口,可以让用户设定基本的测试参数;④因为要进行多点长期运行,所以应该功耗低,便于携带安装。

  微处理器单元

  S3C4510B是三星公司的一款32/16位的基于ARM7DTMI内核的微处理器。它功耗低,速度高(大约45Mips),片内资源丰富,自带有以太接口、两个32位的定时器、I2C接口、HDLC接口、串行通接口等。S3C4510B有6个DRAM片选组,4个ROM片选组,并且有SDRAM控制器,可以访问64MB的地址空间。由于地址空间大,接口丰富,总线宽度适宜,一些嵌入式操作系统如uClinux,ucOS-II可以顺利地移植到S3C4510B平台上。S3C4510B还自带有一个10~100MB的以太控制器,可以工作在半双工或全双工模式下,支持媒体独立接口(MII)和带缓冲的DMA接口,配上相应的物理层芯片可以轻易实现网络通讯。

  存储器部分

  通常,计算机系统都带有ROM和RAM两种存储器,ROM存储固定的代码,而RAM则作为堆栈来保存运行时的临时性数据。本测试终端的ROM存储器采用了一片AMD公司的AM29LV160。这是一种容量为2MB,16位宽的FLASH存储器(闪存)。FLASH存储器除了具有非易失的特点外,它的另一个很大的优点是可以在线被重新擦写。利用这个特点测试终端可以在测试中实时修改终端的配置和测试参数。不过,虽然FLASH存储器虽然可以被重新擦写,但读写速度都较慢,只适宜保存需固化的数据,如嵌入式操作系统的内核等等。

  S3C4510B芯片里自带有8kB的静态RAM,但对于本应用来说,8kB的SRAM显然不能满足要求。SDRAM有大容量、高速度的优点,S3C4510B片内有SDRAM的接口,可以自动刷新SDRAM。本系统采用两片8MB16位宽的HY57V641620构成一个32位宽16MB的SDRAM存储器系统。启动时,启动程序(BOOTLOADER)将ROM中的用户程序拷贝到RAM中去,并终跳转到那里而完全脱离ROM运行,由于SDRAM读写速度较快。这样做还可以得到较好的运行效率。