一种调制解调器及其实现igmp报文版本自适应的方法

文档序号:7997987阅读:131来源:国知局
一种调制解调器及其实现igmp报文版本自适应的方法
【专利摘要】本发明公开了一种调制解调器及其实现igmp报文版本自适应的方法,所述方法包括:调制解调器接收到下联设备发送的igmp?report报文时,检测在前是否已经接收到上联设备发送的igmp?query报文,当未接收到时,按照预设的报文版本选取原则选取版本后,向上联端口发送选取版本的igmp?report报文,并检测设定时间内上联端口是否接收到组播数据流,若是,则记录上联端口支持的报文版本为当前选取的报文版本;否则,按照报文版本选取原则选取下一版本后,重复报文发送及组播数据流检测过程。本发明使得无论下联端口和上联端口连接的设备支持什么版本报文,都不需要修改调制解调器的配置,有效的实现了自适应igmp报文版本。
【专利说明】-种调制解调器及其实现igmp报文版本自适应的方法

【技术领域】
[0001] 本发明涉及网络通信【技术领域】,尤其涉及一种调制解调器及其实现igmp (internet group management protocol,互联网组管理协议)报文版本自适应的方法。

【背景技术】
[0002] 目前modem (调制解调器)对组播的处理主要包括两种方式igmp proxy (互联网组 管理协议代理)和igmp snooping (互联网组管理协议窥探)技术,其中igmp snooping相对 比较简单,主要工作在链路层,它是通过监听客户端和路由器端之间的igmp报文,从而在 链路层建立针对某个组播的组播表转发条目,包括了组播地址、物理端口和VLAN (Virtual Local Area Network,虚拟局域网)的映射关系。igmp proxy主要工作在网络层,是靠拦截 用户和路由器之间的igmp报文建立组播表,proxy设备的上联端口(wan 口)执行主机的角 色,响应来自路由器的查询,当新增用户组或者最后一个用户退出时,主动发送成员报告包 或者离开包,下联端口(Ian 口)执行路由器的角色,完全按照协议中规定的机制执行,包括 查询者选举机制,定期发送通用查询信息,收到离开包时发送特定查询等,其运行主要过程 如下:
[0003] 1,当proxy设备(如modem)收到lan 口的igmp report (igmp报告)报文时,首先 在组播mac表查找发送该报文的用户(通过mac地址标识)是否已经加入了该报文ip组播 组对应的mac组播组,如果根据组播地址、r印ort源ip地址以及组播源ip地址找到了对应 的条目则说明该用户已经加入了 report报文指定的组播组,更新其老化时间,将向wan 口 发送r印ort报文。如果没有找到对应的条目说明该端口还没有加入r印ort报文中指定的 组播组,那么就要根据组播地址、源ip地址以及组播源ip地址新建一个条目,并设置老化 时间,并向wan 口发送report报文。
[0004] 2,当收到lan 口的igmp leave (igmp离开)报文时,同样以组播地址,report源 ip地址和组播源ip地址,查找组播mac表是否已经存在该转发条目,存在则从组播mac表 中删除该条目,并仅以组播地址查找是否还存其他的条目,如果存在说明还有其他的lan 口需要该组播,则将igmp leave包丢掉不再向wan 口发送leave报文,如果不存在该组播 的其他条目,则向wan 口发送igmp leave报文。
[0005] 3,当从wan 口收到上联设备的igmp query (igmp查询)报文时,则查看自己维护 的组播表,对组播表里面所有的组播组都向wan 口回report包。
[0006] 4,只要组播表里面还存在任何一个组播组,都要定期向lan 口下发查询报文。
[0007] 从上面流程可以看出如下几个问题:
[0008] 首先,当modem收到lan 口的igmp report报文或者从wan 口收到igmp query报 文后,怎么确定该向wan 口发送igmp v2还是igmp v3的报文,目前的处理方法包括:方法 一,在modem配置页面有v2/v3选项,在确定上联设备支持哪种版本的igmp报文时,手动选 择向wan 口发送v2还是v3报文,但这种方法不智能,处理效率较低;方法二,避免手动设 置,根据上联设备发送query报文的版本来决定发送igmp report报文的版本,当从wan 口 收到igmp query的版本是v2,则向wan 口发v2的igmp report报文,当从wan 口收到igmp query的版本是v3,则向wan 口发v3的igmp report报文。这种方法虽然克服了手工设置 的问题,但该方法但也有缺陷,表现在:由于上联设备发送igmp query报文是周期性,一般 是两三分钟时间或者更长,甚至有些设备在没有收到igmp r印ort报文之前是不向下发送 igmp query报文的,那么,刚开始很有可能还没有收到上联设备发送的igmp query报文,这 个时候又从lan 口收到了 igmp report报文,那么这时就会导致不知向wan 口发送什么版 本的igmp report报文。
[0009] 其次,关于如何确定向lan 口发送的igmp query报文的版本,目前的主要方式是 通过页面配置,手动选择v2或者v3,这样需要人工干预,不是很智能,而且这样的方式在所 有的lan 口发送的都是相同版本的igmp query包,那么如果lan 口接多个支持不同版本的 设备时,有些设备就会因为收到不支持的query包而工作不正常。


【发明内容】

[0010] 鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上 述问题的调制解调器及其实现igmp报文版本自适应的方法。
[0011] 依据本发明的一个方面,提供了一种调制解调器实现igmp报文版本自适应的方 法,包括:
[0012] 调制解调器接收到下联设备发送的igmp r印ort报文时,检测在前是否已经接收 到上联设备发送的igmp query报文,当未接收到时,按照预设的报文版本选取原则选取版 本后,向上联端口发送选取版本的igmp report报文;
[0013] 调制解调器检测设定时间内所述上联端口是否接收到组播数据流,若是,则记录 所述上联端口支持的报文版本为当前选取的报文版本;否则,按照所述报文版本选取原则 选取下一版本后,重复报文发送及组播数据流检测过程。
[0014] 可选地,本发明所述方法还包括:所述调制解调器在接收到下联设备发送的igmp report报文后,记录接收该igmp report报文的下联端口的端口号以及igmp report报文 的版本号,建立端口号与igmp r印ort报文版本号的映射关系,并根据该映射关系周期性的 向下联端口发送对应版本的igmp query报文。
[0015] 可选地,本发明所述方法中,所述报文版本选取原则包括:按照版本由高至低的选 取原则选取报文版本。
[0016] 可选地,本发明所述方法中,所述调制解调器根据所述报文版本选取原则选取版 本vi后,向所述上联端口发送vi版本的igmp report报文,并启动预先设定的定时器;
[0017] 所述调制解调器在所述定时器超时前,若检测到所述上联端口收到了组播数据 流,贝1J令预先定义的版本变量igmp_version=vi ;否则,返回上述报文版本选取过程。
[0018] 可选地,本发明所述方法中,所述调制解调器在接收到下联设备发送的igmp report报文时,若在前已经接收到上联设备发送的igmp query报文,贝U向上联端口发送与 所述igmp query报文版本相同的igmp report报文。
[0019] 依据本发明的另一个方面,提供了一种调制解调器,包括:
[0020] 检测模块,用于在接收到下联设备发送的igmp r印ort报文时,检测在前是否已经 接收到上联设备发送的igmp query报文,当未接收到时,触发第一版本自适应模块;
[0021] 第一版本自适应模块,用于按照预设的报文版本选取原则选取版本后,向上联端 口发送选取版本的igmp report报文,并检测设定时间内所述上联端口是否接收到组播数 据流,若是,则记录所述上联端口支持的报文版本为当前选取的报文版本;否则,按照所述 报文版本选取原则选取下一版本后,重复报文发送及组播数据流检测过程。
[0022] 可选地,本发明所述调制解调器还包括:
[0023] 第二版本自适应模块,用于在接收到下联设备发送的igmp report报文后,记录接 收该igmp report报文的下联端口的端口号以及igmp report报文的版本号,建立端口号 与igmp report报文版本号的映射关系,并根据该映射关系周期性的向下联端口发送对应 版本的igmp query报文。
[0024] 可选地,本发明所述调制解调器中,所述第一版本自适应模块中报文版本选取原 则包括:按照版本由高至低的选取原则选取报文版本。
[0025] 可选地,本发明所述调制解调器中,所述第一版本自适应模块,具体包括:
[0026] 版本选取子模块,用于根据所述报文版本选取原则选取版本vi后,向所述上联端 口发送vi版本的igmp report报文,并启动预先设定的定时器;
[0027] 版本确定子模块,用于在所述定时器超时前,若检测到所述上联端口收到了组播 数据流,则令预先定义的版本变量igmp_ VerSi〇n=vi ;否则,触发所述版本选取子模块选取 下一版本后继续报文发送。
[0028] 可选地,本发明所述调制解调器中,所述检测模块,还用于在接收到下联设备发送 的igmp report报文时,若检测到在前已经接收到上联设备发送的igmp query报文,则向 上联端口发送与所述igmp query报文版本相同的igmp report报文。
[0029] 本发明有益效果如下:
[0030] 本发明所述方法和装置,通过对组播处理机制进行改进,不仅满足了正常组播功 能,又可以达到完全自动化的效果,使得无论下联端口和上联端口连接的设备支持什么版 本的igmp,都不需要修改modem的配置,有效的实现了自适应igmp报文版本。

【专利附图】

【附图说明】
[0031] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图仅仅是 本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还 可以根据这些附图获得其他的附图。
[0032] 图1为本发明实施例提供的一种调制解调器实现igmp报文版本自适应的方法的 流程图;
[0033] 图2为本发明实施例中调制解调器上联端口侧的版本自适应处理流程图;
[0034] 图3为本发明实施例中调制解调器下联端口侧的版本自适应处理流程图;
[0035] 图4为本发明实施例提供的一种调制解调器的结构框图。

【具体实施方式】
[0036] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。
[0037] 为了解决现有技术中调制解调器不能有效地自适应igmp报文版本的问题,本发 明实施例提供一种调制解调器及其实现igmp报文版本自适应的方法,所述方法仅对组播 处理机制进行改进,不仅满足了正常的组播功能,又达到了完全自动化的效果,使得无论调 制解调器的下联端口和上联端口连接的设备支持什么版本的igmp报文,都不需要修改调 制解调器的配置。下面就通过几个具体实施例对本发明的技术方案进行详细说明。
[0038] 方法实施例
[0039] 本发明实施例提供一种调制解调器实现igmp报文版本自适应的方法,如图1所 示,包括以下步骤:
[0040] 步骤S101,调制解调器接收到下联设备发送的igmp r印ort报文时,检测在前是 否已经接收到上联设备发送的igmp query报文,当未接收到时,执行步骤S102 ;
[0041] 进一步地,该步骤中,若在前已经接收到上联设备发送的igmp query报文,则向上 联端口发送与所述igmp query报文版本相同的igmp report报文。
[0042] 步骤S102,调制解调器按照预设的报文版本选取原则选取版本后,向上联端口发 送选取版本的igmp report报文;
[0043] 该步骤中,所述报文版本选取原则优选地为:按照版本由高至低的选取原则选取 报文版本。
[0044] 步骤S103,调制解调器检测设定时间内所述上联端口是否接收到组播数据流,若 是,执行步骤S104 ;否则,返回步骤S102,选择下一版本继续检测;
[0045] 步骤S104,调制解调器记录所述上联端口支持的报文版本为当前选取的报文版 本。
[0046] 进一步地,本实施例中,调制解调器自适应版本的过程具体为:
[0047] 调制解调器根据报文版本选取原则选取版本vi后,向上联端口发送vi版本的 igmp report报文,并启动预先设定的定时器;
[0048] 调制解调器在定时器超时前,若检测到上联端口收到了组播数据流,则令预先定 义的版本变量igmp_version=vi ;否则,返回上述报文版本选取过程。
[0049] 进一步地,本实施例除了给出自适应上联端口报文版本的方案外,还给出了自适 应下联端口报文版本的方案,具体如下:
[0050] 调制解调器在接收到下联设备发送的igmp report报文后,记录接收该igmp report报文的下联端口的端口号以及igmp report报文的版本号,建立端口号与igmp report报文版本号的映射关系,并根据该映射关系周期性的向下联端口发送对应版本的 igmp query 手艮文。
[0051] 为了更清楚的阐述本发明的实现过程,下面通过一具体应用示例对本发明实施例 所述的方法进行进一步说明。本应用示例中,调制解调器对组播处理机制进行了改进,以自 动适应ν2或者ν3不同的组播环境。对于报文版本的自适应主要表现以下在两个方面:
[0052] -方面,在wan侧(即上联端口侧),在没有收到上联设备发送的query报文之前, 如果lan侧有设备需要加入某个组播组,则先向wan 口发送igmp v3的report包,然后监 测wan 口是否有对应的组播数据包下来,如果在设定的时间(如3?5秒)内没有抓到对应 的组播数据包,则向wan 口发送igmp v2的report包,并记录wan 口是支持igmp v2的,如 果抓到了对应的组播数据包,则记录wan 口是支持igmp v3的,并不再发送v2的report包。
[0053] 上述wan侧的处理流程,具体如图2所示,包括:
[0054] 步骤1,当收到lan 口过来的igmp report报文后,判断wan 口是否已经收到igmp query报文,如果收到则向wan 口发送和igmp query相同版本的igmp report报文,如果还 没有收到igmp query报文,则执行步骤2。
[0055] 步骤2,自定义定时器igmp_timer,定时5秒并启动这个定时器,基于设定的版 本选取选择,向wan 口发送v3的igmp report报文,并开始监测wan 口是否收到了 igmp report加入的组播数据流。
[0056] 该步骤中,定时器的定时时间优选地根据报文收发的平均时间进行设定。
[0057] 步骤3,自定义变量igmp_version,定时器timeout时,如果收到了组播数据流,贝丨J 令igmp_version=v3,那么以后在lan 口收到igmp report报文,向wan 口都发送v3的igmp r印ort报文,如果没收到正确的组播数据流,则转入步骤4。
[0058] 步骤4,给igmp_version赋值v2,向wan 口发送v2的igmp report报文,以后向 wan 口都发送v2的igmp report报文。
[0059] 另一方面,在laM则(即下联端口侧),如图3所示,包括:
[0060] 步骤1,收到lan 口的igmp report报文后,记录下接收该igmp report报文的lan 口的端口号和igmp report报文的版本号,建立端口号和igmp版本号的映射关系。
[0061] 步骤2,调制解调器根据这种映射关系周期性的向lan 口发送对应版本的igmp query报文。即,调制解调器周期性的向lan 口发送与接收到的igmp report报文相同版本 的igmp query手艮文。
[0062] 装置实施例
[0063] 如图4所示,本发明实施例提供一种调制解调器,包括:
[0064] 检测模块410,用于在接收到下联设备发送的igmp r印ort报文时,检测在前是 否已经接收到上联设备发送的igmp query报文,当未接收到时,触发第一版本自适应模块 420 ;
[0065] 第一版本自适应模块420,用于按照预设的报文版本选取原则选取版本后,向上联 端口发送选取版本的igmp report报文,并检测设定时间内所述上联端口是否接收到组播 数据流,若是,则记录所述上联端口支持的报文版本为当前选取的报文版本;否则,按照所 述报文版本选取原则选取下一版本后,重复报文发送及组播数据流检测过程。
[0066] 进一步地,本实施例中,第一版本自适应模块420中报文版本选取原则优选地包 括:按照版本由高至低的选取原则选取报文版本。
[0067] 进一步地,本实施例中,第一版本自适应模块420具体包括:
[0068] 版本选取子模块421,用于根据所述报文版本选取原则选取版本vi后,向所述上 联端口发送vi版本的igmp report报文,并启动预先设定的定时器;
[0069] 版本确定子模块422,用于在所述定时器超时前,若检测到所述上联端口收到了 组播数据流,则令预先定义的版本变量igmp_version=vi ;否则,触发所述版本选取子模块 421选取下一版本后继续报文发送。
[0070] 进一步地,本实施例中,检测模块410,还用于在接收到下联设备发送的igmp report报文时,若检测到在前已经接收到上联设备发送的igmp query报文,则向上联端口 发送与所述igmp query报文版本相同的igmp report报文。
[0071] 优选地,本实施例中,所述调制解调器还包括:
[0072] 第二版本自适应模块430,用于在接收到下联设备发送的igmp report报文后,记 录接收该igmp report报文的下联端口的端口号以及igmp report报文的版本号,建立端 口号与igmp report报文版本号的映射关系,并根据该映射关系周期性的向下联端口发送 对应版本的igmp query报文。
[0073] 综上所述,本发明实施例所述方法和装置,通过对组播处理机制进行改进,不仅满 足了正常组播功能,又可以达到完全自动化的效果,使得无论下联端口和上联端口连接的 设备支持什么版本的igmp,都不需要修改modem的配置,有效的实现了自适应igmp报文版 本。
[0074] 显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精 神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围 之内,则本发明也意图包含这些改动和变型在内。
【权利要求】
1. 一种调制解调器实现igmp报文版本自适应的方法,其特征在于,包括: 调制解调器接收到下联设备发送的igmp r印ort报文时,检测在前是否已经接收到上 联设备发送的igmp query报文,当未接收到时,按照预设的报文版本选取原则选取版本后, 向上联端口发送选取版本的igmp report报文; 调制解调器检测设定时间内所述上联端口是否接收到组播数据流,若是,则记录所述 上联端口支持的报文版本为当前选取的报文版本;否则,按照所述报文版本选取原则选取 下一版本后,重复报文发送及组播数据流检测过程。
2. 如权利要求1所述的方法,其特征在于,所述方法还包括: 所述调制解调器在接收到下联设备发送的igmp report报文后,记录接收该igmp report报文的下联端口的端口号以及igmp report报文的版本号,建立端口号与igmp report报文版本号的映射关系,并根据该映射关系周期性的向下联端口发送对应版本的 igmp query 手艮文。
3. 如权利要求1或2所述的方法,其特征在于,所述报文版本选取原则包括:按照版本 由高至低的选取原则选取报文版本。
4. 如权利要求3所述的方法,其特征在于, 所述调制解调器根据所述报文版本选取原则选取版本vi后,向所述上联端口发送vi 版本的igmp report报文,并启动预先设定的定时器; 所述调制解调器在所述定时器超时前,若检测到所述上联端口收到了组播数据流,则 令预先定义的版本变量igmp_version=vi ;否则,返回上述报文版本选取过程。
5. 如权利要求1或2所述的方法,其特征在于,所述调制解调器在接收到下联设备发送 的igmp report报文时,若在前已经接收到上联设备发送的igmp query报文,贝U向上联端 口发送与所述igmp query报文版本相同的igmp report报文。
6. -种调制解调器,其特征在于,包括: 检测模块,用于在接收到下联设备发送的igmp r印ort报文时,检测在前是否已经接收 到上联设备发送的igmp query报文,当未接收到时,触发第一版本自适应模块; 第一版本自适应模块,用于按照预设的报文版本选取原则选取版本后,向上联端口发 送选取版本的igmp report报文,并检测设定时间内所述上联端口是否接收到组播数据流, 若是,则记录所述上联端口支持的报文版本为当前选取的报文版本;否则,按照所述报文版 本选取原则选取下一版本后,重复报文发送及组播数据流检测过程。
7. 如权利要求6所述的调制解调器,其特征在于,所述调制解调器还包括: 第二版本自适应模块,用于在接收到下联设备发送的igmp report报文后,记录接收 该igmp report报文的下联端口的端口号以及igmp report报文的版本号,建立端口号与 igmp report报文版本号的映射关系,并根据该映射关系周期性的向下联端口发送对应版 本的igmp query报文。
8. 如权利要求6或7所述的调制解调器,其特征在于,所述第一版本自适应模块中报文 版本选取原则包括:按照版本由高至低的选取原则选取报文版本。
9. 如权利要求8所述的调制解调器,其特征在于,所述第一版本自适应模块,具体包 括: 版本选取子模块,用于根据所述报文版本选取原则选取版本vi后,向所述上联端口发 送vi版本的igmp report报文,并启动预先设定的定时器; 版本确定子模块,用于在所述定时器超时前,若检测到所述上联端口收到了组播数据 流,贝1J令预先定义的版本变量igmp_version=vi ;否则,触发所述版本选取子模块选取下一 版本后继续报文发送。
10.如权利要求6或7所述的调制解调器,其特征在于,所述检测模块,还用于在接收 到下联设备发送的igmp report报文时,若检测到在前已经接收到上联设备发送的igmp query报文,贝U向上联端口发送与所述igmp query报文版本相同的igmp report报文。
【文档编号】H04L12/26GK104104606SQ201310112310
【公开日】2014年10月15日 申请日期:2013年4月1日 优先权日:2013年4月1日
【发明者】唐剑波 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1