组播用户查询和老化处理方法

文档序号:7919500阅读:731来源:国知局
专利名称:组播用户查询和老化处理方法
技术领域
本发明属于数据通信领域,特别涉及组播用户查询和老化处理方法。
背景技术
在数据通信领域中,部署组播业务时,不可避免的要在负责组播用户接
入的4妻入设备上运行IGMP (Internet Group Management Protocol互耳关网组〗番 成员管理协议)。IGMP协议是运行在组播用户终端设备和负责组播用户接 入设备之间的一种组播成员管理协议,组播4妻入设备通过该协议可以获知一 个组播组下有哪些组播用户存在,从而实现组播数据流的正常转发。
目前,IGMP有三个版本,分别为IGMPvl、 IGMPv2和IGMPv3,其中, 较常用的是IGMPv2。 IGMPv2包括三种协议报文IGMP Report报文(主机 发送的组播组请求报文)、IGMP Leave报文(主机发送的组播组离开报文)、 IGMP Query报文(组播接入设备发送的组播成员查询报文)。
根据IGMP协议规定,组播接入设备为了维护组播成员关系,需要定期 向组播用户发送IGMP Query协议l艮文。 一般发送IGMP Query协议l艮文的处 理方式是设置一个查询定时器,定时遍历所有的组播用户,或者以组播用户 接入的端口为单位遍历组播成员用户,找出所有当前时间距离上次发送查询 时间超过预设的查询时间间隔的组播成员用户,将这些组4番成员用户信息复 制 一份加入查询队列,然后向这些组播用户依次发送IGMP Query报文。
另外,对于在预设的老化时间内未回应IGMP Report净艮文的组播用户做 老化处理,即通知该组播用户下线。 一般组播用户老化的处理方式也是设置 一个定时器,定时遍历所有的组播用户,找出所有当前时间距离上次收到回 应IGMP Report报文时间超过预设的老化时间的组播用户,然后依次删除。
但是,当组播用户比较多时,特别是有大量ppp (Point to Point Protocol,
点对点协议)接入用户时,组播接入设备分别定时处理IGMP用户查询和用 户老化时,上述方法会造成定时器处理时间过长,并消耗组播接入设备大量 的内存资源,以及无法及时发送IGMP Query报文和响应用户回应的IGMP R印ort报文,使组播用户非正常老化下线,中断正常的组播业务。因此,需 要提出一种新的管理组播用户的方法。

发明内容
本发明所要解决的技术问题是,提供一种组播用户查询和老化处理方法。
为了解决上述问题,本发明公开了 一种组播用户查询和老化处理方法, 包括
分别创建查询链表和老化链表,按各组播用户的上线时间顺序分别将各 组播用户的标识信息依次写入所述查询链表和老化链表中,并在所述查询链 表中分别为各组播用户设置查询时间戳,所述查询链表中各组播用户的位置 按各组播用户查询时间戳的先后排序,在所述老化链表中分别为各组播用户 设置老化时间戳,所述老化链表中各组播用户的位置按各组播用户老化时间 戳的先后排序;
根据所述查询时间戳向各组播用户发送互联网组播成员管理协议组播成 员查询IGMP Query报文,当收到组播用户返回的互联网组播成员管理协议 组播组请求IGMP Report报文后,修改该组播用户的老化时间戳,根据各组 播用户的老化时间戳对所述各组播用户进行老化处理。
进一步地,上述方法,为组播用户设置的查询时间戳为该组播用户的上 线时间与事先设置的查询时间间隔之和;
为组播用户设置的老化时间戳为该组播用户的上线时间与事先设置的老 4匕时间间隔之和。
其中,当接收到组播用户发送的IGMP Report报文后,若判断发送该 IGMP Report报文的组播用户存在于组播组中,则将所述老化链表中该组播 用户的老化时间戳修改为该组播用户发送所述IGMP Report报文的时间与所 述事先设置的老化时间间隔之和,并将该组播用户置于所述老化链表的末尾。
当接收到组播用户发送的IGMP Report报文后,若判断发送该IGMP Report报文的组播用户不存在于组播组中,则将所述組播用户的标识信息分 别写入所述查询链表和老化链表中;将所述IGMP Report才艮文的发送时间与 所述查询时间间隔之和设置为该组播用户的查询时间戳,将所述IGMP Report 报文的发送时间与所述老化时间间隔之和设置为该组播用户的老化时间戳。
根据所述各组播用户的查询时间戳发送IGMP Query净艮文的过程包括 从所述查询链表的表头顺序查找达到所述查询时间戳的组播用户,向所 述组播用户发送IGMP Query报文,并将该组播用户的查询时间戳修改为所 述IGMP Query才艮文的发送时间与所述查询时间间隔之和,并将该组播用户 置于所述查询链表的末尾。
根据所述各组播用户的老化时间戳进行组播用户老化处理的过程包括
所述组播接入设备从所述老化链表的表头顺序查找达到老化时间戳的组 播用户,从所述老化链表和查询链表中删除该组播用户。
本发明还公开了一种组播用户查询方法,包括
创建查询链表,按各組播用户的上线时间顺序将各组播用户依次写入所 述查询链表中,并为所述各组播用户设置查询时间戳,所述查询链表中各组 播用户的位置按各组播用户查询时间戳的先后排序;
根据所述各组播用户的查询时间戳,发送互联网组播成员管理协议组播 成员查询IGMP Query才艮文。
进一步地,上述方法,为组播用户设置的查询时间戳为该组播用户的上 线时间与事先设置的查询时间间隔之和。
其中,当接收到组播用户发送的互联网组播成员管理协议组播组请求 IGMP Report报文,若判断所述组播用户不存在于组播组中,则将所述组播 用户的标识信息写入所述查询链表,其中,将所述IGMP Report报文的发送 时间与所述查询时间间隔之和设置为该组播用户的查询时间戳。
根据所述各组播用户的查询时间戳发送IGMP Query净艮文的过程包括
从所述查询链表的表头顺序查找达到所述查询时间戳的组播用户,向所 述组播用户发送IGMP Query报文,并将该组播用户的查询时间戳修改为所 述IGMP Query报文的发送时间与所述查询时间间隔之和,并将该组播用户 置于所述查询链表的末尾。
本发明还7>开了 一种组播用户老化处理方法,包括
创建老化链表,按各组播用户的上线时间顺序将各组播用户依次写入所 述老化链表中,并为所述各组播用户设置老化时间戳,所述老化链表中各组 播用户的位置按各组播用户老化时间戳的先后排序;
所述组播接入设备根据所述各组播用户的老化时间戳,进行组播用户老 化处理。
进一步地,上述方法,当接收到组播用户发送的互联网组播成员管理协 议组播组请求IGMP Report报文,若判断所述组播用户不存在于组播组中, 则将所述组播用户的标识信息写入所述老化链表。
其中,为组播用户设置的老化时间戳为最后一次收到该组播用户发送的 互联网组播成员管理协议组播组请求IGMP R印ort报文的时间与事先设置的 老化时间间隔之和。
本发明技术方案利用有效地组织组播用户信息的数据结构,减少組播接 入设备在组播用户查询和老化处理过程中组播接入设备的CPU占用时间,降 低了组播接入设备的内存消耗,提升了组播接入设备的处理能力,防止组播 用户的非正常老化,从而提高了组播接入设备在实际应用中的稳定性。


图1是本发明方法中釆用的同一个数据节点加入两个双向循环链表的数 据结构示意图2是本发明方法创建查询链表和老化链表的流程图3是本发明方法中组播接入设备定时发送IGMP Query报文流程图4是本发明方法中的收到IGMP R邻ort才艮文后的处理流程; 图5是本发明方法中的组播用户老化流程。
具体实施例方式
本发明的主要构思是,组播接入设备针对定时查询和老化处理流程分别 维护一个有序的双向循环链表,下文中称为查询链表和老化链表,各组播用 户作为一个数据节点,分别加入查询链表和老化链表,但各组播用户在这两 个循环链表中的位置可能不同但互不影响,其中,所述查询链表中各组播用 户的位置按各组播用户查询时间戳的先后排序,而老化链表中各组播用户的 位置按各组播用户的老化时间戳先后排序,这样,当组播用户上线后,所有 的用户数据节点(即组播用户)会形成如图1所示的链接关系。当然,也可 以仅创建查询链表或者老化链表,此时各组播用户作为一个数据节点,单独 加入查询链表或者老链表即可。
.下面结合附图和具体实施方式
对本发明技术方案作进一步的详细说明。
在组播接入设备初始化时创建两个有序的双向链表,即查询链表和老化 链表,各组播用户作为一个数据节点分别加入这两个链表,然后组播接入i殳 备通过对这两个链表的维护来实现对各组播用户的管理。
组播接入设备初始化时创建查询链表和老化链表的具体过程如图2所 示,包括以下步骤
步骤201:组播接入设备初始化时创建两个空的双向循环链表,即查询 链表和老化链表;
步骤202:组播接入设备按照各组播用户上线时间的先后顺序将各组播 用户的标识信息分别依次写入查询链表和老化链表,即将各组播用户分别作 为查询链表和老化链表的数据节点,其中,先上线的组播用户在查询链表和 老化链表的前面。
该步骤中,组播用户上线时间是指组播接入设备第 一次收到该組播用户 的IGMP Report报文的时间,下文中所涉及的组播用户上线时间均与此处相
同;组播接入设备将各组播用户的标识信息分别写入查询链表和老化链表时, 还为各组播用户设置查询时间戳和老化时间戳,其中查询链表中每个组播用 户的查询时间戳等于该组播用户上线时间与事先设置的查询时间间隔之和, 老化链表中每个组播用户的老化时间戳等于该组播用户的上线时间与事先设 置的老化时间间隔之和,在本实施例中,老化时间间隔=查询时间间隔*2+10 , 单位为秒。
维护查询链表过程中,组播接入设备根据向各組播用户发送IGMP Query 报文的情况,修改各组播用户的查询时间戳,并更新各组播用户在查询链表 中的位置,查询链表中各组播用户的位置按各组播用户发送IGMP Query的 查询时间戳先后排序。
维护老化链表过程中,根据收到的各组播用户返回的IGMP Report报文 的情况,修改各组播用户的老化时间戳,并更新各组播用户在老化链表中的 位置,老化链表中各组播用户的位置按各组播用户的老化时间戳先后排序, 且在维护老化链表的过程中,当任一组播用户达到老化时间戳,但并未返回 IGMP Report报文时,组播接入设备则从老化链表和查询链表中删除该组播 用户的信息,在本实施例中,组播接入设备先从查询链表中删除该组播用户 的信息然后再从老化链表中删除该组播用户的信息,这样的好处是可以避免 可能出现的不必要的对该组播用户的查询报文的发送。
具体地,组播接入设备对查询链表和老化链表的维护包括以下流程,组 播接入设备的查询流程,组播接入设备收到IGMP Report报文后的处理流程, 以及组播用户老化流程。
上述组播接入设备查询过程,即定时发送IGMP Query报文流程,指接 入设备的查询定时器定时从查询链表的表头顺序查找需要发送IGMP Query 协议报文的数据节点(即组播用户)的过程,如图3所示,包括如下步骤
步骤301:取查询链表中头节点(即第一个数据节点)的查询时间戳;
步骤302:根据读取的查询时间戳判断该节点是否达到预设的查询时间
间隔,即是否需要向该节点发送IGMP Query协议报文,如果是,则进入步 骤303,否则结束本流程;
该步骤中,如果判断不需要向头节点发送IGMP Query协议报文,则表 明不需要向整个链表上的任何节点发送IGMP Query协议报文。
步骤303:向查询链表的头节点发送IGMP Query协议4艮文,然后修改该 节点的查询时间戳,并将该节点的位置调整到查询链表的末尾;
步骤304:判断是否达到一次超时处理的最大个数,如果是,结束本流 程,否则返回步骤301;
该步骤中, 一次超时处理的最大个数指组播接入设备中定时器超时处理 的最大数据节点个数,其值可以根据组播接入设备性能进行调整。
组播接入设备收到IGMP Report报文后的处理流程如图4所示,包括以 下步骤
步骤401:组播接入设备收到IGMP Report报文;
步骤402:判断发送该IGMP Report报文的组播用户是否存在,如果是, 则表明该组播用户不是新增组播用户,则执行步骤404,否则进入步骤403;
步骤403:按照发送IGMP Report报文的组播用户的上线时间,将其标 识信息顺序写入查询链表和老化链表中,并将该组播用户的上线时间与事先 设置的查询时间间隔之和作为查询链表中该組播用户的查询时间戳,将该组 播用户的上线时间与事先设置的老化时间间隔之和作为老化链表中该组播用 户的老化时间戳,然后结束本流程;
该步骤中,上述组播用户的上线时间是指组播接入设备第一次收到该组 播用户的IGMP Report才艮文的时间。
步骤404:组播接入设备接收到已存在于组播组中的组播用户发送的 IGMP Report报文后,从老化链表中找到该組播用户;
步骤405:将该组播用户的老化时间戳修改为当前时间与事先设置的老 化时间间隔的和,并将该组播用户置于老化链表的末尾,结束本流程。
上述组播用户老化流程,如图5所示,包括以下步骤
步骤501:组播接入设备的老化定时器定时从老化链表头顺序判断各组 播用户是否达到老化时间戳,如果是,则进入步骤502,否则结束本流程;
该步骤中,如果老化链表头节点未达到老化时间戳,则表明整个链表上 的用户都不需要老化,在本实施例中,组播接入设备所设置的老化定时器时 间(即老化时间间隔)不小于10秒。
步骤502:从查询链表中断开该数据节点(即组播用户)的链接关系;
步骤503:从老化链表中断开该数据节点的链接关系,并通知组播用户 老化下线,释放该数据节点占用的内存资源;
步骤504:判断是否达到一次超时处理的最大个数,如果是,结束本流 程,否则返回步骤501。
该步骤中, 一次超时处理的最大个数指组播接入设备中定时器超时处理 的最大数据节点个数,其值可以根据组播接入设备性能进行调整。
在其它实施例中,可以单独创建查询链表或者老化链表,此时,接入设 备对于查询链表或者老链表的维护与上述实施例中过程基本相同,不同之处 在于,仅使用查询链表时,发生组播用户正常老化的情况,可以从查询链表 中删除该组播用户;仅使用老化链表时,发生新组播用户加入組播组的情况, 可以将该组播用户加入老化链表中。
从上迷实施例中可以看出,本发明技术方案中提出的查询链表和老化链 表均为双向循环链表,即每个组播用户作为一个数据节点可以分别向前后两 个方向游走,从而保证了双向查找效率,并方便老化的数据节点断链操作, 尤其针对组播用户数目较多的情况,大大节省了时间;其中,由于查询链表 和老化链表的有序性,使得组播接入设备在遍历查找时降低了 CPU的时间占 用率。进一步地,本技术方案还可以限定每次定时器超时处理流程中处理数 据节点的个数,从而及时响应组播业务以外的其他需要处理的业务请求。另 外,虽然本发明技术方案中每个组播用户作为一个数据节点分别加入了这两
个链表,而每个链表均可以通过一指针遍历所有数据节点,因此本技术方案 通过两套指针操作即可实现两个链表间的关联关系,这样组播接入设备中只 需要保存有一份内存信息即可,从而减少了组播接入设备的内存资源消耗。
以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明 的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替 代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。
权利要求
1、一种组播用户查询和老化处理方法,其特征在于,包括:分别创建查询链表和老化链表,按各组播用户的上线时间顺序分别将各组播用户的标识信息依次写入所述查询链表和老化链表中,并在所述查询链表中分别为各组播用户设置查询时间戳,所述查询链表中各组播用户的位置按各组播用户查询时间戳的先后排序,在所述老化链表中分别为各组播用户设置老化时间戳,所述老化链表中各组播用户的位置按各组播用户老化时间戳的先后排序;根据所述查询时间戳向各组播用户发送互联网组播成员管理协议组播成员查询IGMP Query报文,当收到组播用户返回的互联网组播成员管理协议组播组请求IGMP Report报文后,修改该组播用户的老化时间戳,根据各组播用户的老化时间戳对所述各组播用户进行老化处理。
2、 如权利要求l所述的方法,其特征在于,为组播用户设置的查询时间戳为该组播用户的上线时间与事先设置的查 询时间间隔之和;为组播用户设置的老化时间戳为该组播用户的上线时间与事先设置的老 化时间间隔之和。
3、 如权利要求1或2所述的方法,其特征在于,该方法还包括当接收到组播用户发送的IGMP Report净艮文后,若判断发送该IGMP Report报文的组播用户存在于组播组中,则将所述老化链表中该组播用户的 老化时间戳修改为该组播用户发送所述IGMP Report报文的时间与所述事先 设置的老化时间间隔之和,并将该组播用户置于所述老化链表的末尾。
4、 如权利要求1或2所述的方法,其特征在于,当接收到组播用户发送的IGMP Report报文后,若判断发送该IGMP R邻ort报文的组播用户不存在于组播组中,则将所述组播用户的标识信息分 别写入所述查询链表和老化链表中;将所述IGMP Report才艮文的发送时间与 所述查询时间间隔之和设置为该組播用户的查询时间戳,将所述IGMP Report 报文的发送时间与所述老化时间间隔之和设置为该组播用户的老化时间戳。
5、 如权利要求1或2所述的方法,其特征在于,根据所述各组播用户的查询时间戳发送IGMP Query报文的过程包括从所述查询链表的表头顺序查找达到所述查询时间戳的组播用户,向所 述组播用户发送IGMP Query报文,并将该组播用户的查询时间戳修改为所 述IGMP Query才艮文的发送时间与所述查询时间间隔之和,并将该组播用户 置于所述查询链表的末尾。
6、 如权利要求1或2所述的方法,其特征在于,根据所述各组播用户的老化时间戳进行组播用户老化处理的过程包括所述组播接入设备从所述老化链表的表头顺序查找达到老化时间戳的组 播用户,从所述老化链表和查询链表中删除该组播用户。
7、 一种组播用户查询方法,其特征在于,包括创建查询链表,按各组播用户的上线时间顺序将各组4番用户依次写入所 述查询链表中,并为所述各组播用户设置查询时间戳,所述查询链表中各组 播用户的位置按各组播用户查询时间戳的先后排序;根据所述各组播用户的查询时间戳,发送互联网组播成员管理协议组播 成员查询IGMP Query报文。
8、 如权利要求7所述的方法,其特征在于,为组播用户"^殳置的查询时间戳为该组播用户的上线时间与事先设置的查 询时间间隔之和。
9、 如权利要求8所述的方法,其特征在于,该方法还包括当接收到组播用户发送的互联网组播成员管理协议组播组请求IGMP Report报文,若判断所述组播用户不存在于组播组中,则将所述组播用户的 标识信息写入所述查询链表,其中,将所述IGMP Report报文的发送时间与 所述查询时间间隔之和设置为该组播用户的查询时间戳。
10、 如权利要求7或8所述的方法,其特征在于,根据所述各组播用户的查询时间戳发送IGMP Query才艮文的过程包括从所述查询链表的表头顺序查找达到所述查询时间戳的组播用户,向所 述组播用户发送IGMP Query报文,并将该组播用户的查询时间戳修改为所 述IGMP Query净艮文的发送时间与所述查询时间间隔之和,并将该组播用户 置于所述查询链表的末尾。
11、 一种组播用户老化处理方法,其特;f正在于,包4舌创建老化链表,按各组播用户的上线时间顺序将各组播用户依次写入所 述老化链表中,并为所述各组播用户设置老化时间戳,所述老化链表中各组 播用户的位置按各组播用户老化时间戳的先后排序;所述组播接入设备根据所述各组播用户的老化时间戳,进行组播用户老 化处理。
12、 如权利要求11所述的方法,其特征在于,当接收到组播用户发送的互联网组播成员管理协议组播组请求IGMP Report报文,若判断所述组播用户不存在于组播组中,则将所述组播用户的 标识信息写入所述老化链表。
13、 如权利要求11或12所述的方法,其特征在于,为组播用户设置的老化时间戳为最后 一次收到该组播用户发送的互联网 组播成员管理协议组播组请求IGMP Report才艮文的时间与事先设置的老化时 间间隔之和。
全文摘要
本发明公开了组播用户查询和老化处理方法,属于数据通信领域。本发明方法包括创建查询链表和老化链表,按各组播用户上线时间顺序分别将各组播用户的标识写入查询链表和老化链表,在查询链表中分别为各组播用户设置查询时间戳,查询链表中各组播用户的位置按各组播用户查询时间戳先后排序,在老化链表中分别为各组播用户设置老化时间戳,老化链表中各组播用户的位置按各组播用户老化时间戳先后排序;根据查询时间戳向各组播用户发送IGMP Query报文,收到组播用户返回IGMP Report报文后,修改该组播用户的老化时间戳,根据各组播用户的老化时间戳对各组播用户老化处理。本发明减少了组播接入设备的CPU占用时间,降低了其内存消耗。
文档编号H04L29/06GK101378326SQ20081016122
公开日2009年3月4日 申请日期2008年9月18日 优先权日2008年9月18日
发明者李建强 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1