DLMS/COSEM协议 — Gateway protocol
- 10.10 Gateway protocol (网关协议)
- 10.10.1 概述
- 10.10.2 网关协议 (The gateway protocol)
- 10.10.3 HES在WAN/NN中作为发起者(拉取操作)
- 10.10.4 LAN中的终端设备作为发起者(推送操作)
- 10.10.4.1 General(一般情况)
- 10.10.4.2 End device with WAN/NN knowledge(了解WAN/NN的终端设备)
- 10.10.4.3 End devices without WAN/NN knowledge(不了解WAN/NN的终端设备)
- 10.10.5 安全性
10.10 Gateway protocol (网关协议)
10.10节描述了DLMS/COSEM(数据语言管理规范/公用服务元素模型)的网关协议,这是一种在不同网络之间传输数据的方法,特别是当网关连接到广域网(WAN)或邻近网(NN)的一侧,而另一侧连接到局域网(LAN),并且DLMS服务器连接到这个局域网时。
以下是对10.10节内容的详细翻译和解释:
10.10.1 概述
-
网关协议的作用:本小节规定了一种方法,用于在通过网关连接的DLMS客户端和服务器之间交换数据。这种网关可以连接到广域网(WAN)或邻近网(NN)的一侧,以及连接到局域网(LAN)的另一侧,并且有DLMS服务器连接到这个LAN。
-
双向通信:网关是双向的,也就是说,LAN中的服务器也能够通过网关向WAN/NN中的客户端发送消息(推送应用)。
-
网关的实现:网关功能可以集成在DLMS/COSEM设备中,也可以是独立的设备。
-
DLMS/COSEM规范的通信模型:DLMS/COSEM规范的设备数据交换基于客户端/服务器模型,其中头端系统(HES)作为客户端请求服务,而终端设备(例如电表)作为服务器提供服务。在许多情况下,客户端可以直接使用单播、多播或广播消息到达每个设备。
-
网关的使用场景:然而,在某些情况下,将多个终端设备连接到LAN并通过网关访问这些设备是实际的。LAN上使用的协议栈可能与WAN/NN上使用的相同,也可能不同。
图199 General architecture with gateway
-
网关的透明性:如果配置正确,网关可以透明地在HES或NNAP和COSEM服务器(终端设备)之间传递COSEM应用协议数据单元(APDU)。
-
推送应用:网关还可以支持LAN中的服务器(终端设备)向WAN/NN中的客户端(HES)发送消息,而无需事先接收到请求服务(推送应用)。
在这一节中,概述了网关协议的基本概念,包括其在DLMS/COSEM通信模型中的作用、双向通信能力、实现方式,以及在不同网络环境中的应用场景。此外,还强调了网关在数据交换过程中的透明性,以及它支持的推送应用能力。
10.10.2 网关协议 (The gateway protocol)
10.10.2 节的标题为 “The gateway protocol”,即 “网关协议”。以下是对该节内容的详细翻译和解释:
网关协议
-
应用层结构:DLMS/COSEM通信配置文件的最顶层是DLMS/COSEM应用层(AL)。为了不影响较低层的协议栈和DLMS/COSEM应用层,通过在COSEM应用协议数据单元(APDU)前添加一些字节来指定使用的网络和LAN上设备的地址,从而解决将每个消息从客户端路由到LAN上的终端设备的问题。
-
消息前缀:为了路由消息,COSEM APDUs会被前缀几个字节,这些字节指定了要使用的网络和LAN上设备的地址。这样,无论客户端和服务器使用的是相同的通信协议还是不同的协议,网关都能够正确地将消息路由到目的地。
-
前缀字段结构:前缀字段由四个字段组成,包括头部、网络ID、地址长度和物理设备地址。这些字段的结构如图200所示。
图200 The fields used for pre-fixing the COSEM APDUs
-
头部:第一个字节是头部,其值为0xE6或0xE7,指示后续字节不仅包含COSEM APDU,还包含带有前缀的COSEM APDU。0xE6表示从DLMS客户端到服务器的请求消息或从服务器到客户端的请求消息(数据通知);0xE7表示从DLMS服务器到客户端的响应消息。
-
网络ID:第二个字节携带目标网络的标识符,该网络是消息被传输到的地方。这个网络ID允许通过同一个网关使用相同或不同的通信协议访问多个网络。网络ID与通信协议无关,可以设置为任何值。如果只存在一个网络,则应使用0x00。
-
地址长度:第三个字节定义了接下来的L个字节中给出的物理设备地址的长度。它取决于所使用的通信协议。
-
物理设备地址:第四个字节到第4+(L-1)个字节携带终端设备或HES的物理设备地址,如通信协议所请求。
-
前缀字段的处理:当带有前缀字段的报文到达一个不是网关或不支持前缀字段的设备时,该报文应被简单地丢弃。当客户端直接与主设备交换数据时,不出现前缀字段。
-
通信流程:客户端通过WAN或NNAP发送请求,这些请求由支持DLMS/COSEM AL的协议层承载。网关接收到这些请求后,根据前缀字段中的网络ID和物理设备地址将COSEM APDU转发到适当的网络。客户端和服务器的应用进程(AP)地址从WAN/NNAP的协议层中提取出来,并插入到LAN的DLMS/COSEM AL的协议层中。
-
响应处理:当LAN中的设备响应请求时,它就像直接连接到客户端一样处理请求并提供答案。当网关在LAN上接收到携带.response服务原语的COSEM APDU时,它会提取客户端和服务器AP的地址,并将它们插入到WAN/NNAP的DLMS/COSEM AL的协议层中,然后将带有前缀字段的消息发送回客户端。
这一节详细描述了网关如何在DLMS/COSEM通信中工作,包括如何使用前缀字段来路由消息,以及如何处理请求和响应。通过这种方式,网关能够确保即使在复杂的网络环境中,客户端和服务器之间的通信也能正确地进行。
10.10.3 HES在WAN/NN中作为发起者(拉取操作)
10.10.3 节的标题为 “HES in the WAN/NN acting as Initiator (Pull operation)”,即 “广域网/邻近网中的HES作为发起者(拉取操作)”。以下是对该节内容的详细翻译和解释:
图 201 – Pull message sequence chart
广域网/邻近网中的HES作为发起者(拉取操作)
-
前提条件:在WAN或NN中的客户端(HES)需要知道它想要联系的LAN上服务器的网络ID、协议和物理设备地址。
-
请求过程:DLMS客户端(HES)发送的每个请求都是通过一个COSEM APDU承载的,并使用WAN/NN支持的DLMS/COSEM AL协议层,以图200中显示的带有四个字段的前缀形式发送。
-
网关的转发:网关将每个携带.request服务原语的COSEM APDU转发到适当的网络,使用前缀字段中包含的网络ID和物理设备地址。客户端和服务器的应用进程(SAP)地址从WAN/NN的协议层中提取出来,并插入到LAN上DLMS/COSEM AL的协议层中。
-
终端设备处理请求:到达LAN上终端设备的APDUs在到达时没有前缀。每个终端设备处理请求并提供答案,就像它直接连接到客户端一样。
-
响应过程:当设备对请求做出响应时,它就像直接连接到客户端一样:APDU不需要前缀。当网关在LAN上接收到携带.response服务原语的COSEM APDU时,它从LAN上DLMS/COSEM AL的协议层中提取客户端和服务器SAP,然后将其插入到WAN/NN上DLMS/COSEM AL的协议层中,并使用WAN/NN协议将带有前缀字段的消息发送给客户端。
-
消息序列图:图201展示了DLMS客户端和服务器通过网关进行传统拉取数据交换的消息序列图。
-
安全性:DLMS/COSEM AL的安全机制确保了通过网关的端到端安全性。
这一节详细描述了在DLMS/COSEM通信模型中,当HES作为发起者时,如何通过网关从LAN上的服务器拉取数据。它强调了请求和响应过程中的地址提取和插入,以及网关在消息路由中的关键作用。此外,还提到了安全性,确保了数据交换的安全性。
10.10.4 LAN中的终端设备作为发起者(推送操作)
10.10.4 节的标题为 “End devices in the LAN acting as Initiators (Push operation)”,即 “局域网中的终端设备作为发起者(推送操作)”。这一节分为三个子部分,以下是对这三个子部分的详细翻译和解释:
10.10.4.1 General(一般情况)
-
推送操作的定义:在DLMS/COSEM架构中,LAN中的终端设备(服务器)不仅可以响应来自WAN/NN中客户端(HES)的请求,还可以主动向客户端发送消息,这种操作称为推送操作。
-
网关的作用:推送操作允许终端设备在没有收到客户端请求的情况下,通过网关向客户端发送消息。这可以用于实现如数据通知等主动通信。
-
操作的灵活性:根据终端设备对WAN/NN网络的知识,推送操作有两种不同的情况:一种是终端设备知道WAN/NN的网络信息,另一种是终端设备不知道这些信息。
10.10.4.2 End device with WAN/NN knowledge(了解WAN/NN的终端设备)
-
前提条件:LAN中的服务器必须知道它想要联系的WAN/NN中客户端的网络ID、协议和地址。
-
推送流程:了解WAN/NN网络信息的终端设备会向网关发送带有前缀字段的请求,这些字段包括网络ID、协议和客户端地址。这些信息允许网关正确地将请求转发到WAN/NN中的客户端。
-
消息序列图:图202提供了一个推送操作的消息序列图,展示了从LAN中的终端设备到WAN/NN中客户端的消息传递流程。
图 202 – Push message sequence chart
10.10.4.3 End devices without WAN/NN knowledge(不了解WAN/NN的终端设备)
-
操作限制:如果LAN中的终端设备不了解WAN/NN网络,或者不知道它是否连接到网关,它不能像了解网络信息的设备那样发送带有前缀字段的请求。
-
网关的职责:在这种情况下,终端设备可以向网关发送标准的数据通知请求,不使用特定的前缀。然后,网关有责任处理这些消息,可能需要根据其配置或网络策略来转发这些请求。
-
使用场景:这种操作模式适用于那些不需要终端设备了解复杂网络细节的场景,简化了终端设备的通信需求,但增加了网关的复杂性。
这三个子部分共同描述了LAN中的终端设备如何作为发起者进行推送操作,无论是它们是否了解WAN/NN的网络信息。这提供了一种灵活的通信机制,允许终端设备根据其能力和网络环境,主动向客户端发送信息。
10.10.4 节的标题为 “End devices in the LAN acting as Initiators (Push operation)”,即 “局域网中的终端设备作为发起者(推送操作)”。以下是对该节内容的详细翻译和解释:
局域网中的终端设备作为发起者(推送操作)
-
一般情况:在某些情况下,局域网(LAN)中的服务器(终端设备)也可以在没有先前接收到来自广域网(WAN)或邻近网(NN)的客户端(HES)的请求服务的情况下,通过网关向客户端发送消息。这种情况被称为推送操作。
-
两种场景:根据网关的能力,支持两种不同的场景:
- 终端设备具有WAN/NN知识:如果LAN中的服务器知道它想要联系的WAN/NN中客户端的网络ID、协议和地址,它可以主动发送请求。
- 终端设备没有WAN/NN知识:如果终端设备对WAN/NN网络没有了解,或者不知道它是否连接到网关,它可以向网关发送标准的数据通知请求,而不使用特定的前缀。
-
推送消息序列图:图202展示了推送操作的消息序列图,详细说明了当LAN中的服务器作为发起者时,消息是如何通过网关发送到WAN/NN中的客户端的。
-
终端设备作为发起者:在推送操作中,LAN中的终端设备(服务器)使用DLMS/COSEM AL协议层支持的协议层,向网关发送每个请求(例如数据通知请求)。这些请求由COSEM APDU承载,并使用前缀字段,就像在拉取操作中一样。
-
网关的角色:网关接收到来自LAN中终端设备的请求后,根据前缀字段中包含的网络ID、协议和客户端地址(例如WAN/NN MAC地址),将COSEM APDU转发到适当的网络。客户端和服务器的应用进程(SAP)地址从LAN的协议层中提取出来,并插入到WAN/NN的DLMS/COSEM AL的协议层中。
-
安全性:DLMS/COSEM AL的安全机制确保了即使在推送操作中,数据交换也是安全的,并且通过网关保持了端到端的安全性。
这一节详细描述了在DLMS/COSEM通信模型中,LAN中的终端设备如何作为发起者进行推送操作,以及网关在这一过程中的作用。推送操作允许终端设备在没有收到客户端请求的情况下,主动向客户端发送消息,这在某些应用场景中非常有用,例如实时数据通知或事件报告。
10.10.5 安全性
- 端到端安全:DLMS/COSEM应用层的安全机制确保了通过网关的端到端安全性。
10.10.5 节的标题为 “Security”,即 “安全性”。以下是对该节内容的详细翻译:
安全性
-
端到端安全:DLMS/COSEM 应用层的安全机制确保了通过网关的数据交换是端到端安全的。这意味着从客户端到服务器,以及通过网关的整个通信过程中,数据的安全性得到了保障。
-
安全特性:DLMS/COSEM 规范提供了一系列的安全特性,包括但不限于数据加密、认证和完整性保护。这些安全特性可以在不同的通信场景中使用,以防止未授权访问和确保数据的保密性。
-
网关的角色:在安全性方面,网关充当了数据传输的中介,但它并不参与到数据的解密和加密过程中。因此,即使数据经过网关,网关也不会对数据的安全性造成威胁。
-
通信协议的支持:DLMS/COSEM 应用层的安全机制与底层通信协议栈是解耦的。这意味着无论底层使用的是哪种通信协议,只要它们支持必要的安全特性,就可以与DLMS/COSEM 应用层安全机制一起使用。
-
安全性配置:安全性的配置和实施是根据具体的项目需求和安全策略来决定的。不同的项目可能会选择不同的安全机制和策略,以满足特定的安全要求。
-
安全性的灵活性:DLMS/COSEM 应用层提供了灵活性,允许在不同的通信配置文件中实施不同的安全措施。例如,某些配置文件可能需要更强的加密和认证机制,而其他配置文件可能由于性能或成本考虑而采用较轻量级的安全措施。
-
安全性的实现:安全性的具体实现,包括密钥管理、加密算法的选择和安全策略的制定,通常是由实施DLMS/COSEM 系统的组织或个人根据具体的安全需求来完成的。
这一节强调了DLMS/COSEM 应用层在设计时就考虑了安全性,提供了一套完整的安全机制来保护数据交换过程,并通过网关在不同的网络环境中安全地传输数据。