互联网组管理协议窥探技术及其在以太网总线雷达系统中的应用
2012-06-23张博君梁文博漆先虎
张博君 梁文博 漆先虎
(西安电子工程研究所 西安 710100)
1 引言
随着网络技术的不断发展,点到多点、多点到多点的数据传输形式已经越来越多的应用于工程实践中。采用传统的网络单播方式来完成点到多点、多点到多点的数据传输,不仅增加了网络负荷,而且极大的消耗了网络带宽,明显已经不能满足数据传输的需求了。此时,互联网组管理协议应运而生,能较好的解决上述问题。但互联网组管理协议并不是完美的,它是一个三层(网络层)协议,可以减少三层设备(路由器)上不必要的网络流量,但并不能减少二层(数据链路层)设备(交换机)上不必要的网络流量。IGMP Snooping技术则是为了减少二层组播过程中不必要网络流量提出的一种运行在二层设备上的优化协议。
2 以太网总线雷达系统对网络传输的要求及解决方案
以太网总线雷达系统中的某些数据,例如:雷达跟踪目标时的电视或红外数字视频流、目标航迹、点迹、杂波图、火控信息、故障信息等,要求同时发送给多个分系统,属于点到多点的数据传输方式,各分系统通过这些数据实现雷达的工作状态监控及控制。采用传统的网络单播方式明显已经不能满足系统数据传输的要求,此时只有采用组播方式才能够较好解决该问题。出于网络最小化和工程成本的考虑,以太网总线雷达系统一般采用军工级的交换机来构建总线系统。而交换机属于二层设备,那么如何减少二层设备中不必要的组播流量,来减轻网络负荷,优化网络,就成为以太网总线雷达系统需要解决的问题。支持IGMP Snooping技术的交换机能很好的管理二层组播数据传输。能够很好的解决上述问题。
3 IGMP Snooping概述
IGMP协议是一个三层(网络层)协议,而交换机属于二层设备,如果我们采用交换机来搭建一个雷达总线系统,那么就必须有一个运行在二层设备上的组播约束机制,来对组播组进行管理。
IGMP Snooping作为二层组播协议,就是为了避免交换机冗余转发组播数据导致带宽损失而产生的。它是运行在二层(数据链路层)设备上的组播约束机制,用于管理和控制组播组。
它的基本思想是,通过侦听IGMP成员报告报文和离开报文来维护二层组播表。管理交换机各端口的组播组成员,从而确定数据转发的成员对象。
4 IGMP Snooping原理及实现
在没有IGMP Snooping功能的交换机中,收到组播报文的端口将向其他所有端口转发组播报文。如图1所示,主机A、B是组播报文发送机与交换机1连接,主机 C、D、E、F、G 与交换机2连接,其中主机C、D是与主机A处于同一组播组的组播报文接收机。主机E、F、G是与主机B处于同一组播组的组播报文接收机。当主机A发送组播报文时,不具备IGMP Snooping功能的交换机1将转发组播报文到主机B和交换机2。如果交换机2也不具备IGMP Snooping功能,此时它将向它的所有端口洪泛组播报文,即向主机C、D、E、F、G都发送组播报文,而主机B、E、F、G是不需要该组播报文的。同样当主机B发送组播报文时,交换机1将转发组播报文到主机A和交换机2。交换机2也将向C、D、E、F、G都发送组播报文,而主机A、C、D是不需要该组播报文的。这样就会造成不必要的网络流量,增加了网络负担,如果网络规模和数据量很大的话,这种无关的组播流量会对网络性能造成很严重的影响。
图1 无IGMP Snooping功能的组播数据传输示意图
如果交换机实现了IGMP Snooping功能,那么交换机在转发组播报文时,将仅向注册有组播报文接收机的那些端口转发组播报文。如图2所示,图中实线表示一组组播数据传输,虚线表示一组组播数据传输,可以看出如果交换机具备了IGMP Snooping功能,那么主机A的数据只会发给与它同一组播组的主机C、D。主机B的数据只会发给与它同一组播组的主机E、F、G。这样会大大减少网络中不必要的网络流量,很好的优化网络性能。
IGMP Snooping主要有两个任务,一个是通过对IGMP报文的监听及二层组播表维护来减少不必要的组播数据流量。另一个是根据组播表中的组播成员信息转发组播报文。
IGMP协议报文有三种类型:IGMP查询报文、IGMP成员报告报文以及IGMP离开报文。IGMP Snooping通过监听IGMP成员报告报文和IGMP离开报文,来维护二层组播表。图2中交换机1的组播表如表1所示。图2中交换机2的组播表如表2所示。
图2 有IGMP Snooping功能的组播数据传输示意图
表1 交换机1二层组播表
表2 交换机2二层组播表
表1和表2中的第一列(组播组成员主机)在实际组播表中是没有的,这里是为了方便大家理解,实际的组播表只包括组播MAC地址、组播IP地址、端口掩码这三项。有些组播表还有端口生存时间这一项,它的作用是表示端口生存时间,当定时器计时到一定时间后,端口生存时间减为0,则自动从组播组中删除该端口。由于大部分的应用都是当发送离开报文时,组播组成员才离开组,所以这里我们对端口生存时间不做讨论。
表1和2中主机A、C、D为同一组播组,主机B、E、F、G为同一组播组,组播MAC地址为组播组对应的MAC地址,组播IP地址为组播组对应的IP地址。端口掩码为16位二进制数,每一位二进制位表示交换机的一个端口,若为“1”表示该端口连接的是组播组成员,“0”则不是。
图2中主机 A、C、D属于组播 IP地址为255.0.0.1的组播组,对应的MAC地址为01:00:2C:01:21:30。主机B、E、F、G属于组播 IP地址为255.0.0.2的组播组,对应的MAC地址为01:00:2C:01:21:31。结合表1中的端口掩码和图2可以看出主机A连接在交换机1的0端口,主机B连接在交换机1的1端口。结合表2中的端口掩码和图2可以看出主机C、D分别连接在交换机2的2、3端口,主机E、F、G 分别连接在交换机 2的 4、5、6端口。表1和2中端口掩码的第15位都为“1”,表示交换机1与交换机2是通过15端口相连接的。那么IGMP Snooping的工作过程如下,以主机A、C、D这一组播组为例:
a.交换机1定时向整个网络发送IGMP查询报文。发送给主机C、D的查询报文由交换机1发给交换机2,然后由交换机2转发。
b.当主机A接收到此报文后,会以IGMP查询报文对应以太帧中的源MAC地址为目的MAC地址,以主机A所在组播组的MAC地址01:00:2C:01:21:30为源MAC地址,发送IGMP报告报文,通知交换机1端口0存在一个组播组成员,交换机1从端口0接收到IGMP成员报告报文后,从对应的以太帧中获取目的MAC地址,即01:00:2C:01:21:30。此地址即为该组播组的MAC地址。对于主机C、D,交换机1将查询报文发送给交换机2,交换机2转发给主机C、D,主机C、D同样以IGMP查询报文对应以太帧中的源MAC地址为目的MAC地址,以主机C、D所在组播组的MAC地址01:00:2C:01:21:30为源MAC地址返回报告报文给交换机2,交换机2再转发给交换机1。
c.交换机1查找组播表,若表中有对应的组播MAC地址,则将端口掩码对应位置置为“1”。本例如表1所示,交换机1端口0连接的是主机A,端口15连接的是交换机2,由于交换机2转发主机C、D的报告报文,所以交换机1认为与交换机2相连的端口15也是组播组成员,故将端口掩码置为1000 0000 0000 0001,即端口0和15都是该组播组成员。
对于交换机2,它也会定时向整个网络发送IGMP查询报文,收到交换机1和主机C、D的IGMP报告报文后,它也会建立一个如表2所示的组播表。由于交换机1转发主机A的报告报文,所以交换机2认为与交换机1相连的端口15也是组播组成员。该组播MAC地址和组播IP地址与表1中主机A所在组相同,表示主机A、C、D在同一组播组。将端口掩码置为1000 0000 0000 1100,表示交换机2 的2、3、15 端口相连的主机C、D和交换机1都是该组播组的成员。
d.若主机C、D被设置为不再接收组播组255.0.0.1的组播报文,则主机C、D会立即发送一个IGMP离开报文到IGMP查询者,即交换机1和2。对于交换机1来说,主机C、D的离开报文由交换机2转发,那么交换机1认为与交换机2连接的端口15不再是该组播组的成员,收到离开报文后它会删除交换机1组播表中的对应项,即将端口15从表中该组删除,即将端口掩码对应项置为0。对于交换机2来说,它也会将端口2、3(即主机C、D),从交换机2组播表中的对应项中删除,这样主机C、D将不再是该组播组的成员,不再接收该组播组的数据。
e.组播报文的转发过程是这样的,当交换机1收到主机A发送的组播报文时,它会取出组播报文的目的MAC地址,即01:00:2C:01:21:30,也就是组播MAC地址。然后在组播表中查找该MAC地址对应的表项,若找到对应项,则根据端口掩码直接向该组成员转发组播报文。若没找到对应表项则丢弃该组播报文。
以上就是IGMP Snooping的工作过程,对于主机B、E、F、G这一组组播组,工作过程与主机A、C、D这一组组播组是相同的。如果组播报文的发送方不是主机 A、B,而是主机 C、D、E、F、G 中的任意一台或者几台,它的工作过程和以上介绍的是相同的。
5 IGMP Snooping技术在以太网总线雷达系统中的应用
以太网总线雷达系统网络基本框图如图3所示。以太网总线雷达系统一般具有两台交换机,图3中的交换机1一般安装在雷达箱体内,交换机2一般安装在雷达操控方舱中。两台交换机通过雷达汇流环中转数据。
图3 以太网总线雷达系统网络基本框图
在雷达系统中某些分系统往往同时需要某一分系统的数据,所以某一分系统就需要同时将数据发送给多个分系统。比如某些支持远程终端的雷达系统,因为需要电视/红外数字视频同时显示在本地终端和远程终端上,所以必须要采用组播的通信方式。但如果图3中的交换机1和2不具备IGMP Snooping技术的话,那么当数字视频由电视/红外跟踪器发送给交换机1和交换机2后,交换机1和2将向所有与它相连的端口洪泛数字视频,本来不需要数字视频的端口也会收到该数据,这样将会影响整个网络的性能,严重的还会造成整个网络瘫痪。如果采用了IGMP Snooping技术,那么数据只会发送给注册有组播成员的端口,这样将大大减少不必要的网络流量,优化网络性能。
6 结束语
本文对IGMP Snooping技术进行了介绍和分析,通过分析可以看出将IGMP Snooping技术应用于以太网雷达总线系统的交换机中,将大大减少组播过程中不必要的网络流量,节省网络资源,优化网络性能。所以雷达系统设计师在选择构建以太网总线雷达系统的交换机时,应选择支持IGMP Snooping技术的交换机。
[1]杜旭,张连靖,余江等.IGMP Snooping协议实现方案[J].计算机应用,2004,24(zl):14-15.
[2]王军,吴志美.交换式以太网上的多播协议[J].软件学报,2003,14(3):496-502.
[3] 谢希人,计算机网络(第4版)[M].北京:电子工业出版社,2004.
[4]Haberman B.Multicast Router Discovery[S].RFC 4286,2005.
[5]Christensen M.Considerations for IGMP and MLD Snooping Switches [S]. RFC 4541,2006.