CN113242109B - 用于校验报文数据的方法、装置和设备 - Google Patents
用于校验报文数据的方法、装置和设备 Download PDFInfo
- Publication number
- CN113242109B CN113242109B CN202110402267.3A CN202110402267A CN113242109B CN 113242109 B CN113242109 B CN 113242109B CN 202110402267 A CN202110402267 A CN 202110402267A CN 113242109 B CN113242109 B CN 113242109B
- Authority
- CN
- China
- Prior art keywords
- data
- message
- checked
- protocol
- byte
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0078—Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/26—Special purpose or proprietary protocols or architectures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L2012/40208—Bus networks characterized by the use of a particular bus standard
- H04L2012/40228—Modbus
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请涉及网络通讯技术领域,公开一种用于校验报文数据的方法,包括:获取待发送报文;待发送报文为Modbus TCP/IP协议报文,待发送报文包括待校验数据;将待发送报文的协议标识符字段拆分为第一字节段和第二字节段;第一字节段用于表征协议标识符;获取待校验数据对应的数据校验码;数据校验码的长度与第二字节段的长度相等;将待发送报文中的第二字节段的字段值替换为数据校验码,获得待校验报文;发送待校验报文至接收端。通过将数据校验码设置在了Modbus TCP/IP协议报文的字段中,使得接收端通过数据校验码进行待校验数据的数据校验,增加了Modbus TCP/IP协议的数据错误校验手段,提高了Modbus TCP/IP协议的数据错误校验能力。本申请还公开一种用于校验报文数据的装置及设备。
Description
技术领域
本申请涉及网络通讯技术领域,例如涉及一种用于校验报文数据的方法、装置和设备。
背景技术
Modbus(Modbus串行通信协议)TCP(Transmission Control Protocol,传输控制协议)/IP(Internet Protocol,网际互连协议)协议是施耐德电气公司于1996年设计并提出的一种基于以太网TCP/IP的Modbus协议,作为应用层协议的报文,用TCP协议承载Modbus数据,能够实现工业以太网数据通信,广泛应用于各类工业控制系统之中。因为强干扰易出错的工业环境对通信数据校验尤为必要,Modbus通信协议也需要具备更高的安全性,对于传输过程中的数据需要进行更严的数据错误校验。
在实现本公开实施例的过程中,发现相关技术中至少存在如下问题:
Modbus TCP/IP协议报文的“应用层”不具备端到端校验数据错误的能力,从而导致在经过路由转发后可能无法校验出数据错误的问题,使得Modbus协议报文的数据错误校验能力较弱。
发明内容
为了对披露的实施例的一些方面有基本的理解,下面给出了简单的概括。所述概括不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围,而是作为后面的详细说明的序言。
本公开实施例提供了一种用于校验报文数据的方法、装置和设备,以提高ModbusTCP/IP协议的错误校验能力。
在一些实施例中,用于校验报文数据的方法,用于Modbus通信网络中的发送端侧,所述方法包括:
获取待发送报文;所述待发送报文为Modbus TCP/IP协议报文,所述待发送报文包括待校验数据;
将所述待发送报文的协议标识符字段拆分为第一字节段和第二字节段;所述第一字节段用于表征协议标识符;
获取所述待校验数据对应的数据校验码;所述数据校验码的长度与所述第二字节段的长度相等;
将所述待发送报文中的第二字节段的字段值替换为所述数据校验码,获得待校验报文;
发送所述待校验报文至接收端。
在一些实施例中,用于校验报文数据的方法,用于Modbus通信网络中的接收端侧,所述方法包括:
接收发送端发送的待校验报文;所述待校验报文通过将待发送报文中的第二字节段的字段值替换为数据校验码获得;所述待发送报文为Modbus TCP/IP协议报文,所述待发送报文包括待校验数据;所述待发送报文的协议标识符字段被拆分为第一字节段和第二字节段;所述第一字节段用于表征协议标识符;所述数据校验码根据所述待校验数据获取,所述数据校验码的长度与所述第二字节段的长度相等;
从所述待校验报文中提取所述数据校验码;
根据所述数据校验码校验所述待校验数据。
在一些实施例中,用于校验报文数据的装置,包括处理器和存储有程序指令的存储器,其特征在于,所述处理器被配置为在运行所述程序指令时,执行上述用于校验报文数据的方法。
在一些实施例中,设备包括上述用于校验报文数据的装置。
本公开实施例提供的一种用于校验报文数据的方法、装置和设备,可以实现以下技术效果:Modbus TCP/IP协议报文包含待校验数据,将Modbus TCP/IP协议报文的协议标识符字段拆分为第一字节段和第二字节段,将第二字节段的字段值替换为待校验数据对应的数据校验码,获得待校验报文,发送所述待校验报文至接收端,接收端从待校验报文中提取数据校验码,根据数据校验码校验待校验数据。这样,将数据校验码设置在了ModbusTCP/IP协议报文的字段中,使得接收端通过数据校验码进行待校验数据的数据校验,增加了Modbus TCP/IP协议在“应用层”端到端之间的数据错误校验手段,提高了Modbus TCP/IP协议的数据错误校验能力。
以上的总体描述和下文中的描述仅是示例性和解释性的,不用于限制本申请。
附图说明
一个或多个实施例通过与之对应的附图进行示例性说明,这些示例性说明和附图并不构成对实施例的限定,附图中具有相同参考数字标号的元件示为类似的元件,附图不构成比例限制,并且其中:
图1是本公开实施例提供的一个用于校验报文数据的方法的示意图;
图2是本公开实施例提供的另一个用于校验报文数据的方法的示意图;
图3是本公开实施例提供的一个待校验报文的报文格式的示意图;
图4是本公开实施例提供的另一个用于校验报文数据的方法的示意图;
图5是本公开实施例提供的一个用于校验报文数据的方法的时序图;
图6是本公开实施例提供的一个用于校验报文数据的装置的示意图。
具体实施方式
为了能够更加详尽地了解本公开实施例的特点与技术内容,下面结合附图对本公开实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本公开实施例。在以下的技术描述中,为方便解释起见,通过多个细节以提供对所披露实施例的充分理解。然而,在没有这些细节的情况下,一个或多个实施例仍然可以实施。在其它情况下,为简化附图,熟知的结构和装置可以简化展示。
本公开实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开实施例的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。
除非另有说明,术语“多个”表示两个或两个以上。
本公开实施例中,字符“/”表示前后对象是一种“或”的关系。例如,A/B表示:A或B。
术语“和/或”是一种描述对象的关联关系,表示可以存在三种关系。例如,A和/或B,表示:A或B,或,A和B这三种关系。
结合图1所示,本公开实施例提供一种用于校验报文数据的方法,用于Modbus通信网络中的发送端侧,该方法包括:
S101,获取待发送报文;待发送报文为Modbus TCP/IP协议报文,待发送报文包括待校验数据;
S102,将待发送报文的协议标识符字段拆分为第一字节段和第二字节段;第一字节段用于表征协议标识符;
S103,获取待校验数据对应的数据校验码;数据校验码的长度与第二字节段的长度相等;
S104,将待发送报文中的第二字节段的字段值替换为数据校验码,获得待校验报文;
S105,发送待校验报文至接收端。
采用公开实施例提供的用于校验报文数据的方法,Modbus TCP/IP协议报文包含待校验数据,将Modbus TCP/IP协议报文的协议标识符字段拆分为第一字节段和第二字节段,将第二字节段的字段值替换为待校验数据对应的数据校验码,获得待校验报文,发送所述待校验报文至接收端。这样,将能够校验待校验数据的数据校验码设置在了Modbus TCP/IP协议报文的字段中,使得接收端能够通过数据校验码校验待校验数据,增加了ModbusTCP/IP协议的数据错误校验手段,提高了Modbus TCP/IP协议的数据错误校验能力。
可选地,待校验信息为Modbus TCP/IP协议报文的应用数据单元。
在一些实施例中,待校验报文的报文格式如图3所示,从左往右依次为ETH(Ethernet,以太网)头、IP头、TCP头、事务处理标识符、协议标识符的第一字节段、数据校验码、长度符、单元标识符、功能码、数据;其中,协议标识符的第一字节段的长度为1Byte,数据校验码的长度为1Byte。
可选地,协议标识符字段承载有用于标识协议的第一预设数值,将待发送报文的协议标识符字段拆分为第一字节段和第二字节段,包括:将第一预设数值的第一字节所对应的字节段确定为第一字节段,将第一预设数值的第二字节所对应的字节段确定为第二字节段。可选地,第一预设数值为“0x0000”,第一字节段的数值为“0x00”,第二字节段的数值为“0x00”。在一些实施例中,Modbus TCP/IP协议报文的协议标识符字段的长度为2个字节,协议标识符字段的值为“0x0000”,用于表征协议标识符,将2个字节的协议标识符字段分为第一字节段和第二字节段,第一字节段用于表征协议标识符,第二字节段替换为待校验数据对应的数据校验码。将校验待校验数据的数据校验码设置在了Modbus TCP/IP协议报文的字段中,使得接收端能够通过数据校验码校验待校验数据,增加了Modbus TCP/IP协议的数据错误校验手段,提高了Modbus TCP/IP协议的数据错误校验能力。
可选地,获取待校验数据对应的数据校验码,包括:通过Hash(散列函数)算法获取待校验数据的散列值;将待校验数据的散列值确定为数据校验码。可选地,通过CRC-8(Cyclic Redundancy Check-8,正序循环冗余校验)技术对待校验数据进行编码计算,获得待校验数据的散列值,将该散列值确定为数据校验码。Hash算法的CRC-8技术是通信领域中用于校验数据传输正确性的常用机制,具有编解码方法简单、运算速度快、具备良好唯一性的优点,将CRC-8技术用于Modbus TCP/IP协议的数据校验,提高Modbus TCP/IP协议的数据错误校验能力。
结合图2所示,本公开实施例提供一种用于校验报文数据的方法,用于Modbus通信网络中的接收端侧,该方法包括:
S201,接收发送端发送的待校验报文;待校验报文通过将待发送报文中的第二字节段的字段值替换为数据校验码获得;待发送报文为Modbus TCP/IP协议报文,待发送报文包括待校验数据;待发送报文的协议标识符字段被拆分为第一字节段和第二字节段;第一字节段用于表征协议标识符;数据校验码根据待校验数据获取,数据校验码的长度与第二字节段的长度相等;
S202,从待校验报文中提取数据校验码;
S203,根据数据校验码校验待校验数据。
采用公开实施例提供的用于校验报文数据的方法,接收端接收发送端发送的待校验报文,该待校验报文中包括待校验数据和数据校验码,从待校验报文中提取数据校验码,根据数据校验码校验待校验数据。这样,使得接收端接收通过数据校验码校验待校验数据,增加了Modbus TCP/IP协议的数据错误校验手段,提高了Modbus TCP/IP协议的数据错误校验能力。
可选地,协议标识符字段承载有用于标识协议的第一预设数值,将待发送报文的协议标识符字段拆分为第一字节段和第二字节段,包括:将第一预设数值的第一字节所对应的字节段确定为第一字节段,将第一预设数值的第二字节所对应的字节段确定为第二字节段。在一些实施例中,第一预设数值为“0x0000”,第一字节段的数值为“0x00”,第二字节段的数值为“0x00”。
可选地,从待校验报文中提取数据校验码后,包括:将数据校验码替换为第二预设数值;第二预设数值的长度与数据校验码的长度相等。在一些实施例中,第二预设数值为“0x00”。在一些实施例中,Modbus TCP/IP协议报文的协议标识符字段的值为“0x0000”,用于表征协议标识符;将协议标识符字段拆分为第一字节段和第二字节段,第二字节段的值为“0x00”,在待校验报文中,协议标识符字段的第二字节段被替换为数据校验码,接收端提取数据校验码后,将数据校验码对应的字段恢复为“0x00”。这样,保证Modbus TCP/IP协议报文的完整性。
可选地,根据数据校验码校验待校验数据包括:通过Hash算法获取待校验数据的散列值;在待校验数据的散列值与数据校验码相同的情况下,确定待校验数据没有数据错误;在待校验数据的散列值与数据校验码不相同的情况下,确定待校验数据有数据错误。
可选地,接收端通过Modbus TCP/IP协议栈接收发送端发送的待校验报文,在待校验数据的散列值与数据校验码不相同的情况下,还包括:生成校验失败事件;将校验失败事件发送至Modbus TCP/IP协议栈,触发Modbus TCP/IP协议栈将校验失败事件对应的错误代码发送至发送端。
在一些实施例中,通过软件将校验失败事件与接收端的Modbus TCP/IP协议栈中预设的错误代码设置对应关系。例如,错误代码为“0x03”,在待校验数据的散列值与数据校验码不相同的情况下,接收端的Modbus TCP/IP协议栈将校验失败事件对应的错误代码“0x03”发送至发送端。这样,接收端能够在数据校验失败的情况下及时通知发送端,保证Modbus TCP/IP协议的时效性。
可选地,在待校验数据的散列值与数据校验码不相同的情况下,还包括:生成数据错误信息;将数据错误信息记录在错误日志,并发送该数据错误信息至服务器。可选地,数据错误信息用于表征该待校验报文的待校验数据与数据校验码不相同。
结合图4所示,在一些实施例中,本公开实施例提供的用于校验报文数据的方法,用于Modbus通信网络中的接收端侧,该方法包括:
S301,接收发送端发送的待校验报文;
S302,从待校验报文中提取数据校验码;将数据校验码替换为“0x00”,获得ModbusTCP/IP协议报文;
S303,通过Hash算法的CRC-8技术获取待校验数据的散列值;
S304,判断待校验数据的散列值与数据校验码是否相同;若是,则确定待校验数据没有数据错误,并执行步骤S305;若否,则确定待校验数据有数据错误,并执行步骤S306;
S305,发送Modbus TCP/IP协议报文至接收端的Modbus TCP/IP协议栈。
S306,生成校验失败事件;将校验失败事件发送至接收端的Modbus TCP/IP协议栈,触发接收端的Modbus TCP/IP协议栈将校验失败事件对应的错误代码“0x03”发送至发送端,然后执行步骤S307;
S307,生成数据错误信息;将数据错误信息记录在错误日志,并发送该数据错误信息至服务器。
结合图5所示,本公开实施例提供的用于校验报文数据的方法,包括:
S401,发送端的Modbus TCP/IP协议栈获取待发送的Modbus TCP/IP协议报文;
S402,发送端将待发送的Modbus TCP/IP协议报文的协议标识符字段拆分为第一字节段和第二字节段,将第二字节段的字段值替换为用于数据校验的数据校验码,获得待校验报文;
S403,发送端将待校验报文依次经过传输层的TCP协议的checksum编码、网络层的IP协议的checksum编码、数据链路层的Ethernet的CRC编码进行编码,获得编码后的待校验报文;
S404,发送端发送编码后的待校验报文给接收端;
S405,接收端接收发送端发送的编码后的待校验报文,将编码后的待校验报文依次经过数据链路层的Ethernet的CRC校验并解码、网络层的IP协议的checksum校验并解码、TCP协议的checksum校验并解码,获得解码后的待校验报文;
S406,接收端从解码后的待校验报文中提取数据校验码;将待校验报文的数据校验码字段恢复为“0x00”,获得Modbus TCP/IP协议报文;通过Hash算法获取待校验数据的散列值;
S407,接收端在待校验数据的散列值与数据校验码相同的情况下,确定待校验数据没有数据错误,并将Modbus TCP/IP协议报文发送至接收端的Modbus TCP/IP协议栈。
在目前技术中,Modbus协议在串行链路上将校验码设置在报文尾部,用于在数据链路层实现数据校验。本公开实施例提供的用于校验报文数据的方法将Modbus TCP/IP协议报文的用于数据错误校验的数据校验码设置在字段值不变的协议标识符,不增加报文长度。这样,有效避免了报文过长可能导致的拒绝服务攻击等安全隐患,并且校验数据位置则相对固定,可以通过固定的偏移量快速方便的找到数据,进而使得Modbus TCP/IP协议报文具备端到端的校验能力。
结合图6所示,本公开实施例提供一种用于校验报文数据的装置,包括处理器(processor)500和存储器(memory)501。可选地,该装置还可以包括通信接口(Communication Interface)502和总线503。其中,处理器500、通信接口502、存储器501可以通过总线503完成相互间的通信。通信接口502可以用于信息传输。处理器500可以调用存储器501中的逻辑指令,以执行上述实施例的用于校验报文数据的方法。
此外,上述的存储器501中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
存储器501作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序,如本公开实施例中的方法对应的程序指令/模块。处理器500通过运行存储在存储器501中的程序指令/模块,从而执行功能应用以及数据处理,即实现上述实施例中用于校验报文数据的方法。
存储器501可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器501可以包括高速随机存取存储器,还可以包括非易失性存储器。
采用本公开实施例提供的用于校验报文数据的装置,通过将Modbus TCP/IP协议报文的协议标识符字段拆分为第一字节段和第二字节段,Modbus TCP/IP协议报文包含待校验数据,将第二字节段的字段值替换为待校验数据对应的数据校验码,获得待校验报文,发送所述待校验报文至接收端,接收端从待校验报文中提取数据校验码,根据数据校验码校验待校验数据。这样,将数据校验码设置在了Modbus TCP/IP协议报文的字段中,使得接收端通过数据校验码进行待校验数据的数据校验,增加了Modbus TCP/IP协议的数据错误校验手段,提高了Modbus TCP/IP协议的数据错误校验能力。
本公开实施例提供了一种设备,包含上述的用于校验报文数据的装置。可选地,所述设备包括:计算机、智能手机、平板电脑、服务器等。该设备通过将Modbus TCP/IP协议报文的协议标识符字段拆分为第一字节段和第二字节段,Modbus TCP/IP协议报文包含待校验数据,将第二字节段的字段值替换为待校验数据对应的数据校验码,获得待校验报文,发送所述待校验报文至接收端,接收端从待校验报文中提取数据校验码,根据数据校验码校验待校验数据。这样,将数据校验码设置在了Modbus TCP/IP协议报文的字段中,使得接收端通过数据校验码进行待校验数据的数据校验,增加了Modbus TCP/IP协议的数据错误校验手段,提高了Modbus TCP/IP协议的数据错误校验能力。
本公开实施例提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为执行上述用于校验报文数据的方法。
本公开实施例提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述用于校验报文数据的方法。
上述的计算机可读存储介质可以是暂态计算机可读存储介质,也可以是非暂态计算机可读存储介质。
本公开实施例的技术方案可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括一个或多个指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开实施例所述方法的全部或部分步骤。而前述的存储介质可以是非暂态存储介质,包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。
以上描述和附图充分地示出了本公开的实施例,以使本领域的技术人员能够实践它们。其他实施例可以包括结构的、逻辑的、电气的、过程的以及其他的改变。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选的,并且操作的顺序可以变化。一些实施例的部分和特征可以被包括在或替换其他实施例的部分和特征。而且,本申请中使用的用词仅用于描述实施例并且不用于限制权利要求。如在实施例以及权利要求的描述中使用的,除非上下文清楚地表明,否则单数形式的“一个”(a)、“一个”(an)和“所述”(the)旨在同样包括复数形式。类似地,如在本申请中所使用的术语“和/或”是指包含一个或一个以上相关联的列出的任何以及所有可能的组合。另外,当用于本申请中时,术语“包括”(comprise)及其变型“包括”(comprises)和/或包括(comprising)等指陈述的特征、整体、步骤、操作、元素,和/或组件的存在,但不排除一个或一个以上其它特征、整体、步骤、操作、元素、组件和/或这些的分组的存在或添加。在没有更多限制的情况下,由语句“包括一个…”限定的要素,并不排除在包括所述要素的过程、方法或者设备中还存在另外的相同要素。本文中,每个实施例重点说明的可以是与其他实施例的不同之处,各个实施例之间相同相似部分可以互相参见。对于实施例公开的方法、产品等而言,如果其与实施例公开的方法部分相对应,那么相关之处可以参见方法部分的描述。
本领域技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,可以取决于技术方案的特定应用和设计约束条件。所述技术人员可以对每个特定的应用来使用不同方法以实现所描述的功能,但是这种实现不应认为超出本公开实施例的范围。所述技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本文所披露的实施例中,所揭露的方法、产品(包括但不限于装置、设备等),可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,可以仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例。另外,在本公开实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
附图中的流程图和框图显示了根据本公开实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。在附图中的流程图和框图所对应的描述中,不同的方框所对应的操作或步骤也可以以不同于描述中所披露的顺序发生,有时不同的操作或步骤之间不存在特定的顺序。例如,两个连续的操作或步骤实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
Claims (10)
1.一种用于校验报文数据的方法,其特征在于,用于Modbus通信网络中的发送端侧,所述方法包括:
获取待发送报文;所述待发送报文为Modbus TCP/IP协议报文,所述待发送报文包括待校验数据;
将所述待发送报文的协议标识符字段拆分为第一字节段和第二字节段;所述第一字节段用于表征协议标识符;
获取所述待校验数据对应的数据校验码;所述数据校验码的长度与所述第二字节段的长度相等;
将所述待发送报文中的第二字节段的字段值替换为所述数据校验码,获得待校验报文;
发送所述待校验报文至接收端。
2.根据权利要求1所述的方法,其特征在于,所述协议标识符字段承载有用于标识协议的第一预设数值,将所述待发送报文的协议标识符字段拆分为第一字节段和第二字节段,包括:
将所述第一预设数值的第一字节所对应的字节段确定为第一字节段,将所述第一预设数值的第二字节所对应的字节段确定为第二字节段。
3.根据权利要求1或2所述的方法,其特征在于,获取所述待校验数据对应的数据校验码,包括:
通过Hash算法获取所述待校验数据的散列值;
将所述待校验数据的散列值确定为数据校验码。
4.一种用于校验报文数据的方法,其特征在于,用于Modbus通信网络中的接收端侧,所述方法包括:
接收发送端发送的待校验报文;所述待校验报文通过将待发送报文中的第二字节段的字段值替换为数据校验码获得;所述待发送报文为Modbus TCP/IP协议报文,所述待发送报文包括待校验数据;所述待发送报文的协议标识符字段被拆分为第一字节段和第二字节段;所述第一字节段用于表征协议标识符;所述数据校验码根据所述待校验数据获取,所述数据校验码的长度与所述第二字节段的长度相等;
从所述待校验报文中提取所述数据校验码;
根据所述数据校验码校验所述待校验数据。
5.根据权利要求4所述的方法,其特征在于,所述协议标识符字段承载有用于标识协议的第一预设数值,将所述待发送报文的协议标识符字段拆分为第一字节段和第二字节段,包括:
将所述第一预设数值的第一字节所对应的字节段确定为第一字节段,将所述第一预设数值的第二字节所对应的字节段确定为第二字节段。
6.根据权利要求4所述的方法,其特征在于,从待校验报文中提取数据校验码后,包括:
将所述数据校验码替换为第二预设数值;所述第二预设数值的长度与所述数据校验码的长度相等。
7.根据权利要求4至6任意一项所述的方法,其特征在于,根据数据校验码校验待校验数据,包括:
通过Hash算法获取待校验数据的散列值;
在所述待校验数据的散列值与所述数据校验码相同的情况下,确定所述待校验数据没有数据错误;在所述待校验数据的散列值与所述数据校验码不相同的情况下,确定所述待校验数据有数据错误。
8.根据权利要求7所述的方法,其特征在于,所述接收端通过Modbus TCP/IP协议栈接收发送端发送的待校验报文,在所述待校验数据的散列值与所述数据校验码不相同的情况下,还包括:
生成校验失败事件;
将所述校验失败事件发送至所述Modbus TCP/IP协议栈,触发所述Modbus TCP/IP协议栈将所述校验失败事件对应的错误代码发送至所述发送端。
9.一种用于校验报文数据的装置,包括处理器和存储有程序指令的存储器,其特征在于,所述处理器被配置为在运行所述程序指令时,执行如权利要求1至8任一项所述的用于校验报文数据的方法。
10.一种设备,其特征在于,包括如权利要求9所述的用于校验报文数据的装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110402267.3A CN113242109B (zh) | 2021-04-14 | 2021-04-14 | 用于校验报文数据的方法、装置和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110402267.3A CN113242109B (zh) | 2021-04-14 | 2021-04-14 | 用于校验报文数据的方法、装置和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113242109A CN113242109A (zh) | 2021-08-10 |
CN113242109B true CN113242109B (zh) | 2022-05-27 |
Family
ID=77128295
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110402267.3A Active CN113242109B (zh) | 2021-04-14 | 2021-04-14 | 用于校验报文数据的方法、装置和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113242109B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113872963B (zh) * | 2021-09-26 | 2023-09-29 | 中水北方勘测设计研究有限责任公司 | 基于自由标签拼接技术的报文协议快速解析方法及系统 |
CN115378837A (zh) * | 2022-08-19 | 2022-11-22 | 山东云海国创云计算装备产业创新中心有限公司 | 基于bmc原型的验证方法、系统、计算机设备及存储介质 |
CN117692106B (zh) * | 2024-01-31 | 2024-05-03 | 北京中科网芯科技有限公司 | 一种通信数据冗余校验方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109639624A (zh) * | 2018-10-08 | 2019-04-16 | 上海大学 | 一种Modbus TCP协议模糊测试中畸形数据过滤方法 |
CN110099058A (zh) * | 2019-05-06 | 2019-08-06 | 江苏亨通工控安全研究院有限公司 | Modbus报文检测方法、装置、电子设备及存储介质 |
CN110289997A (zh) * | 2019-06-17 | 2019-09-27 | 杭州迪普科技股份有限公司 | 一种日志报文校验方法、装置及系统 |
CN110417764A (zh) * | 2019-07-19 | 2019-11-05 | 西门子工厂自动化工程有限公司 | 发送数据的方法和装置及接收数据的方法和装置 |
CN112087461A (zh) * | 2020-09-11 | 2020-12-15 | 工业互联网创新中心(上海)有限公司 | Modbus/tcp协议的数据在tsn网络中流转的系统、方法、装置及设备 |
-
2021
- 2021-04-14 CN CN202110402267.3A patent/CN113242109B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109639624A (zh) * | 2018-10-08 | 2019-04-16 | 上海大学 | 一种Modbus TCP协议模糊测试中畸形数据过滤方法 |
CN110099058A (zh) * | 2019-05-06 | 2019-08-06 | 江苏亨通工控安全研究院有限公司 | Modbus报文检测方法、装置、电子设备及存储介质 |
CN110289997A (zh) * | 2019-06-17 | 2019-09-27 | 杭州迪普科技股份有限公司 | 一种日志报文校验方法、装置及系统 |
CN110417764A (zh) * | 2019-07-19 | 2019-11-05 | 西门子工厂自动化工程有限公司 | 发送数据的方法和装置及接收数据的方法和装置 |
CN112087461A (zh) * | 2020-09-11 | 2020-12-15 | 工业互联网创新中心(上海)有限公司 | Modbus/tcp协议的数据在tsn网络中流转的系统、方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113242109A (zh) | 2021-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113242109B (zh) | 用于校验报文数据的方法、装置和设备 | |
US9521120B2 (en) | Method for securely transmitting control data from a secure network | |
CN111164923B (zh) | 用于单向传输数据的设计 | |
CN103971687B (zh) | 一种语音识别系统中的负载均衡实现方法和装置 | |
CN101902479A (zh) | 网络隔离系统及其数据传输方法 | |
CN110798480B (zh) | 安全仪表系统间的数据通讯方法及系统 | |
CN112839083B (zh) | 一种数据传输方法及装置、可读存储介质 | |
CN104348578B (zh) | 数据处理的方法及装置 | |
CN112887405B (zh) | 一种入侵防御方法、系统及相关设备 | |
CN101610268A (zh) | 一种关键字过滤的实现方法和设备 | |
CN111586041A (zh) | 工业单向隔离网闸系统和数据传输方法 | |
WO2013097812A1 (zh) | 一种下载字库文件的方法和系统 | |
CN111082896A (zh) | 一种数据传输方法及发送、接收装置 | |
KR20180042607A (ko) | 단방향 데이터 송신 장치, 단방향 데이터 수신 장치 및 단방향 데이터 전송 방법 | |
CN108460044B (zh) | 数据的处理方法和装置 | |
CN102325025A (zh) | 提供源真实性的数据处理方法及系统 | |
CN111414277A (zh) | 数据恢复方法、装置、电子设备和介质 | |
CN115208881B (zh) | 区块链的共识方法、设备及存储介质 | |
CN114553559B (zh) | 一种路由器中协议数据的修改方法、装置及可读存储介质 | |
CN100596350C (zh) | 工业控制数据的加密解密方法 | |
CN113259689A (zh) | 一种分布式视频存储方法、装置及电子设备 | |
CN114500253B (zh) | 一种日志信息存储方法及存储介质 | |
US20050251676A1 (en) | Method for offloading the digest portion of protocols | |
CN201805446U (zh) | 在线调整传输通道的网络隔离设备阵列系统 | |
CN115314292B (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 |