EPON测试仪表中网络测速软件的设计与实现
2013-12-03涂继辉长江大学电子信息学院湖北荆州434023
涂继辉 (长江大学电子信息学院,湖北 荆州434023)
汤元斌 (四川文理学院现代教育技术中心,四川 达州635000)
邹学玉 (长江大学电子信息学院,湖北 荆州434023)
以太网无源光网络 (Passive Optical Network,EPON)是将以太网技术与无源光网络 (Passive Optical Network,PON)技术结合,其目标是用最简单的方式实现一点到多点拓扑结构的千兆以太网光纤接入网络。随着EPON技术的普及和推广,EPON已经大规模应用于电信运营城市和农村的宽带接入,因此EPON网络终端设备开通和维护的综合测试仪表对于EPON网络的维护具有重要的实用价值。
目前能够进行网络的测速软件较多,归纳起来分为2类:一类是网络命令附带具有网络测速功能,如ping命令等,此类软件虽具有测速功能,但是测速效果不佳,并且还不具备良好的操作界面、实时显示和统计结果的功能;另一类是基于Windows下的网络测速软件,该类软件虽然具有良好的操作界面和基本的速度实时显示统计功能,但一般很难脱离Windows的环境集成在专门的网络维护仪表上。为此,笔者提出了一种利用FTP协议测试网络速度的软件。
1 网络测速原理
网速[1]是衡量计算机网络性能很重要的指标之一,是指网络通信线路所能传输数据的能力,也就是熟称的带宽。图1为网络中t时间传输数据包P的曲线图,瞬时网络速度表现为曲线上某时间点切线的斜率值,可以用公式表示,网络在某一时段的平均速率可以用公式表示。笔者采取的是采用近似的方法计算瞬时速率,即计算实际速率值在极短时间内的上传或者下载数据包变化量,用数据包的变化量除以所经历的时间,其结果就为网络在该时刻的实时速率;用一段时间里数据包上传或者下载的总量除以所需要的时间就是网络的平均速率。
图1 网络数据包和传输时间关系图
文件传输协议 (File Transfer Protocol,FTP)是TCP/IP协议组中的协议之一,工作在网络的应用层,是常用的网络文件传输协议,用户可以通过该协议把文件上传到远程计算机上,或者把文件从远程计算机上下载到本地计算机。测速软件利用FTP协议传输文件的过程中,通过获取在某个较小的时间传输文件变化量,计算出网络的实时速率;通过获取整个文件传输所需要的总时间,计算出网络的平均速率。
2 系统的总体设计
该软件所在的硬件平台配置是Marvell 88f6560芯片/内存256M/Flash128M/天马4.3寸液晶屏。
笔者设计的软件是嵌入在EPON测试仪表中,通过连接要测试链路中的FTP服务器,然后进行文件的上传和下载来得到测试链路的网络速度。整个软件总体结构如图2所示,主要由FTP连接模块、网速计算模块、数据实时显示模块和统计模块4个部分组成。整个软件通过消息事件进行控制和管理,在传输文件过程中,利用定时器每隔一定的时间向前台显示模块通报实时传输文件的大小和速率,前台通过曲线和进度条实时显示。笔者设计的软件是基于嵌入式Linux平台,开发工具为Qt4.7[2]。
图2 系统总体结构图
3 具体实现
3.1 FTP连接模块
FTP在进行文件传输之前首先要与FTP服务端之间建立连接,建立一条文件传输逻辑通道。FTP连接[5]建立又分为控制连接建立与数据连接建立2个阶段:第1阶段建立的连接是控制连接,控制连接用于发送FTP命令,接受FTP Server的应答。在控制连接建立之后,第2阶段将进入建立数据传输连接阶段,在数据传输连接建立之后,FTP客户端就可以与FTP服务端进行文件的传输了。FTP支持主动模式 (Active模式)和被动模式 (Passive模式)2种工作模式。
该软件的设计是利用了Qt下的QFtp类来进行FTP服务器的连接,如图3所示。首先与FTP服务器连接,然后发送登陆服务器的用户名和密码,等待服务确认,当确认成功,客户端就和服务器之间链路建立完成。
图3 FTP建立连接的流程图
3.2 网速计算模块
网速计算模块[6-7]是软件的核心模块,流程如图4所示。它主要需要检测文件传输过程中的实时网速、最大网速、最小网速和平均网速。在极短时间内得到文件上传或者下载的大小,就可以近似计算出网速。笔者利用Qt中的定时器来设置一个时间作为极短时间,当定时时间到了,就得到该段时间内上传或者下载文件的大小,利用此改变的大小除以定时器的时间,就得到该时刻的实时网速,同时用该网速与上一个时刻的最大网速和最小网速比较,来更新该时刻网络的最大网速和最小网速。该软件采用500ms作为一次速率计算的统计时间段。
3.3 实时显示模块
Qt程序主要通过事件进行驱动,该软件通过绘屏事件进行屏幕的显示。每当产生一个新的实时速率,就触发paintEvent事件函数进行实时显示网络速度。如果采用一般的实时绘图方式,即绘制一次,刷新一次屏幕的方式,会引起整个图像的闪烁。因此在用Qt绘制图像时应该采用双缓冲技术,即在内存中创建一个与屏幕绘图区域一致的对象,先将图形绘制到内存中的这个对象上,再一次性将这个对象上的图形拷贝到屏幕上,这样能大大加快绘图的速度,并且避免图像的闪烁。
3.4 统计模块
统计模块主要是当上传下载结束后,统计出链路的最高网速、最低网速和平均网速。最高网速和最低网速数据传输的过程中已经实时统计出来,平均网速根据上文的公式利用传输的数据包总数除以传输时间即可得到,通过一个对话框在数据传输结束时显示出统计的速度。
3.5 软件的移植
由于软件需要在EPON的网络测试仪上运行,因此在PC开发应用程序需要移植到EPON的网络测试仪的开发板上。移植的步骤如下[3-4]:建立目标机交叉编译器的编译环境;交叉编译Qt4.7并设置Qt4.7的环境变量;交叉编译的Qt4.7环境下编译网络测速软件;通过串口将编译成功的网络测速软件烧录在EPON测试仪的开发板上。
图4 网速计算流程图
4 测试结果与分析
4.1 测试环境
测试是在局域网中进行,网络结构如图5所示。FTP服务器IP为192.168.1.100,端口默认为21。FTP测速软件集成在EPON仪表中,启动界面如图6所示。笔者在另外一台PC上安装了FlashFXP软件,和笔者设计的FTP测速软件进行对比,起到验证速率准确性的作用。测试分为2步进行:首先进行下载测试,然后进行上传测试。
图5 测试网络结构图
4.2 测试结果
1)上传测试 选择的文件是ceshiwenjian2.rmvb, 文 件 大小为247.4Mb。图7为FTP测速软件和FlashFXP软件上传同一个文件时的实时上传速度和上传速率波形图。图8为FTP测速软件和FlashFXP上传完成后的文件信息、平均速度以及耗时。
图6 FTP测速软件的界面图
图7 上传实时速度和速率波形图
2)下载测试 ceshiwenjian.rmvb,文件大小为599Mb。图9为FTP测速软件和FlashFXP同时下载同一个文件时的实时下载速率和速率波形图;图10为FTP测速软件和FlashFXP下载完成后的文件信息以及平均速度的显示。
图8 软件上传完成后的最大、最小和平均速度以及耗时
图9 实时下载速度和速度波形图
图10 下载结果显示对比图
测试表明,该软件具有良好的操作界面和可视化的实时显示,与FlashFXP进行对比,软件对网络速率测试结果准确,性能稳定。
5 结 语
笔者设计的EPON测试仪表下的网络测速软件不仅具有方便的操作界面和良好的可视化显示,而且测速结果较为精确。该软件经过测试,表明具有稳定的性能,对于网络的维护和检测起到了重要的实际作用。目前该集成此软件的EPON测试仪已经在实际中投入使用,收到了良好的效果。
[1]谢希仁 .计算机网络 [M].第5版 .北京:电子工业出版社,2008.
[2]成洁,卢紫毅.Linux窗口程序设计——Qt4精彩实例分析 [M].北京:清华大学出版社,2008.
[3]任善全,吕强,钱培德,等 .一个基于Qt/Embedded的嵌入式Linux应用程序的实现 [J].计算机应用与软件,2006,32(2):105-107.
[4]顾怡祥,何吟,余执钧,等 .基于嵌入式Linux的综合分析仪软件设计与实现 [J].计算机应用与软件,2008,25(10):242-244,257.
[5]林耿仕,赵建华,郑国梁 .支持共享的Ftp客户端的设计 [J].计算机科学,2007,34(11):124-126,153.
[6]江浩,朱巧明,钱培德 .一种高效的FTP流量统计方法及应用 [J].计算机工程与科学,2007,29(1):30-32,69.
[7]顾煜炯,林庆乙,贺徙 .基于UDP与FTP协议的远程振动监测与故障诊断系统网络通信方法 [J].仪器仪表学报,2006,27(6):413-415,422 .