一 .IEC 60870-5-104 是什么?
IEC 60870-5-104 是一种用于电力系统中数据传输的通信协议,它结合了 IEC 60870-5-101 的应用服务和 TCP/IP 网络协议。该标准定义了一种通过网络连接进行远动控制(如遥测、遥控等)的方法。
使用 Wireshark 捕获和分析 IEC 60870-5-104 流量可以提供对这些通信的深入了解。以下是一些基本步骤和提示
IEC104规约流程
IEC104 规约作为网络通信规约,由客户端和服务端组成,服务端口默认为2404 。它的基本流程如下:
1. 由客户端向服务器建立连接,同时,发送链路启动帧。
2.服务端在收到链路启动帧后,向客户端发送启动确认帧。
3.客户端收到启动确认帧后,发送总召数据请求帧。
4.服务端收到总召数据请求后,发送总召数据响应帧,然后继续发送总召数据。总召数据发送完成后,发送总召数据结束帧。
5.客户端在收到总召数据结束帧后,发送对时请求帧。
6.服务器收到对时请求帧后,发送对时响应帧。
7.由服务器主动向客户端发送变化数据帧。同时,收到客户端发送的控制类命令,回复相应的操作结果。
8.客户端等到下一个数据总召周期,重复第4步之后的流程。
二 .基本步骤
准备工作
安装 Wireshark:确保你已经安装了最新版本的 Wireshark。
获取访问权限:你需要有权限捕获网络流量,并且了解哪些设备在你的网络上使用 IEC 60870-5-104 协议。
捕获流量
选择接口:启动 Wireshark 并选择一个合适的网络接口来开始捕获流量。如果你知道 IEC 60870-5-104 数据包通常经过哪个接口,那么就选择那个接口。
设置过滤器
为了只捕获相关的 IEC 60870-5-104 流量,你可以设置一个捕获过滤器。例如,tcp port 2404 可以用来捕获默认端口为 2404 的 IEC 60870-5-104 流量。
分析流量
显示过滤器:一旦你有了捕获的数据,你可以使用显示过滤器进一步细化视图。例如,iec60870 或 iec60870.asdu 可以帮助你只查看 IEC 60870-5-104 相关的帧。
解析协议:Wireshark 应该能够自动解析 IEC 60870-5-104 帧。如果不能,你可能需要更新到最新版本或手动添加解码器。
理解 ASDU:ASDU (Application Service Data Unit) 包含了实际的应用层数据。了解如何读取 ASDU 和其内部结构对于理解通信非常重要。
检查错误:注意任何重传、错误消息或异常序列,这可以帮助诊断问题。
三 .理解ASDDU内部结构
ASDU概述
ASDU是IEC 60870-5-104协议栈中应用层的一部分,它负责封装实际的应用数据。每个ASDU包含一个或多个信息对象,这些信息对象可以代表遥测、遥信、遥控等命令或状态。通过分析ASDU,我们可以了解电力系统的实时运行状况,并进行有效的监控和控制。
ASDU内部结构详解
ASDU由几个关键部分组成:
-
类型标识符 (Type Identifier):
- 定义了ASDU所携带的信息类型。
- 每个类型的标识符对应特定种类的数据,例如测量值、事件记录等。
-
可变结构限定词 (Variable Structure Qualifier):
- 决定了ASDU中是否包含时间标签以及信息对象的数量。
- 如果为1,则表示单个信息对象;如果是其他值,则指明有多少个信息对象存在于ASDU中。
-
传送原因 (Cause of Transmission):
- 表示为何发送此ASDU,如周期性传输、响应请求等。
- 这有助于解释数据传输的目的和上下文。
-
公共地址 (Common Address):
- 标识了发送方或接收方的逻辑节点地址。
- 在多点网络中尤其重要,用来区分不同的通信伙伴。
-
信息对象地址 (Information Object Address):
- 指向具体的信息对象,比如某个特定的断路器或传感器。
- 地址空间足够大以适应复杂的电力系统。
-
信息对象 (Information Objects):
- 包含实际的数据值,如电压水平、电流强度等。
- 可能包括额外的时间戳或其他辅助信息。
-
时标 (Time Tags)(如果存在):
- 当需要精确的时间同步时,会附加到某些类型的数据上。
- 对于事故后分析至关重要。
SDU结构图应该包含哪些元素
- 顶部: 显示整个ASDU的边界框,标注为“ASDU”。
- 左侧列表: 列出上述各组成部分,从上至下依次为类型标识符、可变结构限定词、传送原因、公共地址、信息对象地址。
- 右侧内容区: 展示每个组成部分的具体内容示例,例如类型标识符可能显示为
M_ME_NA_1
,表示归一化测量值。 - 底部: 如果有时间标签,会在最