CN115242733B - 报文组播方法、组播网关、电子设备及存储介质 - Google Patents

报文组播方法、组播网关、电子设备及存储介质 Download PDF

Info

Publication number
CN115242733B
CN115242733B CN202210729666.5A CN202210729666A CN115242733B CN 115242733 B CN115242733 B CN 115242733B CN 202210729666 A CN202210729666 A CN 202210729666A CN 115242733 B CN115242733 B CN 115242733B
Authority
CN
China
Prior art keywords
multicast
multicast group
message
gateway
group members
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
CN202210729666.5A
Other languages
English (en)
Other versions
CN115242733A (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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202210729666.5A priority Critical patent/CN115242733B/zh
Publication of CN115242733A publication Critical patent/CN115242733A/zh
Application granted granted Critical
Publication of CN115242733B publication Critical patent/CN115242733B/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
    • 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
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/354Switches specially adapted for specific applications for supporting virtual local area networks [VLAN]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本公开提供了一种报文组播方法、组播网关、电子设备及存储介质,涉及云计算和云网络技术,可应用在智能云场景下。具体应用在包括有预设数量端口的可编程交换机实现的组播网关中,包括:接收报文;所述报文中携带虚拟网络标识和组播组IP地址;基于预先建立的组播组实例表、所述虚拟网络标识和所述组播组IP地址,获取所述组播组的信息;基于所述组播组的信息和预先建立的组播组成员信息表,通过所述组播网关的所述预设数量的端口,向所述组播组中的所有组播组成员组播所述报文。本公开的技术,能够有效地提高组播网关的吞吐能力,降低组播时延,提高报文组播效率。

Description

报文组播方法、组播网关、电子设备及存储介质
技术领域
本公开涉及人工智能领域,具体涉及云计算和云网络技术,可应用在智能云场景下;尤其涉及一种报文组播方法、组播网关、电子设备及存储介质。
背景技术
在云计算场景下,为了实现低成本的虚拟网络下的组播,且不对宿主机的中央处理器(central processing unit,简称CPU)产生过多的开销,通常采用独立部署的组播网关集群对云上租户提供组播能力。考虑到虚拟网络下对多租户的支持,以及不同租户对组播组规模的定制化等需求,云厂商通常采用x86服务器实现组播网关。
当客户端发出的组播报文到达x86服务器实现的组播网关后,组播网关会通过软件复制的方式,将原始报文依次复制给该组播组中的每一个成员。
发明内容
本公开提供了一种报文组播方法、组播网关、电子设备及存储介质。
根据本公开的一方面,提供了一种报文组播方法,应用在包括有预设数量端口的可编程交换机实现的组播网关中,包括:
接收报文;所述报文中携带虚拟网络标识和组播组IP地址;
基于预先建立的组播组实例表、所述虚拟网络标识和所述组播组IP地址,获取所述组播组的信息;
基于所述组播组的信息和预先建立的组播组成员信息表,通过所述组播网关的所述预设数量的端口,向所述组播组中的所有组播组成员组播所述报文。
根据本公开的另一方面,提供了一种组播网关,采用包括有预设数量端口的可编程交换机实现,包括:
接收模块,用于接收报文;所述报文中携带虚拟网络标识和组播组IP地址;
获取模块,用于基于预先建立的组播组实例表、所述虚拟网络标识和所述组播组IP地址,获取所述组播组的信息;
组播模块,用于基于所述组播组的信息和预先建立的组播组成员信息表,通过所述组播网关的所述预设数量的端口,向所述组播组中的所有组播组成员组播所述报文。
根据本公开的再一方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的方面和任一可能的实现方式的方法。
根据本公开的又一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行如上所述的方面和任一可能的实现方式的方法。
根据本公开的再另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如上所述的方面和任一可能的实现方式的方法。
根据本公开的技术,能够有效地提高组播网关的吞吐能力,降低组播时延,提高报文组播效率。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开第一实施例的示意图;
图2是根据本公开第二实施例的示意图;
图3是本实施例提供的一种可编程交换机实现的组播网关的工作原理图;
图4是根据本公开第三实施例的示意图;
图5是根据本公开第四实施例的示意图;
图6是用来实现本公开实施例的方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的全部其他实施例,都属于本公开保护的范围。
需要说明的是,本公开实施例中所涉及的终端设备可以包括但不限于手机、个人数字助理(Personal Digital Assistant,PDA)、无线手持设备、平板电脑(TabletComputer)等智能设备;显示设备可以包括但不限于个人电脑、电视等具有显示功能的设备。
另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
通过通用的x86服务器实现的组播网关,对组播报文的复制和转发,受限于程序、CPU、网卡等的能力,其性能和吞吐能力通常较低,且时延较高,无法满足多租户、大规模组播组的低时延组播需求。
图1是根据本公开第一实施例的示意图;如图1所示,本实施例提供一种报文组播方法,应用在可编程交换机实现的组播网关中,其中该可编程交换机具有预设数量的端口。本实施例的报文组播方法,具体可以包括如下步骤:
S101、接收报文;该报文中携带虚拟网络标识(VxLAN Network Identifier;VNI)和组播组IP地址;
其中,虚拟可扩展局域网(Virtual eXtensible Local Area Network),简称VxLAN。
该报文为对应的设备发出的,携带有VNI和组播组的IP地址,以请求网关向对应组播组内的所有组播成员发送该报文。其中VNI可以用于表示组播组所在的虚拟私有云(Virtual Private Cloud;VPC)。由于不同的VNI可能对应有相同的组播组IP地址。所以,本实施例中,需要在报文中携带VNI和组播组IP地址,以准确地定位到唯一的组播组。
具体地,组播源成员对应的设备先将报文发出至交换机。交换机根据报文中的外层封装中的组播网关的地址,即VXLAN隧道端点(VXLAN Tunnel End Point;VTEP)地址,将该报文发送给本实施例的组播网关。该组播网关的地址即为组播网关的IP地址,携带在报文的外层封装中。
S102、基于预先建立的组播组实例表、VNI和组播组IP地址,获取组播组的信息;
本实施例的组播组实例表中,可以维护有多租户不同VPC下的所有组播组实例信息,其中可以包括:VNI、组播组IP地址、组播组ID、以及组播组成员数量等等。该组播组实例表可以预先建立,并存储,包括有多个组播组的实例信息,各个组播组的实例信息可以一条一条存储。使用时,组播网关可以获取到该组播组实例表,并基于VNI和组播组IP地址,可以获取到对应组播组的信息,例如可以包括组播组ID以及组播组成员数量等等信息。
S103、基于组播组的信息和预先建立的组播组成员信息表,通过组播网关的预设数量的端口,向组播组中的所有组播组成员组播报文。
例如,本实施例的组播组成员信息表可以维护有组播组ID、组播组内包括的组播成员序号、各组播成员的IP地址、各组播成员的IP地址对应的媒体访问控制(Media AccessControl;MAC)地址、各组播成员的IP地址对应的宿主机的地址、以及封装信息等等。该组播组成员信息表也是预先建立,并存储的。其中存储有每个组播组内的每个组播成员的信息。
本实施例中,基于从组播组实例表中获取的组播组的信息,并参考组播组成员信息表中的各组播成员的信息,通过组播网关的预设数量的端口,可以实现向组播组中的所有组播组成员组播报文。
本实施例的报文组播方法,通过基于预先建立的组播组实例表、VNI和组播组IP地址,获取组播组的信息,并进一步可以基于组播组的信息和预先建立的组播组成员信息表,通过组播网关的预设数量的端口,向组播组中的所有组播组成员组播接收到的报文。由于采用具备预设数量端口的可编程交换机实现的组播网关,提高组播网关的吞吐能力,降低组播时延,提高报文组播效率。总之,本实施例能够实现一种更高性能、更低时延、吞吐更强的报文组播方案。
图2是根据本公开第二实施例的示意图;本实施例在上述图1所示实施例的技术方案的基础上,提供一种更加详细地报文组播方法的实现方案。如图2所示,本实施例的报文组播方法,具体可以包括如下步骤:
S201、接收交换机转发的报文;该报文中携带VNI和组播组IP地址;
需要说明的是,当组播网关首次接收到交换机转发的该报文时,不会显式携带基准偏移量,此时可以认为该基准偏移量的初始值为0。若非首次接收到交换机转发的该报文时,可以显式携带该基准偏移量,且该基准偏移量不为0。步骤200中以首次接收报文为例。若非首次接收交换机转发的该报文,此时该报文中除了携带VNI和组播组IP地址,还携带有基准偏移量。
S202、基于预先建立的组播组实例表、VNI和组播组IP地址,获取组播组标识和组播组成员的总数量;
组播组实例表中包括的信息可以参考上述图1所示实施例的相关记载。具体地,可以基于报文中的VNI和组播组IP地址,查找组播组实例表,能够准确地获取到对应的组播组标识即组播组ID、以及组播组成员的总数量。
S203、基于组播组成员的总数量和基准偏移量,确定当前待组播的组播组成员的剩余数量;
需要说明的是,当组播网关首次接收到交换机转发的该报文时,基准偏移量的初始值为0,此时对应的当前待组播的组播组成员的剩余数量等于组播组成员的总数量。当组播网关非首次接收到交换机转发的该报文时,基准偏移量的值不等于0,从一定程度上来讲,基准偏移量可以标识已组播的组播组成员数量,所以当前待组播的组播组成员的剩余数量,可以等于组播组成员的总数量减去基准偏移量。
S204、基于组播网关的端口的预设数量以及当前待组播的组播组成员的剩余数量,确定本轮组播的组播组成员的本轮组播数量;
本实施例的组播网关可以采用可编程交换机来实现,可编程交换机的端口的数量,即等于组播网关的端口的预设数量。该数量可以根据可编程交换机的硬件来设置,例如可以为10、20、30、50或者其他正整数,在此不做限定。
由于组播网关的端口数量为预设数量,所以每轮组播的组播组成员的数量最大等于该预设数量。但是若待组播的组播组成员的剩余数量小于预设数量时,仅组播待组播的组播组成员的剩余数量即可。
即,此时,可以采用如下方式来确定:
若组播组成员的剩余数量大于或者等于预设数量,确定本轮组播的组播组成员的本轮组播数量等于预设数量;
若组播组成员的剩余数量小于预设数量,确定本轮组播的组播组成员的本轮组播数量等于组播组成员的剩余数量。
S205、将报文镜像本轮组播数量份;
本实施例采用的可编程交换机实现的网关,具备Traffic Manager,能够提供报文镜像的能力。
S206、获取本轮组播时,各端口对应的组播组成员的序号;
例如,可以基于报文中携带的基准偏移量与组播网关的各端口的序号,确定各端口对应的组播组成员的序号。具体地,将基准偏移量与各端口的序号相加,得到各端口对应要组播的组播组成员的序号。
为了便于管理,若组播组成员数量为M时,本实施例的组播组成员的序号可以按照1、2、3、……、M之类的自然数排列。而各端口的序号按照1、2、3、……、N之类的自然数排列,N等于端口的预设数量。
S207、基于组播组标识、各端口对应的组播组成员的序号以及预先建立的组播组成员信息表,获取各端口对应的组播组成员的信息;
该组播组成员信息表可以参考上述图1所示实施例的相关记载,其中包括各组播组成员实现组播时所需参考的所有信息。
例如,本实施例中,需要根据组播组标识和各端口对应的组播组成员的序号,可以从组播组成员信息表中,查询并获取到对应端口要组播的组播组成员的IP地址、各组播成员的IP地址对应的媒体访问控制(Media Access Control;MAC)地址、各组播成员的IP地址对应的宿主机的地址、以及封装信息等等。这些组播组成员的信息非常全面、丰富,能够指导组播组成员的报文的正确发送。
S208、基于各端口对应的组播组成员的信息,向对应的组播组成员发送报文;
例如,可以基于组播组标识、各端口对应的组播组成员的序号以及预先建立的组播组成员信息表,获取各端口对应的组播组成员的IP地址、各组播成员的IP地址对应的MAC地址、各组播成员的IP地址对应的宿主机的地址以及封装信息。然后基于获取到的上述信息,修改各端口对应的镜像后的报文。具体地,基于各端口对应的组播组成员的IP地址、各组播成员的IP地址对应的MAC地址、以及各组播成员的IP地址对应的宿主机的地址,修改报文的目标地址信息,并基于封装信息,对报文进行隧道封装,最后发送报文即可。
基于上述步骤S201-S204,可以确定组播组的标识、以及本轮组播的组播组成员的本轮组播数量。接下来可以基于组播组标识以及预先建立的组播组成员信息表,通过组播网关的各端口,向本轮组播数量的组播组成员组播报文。
具体地,由于本轮组播时,是通过预设数量的端口,向本轮组播的组播组成员组播报文。当本轮组播数量等于端口的预设数量时,每个端口对应组播一个组播组成员。而当本轮组播数量小于预设数量时,此时相当于仅需要利用本轮组播数量的端口分别组播一个组播组成员,而其他端口闲置不用。
可选地,也可以在步骤S204中,始终认为本轮组播的组播组成员的本轮组播数量等于预设数量,在步骤S205中始终将报文镜像预设数量份。而具体在步骤S206,获取本轮组播时,各端口对应的组播组成员的序号,以及步骤S207获取各端口对应的组播组成员的信息时,最大只能获取到序号等于组播组成员数量的组播组成员的信息。而不存在大于组播组成员数量的序号,预先建立的组播组成员信息表中也不存在对应的组播组成员信息,所以,该实现方式中,在最后一轮组播中,即使镜像了预设数量的组播报文,但是由于不存在对应的组播组成员序号,没有对应的组播组成员的信息,对应的端口也不用组播报文。
S209、检测本轮组播后是否完成该组播组所有成员的组播;若完成,确定组播组所有成员的组播完成,结束。若未完成,执行步骤S210;
S210、更新报文中的基准偏移量;执行步骤S211;
本实施例中,基准偏移量可以表示已经组播的成员数量,基于基准偏移量与本轮组播数量,可以确定本轮组播后是否完成组播组所有成员的组播。例如,若基准偏移量与本轮组播数量之和等于或者大于组播组成员的总数量,则认为本轮组播后是否完成该组播组所有成员的组播;否则,若基准偏移量与本轮组播数量之和小于组播组成员的总数量,则确定本轮组播后仍未完成该组播组所有成员的组播。此时便需要更新报文中的基准偏移量。具体地,将报文中的基准偏移量累加预设数量,作为更新后的报文中的基准偏移量。步骤S206-S208处理的是镜像后的报文,而步骤S210处理的是接收到的原始的报文。
S211、向交换机发送携带基准偏移量、虚拟网络标识和组播组IP地址的报文;此时返回步骤S201,继续进行组播。
需要注意的是,与步骤S210不同的是,组播网关再次接收到的报文时,已经不是首次接收到该报文,此时报文中除了携带VNI和组播组IP地址,还显式携带了基准偏移量。
具体地,可以通过复用组播网关的任一端口,向交换机发送携带基准偏移量、VNI和组播组IP地址的报文,能够有效地保证报文被正确发送,且再次传回组播网关,且实现方式非常简单。
需要说明的是,组播网关向交换机发送携带基准偏移量、虚拟网络标识和组播组IP地址的报文后,交换机根据报文的外层封装中的VXLAN隧道端点(Tunnel End Point;VTEP)的地址,即组播网关的IP地址,将报文转发给该组播网关,此时对应地步骤S201,组播网关再次接收到该报文。后续继续按照本实施例的上述步骤对报文进行处理,直至完成该组播组所有成员的报文组播。
基于以上所述,可以得知,以组播网关一轮镜像N条报文为例,对应地,组播网关本轮需要处理的报文为N+1条。具体地,组播网关接收到交换机发送的原始报文之后,先对原始报文进行镜像,得到N个镜像后的报文,分别通过组播网关的N个端口各组播至一个组播组成员。即通过每个端口发送给一个组播组成员,N个端口便可以实现一轮向N个组播组成员组播该报文。对于原始的报文,报文外层封装的组播网关的地址。组播网关并不对该原始的报文做任何处理。将该报文再发送给交换机,交换机仍然可以根该组播网关的地址,再次发送给该组播网关。而对于通过各端口组播给各组播组成员的报文,在步骤S208对报文进行处理和组播时,将报文外层封装的组播网关的地址更换为组播组成员所在宿主机的地址,同时还基于组播组成员的IP地址、对应的MAC地址等对报文的目的地址进行地址修改,以使得报文能够正确地发送给对应的组播组成员。
步骤S209-S211可以与上述步骤S208同步进行,没有先后顺序限制。
本实施例的报文组播方法,通过采用上述可编程交换机实现的组播网关,能够有效地提高组播网关的吞吐能力,降低组播时延,提高报文组播效率,实现了一种更高性能、更低时延、吞吐更强的报文组播方案,实用性非常强。
图3是本实施例提供的一种可编程交换机实现的组播网关的工作原理图。如图3所示,可编程交换机在硬件上具备N个物理端口,具备Traffic Manager提供报文镜像能力。在软件上,可编程交换机提供了灵活的编程界面,可以通过编程实现自定义的组播组实例表和组播组成员信息表。其中组播组实例表维护了多租户不同VPC下的所有组播组实例信息,包括VNI、组播组IP地址、组播组ID、组播组成员数量等信息。组播组成员信息表维护了组播组ID、组播组成员序号、各组播成员的IP地址、各组播成员IP地址对应的MAC地址、宿主机的地址、以及封装信息等。
当原始组播报文初次到达可编程交换机实现的组播网关时,组播网关会通过<VNI、组播组的IP地址>从组播组实例表中查找组播组,获取组播组ID以及组播组成员数量等信息。然后根据组播组成员数量、组网关的端口数量以及基准偏移量等,确定本轮组播数量,并利用交换机Traffic Manager进行报文镜像。由于一份入向报文在每个端口上至多镜像一份,结合交换机端口数量,本轮最多可镜像N个报文。具体的,每轮组播数量可以参考上述图2所示实施例的确定方式,在此不再赘述。
然后,组播网关根据各端口的序号相对于端口1的偏移量以及报文中的基准偏移量,生成该端口本轮要组播的组播组成员序号。其中基准偏移量代表该报文已经组播过的成员的数量,也可以理解为已经组播过的最大组播组成员序号。在报文初次到达组播网关的第一轮组播中,该值为0。其中,端口1对应的组播成员序号为1,端口2对应2,依此类推端口N对应N。该序号与前面查到的组播组ID结合起来形成<组播组ID,组播组成员序号>。进而可以根据<组播组ID,组播组成员序号>查询组播组成员信息表,得到每个端口要组播的组播组成员IP地址、要组播的组播组成员IP地址对应的MAC地址、要组播的组播组成员IP地址对应的宿主机地址以及封装信息等等,依次修改该端口对应的报文的目的地址,封装后发出到对应组播成员所在宿主机,即完成对该组播成员的组播。
对于原始报文,如果组播组包含的成员数量>N,则会在报文中标记第一轮的组播成员基准偏移量为N,并且将该报文再次通过交换机发给组播网关,相当于同一个报文第二次进入组播网关。组播网关收到该第二次进入组播网关的原始报文后,读取报文中携带的基准偏移量,并利用<VNI,组播组IP地址>查找组播组实例表,获取组播组ID、组播组成员数量等信息。然后,可以判断基准偏移量与组播组成员数量的关系,如果基准偏移量大于或者等于组播组成员数量,则认为组播已经完成,并丢弃原始报文。若基准偏移量小于组播组成员数量,则再次根据剩余待组播成员数量,参考上述实施例的相关方式,利用交换机Traffic Manager进行报文镜像。再接下来,根据各端口序号相对于端口1的偏移量以及报文携带的基准偏移量,获取该端口本轮组播中待组播的组播组组成员序号。具体地,以第二轮组播为例,此时对应的基准偏移量为N,端口1对应的组播成员序号为N+1,端口2对应N+2,依此类推端口N对应N+N。该序号与前面查到的组播组ID结合起来形成<组播组ID,组播组成员序号>。然后通过<组播组ID,组播组成员序号>查询组播组成员信息表,得到各端口要组播的组播组成员IP地址、要组播的组播组成员IP地址对应的MAC地址、要组播的组播组成员IP地址对应的宿主机地址以及封装信息等信息,依次修改各端口对应的报文目的地址,封装后发送至对应组播成员所在宿主机,以实现向该组播成员的组播。
依此类推,按照上述方式可以进行多轮组播,直到对组播组中所有成员都完成了组播,此时对原始报文进行丢弃处理。
本实施例的报文组播方法,利用了可编程交换机的Traffic Manager报文镜像能力以及交换机的可编程能力,灵活实现了云计算虚拟网络环境下的组播能力支持。具备高性能,大吞吐,低时延等特点,实用性非常强。
图4是根据本公开第三实施例的示意图;如图4所示,本实施例提供一种组播网关400,采用包括有预设数量端口的可编程交换机实现,包括:
接收模块401,用于接收报文;报文中携带虚拟网络标识和组播组IP地址;
获取模块402,用于基于预先建立的组播组实例表、虚拟网络标识和组播组IP地址,获取组播组的信息;
组播模块403,用于基于组播组的信息和预先建立的组播组成员信息表,通过组播网关的预设数量的端口,向组播组中的所有组播组成员组播报文。
本实施例的组播网关400,通过采用上述模块实现报文组播的实现原理以及技术效果,与上述相关方法实施例的相同,详细可以参考上述相关方法实施例的记载,在此不再赘述。
图5是根据本公开第四实施例的示意图;如图5所示,本实施例提供一种组播网关500,在上述图4所示实施例的技术方案的基础上,进一步更加详细地描述本公开的技术方案。
如图5所示,本实施例的组播网关500,包括图4所示的同名同功能模块:接收模块501、获取模块502和组播模块503。
在本公开的一个实施例中,获取模块502,用于:
基于组播组实例表、虚拟网络标识和组播组IP地址,获取组播组标识和组播组成员的总数量。
如图5所示,在本公开的一个实施例中,组播模块503,包括:
确定单元5031,用于基于组播网关的端口的预设数量以及当前待组播的组播组成员的剩余数量,确定本轮组播的组播组成员的本轮组播数量;
镜像单元5032,用于将报文镜像本轮组播数量份;
组播单元5033,用于基于组播组标识和组播组成员信息表,通过组播网关的各端口,向本轮组播数量的组播组成员组播报文。
在本公开的一个实施例中,确定单元5031,用于:
若组播组成员的剩余数量大于或者等于预设数量,确定本轮组播的组播组成员的本轮组播数量等于预设数量;
若组播组成员的剩余数量小于预设数量,确定本轮组播的组播组成员的本轮组播数量等于组播组成员的剩余数量。
在本公开的一个实施例中,确定单元5031,还用于:
基于组播组成员的总数量和报文中携带的基准偏移量,确定当前待组播的组播组成员的剩余数量,基准偏移量的初始值为0。
在本公开的一个实施例中,组播单元5033,用于:
获取本轮组播时,各端口对应的组播组成员的序号;
基于组播组标识、各端口对应的组播组成员的序号以及组播组成员信息表,获取各端口对应的组播组成员的信息;
基于各端口对应的组播组成员的信息,向对应的组播组成员发送报文。
在本公开的一个实施例中,组播单元5033,用于:
基于报文中携带的基准偏移量与组播网关的各端口的序号,确定各端口对应的组播组成员的序号。
在本公开的一个实施例中,组播单元5033,还用于:
若确定本轮组播后未完成组播组所有成员的组播时,更新报文中的基准偏移量;
向交换机发送携带基准偏移量、虚拟网络标识和组播组IP地址的报文。
在本公开的一个实施例中,组播单元5033,用于:
将报文中的基准偏移量累加预设数量。
在本公开的一个实施例中,组播单元5033,用于:
通过复用组播网关的任一端口,向交换机发送携带基准偏移量、虚拟网络标识和组播组IP地址的报文。
在本公开的一个实施例中,组播单元5033,用于:
基于组播组标识、各端口对应的组播组成员的序号以及组播组成员信息表,获取各端口对应的组播组成员的IP地址、对应的宿主机的地址信息、媒体访问控制地址信息以及封装信息。
本实施例的组播网关500,通过采用上述模块实现报文组播的实现原理以及技术效果,与上述相关方法实施例的相同,详细可以参考上述相关方法实施例的记载,在此不再赘述。
本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图6示出了可以用来实施本公开的实施例的示例电子设备600的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图6所示,设备600包括计算单元601,其可以根据存储在只读存储器(ROM)602中的计算机程序或者从存储单元608加载到随机访问存储器(RAM)603中的计算机程序,来执行各种适当的动作和处理。在RAM 603中,还可存储设备600操作所需的各种程序和数据。计算单元601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
设备600中的多个部件连接至I/O接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元601可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元601的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元601执行上文所描述的各个方法和处理,例如本公开的上述方法。例如,在一些实施例中,本公开的上述方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由ROM 602和/或通信单元609而被载入和/或安装到设备600上。当计算机程序加载到RAM 603并由计算单元601执行时,可以执行上文描述的本公开的上述方法的一个或多个步骤。备选地,在其他实施例中,计算单元601可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行本公开的上述方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (20)

1.一种报文组播方法,应用在包括有预设数量端口的可编程交换机实现的组播网关中,包括:
接收报文;所述报文中携带虚拟网络标识和组播组IP地址;若所述组播网关非首次接收到交换机转发的所述报文时,所述报文中还携带基准偏移量;所述基准偏移量标识已组播的组播组成员数量;而若所述组播网关首次接收到交换机转发的所述报文时,认为所述基准偏移量的初始值为0;
基于所述组播组实例表、所述虚拟网络标识和所述组播组IP地址,获取所述组播组标识和所述组播组成员的总数量;
基于所述组播组的信息和预先建立的组播组成员信息表,通过所述组播网关的所述预设数量的端口,向所述组播组中的所有组播组成员组播所述报文;
基于所述组播组的信息和预先建立的组播组成员信息表,通过所述组播网关的所述预设数量的端口,向所述组播组中的所有组播组成员组播所述报文,包括:
基于所述组播网关的所述端口的所述预设数量以及当前待组播的所述组播组成员的剩余数量,确定本轮组播的所述组播组成员的本轮组播数量;所述组播组成员的剩余数量基于所述组播组成员的总数量和当前的所述基准偏移量确定;
将所述报文镜像所述本轮组播数量份;
基于所述组播组标识和所述组播组成员信息表,通过所述组播网关的各所述端口,向所述本轮组播数量的组播组成员组播所述报文。
2.根据权利要求1所述的方法,其中,基于所述组播网关的所述端口的所述预设数量以及当前待组播的所述组播组成员的剩余数量,确定本轮组播的所述组播组成员的本轮组播数量,包括:
若所述组播组成员的剩余数量大于或者等于所述预设数量,确定本轮组播的所述组播组成员的本轮组播数量等于所述预设数量;
若所述组播组成员的剩余数量小于所述预设数量,确定本轮组播的所述组播组成员的本轮组播数量等于所述组播组成员的剩余数量。
3.根据权利要求2所述的方法,其中,基于所述组播网关的所述端口的所述预设数量以及当前待组播的所述组播组成员的剩余数量,确定本轮组播的所述组播组成员的本轮组播数量之前,还包括:
基于所述组播组成员的总数量和所述报文中携带的基准偏移量,确定当前待组播的所述组播组成员的剩余数量。
4.根据权利要求3所述的方法,其中,基于所述组播组标识和所述组播组成员信息表,通过所述组播网关的各所述端口,向所述本轮组播数量的组播组成员组播所述报文,包括:
获取本轮组播时,各所述端口对应的组播组成员的序号;
基于所述组播组标识、各所述端口对应的所述组播组成员的序号以及所述组播组成员信息表,获取各所述端口对应的组播组成员的信息;
基于各所述端口对应的组播组成员的信息,向对应的所述组播组成员发送所述报文。
5.根据权利要求4所述的方法,其中,获取本轮组播时,各所述端口对应的组播组成员的序号,包括:
基于所述报文中携带的所述基准偏移量与所述组播网关的各端口的序号,确定各所述端口对应的组播组成员的序号。
6.根据权利要求1所述的方法,其中,基于所述组播组标识和所述组播组成员信息表,通过所述组播网关的各所述端口,向所述本轮组播数量的组播组成员组播所述报文,还包括:
若确定本轮组播后未完成所述组播组所有成员的组播时,更新所述报文中的所述基准偏移量;
向交换机发送携带所述基准偏移量、所述虚拟网络标识和所述组播组IP地址的报文。
7.根据权利要求6所述的方法,其中,更新所述报文中的所述基准偏移量,包括:
将所述报文中的所述基准偏移量累加所述预设数量。
8.根据权利要求6所述的方法,其中,向交换机发送携带所述基准偏移量、所述虚拟网络标识和所述组播组IP地址的报文,包括:
通过复用所述组播网关的任一端口,向所述交换机发送携带所述基准偏移量、所述虚拟网络标识和所述组播组IP地址的报文。
9.根据权利要求4-8任一所述的方法,其中,基于所述组播组标识、各所述端口对应的所述组播组成员的序号以及所述组播组成员信息表,获取各所述端口对应的组播组成员的信息,包括:
基于所述组播组标识、各所述端口对应的所述组播组成员的序号以及所述组播组成员信息表,获取各所述端口对应的组播组成员的IP地址、对应的宿主机的地址信息、媒体访问控制地址信息以及封装信息。
10.一种组播网关,采用包括有预设数量端口的可编程交换机实现,包括:
接收模块,用于接收报文;所述报文中携带虚拟网络标识和组播组IP地址;若所述组播网关非首次接收到交换机转发的所述报文时,所述报文中还携带基准偏移量;所述基准偏移量标识已组播的组播组成员数量;而若所述组播网关首次接收到交换机转发的所述报文时,认为所述基准偏移量的初始值为0;
获取模块,用于基于所述组播组实例表、所述虚拟网络标识和所述组播组IP地址,获取所述组播组标识和所述组播组成员的总数量;
组播模块,用于基于所述组播组的信息和预先建立的组播组成员信息表,通过所述组播网关的所述预设数量的端口,向所述组播组中的所有组播组成员组播所述报文;
所述组播模块,包括:
确定单元,用于基于所述组播网关的所述端口的所述预设数量以及当前待组播的所述组播组成员的剩余数量,确定本轮组播的所述组播组成员的本轮组播数量;所述组播组成员的剩余数量基于所述组播组成员的总数量和当前的所述基准偏移量确定;
镜像单元,用于将所述报文镜像所述本轮组播数量份;
组播单元,用于基于所述组播组标识和所述组播组成员信息表,通过所述组播网关的各所述端口,向所述本轮组播数量的组播组成员组播所述报文。
11.根据权利要求10所述的组播网关,其中,所述确定单元,用于:
若所述组播组成员的剩余数量大于或者等于所述预设数量,确定本轮组播的所述组播组成员的本轮组播数量等于所述预设数量;
若所述组播组成员的剩余数量小于所述预设数量,确定本轮组播的所述组播组成员的本轮组播数量等于所述组播组成员的剩余数量。
12.根据权利要求10所述的组播网关,其中,所述确定单元,还用于:
基于所述组播组成员的总数量和所述报文中携带的基准偏移量,确定当前待组播的所述组播组成员的剩余数量。
13.根据权利要求12所述的组播网关,其中,所述组播单元,用于:
获取本轮组播时,各所述端口对应的组播组成员的序号;
基于所述组播组标识、各所述端口对应的所述组播组成员的序号以及所述组播组成员信息表,获取各所述端口对应的组播组成员的信息;
基于各所述端口对应的组播组成员的信息,向对应的所述组播组成员发送所述报文。
14.根据权利要求13所述的组播网关,其中,所述组播单元,用于:
基于所述报文中携带的所述基准偏移量与所述组播网关的各端口的序号,确定各所述端口对应的组播组成员的序号。
15.根据权利要求10所述的组播网关,其中,所述组播单元,还用于:
若确定本轮组播后未完成所述组播组所有成员的组播时,更新所述报文中的所述基准偏移量;
向交换机发送携带所述基准偏移量、所述虚拟网络标识和所述组播组IP地址的报文。
16.根据权利要求15所述的组播网关,其中,所述组播单元,用于:
将所述报文中的所述基准偏移量累加所述预设数量。
17.根据权利要求15所述的组播网关,其中,所述组播单元,用于:
通过复用所述组播网关的任一端口,向所述交换机发送携带所述基准偏移量、所述虚拟网络标识和所述组播组IP地址的报文。
18.根据权利要求13-17任一所述的组播网关,其中,所述组播单元,用于:
基于所述组播组标识、各所述端口对应的所述组播组成员的序号以及所述组播组成员信息表,获取各所述端口对应的组播组成员的IP地址、对应的宿主机的地址信息、媒体访问控制地址信息以及封装信息。
19.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-9中任一项所述的方法。
20.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-9中任一项所述的方法。
CN202210729666.5A 2022-06-24 2022-06-24 报文组播方法、组播网关、电子设备及存储介质 Active CN115242733B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210729666.5A CN115242733B (zh) 2022-06-24 2022-06-24 报文组播方法、组播网关、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210729666.5A CN115242733B (zh) 2022-06-24 2022-06-24 报文组播方法、组播网关、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN115242733A CN115242733A (zh) 2022-10-25
CN115242733B true CN115242733B (zh) 2023-10-20

Family

ID=83669815

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210729666.5A Active CN115242733B (zh) 2022-06-24 2022-06-24 报文组播方法、组播网关、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN115242733B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016116939A1 (en) * 2015-01-19 2016-07-28 Hewlett-Packard Development Company, L.P. Engines to prune overlay network traffic
CN106209648A (zh) * 2015-05-04 2016-12-07 杭州华三通信技术有限公司 跨虚拟可扩展局域网的组播数据报文转发方法和设备
WO2017173989A1 (zh) * 2016-04-05 2017-10-12 中兴通讯股份有限公司 组播的分发处理方法、装置、系统及存储介质
WO2019033910A1 (zh) * 2017-08-14 2019-02-21 中兴通讯股份有限公司 多端口组播方法、设备及计算机可读存储介质
CN111262713A (zh) * 2020-01-03 2020-06-09 优刻得科技股份有限公司 一种报文组播的处理方法、处理装置、可读介质和系统
CN112367263A (zh) * 2020-10-30 2021-02-12 新华三技术有限公司 一种组播数据报文转发方法及设备
WO2021218026A1 (zh) * 2020-04-30 2021-11-04 平安科技(深圳)有限公司 基于sdn控制器在主机覆盖网络的组播方法、系统、设备及介质
CN113872847A (zh) * 2021-11-18 2021-12-31 浪潮思科网络科技有限公司 一种基于vxlan网络的报文转发方法、设备及介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016116939A1 (en) * 2015-01-19 2016-07-28 Hewlett-Packard Development Company, L.P. Engines to prune overlay network traffic
CN106209648A (zh) * 2015-05-04 2016-12-07 杭州华三通信技术有限公司 跨虚拟可扩展局域网的组播数据报文转发方法和设备
WO2017173989A1 (zh) * 2016-04-05 2017-10-12 中兴通讯股份有限公司 组播的分发处理方法、装置、系统及存储介质
WO2019033910A1 (zh) * 2017-08-14 2019-02-21 中兴通讯股份有限公司 多端口组播方法、设备及计算机可读存储介质
CN111262713A (zh) * 2020-01-03 2020-06-09 优刻得科技股份有限公司 一种报文组播的处理方法、处理装置、可读介质和系统
WO2021218026A1 (zh) * 2020-04-30 2021-11-04 平安科技(深圳)有限公司 基于sdn控制器在主机覆盖网络的组播方法、系统、设备及介质
CN112367263A (zh) * 2020-10-30 2021-02-12 新华三技术有限公司 一种组播数据报文转发方法及设备
CN113872847A (zh) * 2021-11-18 2021-12-31 浪潮思科网络科技有限公司 一种基于vxlan网络的报文转发方法、设备及介质

Also Published As

Publication number Publication date
CN115242733A (zh) 2022-10-25

Similar Documents

Publication Publication Date Title
US20190327345A1 (en) Method and apparatus for forwarding heterogeneous protocol message and network switching device
US9110884B2 (en) Message publishing and subscribing method and apparatus
CN112866111B (zh) 流表管理的方法和装置
CN115486046B (zh) 基于开放虚拟软交换机ovs的数据包处理方法及设备
CN106921578B (zh) 一种转发表项的生成方法和装置
CN114253979B (zh) 一种报文处理方法、装置及电子设备
EP3179687A1 (en) Network flow information statistics method and apparatus
CN114500633B (zh) 数据转发方法、相关装置、程序产品及数据传输系统
US8886913B2 (en) Apparatus and method for identifier management
CN117544587A (zh) 一种报文生成方法、装置、电子设备及存储介质
CN115242733B (zh) 报文组播方法、组播网关、电子设备及存储介质
CN111405007A (zh) Tcp会话管理方法、装置、存储介质及电子设备
CN114338529B (zh) 五元组规则匹配方法及装置
CN112511440B (zh) 报文转发方法、系统、存储介质和电子设备
CN107707480B (zh) 一种报文转发方法及装置
CN114827055B (zh) 数据镜像的方法、装置、电子设备及交换机集群
CN114793234B (zh) 消息处理方法、装置、设备和存储介质
CN115484210B (zh) 拥塞窗口的确定方法、装置与系统
CN114449031B (zh) 信息获取方法、装置、设备和存储介质
US11811643B2 (en) System and method for managing computing resources
CN115396367B (zh) 流量调度方法、装置、电子设备及存储介质
CN115988574B (zh) 基于流表的数据处理方法、系统、设备和存储介质
CN114567687B (zh) 报文转发方法、装置、设备、介质及程序产品
CN113114569B (zh) 数据流卸载的方法和装置
CN114189486A (zh) Vxlan的转发表聚合方法、装置、设备及存储介质

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