CN109561022B - 一种组播转发方法及组播路由器 - Google Patents

一种组播转发方法及组播路由器 Download PDF

Info

Publication number
CN109561022B
CN109561022B CN201710892283.9A CN201710892283A CN109561022B CN 109561022 B CN109561022 B CN 109561022B CN 201710892283 A CN201710892283 A CN 201710892283A CN 109561022 B CN109561022 B CN 109561022B
Authority
CN
China
Prior art keywords
multicast
unicast
message
address
identifier
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.)
Active
Application number
CN201710892283.9A
Other languages
English (en)
Other versions
CN109561022A (zh
Inventor
孟锐
王闯
黄勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201710892283.9A priority Critical patent/CN109561022B/zh
Priority to EP18861921.7A priority patent/EP3668026B1/en
Priority to PCT/CN2018/104423 priority patent/WO2019062515A1/zh
Publication of CN109561022A publication Critical patent/CN109561022A/zh
Priority to US16/830,864 priority patent/US11190367B2/en
Application granted granted Critical
Publication of CN109561022B publication Critical patent/CN109561022B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1854Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with non-centralised forwarding system, e.g. chaincast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1886Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with traffic restrictions for efficiency improvement, e.g. involving subnets or subdomains
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/16Multipoint routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering

Abstract

一种组播转发方法及组播路由器,该方法包括:第一组播路由器监听流经自身的多个单播报文,确定来自同一个上游组播路由器且属于同一单播流的单播报文集合;然后所述第一组播路由器确定所述单播报文集合中的至少两个单播报文的目的地址不同时,向所述上游组播路由器发送剪枝消息;最后所述第一组播路由器将接收到的具有所述组播标识的单播报文分别发送至所述目的地址组对应的各个目的设备,该方法用以提供一种新型的组播方法,可以在现有的单播网络架构下实现部分路由器的组播功能。

Description

一种组播转发方法及组播路由器
技术领域
本申请涉及信息技术领域,尤其涉及一种组播转发方法及组播路由器。
背景技术
网络互连协议(internet protocol,IP)网络通信的一种实现方式是单播,其特点是一次传输一条消息到一个接收者;另一种实现方式是广播,其特点是一次传输一条消息到子网内所有接收者。当网络中有多个接收者时,单播方式会导致IP网络中存在同一条消息的多个副本,且重复占用网络资源和服务器资源,因此传输效率低下。然而广播方式无法覆盖不同的子网,否则会引发广播风暴。因此,“一次传输一条消息到多个接收者”的组播传输方式应运而生。
IP组播就是使用组播路由协议,在接收端和组播源之间逐跳建立组播路由表项,最终构造出一棵以组播源为根,以接收端为叶子的树状结构(即组播分发树),组播报文从根节点开始朝着叶子方向,在每个组播路由器上进行复制,直到终端。其中,协议无关组播协议-稀疏模式(Protocol Independent Multicast-Sparse Mode,PIM-SM)协议是当前认可度较高的组播路由协议,但是PIM-SM协议仍然存在各种缺陷,例如,IP组播网络中的所有路由器必须都要支持PIM-SM协议,而且一旦某一正在运行PIM-SM的路由器宕机,该路由器分支树下接入的终端的组播业务将无法自动恢复。
发明内容
有鉴于此,本申请提供了一种组播转发方法及组播路由器,用以提供一种新型的组播方法,可以在现有的单播网络架构下实现部分路由器的组播功能。
第一方面,本申请实施例提供了一种组播转发方法,该方法包括:第一组播路由器监听流经自身的多个单播报文,确定来自同一个上游组播路由器且属于同一单播流的单播报文集合;然后所述第一组播路由器确定所述单播报文集合中的至少两个单播报文的目的地址不同时,向所述上游组播路由器发送剪枝消息;最后所述第一组播路由器将接收到的具有所述组播标识的单播报文分别发送至所述目的地址组对应的各个目的设备。
这样做目的是,一旦通信网络的分支树上的组播路由器监听发现单播报文集合中的单播报文的目的地址不同时,就会将对应不同目的地址的多个相同的单播流进行合并,即通知上游组播路由器不再发送多条相同的单播流,只需要发送一条单播流至下游组播路由器,由该下游组播路由器分发至不同的目的地址对应的目的设备。使得网络可以在部分设备支持组播的情况下实现组播功能。而且,因为组播功能的实现可以合并部分相同的单播流,所以可以减少网络带宽的消耗。
在一种可能的设计中,所述第一组播路由器确定所述单播报文集合中的至少两个单播报文的目的地址不同时,所述第一组播路由器获取所述单播报文集合中的各个报文的目的地址,并生成第一组播路由表项,所述第一组播路由表项的源地址为所述第一组播路由器的地址,目的地址是所述目的地址组。这样,第一组播路由器就可以通过组播路由表项对下游的目的终端的接入或者离开进行维护,方便对客户端进行管理。
在一种可能的设计中,当第一组播路由器生成了组播路由表项之后,第一组播路由器根据所述第一组播路由表项,将接收到的具有所述组播标识的单播报文进行报文修改,得到修改后的单播报文,然后所述第一组播路由器将修改后的单播报文分别发送至所述目的地址组对应的各个目的设备。
因为修改后的单播报文的源地址为所述第一组播路由器的地址,所述修改后的单播报文的目的地址为所述第一组播路由表项中的所述目的地址组中的目的地址,所以第一组播路由器可以根据第一组播路由表项将上游合并后的单播流分发至不同的目的设备中,实现了组播功能。
在另一种可能的设计中,所述第一组播路由器监听得到所述上游组播路由器发送的第一消息,其中,所述第一消息中携带有所述组播标识和第一目标地址,指示所述第一目标地址对应的目的设备停止接收具有所述组播标识的单播报文;
所述第一组播路由器查找所述组播标识对应的第一组播路由表项,确定所述第一目标地址属于所述目的地址组;所述第一组播路由器将所述第一目标地址从所述第一组播路由表项中移除,并停止向所述第一目标地址对应的目的设备发送具有所述组播标识的单播报文。
也就是说,分支树上的组播路由器一旦监听到来自上游的停止转发报文的指示消息,就会按照设定规则查找自身的组播路由表项,进而将目的设备从组播路由表项中移除,因为组播路由表项中不再具备这一目的地址,所以组播路由器停止向该目的设备发送单播报文。
另一种情况下,假设第一组播路由器移除了组播路由表项中第一目的地址之后,目的地址列表为空,那么第一组播路由器通知所述上游组播路由器停止向自身发送具有所述组播标识的单播报文。也就是说,第一组播路由器下游分支没有待转播报文的目的设备,那么上游就不再直接向第一组播路由器发送合并后的单播流。
第二方面,本申请实施例提供了一种组播转发方法,该方法包括:第二组播路由器接收来自下游组播路由器的剪枝消息;所述第二组播路由器根据所述剪枝消息,停止向所述目的地址组对应的各个目的设备发送具有所述组播标识的单播报文,并将待发送的具有所述组播标识的单播报文发送至所述下游组播路由器。
因为,剪枝消息中包括所述下游组播路由器从单播报文集合的各个单播报文中确定出来的目的地址组,其中,所述单播报文集合是所述下游组播路由器通过监听流经自身的多个单播报文得到的来自所述第二组播路由器且属于同一单播流的单播报文集合,其中,所述单播流中的单播报文携带组播标识,所述组播标识指示所述单播流中的单播报文来自于同一数据源服务器,且发送至属于同一组播组的目的设备,所以说,第二组播路由器收到这一剪枝消息,就可以将目的地址组所对应的各条单播流进行合并,从而只向下游组播路由器发送合并后的一条单播流即可,所以可以减少网络带宽的消耗。
在一种可能的设计中,所述第二组播路由器接收来自数据源服务器的注册请求,所述注册请求中携带用户数据报协议UDP会话的IP四元组信息;所述第二组播路由器根据所述注册请求,为所述UDP会话分配组播组的组标识;
所述第二组播路由器向所述数据源服务器发送注册请求的应答消息,所述应答消息中携带所述组播组的组标识;所述第二组播路由器接收来自所述数据源服务器发送的单播报文,所述单播报文的头部携带有所述组播标识,所述组播标识是所述数据源服务器根据自身的地址和所述组播组的组标识生成的。
也就是说,第二组播路由器还具有为数据源服务器的UDP会话分配组播标识的功能,这样,数据源服务器将这一组播标识插入到报文中,就可以指示这些报文来自同一个数据源,发向同一组播组的目的设备,属于同一类报文,以便于下游的组播路由器对报文进行监听,识别出可被合并的单播流。
在一种可能的设计中,所述第二组播路由器接收来自第一客户端的点播请求,所述点播请求用于请求订阅UDP会话;所述第二组播路由器生成第二组播路由表项,所述第二组播路由表项的源地址为所述第二组播路由器的地址,所述第二组播路由表项的目的地址为所述第一客户端的地址。这样,第二组播路由器可对各个终端设备的接入和离开进行维护,方便进行计费管理。
在一种可能的设计中,所述第二组播路由器根据所述第二组播路由表项,将接收到的具有所述组播标识的单播报文进行报文修改,得到修改后的单播报文,所述修改后的单播报文的源地址为所述第二组播路由器的地址,所述修改后的单播报文的目的地址为所述第一客户端的地址;所述第二组播路由器向所述第一客户端发送具有所述组播标识的修改后的单播报文。因为,第二组播路由器将单播报文进行了修改,修改之后就变成了组播报文,从而可以实现组播功能。
在一种可能的设计中,所述第二组播路由器接收所述第一客户端发送的停止点播请求,所述停止点播请求用于请求停止订阅所述UDP会话;所述第二组播路由器查找所述组播标识对应的第二组播路由表项,确定所述第一客户端的地址包含于所述第二组播路由表项的目的地址中;
所述第二组播路由器将所述第一客户端的地址从所述第二组播路由表项中移除,并停止向所述第一客户端的地址对应的目的设备发送具有所述组播标识的单播报文。
也就是说,一旦第二组播路由器接收到客户端发送的停止点播请求,就会查找自身的组播路由表项,若存在的话,将其从目的地址中移除,后续不再对其发送报文。
在另一种可能的设计中,所述第二组播路由器查找所述组播标识对应的第二组播路由表项,确定所述第一客户端的地址不包含于所述第二组播路由表项的目的地址中;所述第二组播路由器根据所述第二组播路由表项生成第一消息,所述第一消息的源地址为所述第二组播路由器的地址,所述第一消息的目的地址为所述第一客户端的地址;所述第一消息中携带有所述组播标识,用于通知所述下游组播路由器所述第一目标地址对应的目的设备已停止接收具有所述组播标识的单播报文;所述第二组播路由器将所述第一消息发送至所述下游组播路由器,以便于所述下游组播路由器监听到所述第一消息后停止向所述第一客户端发送具有所述组播标识的单播报文。
也就是说,当第二组播路由器判断第一目的地址不在自身的组播路由表项中,则向下游的组播路由器发送第一消息,即通知下游组播路由器进行查找,停止向该客户端发送报文。
第三方面,本申请实施例还提供了一种组播转发装置,该装置具有实现上述第一方面方法示例中终端行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或所述软件包括一个或多个与上述功能相对应的模块,具体地,所述装置包括:监听单元、确定单元、发送单元、接收单元,该装置对应方法侧的第一组播路由器,其中:监听单元,用于监听流经自身的多个单播报文;确定单元,用于确定来自同一个上游组播路由器且属于同一单播流的单播报文集合,其中,所述单播流中的单播报文携带同一组播标识,所述组播标识指示所述单播流中的单播报文来自于同一数据源服务器,且发送至属于同一组播组的目的设备;发送单元,用于确定所述单播报文集合中的至少两个单播报文的目的地址不同时,向所述上游组播路由器发送剪枝消息,所述剪枝消息中携带有从所述单播报文集合的各个单播报文中确定出来的目的地址组,所述剪枝消息指示所述上游组播路由器停止向所述目的地址组对应的各个目的设备发送具有所述组播标识的单播报文,并将待发送的具有所述组播标识的单播报文发送至所述第一组播路由器;所述发送单元,用于将接收单元接收到的具有所述组播标识的单播报文分别发送至所述目的地址组对应的各个目的设备。
在一种可能的设计中,该组播转发装置还包括生成单元,用于获取所述单播报文集合中的各个报文的目的地址,并生成第一组播路由表项,所述第一组播路由表项的源地址为所述第一组播路由器的地址,目的地址是所述目的地址组。
在一种可能的设计中,该组播转发装置还包括处理单元,用于根据所述第一组播路由表项,将接收到的具有所述组播标识的单播报文进行报文修改,得到修改后的单播报文,所述修改后的单播报文的源地址为所述第一组播路由器的地址,所述修改后的单播报文的目的地址为所述第一组播路由表项中的所述目的地址组中的目的地址;将修改后的单播报文分别发送至所述目的地址组对应的各个目的设备。
进一步,在一种可能的设计中,所述监听单元,还用于监听得到所述上游组播路由器发送的第一消息,其中,所述第一消息中携带有所述组播标识和第一目标地址,指示所述第一目标地址对应的目的设备停止接收具有所述组播标识的单播报文;所述确定单元,还用于查找所述组播标识对应的第一组播路由表项,确定所述第一目标地址属于所述目的地址组;所述处理单元,还用于将所述第一目标地址从所述第一组播路由表项中移除,并停止向所述第一目标地址对应的目的设备发送具有所述组播标识的单播报文。
在另一种可能的设计中,所述发送单元,还用于在所述确定单元确定移除了所述第一目标地址的第一组播路由表项中的目的地址为空的情况下,通知所述上游组播路由器停止向自身发送具有所述组播标识的单播报文。
第四方面,本申请实施例还提供了一种组播转发装置,该装置具有实现上述第二方面方法示例中终端行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或所述软件包括一个或多个与上述功能相对应的模块。所述装置包括:接收单元、处理单元,该装置对应方法侧的第二组播路由器,接收单元,用于接收来自下游组播路由器的剪枝消息;其中,所述剪枝消息中包括所述下游组播路由器从单播报文集合的各个单播报文中确定出来的目的地址组,其中,所述单播报文集合是所述下游组播路由器通过监听流经自身的多个单播报文得到的来自所述第二组播路由器且属于同一单播流的单播报文集合,其中,所述单播流中的单播报文携带组播标识,所述组播标识指示所述单播流中的单播报文来自于同一数据源服务器,且发送至属于同一组播组的目的设备;处理单元,用于根据所述剪枝消息,停止向所述目的地址组对应的各个目的设备发送具有所述组播标识的单播报文;发送单元,用于将待发送的具有所述组播标识的单播报文发送至所述下游组播路由器。
在一种可能的设计中,所述接收单元,还用于接收来自数据源服务器的注册请求,所述注册请求中携带用户数据报协议UDP会话的IP四元组信息;所述处理单元,还用于根据所述注册请求,为所述UDP会话分配组播组的组标识;所述发送单元,还用于向所述数据源服务器发送注册请求的应答消息,所述应答消息中携带所述组播组的组标识;所述接收单元,还用于接收来自所述数据源服务器发送的单播报文,所述单播报文的头部携带有所述组播标识,所述组播标识是所述数据源服务器根据自身的地址和所述组播组的组标识生成的。
在一种可能的设计中,所述接收单元,用于接收来自第一客户端的点播请求,所述点播请求用于请求订阅UDP会话;该转发装置还包括生成单元,生成单元用于生成第二组播路由表项,所述第二组播路由表项的源地址为所述第二组播路由器的地址,所述第二组播路由表项的目的地址为所述第一客户端的地址。
在一种可能的设计中,该转发装置还包括处理单元,具体用于根据所述第二组播路由表项,将接收到的具有所述组播标识的单播报文进行报文修改,得到修改后的单播报文,所述修改后的单播报文的源地址为所述第二组播路由器的地址,所述修改后的单播报文的目的地址为所述第一客户端的地址;所述发送单元,用于向所述第一客户端发送具有所述组播标识的修改后的单播报文。
在一种可能的设计中,所述接收单元,用于接收所述第一客户端发送的停止点播请求,所述停止点播请求用于请求停止订阅所述UDP会话;所述处理单元,还用于查找所述组播标识对应的第二组播路由表项,确定所述第一客户端的地址包含于所述第二组播路由表项的目的地址中;将所述第一客户端的地址从所述第二组播路由表项中移除,并停止向所述第一客户端的地址对应的目的设备发送具有所述组播标识的单播报文。
在一种可能的设计中,所述处理单元,还用于查找所述组播标识对应的第二组播路由表项,确定所述第一客户端的地址不包含于所述第二组播路由表项的目的地址中;根据所述第二组播路由表项生成第一消息,所述第一消息的源地址为所述第二组播路由器的地址,所述第一消息的目的地址为所述第一客户端的地址;所述第一消息中携带有所述组播标识,用于通知所述下游组播路由器所述第一目标地址对应的目的设备已停止接收具有所述组播标识的单播报文;所述发送单元,用于将所述第一消息发送至所述第一客户端,以便于所述下游组播路由器监听到所述第一消息后停止向所述第一客户端发送具有所述组播标识的单播报文。
第五方面,本申请实施例还提供了一种组播路由器,该组播路由器具有实现上述第一方面或者、第二方面方法示例中组播路由器行为的功能。所述功能可以通过硬件实现。所述终端的结构中包括通信接口、处理器、以及存储器,处理器调用存储在所述存储器中的指令执行上述方法。
第六方面,本申请实施例中还提供一种计算机存储介质,该存储介质中存储软件程序,该软件程序在被一个或多个处理器读取并执行时可实现第一方面或上述第一方面的任意一种设计提供的方法。
第七方面,本申请还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面或各种可能的实现方式。
本申请实施例提供的组播转发方法相较于传统的IP组播,单播地址为目的地址的报文可以穿越单播网络,又因为携带有组播标识,所以组播路由器可以进行识别,使得网络可以在部分设备支持组播的情况下实现组播功能。而且组播功能的实现可以合并部分相同的单播流,所以可以减少网络带宽的消耗。
附图说明
图1为本申请实施例提供的一种通信系统架构图;
图2为本申请实施例提供的一种组播转发方法场景一交互图;
图3为本申请实施例提供的一种组播转发方法场景二交互图;
图4为本申请实施例提供的一种组播转发方法场景三交互图;
图5为本申请实施例提供的一种组播转发方法示例架构图;
图6为本申请实施例提供的一种组播路由器的结构示意图。
具体实施方式
下面将结合附图对本申请作进一步地详细描述。
本申请中的组播转发方法可适用于多种通信系统,图1为本申请适用的其中一种通信系统的示意图。该通信系统中,包括数据源服务器、汇聚点(rendezvous point,RP)、组播路由器(Multicast Router,MCR)1、MCR2、R1至R8、终端1至终端5。
其中,RP、MCR1、MCR2是本申请实施例引入的支持组播的组播路由器。R1至R8属于普通的路由器,不支持组播功能,终端1至终端5可以是计算机设备、或者各种移动终端设备等。需要说明的是,RP是一种特殊的组播路由器,除了具有组播功能,还负责分配组播组的组标识、以及与客户端进行交互等。另外,MCR1和MCR2是支持组播功能的组播路由器,负责监听并识别可被聚合的单播流,并将这些单播流聚合。
因为考虑到现有的IP组播的缺点是网络中的所有路由器必须都要支持PIM-SM协议,而单播的缺点是网络带宽浪费、传输效率低下。因此本申请实施例基于现有的单播网络架构,对部分路由器进行功能升级,使得升级后的路由器具有组播功能。所谓组播功能,指的是组播源仅发送一次信息,组播路由器借助组播路由协议建立树型路由,被传递的信息在组播源尽可能远的分叉路口才开始复制和分发。在组播方式中,信息的发送者称为“组播源”,信息接收者称为该信息的“组播组”,支持组播信息传输的所有路由器称为“组播路由器”。加入同一组播组的接收者成员可以广泛分布在网络中的任何地方,即“组播组”没有地域限制。需要注意的是,多个组播源可以同时向同一个组播组发送信息。假设说只有终端B、终端D和终端E需要同样的信息,采用组播方式时,可以让这些终端加入同一个组播组,组播源向上游组播路由器只需发送一份信息,并由网络中各下游组播路由器根据该组播组中各成员的分布情况对该信息进行复制和转发,最后该信息会被准确地分发给终端B、终端D和终端E。
从图1可见,本申请实施例提供的通信系统只对路由器RP、路由器MCR1、路由器MCR2进行了改进,改进后RP、MCR1、MCR2具有组播功能。普通路由器R1至R8都不参与组播信令过程,所以说相对于IP组播,本申请实施例提供的通信系统不需要全网部署组播路由器。具有组播功能的RP、MCR1和MCR2不再使用终端所在的组播组的地址作为目的地址,而通过由数据源服务器地址和组播组的组标识构成的组播标识来标记组播报文。
因为数据源服务器在报文中插入了组播标识,所以分支树上的组播路由器通过监听流经自身的单播报文,生成单播报文集合,每个单播报文集合包含的是来自同一组播源且携带同一组播标识的单播报文。一旦分支树上的组播路由器MCR2监听发现单播报文集合中的单播报文的目的地址不同时(即终端3和终端4),就会将对应不同目的地址的多个相同的单播流进行合并,即通知上游组播路由器MCR2不再发送多条相同的单播流,只需要发送一条单播流至该组播路由器MCR1,由该组播路由器MCR2分发至不同的目的地址对应的目的设备(即终端3和终端4)。这样,单播地址为目的地址的报文可以穿越单播网络,组播标识仅需要由组播路由器进行识别,使得网络可以在部分设备支持组播的情况下实现组播功能。而且,因为组播功能的实现可以合并部分相同的单播流,所以可以减少网络带宽的消耗。
具体地,本申请实施例结合图1所示的通信系统,进一步对组播转发方法的具体过程进行详细说明,因为图1所示的通信系统中的组播路由器使能顺序有先后,也就是说组播路由器可能不是同时具有组播功能,所以本申请实施例分如下三个场景分别进行说明。
场景一
如图2所示,主要流程包括:注册流程A、点播流程B、合并流程C、停止点播流程D。
其中,注册流程A主要包括图2中步骤201至步骤203。具体内容如下:
步骤201、数据源服务器向组播路由器发送注册请求,在注册携带UDP会话的IP四元组(源地址、目的地址、源端口号、目的端口号)信息。
步骤202,RP接收数据源服务器的注册请求后,根据注册请求中的UDP会话的IP四元组,为该UDP会话分配组播组的组标识,并记录该UDP会话的IP四元组与组播组的组标识之间的映射关系。同时RP向数据源服务器发送注册请求的应答消息,应答消息中携带组播组的组标识。
步骤203,数据源服务器接收到组播路由器的应答消息后,利用RP分配的组播组标识和自身地址构成了组播标识,将组播标识插入单播报文的头部中,然后将修改后报文发送至RP。例如,数据源服务器的地址是10.0.0.2,RP为UDP会话分配的组播组的组标识为1,则数据源服务器生成的组播标识为(10.0.0.2::1)。
其中,点播流程B主要包括图2中步骤204a至步骤205e。具体内容如下:
步骤204a至步骤204e,终端1中终端5向RP发送点播请求,其中,点播请求中携带终端1至终端5所在的组播组的组标识。
步骤205a至步骤205e,当RP接收到终端的点播请求后,RP会根据点播请求中的终端的组播组的组标识,查询预先建立的UDP会话的IP四元组与组播组的组标识之间的映射关系,确定出对应的UDP会话。例如,RP接收到终端1的点播请求,点播请求中的终端的组播组的组标识为1,RP确定UDP会话的数据源服务器为10.0.0.2,进一步地,RP将终端1的地址添加至组播路由表项1(例如表1所示)中,该组播路由表项1中的源地址为RP的地址,目的地址为终端1的地址,RP根据该组播路由表项1,将UDP会话中的报文修改成源地址为RP、目的地址为终端1的地址的单播报文发送出去,并且在单播报文中携带组播标识。
表1
Figure BDA0001421470480000071
其中,合并流程C主要包括图2中MCR1聚合RP发送至终端2至终端5的单播流,(见步骤206至步骤209e),以及MCR2聚合MCR1发送至终端3和终端4的单播流(见步骤210至步骤213d)。具体内容如下:
步骤206,MCR1和MCR2监听流经自身的单播报文,获取监听到的单播报文的组播标识和单播报文中的源地址信息。
步骤207a,MCR1确定有n个单播报文的源地址为RP的地址,且都具有相同的组播标识(10.0.0.2::1),MCR1将这n个单播报文组成一个单播报文集合,从该单播报文集合中确定出有4个终端(终端2至终端5)的地址,因此MCR1向上游RP发送剪枝消息,其中,剪枝消息中携带有从所述单播报文集合的各个单播报文中确定出来的目的地址组(终端2至终端5的地址)。同时,MCR1生成组播路由表项2(例如表2所示),该组播路由表项2中中的源地址为MCR1的地址,目的地址为终端2至终端5的地址。
表2
Figure BDA0001421470480000072
Figure BDA0001421470480000081
步骤207b,MCR2也确定有k个单播报文的源地址为RP的地址,且都具有相同的组播标识(10.0.0.2::1),MCR2将这k个单播报文组成一个单播报文集合,从该单播报文集合中确定出有2个终端(终端3至终端4)的地址,因此MCR2向上游RP发送剪枝消息。需要说明的是,因为图1的通信系统是分支树的树形结构,所以在时序上,MCR1较MCR2先监听到单播报文,故MCR1较MCR2先向RP发出剪枝消息,所以RP会先收到MCR1发出剪枝消息。
步骤208,因为剪枝消息指示所述RP停止向所述目的地址组对应的各个目的设备(终端2至终端5)发送具有所述组播标识的单播报文,并将待发送的具有所述组播标识的单播报文发送至MCR1,所以RP接收到MCR1发出的剪枝消息后,用组播标识查找到对应的组播路由表1,修改组播路由表项1,用MCR1的地址替换终端2至终端5的地址,然后将发送至终端2至终端5的多条单播流合并至一条单播流,发送至MCR1。修改后的组播路由表项1如表3所示。
表3
Figure BDA0001421470480000082
紧接着,因为RP又收到MCR2的剪枝消息,因为RP的组播路由表项1中(见表3)已经不具有终端3和终端4的目的地址,因此不会对该剪枝消息做响应。
步骤209b至步骤209e,MCR1接收到RP发送的合并后的一个单播流的单播报文之后,根据表2中的组播路由表项2,将接收到的单播流中的单播报文复制分发至终端2至终端5。
步骤210,MCR2监听流经自身的单播报文,获取监听到的单播报文的组播标识和单播报文中的源地址信息。
步骤211,MCR2确定有m个单播报文的源地址为MCR1的地址,且都具有相同的组播标识(10.0.0.2::1),MCR2将这m个单播报文组成一个单播报文集合,从该单播报文集合中确定出有2个终端(终端3至终端4)的地址,因此MCR2向上游MCR1发送剪枝消息,其中,剪枝消息中携带有从所述单播报文集合的各个单播报文中确定出来的目的地址组(终端3至终端4的地址)。同时,MCR2生成组播路由表项3(例如表4所示),该组播路由表项3中中的源地址为MCR2的地址,目的地址为终端3至终端4的地址。
表4
Figure BDA0001421470480000083
步骤212,因为剪枝消息指示所述MCR1停止向所述目的地址组对应的各个目的设备(终端3至终端4)发送具有所述组播标识的单播报文,并将待发送的具有所述组播标识的单播报文发送至MCR2,所以MCR1接收到剪枝消息后,用组播标识查找到对应的组播路由表2,修改组播路由表项2,用MCR2的地址替换终端3至终端4的地址,然后将发送至终端3至终端4的多条单播流合并至一条单播流,发送至MCR2。修改后的组播路由表项2如表5所示。
表5
Figure BDA0001421470480000091
步骤213c至步骤213d,MCR2接收到MCR1发送的合并后的一个单播流的单播报文之后,根据表4中的组播路由表项3,将接收到的单播流中的单播报文复制分发至终端3至终端4。
其中,停止点播流程D主要包括图2中的步骤214至步骤216。具体内容如下:
步骤214,终端向RP发送停止点播请求,其中,所述停止点播请求中携带有所述组播标识和第一目标地址,指示所述第一目标地址对应的目的设备停止接收具有所述组播标识的单播报文;例如终端2向RP发送停止点播请求,停止点播请求中携带有终端2的地址,以及组播标识(10.0.0.2::1)。
步骤215,RP查找所述组播标识对应的组播路由表项1,确定所述终端2的地址不包含于所述组播路由表项1的目的地址列表中,RP利用第一消息通知所述下游组播路由器终端2已停止接收具有所述组播标识的单播报文,其中第一消息的源地址是RP的地址,目的地址是终端1至终端5的地址。
步骤216,MCR1监听时获取第一消息,根据第一消息中的组播标识,查找到对应的组播标识,继而根据组播标识查找确定出组播路由表项2,MCR1修改组播路由表项2,将终端2的地址从组播路由表项2中移除,修改后的组播路由表项2如表6所示。
表6
Figure BDA0001421470480000092
假设步骤214中是终端1向RP发出停止点播请求,那么步骤215和步骤216就变为:RP查找所述组播标识对应的组播路由表项1,确定所述终端2的地址包含于所述组播路由表项1的目的地址列表中,RP修改组播路由表项1,将终端1的地址从组播路由表项1中移除,修改后的组播路由表项1如表7所示。
表7
组播标识 源地址 目的地址
(10.0.0.2::1) RP地址 MCR1的地址
从图2所述的各个流程可见,本申请实施例通过在单播网络中部署部分组播路由器,实现了组播传输业务的功能,这样既可以实现部分组播功能,减少对网络带宽的占用,组播路由器还可以利用组播路由表项统计加入或者离开的终端,对终端进行管理和计费。
需要说明的是,假设步骤207a中MCR1发出的剪枝消息丢包,后续又重发,那么后续的执行步骤也会不同,具体如下。
步骤208,因为剪枝消息指示所述RP停止向所述目的地址组对应的各个目的设备(终端3至终端4)发送具有所述组播标识的单播报文,并将待发送的具有所述组播标识的单播报文发送至MCR2,所以RP接收到MCR2发出的剪枝消息后,用组播标识查找到对应的组播路由表1,修改组播路由表项1,用MCR2的地址替换终端3至终端4的地址,然后将发送至终端3至终端4的多条单播流合并至一条单播流,发送至MCR2。
紧接着,因为RP又收到MCR1的剪枝消息,因为RP的组播路由表项1中1已经不具有终端3和终端4的目的地址,因此RP不会对这两条单播流进行合并,RP只会将发向终端2、终端5以及MCR1的地址合并为一条单播流,然后发送至MCR1。MCR完成对RP的单播流的合并动作之后,在MCR1完成合并之前,MCR2遵循以下原则:仅对来自源地址是上游MCR1的报文进行合并动作。
场景二
假设图1中MCR2在通信系统部署初期是普通路由器,后续因产品需求升级为组播路由器,合并流程303在图1中MCR2为普通路由器和升级成组播路由器时两种情况下执行的动作存在不同。
情况一,当MCR2为普通路由器时,如图3所示,报文转发过程的具体步骤如下。
步骤301至步骤305e与步骤201至步骤205e一致,该处不再赘述。
步骤306,MCR1监听流经自身的单播报文,获取监听到的单播报文的组播标识和单播报文中的源地址信息。
步骤307a与步骤207a一致,该处不再赘述。
步骤308,因为剪枝消息指示所述RP停止向所述目的地址组对应的各个目的设备(终端2至终端5)发送具有所述组播标识的单播报文,并将待发送的具有所述组播标识的单播报文发送至MCR1,所以RP接收到MCR1发出的剪枝消息后,用组播标识查找到对应的组播路由表项1,修改组播路由表项1,用MCR1的地址替换终端2至终端5的地址,然后将发送至终端2至终端5的多条单播流合并至一条单播流,发送至MCR1。修改后的组播路由表项1如表3所示。
步骤309b至步骤309e与209b至步骤209e相一致,该处不再赘述。
情况二,当MCR2升级为组播路由器时,报文转发过程的具体步骤与图2中的步骤相同,区别在于MCR2不会与MCR1同时向RP发剪枝消息,即步骤307b不再存在,这是因为这时MCR1已经完成将RP发出的单播流进行合并,如图3所示,MCR2执行具体步骤如下。
步骤310,MCR2监听流经自身的报文,获取监听到的单播报文的组播标识和单播报文中的源地址信息。
步骤311至313d与步骤211至步骤211d相一致,该处不再赘述。
场景三
假设图1中MCR1在通信系统部署初期是普通路由器,后续因产品需求升级为组播路由器,合并流程303在图1中MCR1为普通路由器和升级成组播路由器两种情况下存在不同。
情况一,当MCR1为普通路由器时,如图4所示,报文转发过程的具体步骤如下。
步骤401至步骤405e与步骤201至步骤205e一致,该处不再赘述。
步骤406与步骤210一致,该处不再赘述
步骤407,MCR2确定有m个单播报文的源地址为RP的地址,且都具有相同的组播标识(10.0.0.2::1),MCR2将这m个单播报文组成一个单播报文集合,从该单播报文集合中确定出有2个终端(终端3至终端4)的地址,因此MCR2向上游RP发送剪枝消息,其中,剪枝消息中携带有从所述单播报文集合的各个单播报文中确定出来的目的地址组(终端3至终端4的地址)。同时,MCR2生成组播路由表项3(如表4所示)。
步骤408,因为剪枝消息指示所述RP停止向所述目的地址组对应的各个目的设备(终端3至终端4)发送具有所述组播标识的单播报文,并将待发送的具有所述组播标识的单播报文发送至MCR2,所以RP接收到剪枝消息后,用组播标识查找到对应的组播路由表2,修改组播路由表项1,用MCR2的地址替换终端3至终端4的地址,然后将发送至终端3至终端4的多条单播流合并至一条单播流,发送至MCR2。修改后的组播路由表项1如表8所示。
表8
Figure BDA0001421470480000111
情况二,当MCR1升级为组播路由器时,报文转发过程的具体步骤与图2中的步骤相同,区别除了MCR1不会和MCR2同时向RP发送剪枝消息,另外因为MCR2已经将终端3和终端4的单播流合并,所以MCR1向RP发剪枝消息,只是请求将发向终端2和终端5以及MCR1的单播流合并,如图4所示,具体步骤如下。
步骤410,MCR1监听流经自身的单播报文,获取监听到的单播报文的组播标识和单播报文中的源地址信息。
步骤411,MCR1确定有L个单播报文的源地址为RP的地址,且都具有相同的组播标识(10.0.0.2::1),MCR1将这L个单播报文组成一个单播报文集合,从该单播报文集合中确定出有3个终端(终端2、MCR2、终端5)的地址,因此MCR1向RP发送剪枝消息,其中,剪枝消息中携带有从所述单播报文集合的各个单播报文中确定出来的目的地址组(终端2的地址、MCR2的地址、终端5的地址)。同时,MCR1生成组播路由表项2(如表9所示),该组播路由表项2中的源地址为MCR1的地址,目的地址为终端2、MCR2的地址、终端5的地址。
表9
Figure BDA0001421470480000121
步骤412b、步骤402e、步骤402f,MCR1接收到RP发送的合并后的一个单播流的单播报文之后,根据表9中的组播路由表项2,将接收到的单播流中的单播报文复制分发至终端3、MCR2至终端5。
为了更为形象地阐述上述组播转发方法,本申请实施例结合图5所示的网络架构相对简单的通信系统,对上述报文转发过程进行阐述,在图5中包括数据源服务器、RP、MCR1、R1至R4,以及加入同一组播组的终端1至终端3。
其中,图5中各网元的地址如表10所示。
表10
数据源服务器 10.0.0.2
RP 10.0.0.1
MCR1 10.10.0.1
R1 10.9.0.1
R2 10.9.10.1
R3 10.10.9.1
R4 10.10.10.1
终端1 10.9.10.2
终端2 10.10.9.2
终端3 10.10.10.2
图5中的第一流程:数据源服务器向RP发起注册流程。详细步骤如下
A1)数据源服务器向RP发起建立UDP会话,其中,UDP会话的源地址为10.0.0.2,目的地址为10.0.0.1,源端口号为112,目的端口号为211。
A2)数据源服务器向RP发送注册请求,在注册请求中携带上述UDP会话IP四元组信息。
A3)RP收到注册请求后,用IP四元组信息查找预先建立IP四元组与组播组的组标识的映射关系表,若没有查找到结果,且组播组的组标识资源足够的情况下,为该UDP会话分配组播组的组标识ID1。
A4)RP生成该IP四元组和组播组的组标识ID1的映射关系。
A5)RP向数据源服务器发送应答消息,生成组播标识(10.0.0.2::1)。
A6)RP建立与组播标识(10.0.0.2::1)对应的组播路由表项1,源地址为RP地址(10.0.0.1),目的地址列表为空。
A7)数据源服务器通过UDP会话向RP发送组播内容,并在报文头部插入组播标识(10.0.0.2::1)。
第二流程:终端1向RP发起点播流程。详细步骤如下:
B1)RP接收到终端1发出的点播请求,RP根据点播请求中的组播组标识信息确定出RP和数据源服务器之间的UDP会话IP四元组。
B2)RP通过IP四元组获取到组播标识(10.0.0.2::1),查找得到与组播标识对应的组播路由表项1,并在表项的目的列表中增加终端1的地址10.9.10.2。
B3)RP在终端1的上下文中记录其发送状态为“直接发送”,并向终端1复制一条单播流。
第三流程:终端2向RP发起点播流程。详细步骤如下:
C1)RP接收到终端2发出的点播请求,RP根据点播请求中的组播组标识信息确定出RP和数据源服务器之间的UDP会话IP四元组。
C2)RP通过IP四元组获取到组播标识(10.0.0.2::1),查找得到与组播标识对应的组播路由表项1,并在表项的目的列表中增加终端2的地址10.10.9.2。
C3)RP在终端2的上下文中记录其发送状态为“直接发送”,并向终端2复制一条单播流。
第四流程:终端3向RP发起点播流程。详细步骤如下:
D1)RP接收到终端3发出的请求,RP根据点播请求中的组播组标识信息确定出RP和数据源服务器之间的UDP会话IP四元组。
D2)RP通过IP四元组获取到组播标识(10.0.0.2::1),查找得到与组播标识对应的组播路由表项1,并在表项的目的列表中增加终端3的地址10.10.10.2。
D3)RP在终端3的上下文中记录其发送状态为“直接发送”,并向终端3复制一条单播流。
第五流程:合并流程,详细步骤如下:
E1)MCR1通过匹配规则1监听到目的地址为终端2的地址10.10.9.2,组播标识(10.0.0.2::1),源地址为RP的地址10.0.0.1的报文,同时还监听到目的地址为终端3的地址10.10.10.2,组播标识(10.0.0.2::1),源地址为RP的地址10.0.0.1的报文。其中,规则1指的是匹配出来自同一上游组播路由器发送的具有相同组播标识的报文,得到单播报文集合。
E2)由于复制目的列表中的地址超过1,MCR1向RP发送剪枝消息,指示RP对发向终端2和终端3的具有相同组播标识的两个单播流进行合并。其中,剪枝消息的目的地址为RP地址10.0.0.1,源地址为MCR1地址10.10.0.1,携带目的地址列表(10.10.9.2,10.10.10.2)和组播标识(10.0.0.2::1)。
E3)RP收到剪枝消息,利用用组播标识(10.0.0.2::1)查找到对应组播路由表项1,把(10.10.9.2,10.10.10.2)从目的地址列表中删除,并在目的地址列表中增加MCR1地址10.10.0.1,标识终端2和终端3的发送模式为间接发送。
E4)MCR1生成与组播标识(10.0.0.2::1)对应的组播路由表项2,源地址为MCR1地址(10.0.0.1),目的地址列表为终端2和终端3的地址。
E5)MCR增加规则rule2,并下发在规则1之前,优先级高于规则1,规则1的内容主要是:凡是匹配出具有组播标识(10.0.0.2::1),且来自RP的源地址,目的地址是MCR的单播报文,不将该报文加入到单播报文集合中。这样做的目的是,防止已经被合并的单播流又被规则1再次匹配上。
第六流程:停止点播流程,详细步骤如下:
F1)RP接收到终端3发出的停止点播请求,RP获取到终端3的发送状态为间接发送,构造停止复制消息,停止复制消息的目的地址为终端3的地址10.10.10.2,携带组播标识(10.0.0.2::1)。
F2)MCR1通过规则rule3监听到停止复制消息,用消息中的组播组ID查找组播路由表项2,检查表项的目的列表中终端3的目的地址,删除该目的地址,并向RP发送应答。其中,规则rule3的内容是匹配来自RP的停止复制消息。
从上述例子中可见,MCR1实现通知RP将多个单播流进行合并,MCR1将合并后的单播流发送至各个目的设备,有效地节省网络带宽。
图6为本申请提供的组播路由器的结构示意图,所述组播路由器800包括:通信接口801、处理器802、存储器803和总线系统804,该组播路由器可以是第一组播路由器,也可以是第二组播路由器。
其中,存储器803,用于存放计算机程序,还可以存储组播路由器接收的一些数据信息等。具体地,计算机程序可以包括程序代码,程序代码可以包括计算机操作指令等。存储器803可能为随机存取存储器(英文:random-access memory,RAM),也可能为非易失性存储器(英文:non-volatile memory,NVM),例如至少一个磁盘存储器。图中仅示出了一个存储器,当然,存储器也可以根据需要,设置为多个。存储器803也可以是处理器802中的存储器。
一种示例说明,存储器803可以存储如下的元素、可执行模块或者数据结构等,或者是它们的子集,或者它们的扩展集:
操作指令:包括各种操作指令,用于实现各种操作。
操作系统:包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。
处理器802用于控制组播路由器800的操作,处理器802还可以称为中央处理单元(英文:central processing unit,CPU)。
通信接口801,用于与组播路由器800连接的其他设备进行信息收发等处理。
具体的应用中,组播路由器800的各个组件可以通过总线系统804耦合在一起,其中总线系统804除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统804。为便于表示,图6中仅是示意性画出。
上述本申请实施例揭示的方法可以应用于处理器802中,或者由处理器802实现。处理器802可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器802中的硬件集成逻辑电路或者软件形式的指令完成。上述的处理器802可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质可以位于存储器803中,处理器802可以读取存储器803中存储的信息,结合硬件执行以上方法步骤。
上述实施例中的组播路由器是第一组播路由器时,就可以向上游路由器发送剪枝消息,并将上游路由器发送的合并后的单播流进行复制分发至目的设备;若组播路由器是是第二组播路由器,即RP时,则就可以与数据源服务器进行通信,为UDP会话分配组播标识,另外,在接收到剪枝消息后,可以将多个单播流进行合并,将合并后的单播流发送至该下游组播路由器,具体实现可以参照上述方法实施例中的具体描述,这里不再详细赘述。
综上,本申请实施例中的单播报文通过单播网络中部署的组播路由器实现了复制分发,比单播传输可以节省网络带宽,服务器的开销也相应减小。另外,本申请实施例不需要全网部署组播路由器,只需要对现有的有限的路由器进行升级,而且RP上有所有客户端的上下文,所有客户端的接入和退出均可以为集中管理,相对于IP组播,管理便利性得到提升。而且,加入升级后的组播路由器发生宕机时,也只需要恢复至普通路由器所具备的单播功能,通信网络仍然可以持续运行。
本领域内的技术人员应明白,本发明实施例可提供为方法、系统、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (19)

1.一种组播转发方法,其特征在于,该方法包括:
第一组播路由器监听流经自身的多个单播报文,确定来自同一个上游组播路由器且属于同一单播流的单播报文集合,其中,所述单播流中的单播报文携带同一组播标识,所述组播标识指示所述单播流中的单播报文来自于同一数据源服务器,且发送至属于同一组播组的目的设备;
所述第一组播路由器确定所述单播报文集合中的至少两个单播报文的目的地址不同时,向所述上游组播路由器发送剪枝消息,所述剪枝消息中携带有从所述单播报文集合的各个单播报文中确定出来的目的地址组,所述剪枝消息指示所述上游组播路由器停止向所述目的地址组对应的各个目的设备发送具有所述组播标识的单播报文,并将待发送的具有所述组播标识的单播报文发送至所述第一组播路由器;
所述第一组播路由器将接收到的具有所述组播标识的单播报文分别发送至所述目的地址组对应的各个目的设备。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一组播路由器在确定所述单播报文集合中的至少两个单播报文的目的地址不同时,所述第一组播路由器获取所述单播报文集合中的各个报文的目的地址,并生成第一组播路由表项,所述第一组播路由表项的源地址为所述第一组播路由器的地址,目的地址是所述目的地址组;
所述第一组播路由器将接收到的具有所述组播标识的单播报文分别发送至所述目的地址组对应的各个目的设备,包括:
所述第一组播路由器根据所述第一组播路由表项,将接收到的具有所述组播标识的单播报文进行报文修改,得到修改后的单播报文,所述修改后的单播报文的源地址为所述第一组播路由器的地址,所述修改后的单播报文的目的地址为所述第一组播路由表项中的所述目的地址组中的目的地址;
所述第一组播路由器将修改后的单播报文分别发送至所述目的地址组对应的各个目的设备。
3.根据权利要求2所述的方法,其特征在于,还包括:
所述第一组播路由器监听得到所述上游组播路由器发送的第一消息,其中,所述第一消息中携带有所述组播标识和第一目标地址,指示所述第一目标地址对应的目的设备停止接收具有所述组播标识的单播报文;
所述第一组播路由器查找所述组播标识对应的第一组播路由表项,确定所述第一目标地址属于所述目的地址组;
所述第一组播路由器将所述第一目标地址从所述第一组播路由表项中移除,并停止向所述第一目标地址对应的目的设备发送具有所述组播标识的单播报文。
4.根据权利要求3所述的方法,其特征在于,还包括:
所述第一组播路由器确定移除了所述第一目标地址的第一组播路由表项中的目的地址为空;
所述第一组播路由器通知所述上游组播路由器停止向自身发送具有所述组播标识的单播报文。
5.一种组播转发方法,其特征在于,该方法包括:
第二组播路由器接收来自下游组播路由器的剪枝消息;其中,所述剪枝消息中包括所述下游组播路由器从单播报文集合的各个单播报文中确定出来的目的地址组,其中,所述单播报文集合是所述下游组播路由器通过监听流经自身的多个单播报文得到的来自所述第二组播路由器且属于同一单播流的单播报文集合,其中,所述单播流中的单播报文携带组播标识,所述组播标识指示所述单播流中的单播报文来自于同一数据源服务器,且发送至属于同一组播组的目的设备;
所述第二组播路由器根据所述剪枝消息,停止向所述目的地址组对应的各个目的设备发送具有所述组播标识的单播报文,并将待发送的具有所述组播标识的单播报文发送至所述下游组播路由器。
6.根据权利要求5所述的方法,其特征在于,所述第二组播路由器接收来自下游组播路由器的剪枝消息之前,还包括:
所述第二组播路由器接收来自数据源服务器的注册请求,所述注册请求中携带用户数据报协议UDP会话的IP四元组信息;
所述第二组播路由器根据所述注册请求,为所述UDP会话分配组播组的组标识;
所述第二组播路由器向所述数据源服务器发送注册请求的应答消息,所述应答消息中携带所述组播组的组标识;
所述第二组播路由器接收来自所述数据源服务器发送的单播报文,所述单播报文的头部携带有所述组播标识,所述组播标识是所述数据源服务器根据自身的地址和所述组播组的组标识生成的。
7.根据权利要求5或6所述的方法,其特征在于,还包括:
所述第二组播路由器接收来自第一客户端的点播请求,所述点播请求用于请求订阅UDP会话;
所述第二组播路由器生成第二组播路由表项,所述第二组播路由表项的源地址为所述第二组播路由器的地址,所述第二组播路由表项的目的地址为所述第一客户端的地址;
所述第二组播路由器待发送的具有所述组播标识的单播报文发送至所述下游组播路由器,包括:
所述第二组播路由器根据所述第二组播路由表项,将接收到的具有所述组播标识的单播报文进行报文修改,得到修改后的单播报文,所述修改后的单播报文的源地址为所述第二组播路由器的地址,所述修改后的单播报文的目的地址为所述第一客户端的地址;
所述第二组播路由器向所述第一客户端发送具有所述组播标识的修改后的单播报文。
8.根据权利要求7所述的方法,其特征在于,还包括:
所述第二组播路由器接收所述第一客户端发送的停止点播请求,所述停止点播请求用于请求停止订阅所述UDP会话;
所述第二组播路由器查找所述组播标识对应的第二组播路由表项,确定所述第一客户端的地址包含于所述第二组播路由表项的目的地址中;
所述第二组播路由器将所述第一客户端的地址从所述第二组播路由表项中移除,并停止向所述第一客户端的地址对应的目的设备发送具有所述组播标识的单播报文。
9.根据权利要求7所述的方法,其特征在于,还包括:
所述第二组播路由器查找所述组播标识对应的第二组播路由表项,确定所述第一客户端的地址不包含于所述第二组播路由表项的目的地址中;
所述第二组播路由器根据所述第二组播路由表项生成第一消息,所述第一消息的源地址为所述第二组播路由器的地址,所述第一消息的目的地址为所述第一客户端的地址;所述第一消息中携带有所述组播标识,用于通知所述下游组播路由器第一目标地址对应的目的设备已停止接收具有所述组播标识的单播报文;
所述第二组播路由器将所述第一消息发送至所述第一客户端,以便于所述下游组播路由器监听到所述第一消息后停止向所述第一客户端发送具有所述组播标识的单播报文。
10.一种第一组播路由器,其特征在于,包括通信接口、处理器以及存储器;
所述处理器调用存储在所述存储器中的指令,执行以下处理:
通过所述通信接口监听流经自身的多个单播报文,确定来自同一个上游组播路由器且属于同一单播流的单播报文集合,其中,所述单播流中的单播报文携带同一组播标识,所述组播标识指示所述单播流中的单播报文来自于同一数据源服务器,且发送至属于同一组播组的目的设备;
确定所述单播报文集合中的至少两个单播报文的目的地址不同时,通过所述通信接口向所述上游组播路由器发送剪枝消息,所述剪枝消息中携带有从所述单播报文集合的各个单播报文中确定出来的目的地址组,所述剪枝消息指示所述上游组播路由器停止向所述目的地址组对应的各个目的设备发送具有所述组播标识的单播报文,并将待发送的具有所述组播标识的单播报文发送至所述第一组播路由器;
通过所述通信接口将接收到的具有所述组播标识的单播报文分别发送至所述目的地址组对应的各个目的设备。
11.根据权利要求10所述的组播路由器,其特征在于,所述处理器还用于:
获取所述单播报文集合中的各个报文的目的地址,并生成第一组播路由表项,所述第一组播路由表项的源地址为所述第一组播路由器的地址,目的地址是所述目的地址组;
根据所述第一组播路由表项,将接收到的具有所述组播标识的单播报文进行报文修改,得到修改后的单播报文,所述修改后的单播报文的源地址为所述第一组播路由器的地址,所述修改后的单播报文的目的地址为所述第一组播路由表项中的所述目的地址组中的目的地址;
通过所述通信接口将修改后的单播报文分别发送至所述目的地址组对应的各个目的设备。
12.根据权利要求11所述的组播路由器,其特征在于,所述处理器还用于:
通过所述通信接口监听得到所述上游组播路由器发送的第一消息,其中,所述第一消息中携带有所述组播标识和第一目标地址,指示所述第一目标地址对应的目的设备停止接收具有所述组播标识的单播报文;
查找所述组播标识对应的第一组播路由表项,确定所述第一目标地址属于所述目的地址组;
将所述第一目标地址从所述第一组播路由表项中移除,并停止向所述第一目标地址对应的目的设备发送具有所述组播标识的单播报文。
13.根据权利要求12所述的组播路由器,其特征在于,所述处理器还用于:
确定移除了所述第一目标地址的第一组播路由表项中的目的地址为空;
通过所述通信接口通知所述上游组播路由器停止向自身发送具有所述组播标识的单播报文。
14.一种第二组播路由器,其特征在于,包括通信接口、处理器以及存储器;
所述处理器调用存储在所述存储器中的指令,执行以下处理:
通过所述通信接口接收来自下游组播路由器的剪枝消息;其中,所述剪枝消息中包括所述下游组播路由器从单播报文集合的各个单播报文中确定出来的目的地址组,其中,所述单播报文集合是所述下游组播路由器通过监听流经自身的多个单播报文得到的来自所述第二组播路由器且属于同一单播流的单播报文集合,其中,所述单播流中的单播报文携带组播标识,所述组播标识指示所述单播流中的单播报文来自于同一数据源服务器,且发送至属于同一组播组的目的设备;
根据所述剪枝消息,停止向所述目的地址组对应的各个目的设备发送具有所述组播标识的单播报文;
通过所述通信接口将待发送的具有所述组播标识的单播报文发送至所述下游组播路由器。
15.根据权利要求14所述的组播路由器,其特征在于,所述处理器还用于:
通过所述通信接口接收来自数据源服务器的注册请求,所述注册请求中携带用户数据报协议UDP会话的IP四元组信息;
根据所述注册请求,为所述UDP会话分配组播组的组标识;
通过所述通信接口向所述数据源服务器发送注册请求的应答消息,所述应答消息中携带所述组播组的组标识;
通过所述通信接口接收来自所述数据源服务器发送的单播报文,所述单播报文的头部携带有所述组播标识,所述组播标识是所述数据源服务器根据自身的地址和所述组播组的组标识生成的。
16.根据权利要求14或15所述的组播路由器,其特征在于,所述处理器还用于:
通过所述通信接口接收来自第一客户端的点播请求,所述点播请求用于请求订阅UDP会话;
生成第二组播路由表项,所述第二组播路由表项的源地址为所述第二组播路由器的地址,所述第二组播路由表项的目的地址为所述第一客户端的地址;
根据所述第二组播路由表项,将接收到的具有所述组播标识的单播报文进行报文修改,得到修改后的单播报文,所述修改后的单播报文的源地址为所述第二组播路由器的地址,所述修改后的单播报文的目的地址为所述第一客户端的地址;
通过所述通信接口向所述第一客户端发送具有所述组播标识的修改后的单播报文。
17.根据权利要求16所述的组播路由器,其特征在于,所述处理器还用于:
通过所述通信接口接收所述第一客户端发送的停止点播请求,所述停止点播请求用于请求停止订阅所述UDP会话;
查找所述组播标识对应的第二组播路由表项,确定所述第一客户端的地址包含于所述第二组播路由表项的目的地址中;
将所述第一客户端的地址从所述第二组播路由表项中移除,并停止向所述第一客户端的地址对应的目的设备发送具有所述组播标识的单播报文。
18.根据权利要求16所述的组播路由器,其特征在于,所述处理器还用于:
查找所述组播标识对应的第二组播路由表项,确定所述第一客户端的地址不包含于所述第二组播路由表项的目的地址中;
根据所述第二组播路由表项生成第一消息,所述第一消息的源地址为所述第二组播路由器的地址,所述第一消息的目的地址为所述第一客户端的地址;所述第一消息中携带有所述组播标识,用于通知所述下游组播路由器第一目标地址对应的目的设备已停止接收具有所述组播标识的单播报文;
通过所述通信接口将所述第一消息发送至所述第一客户端,以便于所述下游组播路由器监听到所述第一消息后停止向所述第一客户端发送具有所述组播标识的单播报文。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如权利要求1~9任一项所述的方法。
CN201710892283.9A 2017-09-27 2017-09-27 一种组播转发方法及组播路由器 Active CN109561022B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201710892283.9A CN109561022B (zh) 2017-09-27 2017-09-27 一种组播转发方法及组播路由器
EP18861921.7A EP3668026B1 (en) 2017-09-27 2018-09-06 Multicast forwarding method and multicast router
PCT/CN2018/104423 WO2019062515A1 (zh) 2017-09-27 2018-09-06 一种组播转发方法及组播路由器
US16/830,864 US11190367B2 (en) 2017-09-27 2020-03-26 Multicast forwarding method and multicast router

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710892283.9A CN109561022B (zh) 2017-09-27 2017-09-27 一种组播转发方法及组播路由器

Publications (2)

Publication Number Publication Date
CN109561022A CN109561022A (zh) 2019-04-02
CN109561022B true CN109561022B (zh) 2020-09-08

Family

ID=65863973

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710892283.9A Active CN109561022B (zh) 2017-09-27 2017-09-27 一种组播转发方法及组播路由器

Country Status (4)

Country Link
US (1) US11190367B2 (zh)
EP (1) EP3668026B1 (zh)
CN (1) CN109561022B (zh)
WO (1) WO2019062515A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11632261B2 (en) * 2020-07-31 2023-04-18 Hewlett Packard Enterprise Development Lp Managing multicast group traffic
CN114143257B (zh) * 2020-09-03 2023-04-28 华为技术有限公司 一种生成表项的方法、发送报文的方法、设备及系统
CN113595912B (zh) * 2021-07-05 2022-11-11 北京邮电大学 5GLAN中基于IPv6扩展报头的一对多通信方法及装置
WO2023279361A1 (zh) * 2021-07-09 2023-01-12 哈尔滨海能达科技有限公司 专网下信息的发送方法、接收方法及相关装置
SE2151546A1 (en) * 2021-12-16 2023-06-17 Assa Abloy Ab Routing data in a communication network
US20230318969A1 (en) * 2022-03-31 2023-10-05 Lenovo (United States) Inc. Optimizing network load in multicast communications
CN114828153A (zh) * 2022-04-22 2022-07-29 重庆邮电大学 基于组播的软件定义无人机自组网路由信息高效传送方法

Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1595879A (zh) * 2003-09-08 2005-03-16 华为技术有限公司 一种大容量组播路由表下提高组播数据转发效率的方法
CN1747447A (zh) * 2005-10-21 2006-03-15 清华大学 区分服务网络域内支持不同服务质量的ip组播方法
CN1859255A (zh) * 2006-03-02 2006-11-08 华为技术有限公司 自动交换光网络组播网络接口业务的实现方法
CN1905530A (zh) * 2006-08-08 2007-01-31 杭州华为三康技术有限公司 组播点播方法及系统
CN1937610A (zh) * 2006-08-21 2007-03-28 杭州华为三康技术有限公司 具有pim功能的解码器,采用该解码器的实时监控系统及方法
JP2008060631A (ja) * 2006-08-29 2008-03-13 Alaxala Networks Corp 通信装置及びマルチキャストユーザ認証方法
JP4181513B2 (ja) * 2004-02-19 2008-11-19 日本電信電話株式会社 Vpnマルチキャストパケット転送方法及びそれを用いたネットワークシステム並びにそれを構成する装置及びプログラム
CN101394358A (zh) * 2008-10-30 2009-03-25 华为技术有限公司 提高组播转发可靠性的方法和装置
CN101764756A (zh) * 2010-01-14 2010-06-30 福建星网锐捷网络有限公司 组播数据转发路径的剪枝处理方法、装置和网络设备
CN102035729A (zh) * 2010-11-22 2011-04-27 杭州华三通信技术有限公司 一种组播数据转发方法及其装置
CN102833082A (zh) * 2012-09-24 2012-12-19 杭州华三通信技术有限公司 一种组播剪枝方法和路由设备
CN103209132A (zh) * 2012-01-16 2013-07-17 华为技术有限公司 在透明多链路互联(trill)网络中实现组播的方法、装置及系统
CN104954265A (zh) * 2014-03-25 2015-09-30 华为技术有限公司 发送组播报文的方法及交换机
US9344359B1 (en) * 2013-09-10 2016-05-17 Juniper Networks, Inc. Ingress protection for multipoint label switched paths
CN106878180A (zh) * 2016-12-23 2017-06-20 新华三技术有限公司 集群路由器路由控制方法、装置和集群路由器
WO2017141076A1 (en) * 2016-02-19 2017-08-24 Telefonaktiebolaget Lm Ericsson (Publ) Stateless multicast protocol for low-power and lossy networks

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100450086C (zh) * 2005-09-07 2009-01-07 华为技术有限公司 在虚拟专用局域网业务中实现组播数据流转发的方法
CN101035063A (zh) * 2006-03-07 2007-09-12 华为技术有限公司 组播流转发方法及其路由器和系统
US8295203B2 (en) * 2007-08-24 2012-10-23 At&T Intellectual Property I, L.P. Methods and systems to store state used to forward multicast traffic
US9300483B2 (en) * 2013-03-15 2016-03-29 International Business Machines Corporation Self-routing multicast in a software defined network fabric
CN103209134B (zh) * 2013-04-22 2017-02-15 杭州华三通信技术有限公司 一种组播转发的方法和设备
US9565027B2 (en) * 2013-08-23 2017-02-07 Futurewei Technologies, Inc. Multi-destination traffic control in multi-level networks
US9247397B2 (en) * 2014-01-15 2016-01-26 Abb Inc. Distribution of multicast traffic through a mesh network
KR20150094436A (ko) * 2014-02-11 2015-08-19 한국전자통신연구원 식별자/위치자 분리 환경에서의 멀티캐스트를 수행하는 방법 및 장치
CN105871565B (zh) * 2015-01-20 2019-11-29 华为技术有限公司 用于组播转发的方法及装置
US9729430B2 (en) * 2015-04-21 2017-08-08 Raytheon Bbn Technologies Corp. System, device, and method of dense-mode multicast tunneling using interlayer group membership control
US10673742B2 (en) * 2015-09-10 2020-06-02 Telefonaktiebolaget Lm Ericsson (Publ) Multicast state reduction via tunneling in a routed system

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1595879A (zh) * 2003-09-08 2005-03-16 华为技术有限公司 一种大容量组播路由表下提高组播数据转发效率的方法
JP4181513B2 (ja) * 2004-02-19 2008-11-19 日本電信電話株式会社 Vpnマルチキャストパケット転送方法及びそれを用いたネットワークシステム並びにそれを構成する装置及びプログラム
CN1747447A (zh) * 2005-10-21 2006-03-15 清华大学 区分服务网络域内支持不同服务质量的ip组播方法
CN1859255A (zh) * 2006-03-02 2006-11-08 华为技术有限公司 自动交换光网络组播网络接口业务的实现方法
CN1905530A (zh) * 2006-08-08 2007-01-31 杭州华为三康技术有限公司 组播点播方法及系统
CN1937610A (zh) * 2006-08-21 2007-03-28 杭州华为三康技术有限公司 具有pim功能的解码器,采用该解码器的实时监控系统及方法
JP2008060631A (ja) * 2006-08-29 2008-03-13 Alaxala Networks Corp 通信装置及びマルチキャストユーザ認証方法
CN101394358A (zh) * 2008-10-30 2009-03-25 华为技术有限公司 提高组播转发可靠性的方法和装置
CN101764756A (zh) * 2010-01-14 2010-06-30 福建星网锐捷网络有限公司 组播数据转发路径的剪枝处理方法、装置和网络设备
CN102035729A (zh) * 2010-11-22 2011-04-27 杭州华三通信技术有限公司 一种组播数据转发方法及其装置
CN103209132A (zh) * 2012-01-16 2013-07-17 华为技术有限公司 在透明多链路互联(trill)网络中实现组播的方法、装置及系统
CN102833082A (zh) * 2012-09-24 2012-12-19 杭州华三通信技术有限公司 一种组播剪枝方法和路由设备
US9344359B1 (en) * 2013-09-10 2016-05-17 Juniper Networks, Inc. Ingress protection for multipoint label switched paths
CN104954265A (zh) * 2014-03-25 2015-09-30 华为技术有限公司 发送组播报文的方法及交换机
WO2017141076A1 (en) * 2016-02-19 2017-08-24 Telefonaktiebolaget Lm Ericsson (Publ) Stateless multicast protocol for low-power and lossy networks
CN106878180A (zh) * 2016-12-23 2017-06-20 新华三技术有限公司 集群路由器路由控制方法、装置和集群路由器

Also Published As

Publication number Publication date
WO2019062515A1 (zh) 2019-04-04
CN109561022A (zh) 2019-04-02
EP3668026A4 (en) 2020-10-21
EP3668026A1 (en) 2020-06-17
EP3668026B1 (en) 2021-08-25
US20200228356A1 (en) 2020-07-16
US11190367B2 (en) 2021-11-30

Similar Documents

Publication Publication Date Title
CN109561022B (zh) 一种组播转发方法及组播路由器
US10263889B2 (en) Data forwarding method, device, and system in software-defined networking
US11665595B2 (en) Forwarding entry generation method, controller, and network device
EP2109260A1 (en) Multicast method and multicast routing method
US9960998B2 (en) Forwarding packet in stacking system
CN109981308B (zh) 报文传输方法及装置
JP5455139B2 (ja) マルチキャストパケットを処理するための方法及び装置
CN112087390B (zh) 一种网络路由方法及装置
US11140091B2 (en) Openflow protocol-based resource control method and system, and apparatus
WO2018068588A1 (zh) 提供组播业务的方法和软件定义网络控制器
EP2892196B1 (en) Method, network node and system for implementing point-to-multipoint multicast
US11245618B2 (en) Multicast traceroute facility with batch query processing for multiple flows and reservation of resources for requested link metrics
US11695686B2 (en) Source-initiated distribution of spine node identifiers of preferred spine nodes for use in multicast path selection
WO2017124712A1 (zh) 报文生成方法、报文转发方法及装置
CN106230730B (zh) 一种组播传输方法和装置
CN110581828A (zh) 专网集群终端的对时方法和装置
US10389647B2 (en) Controller coordination system
EP3313029B1 (en) Label processing method and apparatus, and routing information delivery method and apparatus
CN113141291B (zh) 一种数据传输方法及相关的设备和系统
CN113595912B (zh) 5GLAN中基于IPv6扩展报头的一对多通信方法及装置
JP4974929B2 (ja) 通信装置
CN107547410B (zh) 一种多级pe自动级联的方法及装置
JP2004297180A (ja) マルチキャスト配送システム及び方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant