一种多网口设备组播的实现方法及系统的制作方法

文档序号:7692864阅读:258来源:国知局
专利名称:一种多网口设备组播的实现方法及系统的制作方法
技术领域
本发明涉及组播,尤其涉及一种多网口设备组播的实现方法及系统。
技术背景对于通用的服务器或客户端,如果其存在两个或两个以上的对外端口, 并且希望这些端口都同时加入同一个组播组时,组网图如图l所示。此时在L2交换机(Switch)上开启IGMP Snooping功能,就会导致交换机上两个端 口都会监听到同一个组播组的互联网组管理协议(IGMP)报告(Report)报 文,而此时从组播源发出的组播业务报文就会有相同的两份被发送到同一个 组播目的机。针对这样的组网,通常的做法是需要借助第三方协议,将同一设备上两 个端口进行聚合,从而来避免组播目的机收到重复报文。这种处理上的缺点是需要借助其他协议(如端口聚合等)来实现,但并 不是所有设备都是支持类似端口聚合这样的协议的,当无法进行端口聚合时, 组播目的机就会收到双份(或多份)的报文,只能通过上层协议来进行取舍, 严重影响处理性能,无法满足特定条件下的需求。另外,对于实时性要求比 较高的场合来说,端口聚合这样的协议也无法满足特定的要求。尤其对于通讯设备而言,如图2所示,通常是由接口线卡、交换线卡、 协议处理线卡及连接这些线卡的背板组成。交换线卡是二层以太网的交换中 心,功能相当于一个L2 Switch;接口线卡主要负责接收外部用户的请求,然 后转给网元内的协议处理线卡进行处理;协议处理线卡有多种,分别处理不 同类型的业务报文,如语音解码、实时数据传输等等。接口线卡响应外部用 户请求的部分,称之为外部用户面,由接口线卡转给网元内的协议处理线卡 处理的部分,称为内部用户面。在图3所示的常见组网中,对于外部用户面,由于其连接的外部网络均 为标准以太网,所以建议采用端口聚合协议进行互联;对于内部用户面,由于不支持端口聚合协议,所以如果实现组播方案就需要对重复的报文进行适 当处理,影响性能。发明内容为了解决上述的技术问题,提供了 一种多网口设备组播的实现方法及系 统,其目的在于,在不需要进行端口聚合的情况下,能够完成很好的负荷分 担,当端口状态发生变化时,能够很快的进行切换,极小的影响业务。本发明提供了一种多网口设备组播的实现方法,包括步骤1,在多网口设备上将一个或多个组播地址映射到一个端口号,用 于避免组播目的机接收相同的报文;步骤2,当所述端口号对应的端口状态发生变化时,将所述一个或多个 组播地址更新到相应的端口号,用于避免因所述端口号对应的端口状态发生 变化导致无法发送IGMP报文。步骤1中,还设置组播地址与端口号的映射关系表。步骤1中,组播地址为协议处理线卡加入的组播IP地址,所述映射为依 据组播IP地址及端口状态进行计算端口号。步骤l中,端口号为组播地址除以协议处理线卡最大端口数的余数对应 的可用端口的端口号。步骤1还包括步骤51,接收到等待加入组播组的消息时,将该消息加入组播组,并检 査该组播组是否存在,如果存在,则执行步骤53,否则执行步骤52;步骤52,根据组播地址计算端口号,并将该组播地址与端口号的映射关 系加入组播地址与端口号的映射关系表,执行步骤53;步骤53,设置IGMP报文类型为报告,加入到报文发送队列;步骤54,检查发送队列,准备发送IGMP报文。步骤1还包括步骤61,接收到等待离开组播组的消息时,并检查该组播组是否存在, 如果存在,则执行步骤62,否则不进行任何处理;步骤62,根据组播组地址删除组播地址与端口号的映射关系; 步骤63,设置IGMP报文类型为离开,加入到报文发送队列;步骤64,检査发送队列,准备发送IGMP报文。 端口状态包括端口可用和端口不可用。步骤2中,当端口状态为端口不可用时,在其余可用的端口中选择一个 端口的端口号作为相应的端口号。步骤2中,其余可用的端口通过轮询的方式排列。本发明提供了多网口设备组播的实现系统,包括组播地址与端口号映射模块,用于在多网口设备上将一个或多个组播地址映射到一个端口号,以避免组播目的机接收相同的报文;组播地址与端口号映射更新模块,用于当所述端口号对应的端口状态发 生变化时,将所述一个或多个组播地址更新到相应的端口号,以避免因所述 端口号对应的端口状态发生变化导致无法发送IGMP报文。本发明的多网口设备组播实现方法采用固定的算法,实现了组播地址和 有效物理端口的对应,使得某一个组播地址的IGMP Report报文始终从一个 物理端口发送出去;当存在多个组播地址时,又能够实现很好的负荷分担; 同时端口状态的变化对业务影响极小。


图1是现有技术中常见组网示意图;图2是现有技术中通讯处理设备结构示意图;图3是现有技术中通讯处理设备组网示意图;图4是本发明的多网口设备组播实现方法流程示意图;图5是本发明的多网口设备组播实现系统结构图。
具体实施方式
本发明中,在多网口设备上建立、维护一张组播组地址和端口号的对应 关系表,可以是一个组播组地址对应一个端口号或者多个组播组地址对应一 个端口号;其中,组播组地址就是一系列该协议处理线卡加入的组播IP地址; 而端口号是根据不同的组播IP地址以及结合端口目前的状态按照一定的方 法计算出来的端口号,这些端口号直接对应到协议处理线卡的物理端口号, 在组播组往外发送IGMP Report报文时选择使用。上述多网口设备组播实现方法中,当所述协议处理线卡的端口状态发生 变化时,会对表中对应与该变化的端口的条目进行适当的更新,结合组播地 址,计算并换成一个可用的端口号。本发明的多网口设备组播实现方法流程图如图4,具体包括下面几个步骤步骤401,初始化组播地址和端口映射表,如内存的分配和初始化等; 步骤402,进入消息处理函数,等待如加入组播组,离开组播组的消息。 当收到加入组播组消息,则转入步骤403;当收到离开组播组消息,则转入步骤406;步骤403,根据组播地址查表,看表项中是否己经存在同样的组播组了; 如果存在,则转入步骤405;如果不存在,则转入步骤404 ;步骤404,根据组播地址计算端口号;然后连同组播地址写入组播地址/ 端口映射表中;上述步骤中计算端口号的方法是端口号=组播地址/协议处理线卡最大端口数的余数; 步骤405,设置IGMP报文类型为Report,加入到报文发送队列中; 步骤406,同功能上面步骤403;如果存在,则转步骤407;如果不存在, 则不处理;步骤407,根据组播地址査找组播地址/端口映射关系表,将查到的条目 删除掉;步骤408,设置IGMP报文类型为离开(Leave),加入到报文发送队列中;步骤409,检査发送队列,如果有报文,则逐个的取出组播地址和出端 口,准备进行发送;步骤410,对于需要发送IGMP报文的组播地址,看端口映射表中对应 的端口是否有效;如果有效,则转步骤412;如果无效,则转步骤411;步骤411 ,选择一个有效的物理端口号替换表项中无效的端口号;上述步骤中选择有效端口号的方法是将有效端口号按照轮询的方式映射到端口数组中,此数组的最大条目对 应协议处理线卡的最大端口数;假设,协议处理线卡目前最大端口数为4个,则可以定义一个端口数组为aucPortlndex[4];如果此时可用的端口数是4个,端口编号分别为l、 2、 3、 4;则对应到 数组中的值为U, 2, 3, 4};如果此时可用的端口数是1个(假如可用的端口号为2);则对应到数组中的值为{2, 2, 2, 2};如果此时可用的端口数是2个(假如可用的端口号为1, 4);则对应到数组中的值为U, 4, 1, 4};如果此时可用的端口数是3个(假如可用的端口号为1, 2, 3);则对应 到数组中的值为U, 2, 3, 1};可用端口映射的原则是轮询,但尽量要求均匀分配到数组中。因此有效 端口号的选择方法如下有效端口号zaucPortlndex[组播地址MOD协议处理线卡最大端口数]; 步骤412,从有效端口发送IGMP报文。当端口物理状态由UP变化为DOWN时,检査一下组播地址/端口映射 关系表中有没有端口号对应这个端口的,如果有,则转到上面步骤405,向 外面发送一下Report报文,对改端口进行更新。通过上面的一些步骤,可以保证多网口设备和L2 Switch对接时,如图3 那样的组网,不会导致协议处理线卡收到重复的组播报文。而且当某一个或 几个端口状态发生变化时,能够很快的完成端口切换,减少业务的丢包。为了实现本发明提供的多网口设备组播的实现方法,本发明提供了一种 多网口设备组播的实现系统500,如图5所示,包括组播地址与端口号映射模块501,用于在多网口设备上将一个或多个组 播地址映射到一个端口号,以避免组播目的机接收相同的报文;组播地址与端口号映射更新模块502,用于当所述端口号对应的端口状 态发生变化时,将所述一个或多个组播地址更新到相应的端口号,以避免因 所述端口号对应的端口状态发生变化导致无法发送IGMP报文。本领域的技术人员在不脱离权利要求书确定的本发明的精神和范围的条 件下,还可以对以上内容进行各种各样的修改。因此本发明的范围并不仅限 于以上的说明,而是由权利要求书的范围来确定的。
权利要求
1.一种多网口设备组播的实现方法,其特征在于,包括步骤1,在多网口设备上将一个或多个组播地址映射到一个端口号,用于避免组播目的机接收相同的报文;步骤2,当所述端口号对应的端口状态发生变化时,将所述一个或多个组播地址更新到相应的端口号,用于避免因所述端口号对应的端口状态发生变化导致无法发送IGMP报文。
2. 如权利要求l所述的多网口设备组播的实现方法,其特征在于,步骤 l中,还设置组播地址与端口号的映射关系表。
3. 如权利要求2所述的多网口设备组播的实现方法,其特征在于,步骤 1中,组播地址为协议处理线卡加入的组播IP地址,所述映射为依据组播IP 地址及端口状态进行计算端口号。
4. 如权利要求3所述的多网口设备组播的实现方法,其特征在于,步骤1中,端口号为组播地址除以协议处理线卡最大端口数的余数对应的可用端 口的端口号。
5. 如权利要求3所述的多网口设备组播的实现方法,其特征在于,步骤 1还包括步骤51,接收到等待加入组播组的消息时,将该消息加入组播组,并检 查该组播组是否存在,如果存在,则执行步骤53,否则执行步骤52;步骤52,根据组播地址计算端口号,并将该组播地址与端口号的映射关 系加入组播地址与端口号的映射关系表,执行步骤53;步骤53,设置IGMP报文类型为报告,加入到报文发送队列;步骤54,检査发送队列,准备发送IGMP报文。
6. 如权利要求3所述的多网口设备组播的实现方法,其特征在于,步骤 1还包括步骤61,接收到等待离开组播组的消息时,并检查该组播组是否存在, 如果存在,则执行步骤62,否则不进行任何处理;步骤62,根据组播组地址删除组播地址与端口号的映射关系; 步骤63,设置IGMP报文类型为离开,加入到报文发送队列;步骤64,检查发送队列,准备发送IGMP报文。
7. 如权利要求4所述的多网口设备组播的实现方法,其特征在于,端口 状态包括端口可用和端口不可用。
8. 如权利要求7所述的多网口设备组播的实现方法,其特征在于,步骤 2中,当端口状态为端口不可用时,在其余可用的端口中选择一个端口的端 口号作为相应的端口号。
9. 如权利要求8所述的多网口设备组播的实现方法,其特征在于,步骤 2中,其余可用的端口通过轮询的方式排列。
10. —种用于如权利要求l-9任意一项所述的多网口设备组播的实现方 法的系统,其特征在于,包括组播地址与端口号映射模块,用于在多网口设备上将一个或多个组播地 址映射到一个端口号,以避免组播目的机接收相同的报文;组播地址与端口号映射更新模块,用于当所述端口号对应的端口状态发 生变化时,将所述一个或多个组播地址更新到相应的端口号,以避免因所述 端口号对应的端口状态发生变化导致无法发送IGMP报文。
全文摘要
本发明涉及一种多网口设备组播的实现方法,包括步骤1,在多网口设备上将一个或多个组播地址映射到一个端口号,用于避免组播目的机接收相同的报文;步骤2,当所述端口号对应的端口状态发生变化时,将所述一个或多个组播地址更新到相应的端口号,用于避免因所述端口号对应的端口状态发生变化导致无法发送工GMP报文。本发明采用固定的算法,实现了组播地址和有效物理端口的对应,使得某一个组播地址的IGMP Report报文始终从一个物理端口发送出去。
文档编号H04L12/56GK101232510SQ20081010115
公开日2008年7月30日 申请日期2008年2月28日 优先权日2008年2月28日
发明者王阿忠, 秦春华, 郭树波 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1