宁波市鄞州首南恒宇激光雕刻厂

交换式工业以太网中的多播方法
分享到:


摘 要: 工业控制网络中大量采用“生产者-消费者”的通信模式,网络中存在着大量的多播数据,传统交换机对多播数据的广播式处理方式会大大降低交换式以太网的性能。本文在对比分析交换式以太网中现有几种多播方法的基础上,指出了它们各自在交换式工业以太网中的使用范围。
关键词:交换式工业以太网;多播;虚拟局域网;IGM 窃听;Cisco 多播管理协议;GARP 多播注册协议

1. 引 言

在工业控制网络中,大量的实时数据常采用“生产者-消费者”的通信模式进行传送,其中生产者是发送实时数据的工作站,它产生的数据可以同时被多个消费者使用。这种通信模式一方面可以保证同一实时数据在空间上的一致性,另一方面可以节省带宽,因为每个新产生的实时数据只需要发送一次。

工业网络中这种“一对多”的数据相应于以太网中的多播数据帧,而多播数据在传统以太网交换机中是以广播的方式发送,因为交换机一般是通过查看它收到的以太网数据帧的源地址来学习各端口相连工作站的MAC 地址的,而多播MAC 地址从来不会被用在一个以太网数据帧的源地址中,交换机没有方法动态地学习它们。当网络中存在着大量的多播数据时,由多播帧引起的广播数据会消耗掉大量的带宽,甚至会引起“广播风暴”使网络进入不稳定状态。最容易想到的方法是为交换机的每个端口静态地配置多播地址,这种方法是可行的,但可扩展性和动态适应性都很差。

本文的第2 到5 小节对目前交换式以太网中常采用的四种多播方式进行了介绍。第6小节对它们进行了对比分析,并指出了各自在工业以太网中的适用范围。

2. 虚拟局域网(Virtual LAN)

VLAN 是指在交换局域网的基础上,采用网络管理软件构建的可跨越不同网段、不同网络的端到端的逻辑网络。一个VLAN 组成一个逻辑子网,即一个逻辑广播域,它可以覆盖多个网络设备,允许处于不同地理位置的网络用户加入到一个逻辑子网中。VLAN 的主要优点之一就是可以抑制网络广播风暴,一个VLAN 就是一个逻辑广播域,通过对VLAN 的创建,隔离了广播,缩小了广播范围,可以控制广播风暴的产生[1]。

从而可以设想将属于每个“生产者-消费者”数据组的工作站组成一个VLAN,当其中的生产者发送多播数据时,只有属于该VLAN 的数据组成员才能接收到相应的多播数据。控制网络中只要存在一个“生产者-消费者”数据组,就对应于一个VLAN。显然,某个控制网络中的应分配的VLAN 数量将与其中的“生产者-消费者”数据组个数成正比。由于位于控制层的控制器往往参与到多个控制回路中完成优化控制运算,它应该同时位于多个VLAN 中,才能与多个控制回路中的工作站交换数据。

对于小型的控制网络,这种多播方式也许是可行的,但对于中等规模和大规模的控制网络,为数众多的VLAN 势必会大大降低控制网络的性能,并给VLAN 的管理和维护带来极大的困难,在大型控制网络中“生产者-消费者”数据组个数甚至会超过可用的VLAN 数量(4096 个)。

由于VLAN 的安全机制,属于不同VLAN 的通信成员之间相互通信时必须通过路由器进行转交。如图1 所示,位于VLAN1 工作站A 有数据要向位于VLAN2 中B 发送时,工作站A 必须首先把自己的数据转交给网络中的路由器,再由路由器其转交给工作站B。路由器的介入势必会增大数据的传输延迟,对于实时报文甚至可能使其失去实时性。虽然带有硬件路由功能的第三层交换机可以增强需要路由传输的数据的实时性,但会增加整个网络的成本,并会增加网络管理的复杂性。

图1 不同VLAN 的工作站通过路由器转发数据
3. IGMP 窃听(IGMP Snooping)

互联网组管理协议IGMP(Internet Group Management Protocol)定义了工作站如何向路由器注册以便能接收到特定的IP 多播数据。当以太网交换机收到工作站和路由器之间传递的IGMP 报文时,通过截取并分析IGMP 报文所带的信息,在链路建立和维护MAC 多播地址转发表,以后从路由器下发的多播报文就根据该表中的“多播组-端口”对应关系进行转发[2][3]。

3.1 通过IGMP 窃听加入某一多播组

图2 通过IGMP 窃听加入一个多播组
当工作站是某交换组中第一个希望加入某一多播组的工作站时,如图2 中的工作站A,加入过程如下:工作站A 先主动向路由器发送一条IGMP 成员报告,交换机通过截取分析该成员报告得知工作站希望加入的多播组,然后为其创建一个多播项目组,并把它链接到工作站A 所在的端口和所有的路由器端口。最后交换机把该IGMP 成员报告转发给路由器端口,以便路由器能够接收到该IGMP 报告,并相应地更新它的多播路由表。

当工作站希望加入一个已存在的多播组时,如图2 中工作站B 希望加入工作站A 已经加入的多播组中。交换机只是简单的将该工作站所在端口链接到已存在的多播组上,不再向路由器转发IGMP 报告,而是使用代理报告(Proxy Reporting)机制每隔10s 向路由器为每个多播组转发一次IGMP 报告。这种代理报告机制可以减少IGMP 窃听多播机制消耗的带宽[3]。

3.2 使用IGMP 窃听离开一个多播组

当工作站想离开一个多播组时,它可以简单的忽略周期的IGMP 询问报文,或者发送一条IGMP Leave 报文。当交换机收到对某多播组的IGMP Leave 报文时,则会向接收该报文的端口发送所离开组的特定组查询报文,以确认此端口相连的工作站中还有没有该多播组的其他成员,同时启动一个查询响应定时器。如果在该定时器超时还没有收到该多播组的报告报文,则将该端口从相应的MAC 多播组中移除。如果MAC 多播组在交换机的各个端口都没有组成员时,交换机将通知多播路由器将该分支从多播树中删除[2]。

4. Cisco 组管理协议(Cisco Group Management Protocol)

CGMP 是Cisco 公司专有的组管理协议,它是在多播路由器和交换机之间使用的一种通信协议,主要工作方式是多播路由器通过CGMP 报文通知交换机它所得到的IGMP 信息,交换机上的CGMP 模块会把接收到CGMP 帧中的“多播组-工作站”对应关系转换为“多播组-端口”对,并基于此建立本地的多播地址转发表,然后依照这个关系转发多播数据[3][4]。

4.1 CGMP 的数据帧格式

CGMP 是目的地址为0x01-00-0C-DD-DD-DD 以太网数据帧, 它主要包含以下字段[4]:

联系我们

地址: 浙江省.宁波市鄞州区宁姜公路(九曲小区二期旁)

邮编: 315040

联系人: 盛立峰

电话: 0574-87139378

传真: 0574-87139378

手机: 13867861670

邮箱: 85400329@qq.com

联系我们