CN101515873A - 组播网络中的状态管理方法、路由器及系统 - Google Patents
组播网络中的状态管理方法、路由器及系统 Download PDFInfo
- Publication number
- CN101515873A CN101515873A CNA2009101312207A CN200910131220A CN101515873A CN 101515873 A CN101515873 A CN 101515873A CN A2009101312207 A CNA2009101312207 A CN A2009101312207A CN 200910131220 A CN200910131220 A CN 200910131220A CN 101515873 A CN101515873 A CN 101515873A
- Authority
- CN
- China
- Prior art keywords
- requestor
- querier
- message
- declaration message
- network segment
- 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.)
- Granted
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种组播网络中的状态管理方法、路由器及系统,该方法包括:查询器在定期向非查询器和用户终端发送查询报文的基础上进一步构造宣告报文,并按照宣告报文发送周期向所述网段中的非查询器发送宣告报文;所述非查询器判断在宣告报文探测周期内是否接收到所述查询器发送的宣告报文,其中所述宣告报文探测周期应大于所述宣告报文的发送周期,但应小于所述查询报文发送周期,并根据判断的结果以及预先设定的策略,对自身的状态进行设置。通过本发明,非查询器能够及时获知查询器是否存在,并在查询器失效后及时重新选举生成新的查询器,使得网络中组播业务能够快速恢复,增强组播业务性能。
Description
技术领域
本发明涉及通信技术领域,特别涉及一种组播网络中的状态管理方法、路由器及系统。
背景技术
随着IPTV(交互式网络电视)、视频会议等业务的开展、数字电视的兴起,组播业务在现有网络上越来越受到广泛的应用。
目前,用户终端主要依靠IGMP(Internet Group Management Protocol,互联网组管理协议)相关的协议实现组播业务,IGMP是TCP/IP(TransmissionControl Protocol/Internet Protocol,传输控制协议/互联网络协议)族中负责IP组播成员管理的协议,用来在IP用户终端和与其直接相邻的组播路由器之间建立、维护组播组成员关系。
现有技术中,在一个网络的网段中,用户终端通过相连接的路由器获取组播业务的组播数据报文,获取流程如图1所示,包括以下步骤:
步骤S101、用户终端需要组播业务的组播数据报文时,向该网段中与该用户终端相连的路由器发送IGMP组加入请求,请求路由器查找并转发组播业务。
步骤S102、路由器收到用户终端发送的IGMP组加入请求后,根据用户终端发送的IGMP组加入请求,生成一个IGMP表项。
步骤S103、路由器根据生成的IGMP表项触发路由器所在网络的引流协议,根据该引流协议,路由器向网络中查询具有用户终端需要的组播数据报文的组播源。
步骤S104、路由器查询到上述的具有用户终端需要的组播数据报文的组播源后,向该组播源请求用户所需的组的组播数据。
步骤S105、组播源接收到路由器发送的用户所需组的数据请求后,向该路由器发送其所请求的组播数据报文。
步骤S106、路由器接收到组播源发送的用户所需组的组播数据报文后,向该网段中的用户终端转发该组播数据报文。
随着组播业务的进一步发展,在一个网段中,由于用户终端的数量增长以及用户终端组播业务需求数量的增加,只设置一个路由器已不能满足众多用户终端的组播业务需求,为了保证组播业务开展的可靠性,可以在同一网段中的每个用户终端周围设置多个与该用户终端相连的路由器。在组播业务中,由于用户终端的应用程序无法对收到的相同组播数据报文进行区分,所以用户终端无法处理同时收到的两份一样的组播数据报文,如果同一个用户终端收到了两份相同的组播数据报文,就会导致视频无法正常显示或者语音无法识别,造成组播业务建立失败或组播业务连接中断。
因此,在组播业务应用中,与用户终端相连的多个路由器应避免将多份相同的组播数据报文传送到同一个用户终端。基于这样的技术思想,在同一网段中,对于一个用户终端,只允许同时存在一台路由器向其进行组播数据报文的转发。与该用户终端相连的多个路由器需要通过竞争机制选举出一台路由器作为该用户终端唯一的路由器,这台路由器称为该用户终端在该网段中的IGMP查询器,而其他路由器称为非查询器。该IGMP查询器周期性的以组播方式向本地网段内的所有用户终端和非查询器发送IGMP通用查询报文,维护本地网段上用户终端接收的组播组。用户终端发出的IGMP组加入请求和所需要的组播数据报文都通过该查询器进行转发,非查询器不转发用户终端的IGMP组加入请求和组播数据报文,从而,保证在一个网段中,只能存在一个查询器。
IGMPv2是IGMP协议的第二个版本,IGMPv2相对于IGMP协议的第一个版本IGMPv1,IGMPv2协议包含了离开信息,允许迅速向路由协议报告组播组成员的终止情况。以IGMPv2为例,网段中查询器的选举机制如下:
初始化时,在该网段中所有的IGMPv2路由器都认为自己是查询器,并向本地网段内的所有用户终端和其他IGMPv2路由器发送IGMP通用查询报文(General Query),该报文中包括该IGMPv2路由器的优先级信息,该优先级信息包括该IGMPv2路由器的IP地址。
本地网段中的其他IGMPv2路由器在收到该IGMP通用查询报文后,将该IGMP通用查询报文的源IP地址与自己的接口地址比较。如果该IGMP通用查询报文的源IP地址小于自己的接口地址,则认为该IGMP通用查询报文的源IP地址所对应的IGMPv2路由器的优先级高于本地的IGMPv2路由器,从而确认发送该IGMP通用查询报文的源IGMPv2路由器为查询器,而接收该IGMP通用查询报文的IGMPv2路由器为非查询器(Non-Querier);如果该IGMP通用查询报文的源IP地址大于自己的接口地址,则认为该IGMP通用查询报文的源IP地址所对应的IGMPv2路由器的优先级低于本地的IGMPv2路由器,从而判断发送该IGMP通用查询报文的源IGMPv2路由器为非查询器,而接收该IGMP通用查询报文的IGMPv2路由器为查询器。通过这样的优先级比较,优先级最高,即IP地址最小的IGMPv2路由器将成为查询器,而其他IGMPv2路由器则成为非查询器。
在上述比较方法中,是认为IP地址小的IGMPv2路由器优先级高,从而选用IP地址最小的IGMPv2路由器作为该网段的查询器,在实际应用中,也可以认为IP地址大的IGMPv2路由器优先级高,从而通过比较,选用IP地址最大的IGMPv2路由器作为该网段的查询器。
进一步的,所有的非查询器都会启动一个定时器(Other Querier PresentTimer,其他查询器存在时间定时器),用以定时接收来自查询器的IGMP通用查询报文。
在该定时器超时前,如果非查询器收到了来自查询器发送的IGMP查询报文,则重置该定时器,继续接收下一个IGMP查询报文;否则,如果在该定时器所设定的时间内,非查询器没有收到来自查询器发送的IGMP查询报文,则认为原查询器失效,并发起新的查询器选举过程。
在实际应用中,由于与用户终端相连的查询器性能要求不高,可选用三层交换机作为查询器,并在查询器上运行IGMP Proxying协议(互联网组管理协议代理),而不用运行组播路由协议,以降低设备的负担。
在如图2所示的组网中,SW1和SW2是与用户终端相连接的小型三层交换机,SW1和SW2都可以作为网段的查询器。SW1和SW2运行IGMP Proxying协议,使这两个小型三层交换机可以作为查询器代理用户终端发送的IGMP业务需求及维护组播组成员关系,并基于该组播组成员关系向目的用户终端进行组播数据报文转发。
在这个组网中,SW1和SW2会形成接收端的查询器竞争。假如现在SW1是查询器,此时,如果SW2重启,SW2将认为自己是查询器,并会向当前网段发送一个IGMP通用查询报文(以下简称“查询报文”)。此时SW1收到查询报文,根据查询报文中的优先级信息,发现自身的优先级比SW2的优先级高,因此仍然认为自己是查询器。但在此之后,由于IGMP协议的缺陷,SW1不会再特意向SW2发送一个确认报文,所以SW2此时也认为自己是一个查询器,直至SW2接收到SW1发送的查询报文,根据上述的查询器选举机制,发现自身优先级低于SW1,从而SW2将自己调整为非查询器。因此,在一定时间间隔内(SW1发送查询报文的周期),网段上会有两个合法的查询器,导致查询器混乱。由于在该时间间隔内网段内有两个查询器,如果用户终端在该时间间隔内有IGMP组加入请求,就会分别通过两个查询器收到两份组播数据报文,其中,一份从SW1转发,而另一份从SW2转发,使得该用户终端的组播业务无法正常使用。
另外,当查询器设备重启后,在时间间隔内,另外一台设备无法获知该网段中缺少查询器,不能立即成为查询器,导致在一段时间内用户终端无法收到组播数据。例如,当前的查询器是SW1,SW1发生重启,而此时SW2无法立即感知共享网络上查询器SW1已经消失,仍然认为SW1是查询器,因此,在一定时间段内不会成为查询器,也不回将网络中的组播数据流引下来。在这一段时间内用户无法收到组播数据流,导致业务暂时中断,直到超过SW2上的其他查询器生存时间定时器超时后,发现查询器不存在,从而重新选举出查询器。查询器设备重启后,在该时间间隔内(按照现有的协议设置,最长时间可达65秒),用户终端无法收到组播数据报文。
现有技术中,虽然可以根据快速选举机制将查询器的查询报文发送周期调整到1秒或更短,从而,在没有查询器时,加快选举出新的查询器,但由于网段中大量的用户终端频繁收到查询报文后,会在短时间内回复大量的查询响应报文,从而,使网络上每秒会有大量的查询响应报文发送到该查询器,极大的占用带宽,而且增加了非查询器和查询器的处理负担。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
现有技术中,由于IGMP协议的缺陷,非查询器重启后,设置自身为查询器,而网段中原有的查询器收到该查询报文不会特意回复查询响应报文,导致网段中存在两个查询器,引起查询器混乱,导致组播业务无法顺利进行;另外,现有技术的组播业务可靠性差,一旦网段中的查询器故障,在最长一个查询周期内,将没有设备作为查询器对组播数据报文进行转发,出现查询器中断,导致组播业务无法顺利进行。而现有的快速选举机制不能解决上述的查询器混乱和查询器中断的问题,反而占用了大量带宽,增加了网络和路由器的负担。因此,用户终端可能在一定时期内收到双份报文,或者收不到报文。
发明内容
本发明提供一种组播网络中的状态管理方法、路由器及系统,以实现非查询器快速获知网段中查询器的是否存在,防止非查询器或查询器重启时,网段中出现查询器混乱造成用户终端无法接收到组播报文或接收到多份组播报文的情况。
为达到上述目的,本发明一方面提供了一种组播网络中的状态管理方法,应用于包括一个查询器和至少一个非查询器以及至少一个用户终端的网段中,其中,所述查询器定期发送查询报文至非查询器以及用户终端,所述方法包括:
所述查询器进一步构造宣告报文,并按照宣告报文发送周期向所述网段中的非查询器发送宣告报文;
所述非查询器判断在宣告报文探测周期内是否接收到所述查询器发送的宣告报文,其中所述宣告报文探测周期应大于所述宣告报文的发送周期,但应小于所述查询报文发送周期,并根据判断的结果以及预先设定的策略,对自身的状态进行设置。
优选的,所述路由器自身的状态根据如下预定策略进行设置:
当所述非查询器在宣告报文探测周期内没有收到查询器发送的宣告报文时,且如果所述非查询器为重启状态或所述非查询器作为新设备接入所述网段,所述非查询器设置自身为所述网段中新的查询器;
当所述非查询器在宣告报文探测周期内没有收到查询器发送的宣告报文时,且如果所述非查询器为正常工作状态,所述非查询器与所述网段中的其他非查询器进行选举,生成所述网段中新的查询器;
当所述非查询器在宣告报文探测周期内收到查询器发送的宣告报文时,所述非查询器根据所述宣告报文设置自身为临时非查询器。
优选的,所述非查询器设置自身为临时非查询器之后,还包括:
所述临时非查询器还需判断在查询报文探测周期内是否接收到所述查询器发送的查询报文,所述查询报文包括所述查询器的优先级信息;
如果所述临时非查询器在查询报文探测周期内接收到所述查询器发送的查询报文,所述临时非查询器获取所述查询报文的优先级信息,比较所述查询器与所述临时非查询器的优先级,进一步根据所述比较的结果进行自身的状态设置;
如果所述临时非查询器在查询报文周期内没有接收到所述查询器发送的查询报文,所述临时非查询器与所述网段的其他非查询器进行查询器选举,生成所述网段中新的查询器。
优选的,所述临时非查询器根据所述比较的结果进行自身状态的设置,具体包括:
如果所述比较的结果为所述查询器的优先级高于所述临时非查询器的优先级,所述临时非查询器设置自身为非查询器;
如果所述比较结果为所述查询器的优先级低于所述临时非查询器的优先级,所述临时非查询器与所述网段的其他非查询器进行查询器选举,生成所述网段中新的查询器。
优选的,如果所述宣告报文还包括所述查询器的优先级信息,所述非查询器根据接收到的所述宣告报文进行自身状态的设置,具体包括:
所述非查询器获取所述宣告报文中所述查询器的优先级信息,比较所述查询器与所述非查询器的优先级;
如果所述比较的结果为所述查询器的优先级高于所述非查询器的优先级,所述非查询器保持当前非查询器的设置;
如果所述比较的结果为所述查询器的优先级低于所述非查询器的优先级时,所述非查询器与所述网段的其他非查询器进行选举,生成所述网段中新的查询器。
优选的,当所述查询器发生重启时,所述方法还包括:
重启后的所述查询器判断在宣告报文探测周期内是否接收到宣告报文;
如果在所述宣告报文探测周期内没有接收到所述宣告报文,重启后的所述查询器设置自身为所述网段中的查询器;
如果在所述宣告报文探测周期内接收到所述宣告报文,重启后的所述查询器根据所述宣告报文设置自身为临时非查询器。
另一方面,不发明还提供了一种路由器,应用于包括一个查询器和至少一个非查询器以及至少一个用户终端的网段中,其中查询器定期向非查询器以及用户终端发送查询报文,所述路由器在当前网段中充当查询器或非查询器,包括:
报文使能模块,至少用于构造宣告报文,并在所述路由器充当查询器时,启动或停止所述路由器向所述当前网段中的非查询器和用户终端发送宣告报文的功能;
报文计时模块,与所述报文使能模块和报文探测模块电性连接,至少用于设定查询器上的宣告报文发送周期或者非查询器上的宣告报文探测周期,并对查询器上的宣告报文发送周期或者非查询器上的宣告报文探测周期进行计时,所述宣告报文发送周期小于所述宣告报文探测周期;
报文探测模块,在所述路由器充当非查询器时启动,用于至少在宣告报文探测周期内探测是否接收到所述当前网段的查询器发送的宣告报文;
状态设置模块,与所述报文探测模块电性连接,用于当所述路由器充当非查询器时,根据报文探测模块探测的宣告报文情况以及预先设定的策略,将所述路由器设置为查询器状态或者非查询器状态。
优选的,所述状态设置模块具体根据如下策略对所述路由器状态进行设定:
当报文探测模块在宣告报文探测周期内没有收到查询器发送的宣告报文,且所述路由器为重启状态或所述路由器作为新设备接入所述当前网段时,设置所述路由器为所述当前网段中新的查询器;
当报文探测模块在宣告报文探测周期内没有收到查询器发送的宣告报文,且所述路由器作为非查询器处在正常工作状态时,设置所述路由器与所述当前网段的其他非查询器进行选举,生成所述当前网段中新的查询器。
当报文探测模块在宣告报文探测周期内收到查询器发送的宣告报文时,根据所述宣告报文继续设置所述路由器为临时非查询器。
优选的,所述报文使能模块,还用于构造查询报文,并在所述路由器充当查询器时,启动所述路由器定期向所述非查询器和用户终端发送查询报文;
所述报文计时模块,还用于设定查询器上的查询报文发送周期或者非查询器上的查询报文探测周期,并对查询器上所述查询报文发送周期或者非查询器上的查询报文探测周期进行计时,所述查询报文发送周期小于查询报文探测周期,但应大于所述宣告报文探测周期;
所述报文探测模块,还用于在所述路由器为临时非查询器时,进一步探测在查询报文探测周期内是否接收到所述当前网段的查询器发送的查询报文。
优选的,当所述路由器被设置为临时非查询器,且所述报文探测模块没有接收到所述当前网段的查询器发送的查询报文,所述状态设置模块进一步用于:
设置所述路由器与所述当前网段的其他非查询器进行选举,生成所述当前网段中新的查询器。
优选的,所述路由器还包括:
比较模块,分别与所述报文探测模块和所述状态设置模块电性连接,用于当所述路由器被设置为临时非查询器,根据所述查询报文或者宣告报文中包含优先级信息,比较所述查询器与所述路由器的优先级。
优选的,当所述路由器被设置为临时非查询器,且所述查询报文或者宣告报文中含有优先级信息时,所述状态设置模块进一步用于:
当所述比较模块的比较结果为所述当前网段的查询器的优先级高于所述路由器的优先级时,设置所述路由器为非查询器;
当所述比较模块的比较结果为所述查询器的优先级低于所述临时非查询器的优先级时,设置所述路由器与所述当前网段的其他非查询器进行查询器选举,生成所述当前网段中新的查询器。
另一方面,本发明还提供了一种组播网络中的状态管理系统,包括一个查询器、至少一个非查询器和至少一个用户终端,其中查询器定期向非查询器以及用户终端发送查询报文:
所述查询器,还用于构造宣告报文,并按照宣告报文发送周期向所述非查询器和所述用户终端发送宣告报文;
所述非查询器,与所述非查询器所在网段中的查询器电性连接,用于判断在宣告报文探测周期内是否接收到所述查询器发送的宣告报文,其中所述宣告报文探测周期应大于所述宣告报文的发送周期,但应小于查询报文发送周期,并根据判断的结果以及预先设定的策略,对自身的状态进行设置。
优选的,所述路由器自身的状态根据如下预定策略进行设置:
当所述非查询器在宣告报文探测周期内没有收到查询器发送的宣告报文时,且如果所述非查询器为重启状态或所述非查询器作为新设备接入所述网段,所述非查询器设置自身为所述网段中新的查询器;
当所述非查询器在宣告报文探测周期内没有收到查询器发送的宣告报文时,且如果所述非查询器为正常工作状态,所述非查询器与所述网段中的其他非查询器进行选举,生成所述网段中新的查询器;
当所述非查询器在宣告报文探测周期内收到查询器发送的宣告报文时,所述非查询器根据所述宣告报文设置自身为临时非查询器。
与现有技术相比,本发明具有以下优点:
通过本发明,非查询器能够及时获知查询器是否存在,并在查询器失效后及时重新选举生成新的查询器,使得网络中组播业务能够快速恢复;并防止非查询器重启或者新的非查询器接入网络时导致的查询器竞争混乱。因此,本发明可以防止用户终端收到多份组播数据报文或无法收到组播数据报文,增强组播业务性能。
附图说明
图1为现有技术获取组播业务数据报文的流程图;
图2为现有技术的组网结构示意图;
图3为本发明提供的一种组播网络中的状态管理方法的流程图;
图4为本发明提供的一种宣告报文的字段结构示意图;
图5为本发明提供的一种组播网络中的状态管理方法在非查询器重启时的实施场景流程图;
图6为本发明提供的一种组播网络中的状态管理方法在查询器重启时的实施场景流程图;
图7为本发明提供的另一种组播网络中的状态管理方法在非查询器重启时的实施场景流程图;
图8为本发明提供的另一种组播网络中的状态管理方法在查询器重启时的实施场景流程图;
图9为本发明提供的一种组播网络中的状态管理系统的结构示意图;
图10为本发明提供的一种组播网络中的路由器结构示意图。
具体实施方式
如背景技术所述,对于存在多个路由器或三层交换机的组网架构,可以设置一个路由器或三层交换机为查询器,而余下的路由器或三层交换机则设置为非查询器。基于这样的组网架构,本发明在作为查询器的路由器或三层交换机上增设宣告报文发送机制,在查询器上设定宣告报文发送周期,查询器按照该宣告报文发送周期向该查询器所在网段中的用户终端和非查询器发送宣告报文,告知各个用户终端和非查询器,本路由器或三层交换机是本网段中的查询器。
基于上述的宣告报文设置,本发明在非查询器上建立了宣告报文接收机制,并设置了宣告报文探测周期,并且,宣告报文探测周期大于上述的宣告报文发送周期,如果非查询器在宣告报文探测周期内接收到了查询器发送的宣告报文,则确定当前网段中存在合法的查询器,并确认自身为非查询器,如果非查询器在宣告报文探测周期内没有接收到查询器发送的宣告报文,则进一步的,根据非查询器的自身状态分为以下两种情况:
情况一、当非查询器为重启状态,或该非查询器作为新设备接入当前网段,并在预定的宣告报文探测周期内未接收到当前网段中查询器发送的宣告报文时,该查询器判断当前网段中不存在合法的查询器,进而,设置自身为该网段中新的查询器。
情况二、当非查询器为正常工作状态,而查询器由于供电中断,接口连接松动或工作时间设置等原因重启或出现设备故障而工作中断,从而导致非查询器在宣告报文探测周期内未接收到当前网段中查询器发送的宣告报文时,该非查询器与该网段中的其他非查询器进行查询器选举,产生新的查询器。具体的选举机制可以单独设定,也可以遵循前述的查询器选举机制,这样的变化并不影响本发明的保护范围。
并且,进一步的,本发明的技术方案中,还可以在查询器所发送的宣告报文中添加设备优先级信息,当非查询器接收到查询器所发送的宣告报文之后,获取其中的设备优先级信息,从而判断当前查询器设备的优先级是否高于该非查询器自身的优先级,如果判断结果为当前查询器设备的优先级高于该非查询器自身的优先级,则继续确认该非查询器为当前网段中的非查询器,反之,如果判断结果为当前查询器设备的优先级低于该非查询器自身的优先级,则该非查询器与该网段中的其他非查询器进行查询器选举,产生新的查询器。在这种情况下,具体的选举机制同样可以单独设定,或遵循前述的查询器选举机制。
需要指出的是,在宣告报文中添加优先级信息只是本发明的一种可选方案。这样处理的好处在于:基于宣告报文发送周期较短的情况,通过宣告报文携带优先级信息,可以快速的使当前网段中的其他设备了解到自身与查询器之间的优先级关系,并进而确定具有更高优先级的设备为查询器,这种通过宣告报文携带优先级信息的方案具有这样的优点。
在具体的实施场景中,设备的优先级通常通过设备的IP地址进行表示,例如,可以设置在同一网段中,IP地址越小的设备优先级越高。在本发明实施场景中所提出的技术方案中,宣告报文所携带的优先级信息可以是发送该宣告报文的查询器设备的IP地址信息,也可以是其他自定义的优先级信息,这样的变化,并不影响本发明的保护范围。
但是,由于按照IGMP协议,在确定了查询器与非查询器的网段中,查询器所发送的IGMP通用查询报文中携带有设备的优先级信息(IP地址信息),所以,通过IGMP通用查询报文,同样可以对由于优先级而导致的查询器选举问题进行调整,只是由于IGMP通用查询报文相比宣告报文的发送周期较长,所以,设备需要经过的优先级验证周期也会相应的延长。因此,上述的通过宣告报文携带优先级信息的方案是一种可以使本发明技术方案取得更好的技术效果的可选子方案,是否包含该方案并不影响本发明的保护范围。
再进一步的,由于当前网段中可能同时存在查询器和非查询器,而其中的查询器设备同样可以由于各种原因而发生重启,在查询器重启过程中,当前网段会出现缺少查询器的情况,在这种情况下,当前网段中不再有设备发送宣告报文或查询报文,重启后的查询器不能确定自己查询器的身份,所以,在重启完成后同样会进行宣告报文的探测,如果没有探测到宣告报文,则设置自身为当前网段中新的查询器。这种情况,与非查询器重启或非查询器作为新设备接入当前网段的处理过程是一致的,这样的技术方案同样属于本发明的保护范围。
通过上述技术方案,防止由于网络中查询器和非查询器之间的不良竞争导致用户终端收到多份组播数据报文或无法收到组播数据报文的情况,避免由此导致的查询器混乱或查询器中断,提高了网络中组播业务的稳定性,缩短了查询器失效时用户组播业务中断的时间。
以下结合具体的应用场景,对本发明的技术方案做详细描述。
本发明提供一种组播网络中的状态管理方法,应用于包括一个查询器和至少一个非查询器以及至少一个用户终端的网段中,其中,查询器定期发送查询报文至非查询器以及用户终端,流程示意图如图3所示,该方法包括:
步骤S301、查询器构造宣告报文,并按照宣告报文发送周期向当前网段中的非查询器发送宣告报文。
其中,如图4所示,查询器所构造并向非查询器所发送的宣告报文具体包括以下字段:
(1)Type字段:Type字段包括报文的type值,即类型值,查询器向非查询器发送多种报文,每一种报文设定一个type值,非查询器接收到该报文后,通过读取报文中的type值来判别该报文具体是什么类型的报文。
例如,预先设置Type=88的报文为宣告报文,则当非查询器接收到Type值为88的报文时,判断此报文为宣告报文。
需要进一步指出的是,上述宣告报文的Type取值88仅是本发明为了方便说明而选取的一种优选实施场景,在具体的应用场景中,可以根据需要采用别的数值,具体数值的变化并不影响本发明的保护范围。
(2)Interval字段:该字段包括查询器发送宣告报文的周期值,即前述的在查询器中所设置的宣告报文发送周期,查询器按照该周期值向当前网段中的非查询器和用户终端发送宣告报文。
如果当前网段中的查询器、非查询器和用户终端的数量、属性没有变化,则认为查询器设置的宣告报文发送周期为固定值。
对于接收到该宣告报文的非查询器,可以根据该Interval字段中所记录的宣告报文发送周期的数值,确定该非查询器所对应的宣告报文探测周期,该周期的设定可以根据具体需要进行调整,但宣告报文的探测周期要长于宣告报文的发送周期,避免在由于查询器的宣告报文来不及发送而导致的宣告报文检测失败,在本发明后续的实施场景中,以宣告报文探测周期的长度等于两倍的宣告报文发送周期的长度来进行设定,从而保障在宣告报文可以及时被探测到的情况下,保障探测结果的准确性和可靠性。当然,在实际应用中,宣告报文探测周期与宣告报文发送周期之间的比例数值可以根据需要进行相应的调整。
(3)Reserved字段:该字段为宣传报文中的保留字段,用于加载其他信息,例如,在该Reserved字段中加载发送该宣传报文的查询器在当前网段中的优先级信息,但是如前所述,在该字段中携带发送该宣传报文的查询器在当前网段中的优先级信息仅是本发明的可选方案,在实际应用中,该字段的具体携带信息根据需要进行调整。
此外,宣告报文中还包括Checksum字段,用于携带识别信息,从而使相关设备可以根据该字段中的信息对宣告报文的错误进行检查。在图5中,位于Checksum字段、Type字段、Interval字段以及Reserved字段之上的两行数字分别表示本宣告报文的比特数和字节数。
需要指出的是,在图4中所示的各字段所占用的比特数和字节数只是本发明的一种优选实施场景,在实际的应用场景中,可以根据需要,对上述各字段在宣告报文中所占用的比特数或字节数进行调整,这样的变化,同样属于本发明的保护范围。
步骤S302、非查询器判断在宣告报文探测周期内是否接收到查询器发送的宣告报文,并根据判断的结果以及预先设定的策略,对自身的状态进行设置。
其中,如前所述,宣告报文探测周期应大于所述宣告报文的发送周期,但应小于查询报文发送周期。
查询报文发送周期是指现有技术中查询器向非查询器发送IGMP通用查询报文(即前述的查询报文)的周期,本发明所提出的宣告报文是由查询器以小于上述查询报文发送周期的时间间隔来向当前网段中非查询器以及用户终端发送的一种宣告自身为查询器的报文,这种宣告报文的发送周期时间长度越小越能够及时的使非查询器确认当前网段中是否存在合法的查询器,并采取相应的业务策略。因此,查询器上设置的宣告报文发送设置,使当前网段中的系统可靠性得到了增强。
为了更加清楚的描述本技术方案,对本步骤中所提出的非查询器自身的状态的设置过程进行进一步说明:
非查询器自身的状态根据如下预定策略进行设置:
A、当非查询器在宣告报文探测周期内没有收到查询器发送的宣告报文时,非查询器可以获知当前网段中没有查询器或查询器无法正常工作,进一步的,非查询器根据自身的状态进行后续的相关设置,从而对当前网段中缺少查询器的情况进行补救。
在具体的实施场景中,非查询器根据自身的状态进行业务功能设置,具体包括以下两种情况:
如果非查询器为重启状态或非查询器作为新设备接入当前网段,该非查询器设置自身为当前网段中新的查询器;
如果非查询器为正常工作状态,该非查询器与当前网段中的其他非查询器进行选举,生成当前网段中新的查询器。
B、当非查询器在宣告报文探测周期内收到查询器发送的宣告报文时,该非查询器确认当前网段中存在有正常工作的查询器设备,因此,该非查询器根据收到的宣告报文设置自身为临时非查询器。
并且,进一步的,在非查询器设置自身为临时非查询器之后,还包括以下处理过程:
临时非查询器还需判断在查询报文探测周期内是否接收到查询器发送的查询报文,其中,查询报文包括查询器的优先级信息。
需要指出的是,这里所述的查询报文,具体指前述的IGMP通用查询报文。而且,上述的查询报文探测周期是在非查询器中进行预先设定的。
一方面,如果临时非查询器在查询报文探测周期内接收到查询器发送的查询报文,该临时非查询器获取查询报文中所包含的的优先级信息,并比较查询器与该临时非查询器的优先级,进一步根据比较的结果进行自身的状态设置。
其中,临时非查询器根据比较的结果进行自身状态的设置,具体包括两种情况:
如果比较的结果为查询器的优先级高于临时非查询器的优先级,该临时非查询器设置自身为非查询器;
如果比较结果为查询器的优先级低于临时非查询器的优先级,该临时非查询器与当前网段的其他非查询器进行查询器选举,生成当前网段中新的查询器。
另一发面,如果临时非查询器在查询报文周期内没有接收到查询器发送的查询报文,该临时非查询器与当前网段的其他非查询器进行查询器选举,生成当前网段中新的查询器。
在具体的实施场景中,如果上述的宣告报文还包括查询器的优先级信息,则步骤S302中非查询器根据接收到的所述宣告报文进行自身状态的设置,具体还包括以下情况:
非查询器获取宣告报文中所包含的查询器的优先级信息,比较查询器与非查询器的优先级;
如果比较的结果为查询器的优先级高于非查询器的优先级,该非查询器保持当前非查询器的设置;
如果比较的结果为查询器的优先级低于非查询器的优先级,该非查询器与当前网段的其他非查询器进行选举,生成当前网段中新的查询器。
需要进一步说明的是,上述的非查询器重启情况下的组播网络中的状态管理方法,对于查询器的重启情况也同样适用,对于当前网段中的查询器,如果发生重启情况,意味着当前网段中不再具有合法的查询器,而且,作为查询器的路由器或者三层交换机与作为非查询器的路由器或者三层交换机在物理实质上并没有明显的区别,只是两者的优先级存在高低差别。因此,查询器在重启后接入当前网段时,并不具有原查询器的业务功能设置,而是同其他非查询器没有区别,具体的处理流程如下:
重启后的查询器判断在宣告报文探测周期内是否接收到宣告报文;
如果在宣告报文探测周期内没有接收到宣告报文,则重启后的查询器设置自身为当前网段中的查询器;
如果在宣告报文探测周期内接收到宣告报文,则重启后的查询器根据该宣告报文设置自身为临时非查询器。
而设置为临时查询器之后的处理流程与上述的非查询器设置为临时查询器之后的处理流程相一致,在此不再重复叙述。
通过本发明,非查询器能够及时获知查询器是否存在,并在查询器失效后重新选举生成新的查询器,使得网络中组播业务能够快速恢复,防止非查询器重启或者接入网络中导致查询器竞争混乱,防止用户终端收到多份组播数据报文或无法收到组播数据报文,增强组播业务性能。
在另一种实施场景中,本发明还提供了一种组播网络中的状态管理方法,具体流程如图5所示,在本实施场景中主要对当非查询器重启时的组播网络中的状态管理方法进行描述,该方法包括以下步骤:
步骤S501、非查询器重启后,该非查询器上的定时器开始计时,同时,该非查询器对其所在的网段进行探测,判断在周期T1内是否接收到查询器发送的宣告报文。
其中,上述的周期T1即为前述的宣告报文探测周期。根据具体实施场景的需要,该周期的长度可以进行预先设置,在数值大小上,应该大于查询器上所设置的宣告报文发送周期,具体宣告报文探测周期长度的变化并不影响本发明的保护范围。
需要指出的是,上述非查询器上的定时器可以是独立的新增定时器,也可以是更新了设置后的已有定时器。例如,现有技术中非查询器上已经存在的其他查询器存在时间定时器(Other Querier Present Timer),在对其进行设置的变更后,即可实现对上述的周期T1的计时。
进一步需要指出的是,非查询器的计时起始点可以设置为该非查询器重启完成时刻的时间点,或非查询器刚加入到当前网段时刻的时间点。
如果非查询器在该周期T1内接收到当前网段的查询器发送的宣告报文,则转入步骤S502;
如果非查询器在该周期T1内没有接收到当前网段的查询器发送的宣告报文,则转入步骤S503。
其中,在本实施场景中,进一步标识该宣告报文的发送周期为T2。在查询器上设置宣告报文的发送周期为T2,以周期T2向非查询器发送宣告报文。如果当前网段中的查询器、非查询器和用户终端的数量、属性没有变化,则认为查询器设置的宣告报文发送周期T2为固定值。
查询器上设有一个宣告使能开关(querier announce enable),通过设置该开关,可以启动或停止该查询器向当前网段的非查询器和用户终端发送宣告报文,查询器上还设有一个宣告计时器(querier announce timer),通过设置该宣告计时器来设置宣告报文的发送周期T2。
按照IGMP协议,查询器以查询报文的发送周期T3向当前网段中的非查询器发送IGMP通用查询报文(以下简称“查询报文”),通过该查询报文告知非查询器在该当前网段中存在合法的查询器,然而查询报文的发送周期较长,因此,在两次查询报文的发送间隔中,非查询器通过查询报文不能快速获知该网段中是否具有查询器,因此,有可能会造成在这段无法明确查询器是否存在的时间内,触发非查询器之间的查询器竞争,视当前网段中出现两个甚至更多数量的查询器,导致查询器混乱,从而造成组播业务建立失败或组播业务连接中断。
因此,为了使非查询器能够快速探测到该查询器的存在,查询器中所设定的宣告报文的发送周期T2应小于查询报文的发送周期T3。
为保证非查询器能够正常接收到查询器发送的宣告报文,非查询器中所设定的宣告报文探测周期T1应至少大于查询器中所设定的宣告报文发送的周期T2,并且,非查询器中所设定的查询报文探测周期T4应至少大于查询器中所设定的查询报文发送的周期T3。
在实际应用当中,宣告报文发送周期T2设置的越短越好。如果当前网段中的查询器、非查询器和用户终端数量和属性上没有变化,则认为该宣告报文探测周期T1为固定值。例如,在IGMPv2协议中,查询报文的发送周期T3为60s。进一步的,基于非查询器中所设定的宣告报文探测周期T1应至少大于查询器中所设定的宣告报文发送的周期T2的要求,可以认为非查询器在2个宣告报文发送周期内接收到宣告报文,在1.5个查询报文发送周期内接收到查询报文,如果宣告报文发送的周期T2为0.5s,则T1=2×T2=1s,T4=1.5×T3=90s。
通过上述周期时间数值的比较,也可以发现,宣告报文的发送周期和探测周期都要远小于查询报文的发送周期和探测周期,这样的设定,可以极大的提高当前网段中非查询器对查询器是否存在的验证效率,从而,在最短的时间内确定当前网段中是否存在合法的查询器,并进而更新自身的业务功能设定。
而另一方面,根据本发明技术方案的设定,用户终端在接收到宣告报文后,不需要向查询器返回宣告报文的响应,从而减少了因众多用户终端在短时间内回复响应而造成对网段带宽的大量占用。
步骤S502、非查询器在宣告报文探测周期T1内接收到查询器发送的宣告报文,获知当前网段中已经具有查询器,非查询器设置自身为临时非查询器,转入步骤S504。
步骤S503、非查询器在宣告报文探测周期T1内没有接收到查询器发送的宣告报文,获知当前网段中没有查询器,非查询器设置自身为当前网段中新的查询器。
这样的设定也是考虑到现有的IGMP协议中对新近的非查询器加入网络或原有的非查询器经过重启而重新接入网络后,都会默认自己是查询器的设定而做出的调整。
步骤S504、临时非查询器对网段进行探测,并通过定时器开始计时,判断在查询报文探测周期T4内是否收到当前网段的查询器发送的查询报文。
当网段中的查询器、非查询器和用户终端的数量、属性没有变化时,认为查询报文探测周期T4为固定值。
如果临时非查询器在查询报文探测周期T4内接收到查询器发送的查询报文,转入步骤S505;
如果临时非查询器在查询报文探测周期T4内没有接收到查询器发送的查询报文,转入步骤S506;
步骤S505、临时非查询器获取查询报文中的优先级信息,根据该优先级信息比较自身与查询器的优先级,判断自身是否为查询器。
如果该临时非查询器的优先级高于查询器的优先级,转入步骤S507;
如果该临时非查询器的优先级低于查询器的优先级,转入步骤S508。
步骤S506、非查询器与当前网段的其他非查询器进行选举,生成网段中新的查询器。
具体的选举机制可以单独设定,也可以遵循前述的查询器选举机制,这样的变化并不影响本发明的保护范围。
步骤S507、该临时非查询器设置自身为当前网段中的查询器。
步骤S508、非查询器与当前网段的其他非查询器进行选举,生成当前网段中新的查询器。
具体的选举机制可以单独设定,也可以遵循前述的查询器选举机制,这样的变化并不影响本发明的保护范围。
通过本发明,非查询器能够及时获知查询器是否存在,并在查询器失效后及时重新选举生成新的查询器,使得网络中组播业务能够快速恢复,防止非查询器重启或者接入网络中导致查询器竞争混乱,防止用户终端收到多份组播数据报文或无法收到组播数据报文,增强组播业务性能。
在另一种实施场景中,如图6所示,针对非查询器未重启,即非查询器正常工作时的组播网络中的状态管理方法进行描述,该方法包括以下步骤:
步骤S601、非查询器在宣告报文探测周期T1内没有收到查询器发送的宣告报文,获知网段中没有查询器。
非查询器没有收到查询器发送的宣告报文包括多种情况,如查询器出现故障、断电、断开网络、或重启时。
本步骤的具体实现方法可以是非查询器对当前网段进行探测,判断非查询器在宣告报文探测周期T1内是否收到查询器发送的宣告报文,并通过非查询器上的定时器对宣告报文探测周期T1进行计时。当在一个完整的宣告报文探测周期T1经过之后,非查询器仍未接收到当前网段的查询器所发送的宣告报文时,非查询器判断当前网段中没有合法的查询器。
步骤S602、该非查询器设置自身为临时查询器,并立即向当前网段中的其他非查询器发送查询报文。
如果此时,当前网段中有多个非查询器在宣告报文探测周期T1内没有收到查询器发送的宣告报文,则这些非查询器均设置自身为临时查询器,并立即向当前网段中的其他非查询器或临时查询器发送查询报文。
步骤S603、其他非查询器或临时查询器接收到查询报文后,选举产生新的查询器。
具体的选举方法是根据查询报文中所携带的设备优先级信息,判断各个非查询器或临时查询器的优先级高低,并根据判断结果,选择最高优先级的非查询器或临时查询器成为当前网段的查询器。
通过本发明,非查询器能够及时获知查询器是否存在,并在查询器失效后及时重新选举生成新的查询器,使得网络中组播业务能够快速恢复,防止用户终端收到多份组播数据报文或无法收到组播数据报文,增强组播业务性能。
本发明组播网络中的状态管理方法的另一个实施场景中,如图7所示,与图4所示的实施场景不同的是,查询器发送的宣告报文中还包括查询器的优先级信息,该优先级信息保存在宣告报文的保留字段中,非查询器接收到查询器发送的宣告报文后,获取查询器的优先级信息,比较自身与查询器的优先级,进而判断非查询器自身是否为新的查询器。该方法包括:
步骤S701、非查询器重启后,对当前网段进行探测,并同时进行计时,判断在宣告报文探测周期T1内是否收到查询器发送的宣告报文。
如果非查询器在宣告报文探测周期T1内收到当前网段的查询器发送的宣告报文,则转入步骤S702;
如果非查询器在宣告报文探测周期T1内没有收到当前网段的查询器发送的宣告报文,则转入步骤S703;
步骤S702、如果非查询器在宣告报文探测周期T1内收到本网段查询器发送的宣告报文,获知当前网段中已经具有了合法的查询器,则该非查询器获取宣告报文中查询器的优先级信息,与自身优先级信息进行比较。
如果查询器的优先级高于非查询器的优先级,则转入步骤S704;
如果查询器的优先级低于非查询器的优先级,则转入步骤S705;
步骤S703、如果非查询器在宣告报文探测周期T1内没有收到当前网段查询器发送的宣告报文,获知当前网段中当前没有合法的查询器,则该非查询器设置自身为当前网段中新的查询器。
步骤S704、如果查询器的优先级高于非查询器的优先级,非查询器保持自身的非查询器设定,即仍设置自身为非查询器。
步骤S705、如果查询器的优先级低于非查询器的优先级,非查询器与当前网段的其他非查询器进行选举,生成当前网段中新的查询器。
通过本发明,非查询器能够及时获知查询器是否存在,并在查询器失效后及时重新选举生成新的查询器,使得网络中组播业务能够快速恢复,防止非查询器重启或者接入网络中导致查询器竞争混乱,防止用户终端收到多份组播数据报文或无法收到组播数据报文,增强组播业务性能。通过在宣告报文中增加查询器的优先级信息,使得非查询器在收到宣告报文时,同时获知查询器的优先级信息,减少查询报文的信息量,从而减少带宽占用量。
进一步的,在另一种应用场景中,查询器发送的宣告报文中包括查询器的优先级信息,当该网段中的非查询器为正常工作状态时,如图8所示,该方法包括:
步骤S801、非查询器对当前网段进行探测,并同时进行计时,如果非查询器在宣告报文探测周期T1内没有收到查询器发送的宣告报文,获知当前网段中没有合法的查询器。
本步骤中具体的计时方式是通过非查询器中的计时器进行实现。
非查询器没有收到查询器发送的宣告报文包括多种情况,如查询器出现故障、断电、断开网络、或重启时。
步骤802,非查询器进行选举,产生新的查询器。具体选举过程为现有技术,在此不再赘述。
如图7和图8所描述的实施场景,查询器直接将优先级信息通过宣告报文中发送,非查询器通过宣告报文就可以获知查询器的优先级信息,非查询器不需要再等接收到查询报文后才获知查询器的优先级信息,同时查询报文也不需要在携带查询器的优先级信息,减少了查询报文的信息量。
本发明通过查询器周期性地发送宣告报文,使得非查询器能够及时地获知查询器的存在,并且查询器失效后,非查询器能够快速重新选举产生新的查询器,使得网络中组播业务能够快速恢复;而非查询器重启后,也不会因为原IGMP协议的缺陷,使得网络中出现多个查询器并存的情况,更不会用户终端收到多份相同的组播数据报文的情况。本发明有效的防止了非查询器重启或者接入网络中导致查询器混乱,缩短了由于查询器重启而导致用户组播业务中断的时间,增强组播业务性能。通过在宣告报文中增加查询器的优先级信息,使得非查询器在收到宣告报文时,同时获知查询器的优先级信息,减少查询报文的信息量,从而减少带宽占用量。
本发明还提供一种组播网络中的状态管理系统,如图9所示,包括一个查询器910、至少一个非查询器920和至少一个用户终端930,其中查询器910定期向非查询器920以及用户终端930发送查询报文,其中:
查询器910,还用于构造宣告报文,并按照宣告报文发送周期向非查询器920和用户终端930发送宣告报文。
非查询器920,与非查询器920所在的网段中的查询器910电性连接,用于判断在宣告报文探测周期内是否接收到查询器910发送的宣告报文,并根据判断的结果以及预先设定的策略,对自身的状态进行设置。
其中,宣告报文探测周期应大于宣告报文的发送周期,但应小于查询报文发送周期,查询报文发送周期是指现有技术中查询器向非查询器发送IGMP通用查询报文的周期。
为保证非查询器920能够更加及时的接收到查询器910发送的宣告报文,在实际应用当中,宣告报文发送周期T2设置的时间长度越短越好。
用户终端930,用于向查询器910请求数据信息,在此不再详细叙述。
进一步的,在本发明所提供的技术方案中,宣告报文中还可以包含查询器910的优先级信息。具体的优先级信息添加过程由查询器910在构造宣告报文时完成。
当查询器910将自身的优先级信息加载在宣告报文中,并通过宣告报文向当前网段中的非查询器920发送时,非查询器920通过宣告报文就可以获知查询器910的优先级信息,非查询器920不需要再等接收到查询报文后才获知查询器910的优先级信息。同时,在这种情况下,查询器910发送查询报文时也不需要在携带查询器的优先级信息,减少了查询报文的信息量。
另一方面,用户终端930接收到查询器910发送的宣告报文后,不需要向查询器910返回宣告报文响应,减少了因众多用户终端930在短时间内回复响应而造成的对当前网段带宽的大量占用。
需要指出的是,和非查询器920在物理实质上,均为路由器或者三层交换机,只是由于优先级差别而在当前网段中实现不同的业务功能,因此,在具体的实施场景中,上述的当前网段中的查询器910和非查询器920可以采用同一种路由器或者三层交换机,这种情况下,该路由器或者三层交换机需要同时具有上述查询器910和非查询器920中的实现各自功能的逻辑模块,这样的变化同样属于本发明的保护范围。
基于上述理解,本发明提出了一种路由器,可以在当前网段中充当上述查询器910或非查询器920,如图10所示,包括:
报文使能模块1001,至少用于构造宣告报文,并在该路由器充当查询器910时,启动或停止该路由器向当前网段中的非查询器920和用户终端930发送宣告报文的功能。
在具体的应用场景中,上述的报文使能模块1001可以具体为一个宣告使能开关,通过设置该开关,启动或停止充当查询器910的路由器向当前网段的非查询器920和用户终端930发送宣告报文。
需要指出的是,在具体的实施场景中,当该路由器充当查询器910时,报文使能模块1001还用于构造查询报文,并启动该路由器定期向非查询器920和用户终端930发送查询报文,当路由器开始充当非查询器920时,报文使能模块1001还可以终止发送查询报文的设置,通过该模块,可以进一步实现路由器状态切换时的报文功能控制,这样的变化同样属于本发明的保护范围。
报文计时模块1002,与宣告使能模块1001和报文探测模块1003电性连接,至少用于设定查询器910上的宣告报文发送周期或者非查询器920上的宣告报文探测周期,并对查询器910上的宣告报文发送周期或者非查询器920上的宣告报文探测周期进行计时,其中,宣告报文发送周期小于宣告报文探测周期。
在具体的应用场景中,上述的报文计时模块1002可以具体为一个宣告计时器,通过设置该宣告计时器来设置查询器910上的宣告报文发送周期T2。
需要指出的是,上述的报文计时模块1002还用于设定查询器910上的查询报文发送周期或者非查询器920上的查询报文探测周期,并对查询器910上的查询报文发送周期或者非查询器920上的查询报文探测周期进行计时,这样的变化同样属于但不限制本发明的保护范围。
其中,查询报文发送周期小于查询报文探测周期,但应大于宣告报文探测周期。
在实际应用中,报文计时模块1002可以是多个物理计时实体装置,以便分别对多个周期进行计时,也可以是合并为一个物理计时实体装置,集成多个周期的计时功能,这样的变化并不影响本发明的保护范围。
报文探测模块1003,在该路由器充当非查询器920时启动,至少用于对非查询器920所在的网段进行探测,判断非查询器920在宣告报文探测周期内是否接收到查询器910发送的宣告报文。
在具体的实施场景中,报文探测模块1003还用于在该路由器为临时非查询器时,进一步探测在查询报文探测周期内是否接收到当前网段的查询器910发送的查询报文。
状态设置模块1004,与报文探测模块1003电性连接,用于当该路由器充当非查询器920时,根据报文探测模块1003探测的宣告报文情况以及预先设定的策略,将路由器设置为查询器状态或者非查询器状态。
具体地,状态设置模块1004具体根据如下策略对所述路由器状态进行设定:
一方面,当该路由器充当非查询器920,且状态设置模块1004在宣告报文探测周期内没有接收到查询器910发送的宣告报文时,进一步包含以下两种情况:
当该路由器为重启状态或该路由器作为新设备接入当前网段时,设置该路由器为当前网段中新的查询器910;
当该路由器为正常工作状态时,设置该路由器与当前网段的其他非查询器进行选举,生成当前网段中新的查询器910。
另一方面,当该路由器充当非查询器920,且状态设置模块1004在宣告报文探测周期内接收到查询器910发送的宣告报文时,状态设置模块1004根据该宣告报文设置该路由器为临时非查询器。
在具体的实施场景中,当路由器被设置为临时非查询器,且报文探测模块1003没有接收到当前网段的查询器910发送的查询报文时,状态设置模块1004进一步用于设置该路由器与当前网段的其他非查询器920进行选举,生成当前网段中新的查询器910。
进一步的,该路由器还包括比较模块1005,分别与报文探测模块1003和状态设置模块1004电性连接,用于当所述路由器被设置为临时非查询器时,根据报文探测模块1003所接收到的查询报文或者宣告报文中所包含的优先级信息,比较查询器910与该路由器的优先级。
在具体的实施场景中,设备的优先级通常通过设备的IP地址进行表示,例如,可以设置在同一网段中,IP地址越小的设备优先级越高。在本发明实施场景中所提出的技术方案中,宣告报文所携带的优先级信息可以是发送该宣告报文的查询器设备的IP地址信息,也可以是其他自定义的优先级信息,上述查询报文中所携带的优先级信息也是如此,这样的变化,并不影响本发明的保护范围。
基于上述的比较模块1005,当该路由器被设置为临时非查询器,且接收到的查询报文或者宣告报文中含有查询器910的优先级信息时,状态设置模块1004进一步用于:
当比较模块1005的比较结果为当前网段的查询器910的优先级高于该路由器的优先级时,设置该路由器为非查询器920;
当比较模块1005的比较结果为当前网段的查询器910的优先级低于该路由器的优先级时,设置该路由器与当前网段的其他非查询器920进行查询器选举,生成当前网段中新的查询器910。
上述模块可以分布于一个装置,也可以分布于多个装置。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施场景所述的方法。
本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明序号仅仅为了描述,不代表实施场景的优劣。
以上公开的仅为本发明的几个具体实施场景,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
Claims (14)
1、一种组播网络中的状态管理方法,应用于包括一个查询器和至少一个非查询器以及至少一个用户终端的网段中,其中,所述查询器定期发送查询报文至非查询器以及用户终端,其特征在于,所述方法包括:
所述查询器进一步构造宣告报文,并按照宣告报文发送周期向所述网段中的非查询器发送宣告报文;
所述非查询器判断在宣告报文探测周期内是否接收到所述查询器发送的宣告报文,其中所述宣告报文探测周期应大于所述宣告报文的发送周期,但应小于所述查询报文发送周期,并根据判断的结果以及预先设定的策略,对自身的状态进行设置。
2、如权利要求1所述的方法,其特征在于,所述非查询器自身的状态根据如下预定策略进行设置:
当所述非查询器在宣告报文探测周期内没有收到查询器发送的宣告报文时,且如果所述非查询器为重启状态或所述非查询器作为新设备接入所述网段,所述非查询器设置自身为所述网段中新的查询器;
当所述非查询器在宣告报文探测周期内没有收到查询器发送的宣告报文时,且如果所述非查询器为正常工作状态,所述非查询器与所述网段中的其他非查询器进行选举,生成所述网段中新的查询器;
当所述非查询器在宣告报文探测周期内收到查询器发送的宣告报文时,所述非查询器根据所述宣告报文设置自身为临时非查询器。
3、如权利要求2所述的方法,其特征在于,所述非查询器设置自身为临时非查询器之后,还包括:
所述临时非查询器还需判断在查询报文探测周期内是否接收到所述查询器发送的查询报文,所述查询报文包括所述查询器的优先级信息;
如果所述临时非查询器在查询报文探测周期内接收到所述查询器发送的查询报文,所述临时非查询器获取所述查询报文的优先级信息,比较所述查询器与所述临时非查询器的优先级,进一步根据所述比较的结果进行自身的状态设置;
如果所述临时非查询器在查询报文周期内没有接收到所述查询器发送的查询报文,所述临时非查询器与所述网段的其他非查询器进行查询器选举,生成所述网段中新的查询器。
4、如权利要求3所述的方法,其特征在于,所述临时非查询器根据所述比较的结果进行自身状态的设置,具体包括:
如果所述比较的结果为所述查询器的优先级高于所述临时非查询器的优先级,所述临时非查询器设置自身为非查询器;
如果所述比较结果为所述查询器的优先级低于所述临时非查询器的优先级,所述临时非查询器与所述网段的其他非查询器进行查询器选举,生成所述网段中新的查询器。
5、如权利要求1所述的方法,其特征在于,如果所述宣告报文还包括所述查询器的优先级信息,所述非查询器根据接收到的所述宣告报文进行自身状态的设置,具体包括:
所述非查询器获取所述宣告报文中所述查询器的优先级信息,比较所述查询器与所述非查询器的优先级;
如果所述比较的结果为所述查询器的优先级高于所述非查询器的优先级,所述非查询器保持当前非查询器的设置;
如果所述比较的结果为所述查询器的优先级低于所述非查询器的优先级,所述非查询器与所述网段的其他非查询器进行选举,生成所述网段中新的查询器。
6、如权利要求1所述的方法,其特征在于,当所述查询器发生重启时,所述方法还包括:
重启后的所述查询器判断在宣告报文探测周期内是否接收到宣告报文;
如果在所述宣告报文探测周期内没有接收到所述宣告报文,重启后的所述查询器设置自身为所述网段中的查询器;
如果在所述宣告报文探测周期内接收到所述宣告报文,重启后的所述查询器根据所述宣告报文设置自身为临时非查询器。
7、一种路由器,应用于包括一个查询器和至少一个非查询器以及至少一个用户终端的网段中,其中查询器定期向非查询器以及用户终端发送查询报文,其特征在于,所述路由器在当前网段中充当查询器或非查询器,包括:
报文使能模块,至少用于构造宣告报文,并在所述路由器充当查询器时,启动或停止所述路由器向所述当前网段中的非查询器和用户终端发送宣告报文的功能;
报文计时模块,与所述报文使能模块和报文探测模块电性连接,至少用于设定查询器上的宣告报文发送周期或者非查询器上的宣告报文探测周期,并对查询器上的宣告报文发送周期或者非查询器上的宣告报文探测周期进行计时,所述宣告报文发送周期小于所述宣告报文探测周期;
报文探测模块,在所述路由器充当非查询器时启动,用于至少在宣告报文探测周期内探测是否接收到所述当前网段的查询器发送的宣告报文;
状态设置模块,与所述报文探测模块电性连接,用于当所述路由器充当非查询器时,根据报文探测模块探测的宣告报文情况以及预先设定的策略,将所述路由器设置为查询器状态或者非查询器状态。
8、如权利要求7所述的路由器,其特征在于,所述状态设置模块具体根据如下策略对所述路由器状态进行设定:
当报文探测模块在宣告报文探测周期内没有收到查询器发送的宣告报文,且所述路由器为重启状态或所述路由器作为新设备接入所述当前网段时,设置所述路由器为所述当前网段中新的查询器;
当报文探测模块在宣告报文探测周期内没有收到查询器发送的宣告报文,且所述路由器作为非查询器处在正常工作状态时,设置所述路由器与所述当前网段的其他非查询器进行选举,生成所述当前网段中新的查询器。
当报文探测模块在宣告报文探测周期内收到查询器发送的宣告报文时,根据所述宣告报文设置所述路由器为临时非查询器。
9、如权利要求7所述的路由器,其特征在于,
所述报文使能模块,还用于构造查询报文,并在所述路由器充当查询器时,启动所述路由器定期向所述非查询器和用户终端发送查询报文;
所述报文计时模块,还用于设定查询器上的查询报文发送周期或者非查询器上的查询报文探测周期,并对查询器上所述查询报文发送周期或者非查询器上的查询报文探测周期进行计时,所述查询报文发送周期小于查询报文探测周期,但应大于所述宣告报文探测周期;
所述报文探测模块,还用于在所述路由器为临时非查询器时,进一步探测在查询报文探测周期内是否接收到所述当前网段的查询器发送的查询报文。
10.如权利要求9所述的路由器,其特征在于,当所述路由器被设置为临时非查询器,且所述报文探测模块没有接收到所述当前网段的查询器发送的查询报文时,所述状态设置模块进一步用于:
设置所述路由器与所述当前网段的其他非查询器进行选举,生成所述当前网段中新的查询器。
11、如权利要求7或9所述的路由器,其特征在于,所述路由器还包括:
比较模块,分别与所述报文探测模块和所述状态设置模块电性连接,用于当所述路由器被设置为临时非查询器时,根据所述查询报文或者宣告报文中包含优先级信息,比较所述查询器与所述路由器的优先级。
12、如权利要求11所述的路由器,其特征在于,当所述路由器被设置为临时非查询器,且所述查询报文或者宣告报文中含有优先级信息时,所述状态设置模块进一步用于:
当所述比较模块的比较结果为所述当前网段的查询器的优先级高于所述路由器的优先级时,设置所述路由器为非查询器;
当所述比较模块的比较结果为所述当前网段的查询器的优先级低于所述路由器的优先级时,设置所述路由器与所述当前网段的其他非查询器进行查询器选举,生成所述当前网段中新的查询器。
13、一种组播网络中的状态管理系统,包括一个查询器、至少一个非查询器和至少一个用户终端,其中查询器定期向非查询器以及用户终端发送查询报文,其特征在于:
所述查询器,还用于构造宣告报文,并按照宣告报文发送周期向所述非查询器和所述用户终端发送宣告报文;
所述非查询器,与所述非查询器所在网段中的查询器电性连接,用于判断在宣告报文探测周期内是否接收到所述查询器发送的宣告报文,其中所述宣告报文探测周期应大于所述宣告报文的发送周期,但应小于查询报文发送周期,并根据判断的结果以及预先设定的策略,对自身的状态进行设置。
14、如权利要求13所述的系统,其特征在于,所述路由器自身的状态根据如下预定策略进行设置:
当所述非查询器在宣告报文探测周期内没有收到查询器发送的宣告报文时,且如果所述非查询器为重启状态或所述非查询器作为新设备接入所述网段,所述非查询器设置自身为所述网段中新的查询器;
当所述非查询器在宣告报文探测周期内没有收到查询器发送的宣告报文时,且如果所述非查询器为正常工作状态,所述非查询器与所述网段中的其他非查询器进行选举,生成所述网段中新的查询器;
当所述非查询器在宣告报文探测周期内收到查询器发送的宣告报文时,所述非查询器根据所述宣告报文设置自身为临时非查询器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101312207A CN101515873B (zh) | 2009-04-09 | 2009-04-09 | 组播网络中的状态管理方法、路由器及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101312207A CN101515873B (zh) | 2009-04-09 | 2009-04-09 | 组播网络中的状态管理方法、路由器及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101515873A true CN101515873A (zh) | 2009-08-26 |
CN101515873B CN101515873B (zh) | 2011-04-13 |
Family
ID=41040178
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101312207A Expired - Fee Related CN101515873B (zh) | 2009-04-09 | 2009-04-09 | 组播网络中的状态管理方法、路由器及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101515873B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108834081A (zh) * | 2018-05-25 | 2018-11-16 | 北京星网锐捷网络技术有限公司 | 一种组播业务处理方法及ap |
-
2009
- 2009-04-09 CN CN2009101312207A patent/CN101515873B/zh not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108834081A (zh) * | 2018-05-25 | 2018-11-16 | 北京星网锐捷网络技术有限公司 | 一种组播业务处理方法及ap |
CN108834081B (zh) * | 2018-05-25 | 2021-05-18 | 北京星网锐捷网络技术有限公司 | 一种组播业务处理方法及ap |
Also Published As
Publication number | Publication date |
---|---|
CN101515873B (zh) | 2011-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4103816B2 (ja) | ルータ設定方法及びルータ装置 | |
CN111464358B (zh) | 一种消息上报方法及装置 | |
EP1919138A1 (en) | A method for implementing backup of the uplink | |
CN104243609B (zh) | 一种信息业务推送方法和装置 | |
CN109040184B (zh) | 一种主节点的选举方法及服务器 | |
CN110275680B (zh) | 一种双控双活存储系统 | |
CN105262836A (zh) | 服务器推送信息的方法及客户端接收推送信息的方法 | |
CN111884875A (zh) | 一种离线设备确定方法及装置 | |
US10931529B2 (en) | Terminal device management method, server, and terminal device for managing terminal devices in local area network | |
US9473317B2 (en) | Communication apparatus and communication method | |
CN101515873B (zh) | 组播网络中的状态管理方法、路由器及系统 | |
US20230198897A1 (en) | Method, network device, and system for controlling packet sending | |
EP2736204A1 (en) | Rendezvous Point Convergence Method and Apparatus | |
EP1532767B1 (en) | Download optimization in the presence of multicast data | |
CN110391923B (zh) | 组播报文处理的方法以及网络设备 | |
US20190036793A1 (en) | Network service implementation method, service controller, and communications system | |
CN101572675B (zh) | 一种发现直连网段中运行vrrp网络设备的方法及装置 | |
EP3258654B1 (en) | Method and system for reducing pim protocol dr change | |
US20140211604A1 (en) | Method and Apparatus for the Fast Detection of Connectivity Loss Between Devices in a Network | |
WO2021146879A1 (zh) | 消息传输的方法、ble设备和ble芯片 | |
US8327023B2 (en) | Querier election method, router, and network system | |
CN103780503A (zh) | 一种负载均衡的实现方法和设备 | |
CN112291378B (zh) | 地址管理装置及地址管理方法 | |
CN116055565B (zh) | 一种数据传输方法、系统、装置、电子设备及存储介质 | |
EP4231607A1 (en) | Data transmission method and communication apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Patentee after: Xinhua three Technology Co., Ltd. Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base Patentee before: Huasan Communication Technology Co., Ltd. |
|
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110413 Termination date: 20200409 |