CN115242897B - 设备通信方法、装置、终端设备以及存储介质 - Google Patents
设备通信方法、装置、终端设备以及存储介质 Download PDFInfo
- Publication number
- CN115242897B CN115242897B CN202211161469.4A CN202211161469A CN115242897B CN 115242897 B CN115242897 B CN 115242897B CN 202211161469 A CN202211161469 A CN 202211161469A CN 115242897 B CN115242897 B CN 115242897B
- Authority
- CN
- China
- Prior art keywords
- opc
- data channel
- service port
- communication
- communication message
- 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
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/66—Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种设备通信方法、装置、终端设备以及存储介质,所述设备通信方法应用于应用层网关,所述应用层网关部署在工控系统内部,所述工控系统还包括开放式通信OPC客户端与OPC服务器,此方法步骤包括,检测所述工控系统中所述OPC客户端与所述OPC服务器之间传输的通信报文;对检测到的通信报文进行解析,获得所述OPC客户端与所述OPC服务器之间OPC数据通道动态协商方法;基于所述OPC数据通道动态协商方法,识别数据通道以及查找服务端口并定位所述服务端口在所述通信报文中的偏移地址。通过本发明解决了应用层网关进行数据通道识别以及定位报文内的服务端口困难的技术问题。
Description
技术领域
本发明涉及工业设备通信领域,尤其涉及一种设备通信方法、装置、终端设备以及存储介质。
背景技术
随着互联网的快速发展,工业领域也逐渐并入互联网的快车道。如今的工控系统多采用OPC(开放式通信)技术,如果要实现OPC客户端访问OPC服务器,这需要两者的通讯链路之间设置支持NAT(网络地址转换)功能的防火墙或路由器。但随之而来的就是设备通信问题。在工业场景下基于互联网的通信所面临的主要问题是设备之间所使用的服务端口重叠。服务端口作为一种通信规定,对于在同一网络内的不同设备来说,如果发生服务端口重叠现象,则无法进行通信。为了解决这个难题,引入ALG(Application Level Gateway,应用层网关)技术与NAT技术配合使用,成功地解决了内部网络和外部网络应用层通信面临的困扰。但是,OPC DA(OPC Data Access,OPC数据访问)协议是多通道协议,其数据通道是经过动态协商出来的,无法预知数据通道的服务端口。给应用层网关进行数据通道识别以及定位报文内的服务端口带来困难。
现有的技术通常采用OPC隧道技术来解决OPC客户端和OPC服务器之间部署NAT防火墙或路由器所产生的通信问题,但是如果之前未采用此技术,这需要在OPC客户端和OPC服务器都部署隧道软件程序,且需要重新配置相关信息。同时位于中间的防火墙或路由器无法针对OPC客户端和OPC服务器之间的通信进行安全威胁检测。因此,现有技术的应用具有一定的局限性。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种设备通信方法、装置、终端设备以及存储介质,旨在解决应用层网关进行数据通道识别以及定位报文内的服务端口困难的技术问题。
为实现上述目的,本发明提供一种设备通信方法,所述设备通信方法应用于应用层网关,所述应用层网关部署在工控系统内部,所述工控系统包括开放式通信OPC客户端与OPC服务器,所述设备通信方法包括:
检测所述工控系统中所述OPC客户端与所述OPC服务器之间传输的通信报文;
对检测到的通信报文进行解析,获得所述OPC客户端与所述OPC服务器之间OPC数据通道动态协商方法;
基于所述OPC数据通道动态协商方法,识别数据通道以及查找服务端口并定位所述服务端口在所述通信报文中的偏移地址。
可选地,所述对检测到的通信报文进行解析,获得所述OPC客户端与所述OPC服务器之间OPC数据通道动态协商方法的步骤包括:
解析所述通信报文,获得所述通信报文的应用层载荷;
在所述通信报文的应用层载荷中识别OPC数据通道动态协商方法。
可选地,所述基于所述OPC数据通道动态协商方法,识别数据通道以及查找服务端口并定位所述服务端口在所述通信报文中的偏移地址的步骤包括:
基于所述OPC数据通道动态协商方法,识别所述应用层载荷中对应的数据通道;
基于所述OPC数据通道动态协商方法与所述对应的数据通道,通过关键字搜索技术在所述通信报文中查找服务端口并定位服务端口在所述通信报文中的偏移地址。
可选地,所述解析所述通信报文,获得所述通信报文的应用层载荷之前还包括:
使用所述NAT模块对所述通信报文的网络层和传输层进行服务端口的识别与转换。
可选地,所述基于所述OPC数据通道动态协商方法,识别数据通道以及查找服务端口并定位所述服务端口在所述通信报文中的偏移地址的步骤之后还包括:
将所述服务端口转换成对应的外部网络服务端口。
可选地,所述将所述服务端口转换成对应的外部网络服务端口的步骤之后还包括:
侦听每个数据通道所使用的外部网络服务端口;
打开安全策略允许所述外部网络服务端口中的数据穿越所述NAT模块;
在穿越结束时关闭所述安全策略。
可选地,所述在穿越结束时关闭所述安全策略的步骤之后还包括:
查找基于接口连接的所述NAT模块的配置信息;
基于所述NAT配置信息,建立关联表;所述关联表记录了所述服务端口转换成对应的外部网络服务端口的信息。
此外,为实现上述目的,本发明还提供一种设备通信装置,所述设备通信装置包括:
检测模块,用于检测工控系统中OPC客户端与OPC服务器之间传输的通信报文;
解析模块,用于对检测到的通信报文进行解析,获得所述OPC客户端与所述OPC服务器之间OPC数据通道动态协商方法;
识别定位模块,用于基于所述OPC数据通道动态协商方法,识别数据通道以及查找服务端口并定位所述服务端口在所述通信报文中的偏移地址。
此外,为实现上述目的,本发明还提供一种终端设备,所述终端设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的设备通信程序,所述设备通信程序被所述处理器执行时实现如上所述的设备通信方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有设备通信程序,所述设备通信程序被处理器执行时实现如上所述的设备通信方法的步骤。
本发明实施例提出的一种设备通信方法、装置、终端设备以及存储介质,通过检测所述工控系统中所述OPC客户端与所述OPC服务器之间传输的通信报文;对检测到的通信报文进行解析,获得所述OPC客户端与所述OPC服务器之间OPC数据通道动态协商方法;基于所述OPC数据通道动态协商方法,识别数据通道以及查找服务端口并定位所述服务端口在所述通信报文中的偏移地址。通过对检测到的通信报文进行分析,获得应用层载荷,可解决NAT对应用层载荷无感知的问题,为后续的识别和转换提供支撑。再针对应用层载荷识别OPC数据通道动态协商方法,并基于所述OPC数据通道动态协商方法,识别数据通道以及查找服务端口并定位所述服务端口在所述通信报文中的偏移地址,ALG(应用层网关)统一对各应用层协议报文进行解析处理,避免其它模块对同一类报文应用层协议的重复解析,可以有效提高报文转发效率,解决应用层的数据通道识别以及载荷里面的服务端口位置的定位困难问题,使得OPC DA通信可以穿越具有NAT功能的防火墙或路由器,为工业场景下的设备提供通信依据。
附图说明
图1为本发明设备通信装置所属终端设备的功能模块示意图;
图2为本发明设备通信方法一示例性实施例的流程示意图;
图3为本发明设备通信装置中OPC客户/服务器模式示意图;
图4为本发明设备通信方法中工控系统架构图;
图5为本发明设备通信方法另一示例性实施例的流程示意图;
图6为本发明设备通信方法中OPC客户端与OPC服务器通信的控制通道和其中一个数据通道的协商过程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的主要解决方案是:通过检测所述工控系统中所述OPC客户端与所述OPC服务器之间传输的通信报文;对检测到的通信报文进行解析,获得所述OPC客户端与所述OPC服务器之间OPC数据通道动态协商方法;基于所述OPC数据通道动态协商方法,识别数据通道以及查找服务端口并定位所述服务端口在所述通信报文中的偏移地址。通过对检测到的通信报文进行分析,获得应用层载荷,可解决NAT对应用层载荷无感知的问题,为后续的识别和转换提供支撑。再针对应用层载荷识别OPC数据通道动态协商方法,并基于所述OPC数据通道动态协商方法,通过关键字搜索技术在所述通信报文中识别数据通道以及查找服务端口并定位所述服务端口在所述通信报文中的偏移地址,ALG统一对各应用层协议报文进行解析处理,避免其它模块对同一类报文应用层协议的重复解析,可以有效提高报文转发效率,解决应用层的数据通道识别以及载荷里面的服务端口位置的定位困难问题,使得OPC DA通信可以穿越具有NAT功能的防火墙或路由器。为工业场景下的设备提供通信依据。
本发明实施例涉及的技术术语:
OPC:OPC是一种开放式通信技术,OPC技术为工控软件制定了一套标准的对象、接口和属性,只要遵守OPC规范,就可实现不同系统间的数据交换。OPC技术由两部分组成:OPC服务器和OPC客户端。OPC服务器通过与现场设备相对应的驱动服务来读取硬件数据信息,通过标准的OPC接口传送给OPC客户端。OPC服务器可实施读取现场数据,保存至数据库中。通过OPC服务器访问应用数据,可以克服异构网络结构和接口协议之间的差异,上层应用程序无需关心底层的硬件特性以及OPC服务器与硬件通信细节,即可得到生产过程数据。
OPC DA服务器:在OPC规范中,按照功能的不同,规定了以下几种OPC服务器: OPC数据访问服务器、OPC报警和时间服务器、OPC历史数据访问服务器、OPC批量服务器
其最基本的服务器为OPC数据访问(Data Access,以下简称DA)服务器。OPC DA服务器采用一种层次结构来组织数据源,共有3类COM对象,分别为OPCServer(服务器)对象、OPCGroup(组)对象和OPCItem(项)对象。对于OPC DA服务器的基本结构,前两者必须实现。
NAT:NAT(Network Address Translator,网络地址转换)是用于在本地网络中使用私有地址,在连接互联网时转而使用全局 IP 地址的技术。NAT实际上是为解决IPv4地址短缺而开发的技术。
ALG:(Application Layer Gateway,应用层网关)是一种NAT穿透技术。就应用层面来说,它允许修改匣道上的NAT traversal的过滤规则,完成特定网络传输协议上的地址和端口的转换。在实体上,是一种安全软件或设备,代表网络上的应用服务器运行,保护服务器和应用免受可能恶意的流量的影响。是用于管理SIP(会话发起协议)和FTP(文件传输协议)等特殊应用协议的软件组件。ALG 充当 Internet 和应用服务器之间的中介,可以处理相应的协议,并充当端点,控制对应用服务器的访问权限。为此,拦截和分析相应的网络流量,分配资源并定义允许通过网关访问的动态规则。
随着工业互联网的发展,工控系统连接互联网成为必然趋势,在如今的工控系统中,OPC技术为工控软件制定了一套标准的对象、接口和属性,只要遵守OPC规范,就可实现不同系统间的数据交换。
OPC技术由两部分组成:OPC服务器和OPC客户端,其中最基本的服务器为OPC DA服务器。OPC服务器通常位于工控系统的3层,OPC客户端一般位于工控系统的4层。工控系统3层在横向上可以被划分为不同的区域,这些区域的网络地址空间通常是重叠的,比如都是192.x.x.x网段。如果OPC客户端要访问OPC服务器,则需要在OPC客户端和OPC服务器之间设置支持NAT功能的防火墙或路由器。
但是,NAT仅对通信中发送的报文的网络层和传输层进行IP地址和端口号的识别与转换,而对于该报文的应用层载荷携带的地址和端口信息是无感知的,也就无法进行识别和转换。
为了解决这个难题,引入基于应用层协议的ALG技术,可在将ALG技术与NAT技术配合使用时发现,OPC DA协议是多通道协议,多通道协议还有FTP、TFTP 、H.323、SIP、RTSP、DNS,OPC DA与这些多通道协议不同之处在于前者都是双通道协议,也就是一个控制通道和一个数据通道,ALG只是需要识别和转换一个数据通道的连接服务端口即可,但OPC DA是一个控制通道和多个数据通道。
而且每个数据通道的服务端口都是动态协商出来的,更糟糕的是触发每个数据通道协商的方法都不一样,给ALG做数据通道识别以及定位载荷里面的服务端口位置都带来了困难。因此,如何识别数据通道以及定位服务端口位置是非常有必要的。
现有的技术通常采用OPC隧道技术来解决OPC客户端和OPC服务器之间部署NAT防火墙或路由器所产生的通信问题,比如Matrikon OPC Tunneller、Kepware LinkMaster等,但是如果之前未采用此技术,这需要在OPC客户端和OPC服务器都部署隧道软件程序,且需要重新配置相关信息。同时这种技术使得位于中间的防火墙或路由器无法针对OPC客户端和OPC服务器之间的通信进行安全威胁检测。
本发明提供一种解决方案,通过检测所述工控系统中所述OPC客户端与所述OPC服务器之间传输的通信报文,再对检测到的通信报文进行解析,获得所述OPC客户端与所述OPC服务器之间OPC数据通道动态协商方法。其次,基于所述OPC数据通道动态协商方法,从而通过关键字搜索技术在所述通信报文中识别数据通道以及查找服务端口并定位所述服务端口在所述通信报文中的偏移地址。使得OPC客户端可在保证数据安全的情况下,克服异构网络结构和接口协议之间的差异,上层应用程序无需关心底层的硬件特性以及OPC服务器与硬件通信细节,即可得到生产过程数据。
参照图1,图1为本发明设备通信装置所属终端设备的功能模块示意图。该设备通信装置可以为独立于终端设备的、能够进行设备通信的装置,其可以通过硬件或软件的形式承载于终端设备上。该终端设备可以为手机、平板电脑等具有数据处理功能的智能移动终端,还可以为具有数据处理功能的固定终端设备或服务器等。
在本实施例中,该设备通信装置所属终端设备至少包括输出模块110、处理器120、存储器130以及通信模块140。
存储器130中存储有操作系统以及设备通信程序,设备通信装置可以检测OPC客户端与所述OPC服务器之间传输的通信报文,对检测到的通信报文进行解析,获得所述OPC客户端与所述OPC服务器之间OPC数据通道动态协商方法,通过所述OPC数据通道动态协商方法,所识别的数据通道以及查找到的服务端口和所述服务端口在所述通信报文中的偏移地址等信息存储于该存储器130中;输出模块110可为显示屏等。通信模块140可以包括WIFI模块、移动通信模块以及蓝牙模块等,通过通信模块140与外部设备或服务器进行通信。
其中,存储器130中的设备通信程序被处理器执行时实现以下步骤:
检测所述工控系统中所述OPC客户端与所述OPC服务器之间传输的通信报文;
对检测到的通信报文进行解析,获得所述OPC客户端与所述OPC服务器之间OPC数据通道动态协商方法;
基于所述OPC数据通道动态协商方法,识别数据通道以及查找服务端口并定位所述服务端口在所述通信报文中的偏移地址。
进一步地,存储器130中的设备通信程序被处理器执行时还实现以下步骤:
解析所述通信报文,获得所述通信报文的应用层载荷;
在所述通信报文的应用层载荷中识别OPC数据通道动态协商方法。
进一步地,存储器130中的设备通信程序被处理器执行时还实现以下步骤:
基于所述OPC数据通道动态协商方法,识别所述应用层载荷中对应的数据通道;
基于所述OPC数据通道动态协商方法与所述对应的数据通道,通过关键字搜索技术在所述通信报文中查找服务端口并定位服务端口在所述通信报文中的偏移地址。
进一步地,存储器130中的设备通信程序被处理器执行时还实现以下步骤:
使用所述NAT模块对所述通信报文的网络层和传输层进行服务端口的识别与转换。
进一步地,存储器130中的设备通信程序被处理器执行时还实现以下步骤:
将所述服务端口转换成对应的外部网络服务端口。
进一步地,存储器130中的设备通信程序被处理器执行时还实现以下步骤:
侦听每个数据通道所使用的外部网络服务端口;
打开安全策略允许所述外部网络服务端口中的数据穿越所述NAT模块;
在穿越结束时关闭所述安全策略。
进一步地,存储器130中的设备通信程序被处理器执行时还实现以下步骤:
查找基于接口连接的所述NAT模块的配置信息;
基于所述配置信息,建立关联表,所述关联表记录所述服务端口转换成对应的外部网络服务端口的信息。
本实施例通过上述方案,具体通过检测所述工控系统中所述OPC客户端与所述OPC服务器之间传输的通信报文;对检测到的通信报文进行解析,获得所述OPC客户端与所述OPC服务器之间OPC数据通道动态协商方法;基于所述OPC数据通道动态协商方法,识别数据通道以及查找服务端口并定位所述服务端口在所述通信报文中的偏移地址。
通过对检测到的通信报文进行分析,获得应用层载荷,可解决NAT对应用层载荷无感知的问题,为后续的识别和转换提供支撑。再针对应用层载荷识别OPC数据通道动态协商方法,并基于所述OPC数据通道动态协商方法,通过关键字搜索技术在所述通信报文中识别数据通道以及查找服务端口并定位所述服务端口在所述通信报文中的偏移地址,无需使用第三方程序,就能解决应用层的数据通道识别以及载荷里面的服务端口位置的定位困难问题,为工业场景下的设备提供通信依据。
基于上述终端设备架构但不限于上述架构,提出本申请方法实施例。
本实施例方法的执行主体可以为一种设备通信装置或终端设备等,本实施例以设备通信装置进行举例。
参照图2,图2为本发明设备通信方法一示例性实施例的流程示意图。所述设备通信方法包括:
步骤S10,检测所述工控系统中所述OPC客户端与所述OPC服务器之间传输的通信报文;
参照图3 ,图3为本发明设备通信装置中OPC客户/服务器模式示意图,OPC技术为工控软件制定了一套标准的对象、接口和属性,只要遵守OPC规范,就可实现不同系统间的数据交换。OPC技术由两部分组成:OPC服务器和OPC客户端。OPC服务器通过与现场设备相对应的驱动服务来读取硬件数据信息,通过标准的OPC接口传送给OPC客户端。OPC服务器可实施读取现场数据,保存至数据库中。通过OPC服务器访问应用数据,可以克服异构网络结构和接口协议之间的差异,上层应用程序无需关心底层的硬件特性以及OPC服务器与硬件通信细节,即可得到生产过程数据。
目前基于工控系统的OPC客户端与OPC服务器进行数据传输的主要问题是服务端口的重叠。服务端口作为一种通信规定,对于在同一网络内的不同设备来说,如果发生服务端口重叠现象,则无法进行通信。
参照图4,图4为本发明设备通信方法中工控系统架构图;私网一侧的OPC客户端要访问公网的OPC服务器。NAT设备上配置了私网地址到公网地址的映射,实现地址的NAT转换,以支持私网主机对公网的访问。组网中,若没有ALG对报文载荷的处理,私网主机发送的通信报文到达服务器端后,服务器无法根据私网地址进行寻址,也就无法建立正确的数据连接。
要对报文载荷进行处理则要先获取通信报文。故可以通过OPC客户端与OPC服务器在进行控制连接时,通过网络探针、检测传感器等附加设备检测连接时的通信报文。
S20,对检测到的通信报文进行解析,获得所述OPC客户端与所述OPC服务器之间OPC数据通道动态协商方法;
通信报文在经过支持ALG特性的NAT设备时,报文载荷中的私网地址和端口会被转换成对应的公网地址和端口。这种转换是基于OPC数据通道动态协商方法所得到的,但OPC客户端和OPC服务器之间的数据通道协商有多个方法,如:IOPCSererList、IConnectionPointContainer、IOPCGroupStateMgt等等,因此ALG,首先要在OPC DA通信报文中解析和穷举所有的方法。
步骤S30,基于所述OPC数据通道动态协商方法,识别数据通道以及查找服务端口并定位所述服务端口在所述通信报文中的偏移地址。
在获得OPC数据通道动态协商方法之后,由于其数据通道是经过动态协商出来的,同时每个数据通道的服务端口也是基于方法动态协商出来的,并且每个方法动态协商出来的服务端口在报文中的位置也不一样,因此要基于所述方法识别方法所对应的数据通道和查找服务端口以及定位所述服务端口在所述通信报文中的偏移地址。
在本实施例中,通过检测所述工控系统中所述OPC客户端与所述OPC服务器之间传输的通信报文;对检测到的通信报文进行解析,获得所述OPC客户端与所述OPC服务器之间OPC数据通道动态协商方法;基于所述OPC数据通道动态协商方法,识别数据通道以及查找服务端口并定位所述服务端口在所述通信报文中的偏移地址。通过对检测到的通信报文进行分析,获得应用层载荷,可解决NAT对应用层载荷无感知的问题,为后续的识别和转换提供支撑。再针对应用层载荷识别OPC数据通道动态协商方法,并基于所述OPC数据通道动态协商方法,通过关键字搜索技术在所述通信报文中识别数据通道以及查找服务端口并定位所述服务端口在所述通信报文中的偏移地址,ALG统一对各应用层协议报文进行解析处理,避免其它模块对同一类报文应用层协议的重复解析,可以有效提高报文转发效率,解决应用层的数据通道识别以及载荷里面的服务端口位置的定位困难问题,使得OPC DA通信可以穿越具有NAT功能的防火墙或路由器。为工业场景下的设备提供通信依据。
进一步的,参照图5,图5为本发明设备通信方法另一示例性实施例的流程示意图。基于上述图2所示的实施例,在本实施例中,在上述步骤S30,基于所述OPC数据通道动态协商方法,识别数据通道以及查找服务端口并定位所述服务端口在所述通信报文中的偏移地址之后,所述设备通信方法还包括:
步骤S40:将所述服务端口转换成对应的外部网络服务端口;
通信报文在经过支持ALG特性的NAT设备时,报文载荷中的私网地址和端口会被转换成对应的公网地址和端口。即设备将收到的通信报文载荷中的私网地址192.168.1.2转换成公网地址8.8.8.11,端口1084转换成12487。
步骤S50:侦听每个数据通道所使用的外部网络服务端口;
ALG应用层根据OPC DA协议过程中会话标识的协议类型对传输的报文进行侦听,若侦听发现通信报文中数据通道所使用的外部网络服务端口为错误字段时则退出,若为正确字段则进行下一步。
步骤S60:打开安全策略允许所述外部网络服务端口中的数据穿越所述NAT模块;
ALG在侦听发现通信报文中数据通道所使用的外部网络服务端口为正确字段时,基于端口的位置在NAT防火墙中打开安全策略,使得所述外部网络服务端口能进行后续的数据传输。
步骤S70:在穿越结束时关闭所述安全策略;
在数据穿越后,关闭安全策略,从而实现对动态端口协议OPC DA的有效访问控制同时在中间的NAT防火墙可以针对OPC客户端和服务器之间的通信进行安全威胁检测。
步骤S80:查找基于接口连接的所述NAT模块的配置信息;
在通信报文穿越NAT模块之后,在NAT模块中查找相关配置信息。其中,应用层网关是通过接口与NAT模块进行数据交互的。
步骤S90:基于所述配置信息,建立关联表;
在查找到相关配置信息后,基于所述NAT配置信息,建立关联表,关联表记录了所述服务端口转换成对应的外部网络服务端口的信息。,方便后续对于传输过程的复核以及查询。
在本实施例中,在通过关键字搜索技术在所述通信报文中获得数据通道的识别信息以及查找到的服务端口和所述服务端口在所述通信报文中的偏移地址后,还通过将所述服务端口转换成对应的外部网络服务端口,通过侦听每个数据通道所使用的外部网络服务端口,判断是否有错误字段,为通信报文的传输提供安全依据。打开安全策略允许所述外部网络服务端口中的数据穿越所述NAT模块,在穿越结束时关闭所述安全策略。实现了对服务器进行安全保护的效果,通过查找基于接口连接的所述NAT模块的配置信息,再基于所述配置信息,建立关联表,关联表记录了所述服务端口转换成对应的外部网络服务端口的信息,记录下工控系统的传输过程,以便于后续对于传输过程的复核以及查询。为工业场景下的设备安全通信提供依据。
此外,本发明实施例还提出一种设备通信装置,所述设备通信装置包括:
检测模块,用于检测所述工控系统中所述OPC客户端与所述OPC服务器之间传输的通信报文;
解析模块,用于对检测到的通信报文进行解析,获得所述OPC客户端与所述OPC服务器之间OPC数据通道动态协商方法;
识别定位模块,用于基于所述OPC数据通道动态协商方法,识别数据通道以及查找服务端口并定位所述服务端口在所述通信报文中的偏移地址。
具体的,客户端向服务器发送控制连接请求。控制连接建立成功后,服务器和客户端进入用户认证阶段。若控制连接失败,服务器会断开与客户端的连接。客户端向服务器发送认证请求,通信报文中包含FTP命令(USER、PASSWORD)及命令所对应的内容。客户端发送的认证请求报文在通过配置了ALG的设备时,报文载荷中携带的协商方法将会被解析出来,用于进行识别数据通道以及定位对应的数据通道的服务端口。客户端的通信报文通过ALG处理之后,到达服务器端,服务器将对其进行响应。认证状态正确且用户是服务器已经授权的客户端,才能和服务器建立数据连接,进行数据的交互。
参照图6,图6为本发明设备通信方法中OPC客户端与OPC服务器通信的控制通道和其中一个数据通道的协商过程示意图,OPC客户端使用8765作为源端口首先向OPC服务器的135端口发起连接,连接成功后再经过OPC服务器分配新端口10086,并通过接口ISystemActivator的方法RemoteCreateInstance的响应报文返回给客户端,之后客户端使用8766作为源端口向服务器的10086端口发起新的连接用来后面真正数据的传输。
在本实施例中,通过检测所述工控系统中所述OPC客户端与所述OPC服务器之间传输的通信报文;对检测到的通信报文进行解析,获得所述OPC客户端与所述OPC服务器之间OPC数据通道动态协商方法;基于所述OPC数据通道协商方法,识别数据通道以及查找服务端口并定位所述服务端口在所述通信报文中的偏移地址。通过对检测到的通信报文进行分析,获得应用层载荷,可解决NAT对应用层载荷无感知的问题,为后续的识别和转换提供支撑。再针对应用层载荷识别OPC数据通道动态协商方法,并基于所述识别OPC数据通道动态协商方法,通过关键字搜索技术在所述通信报文中识别数据通道以及查找服务端口并定位所述服务端口在所述通信报文中的偏移地址,无需使用第三方程序,就能解决应用层的数据通道识别以及载荷里面的服务端口位置的定位困难问题,为工业场景下的设备提供通信依据。
此外,本发明还提供一种终端设备,所述终端设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的设备通信程序,所述设备通信程序被所述处理器执行时实现如上所述的设备通信方法的步骤。
由于本设备通信程序被处理器执行时,采用了前述所有实施例的全部技术方案,因此至少具有前述所有实施例的全部技术方案所带来的所有有益效果,在此不再一一赘述。
此外,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有设备通信程序,所述设备通信程序被处理器执行时实现如上所述的设备通信方法的步骤。
由于本设备通信程序被处理器执行时,采用了前述所有实施例的全部技术方案,因此至少具有前述所有实施例的全部技术方案所带来的所有有益效果,在此不再一一赘述。
相比现有技术,本发明实施例提出的一种设备通信方法、装置、终端设备以及存储介质,通过检测所述工控系统中所述OPC客户端与所述OPC服务器之间传输的通信报文;对检测到的通信报文进行解析,获得所述OPC客户端与所述OPC服务器之间OPC数据通道动态协商方法;基于所述OPC数据通道动态协商方法,识别数据通道以及查找服务端口并定位所述服务端口在所述通信报文中的偏移地址。通过对检测到的通信报文进行分析,获得应用层载荷,可解决NAT对应用层载荷无感知的问题,为后续的识别和转换提供支撑。再针对应用层载荷识别OPC数据通道动态协商方法,并基于所述OPC数据通道动态协商方法,通过关键字搜索技术在所述通信报文中识别数据通道以及查找服务端口并定位所述服务端口在所述通信报文中的偏移地址,ALG统一对各应用层协议报文进行解析处理,避免其它模块对同一类报文应用层协议的重复解析,可以有效提高报文转发效率,解决应用层的数据通道识别以及载荷里面的服务端口位置的定位困难问题,使得OPC DA通信可以穿越具有NAT功能的防火墙或路由器。为工业场景下的设备提供通信依据。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,被控终端,或者网络设备等)执行本申请每个实施例的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种设备通信方法,其特征在于,所述设备通信方法应用于应用层网关,所述应用层网关部署在工控系统内部,所述工控系统包括开放式通信OPC客户端与OPC服务器,所述方法包括以下步骤:
检测所述工控系统中所述OPC客户端与所述OPC服务器之间传输的通信报文;
对检测到的通信报文进行解析,获得所述OPC客户端与所述OPC服务器之间OPC数据通道动态协商方法;
基于所述OPC数据通道动态协商方法,识别数据通道以及查找服务端口并定位所述服务端口在所述通信报文中的偏移地址,其中,所述服务端口基于所述OPC数据通道动态协商方法动态协商得出。
2.如权利要求1所述的设备通信方法,其特征在于,所述对检测到的通信报文进行解析,获得所述OPC客户端与所述OPC服务器之间OPC数据通道动态协商方法的步骤包括:
解析所述通信报文,获得所述通信报文的应用层载荷;
在所述通信报文的应用层载荷中识别OPC数据通道动态协商方法。
3.如权利要求2所述的设备通信方法,其特征在于,所述基于所述OPC数据通道动态协商方法,识别数据通道以及查找服务端口并定位所述服务端口在所述通信报文中的偏移地址的步骤包括:
基于所述OPC数据通道动态协商方法,识别所述应用层载荷中对应的数据通道;
基于所述OPC数据通道动态协商方法与所述对应的数据通道,通过关键字搜索技术在所述通信报文中查找服务端口并定位服务端口在所述通信报文中的偏移地址。
4.如权利要求2所述的设备通信方法,其特征在于,所述工控系统还包括网络地址转换NAT模块,所述解析所述通信报文,获得所述通信报文的应用层载荷之前还包括:
使用所述NAT模块对所述通信报文的网络层和传输层进行服务端口的识别与转换。
5.如权利要求4所述的设备通信方法,其特征在于,所述基于所述OPC数据通道动态协商方法,识别数据通道以及查找服务端口并定位所述服务端口在所述通信报文中的偏移地址的步骤之后还包括:
将所述服务端口转换成对应的外部网络服务端口。
6.如权利要求5所述的设备通信方法,其特征在于,所述将所述服务端口转换成对应的外部网络服务端口的步骤之后还包括:
侦听每个数据通道所使用的外部网络服务端口;
打开安全策略允许所述外部网络服务端口中的数据穿越所述NAT模块;
在穿越结束时关闭所述安全策略。
7.如权利要求6所述的设备通信方法,其特征在于,所述在穿越结束时关闭所述安全策略的步骤之后还包括:
查找基于接口连接的所述NAT模块的配置信息;
基于所述配置信息,建立关联表,所述关联表记录所述服务端口转换成对应的外部网络服务端口的信息。
8.一种设备通信装置,其特征在于,所述设备通信装置包括:
检测模块,用于检测工控系统中开放式通信OPC客户端与OPC服务器之间传输的通信报文;
解析模块,用于对检测到的通信报文进行解析,获得所述OPC客户端与所述OPC服务器之间OPC数据通道动态协商方法;
识别定位模块,用于基于所述OPC数据通道动态协商方法,识别数据通道以及查找服务端口并定位所述服务端口在所述通信报文中的偏移地址,其中,所述服务端口基于所述OPC数据通道动态协商方法动态协商得出。
9.一种终端设备,其特征在于,所述终端设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的设备通信程序,所述设备通信程序被所述处理器执行时实现如权利要求1-7中任一项所述的设备通信方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有设备通信程序,所述设备通信程序被处理器执行时实现如权利要求1-7中任一项所述的设备通信方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211161469.4A CN115242897B (zh) | 2022-09-23 | 2022-09-23 | 设备通信方法、装置、终端设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211161469.4A CN115242897B (zh) | 2022-09-23 | 2022-09-23 | 设备通信方法、装置、终端设备以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115242897A CN115242897A (zh) | 2022-10-25 |
CN115242897B true CN115242897B (zh) | 2023-01-06 |
Family
ID=83667095
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211161469.4A Active CN115242897B (zh) | 2022-09-23 | 2022-09-23 | 设备通信方法、装置、终端设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115242897B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113179194A (zh) * | 2021-04-28 | 2021-07-27 | 杭州迪普科技股份有限公司 | Opc协议网关的测试系统及方法 |
CN113542450A (zh) * | 2021-07-21 | 2021-10-22 | 北京威努特技术有限公司 | 一种工控防火墙支持ftp穿越nat的实现方法及系统 |
CN114390020A (zh) * | 2021-12-28 | 2022-04-22 | 鞍钢集团自动化有限公司 | 一种在地址转换nat场景下opc协议alg实现方法 |
CN114422239A (zh) * | 2022-01-18 | 2022-04-29 | 英赛克科技(北京)有限公司 | 一种基于动态端口技术的通信方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106411820B (zh) * | 2015-07-29 | 2019-05-21 | 中国科学院沈阳自动化研究所 | 一种基于sdn架构的工业通信流传输安全控制方法 |
-
2022
- 2022-09-23 CN CN202211161469.4A patent/CN115242897B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113179194A (zh) * | 2021-04-28 | 2021-07-27 | 杭州迪普科技股份有限公司 | Opc协议网关的测试系统及方法 |
CN113542450A (zh) * | 2021-07-21 | 2021-10-22 | 北京威努特技术有限公司 | 一种工控防火墙支持ftp穿越nat的实现方法及系统 |
CN114390020A (zh) * | 2021-12-28 | 2022-04-22 | 鞍钢集团自动化有限公司 | 一种在地址转换nat场景下opc协议alg实现方法 |
CN114422239A (zh) * | 2022-01-18 | 2022-04-29 | 英赛克科技(北京)有限公司 | 一种基于动态端口技术的通信方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN115242897A (zh) | 2022-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210377126A1 (en) | Virtual network verification service | |
KR100416541B1 (ko) | 홈게이트웨이와 홈포탈서버를 이용한 홈네트워크 접근방법 및 그 장치 | |
TWI475863B (zh) | 使用快取之安全資源名稱解析 | |
TWI478564B (zh) | 用於安全資源名稱解析的方法、電腦可讀取儲存媒體及設備 | |
US11510060B2 (en) | Method and a device for detecting wireless network security | |
CN112398782A (zh) | 网络资产的识别方法、装置、介质及设备 | |
CN106878135B (zh) | 一种连接方法及装置 | |
CN101175036B (zh) | 基于内网节点转发技术的防火墙/子网的穿透方法 | |
US11283816B2 (en) | Hierarchical scanning of internet connected assets | |
CN101582925B (zh) | 一种网络地址转换的方法及系统 | |
US20210212163A1 (en) | Relay apparatus, communication system, relay method, and non-transitory computer readable medium storing relay program | |
US8635440B2 (en) | Proxy with layer 3 security | |
CN114465791B (zh) | 网管设备中白名单的建立方法、装置、存储介质及处理器 | |
CN105764056B (zh) | 一种用于公共wifi接入的web认证系统及方法 | |
US9172675B2 (en) | Methods and apparatus for network communication | |
CN115242897B (zh) | 设备通信方法、装置、终端设备以及存储介质 | |
KR200382792Y1 (ko) | 외부에서 네트워크내의 클라이언트 컴퓨터의 로컬 아이피를검출 및 구분하는 시스템 | |
US10033690B2 (en) | Communication method, wireless access point, wireless controller and communication system | |
US11844129B2 (en) | Access to a home network within a multi-connectivity framework | |
CN112887211B (zh) | 一种网际协议报文数据转发系统 | |
US20090245131A1 (en) | Remotely controlled gateway management with security | |
US20160308893A1 (en) | Interrogating malware | |
KR100717287B1 (ko) | 외부에서 네트워크내의 클라이언트 컴퓨터의 로컬 아이피를 검출하여 구분하는 시스템 | |
JP2008079059A (ja) | IPsecの複数セッションを処理する通信装置及びその処理方法 | |
WO2018161684A1 (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 |