一种空管自动化网络数据监控的设计与实现
2015-02-02李长栋
摘 要:文章提出一种应用于空中交通管制自动化系统的网络数据监控系统,该系统通过C#实现,能够部署与外接的windows平台监控机,对系统网内数据进行多参数监控,并对网络数据的在线误码统计、在线数据记录及数据报文缓存,适用于空中交通管制自动化的后期设备维护和故障排查。
关键词:网络监控;空中交通管制自动化;网络监听;网络数据;C#
引言
当代空中交通管制已从以往的程序管制过渡到自动化管制,而应用的自动化设备也从单机版走向分布式集成管理。这种模式可以最大限度降低系统的故障率以及提高系统的冗余度,为业务运行提供更好、更安全的技术保障。而分布式不可避免地需要进行网络的搭建,这也使得网络成为系统安全保障的另一个关键点。文章提出一种能够适用于空中交通管制自动化系统的网络数据分析系统,设计通过visual2010平台进行开发、采用C#语言,能够实现对空管自动化的网络在线分析和监控。对于自动化的雷达数据误码分析、雷达目标分裂以及网络堵塞等网络数据相关的故障排除有一定的数据支撑能力。
1 设计的实现
在实际工作中,雷达数据通常通过协议转换器从同步数据转换为TCP/IP网络数据并经过相应的服务器处理完毕后进行空管自动化的全网发布。不同的终端在网络上进行数据拾取,实现相应的自动化能力。而这个过程,如果网络堵塞或雷达数据有误码,如若无法实时在线监控,数据被处理完毕后加入的记录仪数据将不再拥有其原始可分析性,这使得回放数据进行故障排查有一定局限性。因此系统可以通过在未发布的雷达数据网络中接入一台windows网络监控机,通过监控机部署软件对其进行网络分析处理,实现系统的实时无差错监控。系统功能分为接口设计、数据监控分析、数据存储与记录三大功能模块。
1.1 方案设计及流程设计
以往的网络数据分析,主要有:(1)由SNMP协议管理进行设计,方案主要通过使用SNMP协议访问网内的网络设备及主机,并在SNMP管理服务器上对其进行管理和控制,导出相应的网络数据。这种模式无疑会加重网络的负担,并且适用性有限,只能应用于应用层以下的数据分析,而对于空管自动化网络分析来说,应用层的数据更为关键;(2)另一种方案则是基于主机代理服务器分析,通过对所有网内主机的请求进行网络代理,实现对代理服务器的全网监控,这对于空管自动化而言也不切合实际;(3)最后一种,也是文章采用的一种方案,通过网络监听,监听计算机端口及相应网络交换机端口对数据进行分析记录,这对于采用星形拓扑为主的空管自动化则是一个较好的方案,能够实现系统的实时性、适用性、扩展性和可维护性。
系统通过web页面远程控制、管理。实现上在应用层采用多线程方式进行分组监控和分析任务,数据实时发送与网络数据分析模块,再汇总到数据库进行数据存储。远程管理可以实现调度任务对控制层下的数据进行分析,与此同时针对雷达数据的格式需求和误码标准进行数据库统计,当发现有误码率过高或其他相应的数据异常,可以进行实时告警。在应用软件上系统提供了数据库数据统计、调度任务操作日志查询、定时段进行网络数据监控分析,历史查询等基础功能,此处不再赘述。
1.2 接口设计
通过与厂家的雷达协议转换器的协议对接,结合socket,构成软件的接口模块设计。如文献[2]所述,Socket是网络监听采用的主流工具,能够提供相应的网络数据监听、协议分析及其他相关功能,在C#程序设计中,visual2010平台也提供了socket套接字。
首先引入socket相应的命名空间。
using System.Net;
using System.Net.Sockets;
在后台服务器程序设计上为了减少系统对计算机的资源占用,采用控制台程序设计,因此在主程序中可以如下:
IPAddress myip = new IPAddress(new byte[] { 127, 0, 0, 1 });
TcpListener listener = new TcpListener(myip, 8500);
listener.Start();
Console.WriteLine("开始监控 ...");
Console.WriteLine("\n\n输入\"Q\"键退出。");
ConsoleKey key; do {
key = Console.ReadKey(true).Key;
} while (key != ConsoleKey.Q);
而在返回数据中,可以进行相应的数据分析处理,这一步则交与数据分析模块处理。
1.3 數据分析
在网络数据分析方面,主流的分析方法有网络踪迹法、分组过滤法。本系统主要采用分组过滤法,并在实践中针对雷达数据进行进一步的分析处理。在每次分析过程中,系统对网络线路上的数据包进行处理,包括完整数据及碎片数据。根据实验发现,自动化网络数据中数据包之间的间隔为2-5s,因此对每个数据包进行C#中的Timer定时器调用显然容易造成资源紧张,因此在设计中可以将缓存区设置为512K以上,对数据包进行分批处理。而数据分割方面则借助于包的数据格式。在数据分析过程,可以定义分析树,在树形分析中获取包的路由,并找寻误码包的来源,为雷达目标分裂、雷达显示异常等相关实时数据进行排查。另一方面,过滤的规则定义为数据包的首部四元组合、数据包的方向以及雷达的数据格式和误码标准(支持包括Raytheon、ALenia、Thales在内的多种主流雷达数据格式)。
1.4 数据记录
在数据记录上,系统将分析得到的网络数据进行数据库入库管理,在C#中,开发平台提供了其与SQL SERVER的安全、快捷接入。实现较为简单,如下:
SqlConnection sqlCon = new SqlConnection();
sqlCon.ConnectionString = "Data Source=;Initial Catalog=;User
Id=sa;Password=system1243;";
sqlCon.Open();
当然,与上述同理系统也需要引入的命令空间:using System.Data.SqlClient;
而与此同时,系统还将提供操作记录以提高系统自身的数据安全及维护能力,在这基础上,日志采用txt文档进行实时记录。在c#中实现有:
StreamWriter sw = File.AppendText(Server.MapPath(".")+"\\Log.txt");
sw.WriteLine(getdata);
sw.Flush();
sw.Close();
其中getdata为系统记录的操作变量,将在实际运行中进行操作记录。
2 结束语
文章提出一种基于网络监听的、适用于空管交通管制自动化的网络数据监控系统,系统应用于空管一线值班环境,能够对空管自动化系统进行数据安全保障及针对性后期安全排查,也为相关分布式局域网的网络数据监控提供一种参考。
参考文献
[1]邱均平,等.网络数据分析[M].北京大学出版社,2004.
[2]曾培彬.基于多线程的温湿度集中监控设计[J].计算机系统应用,2013(02).
[3]毕强,等.超文本信息组织技术[M].科学技术文献出版社,2004.
作者简介:李长栋(1988-),男,黑龙江,中国民用航空深圳空中交通管理站,助理工程师,本科,空中交通管制自动化。