CN109561106B - 一种船舶通信报文实时解析过滤方法 - Google Patents

一种船舶通信报文实时解析过滤方法 Download PDF

Info

Publication number
CN109561106B
CN109561106B CN201811645907.8A CN201811645907A CN109561106B CN 109561106 B CN109561106 B CN 109561106B CN 201811645907 A CN201811645907 A CN 201811645907A CN 109561106 B CN109561106 B CN 109561106B
Authority
CN
China
Prior art keywords
message
data
field
data field
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811645907.8A
Other languages
English (en)
Other versions
CN109561106A (zh
Inventor
郭梓旸
姬庆庆
肖创柏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing University of Technology
Original Assignee
Beijing University of Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing University of Technology filed Critical Beijing University of Technology
Priority to CN201811645907.8A priority Critical patent/CN109561106B/zh
Publication of CN109561106A publication Critical patent/CN109561106A/zh
Application granted granted Critical
Publication of CN109561106B publication Critical patent/CN109561106B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/03Protocol definition or specification 

Abstract

本发明公开了一种船舶通信报文实时解析过滤方法,本方法在充分了解船舶通信系统的实际应用特点的基础上,提出了一种多协议船舶通信报文动态解析与快速提取过滤数据的方法,该方法实现步骤如下S1报文配置:(1)报文定义;(2)配置流程;(3)报文加密;S2报文解析方法:(1)数据库设计;(2)解析流程;(3)实时提取过滤;利用该方法既可以动态配置报文格式进行解析,也可以实现线上快速地针对指定数据字段进行提取或过滤,在实际的系统中得到了广泛的应用。

Description

一种船舶通信报文实时解析过滤方法
技术领域
本发明是一种船舶通信报文实时解析过滤方法,主要用于船舶通信报文传输过程中的解析及过滤,属于信息技术领域。
背景技术
船舶系统是一个耦合度高,各设备之间相互关联的复杂通信系统。目前,船舶系统内部各设备之间用以太网技术实现数据的通信。在各种设备开发开发调试的过程中,需要进行多次通信测试以保证设备运行的正确性。若在船舶航行中出现网络故障,仅仅依靠船员根据他们的经验和专业素养来进行故障判断,极有可能造成不可估量损失。因此,无论是在船舶开发调试的过程中还是船舶网络故障发生时,使用快速的方法对通信报文进行解析并调试显得尤为重要。
目前船舶通信系统中实时通信的数据量较大,报文种类繁多,且报文针对新型设备的对接需要经常需要对报文数据字段的内容进行更改,所以对于如何动态的配置报文数据字段进行解析以及如何快速实时地通过解析对应数据从而滤掉无效、错误和用户“不关心”的网络原始数据的要求也不断提高。
传统报文的解析方法,在接收到一条报文后,在程序代码中对数据报文的每一个数据字段依次进行解析。所有解析代码都是依照差不多的逻辑对字节进行处理,每条报文需要写单独的代码进行处理,代码繁琐且复用性差。当报文的数据字段变化时,只能对程序进行修改且扩展性差。
陈星亮等学者提出了海洋水文气象报文自动解析系统的设计与实现。基于海洋水文气象报文格式数据开发了功能实用易于扩展的报文自动解析存储系统。该方法利用多线程技术提高报文数据解析的时效性,是一种高效的报文解析方法,但方法只能作用于线下数据,并不能线上在接收的同时进行解析。吴建斌等学者为了提高报文的解析速率,提出了一种基于XML的多格式报文解析方法,该方法可以对报文数据进行动态解析,但是随着船舶通信系统报文的大幅度增长,XML文件在读取与更改时会消耗大量的内存以及时间,同时解析的过程是按顺序解析,解析的速度跟不上实际应用中报文获取的速度,从而无法实时的对报文进行数据提取以及过滤。目前的船舶通信系统中,报文种类繁多,报文的数据字段也经常会为了满足其他接口的需要进行修改。在开发调试或者维修检测的过程中,需要实时对特定的数据字段进行提取或过滤。在解析时,数据的规模和大小也往往不可预知,且为了满足实时性的要求,对于数据的处理只能是一次扫描,无法回溯。本文在充分了解船舶通信系统的实际应用特点的基础上,提出了一种多协议船舶通信报文动态解析与快速提取过滤数据的方法,利用该方法既可以动态配置报文格式进行解析,也可以实现线上快速地针对指定数据字段进行提取或过滤,在实际的系统中得到了广泛的应用。
发明内容
本发明采用的技术方案为一种船舶通信报文实时解析过滤方法,该方法包括以下步骤:
S1报文配置
(1)报文定义
由于UDP报文在传输的过程中延迟小,且数据传输效率高,船舶通信系统中一般采用UDP报文进行通信。在两个设备A和B间交互时,设备A先给设备B发送一条命令报文,在设备B收到设备A的命令报文后,设备B向设备A发送确认报文,表明已经收到了设备A向设备B发送的命令报文。若设备A在一段时间内并未收到设备B发送来的确认报文,则重新向设备B发送命令报文,以此来保证通信之间的稳定性。
船舶通信报文结构如图1所示,船舶通信UDP报文主要由UDP报文头和UDP数据两部分组成。HeadData1,HeadData2……HeadDataN代表报文头中的信息字段,包括发方ip、发方端口号、目标ip、目标端口号及报文长度等信息。UDP数据是真正需要传递的数据信息,UDP数据的前四个字节为报文ID,报文ID可以唯一确定一条报文。对报文进行解析时,结合报文ID即可根据这条报文所定义的数据字段对接收的数据进行解析。Data1,Data2……DataN代表报文中的数据字段,数据字段可由使用者自行进行定义。
报文数据字段规范化定义如表1所示,报文数据字段根据需要对它的数据进行了规范化定义,以此来保证报文配置模块可以满足所有报文的定义要求。其中字段名称、字段类型和长度是必填项,其他的数据根据字段类型需要填写。常见的字段类型有整数型、小数型、枚举型、字符串型和循环型等。整数型有最大值和最小值要求,小数型要确定其精度,枚举型需要确定每一解析值的准确含义,循环型需要知道详细的循环解析次数。起始位数和终止位数则是根据每个数据字段在该条报文中的位置由报文配置模块计算所得,确定了起始位数和终止位数可以快速确定这一字段在该条报文中的位置,由此获得指定数据。这样的优势在于不用循环解析出所有数据,便可以对报文数据进行快速提取和实时过滤。
表1报文数据字段规范化定义
数据特性 含义
Name 字段名称
Type 字段类型
BeginIndex 起始位数
EndIndex 终止位数
Length 长度
Precision 精度
Max 最大值
Min 最小值
BitEnum 枚举值
(2)配置流程
对传统报文配置需要专业化人员对数据库文件进行配置带来的通用性差的特点。本文在进行报文配置时,设计了报文配置模块,提供良好的操作界面,用户在填写指定信息后,该模块便可以将所有的数据字段信息写入数据库中。报文配置模块在Windows平台下采用c#语言开发,结合C#中的dev界面插件可以给用户提供一个非常直观的编辑界面。使用者可根据需要对报文的数据字段进行添加和修改操作,该模块为报文的动态解析和数据的实时过滤提供服务。
报文配置模块的具体工作流程如图2所示。
1)启动报文配置模块,根据报文的唯一标识报文id从数据库中取出该条报文下的所有数据字段信息,并根据数字字段的先后顺序以表格的形式显示。
2)若想要添加数据字段,点击数据字段添加按钮,确定字段类型并填写该字段类型需要的字段信息完成数据字段的添加。完成添加后,模块会根据已知数据字段的总长度和新添加的数据字段的长度来计算出新添加的数据字段的起始位数和终止位数并显示在数据字段表格中。
3)若想要修改已添加数据字段的信息,选中待修改数据字段并点击修改按钮,根据数据字段的类型重新填写需要的字段信息。完成修改后,模块会根据每一条数据字段的长度重新计算待修改数据字段之后的每一条数据字段的起始位数和终止位数,并对待修改数据字段的信息进行刷新,显示在数据字段表格中。
4)若想要修改已添加数据字段的顺序,选中待修改数据字段并点击上移或下移按钮。模块会对包含当前操作的数据字段之后的每一个数据字段重新计算其起始位数和终止位数,并显示在数据字段表格中。
5)点击完成按钮结束对当前报文数据字段的配置并保存,模块根据最终数据字段表格显示的内容对数据库进行更改。
(3)报文加密
国家密码局在2010年先后提出具有我国自主知识产权的安全加密算法,如表2所示。这些算法具有良好的运算性能和安全指数,有望成为主流的算法广泛活跃于未来的商业活动中。
表2国产加密算法
名称 类型 密钥/分组长度(位)
SM1 分组密码算法 128
SM2 椭圆曲线公钥密码算法 256(推荐)
SM3 杂凑算法 256
SM4 分组加密算法 128
SM7 对称加密算法 128
SM9 非对称加密算法 \
在本项目中,采用SM4算法进行关键数据的加解密,使用SM2算法中的密钥协商模块进行通信数据加密密钥的协商,在密钥协商中,需要对认证双方的信息进行摘要计算,此部分采用SM3算法。
(a)SM4算法
SM4算法是一种分组加密算法,该算法具有计算参数少、运算速度快、安全性高的特点,适合为要求传输数据长度短、执行效率高的系统提供高等级的安全性,同时本算法使用128位密钥进行轮密钥数据加密,足以保证数据的安全。在本发明中,加密数据调用的关键方法及描述如表3所示。
表3 SM4算法外部接口函数
Figure BDA0001932054240000051
(b)SM3摘要算法
SM3算法又称为杂凑算法,能够安全的对数据信息进行摘要处理,适用于商用密码应用中的数字签名和验证、消息认证码的生成与验证以及随机数的生成,可满足多种密码应用的安全需求。
在本发明中,使用SM3算法对通信双方的信息进行摘要处理,作为信息摘要模块在SM2中被使用。本模块将算法封装成三个模块接口,接受调用函数的调用请求,读取输入参数,并设置摘要信息参数,作为指针方式返回,使用灵活方便。具体算法实现和接口描述如表4所示。
表4 SM3算法外部接口函数
方法名称 返回类型 方法描述
SM3_Init(void) void 初始化参数和环境
SM3_Update(BYTE*,DWORD) void 对message进行摘要计算
SM3_Final_byte(BYTE*) void 以字节方式存储摘要结果
(c)SM2密钥协商算法
完整的SM2算法能实现数据的加解密、密钥协商、数字签名和签名认证,且安全级别高,占用资源少,能够广泛应用于现代商业活动中的数据的加解密部分。本发明基于OpenSSL大数库构造椭圆曲线系,实现SM2的密钥协商部分,完成通信数据加解密的密钥协商,且使用随机数进行动态密码生成处理,使得数据通道加密更为安全。SM2算法具体实现及接口描述如表5所示。
Figure BDA0001932054240000061
S2报文解析方法
由于船舶通信系统中报文数目繁多且每条报文中的数据字段较多的特点,本文采用SQLite数据库对所有的报文以及报文中的数据字段进行记录。使用这种轻型的数据库可以极大的减少程序中的资源占用,相比于其他的数据库具有更快的处理速度,同时还有官方提供的ODBC接口便于开发。
(1)数据库设计
报文配置以及报文解析所用到的数据库总体设计如图3所示。
表2至表4分别列出数据库中的每张表中的具体数据及含义。
报文表如表2所示,报文ID作为报文的唯一标识,为该表主键。报文名称和长度为必填项,为每一条报文的基本信息。IP地址和端口号作为选填项,可用于验证报文发送的正确性。
表2 Protocol报文表
Figure BDA0001932054240000062
Figure BDA0001932054240000071
字段表如表3所示,字段在该报文中的顺序ID作为字段数据的唯一标识,为该表主键。报文ID为外键,用于确定该条数据字段所对应的报文。字段名称、字段数据类型、字段长度、字段在报文数据中的起始和终止位置为必填项,是每一个数据字段的基本信息。数据数值精度、最大值、最小值和重复次数作为选填项,根据数据类型的需要进行填写。
表3 Field字段表
Figure BDA0001932054240000072
枚举表如表4所示,枚举值ID作为枚举值的唯一标识,为该表主键。报文ID和字段顺序ID作为外键,用于确定该枚举值所对应的报文中的数据字段位置。枚举值和枚举值所对应的解释为必填项。
表4 Enum枚举表
Figure BDA0001932054240000073
Figure BDA0001932054240000081
(2)解析流程
通过报文配置模块配置后,可对已配置好的所有报文进行解析。解析的具体流程如图4所示。
1)利用WinPcap对数据包进行获取,获取的报文放入报文缓存中。若报文缓存不为空,则取出缓存中的第一条报文进行解析。
2)从UDP头解析出报文的长度,再从UDP头结尾处向右移动4位解析出报文的唯一标识报文ID。根据报文ID,从报文表中找到该条报文的具体内容。若从报文库中找不到该条报文ID或报文的实际长度与报文配置的长度不符,则报出相关错误。
3)通过报文ID从数据字段表中找到该条报文下的所有数据字段,根据每个数据字段的起始终止位数和类型以此进行解析。例如某数据字段是补码形式的浮点型,则先从该数据字段表中取出起始位数、终止位数、最大值、最小值和精度。通过起始位数和终止位数,对数据进行拼接,拼接完毕后将补码形式转化为对应的十进制数字,然后与精度值相乘。最后对此结果进行判定,若在最小值和最大值区间内,则继续进行下一数据字段的解析,否则报出相关错误。
4)显示解析结果。
(3)实时提取过滤
在船舶设备开发调试的或维修的过程中,经常会对一个或者多个数据字段进行监控,从而更加精准的判断数据的走向或者以此来排查一些偶发的事故。单靠手动通过解析后的报文对某些数据字段进行提取或者逐条从中发现问题所在,会消耗大量的时间,极有可能带来一些严重的后果。基于上述报文配置模块,本方法提出一种报文实时提取过滤的方法,可以实时对指定数据进行提取或过滤,便于用户对数据的分析以及异常发现。具体流程如图5所示。
1)通过人机交互界面从报文数据库中选择需要提取或过滤的报文和其中的数据字段。若需要以某一个条件对数据字段进行过滤,还需要设置此字段的过滤条件,例如这个数据大于某值等。
2)若报文缓存不为空,则取出缓存中的第一条报文进行解析。
3)从UDP头解析出报文的长度,再从UDP头结尾处向右移动4位解析出报文的唯一标识报文ID。若该报文ID未被选择,则不进行任何解析操作。否则,根据报文ID,从报文表中找到该条报文的具体内容。若从报文库中找不到该条报文ID或报文的实际长度与报文配置的长度不符,则报出相关错误。
4)通过报文ID从数据字段表中找到该条报文下所选择需要提取或过滤的数据字段,根据这些数据字段的起始终止位数直接定位到对应数据,并进行解析。
5)若进行提取操作,则显示解析结果,并将所选待提取的数据字段进行IO输出。
6)若进行过滤操作,则根据解析结果与过滤条件进行判定。满足条件则显示这条解析结果,不满足条件则不进行显示。
附图说明
图1船舶通信报文结构。
图2报文配置模块流程图。
图3数据库的总体设计。
图4报文解析流程图。
图5报文实时提取过滤流程图。
具体实施方式
为了确保动态配置和实时解析过滤方法的实用性,根据实际情况模拟了一个测试坏境,并在此环境中分别对实时解析,过滤和提取三个功能进行测试。
上述测试环境中,硬件部分包括3台计算机,10个子设备,1个交换机。三台电脑中,一台作为整个系统的控制计算机,可对所有的子设备进行控制;1台作为报文模拟发送计算机,持续模拟发送带有数据的报文;1台作为解析计算机,有上述报文报文配置模块,报文解析模块以及报文提取过滤模块。所有设备间都使用以太网进行连接,所有的设备和电脑都通过交换机连接到同一局域网下。
实验过程如下:
1)启动报文动态配置模块,对所有实验中用到的报文进行配置。实验中用到的报文分为两种,一种为船舶设备每隔一段时间给解析计算机发送的设备状态报文,另一种为报文模拟发送计算机模拟发送的带有很多数据信息的报文,报文中的数据可任意进行设置。
2)通过控制计算机启动整个实验的通信环境。船舶设备的状态报文每秒向解析计算机发送2条。报文模拟计算机模拟发送100条带有数据的报文,每秒向解析计算机发送50条,且这些报文中的数据自行定义便于过滤以及检测。
3)启动报文解析模块,捕获100000条数据报文。
4)设置过滤条件,启动报文过滤模块,捕获100000条数据报文。
5)设计提取条件,启动报文提取模块,捕获100000条数据报文。
性能测试指标如表5所示。
表5性能测试指标
性能 指标
每条报文处理时间 60-70μs
吞吐量 14200-16600P/s
每秒处理报文数 5020
包捕获率 100%
过滤正确率 100%
提取准确率 100%
从实验中可以看出,对于单条报文的处理时间远小于1ms,完全可以满足船舶通信系统的实时解析的需求。船舶系统中的子设备大多以每秒2条至50条的频率进行通信,实验中模拟100个设备以每秒50条的频率进行通信,包捕获率为100%,说明解析模块工作稳定。通过对过滤功能和提取功能的实验,其正确率和准确率均为100%,说明这两个模块可以实时地对数据进行解析以及提取或过滤操作,保证提取或过滤后的结果的准确性。

Claims (3)

1.一种船舶通信报文实时解析过滤方法,其特征在于:该方法包括以下步骤,
S1报文配置
(1)报文定义
船舶通信系统中采用UDP报文进行通信;在两个设备A和B间交互时,设备A先给设备B发送一条命令报文,在设备B收到设备A的命令报文后,设备B向设备A发送确认报文,表明已经收到了设备A向设备B发送的命令报文;若设备A在一段时间内并未收到设备B发送来的确认报文,则重新向设备B发送命令报文,以此来保证通信之间的稳定性;
船舶通信报文结构中,船舶通信UDP报文由UDP报文头和UDP数据两部分组成;HeadData1,HeadData2……HeadDataN代表报文头中的信息字段,包括发方ip、发方端口号、目标ip、目标端口号及报文长度信息;UDP数据是真正需要传递的数据信息,UDP数据的前四个字节为报文ID,报文ID唯一确定一条报文;对报文进行解析时,结合报文ID即根据这条报文所定义的数据字段对接收的数据进行解析;Data1,Data2……DataN代表报文中的数据字段,数据字段由使用者自行进行定义;
报文数据字段根据需要对它的数据进行了规范化定义,以此来保证报文配置模块满足所有报文的定义要求;其中字段名称、字段类型和长度是必填项,其他的数据根据字段类型需要填写;字段类型有整数型、小数型、枚举型、字符串型和循环型;整数型有最大值和最小值要求,小数型要确定其精度,枚举型需要确定每一解析值的准确含义,循环型需要知道详细的循环解析次数;起始位数和终止位数则是根据每个数据字段在该条报文中的位置由报文配置模块计算所得,确定了起始位数和终止位数快速确定这一字段在该条报文中的位置,由此获得指定数据;
(2)配置流程
在进行报文配置时,设计了报文配置模块,该报文配置模块将所有的数据字段信息写入数据库中;报文配置模块在Windows平台下采用c#语言开发,结合C#中的dev界面插件给用户提供一个非常直观的编辑界面;使用者根据需要对报文的数据字段进行添加和修改操作,该报文配置模块为报文的动态解析和数据的实时过滤提供服务;
(3)报文加密
采用SM4算法进行关键数据的加解密,使用SM2算法中的密钥协商模块进行通信数据加密密钥的协商,在密钥协商中,需要对认证双方的信息进行摘要计算,报文加密部分采用SM3算法;
(a)SM4算法
SM4算法是一种分组加密算法,该算法具有计算参数少、运算速度快、安全性高的特点,适合为要求传输数据长度短、执行效率高的系统提供高等级的安全性,同时使用128位密钥进行轮密钥数据加密,足以保证数据的安全;
(b)SM3摘要算法
SM3算法又称为杂凑算法,能够安全的对数据信息进行摘要处理,适用于商用密码应用中的数字签名和验证、消息认证码的生成与验证以及随机数的生成,可满足多种密码应用的安全需求;
使用SM3算法对通信双方的信息进行摘要处理,作为信息摘要模块在SM2中被使用;本信息摘要模块将算法封装成三个模块接口,接受调用函数的调用请求,读取输入参数,并设置摘要信息参数,作为指针方式返回,使用灵活方便;
(c)SM2密钥协商算法
完整的SM2算法能实现数据的加解密、密钥协商、数字签名和签名认证,且安全级别高,占用资源少,能够广泛应用于现代商业活动中的数据的加解密部分;基于OpenSSL大数库构造椭圆曲线系,实现SM2的密钥协商部分,完成通信数据加解密的密钥协商,且使用随机数进行动态密码生成处理,使得数据通道加密更为安全;
S2报文解析方法
由于船舶通信系统中报文数目繁多且每条报文中的数据字段较多的特点,采用SQLite数据库对所有的报文以及报文中的数据字段进行记录;使用这种轻型的数据库可以极大的减少程序中的资源占用,相比于其他的数据库具有更快的处理速度,同时还有官方提供的ODBC接口便于开发;
(1)数据库设计
报文ID作为报文的唯一标识,为Protocol报文表主键;报文名称和长度为必填项,为每一条报文的基本信息;IP地址和端口号作为选填项,可用于验证报文发送的正确性;
字段在该报文中的顺序ID作为字段数据的唯一标识,为Field字段表主键;报文ID为外键,用于确定该条数据字段所对应的报文;字段名称、字段数据类型、字段长度、字段在报文数据中的起始和终止位置为必填项,是每一个数据字段的基本信息;数据数值精度、最大值、最小值和重复次数作为选填项,根据数据类型的需要进行填写;
枚举值ID作为枚举值的唯一标识,为Enum枚举表主键;报文ID和字段顺序ID作为外键,用于确定该枚举值所对应的报文中的数据字段位置;枚举值和枚举值所对应的解释为必填项;
(2)解析流程
通过报文配置模块配置后,对已配置好的所有报文进行解析;
(3)实时提取过滤
基于上述报文配置模块,提出一种报文实时提取过滤的方法,实时对指定数据进行提取或过滤,便于用户对数据的分析以及异常发现;
1)通过人机交互界面从报文数据库中选择需要提取或过滤的报文和其中的数据字段;若需要以某一个条件对数据字段进行过滤,还需要设置此字段的过滤条件;
2)若报文缓存不为空,则取出缓存中的第一条报文进行解析;
3)从UDP头解析出报文的长度,再从UDP头结尾处向右移动4位解析出报文的唯一标识报文ID;若该报文ID未被选择,则不进行任何解析操作;否则,根据报文ID,从报文表中找到该条报文的具体内容;若从报文库中找不到该条报文ID或报文的实际长度与报文配置的长度不符,则报出相关错误;
4)通过报文ID从数据字段表中找到该条报文下所选择需要提取或过滤的数据字段,根据这些数据字段的起始终止位数直接定位到对应数据,并进行解析;
5)若进行提取操作,则显示解析结果,并将所选待提取的数据字段进行IO输出;
6)若进行过滤操作,则根据解析结果与过滤条件进行判定;满足条件则显示这条解析结果,不满足条件则不进行显示。
2.根据权利要求1所述的一种船舶通信报文实时解析过滤方法,其特征在于:
报文配置模块的具体工作流程;
1)启动报文配置模块,根据报文的唯一标识报文ID从数据库中取出该条报文下的所有数据字段信息,并根据数字字段的先后顺序以表格的形式显示;
2)若想要添加数据字段,点击数据字段添加按钮,确定字段类型并填写该字段类型需要的字段信息完成数据字段的添加;完成添加后,模块会根据已知数据字段的总长度和新添加的数据字段的长度来计算出新添加的数据字段的起始位数和终止位数并显示在数据字段表格中;
3)若想要修改已添加数据字段的信息,选中待修改数据字段并点击修改按钮,根据数据字段的类型重新填写需要的字段信息;完成修改后,模块会根据每一条数据字段的长度重新计算待修改数据字段之后的每一条数据字段的起始位数和终止位数,并对待修改数据字段的信息进行刷新,显示在数据字段表格中;
4)若想要修改已添加数据字段的顺序,选中待修改数据字段并点击上移或下移按钮;模块会对包含当前操作的数据字段之后的每一个数据字段重新计算其起始位数和终止位数,并显示在数据字段表格中;
5)点击完成按钮结束对当前报文数据字段的配置并保存,模块根据最终数据字段表格显示的内容对数据库进行更改。
3.根据权利要求1所述的一种船舶通信报文实时解析过滤方法,其特征在于:
解析的具体流程如下;
1)利用WinPcap对数据包进行获取,获取的报文放入报文缓存中;若报文缓存不为空,则取出缓存中的第一条报文进行解析;
2)从UDP头解析出报文的长度,再从UDP头结尾处向右移动4位解析出报文的唯一标识报文ID;根据报文ID,从报文表中找到该条报文的具体内容;若从报文库中找不到该条报文ID或报文的实际长度与报文配置的长度不符,则报出相关错误;
3)通过报文ID从数据字段表中找到该条报文下的所有数据字段,根据每个数据字段的起始终止位数和类型以此进行解析;某数据字段是补码形式的浮点型,则先从该数据字段表中取出起始位数、终止位数、最大值、最小值和精度;通过起始位数和终止位数,对数据进行拼接,拼接完毕后将补码形式转化为对应的十进制数字,然后与精度值相乘;最后对此结果进行判定,若在最小值和最大值区间内,则继续进行下一数据字段的解析,否则报出相关错误;
4)显示解析结果。
CN201811645907.8A 2018-12-29 2018-12-29 一种船舶通信报文实时解析过滤方法 Active CN109561106B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811645907.8A CN109561106B (zh) 2018-12-29 2018-12-29 一种船舶通信报文实时解析过滤方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811645907.8A CN109561106B (zh) 2018-12-29 2018-12-29 一种船舶通信报文实时解析过滤方法

Publications (2)

Publication Number Publication Date
CN109561106A CN109561106A (zh) 2019-04-02
CN109561106B true CN109561106B (zh) 2021-06-04

Family

ID=65872178

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811645907.8A Active CN109561106B (zh) 2018-12-29 2018-12-29 一种船舶通信报文实时解析过滤方法

Country Status (1)

Country Link
CN (1) CN109561106B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110049056A (zh) * 2019-04-24 2019-07-23 广州铁科智控有限公司 一种城市轨道交通多信号实时处理方法及系统
CN110311784B (zh) * 2019-06-10 2022-10-21 北京信安世纪科技股份有限公司 一种json报文签名方法、验签方法及装置
CN110866037B (zh) * 2019-11-19 2022-09-20 中国民航信息网络股份有限公司 一种报文的过滤方法及装置
CN111935712A (zh) * 2020-07-31 2020-11-13 深圳市燃气集团股份有限公司 一种基于NB-IoT通信的数据传输方法、系统及介质
CN113225320A (zh) * 2021-04-21 2021-08-06 南京理工大学 一种用户可配置报文格式保密的网络报文解析方法
CN115426112A (zh) * 2021-05-16 2022-12-02 武汉领普科技有限公司 自发电开关的处理方法
CN116016725B (zh) * 2023-03-24 2023-06-13 深圳开鸿数字产业发展有限公司 信息传输方法、计算机设备及存储介质
CN116756779B (zh) * 2023-08-17 2023-11-17 青岛诺亚信息技术有限公司 一种电子表格数据对象化存储系统及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101188561A (zh) * 2007-12-20 2008-05-28 北京大学 基于自定义模板的通用业务数据通讯方法与系统
CN106233693A (zh) * 2014-11-13 2016-12-14 Lg 电子株式会社 广播信号发送设备、广播信号接收设备、广播信号发送方法和广播信号接收方法
CN106254392A (zh) * 2016-09-28 2016-12-21 天津轻工职业技术学院 基于动态可自定义的exTLV 报文传输协议的通信方法
CN108171640A (zh) * 2017-12-21 2018-06-15 武汉船舶通信研究所(中国船舶重工集团公司第七二二研究所) 船舶通信系统数据存储系统和统计方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7853210B2 (en) * 2005-11-14 2010-12-14 System Planning Corporation Intelligent sensor open architecture for a container security system
US7853708B2 (en) * 2006-02-24 2010-12-14 Cisco Technology, Inc. Techniques for replacing point to point protocol with dynamic host configuration protocol

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101188561A (zh) * 2007-12-20 2008-05-28 北京大学 基于自定义模板的通用业务数据通讯方法与系统
CN106233693A (zh) * 2014-11-13 2016-12-14 Lg 电子株式会社 广播信号发送设备、广播信号接收设备、广播信号发送方法和广播信号接收方法
CN106254392A (zh) * 2016-09-28 2016-12-21 天津轻工职业技术学院 基于动态可自定义的exTLV 报文传输协议的通信方法
CN108171640A (zh) * 2017-12-21 2018-06-15 武汉船舶通信研究所(中国船舶重工集团公司第七二二研究所) 船舶通信系统数据存储系统和统计方法

Also Published As

Publication number Publication date
CN109561106A (zh) 2019-04-02

Similar Documents

Publication Publication Date Title
CN109561106B (zh) 一种船舶通信报文实时解析过滤方法
CN107634848B (zh) 一种采集分析网络设备信息的系统和方法
CN109033471B (zh) 一种信息资产识别方法及装置
CN100586109C (zh) 基于自定义模板的通用业务数据通讯方法与系统
US20120099478A1 (en) Method and Device for Auto-Generating Goose Signal Connection Topology from Substation Level
CN110868409A (zh) 一种基于tcp/ip协议栈指纹的操作系统被动识别方法及系统
US9965300B2 (en) Message matching for opaque service virtualization
CN110830442A (zh) 报文处理方法、装置及网关
Ládi et al. Message format and field semantics inference for binary protocols using recorded network traffic
CN102158890A (zh) 测试数据的发送、接收方法、设备和系统
CN106878336A (zh) 一种数据交互方法及装置
CN116132553A (zh) 一种大数据传输优化方法及系统
CN115471307A (zh) 基于知识图谱的审计评估信息生成方法、装置和电子设备
Ji et al. An automated black-box testing approach for WSN security protocols
CN113485282B (zh) 分散控制系统消息跟踪展示方法、系统、设备及存储介质
CN114328566A (zh) 关系图谱的更新方法、装置、介质、设备及生成方法
CN117176802B (zh) 一种业务请求的全链路监控方法、装置、电子设备及介质
CN104065486A (zh) 一种加密策略匹配算法模块验证平台及其实现方法
CN111935767B (zh) 一种网络仿真系统
CN107590160B (zh) 一种监控基数树内部结构以实现测试的方法及装置
CN107122359B (zh) 数据实时跟踪可视化处理方法及装置
CN103457957B (zh) 一种具有自适应功能的网络渗透测试系统及方法
CN113452783B (zh) 区块链云架构的数字化paas开放平台系统及实现方法
CN110798371A (zh) 一种私有通信协议的测试方法
CN112887324B (zh) 电力监控系统的网络安全装置的策略配置管理系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant