新一代天气雷达数据流重传机制设计与实现
2018-04-02韩鑫强薛蕾王博张来恩
韩鑫强 薛蕾 王博 张来恩
(国家气象信息中心,北京 100081)
0 引言
为了提高数据传输时效,更好满足短临预报服务的应用需求,2016年在部分省开展新一代天气雷达数据流传输试验,建立了雷达径向数据从雷达站经由省级转发至国家级的试验流程。在试验评估过程中,发现存在由于网络等原因导致的径向数据丢失的情况[1],为保障数据传输的完整性,亟待设计和实现数据流缺失数据重传机制。
本文描述了新一代天气雷达流传输现状,分析径向数据丢失的原因,根据传输方式、传输路由等因素的不同,对多种场景设计缺失数据的重传机制,涉及制定重传策略和处理逻辑,设计多种数据包格式,以及规范雷达站、省级和国家级之间的重传通信协议等。
1 新一代天气雷达数据流传输流程
现有业务中,新一代天气雷达每完成一个体扫后(雷达运行时,通过逐步抬升天线仰角,雷达电磁波完成由低到高多个仰角的锥形方位扫描运行,即体积扫描,简称体扫)生成一个基数据文件[2],并通过国内气象通信系统上传至省级和国家级,一个完整的体扫过程大约需要6分钟时间,体扫完成且形成基数据文件后方可传输该基数据文件,即:体扫过程与传输过程是串行关系;此外,文件在传输过程中需要历经多次落盘和轮询等待[3-4],这一系列环节很大程度上影响了业务用户获取雷达实时观测资料的时效。
为改变这一现状,2016年在辽宁、安徽、广东等省和国家级完成了以SA型天气雷达为主的新一代天气雷达数据流传输试验。数据流传输是将雷达工作过程中生成的雷达径向数据进行实时传输,即:每一个径向扫描完成后即进行发送,实现边扫描边传输,最大可能地降低传输延迟,与基数据文件传输相比,有效提高雷达基数据传输时效。同时,省级通信系统、国家级通信系统在完成雷达站每个体扫的径向数据接收后,处理生成全体扫基数据并向下游业务系统分发,可以兼容和支持现行业务流程及基于文件的雷达数据应用。
在此基础上,通过实现其他型号天气雷达数据流传输,扩大传输试验范围,推进雷达数据流传输工作。
新一代天气雷达数据流传输试验系统软件安装部署分为雷达站、省级通信系统、国家通信系统三部分。其中,在雷达站雷达数据获取(RDA)系统所在服务器上部署传输客户端,负责向省级流传输服务端通过TCP/IP流逐径向方式传输数据;在省级和国家级流传输服务器上部署数据流服务端软件,可以实时接收来自客户端(雷达站)的径向数据流,除在本地生成基数据文件外,还支持以数据流方式继续向省级和国家级应用端实时转发。雷达径向数据流传输流程如图1所示。
图1 雷达数据传输流程Fig. 1 Transmission of radar data
2 数据流重传机制的相关分析
2.1 应用场景分析
在实际的业务系统中,因不可控的外界因素[5]诸如通信链路中断、计算机软/硬件故障等,会造成一定时间的雷达基数据文件传输中断。 在传输恢复后由通信系统所配置的传输策略和FTP传输协议来共同保障故障期间数据的再次上传。
在新一代天气雷达数据流传输试验中,采用的是雷达径向数据实时传输的方式,在没有相应完整性机制的保障下:传输中断时,会丢失正在传输的数据;故障恢复后,故障期间产生的数据也不能再次上传。因此亟待设计和实现数据流缺失数据重传机制,在不同故障场景下均能保障数据传输的完整性。
数据流重传机制主要由网络故障、软件重启和内存溢出等场景触发,对每种场景需要逐一进行分析。
2.2 网络故障
网络环境方面,国家级通信系统的流传输服务器与省级流传输服务器是通过全国气象宽带网络相连,省级流传输服务器与雷达站RDA软件所在服务器通过省内气象通信网络相连。
当雷达站—省之间网络发生故障,雷达站RDA软件和省级流传输软件的网络连接中断,故障恢复后,雷达站RDA软件作为客户端主动向省级流传输软件发起TCP连接,省级流传输软件作为服务端,监听雷达站RDA的Socket(套接字)接入,通信连接重新建立后,雷达站RDA对中断期间的数据进行重传。
当省级—国家级之间网络发生故障,省级流传输软件和国家级流传输软件的网络连接中断,故障恢复后,省级流传输软件主动向国家级发起TCP连接,国家级服务端监听省级的Socket接入,通信连接重新建立后,省级流传输软件对中断期间的数据进行重传。
2.3 软件重启
受到设备维护、服务器重启、系统升级等因素的影响,可能引发各级节点流传输软件的人工或自动重启。
当雷达站传输客户端发生重启,此时雷达站RDA软件和省级流传输软件的通信连接出现中断,在软件重新启动后,雷达站RDA软件主动向省级流传输软件发起连接,通信连接重新建立后,雷达站RDA对软件断连期间的数据进行重传。
当省级流传输软件发生重启,雷达站RDA软件、省级流传输软件和国家级流传输软件三者之间的通信连接同时中断,在省级软件重启后,雷达站RDA软件主动与省级流传输软件建立通信连接,并向省级重传数据。同时,省级流传输软件主动与国家级流传输软件建立连接,并将接收到的台站重传数据向国家级进行转发。
当国家级流传输软件发生重启,省级流传输软件和国家级流传输软件的通信连接出现中断,在国家级软件重启后,省级流传输软件主动向国家级流传输软件发起连接,通信连接重新建立后,省级流传输软件对中断期间的数据进行重传。
2.4 内存溢出
无论数据在RDA客户端还是流传输服务端,在数据发送前,数据由内部数据缓存链表维护,数据链表在新加入数据后为保证顺序性,按每径向数据采集时间排序。传输处理时按时间从远及近依次发送。径向数据发送模块从雷达RDA获取实时径向数据,实时转发至流传输服务端,短时数据重传模块从雷达RDA端获取实时径向数据,将径向数据放入数据缓存链表,数据缓存链表维护一定长度,当通信发生异常回复后,短时数据重传模块依据流传输服务端请求,将缓存数据移送到径向数据发送模块进行数据发送。
经过对台站和省级日志的分析,数据缺失主要源于目前雷达站RDA软件的发送机制:当发生网络抖动或拥塞时,台站RDA向省级分发的径向会在缓冲区积压,一旦积压超出缓冲区,数据将被主动丢弃,而省级接收端则会出现数据丢帧、不连续的情况,此时单纯依靠流重传已无法保障数据完整性,可通过文件重传机制解决。此外应在服务端增加分站监视告警功能,对因网络或硬件故障引发的内存溢出问题进行主动监视并及时告警。
3 数据流重传机制的实现
数据流重传机制主要由数据包设计、数据重传和数据补调三部分组成。
3.1 数据包设计
1)数据包结构
雷达基数据流传输过程中,封装的最小传输单元称为通信数据包(表1)。通信数据包均由数据包头和数据段构成。
表1 数据包结构Table 1 Structure of data packet
2)站点识别包
通信连接建立时,数据发送端(雷达站RDA或省级服务端)发送站点识别包(表2),数据接收端(省级服务端或国家级服务端)据此判断此通信链路所属雷达站点。
表2 站点识别包结构Table 2 Structure of Identification packet
3)站点信息包
站点信息包(表3)定义雷达数据头信息,包括站点信息和体扫任务信息。站点信息包在每个体扫径向数据开始前发送一次,用于告知当前准备运行体扫任务的基础数据信息。站点信息包的内容包括3个部分:雷达站点配置信息、任务配置信息和扫描配置信息。
4)重传信息包
当由于网络故障等原因造成数据丢失时,数据接收端向数据发送端发出重传信息包(表4),发送端根据重传信息包内的信息在系统内部缓存中查找当前体扫内需要重传的数据。如果时间超出过去一个体扫时间范围,则客户端从当前体扫第一个径向开始发送数据。
表3 站点信息包结构Table 3 Structure of Information packet
表4 重传信息包结构Table 4 Structure of retransmission packet
5)径向数据包
径向数据包(表5)以雷达体扫的一个径向为单位,包括3个部分:全局体扫流水号径向头块和径向数据块。
6)文件补调指令
服务端判断需要补调的文件后,向雷达站发送文件补调指令(表6)。无需重传文件则不发送该指令。文件补调指令的数据内容包括两个部分为补调站号和补调数据信息。
3.2 数据重传
数据重传是指由于网络、平台或软件原因发生通信中断并恢复后,数据发送端(雷达站RDA或省级服务端)向接收端(省级服务端或国家级服务端)发送站点识别包,请求重连;此时,接收端向发送端发送重传信息包;发送端根据重传信息包进行判断:如果待重传的数据在本地内存缓存中(内存约缓存1~2个体扫的径向数据),数据发送端提取缓存中的径向数据,以数据流方式重传至接收端;如果待重传的数据超出内存缓存的时间范围,则超出部分通过发送端缓存的基数据文件进行数据重传。数据重传流程如图2所示。
3.3 数据补调
数据补调是指在数据重传的机制下,接收端发现数据仍然存在缺失(依照全局流水号判断)时,接收端向发送端发送文件补调指令,发送端根据文件补调指令在缓存目录中寻找缺失的体扫文件,并通过FTP文件方式上传。数据补调流程如图3所示。
表5 径向数据包结构Table 5 Structure of radial direction packet
表 6 文件补调指令Table 6 Structure of supplement packet
图2 数据重传流程图Fig. 2 Retransmission of radar data
图3 数据补调流程Fig. 3 Supplement of radar data
4 数据流重传机制的应用
2017年5—6月,完成全国31个省(区、市)级和52个雷达试点站软件安装部署和联调测试,并在7月至10月进行试验运行,测试涵盖了所有省份、全国1/4左右的天气雷达站点和全部业务运行的雷达型号。
4.1 应用场景描述
试验运行期间,雷达站通过流方式向省级通信系统发送雷达基数据,由省级流传输软件生成标准格式的全体扫基数据文件和逐仰角基数据文件。省级流传软件通过流方式向国家级通信系统转发雷达站雷达基数据,再由国家级流传输软件生成标准格式的全体扫基数据文件和逐仰角基数据文件。
4.2 流传输应收数统计
雷达站完成一次体扫耗时约6分钟(因雷达型号及设备状态等原因体扫耗时有个别差异),每天上传约240个体扫的流数据,省级/国家级流传输软件收到雷达流数据后,会生成全体扫基数据文件和逐仰角基数据文件(一次全体扫数据一般情况下包括11个仰角数据)。
在统计试验期间,对于每个雷达站来说,国家级、省级流传输软件每日应生成:约240份该站的体扫数据和240×11(即2640)份逐仰角数据。
对于国家级通信系统来说,国家级流传输软件每日应生成全国52个试点站数据:240×52(即12480)份体扫数据和240×52×11(即137280)份逐仰角数据。
因雷达型号不同,每个雷达站体扫文件大小也有不同,全国各类型雷达基数据大小如表7所示。
表7 全国各类型雷达基数据大小Table 7 The size of all types of radar data
4.3 异常情况分析
试验运行期间,国家级流传输软件在接收时主要受通信链路网络,雷达站、国省软件升级维护等因素造成数据丢失。
雷达数据从省级到国家级的传输过程中,经过通信链路的节点较多,受网络抖动等因素影响,会造成极少量数据包丢失,进而造成仰角数据接收不全,体扫数据不完整。国家级流传输软件在接收数据时,会根据体扫流水号、径向序号、观测时间等要素判断数据是否存在丢包,如果出现丢包现象,就会触发数据流重传机制。通过数据流重传机制,这些受网络影响造成的缺收数据得以进行重传。
当国家级、省级流传输软件在完成软件升级维护、通信链路建立之后,国家级、省级流传输软件会根据收到的数据包信息,判断缺收的数据,通过数据流重传机制实现数据重传。
数据流传输会因通信链路网络、各级流传输软件升级等原因造成少量基数据缺收。通过数据流重传机制可以使缺收数据再次上传,保障数据传输的完整性。经检查,受通信链路网络影响或是软件升级造成的国家级流传输缺收,都通过基于内存缓存或是文件传输的方式得到补传。数据流重传机制是有效、可靠的,保证了数据传输的完整性。
5 结束语
本文介绍新一代天气雷达数据流传输流程、分析径向数据丢失原因,设计多种数据包,制定了数据流重传机制的策略和处理逻辑。经全国试验证明,数据流重传机制可以有效的避免因网络和软件升级等原因造成的数据丢失问题,保障数据传输的完整性,对推进新一代天气雷达数据流传输工作具有重要意义。
[1]龚雪鹏, 武孔亮, 吴劲松. CINRAD/CD天气雷达网络问题引起体扫故障分析及处理. 硅谷, 2013, 17: 93-94.
[2]楚志刚, 银燕, 顾松山. 新一代天气雷达基数据文件格式自动识别方法研究. 计算机与现代化, 2013, 7: 180-184.
[3]李荣, 李庆. 新一代天气雷达基数据业务传输的设计与探讨. 高原山地气象研究, 2011, 31(2): 67-69.
[4]孙志于. 新一代天气雷达基数据传输方案与程序设计. 新疆气象,2006, 29(6): 29-30.
[5] 王芬, 李腹广, 李赟. 新一代多普勒天气雷达CINRAD/CD产品数据缺报原因分析. 气象与环境科学, 2010, 33(4): 84-88.