二层交换设备基于Linux内核桥实现组播的方法技术

技术编号:7810552 阅读:589 留言:0更新日期:2012-09-27 18:48
本发明专利技术公开了一种二层交换设备基于Linux内核桥实现IP组播的方法,包括以下步骤:设置在二层交换设备中的Linux内核桥监听主机与路由器之间的IGMP报文并根据IGMP报告报文或IGMP离开报文对自身或二层交换设备中的网络处理器的组播转发表项进行维护;所述Linux内核桥识别收到的数据帧是否为组播报文,并根据自身或网络处理器上的组播转发表项将组播报文向具有组成员的端口转发,对其他报文进行透传。本发明专利技术,通过设置在二层交换设备中的Linux内核桥实现了IGMPSnooping功能,解决了二层交换设备中组播报文泛滥的问题,通过灵活的配置,大大降低了CPU的负荷,并在此基础上实现了有线端口和无线端口的全桥的IGMPSnooping功能。

【技术实现步骤摘要】

本专利技术涉及通信领域中的IP网络数据传输技术,具体涉及二层交换设备基于Linux内核桥(Linux kernel bridge)实现IP组播的方法。
技术介绍
IP组播技术有效地解决了单点发送、多点接收的问题,实现了 IP网络中点到多点的高效数据传送,能够大量节约网络带宽、降低网络负载。从而方便地提供包括在线直播、网络电视、远程教育、远程医疗、网络电台、实时视频会议等新的增值业务。实现IP组播传输,组播源和接收者以及两者之间的下层网络都必须支持组播协议。根据协议的作用范围,组播协议分为主机-路由器之间的协议,即组播成员关系协议 IGMP,以及路由器-路由器之间协议,主要是各种路由协议。同时,为了有效抑制组播数据在二层网络中的扩散,引入了 IGMP监听(IGMP Snooping)、IGMP Proxy和CGMP协议等二层组播协议。通过IGMP和二层组播协议,在路由器和交换机中建立起直联网段内的组成员关系信息,具体地说,就是哪个接口下有哪个组播组的成员。域内组播路由协议根据IGMP维护的这些组播组成员关系信息,运用一定的组播路由算法构造组播分发树,在路由器中建立组播路由状态,路由器根据这些状态进行组播数据包转发。域间组播路由协议根据网络中配置的域间组播路由策略,在各自治二层设备(AS,Autonomous System)间发布具有组播能力的路由信息以及组播源信息,使组播数据能在域间进行转发。众所周知,IGMP(Internet Group Management Protocol)组播成员管理机制是针对网络协议的第三层设计的,在第三层路由器中可以对组播报文的转发进行控制,只要进行适当的接口配置和对TTL(Time to Live)值的检测就可以了。但是在很多情况下,组播报文要不可避免地经过一些二层交换设备,尤其是在局域网环境里,如果不对二层设备进行相应的配置,则组播报文就会转发给二层交换设备的所有接口,会浪费大量的二层设备资源。
技术实现思路
本专利技术所要解决的技术问题是解决二层交换设备中组播报文泛滥,降低CPU负荷的问题,并进一步实现了有线端口和无线端口的全桥IGMP Snooping功能。为了解决上述技术问题,本专利技术所采用的技术方案是提供一种二层交换设备基于Linux内核桥实现IP组播的方法,包括以下步骤 设置在二层交换设备中的Linux内核桥监听主机与路由器之间的IGMP报文并根据IGMP报告报文或IGMP离开报文对自身或二层交换设备中的网络处理器的组播转发表项进行维护; 所述Linux内核桥识别收到的数据帧是否为组播放报文,并根据自身或网络处理器上的组播转发表项将组播报文向具有组成员的端口转发,对其他报文进行透传。在上述方法中,如果所述二层交换设备具备网络处理器,则所述组播报文由所述网络处理器以Fast Path方式进行转发,否则所述组播报文由所述Linux内核桥以SlowPath方式进行转发。在上述方法中,Linux内核桥以收到的数据帧的目的MAC地址头部是否为01:00:5E并且EtherType值是否为0x0800获得该数据帧是否为组播报文的判断結果。在上述方法中,Linux内核桥对自身或ニ层交换设备中的网络处理器上的组播转发表项进行维护包括以下步骤 A101、以IP层协议类型代码是否为0x02获得该数据帧是否为IGMP报文的判断結果,当判断结果表明所述数据帧报文是不IGMP报文时,丢弃该数据帧;否则转步骤A102 ; A102、判断所述IGMP报文是否为IGMP Query报文,如果是则进行透传;否则转步骤A103 ; A103、判断所述IGMP报文是否为IGMP Leave报文,如果不是,转步骤A105,否则转步骤A104 ; A104、通过读取配置判断是否开启Fast-Leave功能,如果是,则直接从所述Linux内核桥或所述网络处理器上的组播转发表项中删除具有组成员的端ロ,否则,直接转步骤A105 ; A105、透传该报文。在上述方法中,如果组播报文的转发端ロ包括若干无线端ロ,则所述Linux内核桥或所述网络处理器将组播报文克隆为与无线端口数量相应的单播报文。本专利技术,通过设置在ニ层交换设备中的Linux内核桥实现了 IGMP Snooping功能,解决了ニ层交换设备中组播报文泛滥的问题,通过灵活的配置,大大降低了 CPU的负荷,并进ー步实现了有线端口和无线端ロ的全桥的IGMP Snooping功能。附图说明图I是本专利技术的流程 图2是本专利技术中Fast Path功能描述 图3是本专利技术的ー个具体实施例流程图。具体实施例方式本专利技术提供了一种ニ层交换设备基于Linux内核桥实现IP组播的方法,通过软件(即Linux内核桥)来实现全桥(含有线端口和无线端ロ)的IGMP Snooping功能,具体作法是通过对 Linux 内核桥的 br_handle_frame_finishO 函数(位于 net/bridge/br_input, c文件里面)进行扩展,实现IGMP报文的监听功能,维护端ロ的组成员关系,并根据组成员关系由Linux内核桥内(或网络处理器)对组播报文进行转发,从而实现了ニ层交换设备的IP组播功能。其中IGMP监听的工作原理如下 主机发出IGMP成员报告消息,这个消息是给路由器的,在IGMP成员报告经过ニ层交换机吋,交換机对这个消息进行监听,并记录下来形成组成员和接ロ的对应关系,交換机在收到组播报文时,根据组成员和端ロ的对应关系(组播转发表),仅向具有组成员的端ロ转发组播报文。本专利技术包括以下步骤 具体步骤如下 在ニ层交换设备(如家庭网关)中设置基于Linux的内核桥,所述Linux的内核桥监听主机与路由器之间的IGMP报文并根据IGMP报告报文或IGMP离开报文对自身或ニ层交换设备中的网络处理器的组播 转发表项进行维护,对端ロ进行成组或删除操作; 所述Linux内核桥以收到的数据帧的目的MAC地址头部是否为01:00: 5E并且EtherType值是否为0x0800判断该数据帧是否为组播报文,并根据自身或网络处理器上的组播转发表项将组播报文(通常为UDP流)向具有组成员的端ロ转发,对其他报文进行透传。下面结合附图和ー个具体实施例对本专利技术作出详细的说明,以便于本领域技术人员更好地理解。本具体实施例中,ニ层交换设备基于Linux内核桥实现IP组播的实施环境和处理流程如图3所示,包括两台主机、ー个家庭网关(ニ层设备)和一台路由器(三层设备)。主机PCl为台式机,通过网线与家庭网关的LANl ロ(端ロ I)相连,主机PC2为笔记本电脑,采用无线方式与家庭网关的SSIDl (端ロ 2)相连。在家庭网关上设置基于Linux内核桥实现IP组播的软件功能模块,实现IGMP Snooping功能,包括基于IGMP Report报文的成组、基于IGMP Leave报文的快速离开机制、组成员表项老化以及对无线端ロ组播转发的特殊处理。家庭网关上设有支持Fast Path功能的单独网络处理器。路由器负责组播路由及组播源(如IPTV数据流)。Fast Path是指那些可以依据已有状态转发的路径,在这些路径上,网关、ニ层地址等都已经准备好了,不需要缓存数据包,可以直接转发。Sl本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.二层交换设备基于Linux内核桥实现IP组播的方法,其特征在于,包括以下步骤设置在二层交换设备中的Linux内核桥监听主机与路由器之间的IGMP报文,并根据IGMP报告报文或IGMP离开报文对自身或二层交换设备中的网络处理器的组播转发表项进行维护;根据所述Linux内核桥自身或网络处理器上的组播转发表项将组播报文向具有组成员的端口转发。2.如权利要求I所述的二层交换设备基于Linux内核桥实现IP组播的方法,其特征在于,如果所述二层交换设备具备网络处理器,则所述组播报文由所述网络处理器以Fast Path方式进行转发,否则所述组播报文由所述Linux内核桥以Slow Path方式进行转发。3.如权利要求I所述的二层交换设备基于Linux内核桥实现IP组播的方法,其特征在于,Linux内核桥以收到的数据帧的目的MAC地址头部是否为01:00:5E并且EtherType值是否为0x0800获得该数据帧是否为组播报文的判断结果。4.如权利要求I所述的二层交换设备基于Linux内核桥实现IP组播的...

【专利技术属性】
技术研发人员:廖旭周转运吉刘涛王健
申请(专利权)人:烽火通信科技股份有限公司
类型:发明
国别省市:

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

1