一种基于以太网MAC控制器的组播报文过滤方法技术

技术编号:14572196 阅读:363 留言:0更新日期:2017-02-06 09:04
本发明专利技术公开一种基于以太网MAC控制器的组播报文过滤方法,步骤是:定义查找表数组;注册组播过滤地址时,根据MAC地址计算索引Index和位偏移Offset,设置查找表数组索引Index对应的成员位偏移Offset为1;接收报文时,根据接收报文MAC地址计算索引Index和位偏移Offset,判断查找表数组相应索引、位偏移,如果为1接收报文,否则丢弃。此方法可进行简单、高效的组播报文过滤,满足数字化保护控制装置在复杂通信环境中的可靠运行。

【技术实现步骤摘要】

本专利技术属于数字化变电站通信领域,特别涉及一种基于以太网MAC控制器的组播报文接收过滤方法。
技术介绍
数字化变电站通信环节涉及多种类型组播报文收发,如面向通用对象的变电站事件(GOOSE)报文。组播报文在交换机中如果不进行任何处理,就是广播转发,当网络上所有智能电子设备(IED)发出的组播报文都被转发接收时,可能引起保护控制装置的网卡接收缓冲区溢出而丢失报文,也可能引起网络负荷瞬时过重而丢失报文,对装置可靠运行造成了严重影响。因此,采取有效的方法对组播报文进行过滤是十分必要的。如何过滤组播报文?通常有2种思路:第1种是基于FPGA实现专用模块进行硬件过滤,这种方法对硬件设计、装置成本要求高,不具备通用性;第2种是采用CPU处理器集成的MAC控制器,通常都会支持哈希算法(Harshalgorithms)进行组播地址过滤,但是该方法有缺点:哈希算法存在过滤“漏洞”,即不同MAC地址可能哈希值相同,从而导致非订阅组播报文进入装置,在部分应用场合也会对系统运行产生影响。如果纯粹使用软件方法对接收报文组播地址进行逐一比较过滤,显然效率太低。因此,设计一种简单、高效的组播报文过滤方法对提高数字化变电站保护控制装置稳定运行有重要意义。
技术实现思路
本专利技术的目的,在于提供一种基于以太网MAC控制器的组播报文过滤方法,其可进行简单、高效的组播报文过滤,满足数字化保护控制装置在复杂通信环境中的可靠运行。为了达成上述目的,本专利技术的解决方案是:一种基于以太网MAC控制器的组播报文过滤方法,包括如下步骤:(1)定义查找表数组;(2)注册组播过滤地址时,根据MAC地址计算索引Index和位偏移Offset,设置查找表数组索引Index对应的成员位偏移Offset为1;(3)接收报文时,根据接收报文MAC地址计算索引Index和位偏移Offset,判断查找表数组相应索引、位偏移,如果为1接收报文,否则丢弃。上述步骤(1)的具体内容是:选取MAC地址的N个字节,查找表数组的大小为N个256相乘结果再除以8。上述N的取值是3,查找表数组的大小为2097152字节。上述步骤(2)的具体内容是:假设需要接收的组播报文MAC地址为“X:Y:Z:A:B:C”,选取MAC地址后3个字节A、B、C共24bit位进行过滤,其中前20位用于计算Table数组下标索引Index,计算公式为Index=((A<<16)|(B<<8)|C)>>4,后4位用于计算数组成员Table[Index]的位偏移Offset,计算公式为Offset=(C&0x0f),即取字节C的低4位,再将Table[Index]的第Offset位置1。上述步骤(3)的具体内容是:当接收到组播地址为“X:Y:Z:A:B:C”的报文时,先计算相应Index和Offset,然后直接检查Table[Index]的第Offset位是否为1,如果为1表示允许接收,否则丢弃该报文。采用上述方案后,本专利技术采用软硬件结合的过滤方式,在现有MAC控制器哈希算法硬件过滤的基础上,增加软件过滤进行补充,将需要接收报文的MAC地址分为两部分,一部分用于确定查找表数组的下标索引Index,另一部分用于确定Index对应数组成员的位偏移Offset,然后在该位上设置允许接收标志形成查找表;接收报文时根据实际MAC地址计算得到数组成员索引Index和偏移Offset,然后直接查表得到相应位值确定是否丢弃报文,解决了哈希算法硬件过滤的不足。本专利技术可以满足数字化变电站保护控制装置在复杂通信环境下的可靠通信,相对于其他方法,本专利技术实现简单,可以可靠、高效地实现组播报文过滤。附图说明图1是本专利技术的原理示意图;图2是本专利技术实施例的处理示意图;图3是本专利技术的流程图。具体实施方式以下将结合附图,对本专利技术的技术方案进行详细说明。如图1所示,是本专利技术实现组播报文过滤的原理示意图。假设网络环境中共有n种不同组播报文,其序号为1至n,装置只需接收序号为1、n-1所示的组播地址报文,首先将上述2条组播地址设置到MAC控制器,相应哈希值分别为X和L。这样设置后,MAC控制器接收到网络报文后先根据报文MAC地址计算哈希值,如果哈希值为X或L就会允许接收,否则丢弃该报文。由于网络环境内序号为n的报文MAC地址哈希值也为X,所以,哈希算法硬件过滤后序号为1、n-1、n的网络报文会进入到装置,其中序号为n的报文并不需要接收。在此基础上再次进行快速过滤,保证只有序号为1和n-1的报文被接收。如图3所示,是本专利技术一种基于以太网MAC控制器的组播报文过滤方法,其无需遍历整个地址表,包括如下步骤:(1)定义查找表数组;(2)注册组播过滤地址时,根据MAC地址计算索引Index和位偏移Offset,设置查找表数组索引Index对应的成员位偏移Offset为1;(3)接收报文时,根据接收报文MAC地址计算索引Index和位偏移Offset,判断查找表数组相应索引、位偏移,如果为1接收报文,否则丢弃。图2是基于查找表机制的过滤示意图。首先创建过滤查找表Table数组,数组成员位宽为16位,在将组播地址设置到MAC控制器同时更新该过滤查找表,具体操作方法如图2所示,假设需要接收的组播报文MAC地址为“X:Y:Z:A:B:C”,本实施例选取MAC地址后3个字节A、B、C共24bit位进行过滤,其中前20位用于计算Table数组下标索引Index,计算公式为Index=((A<<16)|(B<<8)|C)>>4,后4位用于计算数组成员Table[Index]的位偏移Offset,计算公式为Offset=(C&0x0f),即取字节C的低4位,再将Table[Index]的bit(Offset)(也即第offset位)置1。当接收到组播地址为“X:Y:Z:A:B:C”的报文时,先计算相应Index和Offset,然后直接检查Table[Index]的bit(Offset)(也即第offset位)是否为1,如果为1表示允许接收,是订阅报文,否则丢弃该报文。图1中序号为n的组播报文是非订阅报文,根据上述方法得到的Table[Index]中bit(Offset)(也即第offset位)为0,显然,该报文会被丢弃。上述软件快速过滤方法是对MAC控制器哈希算法硬件过滤的一种补充,解决了哈希算法过滤“漏洞”的问题。当选取M本文档来自技高网...

【技术保护点】
一种基于以太网MAC控制器的组播报文过滤方法,其特征在于包括如下步骤:(1)定义查找表数组;(2)注册组播过滤地址时,根据MAC地址计算索引Index和位偏移Offset,设置查找表数组索引Index对应的成员位偏移Offset为1;(3)接收报文时,根据接收报文MAC地址计算索引Index和位偏移Offset,判断查找表数组相应索引、位偏移,如果为1接收报文,否则丢弃。

【技术特征摘要】
1.一种基于以太网MAC控制器的组播报文过滤方法,其特征在于包括如下
步骤:
(1)定义查找表数组;
(2)注册组播过滤地址时,根据MAC地址计算索引Index和位偏移Offset,
设置查找表数组索引Index对应的成员位偏移Offset为1;
(3)接收报文时,根据接收报文MAC地址计算索引Index和位偏移Offset,
判断查找表数组相应索引、位偏移,如果为1接收报文,否则丢弃。
2.如权利要求1所述的一种基于以太网MAC控制器的组播报文过滤方法,
其特征在于所述步骤(1)的具体内容是:选取MAC地址的N个字节,查找表数
组的大小为N个256相乘结果再除以8。
3.如权利要求2所述的一种基于以太网MAC控制器的组播报文过滤方法,
其特征在于:所述N的取值是3,查找表数组的大小为2097152字节。
4.如权利要求3所述的一种基于以太网MAC控制器的组播报文过滤方法,
其特征在...

【专利技术属性】
技术研发人员:李秋华周强文继锋李广华陈宏君吴相楠姜晓光
申请(专利权)人:南京南瑞继保电气有限公司南京南瑞继保工程技术有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1