发明内容
本发明提供组播点播方法和系统,以节约网络资源,提高组播点播效率。
本发明的技术方案是这样实现的:
一种组播点播方法,该方法包括:
A、控制服务器收到客户端发来的组播点播请求,将客户端地址以及根据该请求携带的组播源标识查找到的组播源地址携带在组播加入消息中发送给连接该客户端的转发设备;
B、连接客户端的转发设备根据收到的客户端地址查找到出口信息,将该出口信息加入到与组播源的地址对应的组播转发表项的出口列表中,并向组播源请求组播流。
所述转发设备为接入交换机,所述组播源的地址为组播源的组播组IP地址。
所述转发设备为边缘路由器,所述组播源的地址为组播源的源IP地址和组播组IP地址。
步骤B所述连接客户端的转发设备查找到出口信息之后、将该出口信息加入到组播转发表项的出口列表中之前,进一步包括:
连接客户端的转发设备判断自身是否保存有与收到的组播源地址对应的组播转发表项,若是,直接将所述出口信息加入到该组播转发表项的出口列表中;否则,生成组播转发表项,并将所述出口信息加入到该组播转发表项的出口列表中。
所述方法进一步包括:
控制服务器检测到客户端已停止接收组播流,向连接该客户端的转发设备发送携带组播源地址以及客户端地址的组播离开消息,连接客户端的转发设备根据收到的客户端地址查找到出口信息,将该出口信息从与收到的组播源地址对应的组播转发表项的出口列表中删除。
所述连接客户端的转发设备将出口信息从组播转发表项的出口列表中删除之后进一步包括:连接客户端的转发设备检测到该组播转发表项的出口列表为空,删除该组播转发表项。
所述方法进一步包括:控制服务器确定自身要关机,通知所有连接客户端的转发设备删除保存的组播转发表项。
一种组播点播方法,应用于客户端与接入交换机直接相连的组播网络中,该方法包括:
A、控制服务器收到客户端发来的组播点播请求,根据该请求携带的组播源标识查找到组播源的组播组IP地址,将该组播组IP地址以及客户端IP地址携带在组播加入消息中发送给连接客户端的接入交换机,并将组播组IP地址发送给客户端;
B、连接该客户端的接入交换机根据收到的客户端IP地址在自身查找到出端口信息,将该出端口信息加入到与组播组IP地址对应的组播媒体接入控制MAC表项的出端口列表中;
客户端将收到的组播组IP地址携带在IGMP成员关系报告消息中发送出去,边缘路由器收到该消息后,向连接组播源的路由器发送携带组播组IP地址的PIM加入消息。
所述步骤A之前进一步包括:
连接客户端的接入交换机收到客户端发来的单播报文,进行MAC学习,建立包括VLAN信息、MAC地址信息、成员端口信息和客户端IP地址的单播MAC表项;
步骤B所述连接客户端的接入交换机根据收到的客户端IP地址在自身查找到出端口信息包括:连接客户端的接入交换机根据收到的客户端IP地址,在自身保存的单播MAC表中查找到成员端口信息。
所述组播MAC表项包括:VLAN信息、组播组MAC地址、以及由成员端口信息和路由器端口信息组成的出端口列表。
所述方法进一步包括:
控制服务器检测到客户端停止接收组播流,将客户端IP地址以及根据该消息携带的组播源标识查找到组播组IP地址携带在组播离开消息中发送给连接客户端的接入交换机,连接客户端的接入交换机根据收到的客户端IP地址,在自身的单播MAC表项中查找到成员端口信息,将该成员端口信息从与收到的组播组IP地址对应的组播MAC表项的出端口列表中删除。
一种组播点播方法,应用于客户端与边缘路由器直接相连的组播网络中,该方法包括:
A、控制服务器收到客户端发来的组播点播请求,将客户端IP地址以及根据该请求携带的组播源标识查找到的组播源的源IP地址和组播组IP地址携带在组播加入消息中发送给连接客户端的边缘路由器;
B、连接客户端的边缘路由器根据收到的客户端IP地址查找到出接口信息,将该出接口信息加入到与收到的组播源的源IP地址和组播组IP地址对应的(S,G)表项的出接口列表中,并向连接组播源的路由器发送PIM加入消息,其中,S为组播源的源IP地址,G为组播源的组播组IP地址。
步骤B所述连接客户端的边缘路由器根据收到的客户端IP地址查找到出接口信息包括:连接客户端的边缘路由器根据收到的客户端IP地址,在自身保存的地址解析协议ARP表项中查找到出接口信息。
所述方法进一步包括:
控制服务器检测到客户端停止接收组播流,将客户端IP地址以及根据该消息携带的组播源标识查找到组播源的源IP地址和组播组IP地址携带在组播离开消息中发送给连接客户端的边缘路由器,连接客户端的边缘路由器根据收到的客户端IP地址,在自身的ARP表项中查找到出接口信息,将该出接口信息从与收到的组播源的源IP地址和组播组IP地址对应的(S,G)表项的出接口列表中删除。
、一种组播点播方法,应用于客户端与接入交换机直接相连的组播网络中,该方法包括:
A、控制服务器收到客户端发来的组播点播请求,根据该请求携带的组播源标识查找到组播源的源IP地址和组播组IP地址,将组播组IP地址以及客户端IP地址携带在组播加入消息中发送给连接客户端的接入交换机,将组播源的源IP地址和组播组IP地址以及客户端IP地址携带在组播加入消息中发送给边缘路由器;
B、连接该客户端的接入交换机根据收到的客户端IP地址在自身查找到出端口信息,将该出端口信息加入到与收到的组播组IP地址对应的组播媒体接入控制MAC表项的出端口列表中;
边缘路由器根据收到的客户端IP地址在自身查找到出接口信息,将该出接口信息加入到与收到的组播源的源IP地址和组播组IP地址对应的(S,G)表项中,并向连接组播源的路由器发送PIM加入消息。
所述步骤A之前进一步包括:
连接客户端的接入交换机收到客户端发来的单播报文,进行MAC学习,建立包括VLAN信息、MAC地址信息、成员端口信息和客户端IP地址的单播MAC表项;
步骤B所述连接客户端的接入交换机根据收到的客户端IP地址在自身查找到出端口信息包括:连接客户端的接入交换机根据收到的客户端IP地址,在自身保存的单播MAC表中查找到成员端口信息;
步骤B所述连接客户端的边缘路由器根据收到的客户端IP地址查找到出接口信息包括:连接客户端的边缘路由器根据收到的客户端IP地址,在自身保存的ARP表项中查找到出接口信息。
所述方法进一步包括:
控制服务器检测到客户端停止接收组播流,将客户端IP地址以及根据该消息携带的组播源标识查找到组播源的源IP地址和组播组IP地址携带在组播离开消息中发送给边缘路由器,并将客户端IP地址和组播源的组播组IP地址发送给连接客户端的接入交换机;
边缘路由器根据收到的客户端IP地址,在自身的ARP表项中查找到出接口信息,将该出接口信息从与收到的组播源的源IP地址和组播组IP地址对应的(S,G)表项的出接口列表中删除。
连接客户端的接入交换机根据收到的客户端IP地址,在自身的单播MAC表项中查找到成员端口信息,将该成员端口信息从与收到的组播组IP地址对应的组播MAC表项的出端口列表中删除。
一种组播点播方法,应用于客户端与接入交换机直接相连的组播网络中,该方法包括:
A、控制服务器收到客户端发来的组播点播请求,根据该请求携带的组播源标识查找到组播源的源IP地址和组播组IP地址,将组播源的源IP地址和组播组IP地址以及客户端IP地址携带在组播加入消息中发送给边缘路由器,并向客户端发送组播组IP地址;
B、边缘路由器根据收到的客户端IP地址在自身查找到出接口信息,将该出接口信息加入到与收到的组播源的源IP地址和组播组IP地址对应的(S,G)表项的出接口列表中,并向连接组播源的路由器发送PIM加入消息;
客户端将收到的组播组IP地址携带在IGMP成员关系报告消息中发送出去,接入交换机收到该消息后,将接收该消息的成员端口信息加入到与收到的组播组IP地址对应的组播MAC表项的出端口列表中。
一种组播点播系统,该系统包括:客户端、控制服务器、转发设备和连接组播源的路由器,其中:
客户端,用于在确定要接收组播流时,向控制服务器发送组播源标识;
控制服务器,用于将客户端的地址和根据收到的组播源标识查找到的组播源的地址以及携带在组播加入消息中发送给连接客户端的转发设备;
转发设备,用于根据收到的客户端地址查找到对应的出口信息,将该出口信息加入到与收到的组播源的地址对应的组播转发表项的出口列表中,并向连接组播源的路由器请求组播流;
连接组播源的路由器,用于将组播源发来的组播流发送给转发设备。
所述转发设备进一步用于,收到组播加入消息,检测到自身未保存该消息携带的组播源的地址对应的组播转发表项,则生成该组播转发表项。
所述客户端进一步用于,在确定要停止接收组播流时,向控制服务器发送携带组播源标识的点播停止消息,
所述控制服务器进一步用于,根据收到的点播停止消息携带的组播源标识查找到该组播源的地址,将该组播源的地址以及客户端的地址携带在组播离开消息中发送给转发设备;
所述转发设备进一步用于,根据收到的客户端地址查找到对应的出口信息,将该出口信息从与收到的组播源的地址对应的组播转发表项的出口列表中删除。
所述控制服务器进一步用于,确定自身要关机,通知转发设备删除组播转发表项,
所述转发设备进一步用于,根据控制服务器发来的通知,删除自身保存的所有组播转发表项。
所述转发设备为接入交换机或边缘路由器。
一种组播点播系统,该系统包括:客户端、控制服务器、接入交换机、边缘路由器和连接组播源的路由器,其中:
客户端,用于在确定要接收组播流时,向控制服务器发送组播源标识,将控制服务器发来的组播组IP地址携带在IGMP成员关系报告消息中发送出去;
控制服务器,用于根据收到的组播源标识查找到组播源的组播组IP地址,将该组播组IP地址和客户端IP地址携带在组播加入消息中发送给连接客户端的接入交换机,并向客户端发送组播组IP地址;
接入交换机,用于根据收到的客户端IP地址在单播MAC表项中查找到成员端口信息,将该成员端口信息加入到与收到的组播组IP地址对应的组播MAC表项的出端口列表中,并将客户端发来的IGMP成员关系报告消息转发给边缘路由器;
边缘路由器,用于根据接入交换机发来的IGMP成员关系报告消息,向连接组播源的路由器发送PIM加入消息;
连接组播源的路由器,用于接收边缘路由器发来的PIM加入消息。
一种组播点播系统,该系统包括:客户端、控制服务器、边缘路由器和连接组播源的路由器,其中:
客户端,用于在确定要接收组播流时,向控制服务器发送组播源标识;
控制服务器,用于将客户端IP地址以及根据收到的组播源标识查找到组播源的源IP地址和组播组IP地址携带在组播加入消息中发送给连接客户端的边缘路由器;
边缘路由器,用于根据收到的客户端IP地址在ARP表项中查找到出接口信息,将该出接口信息加入到与收到的源IP地址和组播组IP地址对应的(S,G)表项的出接口列表中,并向连接组播源的路由器发送PIM加入消息;
连接组播源的路由器,用于接收边缘路由器发来的PIM加入消息。
一种组播点播系统,该系统包括:客户端、控制服务器、接入交换机、边缘路由器和连接组播源的路由器,其中:
客户端,用于在确定要接收组播流时,向控制服务器发送组播源标识;
控制服务器,用于根据收到的组播源标识查找到组播源的源IP地址和组播组IP地址,将该组播组IP地址和客户端IP地址携带在组播加入消息中发送给连接客户端的接入交换机,将源IP地址、组播组IP地址和客户端IP地址携带在组播加入消息中发送给边缘路由器;
接入交换机,用于根据收到的客户端IP地址在单播MAC表项中查找到成员端口信息,将该成员端口信息加入到与收到的组播组IP地址对应的组播MAC表项的出端口列表中;
边缘路由器,用于根据收到的客户端IP地址在ARP表项中查找到出接口信息,将该出接口信息加入到与收到的源IP地址和组播组IP地址对应的(S,G)表项的出接口列表中,并向连接组播源的路由器发送PIM加入消息;
连接组播源的路由器,用于接收边缘路由器发来的PIM加入消息。
一种组播点播系统,该系统包括:客户端、控制服务器、接入交换机、边缘路由器和连接组播源的路由器,其中:
客户端,用于在确定要接收组播流时,向控制服务器发送组播源标识,将控制服务器发来的组播组IP地址携带在IGMP成员关系报告消息中发送出去;
控制服务器,用于根据收到的组播源标识查找到组播源的源IP地址和组播组IP地址,将该源IP地址、组播组IP地址和客户端IP地址携带在组播加入消息中发送给边缘路由器;
接入交换机,用于将接收客户端发来的IGMP成员关系报告消息的成员端口信息加入到与该消息携带的组播组IP地址对应的组播MAC表项的出端口列表中;
边缘路由器,用于根据收到的客户端IP地址在ARP表项中查找到出接口信息,将该出接口信息加入到与收到的源IP地址和组播组IP地址对应的(S,G)表项的出接口列表中,并向连接组播源的路由器发送PIM加入消息;
连接组播源的路由器,用于接收边缘路由器发来的PIM加入消息。
与现有技术相比,本发明在控制服务器收到客户端发来的点播请求后,直接将组播源的地址发送给连接客户端的转发设备,连接客户端的转发设备将与该客户端对应的出口信息加入到对应的组播转发表项的出口列表中,本发明解决了网络资源,提高了组播点播效率。对于二层组播网络,接入交换机不需实时监听IGMP成员关系报告消息;对于三层网络不需设置RP路由器和BSR,且连接客户端的边缘路由器不需经过RP路由器,而直接向组播源请求组播流,降低了点播时延,同时,不需路由器生成(*,G)表项,节省了路由器的存储资源,提高组播点播效率,另外,在三层组播网络中组播流以组播源的单播地址标识,整个组播网络的所有组播源最少只需一个组播组地址,节省了地址资源,且降低了管理成本。
具体实施方式
下面结合附图及具体实施例对本发明再作进一步详细的说明。
本发明的核心思想是:组播网络中增加控制服务器,客户端通过控制服务器发起组播点播请求,并由控制服务器完成对组播点播的控制。
当客户端通过接入交换机接入组播网络时,根据接入交换机和边缘路由器是否支持控制服务器控制方式,本发明给出了三个实施例,其中,图4为接入交换机支持控制服务器控制方式、而边缘路由器不支持控制服务器控制方式的情况;图6为接入交换机和边缘路由器同时支持控制服务器控制方式的情况;图7为接入交换机不支持控制服务器控制方式、而边缘路由器支持控制服务器控制方式的情况。当客户端通过边缘路由器接入组播网络时,由于不涉及到接入交换机,因此,只有一种情况即:边缘路由器支持控制服务器控制方式。
图3为本发明实施例提供的点播组播流的流程图,在本实施例中提到的组播源地址,在二层组播网络中指的是组播源的组播组IP地址,在三层组播网络中指的是组播源的源IP地址和组播组IP地址,如图3所示,其具体步骤如下:
步骤301:客户端确定要接收某个组播源的组播流,向控制服务器发送携带该组播源标识的点播请求消息。
控制服务器将所有组播源的信息保存在自身数据库中包括:组播源标识、组播源地址等的对应关系,客户端可登录控制服务器并查看该数据库,并通过点击组播源标识及加入指示的方式选定要点播的组播源。
步骤302:控制服务器收到该点播请求消息后,根据该消息携带的组播源标识,在自身查找到该组播源地址。
步骤303:控制服务器将该查找到的组播源地址以及客户端的地址携带在组播加入消息中发送给连接所述客户端的转发设备。
本步骤中的组播加入消息为本发明定义的私有消息,该消息包含至少包含两个参数:组播源地址、客户端地址。
步骤304:连接客户端的转发设备收到该组播加入消息后,判断自身是否保存有与该组播源地址对应的组播转发表项,若是,执行步骤306;否则,执行步骤305。
步骤305:连接客户端的转发设备在自身生成与组播源地址对应的组播转发表项。
步骤306:连接客户端的转发设备根据组播加入消息携带的客户端地址,在自身查找到与该客户端地址对应的出口信息,将该出口信息加入到所述组播转发表项的出口列表中。
连接客户端的转发设备保存有客户端地址与出口信息的对应关系。
步骤307:连接客户端的转发设备向连接组播源的路由器发送组播加入消息请求组播流。
步骤308:组播源将自身的组播流通过转发设备发送到客户端。
步骤309:客户端确定要停止接收组播流,向控制服务器发送携带组播源标识的点播停止消息。
客户端可通过点击组播源标识及离开指示的方式通知控制服务器自身要停止接收该组播源提供的组播流。
步骤310:控制服务器收到该点播停止消息后,根据该消息携带的组播源标识,查找到该组播源的地址。
步骤311:控制服务器将该组播源的地址以及客户端的地址携带在组播离开消息中发送给连接客户端的转发设备。
本步骤中的组播离开消息为本发明定义的私有消息,该消息包含至少包含两个参数:组播源的地址、客户端地址。
步骤312:连接客户端的转发设备收到该组播离开消息后,根据该消息携带的客户端地址,在自身查找到该客户端地址对应的出口信息,将该出口信息从与该消息携带的组播源的地址对应的转播转发表项的出口列表中删除。
步骤313:连接客户端的转发设备判断自身保存的该组播转发表项的出口列表是否为空,若是,执行步骤314;否则,不作处理,本流程结束。
步骤314:连接客户端的转发设备删除该组播转发表项
进一步地,控制服务器在确定自身要关机时,可向所有连接客户端的转发设备发送清除消息,以通知所有连接客户端的转发设备删除所保存的所有组播转发表项。
图4为本发明实施例一提供的客户端通过接入交换机接入组播网络时,点播组播流的流程图,在本实施例中,接入交换机支持控制服务器控制方式,而边缘路由器不支持控制服务器控制方式,如图4所示,其具体步骤如下:
步骤401:接入交换机的端口收到IGMP查询报文或组播路由协议报文如:PIM Hello报文,则接入交换确定接收该报文的自身端口为路由器端口,记录该路由器端口号。
步骤402:接入交换机收到客户端发来的单播报文,进行MAC学习,建立单播MAC表项,包括:VLAN号、接收该报文的端口的MAC地址、接收该报文的端口的成员端口号、客户端IP地址。
步骤403:客户端确定要接收某个组播源的组播流,向控制服务器发送携带该组播源标识的点播请求消息。
步骤404:控制服务器收到该点播请求消息后,根据该消息携带的组播源标识,在自身查找到该组播源的组播组IP地址。
控制服务器保存有组播源标识与组播组IP地址的对应关系。
步骤405:控制服务器将该查找到的组播源的组播组IP地址以及客户端的IP地址携带在组播加入消息中发送给连接所述客户端的接入交换机。
本步骤中的组播加入消息为本发明定义的私有消息,该消息包含至少包含两个参数:组播源的组播组IP地址、客户端的IP地址。
步骤406:连接客户端的接入交换机收到该组播加入消息后,根据该消息携带的客户端的IP地址查找到对应的单播MAC表项。
步骤407:连接客户端的接入交换机判断自身是否保存与该组播加入消息携带的组播源的组播组IP地址以及该二层单播MAC表项中的VLAN号对应的组播MAC表项,若是,执行步骤408;否则,执行步骤407。
步骤408:连接客户端的接入交换机在自身生成与组播源的组播组IP地址对应的组播MAC表项,该表项包括:VLAN号、组播组MAC地址、成员端口号、路由器端口号。
接入交换机保存有组播组IP地址与组播组MAC地址的映射关系,根据该映射关系,查找到组播加入消息携带的组播组IP地址对应的组播组MAC地址,将该组播组MAC地址加入到组播MAC表项中。
步骤409:连接客户端的接入交换机根据组播加入消息携带的客户端的IP地址,在自身的单播MAC表项中查找到与该客户端的IP地址对应的出端口信息即:成员端口号,将该出端口信息加入到组播MAC表项的出端口列表的成员端口号中。
步骤410:客户端从控制服务器获得组播组IP地址,并将该组播组IP地址携带在IGMP成员关系报告消息中发送出去。
步骤411:连接客户端的接入交换机收到该消息后,判断自身是否保存该消息携带的组播组IP地址对应的组播MAC表项,若是,执行步骤412;否则,执行步骤413。
步骤412:连接客户端的接入交换机向组播MAC表项的出端口列表中包含的所有端口转发该IGMP成员关系报告消息,转至步骤414。
步骤413:连接客户端的接入交换机向自身所有端口转发该IGMP成员关系报告消息。
步骤414~415与步骤203~204相同。
步骤416:组播源通过所述生成(S,G)和(*,G)表项的路由器以及接入交换机将组播流发送到客户端。
上述步骤403~409与步骤410~415是分别独立进行的,在时间上无严格的先后之分。
步骤417:客户端确定要停止接收组播流,向控制服务器发送携带组播源标识的点播停止消息。
步骤418:控制服务器收到该点播停止消息后,根据该消息携带的组播源标识,查找到该组播源的组播组IP地址。
步骤419:控制服务器将该组播源的组播组IP地址以及客户端的IP地址携带在组播离开消息中发送给连接客户端的接入交换机。
本步骤中的组播离开消息为本发明定义的私有消息,该消息包含至少包含两个参数:组播源的组播组IP地址、客户端的IP地址。
步骤420:连接客户端的接入交换机收到该组播离开消息后,根据该消息携带的客户端的IP地址,在自身的单播MAC表项中查找到该客户端的IP地址对应的VLAN号和出端口信息即:成员端口号,将该VLAN号和出端口信息从与该消息携带的组播组IP地址对应的组播MAC表项的出端口列表中删除。
步骤421:连接客户端的接入交换机判断自身保存的与该消息携带的组播组IP地址对应的组播MAC表项的出端口列表是否为空,若是,执行步骤422;否则,不作处理,本流程结束。
步骤422:连接客户端的接入交换机删除该组播MAC表项。
在实际应用中,若控制服务器检测到自身与某个客户端的连接如:传输控制协议(TCP)连接中断,则判定该客户端因故障而导致点播停止,此时也需执行上述步骤419~422。
进一步地,控制服务器在确定自身要关机时,可向所有连接客户端的接入交换机发送清除消息,以通知所有连接客户端的接入交换机删除所保存的所有组播MAC表项。
图5为本发明实施例提供的客户端通过边缘路由器接入组播网络时,点播组播流的流程图,在本实施例中,边缘路由器支持控制服务器控制方式,如图5所示,其具体步骤如下:
步骤501:客户端确定要接收某个组播源的组播流,向控制服务器发送携带该组播源标识的点播请求消息。
控制服务器将所有组播源的信息保存在自身数据库中包括:组播源标识、组播源的源IP地址和组播组IP地址等的对应关系,客户端可登录控制服务器并查看该数据库,并通过点击组播源标识及加入指示的方式选定要点播的组播源。
步骤502:控制服务器收到该点播请求消息后,根据该消息携带的组播源标识,在自身查找到该组播源的源IP地址和组播组IP地址。
步骤503:控制服务器将该查找到的组播源的源IP地址和组播组IP地址以及客户端的IP地址携带在组播加入消息中发送给连接所述客户端的边缘路由器。
本步骤中的组播加入消息为本发明定义的私有消息,该消息包含至少包含三个参数:组播源的源IP地址、组播源的组播组IP地址、客户端IP地址。
步骤504:连接客户端的边缘路由器收到该组播加入消息后,判断自身是否保存有与该组播源的源IP地址和组播组IP地址对应的(S,G)表项,若是,执行步骤506;否则,执行步骤505。
步骤505:连接客户端的边缘路由器在自身生成与组播源的源IP地址和组播组IP地址对应的(S,G)表项。
步骤506:连接客户端的边缘路由器根据组播加入消息携带的客户端IP地址,在自身的地址解析协议(ARP)表中查找到与该客户端IP地址对应的出接口信息,将该出接口信息加入到所述(S,G)表项的出接口列表中。
连接客户端的边缘路由器的ARP表中保存有客户端IP地址与出接口信息的对应关系。
步骤507:连接客户端的边缘路由器根据组播加入消息携带的组播源的源IP地址,向连接组播源的路由器发送(S,G)PIM加入消息。
位于连接客户端的边缘路由器与组播源之间的的每个路由器收到(S,G)PIM加入消息后,若检测到自身未生成与该消息携带的组播源的源IP地址和组播组IP地址对应的(S,G)表项,则会在自身生成该(S,G)表项。
步骤508:组播源将自身的组播流通过生成所述(S,G)表项的路由器发送到客户端。
步骤509:客户端确定要停止接收组播流,向控制服务器发送携带组播源标识的点播停止消息。
客户端可通过点击组播源标识及离开指示的方式通知控制服务器自身要停止接收该组播源提供的组播流。
步骤510:控制服务器收到该点播停止消息后,根据该消息携带的组播源标识,查找到该组播源的源IP地址和组播组IP地址。
步骤511:控制服务器将该组播源的源IP地址和组播组IP地址以及客户端的IP地址携带在组播离开消息中发送给连接客户端的边缘路由器。
本步骤中的组播离开消息为本发明定义的私有消息,该消息包含至少包含三个参数:组播源的源IP地址、组播源的组播组IP地址、客户端IP地址。
步骤512:连接客户端的边缘路由器收到该组播离开消息后,根据该消息携带的客户端IP地址,在自身的ARP表中查找到该客户端IP地址对应的出接口信息,将该出接口信息从与该消息携带的组播源的源IP地址和组播组IP地址对应的(S,G)表项的出接口列表中删除。
步骤513:连接客户端的边缘路由器判断自身保存的该(S,G)表项的出接口列表是否为空,若是,执行步骤514;否则,不作处理,本流程结束。
步骤514:连接客户端的边缘路由器删除该(S,G)表项,并向连接组播源的路由器发送(S,G)PIM剪枝消息。
位于客户端的边缘路由器与组播源之间的路由器收到该(S,G)PIM剪枝消息后,将自身与发送该消息的下游路由器连接的出接口信息从该(S,G)表项的出接口列表中删除,并在检测到该(S,G)表项的出接口列表为空时,删除该(S,G)表项。
在实际应用中,若控制服务器检测到自身与某个客户端的连接如:TCP连接中断,则判定该客户端因故障而导致点播停止,此时也需执行上述步骤511~514。
进一步地,控制服务器在确定自身要关机时,可向所有连接客户端的边缘路由器发送清除消息,以通知所有连接客户端的边缘路由器删除所保存的所有(S,G)表项。
从图5所示实施例可以看出,本发明在客户端通过边缘路由器接入组播网络时,组播流是以组播源的源IP地址标识的,因此控制服务器不需对每个组播源的组播组IP地址进行管理,整个组播系统的所有组播源可以使用同一个组播组IP地址。
图6为本发明实施例二提供的客户端通过接入交换机接入组播网络时,点播组播流的流程图,在本实施例中,接入交换机和边缘路由器都支持控制服务器控制方式,如图6所示,其具体步骤如下:
步骤601~609与步骤401~409相同。
步骤610:控制服务器根据客户端发来的点播请求消息携带的组播源标识在自身查找到对应的组播源的源IP地址。
步骤611~615与步骤503~507相同。
步骤616:组播源将自身的组播流通过路由器和接入交换机发送到客户端。
其中,步骤605~609与步骤610~615是分别独立进行的,在时间上并无严格的先后之分。
步骤617:客户端确定要停止接收组播流,向控制服务器发送携带组播源标识的点播停止消息。
步骤618:控制服务器收到该点播停止消息后,根据该消息携带的组播源标识,查找到该组播源的源IP地址和组播组IP地址。
步骤619:控制服务器将该组播源的源IP地址和组播组IP地址以及客户端IP地址携带在组播离开消息中发送给边缘路由器,将组播组IP地址和客户端IP地址携带在组播离开消息中发送给连接客户端的接入交换机。
步骤620~622与步骤512~514相同。
步骤623~625与步骤420~422相同。
上述步骤620~622与步骤623~625是分别独立进行的,在时间上并无严格的先后之分。
图7为本发明实施例三提供的客户端通过接入交换机接入组播网络时,点播组播流的流程图,在本实施例中,接入交换机不支持控制服务器控制方式,而边缘路由器支持控制服务器控制方式,如图7所示,其具体步骤如下:
步骤701~702与步骤101~102相同。
步骤703~709与步骤501~507相同。
步骤710:客户端从控制服务器获得组播组IP地址,并将该组播组IP地址携带在IGMP成员关系报告消息中发送出去。
步骤711~713:与步骤103~105相同。
步骤714:组播源通过路由器和接入交换机将组播流发送给客户端。
步骤715~720与步骤509~514相同。
图8为本发明实施例提供的组播点播的系统组成图,在本实施例中提到的组播源地址,在二层组播网络中指的是组播源的组播组IP地址,在三层组播网络中指的是组播源的源IP地址和组播组IP地址,如图8所示,其主要包括:客户端81、控制服务器82、转发设备83、连接组播源的路由器84和组播源85,其中:
客户端81:用于在确定要接收某个组播源的组播流时,向控制服务器82发送携带该组播源标识的点播请求消息;并接收转发设备83发来的组播流。
进一步地,客户端81用于在确定要停止接收组播流时,向控制服务器82发送携带组播源标识的点播停止消息。
控制服务器82:用于保存组播源标识与组播源地址的对应关系,在收到客户端81发来的点播请求消息后,根据该消息携带的组播源标识,将客户端的地址和在自身查找到的组播源的地址携带在组播加入消息中发送给连接客户端的转发设备83。
进一步地,控制服务器82用于在收到客户端81发来的点播停止消息后,根据该消息携带的组播源标识查找到该组播源的地址,将该组播源的地址以及客户端的地址携带在组播离开消息中发送给转发设备83。
或者,进一步地,控制服务器82用于在确定自身要关机时,向转发设备83发送清除消息。
转发设备83:用于在收到控制服务器82发来的组播加入消息后,若检测到自身未保存该消息携带的组播源地址对应的组播转发表项,则生成该组播转发表项;根据组播加入消息携带的客户端地址,在自身查找到该客户端地址对应的出口信息,将该出口信息加入到与该消息携带的组播源地址对应的组播转发表项的出口列表中,并向连接组播源的路由器84请求组播流;并将连接组播源的路由器84发来的组播流发送给客户端81。
转发设备83为接入交换机或边缘路由器。
进一步地,转发设备83用于,在收到控制服务器82发来的组播离开消息后,根据该消息携带的客户端地址,在自身查找到对应的出口信息,将该出口信息从与该消息携带的组播源地址对应的组播转发表项的出口列表中删除;并在判定该组播转发表项的出口列表为空时,删除该组播转发表项,并向连接组播源的路由器84发送PIM剪枝消息。
或者,进一步地,转发设备83用于在收到控制服务器82发来的清除消息后,删除自身保存的所有组播转发表项。
连接组播源的路由器84:用于将组播源85发来的组播流发送给转发设备83。
组播源85:用于将自身的组播流发送给与自身连接的路由器即:连接组播源的路由器84。
图9为本发明实施例一提供的客户端通过接入交换机接入组播网络时,组播点播的系统组成图,在本实施例中,接入交换机93支持控制服务器控制方式、而边缘路由器94不支持控制服务器控制方式,如图9所示,其主要包括:客户端91、控制服务器92、接入交换机93、边缘路由器94、连接组播源的路由器95和组播源96,其中:
客户端91:用于在确定要接收组播流时,向控制服务器92发送携带组播源标识的点播请求消息,并将控制服务器92发来的组播组IP地址携带在IGMP成员关系报告消息中发送出去,并接收接入交换机93发来的组播流。
控制服务器92:用于根据客户端91发来的点播请求消息携带的组播源标识在自身查找到组播源的组播组IP地址,将该组播组IP地址和客户端IP地址携带在组播加入消息中发送给连接客户端的接入交换机93,并向客户端91发送组播组IP地址。
接入交换机93:用于在收到客户端91发来的单播报文后,进行MAC学习,建立包括:VLAN号、客户端IP地址、接收该报文的端口的MAC地址及成员端口号的单播MAC表项,根据控制服务器92发来的组播加入消息携带的客户端IP地址在单播MAC表项中查找到成员端口号,将该成员端口号加入到与该组播加入消息携带的组播组IP地址对应的组播MAC表项的出端口列表中,并将客户端91发来的IGMP成员关系报告消息转发给边缘路由器94,将边缘路由器94发来的组播流根据组播MAC表项的出端口列表发送给客户端91。
边缘路由器94:用于根据接入交换机93发来的IGMP成员关系报告消息,向连接组播源的路由器95发送PIM加入消息,并将连接组播源的路由器95发来的组播流发送给接入交换机93。
连接组播源的路由器95:用于接收边缘路由器94发来的PIM加入消息,并将组播源96发来的组播流发送给边缘路由器94。
组播源96:用于将组播流发送给与自身连接的路由器即:连接组播源的路由器95。
图10为本发明实施例提供的客户端通过边缘路由器接入组播网络时,组播点播的系统组成图,在本实施例中,边缘路由器103不支持控制服务器控制方式,如图10所示,其主要包括:客户端101、控制服务器102、边缘路由器103、连接组播源的路由器104和组播源105,其中:
客户端101:用于在确定要接收组播流时,向控制服务器102发送携带组播源标识的点播请求消息,并接收边缘路由器103发来的组播流。
控制服务器102:用于根据客户端101发来的点播请求消息携带的组播源标识在自身查找到对应的组播源的源IP地址和组播组IP地址,将客户端IP地址以及组播源的源IP地址和组播组IP地址携带在组播加入消息中发送给连接客户端的边缘路由器103。
边缘路由器103:用于根据控制服务器102发来的组播加入消息携带的客户端IP地址在自身保存的ARP表项中查找到对应的出接口信息,将该出接口信息加入到与该组播加入消息携带的源IP地址和组播组IP地址对应的(S,G)表项的出接口列表中,并向连接组播源的路由器104发送PIM加入消息,将连接组播源的路由器104发来的组播流发送给客户端101。
连接组播源的路由器104:用于接收边缘路由器103发来的PIM加入消息,将组播源105发来的组播流发送给边缘路由器103。
组播源105:用于将组播流发送给与自身连接的路由器即:连接组播源的路由器104。
图11为本发明实施例二提供的客户端通过接入交换机接入组播网络时,组播点播的系统组成图,在本实施例中,接入交换机113和边缘路由器114都支持控制服务器控制方式,如图11所示,其主要包括:客户端111、控制服务器112、接入交换机113、边缘路由器114、连接组播源的路由器115和组播源116,其中:
客户端111:用于在确定要接收组播流时,向控制服务器112发送携带组播源标识的点播请求消息,并接收接入交换机113发来的组播流。
控制服务器112:用于根据客户端111发来的点播请求消息携带的组播源标识在自身查找到组播源的源IP地址和组播组IP地址,将组播组IP地址和客户端IP地址携带在组播加入消息中发送给连接客户端的接入交换机113,并将源IP地址、组播组IP地址和客户端IP地址携带在组播加入消息中发送给边缘路由器114。
接入交换机113:用于在收到客户端111发来的单播报文后,进行MAC学习,建立包括:VLAN号、客户端IP地址、接收该报文的端口的MAC地址及成员端口号的单播MAC表项,根据控制服务器112发来的组播加入消息携带的客户端IP地址在单播MAC表项中查找到成员端口号,将该成员端口号加入到与该组播加入消息携带的组播组IP地址对应的组播MAC表项的出端口列表中,将边缘路由器114发来的组播流根据组播MAC表项的出端口列表发送给客户端111。
边缘路由器114:用于根据控制服务器112发来的组播加入消息携带的客户端IP地址在自身保存的ARP表项中查找到对应的出接口信息,将该出接口信息加入到与该组播加入消息携带的源IP地址和组播组IP地址对应的(S,G)表项的出接口列表中,并向连接组播源的路由器115发送PIM加入消息,将连接组播源的路由器115发来的组播流发送给接入交换机113。
连接组播源的路由器115:用于接收边缘路由器114发来的PIM加入消息,将组播源116发来的组播流发送给边缘路由器114。
组播源116:用于将组播流发送给与自身连接的路由器即:连接组播源的路由器115。
图12为本发明实施例三提供的客户端通过接入交换机接入组播网络时,组播点播的系统组成图,在本实施例中,接入交换机123不支持控制服务器控制方式,而边缘路由器124支持控制服务器控制方式,如图12所示,其主要包括:客户端121、控制服务器122、接入交换机123、边缘路由器124、连接组播源的路由器125和组播源126,其中:
客户端121:用于在确定要接收组播流时,向控制服务器122发送携带组播源标识的点播请求消息,并将控制服务器122发来的组播组IP地址携带在IGMP成员关系报告消息中发送出去,并接收接入交换机123发来的组播流。
控制服务器122:用于根据客户端121发来的点播请求消息携带的组播源标识在自身查找到组播源的源IP地址和组播组IP地址,将源IP地址、组播组IP地址和客户端IP地址携带在组播加入消息中发送给边缘路由器124,并将组播组IP地址发送给客户端121。
接入交换机123:用于在收到客户端121发来的IGMP成员关系报告消息后,将接收该消息的自身端口的成员端口号加入到与该消息携带的组播组IP地址对应的组播MAC表项的出端口列表中,将边缘路由器124发来的组播流根据组播MAC表项的出端口列表发送给客户端121。
边缘路由器124:用于根据控制服务器122发来的组播加入消息携带的客户端IP地址在自身保存的ARP表项中查找到对应的出接口信息,将该出接口信息加入到与该组播加入消息携带的源IP地址和组播组IP地址对应的(S,G)表项的出接口列表中,并向连接组播源的路由器125发送PIM加入消息,将连接组播源的路由器125发来的组播流发送给接入交换机123。
连接组播源的路由器125:用于接收边缘路由器124发来的PIM加入消息,将组播源126发来的组播流发送给边缘路由器124。
组播源126:用于将组播流发送给与自身连接的路由器即:连接组播源的路由器125。
以上所述仅为本发明的过程及方法实施例,并不用以限制本发明,凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。