具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
组播业务的实施具有以下基本特征:
(1)组播地址,组播地址使源不需要知道组播接收者的具体地址,只需要向组播地址发送数据即可。希望接收数据也只需按照组播地址加入组播组。IP地址方案专门为组播划出一个地址范围,在IPv4中为D类地址(224.0.0.0~239.255.255.255),并将D类地址划分为局部链接组播地址、预留组播地址、管理权限组播地址,在IPv6中进一步为组播地址提供了许多新的标识功能。
(2)组播路由稀疏模式独立组播协议(PIM-SM),组播数据通过路由转发树发送到当前组中所有的成员。当有新的成员加入组播组时,一条到达该成员的路径就被续接到当前的组播树上。当成员退出组时,不再必要的路径就被剪枝。构建组播树有多种不同的组播路由协议,路由协议运行于组播路由器之间,负责将组播信息路由到每个接收者。
(3)成员管理,组成员关系通过互联网组管理协议(IGMP)进行管理。主机使用IGMP消息通知本地的边缘组播路由器想加入的组,即告知组播路由器相应组的组播地址。组播路由器通过IGMP来维护一个组播成员列表,并且定期发送“成员询问”消息来探寻表中的各个成员是否仍然存在。组成员利用IGMP的加入和离开消息来动态地加入或者退出组播组。
实施例一
如图3所示,通过无线网状网使家乡路由器或者网络端、客户端组播源S、客户端组播接受者R以及外地代理路由器组成了无缝组播漫游系统。
如图5所示,家乡路由器包括:查询请求接收单元201,组播信息存储单元202,组播信息发送单元203,组播路由更新单元204,以及组播数据转发单元205。
如图4所示,家乡路由器的工作流程包括以下步骤:查询请求接收单元201接收外地代理路由器发来的漫游组播接收者的组播信息查询请求(步骤S101);组播信息发送单元203将预存储在组播信息存储单元202中的所述组播接收者的组播信息传给所述的外地代理路由器(步骤S102);组播路由更新单元204根据所述外地代理路由器发来的组播信息更新消息更新本地组播路由(步骤S 103);组播数据转发单元205根据更新的本地组播路由将组播源发来的组播数据经所述的外地代理路由器发送给漫游中的所述的组播接收者(步骤S104)。
如图9所示,组播接收者在无线接入点的漫游方法包括如下步骤:
当客户端(组播接收者R)未发生漫游时:
a1.当客户端通过成员管理协议通知家乡路由器(AP)想加入一个组播组时,家乡路由器根据客户端的请求向汇集点(RP:Rendezvous Point)方向建立组播分发树;同时家乡路由器存储客户端的组播信息,当客户端漫游后为外地代理路由器提供查询服务;
a2.当客户端通过成员管理协议通知家乡路由器(AP)想离开一个组播组时,家乡路由器发送“成员询问”消息来探寻是否还有其它成员存在;同时家乡路由器删除客户端的组播信息,为客户端漫游后外地代理路由器提供查询服务。当客户端(组播接收者R)从家乡路由器漫游到外地代理路由器时,外地代理通过家乡路由器查询获得客户端组播信息。
b1.在家乡路由器端,如果客户端是以组播接收者R的身份发生的漫游(通过成员管理协议加入过组播组),如图3所示,家乡路由器从以前连接客户端的接口发送“成员询问”消息来探寻是否还有其它成员存在,如果不存在其它成员,则从组播路由的出接口列表中删除这个接口;
b2.在外地代理路由器端,存储这个客户端信息(便于后面的成员管理消息的身份认证),如果客户端是组播接收者R(在家乡路由器加入过组播组),外地代理路由器从家乡路由器继承客户端的组信息(家乡路由器通过发消息告诉外地代理路由器),并以外地代理路由器为基点向汇集点(RP:RendezvousPoint)方向建立组播分发树,因为这个过程与漫游同时完成,所以能使组播路由快速收敛,组播流量几乎不间断;同样,外地代理路由器为了维护组播成员列表,需要且定期发送“成员询问”消息来探寻表中的各个成员是否仍然存在,漫游来的客户端组播接收者R收到这个“询问”消息后会发送“回应”消息,但是通常这个漫游来的客户端组播接收者R与外地代理路由器相连的接口不在同一子网,从安全角度考虑它的身份是不能被外地代理路由器接受的(rfc2236规定),所以在客户端漫游后外地代理路由器需要记录这个客户端信息,如果这个外地代理路由器知道这个客户端是安全漫游来的,则它的成员管理模块就可以接受这个客户端的消息;
b3.在外地代理路由器端,当客户端需要加入或者离开一个组播组时,就像它在家乡路由器一样,通过成员管理消息通知外地代理路由器,外地代理路由器通过上面提到的认证机制对客户端的身份进行认证,如果认证通过,外地代理路由器会对自己维护的组播成员列表进行更新并同时把更新结果通知给家乡路由器,家乡路由器更新自己维护的组播成员信息;客户端再次漫游到另一个外地代理路由器时,这个外地代理路由器仍然需要从家乡路由器继承相关的组信息;
当客户端(组播接收者R或者组播源,也可能是双重身份)从外地代理路由器漫游回到家乡路由器时:
c1.在家乡路由器端,如果客户端是组播源S,则调整对应的组播路由的入接口为家乡路由器与S相连的接口;如果客户端是组播接收者R,则根据存储的对应组信息建立组播路由;
c2.在外地代理路由器端,删除曾经存储的这个客户端的信息;如果客户端是组播接收者R,外地代理路由器从以前连接客户端的接口发送“成员询问”消息来探寻是否还有其它成员存在,如果不存在其它成员,则从组播路由的出接口列表中删除这个接口;
当客户端(组播接收者R或者组播源,也可能是双重身份)在同一个路由器不同接入点间漫游方法类似c中描述,只是不需要为组播源建立组播流量的回传隧道。
无论客户端漫游与否,在客户端与路由器,路由器与路由器之间维护客户端超时与组信息同步机制,以避免无线传输消息丢失所造成的组播信息错误问题。
e1.当客户端未发生漫游时,在家乡路由器上定时探测客户端是否超时。本地组成员管理模块负责删除超时客户端,并根据成员信息更新组播路由表。
e2.当客户端发生漫游时,在外地代理路由器上定时探测客户端是否超时。本地组成员管理模块负责删除超时客户端,并根据组成员信息更新组播路由表。同时在家乡路由器定时探测外地代理上的客户端是否超时,本地组成员管理模块负责删除超时客户端,并根据组成员信息更新组播路由表。
e3.当客户端发生漫游时,外地代理路由器与家乡路由器定时比较客户端组成员信息,一旦信息不一致,则同步组成员信息。
本实施例适用于漫游协议,诸如移动IP协议,但不仅限于移动IP。本实施例适用于组成员管理协议,诸如IGMP协议,但不仅限于IGMP。本实施例适用于组播路由协议,诸如PIM-SM协议,但不仅限于PIM-SM。
本实施例的存储应满足以下约束:约束条件01:存储的组播信息应包括:客户端的IP地址,接口信息,组播组等;约束条件02:当客户端加入/离开一个组播组时,更新存储数据库中相关客户端的组信息。
本实施例的漫游应满足以下约束:约束条件11:在家乡路由器端,当探测到组播接收者发生漫游时,发送“成员询问”消息,根据询问结果更新组播路由表的出接口信息;约束条件12:在家乡路由器端,当探测到组播源发生漫游时,根据外地代理路由器信息,更新相关组播路由表的入接口信息;约束条件13:在外地代理路由器端,当探测到组播接收者漫游进入时,查询网络端数据库,继承家乡路由器上的组成员信息,建立组播路由表,并接受客户端后续的组播请求;约束条件14:在外地代理路由器端,当探测到组播源漫游进入时,建立到家乡路由器的隧道,通过隧道转发组播源发送的组播流量到家乡路由器。其中:
约束条件12中,当客户端漫游到外地代理时,更新相关组播路由表的入接口为外地代理到家乡路由器的隧道出口并且家乡路由器视这个客户端为直连成员;当客户端漫游回到家乡路由器时,更新相关组播路由表的入接口为本地直连客户端的接口。约束条件13中,外地代理路由器只能接受本地客户端和漫游进入客户端的组成员请求。
本实施例的检测应满足以下约束:包括以下约束:约束条件21:外地代理路由器定时检测客户端是否超时,如果超时,则删除网络侧的客户端信息;约束条件22:外地代理路由器定时检测家乡路由器是否超时,如果超时,则删除网络侧的客户端信息;约束条件23:家乡路由器定时检测外地代理路由器是否超时,如果超时,则删除网络侧的客户端信息;约束条件24:外地代理路由器在接收到客户端加入/离开组请求时,更新本地组播信息,并通知家乡路由器更新组信息;约束条件5:外地代理路由器与家乡路由器定时比较客户端组成员信息,一旦发生冲突,同步相关信息。
本发明实施例使组播源和组播接收者漫游后的组播数据实现正常转发,并使漫游后的组播路由实现快速收敛。
实施例二
如图6所示,通过无线网状网使家乡路由器或者网络端、客户端组播源S、客户端组播接受者R以及外地代理路由器组成了无缝组播漫游系统。
如图8所示,家乡路由器包括:查询请求接收单元401,组播信息存储单元402,组播信息发送单元403,隧道建立单元404,和组播数据转发单元405。
如图7所示,家乡路由器的工作流程包括以下步骤:查询请求接收单元401接收外地代理路由器发来的漫游组播源的组播信息查询请求(步骤S301);组播信息发送单元403将预存储在组播信息存储单元402中的所述组播源的组播信息传给所述的外地代理路由器(步骤S302);隧道建立单元404根据所述外地代理路由器发来的建立隧道请求消息建立隧道(步骤S303);组播数据转发单元405将所述的外地代理路由器通过所述的隧道发来的组播数据转发给组播接收者(步骤S304)。
如图10所示,组播接收者在无线接入点的漫游方法包括如下步骤:
当客户端未发生漫游时:
当客户端(组播接收者R或者组播源,也可能是双重身份)从家乡路由器漫游到外地代理路由器时,外地代理通过家乡路由器查询获得客户端组播信息。
客户端是以组播源S的身份发生的漫游,如图6所示,家乡路由器修改对应的组播路由的入接口为外地代理路由器到家乡路由器的隧道;在外地代理路由器端,存储这个客户端信息(便于后面的成员管理消息的身份认证),向家乡路由器建立隧道,如果客户端是组播源S,则源S发出的组播流量通过这个隧道回传到达家乡路由器(如图6),仍旧由家乡路由器把源S发的组播流量依据组播路由进行转发,保证了无线网状网中组播路由不会因为组播源的位置改变而调整,同时也避免了组播源位置变化而发生的组播“注册”过程。
在外地代理路由器端,当客户端需要加入或者离开一个组播组时,就像它在家乡路由器一样,通过成员管理消息通知外地代理路由器,外地代理路由器通过上面提到的认证机制对客户端的身份进行认证,如果认证通过,外地代理路由器会对自己维护的组播成员列表进行更新并同时把更新结果通知给家乡路由器,家乡路由器更新自己维护的组播成员信息;客户端再次漫游到另一个外地代理路由器时,这个外地代理路由器仍然需要从家乡路由器继承相关的组信息;
当客户端(组播接收者R或者组播源,也可能是双重身份)从外地代理路由器漫游回到家乡路由器时,
在家乡路由器端,如果客户端是组播源S,则调整对应的组播路由的入接口为家乡路由器与S相连的接口;如果客户端是组播接收者R,则根据存储的对应组信息建立组播路由;
在外地代理路由器端,删除曾经存储的这个客户端的信息;如果客户端是组播接收者R,外地代理路由器从以前连接客户端的接口发送“成员询问”消息来探寻是否还有其它成员存在,如果不存在其它成员,则从组播路由的出接口列表中删除这个接口;
当客户端(组播接收者R或者组播源,也可能是双重身份)在同一个路由器不同接入点间漫游方法类似c中描述,只是不需要为组播源建立组播流量的回传隧道。
无论客户端漫游与否,在客户端与路由器,路由器与路由器之间维护客户端超时与组信息同步机制,以避免无线传输消息丢失所造成的组播信息错误问题。
当客户端未发生漫游时,在家乡路由器上定时探测客户端是否超时。本地组成员管理模块负责删除超时客户端,并根据成员信息更新组播路由表。
当客户端发生漫游时,在外地代理路由器上定时探测客户端是否超时。本地组成员管理模块负责删除超时客户端,并根据组成员信息更新组播路由表。同时在家乡路由器定时探测外地代理上的客户端是否超时,本地组成员管理模块负责删除超时客户端,并根据组成员信息更新组播路由表。
当客户端发生漫游时,外地代理路由器与家乡路由器定时比较客户端组成员信息,一旦信息不一致,则同步组成员信息。
本发明实施例使组播源和组播接收者漫游后的组播数据实现正常转发,并使漫游后的组播路由实现快速收敛。
以上具体实施例仅用于说明本发明,而非用于限定本发明。