IEC61850 技术讲堂 · 知识分享与交流

首页 > 互动中心 > IEC 60870-5-104 的 k、

IEC 60870-5-104 的 k、w 与 t1/t2/t3:丢点与反复断链的排查顺序

👤 发布:微自恒通技术团队 📅 2026-11-05

104 通道"白天好好的,晚上开始丢点""重启就好一段时间",这类现象十有八九不在应用层,而在 k、w 与 t1/t2/t3 这几个参数上。它们都是 IEC 60870-5-104 里定义好的,本文把语义和现场的判断方法讲清楚。

一、先分清 I / S / U 三种帧

104 的 APDU 以启动字符 0x68 开头,第二字节是长度,随后 4 个字节是控制域。控制域最低两位决定帧类型:

类型控制域特征作用
I 帧最低位 0携带 ASDU,同时带发送序号 N(S) 和接收序号 N(R)
S 帧最低两位 01只做确认,携带 N(R),没有 ASDU
U 帧最低两位 11链路控制:STARTDT / STOPDT / TESTFR 的启动与确认

U 帧的六个编码值得记住:STARTDT 启动 0x07、确认 0x0B;STOPDT 启动 0x13、确认 0x23;TESTFR 启动 0x43、确认 0x83。抓包里看到 68 04 07 00 00 00,就是客户端在请求建立数据传输;没等到 0x0B 的确认,业务数据一帧都不会有。

二、k 和 w:窗口的两个维度

  • k:发送方在收到确认之前,最多可以连续发出多少个 I 帧。标准给的默认值是 12。窗口满了必须停下来等 N(R),这时抓包里会出现"发送方干等"的空窗。
  • w:接收方每收到多少个 I 帧,就必须回一次确认(S 帧或带 N(R) 的 I 帧)。标准默认值是 8。

这两个值必须成对配置,而且 w 必须小于等于 k。只调大 k 不调 w,发送方会以为可以一直发,接收方却按 w 卡确认节奏,结果就是发送窗口被自己的确认策略堵住——表面看像"对端不回确认",其实是本方 w 太小。

三、t1 / t2 / t3:三个定时器各管一段

定时器语义默认值超时后果
t1发送 I 帧(或带 N(R) 的 U 帧)后,等待对方确认的最长时间15 s超时视为链路故障,关闭 TCP 连接
t2收到 I 帧但没有数据要发时,最长多久必须补一个确认10 s对端 t1 先到 → 对端断链
t3链路空闲多久发一次 TESTFR 心跳20 s不发则 NAT/防火墙把长连接"静默丢弃"

约束关系是 t2 < t1。把 t2 配得比 t1 还大,等于要求对端在自己的超时之后才等到确认,链路会被反复重建——很多"每 15 秒断一次"的现场就是这个原因。

四、按现象查参数

现场现象优先怀疑
大批量变化时丢点,平时正常k 太小或 w 太大,窗口在突发时被塞满
每 15 s 左右固定断一次t2 ≥ t1,或对端根本不回确认
闲置一段时间后第一条命令超时t3 太长且中间设备回收了空闲连接;或对端 NAT 表项已老化
抓包看到 STARTDT 反复重发确认帧回不来(ACL、路由不对称、双网选了错的口)
总召拿得到数据,变化上送几乎没有不是定时器问题,看传送原因与 ASD U 的 COT 是否允许突发

五、改之前先量

这三个定时器和两个窗口值都是两端协商一致才有意义的东西:改一侧必须确认对侧能接受。工程上稳妥的做法是先用无扰监听把一小时的报文完整抓下来,统计最大突发 I 帧数、确认帧的平均间隔、以及有没有出现 t1 临界(确认迟到)。有了这三个数,再决定调 k/w 还是调定时器,而不是照着默认值硬套。

↑