2. 中国山西 030025 太原大陆裂谷动力学国家野外科学观测研究站
2. National Continental Rift Valley Dynamics Observatory of Taiyuan, Shanxi Province 030025, China
国家测震台网接收100多个国家台的实时数据。为了提高国家测震台站数据传输的可靠性,2015年中国地震局地震背景场探测项目中新建了1套卫星通信系统,对47个国家测震台站增设了1路iDirect卫星通信信道,直接将数据传输至国家测震台网。该数据传输方式独立于现有的地面线路,实现了现有地面传输的备份传输信道,在特殊情况下和应急时期可使测震速报等业务得以正常开展(杨乐等,2015)。目前,台站工作人员通过观察卫星路由器前面板指示灯的状态、通过浏览器登录卫星路由器页面查看设备状态、通过PING命令根据VSAT卫星通信分组通信网的延时情况可基本判断卫星信道的通断。但是,即使在卫星通信信道正常的情况下,也会由于台站路由器、数据采集器、中国地震台网中心流服务器等原因造成测震数据不能正常通过卫星信道传输,此时台站人员通常在接到通知后或主动联系国家测震台网工作人员了解本台站的实时测震数据传输情况,因此,台站亟需能自动检测台站通过卫星信道传输的实时测震数据是否由台网中心正常接收的方法,以便及时发现数据中断并进行修复。
1 国家测震台站卫星传输链路的检测以太原测震台为例(图 1),在原有的地面光缆传输基础上增加卫星传输方式,在台站的路由器上添加静态路由,使到台网中心接收卫星数据网段目的地址的数据包全部指向卫星路由器,以实现数据备份传输功能(高伟亮,2014)。
![]() |
图 1 国家测震台传输示意 Fig.1 Sketch map of data transmission in state seismic station |
在卫星传输链路正常时,把电脑连接到与数采相同的网段,网关设置和数采一致,用PING命令测试卫星中心站数据流服务器地址,延时应在数百毫秒左右(杨乐,2017)。该延时数是由VSAT卫星通信分组通信网的延时造成的,在没有设置静态路由时,地面光纤网络的延时最多几十毫秒(杨运年,1995)。
2 从流服务器和数据采集器获取数据传输状态中国地震台网中心数据流服务器能接收到台站数据采集器的数据,但这要在卫星通信链路与数据应用均正常时才能实现。台站的数据采集器和台网中心的流服务器是数据收发的2个端点,值班人员可以从远程登录2个端点的主机,查看传输状态。
据了解,目前台网中心接收卫星数据的流服务器采用了Jopens5.3,其可以通过Telnet客户端连接到流服务器,输入“stat monitor”将返回所有接入台站的连通情况,返回的信息行类似于“台网代码/台站代码传输状态”,如“CC/TIY 1”表示TIY台站数正常,如果为“CC/TIY 0”则表示数据不正常,输入“stat waveform netName/stationName”将返回指定台站的波形存储情况(吴永权等,2010)。
由于过多的用户和过多次的连接流服务器均可能会加重流服务器的负担,因此台站还可以登录自己的数据采集器来查看数据传输状态。以港震EDAS-24IP数据采集器为例,可以通过Telnet客户端连接到数据采集器,输入“netstat”命令可以列出与数据采集器建立的连接,如果台网中心流服务器正常地收取数据,则列表中应有流服务器的地址。EDAS-24IP同时使用控制端口和数据端口与接收软件通信,控制端口(5000)用于建立连接时实现用户验证和服务申请,数据端口(8000—8010,自动分配)用于数据服务和系统配置(北京港震机电有限公司,2006)。Netstat返回信息中包含以下的内容,则表示某远程流服务器与数据采集器通信正常。
$ {\rm{Proto\; Recv-Q \;Send-Q\; Local \;Address \;Foreign \;Address \;State}}\\ \begin{array}{lllll}{\mathrm{tcp}} & {0} & {0} & {10.14 . \mathrm{X.X}: 5000} & {10.201 . \mathrm{Y.Y:} 64211} & {\text { ESTABLISHED }} \\ {\mathrm{tcp}} & {0} & {0} & {10.14 . \mathrm{X.X}: 8002} & {10.201 . \mathrm{Y.Y}: 64248} & {\text { ESTABLISHED }}\end{array} $ |
在前述的检测中主要用到了PING命令和Telnet客户端。为实现自动检测,本文使用了微软VS2015开发环境的C#语言。
PING命令主要通过发送Internet控制消息协议(ICMP)回响请求消息来验证与另一台主机的IP级连接,对应的回响应答消息的接收情况和往返过程的时间一起显示出来。C#可使用System.Net.NetworkInformation.Ping类实现PING的功能。在以下代码中变量lissServer为流服务器地址;myString为32字节的字符串;在ICMP回响请求成功时,变量myRoundtripTime返回响应时间的毫秒数。
//using System.Net.NetworkInformation;
Ping myPing = new Ping();
PingOptions myOptions = new PingOptions();
myOptions.DontFragment = true;
byte[] myBuffer =
System.Text.Encoding.ASCII.GetBytes(myString);
int myTimeout = 4000;
PingReply myReplay = myPing.Send(lissServer, myTimeout, myBuffer, myOptions);
if(myReplay.Status ==IPStatus.Success)
{
long myRoundtripTime = myReplay.RoundtripTime;
}
程序根据回响状态和数次响应时间的平均数对卫星传输链路进行基本判断,太原台正常时的响应时间约600 ms,可设定500—700 ms作为正常范围的判断条件。
Telnet协议是TCP/IP协议族中的一员,是Internet远程登录服务的标准协议和主要方式,为用户提供在本地计算机上完成远程主机工作的能力,即在终端使用者的电脑上使用Telnet程序可连接到服务器。终端使用者在Telnet程序中输入命令,如同直接在服务器控制台上输入。本文使用C#的System.Net.Sockets.TcpClient编写了telnetConnection类实现Telnet客户端基本功能,以下代码为使用telnetConnection远程登录与交互的实例。
telnetConnection myClient = New telnetConnection(lissServer, Port);
myClient.Write(cmdString);
string Message = myClient.Read();
编制的自动检测软件如图 2所示。值班人员可点击相应的按钮实现相关检测,也可以设置为自动检测,程序将按指定的时间间隔进行检测,如果有异常,将报警提醒。图 2文本框中显示太原台某次检测结果,PING流服务器数次响应时间的平均值为596 ms时,表示卫星通讯链路基本正常;登录流服务器返回“CC/TIY 0”时,则表示数据传输不正常。值班人员根据报警信息可及时通知维护人员进行处理。
![]() |
图 2 程序运行页面 Fig.2 The snap in software running process |
本文介绍了卫星传输台站数据传输状态、卫星通信链路的检测方法及自动检测的编程实现。自动检测程序已在太原台和其他台站进行了应用,值班人员可将程序设置为间隔一段时间自动检测1次,在卫星通信链路与数据应用不正常时,可以及时得到报警信息,以便通知维护人员进行修复。程序的应用将缩短故障发现时间,提高卫星传输台站的运行效率。该程序仅实现了自动检测功能,下一步将增加判断故障的功能,如卫星传输链路不通时自动登录卫星路由器获取各种参数、数据未能传输时自动获取数据采集器当前访问用户数是否达到最大用户数等。
北京港震机电有限公司.地震数据采集器EDAS-24IP用户指南[Z].北京: 北京港震机电技术有限公司, 2006.
|
高伟亮.中国地震背景场探测项目(太原测震卫星通信系统)技术报告[R].太原: 山西省地震局, 2014.
|
吴永权, 黄文辉. 2010. 数据处理系统软件JOPENS的架构设计与实现[J]. 地震地磁观测与研究, 31(6): 59-63. DOI:10.3969/j.issn.1003-3246.2010.06.011 |
杨乐, 谭颖, 章静, 等. 2015. 背景场项目中iDirect卫星通信系统设计[J]. 地震地磁观测与研究, 36(2): 114-117. DOI:10.3969/j.issn.1003-3246.2015.02.021 |
杨乐.背景场卫星通信系统远端站点维护[Z].昆明: 国家测震台站常规分析处理技术培训班, 2017.
|
杨运年. 1995. VSAT卫星通信分组通信网的吞吐量和延时[J]. 微波与卫星通信, (1): 37-43. |