智能变电站装置网络流量处理模式及其测试研究

2018-09-20 06:32,,,
电气自动化 2018年3期
关键词:网卡插件风暴

,,,

(许继电气股份有限公司,河南 许昌 461000)

0 引 言

智能变电站中应用了大量以太网通信设备和技术,由于交换机异常、组网设备网卡异常、网络环路、病毒等原因,实际运行过程中智能变电站的关键设备智能终端(以下也简称装置)的GOOSE发送或接收端口容易受到网络风暴的干扰,如果智能终端抵御网络风暴的可靠性低,就极易造成正常GOOSE报文的收发异常,从而引起装置死机、重启,以及拒动或误动,因此,装置的网络通信可靠性设计的主要内容之一就是采用合理、有效的抵御网络风暴技术,在保证装置正常功能和性能的前提下,尽可能提高装置抵御网络风暴的能力[1-2]。

通常采用的抵御网络风暴技术在发生广播风暴或GOOSE流量风暴的情况下,根据事先设定的网络流量门槛,暂时闭锁装置CPU处理GOOSE接收报文的功能,即在一定延时内丢弃报文,从而躲开突发的网络风暴,避免由于装置CPU处理能力不足而造成的死机或重启。这种方法的优点是设计实现简单,但缺点是能抵御的网络流量有限,而且在短时间有可能丢弃掉正常的GOOSE跳合闸命令或开关变位报文,可能造成电力系统进一步故障[3]。

由于通过上述软件实现方式来抵御网络风暴有一定缺陷,而FPGA等硬件处理能力强大,可以弥补依靠纯软件所带来的处理能力有限等缺点,因此可以采用FPGA硬件编解码技术来参与大流量报文处理,突破装置中广播风暴或GOOSE流量风暴实时处理能力瓶颈问题。使装置具备网口满流量报文处理能力,可有效抵御网络风暴,在任何网络流量冲击下装置均不会死机或重启。

1 改进前的智能终端装置通信方案

智能终端为智能变电站中新出现的一种IED设备,适用于智能变电站内多种一次开关间隔或变压器间隔,其最主要的两个功能是:①接收智能变电站过程层网络的控制指令或继电保护装置的直接控制指令,并驱动相应的出口回路完成对一次设备的控制功能,并具有防误操作功能;②采集一次设备位置信号、报警信号等实时数据,通过GOOSE服务发布至过程层网络[4]。

由于智能变电站中智能终端设备所处的关键位置和重要功能,对其可靠性设计要求极高,任何情况下都要保证装置的可靠动作。由于智能终端的组网口接在过程层网络上,虽然可通过屏蔽广播报文等做法避免网络压力对装置的影响,但还是存在某个网口受到网络压力的影响造成装置拒动或误动的可能,所以就需要在某个网口受到网络压力影响时防止装置的其他网口的功能受到影响的新机制。

2 智能终端的网络报文处理流程

2.1 改进前的智能终端网络报文处理流程

本文涉及的智能终端网络报文处理流程如图1所示。按照网络报文进入装置及在装置中处理的流程为序,分别在硬件层(FPGA处理模块)、网卡驱动层(CPU处理模块)、应用层(应用处理模块)中进行报文的接收、存储和处理,而仅在CPU处理模块进行网络流量或网络风暴的判别和过滤[5]。

图1 目前常见的网络流量处理流程

这种结构的特点:用于处理数据的CPU插件和网络扩展插件分开,网络扩展插件是由FPGA处理模块控制的多网口网络报文预处理插件,CPU插件是接收网络数据并且处理数据的插件,网络扩展插件和CPU插件是通过以太网口进行通信的,基本结构如图1所示。

已有做法的不足:只是在驱动层对网络风暴报文进行抑制,但是根据装置的结构特点和网络数据处理流程,只在网络驱动层进行网络风暴抑制是不完善的,因为网络流量的判断是在CPU板的网络驱动层进行的,当判断到流量异常超量的时候,应用层的数据缓冲区里面已经有非常多的网络风暴报文了,此时即使在网卡驱动层将网络数据屏蔽,应用层处理应用数据缓冲区中已有的报文也将耗费极大的CPU资源,对整个装置的性能是个巨大的压力和挑战;另外,如果只是在驱动层进行风暴屏蔽,在FPGA预处理层不对风暴进行处理的话,网络扩展插件多个网口的数据和风暴数据都会对CPU插件的网卡驱动形成持续的冲击,会影响整个装置的性能甚至造成拒动或者误动。

2.2 新型智能终端网络报文处理流程的设计目标

按照图1所示的方法实现的网络风暴处理机制,存在如下两个主要问题:①对于单个网口来说,如果仅是该网口中某组或某些组的报文流量异常,由于没有按组进行识别过滤,就会关闭这个端口,进而也关闭了利用该端口进行通信的所有报文组,例如该端口的三组GOOSE报文中如果有一组发生网络风暴,由此关闭该端口的同时,也关闭了其他正常通信的组,造成了影响面的扩大,对继电保护装置的正常运行影响也较大[6];②所有端口的网络风暴由CPU模块直接判别处理,只要有一个端口发生网络风暴,就会对CPU产生极大的负荷率,从而影响CPU处理其他更重要任务的性能,造成CPU停止或关闭网络处理任务,装置其他网口也会暂时关闭通信报文处理功能。

为了解决上述问题,结合智能变电站的运行要求及特点,提出了新型网络风暴处理机制的实现目标,即当一个网口的某些组的报文数据流量异常时不会影响该网口其他组数据的处理和装置的性能;某一个或者几个网口数据流量异常不会影响其他网口的数据处理和整个装置的性能,即一个网口数据流量异常的时候,其他网口对数据的正常处理性能不受影响,装置的整体性能也不受影响。

2.3 新型智能终端网络报文处理流程的实现方法

根据目标要求所实现的新方法,其特征在于流量监控机制不仅仅只是统计网口的总流量,还会监控每个网口每种组播报文的流量,这样做使得流量控制更加细化和精确:一个网口中的某些组播报文流量异常的时候,不会影响当前网口对其他正常报文的处理,更不会影响其他网口和装置的性能。

根据智能终端的网络数据处理特点和上述分析,充分利用智能终端的分层设计的结构特点,在装置上建立一个三层一体的网络抑制机制,将装置的网络数据处理分为三层:①网络扩展插件的FPGA预处理层(FPGA处理模块),用于网络扩展插件每个网口数据的接收、预处理和缓存处理;②CPU插件的网络驱动处理层,用于对网络扩展插件每个网口数据进行网口映射、接收处理和缓存处理;③CPU插件的应用处理层,维护一个缓存列表,用于存储网络驱动层传递过来的网络报文数据、给应用提供有效数据。根据装置的网络报文流向和处理特点,本方法在三个层面上实现对网络风暴的抑制,装置对网络数据的接收和处理具体流程如下:

(1)首先,总体要求装置的每个网口下都需要建立本文提出的网络报文过滤机制:在每个网口的FPGA处理模块、网卡驱动处理模块和应用处理模块内部都要建立一套相应的网络报文过滤模块。

(2)物理层:对应于智能终端的网络扩展插件的FPGA网络报文过滤模块,在该模块内部增加网络报文过滤模块。FPGA网络报文过滤模块通过设置网络报文过滤门槛来负责控制和处理每个网口接收的数据流量,并且还可以根据每个网口的MAC和AppID配置表与实际接收到的是否一致,决定是否接收当前的网络报文。FPGA网络报文过滤模块包括CRC过滤模块和MAC、AppID过滤,这两个模块的功能分别是:①CRC过滤模块能够有效的防护重复的网络风暴报文,统计一段时间(可根据实际情况设置)内一个网口接收到的相同CRC的报文的数量,如果该数超过门槛值(可根据实际情况设置),那么就说明具有该CRC的报文有异常,屏蔽该组报文的接收;②MAC、AppID地址过滤模块,维护一个MAC列表,只有接收报文的MAC和AppID在列表中存在的情况下报文才会被接收,该MAC列表的所有条目的MAC和AppID值都是由CPU插件产生的,并且由网卡驱动模块负责检测和刷新。物理层FPGA网络报文过滤模块对网络报文进行屏蔽和过滤的同时还能尽量降低后续CPU的处理压力。

(3)驱动层:对应于智能终端的CPU插件的网卡驱动模块,在该模块内部实现网络报文过滤功能,通过该道防线尽量降低对后续应用层处理数据的压力。CPU处理模块的网络过滤模块负责实时统计每个网口每组报文的网络流量、适时更新FPGA处理模块的MAC和AppID配置表、定位产生风暴的网口(或者网口中的某组报文),并给出网络风暴的屏蔽标志、完成网络风暴屏蔽超时机制的处理等,是整个网络抑制方法的核心。

网卡驱动网络报文过滤模块包括:网络流量监控模块、MAC和AppID过滤模块。网络流量监控模块的主要作用有两个,首先就是实时监控每个网卡的每组注册报文的流量,检测到某组报文的流量超标之后就会将该报文的MAC和AppID从相应网口的MAC和AppID过滤列表中去掉,即启动该组报文的屏蔽;其次在每组报文的网络风暴触发网络屏蔽机制之后,都会触发一个时间统计记录该组报文被屏蔽的时间,当屏蔽时间超出门槛值(可根据实际应用定制)之后,就会重新将该屏蔽报文的MAC和AppID写入MAC和AppID过滤表,即重新恢复该报文的接收。MAC和AppID过滤模块维护一个MAC和AppID过滤表,表示本网口中只接收MAC和AppID在该列表中存在的报文并进行后续处理,该列表的初始化值是装置初始化的时候注册的,表示本装置需要接收所有类型报文的MAC和AppID列表,该表初始化完成之后会立即将列表信息传递给的过滤模块和应层报文数据预处理模块。在装置运行过程中,MAC和AppID过滤列表只要有更新就会立刻将更新之后的MAC和AppID列表信息传递给FPGA的过滤模块和应用层报文数据预处理模块,FPGA和应用层的过滤模块会负责及时更新自身的MAC和AppID过滤列表。

(4)应用层:对应于装置的应用处理模块,在该模块内部实现网络报文过滤模块,在该过滤模块上对网络风暴报文进行过滤,有效降低了CPU使用率。应用层处理模块的网络过滤模块包含MAC和AppID列表过滤模块处理机制与上述类似的过滤模块一样,该列表的所有条目的MAC值都是由CPU插件的网卡驱动模块产生并送到应用层处理模块刷新的。应用层处理模块的网络过滤模块还负责监听CPU给出的网络风暴抑制标志,并作出相应的动作。

以上三个层次中的网络报文过滤模块都有屏蔽超时恢复功能:某组风暴报文被屏蔽接收超过一定时间(可根据实际应用情况设置),就会重新开放接收功能。改进后的装置通信流程如图2所示。

图2 新型网络流量处理流程

2.4 测试验证

2.4.1测试用例设计

为了验证上述方法的正确性和可靠性,设计了装置网络风暴测试用例,主要包括:对单个网口施加订阅业务报文网络风暴;对多个网口同时施加订阅业务报文网络风暴;对单个网口施加非订阅业务报文网络风暴;对多个网口同时施加非订阅业务报文网络风暴;重复订阅业务报文网络压力测试;装置各以太网口之间是否禁止互相转发报文测试等等,通过上述多种项目的试验,验证该方法是否能够充分减少网络风暴对装置通信功能和性能的影响,同时能保证装置运行的可靠性、高效性。

2.4.2测试分析

按照上述测试用例设计的网络数据,分别施加10 Mbps、50 Mbps、100 Mbps等不同的压力流量,考核装置是否丢帧、切换功能是否正常,以及CPU占有率等关键功能和性能,经过对比测试,使用改进前的网络压力报文处理机制出现了丢帧及装置重启的现象,装置在上述情况下由于CPU占有率很容易就达到98%左右,一个网口出现网络风暴时,会影响到其他网口也无法正常工作,且装置经常出现重启或死机现象。使用改进后的网络压力处理流程后,均实现了一个网口中一组报文发生网络风暴时,不影响其他组或其他网口的正常工作,施加流量过程中通过其他组或其他网口的GOOSE均能正确操控装置,并且有效降低了装置CPU占有率,提高了装置运行的可靠性。

3 结束语

本文论述的方法在三个层次上对网络风暴进行检测和屏蔽,层层递进,即分散了网络风暴到来时给单一处理模块的巨大压力,更重要的是通过对每个网口的每个组播地址的报文流量的检测和控制,确保设备在某一个网口的某些组播报文网络压力很大的时候,不影响对其他组播报文的处理,其他网口的功能及装置的性能都不受影响,杜绝了恶劣网络环境下智能装置拒动或误动的可能性,保证了运行的可靠性。通信技术在电力系统中的应用越来越多,通信功能也越来越重要,该方法对于类似的电力二次装置的通信功能设计也具有一定的参考意义。

猜你喜欢
网卡插件风暴
自编插件完善App Inventor与乐高机器人通信
Server 2016网卡组合模式
脑风暴大挑战
《风暴中奔跑的树》
基于jQUerY的自定义插件开发
可怕的大风暴
MapWindowGIS插件机制及应用
2015A/W暗黑风暴来袭!
挑战Killer网卡Realtek网游专用Dragon网卡
基于Revit MEP的插件制作探讨