王枭雄,任磊
(中国电子科技集团公司第二十研究所,西安 710068)
时延是指一个报文或分组从一个网络的一端传送到另一端所需的时间,由传输时延、传播时延、处理时延和排队时延组成[1]。在某些网络应用项目中,时延通常是一个很重要的考核指标[2]。针对这个指标,采取何种检测方法,对时延进行准确、可靠的测量,是一个非常关键的问题。
现有的测试手段一般采用简单的以分组到达接收主机时刻减去分组离开发送主机的时刻获得端到端时延,未考虑接收主机和发送主机时钟同步问题,导致测试结果误差比较大。有的采用非实时性的Windows操作系统作为测试平台,时间精度又无法保证。本人参与的项目需要测试某无线网络任意两个站点端到端的网络时延,由于该无线网络应用环境比较特殊,而且对网络时延指标要求比较严格,无法直接采用现有的一般测试方法。针对该需求,本文提出一种利用GPS接收机进行时钟同步,基于道系统实时进程项目的多站点组网下双向通讯时端到端无线网络通讯时延检测方法,并开发一套采用上位机、下位机工作方式的通讯检测程序。经多次测试采样,利用统计学理论给出了比较准确的时延检测结果数据,实现对网络时延的检测分析。
待测无线网络由四个站点构成,每个站点内待测无线网络设备端机和用户主机设备之间通过有线方式连接在同一个千兆以太网交换机上。站点间利用无线网络进行通讯时,主机设备按照无线网络约定的报文协议向该站点内的无线网络端机发送UDP数据报文,每组报文发送间隔不超过无线网络限定的最大值。经无线网络传输后,接收站点的无线网络端机接收远端数据,解析处理后经有线网络发送给接收主机。采取有效措施,精确测量该无线网络在双向通讯时任意两个站点端到端的网络时延。
图1 待测无线网络组成示意
端到端时延测试的前提在于保证测试两端的时钟同步[3],常用时钟同步方法利用 NTP协议或GPS同步时钟进行同步[4]。由于NTP协议采用网络报文实现时间同步,同步精度一般为毫秒级。而GPS同步时钟利用 GPS同步卫星信号,同时接收1pps信号和时间信息,能够实现高精度(纳秒级)的时间同步[5]。为保证测试网络两端主机设备时钟的精确同步,本文采用GPS同步时钟同步测试网络两端的主机设备时钟。
测试过程中,待测无线网络两端的主机设备按照无线网络约定的报文协议将测试报文从一端主机设备经无线网络发往另一端主机设备。每组测试报文数据中包含报文序号、发送时刻、校验码等信息,且直到发送时才由发送主机填入当前GPS时间作为该组报文的发送时间T0。经无线网络传输后接收主机收到报文,保存报文并记录当前的GPS时间作为该组报文的接收时间T1。接收时间T1与发送时间T0的时间差就是当前报文在网络上的总时延δ0。
由于主机设备和无线端机之间通过有线网络连接。为消除报文在有线网络上传输时的时延,本测试方法在得到报文在网络上的总时延δ之后,利用与测试δ0类似的方法,在有线网络上,测试同一站点内连接在交换机上的两个主机设备双向通信时接收时间T3与发送时间T2的时间差,作为报文在有线网络上传输的时延δ1。
总时延δ0减去有线网络上传输的时延δ1,得到无线网络端到端的时延δ:
因为无线网络通讯状况和诸多外部因素(例如气象因素、地理位置因素、建筑物等)也有一定的关系,因此为得到准确地结果数据,必须多次、不同时间、大量地采样。通过取平均值的方式,分析得出最终的测试结果。
由于测试过程中对时间要求比较严格,因此测试设备不能采用非实时操作系统,必须采用实时操作系统,例如道系统(DeltaOS)或Vxworks,并选用与实时操作系统相配的硬件[6]。同样,在开发通讯测试程序时,尽量采用执行效率高的C/C++编程语言或汇编语言。
本文提出的检测方法在实现上由 GPS时钟同步系统和通讯测试系统构成。由于市面上现有的GPS同步设备能够满足测试指标要求,因此直接购买某公司PCI时码卡,嵌入在测试设备机箱中。通讯测试系统采用上位机、下位机工作方式。其中,上位机程序负责数据预处理指令、定时指令、设备重置指令、状态查询指令等控制命令的发送和状态信息、测试结果信息的显示,运行在 windows PC机上。下位机程序负责执行上位机操控命令、向远地测试设备发送报文数据、接收远地测试设备的报文以及向上位机反馈状态信息、结果信息,并记录测试数据等工作。下位机程序采用C语言开发,运行在道系统操作系统下,是一个实时进程项目。上位机程序用户界面如图2所示。为方便结果记录与分析,测试报文在满足无线网络数据传输协议的前提下,每组报文还包含报文的序号、发送时刻、校验码等内容。
图2 上位机程序界面
作为测试工作的主要执行者,下位机程序由四个任务构成:上位机指令接收任务、处理任务、发送任务和远端测试数据接收任务。上位机指令接收任务负责接收上位机发来的操作指令,一旦接收到上位机指令后,立即通知处理任务执行相应的处理工作;处理任务完成具体的数据预处理、定时发送准备、状态反馈和结果分析工作;发送任务在等待到发送数据信号量时,从阻塞状态转入执行状态,并立即以预设的时间间隔向远端测试设备发送包含当前时戳信息的测试报文;远端测试数据接收任务监听到有测试数据到来时,记录当前时戳,并将报文保存在内存中,当本次测试完成时交由处理任务进行结果分析。
各站点的GPS天线连接正常后,测试设备开机,待GPS信号稳定后,检查测试设备计算机时间是否与GPS时间保持同步。时间同步后,测试开始。首先利用上位机程序设置测试报文相关参数,下位机执行数据预处理指令。然后设定数据发送时间,无线网络两端主机设备等待定时来临时,发送测试报文同时接收远地测试报文。发送完成后,等待一定时间后,下位机进行结果分析,并记录数据。
采用不同报文组数、不同样本类型、不同报文长度多次重复上述测试流程。
在有线网络下,测试有线网络两端测试设备双向通讯时数据接收时间与发送时间。
多站点组网时,需要借助无线网络将测试数据同时发送给网内的其它测试设备,分析数据时需要根据来源站点编号进行区分处理。
图3 1号站点接收2号站点数据延迟情况
图4 2号站点接收1号站点数据延迟情况
以本项目中1号站点和2号站点端到端网络时延检测为例,图3和图4分别是站点1和站点2在每组报文长度等于 1472字节时接收对方发送的10000组数据的时延统计情况。其中,站点1接收站点 2的平均时延为 15.9842ms,2号站点接收 1号站点的平均时延为16.2639ms。
经多次采样测量,并利用统计学理论进行分析,最终得出了该无线网络1号站点和2号站点间双向通讯端到端的网络时延结果数据。
链路方向最小时延(ms)最大时延(ms)平均时延(ms)1#到2# 10.5 26.8 16.1 2#到1# 9.6 26.2 16.0
本文从具体的项目需求入手,提出了一种软、硬件结合的端到端网络时延检测方法。采用GPS接收机完成无线网络用户终端设备的时钟同步,然后设计并实现了基于上位机、下位机方式的通讯检测系统。经多次测试采样,利用统计学理论给出了比较准确的时延检测结果数据,完成了对无线网络多站点端到端双向通讯时的网络时延检测。本文提出的端到端双向通讯网络时延检测方法,从时钟同步、操作系统选择、软件设计和结果分析方法等多各方面充分考虑了其对检测结果可能产生的影响,采用精确、实时、优良、合理的方法,提高了测试结果的准确度。通过对测试报文协议的调整,本文提出的端到端双向通讯网络时延检测方法能够比较容易地扩展至其它类似的网络时延测试项目。