欢迎光临
我们一直在努力

104/101协议-104协议如何保证通信报文不丢失?

已更新系列文章包括104、61850、modbus 、储能系统等,欢迎关注

图片

IEC 60870-5-104(简称104协议)作为电力自动化领域广泛使用的标准协议,其通信可靠性机制设计得非常经典和严谨。它主要通过 “确认重传”机制 来保证报文不丢失,这属于 TCP/IP协议族提供的可靠传输服务 的自然延伸和专业化应用。

下面将从 机制原理、关键字段、具体流程 几个层面来详细解释。

一、核心基石:TCP协议

这是104协议可靠性的根本前提。

  • 104协议 = IEC 60870-5-101的应用层 + TCP/IP传输层/网络层。

  • TCP(传输控制协议) 本身就提供了面向连接、可靠、有序的字节流服务。它的核心机制包括:

  • 三次握手建立连接:保证通信双方就绪。

  • 序列号和确认应答:每个发送的字节都有编号,接收方必须对收到的数据返回确认。

  • 超时重传:发送方在一定时间内未收到确认,会重新发送数据。

  • 数据校验和:检测数据在传输过程中是否损坏。

  • 因此,104协议在传输层以下的报文丢失、错序、错误问题,已经由TCP协议解决了。104协议自身要解决的是应用层的“数据不丢失”。

二、104协议应用层的可靠性保障机制

104协议在应用层定义了帧计数和确认规则,主要解决“我发出的控制命令或数据,对方应用层是否成功接收并处理?” 的问题。

其核心依赖于发送序列号和接收序列号这两个关键字段,它们包含在每个 I格式帧(携带应用数据的报文)的控制域中。

图片

1. 关键概念:帧编号

  • 发送序列号:发送方每发出一个 I格式 报文(无论是遥测、遥信还是遥控命令),这个序号就 +1(从0到65535循环)。

  • 接收序列号:发送方通过这个序号来 确认 自己已经成功收到了对方发来的哪些 I格式 报文。它等于 期望接收到的下一个报文的发送序列号。

2. 核心机制:确认与窗口

  • 确认机制:

    • 接收方在收到有效的 I格式 报文后,必须在一个合理的延迟内,回复一个 S格式帧(只包含接收序列号的控制帧,用于确认)或一个反向传输的 I格式帧(其控制域中会携带最新的接收序列号)。

      图片

    • 例如,主站收到子站发来的发送序列号为 N 的报文,它回复的S格式帧中的接收序列号就是 N+1,意思是:“我已经正确收到了序列号 N 及之前的所有报文,下次请从 N+1 开始发。”

  • 发送/接收窗口:为了流量控制,协议规定在未收到确认的情况下,连续发送的I格式报文数量不能超过一个预设的“窗口大小”(通常默认 k=12, w=8)。这能防止发送方淹没接收方,也便于重传管理。

注意事项:

在创建一个 TCP 连接后,发送和接收序列号都被设置成0。为了保证通信的兼容性,接收方在接收数据时只检查接收序列号,发送序列号不予检查。

三、具体工作流程与防丢失场景

用 主站(控制中心) 和 子站(变电站/终端) 的通信为例:

场景一:子站主动上送变化数据(如通信变位)

  • 子站产生一个通信变位,将其放入发送缓冲区,封装成 I格式帧,发送序列号为 Seq=10,发送给主站。

  • 主站正确收到该帧,应用层处理此变位信息。

  • 主站需要回复确认。它可以通过两种方式:

    • 显式确认:立即发送一个 S格式帧,其中的接收序列号 Rcv=11。

    • 隐式确认:稍后主站如有下发命令或总召,其下发的 I格式帧 的控制域里会携带接收序列号 Rcv=11。

  • 子站收到确认(Rcv=11),就知道 Seq=10 的报文已被主站可靠接收,可以从发送缓冲区中清除。

  • 如果子站发送后,在规定时间内未收到任何包含 Rcv=11 的确认(超时,t1 超时参数,通常15秒),子站会 自动重传 Seq=10 的报文,直到收到确认为止或达到重传次数上限(触发连接复位)。

  • 场景二:主站下发重要命令(如遥控选择)

  • 主站下发遥控选择命令,封装成 I格式帧,发送序列号为 Seq=50。

  • 子站收到后,检查序列号是否正确,执行校验,然后:

    • 先回复一个 I格式帧(如单点通信信息)或 S格式帧,其中的接收序列号 Rcv=51,确认收到。

    • 再处理应用层逻辑,生成“遥控选择确认”的 I格式帧(发送序列号为子站自己的 Seq),上送给主站。

  • 主站收到

  • 子站对命令的确认回复(Rcv=51),才知道命令已送达子站应用层。

  • 同样,如果主站未在 t

  • 1 超时内收到确认,会重发 Seq=50 的遥控选择命令。

  • 场景三:遥信报文异常场景

    1、上行数据报文丢失

    如果遥信报文在传送过程中由于某种错误而丢失,主站无法接收到遥信变位信息,此时当终端向主站发出下一帧 I 格式报文数据后,配电主站将发现终端报文序列号出错,此时主站关闭通道并进行重连,重连成功后依次进行8.1.1和8.1.2所描述的初始化和总召唤过程,以上过程完成后配电终端将缓存的遥信数据重新上送,直到收到配电主站的 S 帧确认后才清除缓存数据。

    图片

    2:序列号出错

    如果遥信报文在传送过程中由于上一帧报文出现某种错误而丢失,配电主站在接收到遥信报文后将发现终端报文序列号出错,此时主站关闭通道并进行重连,重连成功后依次进行 8.1.1 和 8.1.2 所描述的初始化和总召唤过程,以上过程完成后配电终端将缓存的遥信数据重新上送,直到收到配电主站的 S 帧确认后才清除缓存数据。

    图片

    3:K 值超限

    如果遥信报文在传送过程中由于某种错误而导致主站回复的 S 帧报文丢失,配电终端将继续发送剩下的数据,直到 K 值等于 12 后停止发送。此时等待 t1 超时,t1 超时后配电终端将关闭 TCP 连接,此时主站进行重连,重连成功后依次进行 8.1.1 和 8.1.2 所描述的初始化和总召唤过程,以上过程完成后配电终端将缓存的遥信数据重新上送,直到收到配电主站

    的 S 帧确认后才清除缓存数据。

    图片

    四、协议的其他可靠性设计

  • 三种帧格式协同:

    • I格式:传输实际数据。是确认机制作用的主体。

    • S格式:纯确认帧。专门用于在不需传输数据时,对已收到的I帧进行确认,避免对方长时间等待而触发超时重传。

    • U格式:控制帧。用于启动、停止、测试连接,有单独的确认机制。

  • 链路测试与保持:

    • 如果通道长期空闲,为防止中间网络设备断开连接,协议规定在没有I帧需要发送时,需要定期发送 U格式的“测试帧” 并得到确认,以保持链路活性。这间接保证了通信通道本身的可用性。

  • 连接管理与重复检测:

    • 每次新建连接,发送和接收序列号都从0开始。TCP的重连机制和104自身的启动过程,保证了新旧连接数据的隔离,防止旧连接的重复报文被误认。

  • 获取104和61850资料和调试工具,关注后发送

    61850:iec61850调试工具

    104:104测试专用软件

    欢迎关注

    图片

    赞(0)
    未经允许不得转载:171主机测评 » 104/101协议-104协议如何保证通信报文不丢失?
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址