CN106209688B - 云端数据组播方法、装置和系统 - Google Patents

云端数据组播方法、装置和系统 Download PDF

Info

Publication number
CN106209688B
CN106209688B CN201610552915.2A CN201610552915A CN106209688B CN 106209688 B CN106209688 B CN 106209688B CN 201610552915 A CN201610552915 A CN 201610552915A CN 106209688 B CN106209688 B CN 106209688B
Authority
CN
China
Prior art keywords
multicast
message
tree
routing
addresses
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
CN201610552915.2A
Other languages
English (en)
Other versions
CN106209688A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201610552915.2A priority Critical patent/CN106209688B/zh
Publication of CN106209688A publication Critical patent/CN106209688A/zh
Priority to EP17826962.7A priority patent/EP3487131B1/en
Priority to PCT/CN2017/092432 priority patent/WO2018010626A1/zh
Priority to US16/240,252 priority patent/US10958723B2/en
Application granted granted Critical
Publication of CN106209688B publication Critical patent/CN106209688B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • H04L12/185Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with management of multicast group membership
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • 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/48Routing tree calculation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/80Actions related to the user profile or the type of traffic
    • H04L47/806Broadcast or multicast traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/201Multicast operation; Broadcast operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5069Address allocation for group communication, multicast communication or broadcast communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • 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/1863Arrangements for providing special services to substations for broadcast or conference, e.g. multicast comprising mechanisms for improved reliability, e.g. status reports
    • H04L12/1877Measures taken prior to transmission

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及一种云端数据组播方法、装置和系统,所述方法包括:获取云端的组播报文,所述组播报文中携带了租户标识、目的地址和源地址;根据所述租户标识和目的地址查找对应的组播组,所述组播组包括多个组播成员;计算所述组播成员对应的路由,根据多个组播成员对应的路由生成路由树;获取所述组播成员对应的成员地址,根据所述源地址和成员地址进行地址过滤,得到需要所述组播报文的成员地址清单;将所述组播报文进行封装,根据所述成员地址清单和所述路由树将封装后的组播报文投递给需要所述组播报文的组播成员。通过本方法能够在云端实现安全有效的数据组播。

Description

云端数据组播方法、装置和系统
技术领域
本发明涉及云计算领域,特别是涉及一种云端数据组播方法、装置和系统。
背景技术
组播技术是IP网络数据传输的方式之一。组播技术有效解决了单点发送多点接收的问题,实现了IP网络中单点到多点的高效数据传输。在云计算中,通过将多个租户进行隔离,可以使得多个租户共用一个数据中心。但是传统的组播技术中没有租户隔离的概念,网络中的任意设备都可以加入到任意的组播组中来接收数据,数据的安全性得不到有效保障。如何在云端实现安全有效的组播成为目前需要解决的一个技术问题。
发明内容
基于此,有必要针对上述技术问题,提供一种在云端能够安全有效的进行组播的云端数据组播方法、装置和系统。
一种云端数据组播方法,所述方法包括:
获取云端的组播报文,所述组播报文中携带了租户标识、目的地址和源地址;
根据所述租户标识和目的地址查找对应的组播组,所述组播组包括多个组播成员;
计算所述组播成员对应的路由,根据多个组播成员对应的路由生成路由树;
获取所述组播成员对应的成员地址,根据所述源地址和成员地址进行地址过滤,得到需要所述组播报文的成员地址清单;
将所述组播报文进行封装,根据所述成员地址清单和所述路由树将封装后的组播报文投递给需要所述组播报文的组播成员。
一种云端数据组播装置,所述装置包括:
获取模块,用于获取云端的组播报文,所述组播报文中携带了租户标识、目的地址和源地址;
查找模块,用于根据所述租户标识和目的地址查找对应的组播组,所述组播组包括多个组播成员;
计算模块,用于计算所述组播成员对应的路由,根据多个组播成员对应的路由生成路由树;
过滤模块,还用于获取所述组播成员对应的成员地址,根据所述源地址和成员地址进行地址过滤,得到需要所述组播报文的成员地址清单;
发送模块,用于将所述组播报文进行封装,根据所述成员地址清单和所述路由树将封装后的组播报文投递给需要所述组播报文的组播成员。
一种云端数据组播系统,所述系统包括:
组播网关集群,用于获取云端的组播报文,所述组播报文中携带了租户标识、目的地址和源地址,根据所述租户标识和目的地址查找对应的组播组,所述组播组包括多个组播成员;
中心控制器,用于计算所述组播成员对应的路由,根据多个组播成员对应的路由生成路由树;
所述组播网关集群还用于获取数据平面使用的路由树的拓扑结构,根据所述路由树拓扑结构将所述多个组播成员对应的路由树写入数据平面使用的路由树数据结构中;获取所述组播成员对应的成员地址,根据所述源地址和成员地址进行地址过滤,得到需要所述组播报文的成员地址清单;将所述组播报文进行封装,根据所述成员地址清单和所述路由树将封装后的组播报文发送至于所述成员地址对应的宿主机;
宿主机,用于接收所述封装后的组播报文,并将所述封装后的组播报文传递给需要所述组播报文的组播成员。
上述云端数据组播方法、装置和系统,由于云端的组播报文中携带了租户标识、目的地址和源地址,由此可以根据租户标识和目的地址精确查找到对应的组播组。从而将不同租户的IP地址空间进行了有效隔离。通过获取组播成员对应的成员地址,根据源地址和成员地址进行地址过滤,由此得到需要该组播报文的成员地址清单。通过对组播组内多个组播成员分别计算对应的路由,从而根据多个路由来生成路由树。将组播报文进行封装,由此使得根据成员地址清单和路由树转发的封装后的组播报文能够被准确投递给需要该组播报文的组播成员,确保了组播数据投递的准确性。从而实现了在云端进行安全有效的数据组播。
附图说明
图1为一个实施例中云端数据组播方法的应用环境图;
图2为图1中云端的内部结构示意图;
图3为一个实施例中云端数据组播方法的流程图;
图4为一个实施例中控制平面的架构图;
图5为一个实施例中数据平面的架构图;
图6为一个实施例中组播组路由树的数据结构示意图;
图7为一个实施例中主机路由树的数据结构示意图;
图8为一个实施例中云端数据组播系统的结构示意图;
图9为另一个实施例中云端数据组播系统的结构示意图;
图10为还一个实施例中云端数据组播系统的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
可以理解,本发明所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本发明的范围的情况下,可以将第一客户端称为第二客户端,且类似地,可将第二客户端称为第一客户端。第一客户端和第二客户端两者都是客户端,但其不是同一客户端。
本发明实施例中提供的云端数据组播方法可以应用于如图1所示的应用环境中。其中,终端102通过网络连接云端104,云端104通过网络与宿主机106相连。租户通过终端102通过云端104搭建组播应用,并通过组播应用将源数据上传至云端104。云端104获取源数据进行以组播报文的形式进行组播。组播报文中携带了租户标识、目的地址和源地址等。云端104根据租户标识和目的地址查找对应的组播组,计算组播组中多个组播成员对应的路由树。云端104获取多个组播成员对应的成员地址,根据源地址和成员地址进行地址过滤,得到需要组播报文的成员地址清单将组播报文进行封装,根据成员地址清单和路由树将封装后的组播报文发送至于成员地址对应的宿主机106。宿主机106接收封装后的组播报文,并将封装后的组播报文传递给需要组播报文的组播成员。由此实现了在云端进行安全有效的数据组播。
图2为一个实施例中云端的内部结构示意图。该云端包括通过系统总线连接的处理器、非易失性存储介质、内存储器和网络接口。其中,该云端的非易失性存储介质存储有操作系统和云端数据组播装置,该云端数据组播系统用于实现适用于云端的一种云端数据组播方法。该云端的处理器用于提供计算和控制能力,支撑整个云端的运行。该云端的内存储器为非易失性存储介质中的云端数据组播系统的运行提供环境,该内存储器中可储存有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行一种云端组播数据方法。该服务器的网络接口用于据以与外部的终端通过网络连接通信,比如接收终端发送的源数据以及组播成员投递组播报文等。云端可以用多个服务器组成的服务器集群来实现。本领域技术人员可以理解,图2中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的服务器的限定,具体的服务器可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,如图3所示,提供了一种云端数据组播方法,以该方法应用于云端为例进行说明,具体包括:
步骤302,获取云端的组播报文,组播报文中携带了租户标识、目的地址和源地址。
云端包括共有云和私有云。公有云通常指第三方提供商为用户提供的能够使用的云。私有云山指为某一租户单独使用构建的云。租户利用终端中运行的组播应用将源数据上传至云端的数据中心。云端将源数据以组播报文的形式进行组播。组播报文可以采用Overlay(覆盖网,)封装方式。Overlay网络是物理网络向云和虚拟化的深度延伸,使得云的资源化能力可以脱离物理网络的多种限制。组播报文中携带了租户标识、目的地址和源地址等。云端根据租户标识可以确定组播报文所属的租户,从而可以确定对应的VPC(VirtualPrivate Cloud,一种网络逻辑隔离分区服务)。云端可以采用Overlay处理逻辑进行组播,将不同租户的IP(Internet Protocol,网络之间互连协议)地址空间进行了有效隔离,能够有效提高组播数据的安全性。
步骤304,根据租户标识和目的地址查找对应的组播组,组播组包括多个组播成员。
云端根据租户标识和目的地址可以查找对应的组播组。组播组包括多个组播成员。组播成员可以是云端虚拟化平台上的虚拟机。虚拟机依托于宿主机来运行。宿主机上运行的虚拟机可以是分布式的,不同的虚拟机可以加入不同的组播组。虚拟机通过宿主机来接收组播报文。此时的虚拟机(即组播成员)也可以称为数据接收方。组播应用可以有多种,包括多媒体应用、数据仓库和金融应用等。以金融应用中股票数据推送为例,云端接收股票中心的股票数据后,通过组播的方式,将股票数据投递给组播成员。
组播成员也可以作为数据发送方。当组播成员作为数据发送方时,组播成员利用组播应用将需要发送的源数据进行Overlay封装并上传至云端的数据中心。云端按照上述方式将源数据以组播的方式投递给组播组内的其他组播成员。进一步的,数据发送方也可以是非组播成员。非组播成员利用组播应用将需要发送的源数据进行Overlay封装并上传至云端的数据中心。
步骤306,计算组播成员对应的路由,根据多个组播成员对应的路由生成路由树。
云端的中心控制器根据组播成员反馈的报告报文来计算对应的路由,同一个宿主机上的多个组播成员对应的路由可以生成主机路由树。不同的宿主机可以生成不同的主机路由树。多个宿主机上运行的虚拟机可以加入到同一个组播组中,因此,加入到同一个组播组中的多个宿主机对应的多个主机路由树可以形成组播组路由树。中心控制器计算的路由树包括主机路由树和组播组路由树。
由于宿主机上运行的虚拟机可以随时加入组播组成为组播成员,组播成员也可以随时退出组播组,因此,中心控制器需要实时获取组播成员的变更信息,从而根据组播成员的变化情况实时更新计算组播成员对应的主机路由树,继而更新组播组路由树。
步骤308,获取组播成员对应的成员地址,根据源地址和成员地址进行地址过滤,得到需要组播报文的成员地址清单。
组播成员在加入组播组时,会发送对应的报告报文。报告报文的包头中包括宿主机IP地址,包体中包括指定过滤的源地址。由于组播成员是运行在宿主机的虚拟机,因此宿主机IP地址可以视为组播成员对应的成员地址。根据包头中携带的指定过滤的源地址,可以确定组播成员对应的源地址过滤方式和源地址。其中,源地址过滤方式包括INCLUDE、EXCLUDE和GENERAL。其中,INCLUDE表示只接收从指定组播源发往该组播组的组播报文。EXCLUDE表示只接收从指定组播源之外发送该组播组的组播报文。GENERAL表示常规查询,用于查询组播组内的加入的组播成员和/或离开的组播成员。INCLUDE可以称为第一过滤方式,EXCLUDE可以称为第二过滤方式,GENERAL可以称为第三过滤方式。云端的组播网关集群根据源地址、成员地址和源地址过滤方式对组播成员进行地址过滤,得到需要组播报文的成员地址清单。
步骤310,将组播报文进行封装,根据成员地址清单和路由树将封装后的组播报文投递给需要组播报文的组播成员。
组播网关集群对组播报文支持二层组播转发,并且将组播报文封装为Overlay格式。其中,Overlay格式包括GRE(Generic Routing Encapsulation,通用路由封装协议)封装格式、VXLAN(Virtual eXtensible Local Area Network,一种将二层报文用三层协议进行封装的技术)封装格式和NVGRE(通用路由封装)封装格式等。组播网关集群根据成员地址清单获取组播组内宿主机数量,根据宿主机数量确定组播报文需要复制的份数。组播网关集群根据成员地址清单和路由树将封装后的组播报文依照复制的份数投递至需要组播报文的组播成员对应的宿主机。宿主机接收到封装后的组播报文,对封装后的组播报文进行解析,得到解析后的组播报文。宿主机通过Bridge(网桥)将解析后的组播报文传递给该宿主机上运行的组播组内的虚拟机。
传统的IP组播技术中要求所有网络设备都支持组播协议,由此导致网络构建的成本提高。本实施例中,对网络设备无任何要求,不需要对网络设备做升级改造,节省了网络构建的成本。
本实施例中,由于云端的组播报文中携带了租户标识、目的地址和源地址,由此可以根据租户标识和目的地址精确查找到对应的组播组。从而将不同租户的IP地址空间进行了有效隔离。通过获取组播成员对应的成员地址,根据源地址和成员地址进行地址过滤,由此得到需要该组播报文的成员地址清单。通过对组播组内多个组播成员分别计算对应的路由,从而根据多个路由来生成路由树。将组播报文进行封装,由此使得根据成员地址清单和路由树转发的封装后的组播报文能够被准确投递给需要该组播报文的组播成员,确保了组播数据投递的准确性。从而实现了在云端进行安全有效的数据组播。
在一个实施例中,计算组播成员对应的路由,根据多个组播成员对应的路由生成路由树的步骤包括:获取多个组播成员返回的报告报文;根据报告报文计算组播成员对应的路由;根据多个组播成员对应的路由生成路由树;获取数据平面使用的路由树的拓扑结构,根据路由树拓扑结构将多个组播成员对应的路由树写入数据平面使用的路由树数据结构中。
IP组播技术通过控制平面来控制和管理所有网络协议的运行,通过数据平面来处理和转发不同接口上的数据。在传统的IP组播技术中,由于控制平面和数据平面没有分离,运行在相同的设备上,导致单点设备的复杂性提高,可靠性降低,以及运维和排障的难度加大。
本实施例中,云端将控制平面和数据平面完全分离,两者运行在不同的设备上。其中,控制平面运行在中心控制器上,数据平面运行在组播网关集群上。控制平面的架构图如图4所示。宿主机上运行了虚拟机和组播代理等。中心控制器与组播代理通过网络建立通讯。组播网关集群中运行了组播网关代理和内核。组播网关集群负责数据平面的数据转发。具体的,组播网关集群可以通过通用服务器linux内核中定制Overlay处理逻辑来实现数据平面的数据转发。中心控制器通过网络与组播网关代理建立通讯。其中,组播代理遵循IGMP(Internet Group Management Protocol,Internet组管理协议)协议,周期性的向宿主机上所有虚拟机发送常规查询,加入了组播的虚拟机会回复报告报文,组播代理获取报告报文。其中,IMGP协议的应用范围不超出宿主机,组播代理获取报告报文在查询宿主机的路由之前进行。
分布式的组播代理将本宿主机中组播成员对应的报告报文发送至中心控制器,中心控制器根据报告报文可以计算组播成员对应的路由,继而根据多个组播成员对应的路由生成主机路由树和组播组路由树。组播网关集群上运行的组播网关代理读取主机路由树和组播组路由树,采用数据平面使用的路由树的拓扑结构,将读取到的主机路由树和组播组路由树写入数据平面使用的路由树数据结构中。由于宿主机上运行的虚拟机可以随时加入组播组成为组播成员,组播成员也可以随时退出组播组,因此,组播代理将实时获取到组播成员的变更信息发送至中心控制器。中心控制器根据组播成员的变更信息对主机路由树和组播组路由树进行更新计算。组播网关集群上运行的组播网关代理读取更新后的主机路由树和更新后的组播组路由树,采用数据平面使用的路由树的拓扑结构,将读取到的更新后的主机路由树和更新后的组播组路由树写入数据平面使用的路由树数据结构中。从而完成一次路由更新。由于主机路由树和组播组路由树是根据组播成员的变化情况实时更新的,因此,能够确保组播网关集群组播报文进行准确转发。
进一步的,组播代理与中心控制器之间还可以通过中间件来建立通讯。中心控制器与组播网关代理之间也可以通过中间件建立通讯。组播网关集群也可以使用专用的网络开发套件来实现数据平面的数据转发。
以组播代理与中心控制器之间的中间件为消息队列,中心控制器与组播网关代理之间的中间件为Zookeeper(一个分布式的,开放源码的分布式应用程序协调服务)为例,对路由更新的过程进行补充说明。分布式组播代理获取多个虚拟机回复的报告报文,根据报告报文可以得知本宿主机上多个组播成员的变化情况。分布式组播代理将本宿主机上的组播成员的变更信息发送至消息队列中间件。独立部署的中心控制器从消息队列中间件中读取组播成员的变更信息,根据变更信息计算更新后的主机路由树和更新后的组播组路由树,并将更新后的更新后的主机路由树和更新后的组播组路由树写入Zookeeper中间件。组播网关代理从Zookeeper读取更新后的主机路由树和更新后的组播组路由树,采用数据平面使用的路由树的拓扑结构,将读取到的更新后的主机路由树和更新后的组播组路由树写入数据平面使用的路由树数据结构中。从而完成一次路由更新。
数据平面的架构如图5所示。其中,数据接收设备502用于接收租户通过组播应用上传的组播报文。组播网关集群504用于对数据面的组播报文进行复制并转发至需要该组播报文的组播成员对应的宿主机506。其中,组播网关集群504可以采用多个通用服务器来实现组播报文的转发。
一个数据中心使用一组组播网关(Multicast Gateway,简称MCGW,承担组播数据报文的复制和转发的设备)集群。组播网关集群中包括多台转发设备。转发设备可以采用通用服务器。每一台转发设备在逻辑上述完全对等的,每个组播报文在任意一台转发设备上都能得到相同的处理结果。转发设备在进行转发时采用树状的路由数据结构。具体的,转发设备可以采用组播组数对组播数据进行转发。
本实施例中,控制平面和数据平面运行在不同的设备上,被完全分离。由此降低了单点设备的复杂性,提高了其可靠性,同时降低了运维和排障的难度。
在一个实施例中,路由树包括主机路由树和组播组路由树,在计算组播成员对应的路由,根据多个组播成员对应的路由生成路由树的步骤之后,还包括:遍历主机路由树的节点,获取主机路由树的增量变化消息;根据主机路由树的增量变化消息对组播组路由树进行更新计算。
本实施例中,中心控制器通过一个或多个进程对组播成员的路由进行计算。同一个租户标识对应的路由变化由同一个进程计算处理。一个进程可以处理多个租户标识对应的路由。多个组播成员对应的路由可以采用树状数据结构的拓扑图来表示,同一个宿主机上的多个组播成员对应的路由可以组成主机路由树。加入到同一个组播组中的多个宿主机对应的多个主机路由树可以形成组播组路由树。组播组路由树的数据结构示意图如图6所示,组播组路由树的根节点对应VPC,根据组播报文可以定位查找到对应的根节点。叶子节点对应组播报文需要被发送到的宿主机。由于组播报文的传输需要通过物理网络来实现,因此,叶子节点可以只对应宿主机,无需对应宿主机上运行的虚拟机。每个组播组都具有对应的组播地址。组播组路由树中每个组播地址下设有三种源地址过滤方式,包括INCLUDE、EXCLUDE和GENERAL。根据源地址和成员地址按照源地址过滤方式对多个组播成员的地址进行过滤,得到需要组播报文的成员地址清单。在图6中,VPCID表示VPC标识(即租户标识)、GROUP表示组播地址、IP表示源地址、HOSTIP表示组播成员。
根据组播代理所上报的组播成员对应的报告报文和查询报文,中心控制器可以将宿主机中加入同一组播组的多个组播成员之间的关系采用主机路由树来表示。主机路由树的数据结构示意图如图7所示,主机路由树的根节点对应VPC,一级子节点为宿主机地址(即成员地址),二级子节点为组播地址。组播地址下面设有三种源地址过滤方式,包括INCLUDE、EXCLUDE和GENERAL。子节点为源地址。通过将源地址和成员地按照对应的过滤方式进行地址过滤,从而确保组播成员得到所需要的组播报文。
当主机路由树中的根节点或子节点发生变化时,中心控制器遍历主机路由树的节点,获取主机路由树的增量变化消息,根据这些增量变化消息对组播组路由树进行更新计算。
具体的,中心控制器通过一个或多个进程遍历主机路由树的节点。获取主机路由树对应的内存映像,主机路由树对应的内存映像中存储了主机路由树的数据结构,根据已存储的主机路由树的数据结构来判断是否有新增或删除的成员地址。若有,则更新内存映像中的成员地址。
中心控制器判断是否有成员地址子节点新增或删除。具体的,中心控制器通过一个或多个进程根据组播组对应的内存映射来判断是否有新增或者删除的组播组。当存在新增的组播组是,判断是否存在GENERAL子节点,若否,则新增V2记录组。其中,V2是指IGMP协议V2版本。执行遍历EXCLUDE清单以及执行遍历INCLUDE清单,并且将组播组的组播成员计数加一。从而对新增的组播组完成一次遍历。
在新增V2记录组时,如果组播组路由树对应的内存映像中组播地址节点不存在,则调用新建组播组。如果组播组中的组播成员已达上限,则返回。在中心控制器上或者在Zookeeper中间件上创建成员地址子节点,该成员地址子节点可以描述为MCGroup/$vpcid/$group/INCLUDE/$ip/$hostip节点。其中,MCGroup表示组播组、vpcid表示租户标识、group表示组播地址、ip表示源地址、hostip表示成员地址。将所有的主机路由树对应的内存映像中INCLUDE清单中的IP,删除成员地址子节点,其中,被删除的成员地址子节点可以描述为:MCGroup/$vpcid/$group/INCLUDE/$ip/$hostip节点。并且将所有的主机路由树对应的内存映像中EXCLUDE清单中的源地址,删除成员地址子节点,其中,被删除的成员地址子节点可以描述为:MCGroup/$vpcid/$group/EXCLUDE/$ip/$hostip节点。
当存在删除的组播组时,删除GENERAL子节点下的成员地址节点。被删除的成员地址子节点可以描述为:MCGroup/$vpcid/$group/GENERAL/$hostip节点。对所有主机路由树对应的内存映像中INCLUDE清单中的源地址,删除INCLUDE节点下的成员子地址节点,其中,被删除的成员地址子节点可以被描述为:MCGroup/$vpcid/$group/INCLUDE/$ip/$hostip节点。对所有主机路由树对应的内存映像中EXCLUDE清单中的源地址,删除EXCLUDE节点下的成员地址子节点,其中,被删除的成员地址子节点可以被描述为:MCGroup/$vpcid/$group/EXCLUDE/$ip/$hostip节点。删除主机路由树对应的内存映像中的数据以及组播组路由树对应的内存映像中的数据,并且将组播组的计数减一。
本实施例中,当主机路由树中的根节点或子节点发生变化时,通过遍历主机路由树的节点,获取主机路由树的增量变化消息,根据这些增量变化消息对组播组路由树进行更新计算。从而能够得到准确的路由树,进而确保了组播数据投递的准确性。
在一个实施例中,方法还包括:方法还包括:接收终端通过组播应用发送的组播组操作指令,操作指令中携带了租户标识、过滤方式、过滤地址集合和组播地址;根据租户标识、过滤方式、过滤地址集合以及组播地址新建组播组或者删除组播组。
本实施例中,租户可以通过终端中运行的组播应用向云端发送组播操作指令,组播操作指令包括新建组播组合删除组播组等。当云端接收到的组播组操作指令是新建组播组指令时,新建组播组指令中携带了租户标识、过滤方式、过滤地址集合和组播地址。其中过滤地址集合中包括与过滤类型对应的源地址。根据新建组播组指令中携带的租户标识和组播地址创建组播地址节点,并配置相应的过滤类型。过滤类型包括INCLUDE、EXCLUDE和GENERAL。创建与过滤类型对应的源地址子节点。根据过滤类型在过滤地址集合中获取对应的源地址,并将与过滤类型对应的源地址配置给源地址子节点。并将租户标识对应的组播地址计数加一。由此完成一个组播组的新建工作。
当云端接收到的组播组操作指令是删除组播组指令时,删除组播组指令中携带了租户标识、过滤方式、过滤地址集合和组播地址。根据过滤方式,遍历过滤地址,根据租户标识和组播地址删除与过滤方式对应的源地址子节点。将主机路由树对应的内存映像中的中组播地址节点下的子节点以及组播地址节点删除。同时将租户标识对应的组播地址计数减一。由此完成一个组播组的删除工作。
本实施例中,云端通过接收终端发送的组播组操作指令来触发对组播组的新建或删除等操作。由此方便租户根据自身需要来适当调整相应的组播组,为租户提供了方便。
在一个实施例中,根据源地址和成员地址进行地址过滤,得到需要组播报文的成员地址清单步骤包括:获取组播成员对应的报告报文,报告报文中携带了成员地址、源地址和过滤方式;根据源地址和成员地址按照过滤方式对多个组播成员的地址进行过滤,得到需要组播报文的成员地址清单。
本实施例中,组播成员在加入组播组时,会发送对应的报告报文。报告报文的包头中包括宿主机IP地址,包体中包括指定过滤的源地址和过滤方式。组播网关集群在根据租户标识和目的地址查找到对应的组播组之后,创建临时清单。其中临时清单包括第一临时清单和第二临时清单。组播网关集群根据源地址和成员地址按照过滤方式对多个组播成员的地址进行过滤,得到需要组播报文的成员地址清单。
在一个实施例中,根据源地址和成员地址按照过滤方式对多个组播成员的地址进行过滤,得到需要组播报文的成员地址清单步骤包括:获取与第一过滤方式对应的第一过滤清单,遍历第一过滤清单,判断第一过滤清单中的成员地址是否与源地址相同,若是,则将下一级组播成员复制到第一临时清单;获取与第二过滤方式对应的第二过滤清单,遍历第二过滤清单,判断第二过滤清单中的成员地址是否与源地址相同,若是,则将下一级组播成员对应的宿主机从第二临时清单中删除;将第一临时清单与第二临时清单合并,得到需要组播报文的成员地址清单。
组播网关集群根据过滤方式为INCLUDE的多个组播成员对应的成员地址生成INCLUDE清单,根据过滤方式为EXCLUDE的多个组播成员对应的成员地址生成EXCLUDE清单,过滤方式为GENERAL的多个组播成员对应的成员地址生成GENERAL哈希清单。INCLUDE可以称为第一过滤方式,EXCLUDE可以称为第二过滤方式,GENERAL可以称为第三过滤方式。相应的INCLUDE清单可以称为第一过滤清单,EXCLUDE清单可以称为第二过滤清单,GENERAL哈希清单可以称为第三过滤清单。
组播网关集群遍历INCLUDE清单时,判断INCLUDE清单中成员地址是否与源地址相同,若是,则将下一级宿主机成员复制到第一临时清单中。将GENERAL哈希列表中的宿主机成员复制到第二临时清单中。组播网关集群遍历EXCLUDE清单,判断EXCLUDE成员地址是否与源地址相同,若是,则将下一级宿主机成员从第二临时清单中删除。在EXCLUDE清单遍历完之后,将第二临时清单连接到第一临时清单的尾部,生成需要组播报文的成员地址清单。
由于组播成员可以随时加入或退出,因此,在遍历INCLUDE清单时和/或遍历EXCLUDE清单时需要获取主机路由树中子节点的变更信息,根据主机路由树中子节点的变更信息进行更新。
具体的,在遍历INCLUDE清单时,获取宿主机对应的内存映像,若主机路由树对应的内存映像中组播组的general标记为真,则表示子节点没有变化,可以不予处理。
获取组播组对应的内存映像,若组播组对应的内存映像中组播地址节点不存在,则需要新建组播组。其中,组播地址节点可以描述为:MCGroup/$vpcid/$group。调用新建组播组函数,将所有INCLUDE子节点输入至地址过滤清单中。其中INCLUDE子节点可以描述为:MCHost/$vpcid/$hostip/$group/INCLUDE子节点。
判断是否有新增或删除的源地址,如果有,则将主机路由树对应的内存映像进行更新。当存在新增的源地址时,如果组播组路由树对应的内存映像这一层级数据中不存在该新增的源地址,则需要调用新建组播组函数,并在新建的组播组中输入该新增的源地址。如果组播组路由树对应的内存映像中EXCLUDE清单中存在该新增的源地址,并且EXCLUDE清单中存在相同的成员地址,则该成员地址需要按照IGMP协议V2版本进行处理。根据新增的源地址在组播组路由树对应的内存映像进行更新,并且创建相应的成员地址子节点。该成员地址子节点可以被描述为:MCGroup/$vpcid/$group/EXCLUDE/$ip/$hostip节点。
当存在删除的源地址时,更新组播组路由树对应的内存映像中的数据,并且删除EXCLUDE子节点下相应的成员地址子节点,该成员地址子节点可以描述为:MCGroup/$vpcid/$group/EXCLUDE/$ip/$hostip节点。若该成员地址节点为空,则调用删除组播组函数,输入该删除的源地址,以此将该源地址删除。
组播网关集群遍历EXCLUDE清单时,若主机路由树对应的内存映像中组播组的general标记为真,则不予处理。若组播组对应的内存映像中组播地址节点不存在,则需要新建组播组。其中,组播地址节点可以描述为:MCGroup/$vpcid/$group。调用新建组播组函数,将所有EXCLUDE子节点输入至地址过滤清单中。其中EXCLUDE子节点可以描述为:MCHost/$vpcid/$hostip/$group/EXCLUDE子节点。
判断是否有新增或删除的源地址,如果有,则将主机路由树对应的内存映像进行更新。当存在新增的源地址时,则需要调用新建组播组函数,并在新建的组播组中输入该新增的源地址。根据新增的源地址在组播组路由树对应的内存映像进行更新,并且创建相应的成员地址子节点。该成员地址子节点可以被描述为:MCGroup/$vpcid/$group/GENERAL/$hostip节点。如果在组播组路由树对应的内存映像中EXCLUDE子节点为空,则创建EXCLUDE子节点下的成员地址子节点,该成员地址子节点可以描述为:MCGroup/$vpcid/$group/EXCLUDE/$ip/$hostip节点。否则,删除EXCLUDE子节点下的其他源地址对应的成员地址子节点,被删除的成员地址子节点可以描述为:MCGroup/$vpcid/$group/EXCLUDE/其他源地址/$hostip节点。
当存在删除的源地址时,更新组播组路由树对应的内存映像中的数据,并且删除EXCLUDE子节点下相应的成员地址子节点,该成员地址子节点可以描述为:MCGroup/$vpcid/$group/EXCLUDE/$ip/$hostip节点。若该成员地址子节点为空,则调用删除组播组函数,输入该删除的源地址,以此将该源地址删除。
本实施例中,在对INCLUDE清单进行遍历以及在对EXCLUDE清单进行遍历时,通过对主机路由树中子节点的增减状况进行及时更新,确保了地址过滤的准确性,进而提高组播报文投递的准确性。
在一个实施例中,中心控制器对组播组的规模进行控制。具体的,中心控制器获取Group树中叶子节点的数量,判断叶子节点的数量是否小于或等于租户标识对应的叶子节点数量。若否,则限制该组不组中加入组播成员。在公有云中,如果某些租户对应的叶子节点数量过多,则会占用过多的资源,导致资源利用不均衡。
由于组播成员频繁的加入或退出组播组,会造成资源过度消耗。在一个实施例中,中心控制器还可以对组播成员的频繁加入或退出进行限制。具体的,中心控制器获取预设时间内组播成员加入组播组或退出组播组的次数,若超过设定的次数,则限制该组播成员再次加入组播组或退出组播组。从而有效减少资源消耗。
在一个实施例中,如图8所示,提供了一种云端数据组播系统,包括:获取模块802、查找模块804、计算模块806、过滤模块808和发送模块810,其中:
获取模块802,用于获取云端的组播报文,组播报文中携带了租户标识、目的地址和源地址。
查找模块804,用于根据租户标识和目的地址查找对应的组播组,组播组包括多个组播成员。
计算模块806,用于计算所述组播成员对应的路由,根据多个组播成员对应的路由生成路由树。
过滤模块808,还用于获取组播成员对应的成员地址,根据源地址和成员地址进行地址过滤,得到需要组播报文的成员地址清单。
发送模块810,用于将组播报文进行封装,根据成员地址清单和路由树将封装后的组播报文投递给需要组播报文的组播成员。
在一个实施例中,计算模块806还用于获取宿主机中多个组播成员返回的报告报文;根据报告报文计算组播成员对应的路由;根据多个组播成员对应的路由生成路由树;取数据平面使用的路由树的拓扑结构,根据路由树拓扑结构将多个组播成员对应的路由树写入数据平面使用的路由树数据结构中。
在一个实施例中,过滤模块808还用于获取组播成员对应的报告报文,报告报文中携带了成员地址、源地址和过滤方式;根据源地址和成员地址按照过滤方式对多个组播成员的地址进行过滤,得到需要组播报文的成员地址清单。
在一个实施例中,过滤方式包括第一过滤方式和第一过滤方式,过滤模块808还用于获取与第一过滤方式对应的第一过滤清单,遍历第一过滤清单,判断第一过滤清单中的成员地址是否与源地址相同,若是,则将下一级组播成员复制到第一临时清单;获取与第二过滤方式对应的第二过滤清单,遍历第二过滤清单,判断第二过滤清单中的成员地址是否与源地址相同,若是,则将下一级组播成员对应的宿主机从第二临时清单中删除;将第一临时清单与第二临时清单合并,得到需要组播报文的成员地址清单。
在一个实施例中,路由树包括主机路由树和组播组路由树,计算模块806还用于遍历主机路由树的节点,获取主机路由树的增量变化消息;根据主机路由树的增量变化消息对组播组路由树进行更新计算。
在一个实施例中,如图9所示,该装置还包括:接收模块812和响应模块814,其中:
接收模块812,用于接收终端通过组播应用发送的组播组操作指令,操作指令中携带了租户标识、过滤方式、过滤地址集合和组播地址。
响应模块814,用于根据租户标识、过滤方式、过滤地址集合以及组播地址新建组播组或者删除组播组。
在一个实施例中,如图10所示,提供了一种云端数据组播系统,包括:组播网关集群1002、中心控制器1004和宿主机1006,其中:
组播网关集群1002,用于获取云端的组播报文,组播报文中携带了租户标识、目的地址和源地址,根据租户标识和目的地址查找对应的组播组,组播组包括多个组播成员。
中心控制器1004,用于计算组播成员对应的路由;根据多个组播成员对应的路由生成。
组播网关集群1002还用于获取数据平面使用的路由树的拓扑结构,根据路由树拓扑结构将多个组播成员对应的路由树写入数据平面使用的路由树数据结构中;获取组播成员对应的成员地址,根据源地址和成员地址进行地址过滤,得到需要组播报文的成员地址清单;将组播报文进行封装,根据成员地址清单和路由树将封装后的组播报文发送至于成员地址对应的宿主机。
宿主机1006,用于接收封装后的组播报文,并将封装后的组播报文传递给需要组播报文的组播成员。
在一个实施例中,路由树包括主机路由树和组播组路由树,中心控制器1004还用于遍历主机路由树的节点,获取主机路由树的增量变化消息;根据主机路由树的增量变化消息对组播组路由树进行更新计算。
在一个实施例中,组播网关集群1002还用于获取组播成员对应的报告报文,报告报文中携带了成员地址、源地址和过滤方式;根据源地址和成员地址按照源地址过滤方式对多个组播成员的地址进行过滤,得到需要组播报文的成员地址清单。
在一个实施例中,组播网关集群1002还用于获取与第一过滤方式对应的第一过滤清单,遍历第一过滤清单,判断第一过滤清单中的成员地址是否与源地址相同,若是,则将下一级组播成员复制到第一临时清单;获取与第二过滤方式对应的第二过滤清单,遍历第二过滤清单,判断第二过滤清单中的成员地址是否与源地址相同,若是,则将下一级组播成员对应的宿主机从第二临时清单中删除;将第一临时清单与第二临时清单合并,得到需要组播报文的成员地址清单。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (16)

1.一种云端数据组播方法,所述方法包括:
获取云端的组播报文,所述组播报文中携带了租户标识、目的地址和源地址;
根据所述租户标识和目的地址查找对应的组播组,所述组播组包括多个组播成员;
计算所述组播成员对应的路由,根据多个组播成员对应的路由生成路由树;
获取所述组播成员对应的成员地址,根据所述源地址和成员地址进行地址过滤,得到需要所述组播报文的成员地址清单;
将所述组播报文进行封装,根据所述成员地址清单和所述路由树将封装后的组播报文投递给需要所述组播报文的组播成员。
2.根据权利要求1所述的方法,其特征在于,所述计算所述组播成员对应的路由,根据多个组播成员对应的路由生成路由树的步骤包括:
获取多个组播成员返回的报告报文;
根据所述报告报文计算组播成员对应的路由;
根据多个组播成员对应的路由生成路由树;
获取数据平面使用的路由树的拓扑结构,根据所述路由树拓扑结构将所述多个组播成员对应的路由树写入数据平面使用的路由树数据结构中。
3.根据权利要求1所述的方法,其特征在于,所述路由树包括主机路由树和组播组路由树,在所述计算所述组播成员对应的路由,根据多个组播成员对应的路由生成路由树的步骤之后,还包括:
遍历主机路由树的节点,获取主机路由树的增量变化消息;
根据所述主机路由树的增量变化消息对组播组路由树进行更新计算。
4.根据权利要求1所述的方法,其特征在于,所述根据所述源地址和成员地址进行地址过滤,得到需要所述组播报文的成员地址清单步骤包括:
获取所述组播成员对应的报告报文,所述报告报文中携带了成员地址、源地址和过滤方式;
根据所述源地址和成员地址按照所述过滤方式对多个组播成员的地址进行过滤,得到需要所述组播报文的成员地址清单。
5.根据权利要求4所述的方法,其特征在于,所述过滤方式包括第一过滤方式和第二过滤方式,所述根据所述源地址和成员地址按照所述过滤方式对多个组播成员的地址进行过滤,得到需要所述组播报文的成员地址清单步骤包括:
获取与所述第一过滤方式对应的第一过滤清单,遍历所述第一过滤清单,判断所述第一过滤清单中的成员地址是否与源地址相同,若是,则将下一级组播成员复制到第一临时清单;
获取与所述第二过滤方式对应的第二过滤清单,遍历所述第二过滤清单,判断所述第二过滤清单中的成员地址是否与源地址相同,若是,则将下一级组播成员对应的宿主机从第二临时清单中删除;
将所述第一临时清单与第二临时清单合并,得到需要所述组播报文的成员地址清单。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收终端通过组播应用发送的组播组操作指令,操作指令中携带了租户标识、过滤方式、过滤地址集合和组播地址;
根据所述租户标识、过滤方式、过滤地址集合以及组播地址新建组播组或者删除组播组。
7.一种云端数据组播装置,其特征在于,所述装置包括:
获取模块,用于获取云端的组播报文,所述组播报文中携带了租户标识、目的地址和源地址;
查找模块,用于根据所述租户标识和目的地址查找对应的组播组,所述组播组包括多个组播成员;
计算模块,用于计算所述组播成员对应的路由,根据多个组播成员对应的路由生成路由树;
过滤模块,还用于获取所述组播成员对应的成员地址,根据所述源地址和成员地址进行地址过滤,得到需要所述组播报文的成员地址清单;
发送模块,用于将所述组播报文进行封装,根据所述成员地址清单和所述路由树将封装后的组播报文投递给需要所述组播报文的组播成员。
8.根据权利要求7所述的装置,其特征在于,所述计算模块还用于获取宿主机中多个组播成员返回的报告报文;根据所述报告报文计算组播成员对应的路由;根据多个组播成员对应的路由生成路由树;取数据平面使用的路由树的拓扑结构,根据所述路由树拓扑结构将所述多个组播成员对应的路由树写入数据平面使用的路由树数据结构中。
9.根据权利要求7所述的装置,其特征在于,所述过滤模块还用于获取所述组播成员对应的报告报文,所述报告报文中携带了成员地址、源地址和过滤方式;根据所述源地址和成员地址按照所述过滤方式对多个组播成员的地址进行过滤,得到需要所述组播报文的成员地址清单。
10.根据权利要求9所述的装置,其特征在于,所述过滤方式包括第一过滤方式和第二过滤方式,所述过滤模块还用于获取与所述第一过滤方式对应的第一过滤清单,遍历所述第一过滤清单,判断所述第一过滤清单中的成员地址是否与源地址相同,若是,则将下一级组播成员复制到第一临时清单;获取与所述第二过滤方式对应的第二过滤清单,遍历所述第二过滤清单,判断所述第二过滤清单中的成员地址是否与源地址相同,若是,则将下一级组播成员对应的宿主机从第二临时清单中删除;将所述第一临时清单与第二临时清单合并,得到需要所述组播报文的成员地址清单。
11.根据权利要求7所述的装置,其特征在于,所述路由树包括主机路由树和组播组路由树,所述计算模块还用于遍历主机路由树的节点,获取主机路由树的增量变化消息;根据所述主机路由树的增量变化消息对组播组路由树进行更新计算。
12.根据权利要求7所述的装置,其特征在于,所述装置还包括:
接收模块,用于接收终端通过组播应用发送的组播组操作指令,操作指令中携带了租户标识、过滤方式、过滤地址集合和组播地址;
响应模块,用于根据所述租户标识、过滤方式、过滤地址集合以及组播地址新建组播组或者删除组播组。
13.一种云端数据组播系统,其特征在于,所述系统包括:
组播网关集群,用于获取云端的组播报文,所述组播报文中携带了租户标识、目的地址和源地址,根据所述租户标识和目的地址查找对应的组播组,所述组播组包括多个组播成员;
中心控制器,用于计算所述组播成员对应的路由,根据多个组播成员对应的路由生成路由树;
所述组播网关集群还用于获取数据平面使用的路由树的拓扑结构,根据所述路由树拓扑结构将所述多个组播成员对应的路由树写入数据平面使用的路由树数据结构中;获取所述组播成员对应的成员地址,根据所述源地址和成员地址进行地址过滤,得到需要所述组播报文的成员地址清单;将所述组播报文进行封装,根据所述成员地址清单和所述路由树将封装后的组播报文发送至于所述成员地址对应的宿主机;
宿主机,用于接收所述封装后的组播报文,并将所述封装后的组播报文传递给需要所述组播报文的组播成员。
14.根据权利要求13所述的系统,其特征在于,所述路由树包括主机路由树和组播组路由树,所述中心控制器还用于遍历主机路由树的节点,获取主机路由树的增量变化消息;根据所述主机路由树的增量变化消息对组播组路由树进行更新计算。
15.根据权利要求13所述的系统,其特征在于,所述组播网关集群还用于获取所述组播成员对应的报告报文,所述报告报文中携带了成员地址、源地址和过滤方式;根据所述源地址和成员地址按照源地址过滤方式对多个组播成员的地址进行过滤,得到需要所述组播报文的成员地址清单。
16.根据权利要求15所述的系统,其特征在于,所述过滤方式包括第一过滤方式和第二过滤方式,所述组播网关集群还用于获取与所述第一过滤方式对应的第一过滤清单,遍历所述第一过滤清单,判断所述第一过滤清单中的成员地址是否与源地址相同,若是,则将下一级组播成员复制到第一临时清单;获取与所述第二过滤方式对应的第二过滤清单,遍历所述第二过滤清单,判断所述第二过滤清单中的成员地址是否与源地址相同,若是,则将下一级组播成员对应的宿主机从第二临时清单中删除;将所述第一临时清单与第二临时清单合并,得到需要所述组播报文的成员地址清单。
CN201610552915.2A 2016-07-13 2016-07-13 云端数据组播方法、装置和系统 Active CN106209688B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201610552915.2A CN106209688B (zh) 2016-07-13 2016-07-13 云端数据组播方法、装置和系统
EP17826962.7A EP3487131B1 (en) 2016-07-13 2017-07-11 Cloud-end data multicast method and system
PCT/CN2017/092432 WO2018010626A1 (zh) 2016-07-13 2017-07-11 云端数据组播方法、系统和计算机设备
US16/240,252 US10958723B2 (en) 2016-07-13 2019-01-04 Cloud-end data multicast method and system, and computer device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610552915.2A CN106209688B (zh) 2016-07-13 2016-07-13 云端数据组播方法、装置和系统

Publications (2)

Publication Number Publication Date
CN106209688A CN106209688A (zh) 2016-12-07
CN106209688B true CN106209688B (zh) 2019-01-08

Family

ID=57477330

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610552915.2A Active CN106209688B (zh) 2016-07-13 2016-07-13 云端数据组播方法、装置和系统

Country Status (4)

Country Link
US (1) US10958723B2 (zh)
EP (1) EP3487131B1 (zh)
CN (1) CN106209688B (zh)
WO (1) WO2018010626A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106209688B (zh) * 2016-07-13 2019-01-08 腾讯科技(深圳)有限公司 云端数据组播方法、装置和系统
CN109412951B (zh) * 2018-10-12 2021-06-22 华为技术有限公司 一种发送路由信息的方法和装置
CN109756412B (zh) * 2018-12-24 2020-12-25 华为技术有限公司 一种数据报文转发方法以及设备
US11095558B2 (en) 2018-12-28 2021-08-17 Alibaba Group Holding Limited ASIC for routing a packet
US11470041B2 (en) 2019-06-20 2022-10-11 Disney Enterprises, Inc. Software defined network orchestration to manage media flows for broadcast with public cloud networks
DE102019209342A1 (de) * 2019-06-27 2020-12-31 Siemens Mobility GmbH Verfahren und Übertragungsvorrichtung zur Datenübertragung zwischen zwei oder mehreren Netzwerken
CN110391978A (zh) * 2019-07-17 2019-10-29 国联证券股份有限公司 一种基于paas云平台的组播路由系统及方法
WO2022082825A1 (zh) * 2020-10-23 2022-04-28 郑州芯兰德网络科技有限公司 一种基于标识解析路由的组播系统及组播方法
US11665094B2 (en) * 2020-11-30 2023-05-30 Vmware, Inc. Collecting, processing, and distributing telemetry data
CN114286127B (zh) * 2022-03-08 2022-05-27 浙江微能科技有限公司 一种分布式人工智能分析方法及装置
CN114828153B (zh) * 2022-04-22 2024-07-05 中科润物科技(南京)有限公司 基于组播的软件定义无人机自组网路由信息高效传送方法
US12107857B2 (en) * 2023-01-30 2024-10-01 Hewlett Packard Enterprise Development Lp Multicast traffic segmentation in an overlay network

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103795636A (zh) * 2012-11-02 2014-05-14 华为技术有限公司 组播处理方法、装置及系统
CN104253698A (zh) * 2013-06-29 2014-12-31 华为技术有限公司 报文组播的处理方法和设备
CN104954265A (zh) * 2014-03-25 2015-09-30 华为技术有限公司 发送组播报文的方法及交换机
CN104980287A (zh) * 2014-04-04 2015-10-14 华为技术有限公司 组播组分配方法及组播管理节点

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7707300B1 (en) * 2001-04-13 2010-04-27 Cisco Technology, Inc. Methods and apparatus for transmitting information in a network
US20100046516A1 (en) * 2007-06-26 2010-02-25 Media Patents, S.L. Methods and Devices for Managing Multicast Traffic
US8989187B2 (en) * 2010-06-04 2015-03-24 Coraid, Inc. Method and system of scaling a cloud computing network
JP5935418B2 (ja) * 2012-03-15 2016-06-15 富士通株式会社 マルチキャストアドレスの管理のための情報処理装置、情報処理方法及びプログラム、中継装置、中継装置のための情報処理方法及びプログラム、並びに情報処理システム
US9686099B2 (en) * 2012-04-27 2017-06-20 Hewlett Packard Enterprise Development Lp Updating virtual network maps
JP2014007681A (ja) * 2012-06-27 2014-01-16 Hitachi Ltd ネットワークシステム、および、その管理装置、そのスイッチ
US8831000B2 (en) * 2012-10-10 2014-09-09 Telefonaktiebolaget L M Ericsson (Publ) IP multicast service join process for MPLS-based virtual private cloud networking
US9350558B2 (en) * 2013-01-09 2016-05-24 Dell Products L.P. Systems and methods for providing multicast routing in an overlay network
CN104935443A (zh) * 2014-03-17 2015-09-23 中兴通讯股份有限公司 组播数据处理方法、装置、系统、发送设备及接收客户端
CN106209688B (zh) * 2016-07-13 2019-01-08 腾讯科技(深圳)有限公司 云端数据组播方法、装置和系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103795636A (zh) * 2012-11-02 2014-05-14 华为技术有限公司 组播处理方法、装置及系统
CN104253698A (zh) * 2013-06-29 2014-12-31 华为技术有限公司 报文组播的处理方法和设备
CN104954265A (zh) * 2014-03-25 2015-09-30 华为技术有限公司 发送组播报文的方法及交换机
CN104980287A (zh) * 2014-04-04 2015-10-14 华为技术有限公司 组播组分配方法及组播管理节点

Also Published As

Publication number Publication date
EP3487131B1 (en) 2023-06-14
US20190141124A1 (en) 2019-05-09
US10958723B2 (en) 2021-03-23
CN106209688A (zh) 2016-12-07
WO2018010626A1 (zh) 2018-01-18
EP3487131A4 (en) 2019-06-05
EP3487131A1 (en) 2019-05-22

Similar Documents

Publication Publication Date Title
CN106209688B (zh) 云端数据组播方法、装置和系统
CN105049361B (zh) 针对虚拟网络分组流的物理路径确定
US10693766B2 (en) Engines to prune overlay network traffic
US9860151B2 (en) Tracing network packets through logical and physical networks
US9407580B2 (en) Maintaining data stored with a packet
CN111034159B (zh) 云中使用专用金属部署的情况下的复制
CN106953848B (zh) 一种基于ForCES的软件定义网络实现方法
EP3013006A1 (en) Protocol independent multicast sparse mode (pim-sm) support for data center interconnect
US20170078198A1 (en) Method and apparatus for advanced statistics collection
US10666509B2 (en) Transporting multi-destination networking traffic by sending repetitive unicast
US10630508B2 (en) Dynamic customer VLAN identifiers in a telecommunications network
CN104823405A (zh) 对于基于mpls的虚拟私有云联网的ip组播服务离开过程
CN104871483A (zh) 对于基于mpls的虚拟私有云联网的ip组播服务加入过程
CN106850444A (zh) 逻辑l3路由
CN108964940A (zh) 消息发送方法及装置、存储介质
CN109787938B (zh) 实现访问虚拟私有云的方法、装置及计算机可读存储介质
CN105591872A (zh) 一种实现多数据中心互联的方法和装置
US8855015B2 (en) Techniques for generic pruning in a trill network
CN116996585A (zh) 组播通信方法、装置、系统、计算机设备和存储介质
WO2014199924A1 (ja) 制御装置、通信システム、中継装置の制御方法及びプログラム
CN116724546A (zh) 用于融合以太网上的RDMA(RoCE)云规模多租赁
KR20150079391A (ko) 네트워크 가상화 방법 및 장치
CN118250066A (zh) 云内外通信方法、装置、电子设备及计算机可读存储介质
CN116686277A (zh) 用于可扩展多租户rdma流量的基于类的排队

Legal Events

Date Code Title Description
C06 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