CN101232510A - 一种多网口设备组播的实现方法及*** - Google Patents
一种多网口设备组播的实现方法及*** Download PDFInfo
- Publication number
- CN101232510A CN101232510A CNA2008101011525A CN200810101152A CN101232510A CN 101232510 A CN101232510 A CN 101232510A CN A2008101011525 A CNA2008101011525 A CN A2008101011525A CN 200810101152 A CN200810101152 A CN 200810101152A CN 101232510 A CN101232510 A CN 101232510A
- Authority
- CN
- China
- Prior art keywords
- port
- multicast
- message
- address
- port numbers
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种多网口设备组播的实现方法,包括:步骤1,在多网口设备上将一个或多个组播地址映射到一个端口号,用于避免组播目的机接收相同的报文;步骤2,当所述端口号对应的端口状态发生变化时,将所述一个或多个组播地址更新到相应的端口号,用于避免因所述端口号对应的端口状态发生变化导致无法发送工GMP报文。本发明采用固定的算法,实现了组播地址和有效物理端口的对应,使得某一个组播地址的IGMP Report报文始终从一个物理端口发送出去。
Description
技术领域
本发明涉及组播,尤其涉及一种多网口设备组播的实现方法及***。
背景技术
对于通用的服务器或客户端,如果其存在两个或两个以上的对外端口,并且希望这些端口都同时加入同一个组播组时,组网图如图1所示。此时在L2交换机(Switch)上开启IGMP Snooping功能,就会导致交换机上两个端口都会监听到同一个组播组的互联网组管理协议(IGMP)报告(Report)报文,而此时从组播源发出的组播业务报文就会有相同的两份被发送到同一个组播目的机。
针对这样的组网,通常的做法是需要借助第三方协议,将同一设备上两个端口进行聚合,从而来避免组播目的机收到重复报文。
这种处理上的缺点是需要借助其他协议(如端口聚合等)来实现,但并不是所有设备都是支持类似端口聚合这样的协议的,当无法进行端口聚合时,组播目的机就会收到双份(或多份)的报文,只能通过上层协议来进行取舍,严重影响处理性能,无法满足特定条件下的需求。另外,对于实时性要求比较高的场合来说,端口聚合这样的协议也无法满足特定的要求。
尤其对于通讯设备而言,如图2所示,通常是由接口线卡、交换线卡、协议处理线卡及连接这些线卡的背板组成。交换线卡是二层以太网的交换中心,功能相当于一个L2 Switch;接口线卡主要负责接收外部用户的请求,然后转给网元内的协议处理线卡进行处理;协议处理线卡有多种,分别处理不同类型的业务报文,如语音解码、实时数据传输等等。接口线卡响应外部用户请求的部分,称之为外部用户面,由接口线卡转给网元内的协议处理线卡处理的部分,称为内部用户面。
在图3所示的常见组网中,对于外部用户面,由于其连接的外部网络均为标准以太网,所以建议采用端口聚合协议进行互联;对于内部用户面,由于不支持端口聚合协议,所以如果实现组播方案就需要对重复的报文进行适当处理,影响性能。
发明内容
为了解决上述的技术问题,提供了一种多网口设备组播的实现方法及***,其目的在于,在不需要进行端口聚合的情况下,能够完成很好的负荷分担,当端口状态发生变化时,能够很快的进行切换,极小的影响业务。
本发明提供了一种多网口设备组播的实现方法,包括:
步骤1,在多网口设备上将一个或多个组播地址映射到一个端口号,用于避免组播目的机接收相同的报文;
步骤2,当所述端口号对应的端口状态发生变化时,将所述一个或多个组播地址更新到相应的端口号,用于避免因所述端口号对应的端口状态发生变化导致无法发送IGMP报文。
步骤1中,还设置组播地址与端口号的映射关系表。
步骤1中,组播地址为协议处理线卡加入的组播IP地址,所述映射为依据组播IP地址及端口状态进行计算端口号。
步骤1中,端口号为组播地址除以协议处理线卡最大端口数的余数对应的可用端口的端口号。
步骤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个,则可以定义一个端口数组为aucPortIndex[4];
如果此时可用的端口数是4个,端口编号分别为1、2、3、4;则对应到数组中的值为{1,2,3,4};
如果此时可用的端口数是1个(假如可用的端口号为2);则对应到数组中的值为{2,2,2,2};
如果此时可用的端口数是2个(假如可用的端口号为1,4);则对应到数组中的值为{1,4,1,4};
如果此时可用的端口数是3个(假如可用的端口号为1,2,3);则对应到数组中的值为{1,2,3,1};
可用端口映射的原则是轮询,但尽量要求均匀分配到数组中。因此有效端口号的选择方法如下:
有效端口号=aucPortIndex[组播地址MOD协议处理线卡最大端口数];
步骤412,从有效端口发送IGMP报文。
当端口物理状态由UP变化为DOWN时,检查一下组播地址/端口映射关系表中有没有端口号对应这个端口的,如果有,则转到上面步骤405,向外面发送一下Report报文,对改端口进行更新。
通过上面的一些步骤,可以保证多网口设备和L2 Switch对接时,如图3那样的组网,不会导致协议处理线卡收到重复的组播报文。而且当某一个或几个端口状态发生变化时,能够很快的完成端口切换,减少业务的丢包。
为了实现本发明提供的多网口设备组播的实现方法,本发明提供了一种多网口设备组播的实现***500,如图5所示,包括:
组播地址与端口号映射模块501,用于在多网口设备上将一个或多个组播地址映射到一个端口号,以避免组播目的机接收相同的报文;
组播地址与端口号映射更新模块502,用于当所述端口号对应的端口状态发生变化时,将所述一个或多个组播地址更新到相应的端口号,以避免因所述端口号对应的端口状态发生变化导致无法发送IGMP报文。
本领域的技术人员在不脱离权利要求书确定的本发明的精神和范围的条件下,还可以对以上内容进行各种各样的修改。因此本发明的范围并不仅限于以上的说明,而是由权利要求书的范围来确定的。
Claims (10)
1.一种多网口设备组播的实现方法,其特征在于,包括:
步骤1,在多网口设备上将一个或多个组播地址映射到一个端口号,用于避免组播目的机接收相同的报文;
步骤2,当所述端口号对应的端口状态发生变化时,将所述一个或多个组播地址更新到相应的端口号,用于避免因所述端口号对应的端口状态发生变化导致无法发送IGMP报文。
2.如权利要求1所述的多网口设备组播的实现方法,其特征在于,步骤1中,还设置组播地址与端口号的映射关系表。
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.一种用于如权利要求1-9任意一项所述的多网口设备组播的实现方法的***,其特征在于,包括:
组播地址与端口号映射模块,用于在多网口设备上将一个或多个组播地址映射到一个端口号,以避免组播目的机接收相同的报文;
组播地址与端口号映射更新模块,用于当所述端口号对应的端口状态发生变化时,将所述一个或多个组播地址更新到相应的端口号,以避免因所述端口号对应的端口状态发生变化导致无法发送IGMP报文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008101011525A CN101232510A (zh) | 2008-02-28 | 2008-02-28 | 一种多网口设备组播的实现方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008101011525A CN101232510A (zh) | 2008-02-28 | 2008-02-28 | 一种多网口设备组播的实现方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101232510A true CN101232510A (zh) | 2008-07-30 |
Family
ID=39898683
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008101011525A Pending CN101232510A (zh) | 2008-02-28 | 2008-02-28 | 一种多网口设备组播的实现方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101232510A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103647720A (zh) * | 2013-12-26 | 2014-03-19 | 迈普通信技术股份有限公司 | 一种IGMP Snooping的处理方法及装置 |
CN104348737A (zh) * | 2013-08-02 | 2015-02-11 | 华为技术有限公司 | 一种组播报文的传输方法及交换机 |
CN104883630A (zh) * | 2015-05-08 | 2015-09-02 | 烽火通信科技股份有限公司 | Pon***中组播级联的适配***和方法 |
CN105978780A (zh) * | 2016-05-10 | 2016-09-28 | 浙江宇视科技有限公司 | 一种端口切换方法及装置 |
-
2008
- 2008-02-28 CN CNA2008101011525A patent/CN101232510A/zh active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104348737A (zh) * | 2013-08-02 | 2015-02-11 | 华为技术有限公司 | 一种组播报文的传输方法及交换机 |
CN104348737B (zh) * | 2013-08-02 | 2018-01-23 | 华为技术有限公司 | 一种组播报文的传输方法及交换机 |
CN103647720A (zh) * | 2013-12-26 | 2014-03-19 | 迈普通信技术股份有限公司 | 一种IGMP Snooping的处理方法及装置 |
CN103647720B (zh) * | 2013-12-26 | 2017-04-26 | 迈普通信技术股份有限公司 | 一种IGMP Snooping的处理方法及装置 |
CN104883630A (zh) * | 2015-05-08 | 2015-09-02 | 烽火通信科技股份有限公司 | Pon***中组播级联的适配***和方法 |
CN104883630B (zh) * | 2015-05-08 | 2018-11-06 | 烽火通信科技股份有限公司 | Pon***中组播级联的适配***和方法 |
CN105978780A (zh) * | 2016-05-10 | 2016-09-28 | 浙江宇视科技有限公司 | 一种端口切换方法及装置 |
CN105978780B (zh) * | 2016-05-10 | 2020-01-14 | 浙江宇视科技有限公司 | 一种端口切换方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102763380B (zh) | 用于路由分组的***和方法 | |
US6804233B1 (en) | Method and system for link level server/switch trunking | |
US10142160B1 (en) | System and methods for managing network hardware address requests with a controller | |
US7359383B2 (en) | Load balancing with mesh tagging | |
US7551616B2 (en) | Forwarding packets to aggregated links using distributed ingress card processing | |
US7145866B1 (en) | Virtual network devices | |
US7693169B2 (en) | Transmission apparatus and frame transmission method | |
CA2594267A1 (en) | End-to-end publish/subscribe middleware architecture | |
US7826465B2 (en) | Methods, systems and computer program products for dynamic communication data routing by a multi-network remote communication terminal | |
CN102404229A (zh) | 负载均衡***、装置及方法 | |
CN103326948B (zh) | 一种交换处理***和方法 | |
CN101257447A (zh) | 一种负载分担的方法、***及路由装置 | |
CN101534253A (zh) | 报文转发方法及装置 | |
US20110110372A1 (en) | Systems and methods to perform hybrid switching and routing functions | |
US20080298362A1 (en) | Session border control using multiple processors | |
WO2022253087A1 (zh) | 一种数据传输方法、节点、网络管理器及*** | |
CN101232510A (zh) | 一种多网口设备组播的实现方法及*** | |
CN1859175A (zh) | 内部可靠互连的通信设备 | |
CN101547147A (zh) | 一种报文处理方法、装置、线卡和管理板 | |
CN1157902C (zh) | 非广播多路访问网络的ip地址映射发送方法 | |
US6947375B2 (en) | System and method for network card switchovers in an IP network | |
CN104935509A (zh) | 一种纵向堆叠***中防止产生环路的方法和装置 | |
CN108092896A (zh) | 堆叠***和聚合组建立装置 | |
CN110995609A (zh) | 报文发送方法、装置、电子设备及存储介质 | |
CN101102231B (zh) | 一种ppp链路路由设备的自动发现方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20080730 |