CORS 系统网络延迟测试程序设计与实现
2022-06-07潘志刚
潘志刚
(辽宁省地理空间成果应用中心,辽宁 沈阳 110034)
0.引言
2020年7月31 日中国宣布北斗三号全球卫星导航系统正式开通。北斗全球卫星导航系统是我国着眼于国家安全、技术储备和经济发展等需求,自主研发建设、独立运行的全球卫星导航系统。目前,全国多个行业、多个部门、多个省市已将北斗应用纳入“十四五”规划中,北斗系统应用进入持续稳定快速发展阶段。
连续运行参考站系统(Continuous Operation Reference Station,简称CORS)汇集计算机、网络、卫星定位、数字通信等高新技术,是移动定位、动态连续的空间参考框架和地球动力学参数等服务的信息系统,是动态地、连续地、高精度地获取空间数据和地理特征的现代信息基础设施[1]。
辽宁省卫星导航定位基准服务系统(LNCORS)始建于2015年底,通过建立在辽宁省域范围内的58座卫星导航定位基准站,形成了辽宁省域高精度、高时空分辨率、高效率、高覆盖的卫星导航定位基准服务系统,目前已为全省500余家单位提供服务,涵盖交通运输、城建规划、农林牧渔等多行业领域。
2021年LNCORS迎来北斗三号升级改造项目。项目实施从硬件设备安装升级到管理系统更新都已顺利完成,目前该项目处于管理系统试运行的测试阶段。全新的CORS管理系统(以下称为北斗系统)是国内知名公司研发的具有完全自主知识产权的CORS管理平台。除支持北斗三代新频点外,平台还具有定位可靠度底层算法、符合国情的安全设置、拓展功能丰富的展示、使用便捷的友好界面等优势。
国产软件的崛起,打破了外国软件在专业领域的垄断,但是毕竟起步较晚,软件在使用中会有些许遗憾。北斗系统在与基准站数据同步中的延时指标使用“较大”等定性描述,没有直观量化的数值参考,缺少可视性。这个数据的缺失也将导致项目工作技术总结中的部分测试无法完成,故考虑利用计算机编程技术实现CORS系统网络延迟测试。
1.程序设计
1.1 需求分析
安置在基准站上的GNSS接收机,需要连续观测、接受卫星信号,并将数据传输给CORS数据中心。数据中心部署了CORS管理系统,接收数据后处理、播发差分改正数据以及接收存储各基准站卫星数据。基准站与数据中心应保持实时数据传输,数据同步是保障CORS服务体系运行的需求。所以针对基准站与数据中心数据同步的网络延迟测试,尤其是经过较长时间的多时间段的持续数据跟踪,如30天间隔1小时数据,可以客观地反映通讯的连通性、实时性以及CORS系统的稳定性。
网络延迟又称为网络响应时间,它表示数据包通过网络路径从发送方到接收方所需的时间。数据通过网络传输有延迟是正常的现象。其产生网络延迟的主要原因有很多,如网络中的路由跳数过多、网络带宽的限制以及服务器处理带宽的能力等。考虑数据中心与省内58座基准站之间使用专网连接、物理介质相对简单等因素,故可以认为网络延迟数值小于200毫秒为正常状态。
1.2 设计程序语言
网络延迟测试软件使用两种语言环境开发:批处理和C#。
(1)批处理也称为批处理脚本,是一种简化的脚本语言,应用在DOS或WINDOWS系统中。在需要实现复杂的应用时,它既可以调用操作系统本身提供的外部命令,又可以使用第三方提供的工具或者软件。具有MS-DOS操作经验的从业者非常容易上手。
(2)C#是面向对象的编程语言。程序员可以使用它快速地编写各种基于Microsoft.NET支持的应用程序,同时Microsoft.NET提供了大量的工具和服务来最大程度地提供开发便利。
1.3 功能设计与实现
网络延迟测试软件设计思路是借用CORS管理系统框架结构,利用CORS系统(数据中心)与基准站之间相同的通讯协议——TCP/IP协议,使用计算机编程技术实现系统网络延迟测试和数据汇总。架构图(如图1所示):
网络延迟测试软件具有三个功能模块:瞬时故障测试、网络延迟测试和延迟数据汇总。
1.3.1 瞬时故障测试
测试58座北斗基准站瞬时网络通讯状态,其作用是发现有故障的基准站。一些情况可以造成基准站故障,如基准站断电、网络硬件故障、GNSS接收机故障等,都可造成通讯失败,据此可以进一步调查故障所在。
利用C#语言程序开发的具体方法:加载System.Net.NetworkInfomation后,使用Ping.Send分别对58座基准站的IP地址测试并判断PingReply的状态:成功使用正常字体绿色显示基准站名;失败则使用加粗加大字体红色显示基准站名,实现功能设计。经测试基准站名代码为CHHA、LNKD和LNSB的三座基准站有故障(如图2所示):
图2 网络延迟测试程序主界面
1.3.2 网络延迟测试
基准站与数据中心数据同步的网络延迟测试,是程序开发的主要目的。设计思路是每间隔一段时间(如1小时)对58座基准站测试一组数据。由于网络测试具有偶然性,故每组测试不是1次,而是20次甚至更多,以降低单次测试的误差,得到较为真实的网络延迟数据。每组测试数据以文件形式存储,包括58座基准站的20次IP地址网络延迟测试数据的最大值、最小值和平均值。
网络延迟测试的程序开发依然可以采用C#加载System.Net.NetworkInfomation使用ping类实现[2]。我们采用的方法是:编写批处理脚本,调用WINDOWS系统自带的ping.exe程序[3]。ping.exe是一个经典工具,从研发至今已经数十年了。ping命令可以加带参数实现多个功能,其基本原理是向一个假定要响应的远程计算机发送一个数据包,然后等待响应,并且指示检测是否成功[4]。
编写批处理的每条语句都分别对一个基准站的IP地址进行一组测试,结果追加存入一个以日期和时间叠加命名的文件里。批处理语句的集合形成批处理文件即具有CORS系统网络延时测试功能。在C#中使用Timer控件作为计时器,每隔1小时执行一次批处理文件,完成一次网络延时测试。
1.3.3 延迟数据汇总
测试软件每小时产生一个数据文件,文件中包含58个IP地址的测试数据。每天24个数据文件,持续跟踪一个月的数据量已经相当庞大了。如果采用人工手动收集整理数据,数万条数据处理不考虑时间等客观因素,出错的概率也是相当大的。延迟数据汇总的功能就是在高效改变工作效率的同时,避免错误的产生,且生成表格汇总数据,完成初步判断统计。
Foreach是C#中循环语句的一种,用于遍历数据所在文件夹所有文件。File.Open读取每个数据文件,利用Substring检索关键字,找出58个IP地址以及其所对应的数值[5]。以基准站名称为纵轴、测试时间日期为横轴,在EXCEL表格内填写对应数值,并对该数值加以判断,超出正常范围的数值使用带颜色的字体突出显示。最后做出初步的数据统计,完成数据的汇总整理工作。具体程序流程图(如图3所示):
图3 数据汇总功能程序流程图
2.测试数据对比
辽宁省共有两套并行运行的CORS管理系统:北斗系统以及美国天宝公司的PIVOT(以下称为“GPS系统”)。两套系统共用基准站设施、网络介质、数据中心设施,区别仅仅在于使用各自的GNSS接收机以及不同的CORS管理系统。
GPS系统的同步器模块,具有系统延时的监测功能,可以直观地查看系统上各基准站的最近一小时延迟、最大延时、平均延迟、实时延迟等数据。两系统间相关数据具有可比性,故将数个相同时段、相同基准站的延时数据进行对比,鉴于版面限制,只展示有代表性的部分对比数据,具体(如表1所示):
表1 GPS系统与北斗系统一小时网络延迟平均值对比表 单位:毫秒
通过对测试结果的分析得到以下几个结果:(1)北斗系统中各基准站延迟数值都在100毫秒以内,而GPS系统中各基准站延迟数据有一些数值比较大,但也在200毫秒以内。(2)同时段GPS系统延迟高于北斗系统延迟的基准站有54个,占比93.1%,且差值一般不超过100毫秒。(3)同时段GPS系统延迟低于北斗系统延迟的基准站只有4个,占比6.9%,且延迟差值不超过10毫秒。
3.结束语
通过数据对比结果结合实际情况综合考虑,得出以下结论:
(1)GPS系统的系统延时大概率高于北斗系统的延迟,差值几乎都在100毫秒范围内。而且观察GPS系统瞬时延迟数据可以发现,其最小值可以是“0”,且差值步距为20毫秒左右。从理论上讲,延迟数据不可能为零。故得出两程序的延迟测法略有不同。
(2)从测试数据经过的物理介质分析:两个系统的测试数据都经过相同的网络介质,无差异;GNSS接收机的品牌不同,响应时间不同。但接收机属于同时期的产品,差距不大可以忽略;GPS系统的所有数据都需要经过脱密处理,而编写的网络延迟测试软件不属于北斗系统的数据,或者说不属于CORS数据,所以没有经过脱密环节,不产生延迟。从GPS系统延迟数值普遍大于北斗系统测试数值可以印证这一点。
(3)在原有基础设施不变、没有增加网络带宽的前提下,双CORS系统并行运行的网络延迟数据没有明显的变化。说明目前的网络设施和资源可以支持双CORS系统并行运行且可以提供稳定服务。
综上,网络延迟测试程序测试数据可靠,可以使用。更多结论还需其他佐证支持,本文不再探讨。
利用计算机编程技术实现CORS系统网络延时测试,可以持续稳定地对基准站与数据中心的数据同步进行跟踪,获取网络延时数据,从数据传输的持续性和稳定性等方面对CORS系统做出评测和总结。