作者:邹德虎
通信网络是非常复杂的系统,各种层次的通信设备、协议相互交织影响。即使电力系统通信网络要比公共因特网要简单的多,但仍然是相当复杂的。我没有信息通信专业背景,只能代表个人探索研究这一块的经验之谈。
首先,讲一个故事,以便对通信网络有一个概览。就以古代将军出征,将军和皇帝的通信作为类比的例子吧。这两个人写信、回信看样子非常惬意,但背后涉及到整个帝国复杂的管理、工程,是极其复杂的系统工程。
1)应用层 将军要把军情汇报给皇帝,皇帝必须回复,哪怕回复“知道了”。皇帝把指令下发给将军,将军也必须回复,不回复那绝对非常严重,有篡位的心思。这些信息都属于高度机密,都用小盒子装着,外人都是没有权力看的。
2)运输层。皇帝身边有太监从事机要工作,从事具体的信件收发工作。假设将军旁边有太监做监军,也帮将军打理机要工作。那么这些太监从事的工作其实是帮助将军和皇帝建立了通信连接。这个通信连接是非常抽象的,因为屏蔽掉了细节,什么烽火台、驿站、水路等等都不考虑。战争的消息优先级比较高,因此这里的运输层拥塞控制显著不同于我们今天的TCP协议,但是重传机制可能非常相似。刚才说过,皇帝或将军发送通信,必须要有回复。如果回复在给定时间内不能收到,发送方就认为发送失败,因此太监会重新发送。将军和皇帝都是日理万机的,没必要担心通信的不可靠,这就为他们节约了很多时间精力。
由于运输层需要额外的信息,这些信息皇帝或将军并不关心。因此,太监把小盒子装到大一点的盒子里面,然后交给外面的人。
3)网络层。我们假设将军在打水仗,信息要依次走过:水路、陆路。其中信息的传输过程中若干关键节点需要面临路径的选择,比如水路和陆路的交接点(港口)、几条重要路上通道的交叉点。为便于管理,帝国所有重要节点都进行了数字编号。这样,我们预先制定路径选择表,并且每一个关键节点都预先保存。比如,将军的信到了某个交叉点,对比一下路径选择表,发现目标是去皇宫,走哪条路已经预先写好了,那就继续执行就好了。
4)链路层。刚才说的关键节点的数量毕竟有限的。其实,驿站的数量远远超过交叉点。驿站之间距离可能只有10公里甚至不到,某个驿站工作人员只负责这少数驿站之间的通信,有的驿站可能大一些,连接多个驿站。什么皇帝、将军,他们一概不管,只需要做好手头上的事情。因此,网络层的盒子出来后,必须在外面再装一个盒子。盒子很简单:就是从某个具体的地址到另一个具体的地址,不涉及网络层的数字编号。驿站工作人员只看最外面的盒子,任务完成后,最外面的盒子丢弃,里面的盒子拿到一个新盒子,代表着后面有新的投送任务。
5)物理层。具体的信差工作很辛苦的,对于陆地来说,要养好马;对水上来说,要制造维护小艇。这些苦活都是物理层实现的。盒子可能放在马上,也可能在船里,也可能在骆驼背上,也可能人直接拿着跑。总之,千奇百怪的都有。
最后来首诗:“长安回望绣成堆,山顶千门次第开。一骑红尘妃子笑,无人知是荔枝来。”这就是从文学的角度,描述了大唐帝国的通信网络。荔枝是物品,但也代表着对通信网络的测试,好比ICMP协议,至少可以测试出来:是否可以ping通,以及往返时间。
首先谈论一下通信网络中,硬件、软件和协议的关系。其中,通信协议是指完成通信所必须遵循的规则和约定,协议不仅指的是报文的组织格式,同时也指导通信软硬件的实现。例如,路由器只处理网络IP层的协议,更低层级的就无需处理。硬件是支撑通信网络的设备,是典型的嵌入式系统,比如有的路由器是通过共享内存实现数据交换,但必须采用实时操作系统才能把时间延迟控制的很小;有的交换机则采用Crossbar交换电路实现数据交换,这就是纯硬件实现。软件包括应用软件、操作系统内核中的协议栈,以及对通信网络进行控制管理的软件。现在软件定义网络技术的发展(SDN),把很多以前在硬件实现的功能提取出来,进行网络级的整体优化控制(例如路由优化)。这就很像电力稳定控制中的做法,全局优化并不会代替实时控制,但是可以远程更新策略或者定值。
下面重点是电力系统的网络和协议。首先,协议是分层的。电力系统为了自己的业务,总是需要把自己的信息加载到某层协议上。下面是我初步总结的,仅仅是一个示意。
挂载到应用层,例如使用WebService实现虚拟电厂与调度的数据交换;
挂载到运输层,例如IEC104协议、MQTT、CoAP、IEC61850中MMS协议;
挂载到链路层,例如IEC61850中的Goose、SV报文、Modbus等
要注意Modbus并不是链路层协议,只不过它可以加载到串行链路层(串口),其实Modbus也可以加载到运输层的TCP/IP上。其它协议也有类似案例。
电力系统的骨干通信,最底层的是OPGW光缆,也称光纤复合架空地线。把光纤放置在架空高压输电线的地线中,用以构成输电线路上的光纤通信网,这种结构形式兼具地线与通信双重功能。
基于光缆的物理层设备,电力行业普遍采用SDH技术。SDH是相当成熟的技术体系,在公网中可能已经落后了,但对于电力工业来说还是合适的。下面这张图显示了光缆通过SDH技术组成一个环网。
定某条光纤中断,SDH可以实现网络保护功能,把通信倒换到另一条路径,从而实现自愈(不超过50毫秒)。值得注意的是,对于网络层及其以上来说,整个SDH设备都是忽略的。对于上图来说,其实就是两个路由器通过信道直接连接,至于连接的细节不用关心,最多只需要信道基本参数(如延时,丢包率、误码率等)。
假定网络层链路中断,通过网络层备用路由也可以实现通信业务的自愈,但通过路由的自愈方式与通过SDH自愈的方式,是完全不同的技术,无论是原理、动作速度、协议层,都是不同的。
SDH网络是底层的,在SDH网络基础上,可以构造调度数据网、综合数据网等。SDH网络好比建筑的混凝土钢筋,其它的网络好比在这个建筑上进行装修,这样就可以对外开展业务了。
调度数据网对于电力通信业务是最重要的,下面的重点是调度数据网。 调度数据网在拓扑上最大的特点是“双平面”(我发现搞通信网络的人喜欢用“平面”这个词)。也就是说,变电站和调度中心之间至少有两个独立的通信网络。
调度数据网是广域网,在这个网里面有若干局域网,也就是调度中心、变电站。对于这些局域网的架构,标准有明确的规定,也就是信息安全分区。 除了骨干通信网,电力系统还有庞大的接入网,主要应对配电自动化和用电采集的需求,主要涉及配网开关站、配电室、环网单元、柱上开关、配电变压器、充电站等电力设备的通信需求。在经济发达地区,10kV馈线的通信也采用光纤通信,铺设在电力管廊。但是很多地区没有这么好的的条件,因此通信方式是多样的,有的采用无线通信,有的采用电力线载波。
对于电表等用电信息,一般采用电力线载波抄表,然后汇总至集中器,再传给用电采集主站;或者汇总至融合终端,与配电信息打包送给配电物联网云平台。
下面谈谈网络信息安全问题。我们知道,电力系统实施了严格的内外网隔离,但隔离之后能否高枕无忧呢?我觉得是不能的,下面是一些理由。
随着电力市场的发展,越来越多的社会资源(例如分布式电源、可中断负荷等)以负荷聚合商、虚拟电厂等形式参与电力系统的运行。但是这些社会资源无论在产权上还是在信息安全方面都是脱离电网企业管控的。他们多半直接在互联网上进行控制和信息传输。虽然生产控制仍在一区,但是广义上的电力生产,其实互联网已经参与进来了,打破了原先的分区假设。
电力系统信息网络并不是完全物理隔离,而是通过隔离装置、防火墙、加密芯片等实现隔离,这些隔离设备本身存在被攻击的可能。另外,电力行业并不掌握信息安全设备的核心技术,运维这些设备也不一定完全发挥最大功效。
电力信息网络的内部是畅通无阻的,比如说从国调可以访问所有D5000调度系统的数据,但你不能保证所有地县公司的信息安全水准都有国调那么高。一旦被一点攻破,那对黑客几乎就一览无余了。另外内部人攻击很难从技术角度防范。
程序bug、现场运维人员的误操作也应纳入信息安全范畴。这方面其实已经有不少案例。
以前我们设计电力业务、电力控制等,都把通信可靠性和信息安全默认为理想环境,但是所谓道高一尺魔高一丈,随着信息技术和黑客技术的发展,电力业务确实也应该与时俱进,毕竟电力可靠运行关系国计民生,大意不得。