CN114567592B - 基于fpga加速器的组播转发方法、装置及组播路由器 - Google Patents
基于fpga加速器的组播转发方法、装置及组播路由器 Download PDFInfo
- Publication number
- CN114567592B CN114567592B CN202210148585.6A CN202210148585A CN114567592B CN 114567592 B CN114567592 B CN 114567592B CN 202210148585 A CN202210148585 A CN 202210148585A CN 114567592 B CN114567592 B CN 114567592B
- Authority
- CN
- China
- Prior art keywords
- polling
- data message
- multicast
- forwarding
- network topology
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000004891 communication Methods 0.000 claims abstract description 51
- 230000000903 blocking effect Effects 0.000 claims abstract description 29
- 230000005540 biological transmission Effects 0.000 claims abstract description 17
- 238000004590 computer program Methods 0.000 claims description 7
- 230000008569 process Effects 0.000 abstract description 12
- 238000010586 diagram Methods 0.000 description 10
- 230000008859 change Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000000977 initiatory effect Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/16—Multipoint routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1042—Peer-to-peer [P2P] networks using topology management mechanisms
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例涉及一种基于FPGA加速器的组播转发方法、装置及组播路由器,该方法包括:当确定处于网络阻塞状态后,生成轮询数据报文;根据轮询数据报文,获取基于FPGA加速器点对点通信的网络拓扑结构;从网络拓扑结构中选择最优数据转发路径;将待转发的数据报文通过最优数据转发路径,转发到目的地址。该过程中,充分考虑到FPGA加速器不仅可接入组播路由器,也可与其他组播路由器下的其他FPGA加速器实现高速互联,进而实现FPGA加速器点对点通信。为处于网络阻塞等状态的组播路由器提供了更加多元的组播转发选择。以解决面组播网络中常见的组播路由器网络阻塞,导致数据传输延误等的问题。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种基于FPGA加速器的组播转发方法、装置及组播路由器。
背景技术
IP组播采用的是组播路由协议,在接收方和发送方(组播源)之间逐跳建立组播路由表项,通过在每个组播路由器上进行复制和中间网络节点的逐跳转发,直到接收方。在此过程中,会构建一个以发送者为根,以组播路由器和接收者为叶子的组播分发树。相应的组播报文从根节点开始朝着叶子方向,在每个组播路由器上进行复制,直到接收方。
在组播中信息的发送者称为“组播源”,信息接收者称为该信息的“组播组”,支持组播信息传输的路由器称为“组播路由器”。加入同一组播组的接收者成员广泛分布在网络中的任何子网,即“组播组”没有子网限制。此外,组播源不一定属于组播组,它向组播组发送数据,自己不一定是接收者。多个组播源可以同时向一个组播组发送报文。但是,当组播源和待传输的网络数据包均增多时,组播路由器容易出现缓存阻塞,进而导致整个网络阻塞情况的发生。而且一旦正在运行的组播路由器出现故障,则该组播路由器的分支树下接入的终端的组播业务同样受到影响。
发明内容
本申请提供了一种基于FPGA加速器的组播转发方法、装置及组播路由器,以解决现有技术中上述部分或全部技术问题。
第一方面,本申请提供了一种基于FPGA加速器的组播转发方法,该方法由组播路由器执行,该方法包括:
当确定处于网络阻塞状态后,生成轮询数据报文;
根据轮询数据报文,获取基于现场可编程逻辑门阵列(Field Programmable GateArray,简称FPGA)加速器点对点通信的网络拓扑结构;
从网络拓扑结构中选择最优数据转发路径;
将待转发的数据报文通过最优数据转发路径,转发到目的地址。
第二方面,本申请提供了一种基于FPGA加速器的组播转发装置,该装置包括:
生成模块,用于当确定处于网络阻塞状态后,生成轮询数据报文;
获取模块,用于根据轮询数据报文,获取基于FPGA加速器点对点通信的网络拓扑结构;
选择模块,用于从网络拓扑结构中选择最优数据转发路径;
发送模块,用于将待转发的数据报文通过最优数据转发路径,转发到目的地址。
第三方面,提供了一种组播路由器,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现第一方面任一项实施例的基于FPGA加速器的组播转发方法的步骤。
第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如第一方面任一项实施例的基于FPGA加速器的组播转发方法的步骤。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:
本申请实施例提供的该方法,当组播路由器确定目前处于网络阻塞状态时,可以生成轮询数据报文,用以对其所在的节点树中的旗下的分支节点进行轮询,用以获取基于FPGA加速器点对点通信的网络拓扑结构,然后从网络拓扑结构中选择最优数据转发路径。然后将带转发的数据报文通过最优数据转发路径,转发到目的地。该过程中,充分考虑到FPGA加速器不仅可接入组播路由器,也可与其他组播路由器下的其他FPGA加速器实现高速互联,进而实现FPGA加速器点对点通信。为处于网络阻塞等状态的组播路由器提供了更加多元的组播转发选择。以解决面组播网络中常见的组播路由器网络阻塞,导致数据传输延误等的问题。
附图说明
图1为本发明实施例提供的一种基于FPGA加速器的组播转发方法流程示意图;
图2为本发明提供的FPGA加速器的内核结构示意图;
图3为本发明提供的根据轮询数据报文,获取基于FPGA加速器点对点通信的网络拓扑结构的方法流程示意图;
图4本发明提供的通过有向图描述一个分布式FPGA加速器集群中的部分组播网络拓扑示意图;
图5为本发明提供的路径二所示的点对点通信路径会添加到组播网络拓扑中,得到多元组播网络拓扑图;
图6为本发明实施例提供的一种基于FPGA加速器的组播转发装置结构示意图;
图7为本发明实施例提供一种组播路由器结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为便于对本发明实施例的理解,下面将结合附图以具体实施例做进一步的解释说明,实施例并不构成对本发明实施例的限定。
针对背景技术中所提及的技术问题,本申请实施例提供了一种基于FPGA加速器的组播转发方法,具体参见图1所示,图1为本发明实施例提供的一种基于FPGA加速器的组播转发方法流程示意图。具体的在介绍本发明实施例的方法步骤之前,首先介绍如下内容。
本发明提供的基于FPGA加速器的组播方法中的系统架构,可以适用于分布式FPGA加速器集群的多元组播架构。充分考虑分布式FPGA加速器集群进行组播数据包转发时的网络拓扑结构,引入FPGA虚拟化技术和FPGA加速器内核间通信技术,丰富了现有的组播网络的拓扑结构,形成一种可以融合FPGA加速器点对点通信网络的多元组播网络。在本实施例中,将FPGA加速器的内核按序划分为应用计算子内核、逻辑控制子内核和数据收发子内核。具体参见图2所示,图2示意出了FPGA加速器的内核结构示意图。以上三个子内核可并行运行其内核程序,也可互相通过内部的PCIe总线进行指令和数据传输。进而确保了轮询数据报文和反馈数据报文的正常处理。
需要说明的是,在本发明实施例中,所有的FPGA加速器、服务器等网络终端均通过路由器接入网络。
每个FPGA加速器是否与其他FPGA加速器之间互联以实现点对点通信取决于当前FPGA加速器在集群中所承担的计算任务和网络任务。其主要是考虑到当计算任务和网络任务过多时,FPGA加速器默认处于阻塞状态,因此会导致后续的轮询无法继续进行。所以,该节点也即是下文中即将提及的符合预设结束轮询条件的节点之一。
而且,在组播架构中,并不是所有的路由器都是组播路由器,也存在不具备组播功能的简单路由器。简单的路由器不具备复制功能,仅仅是具有普通的路由器的转发功能等。
下面,将详细介绍本发明实施例的具体实现过程,具体参见如下,该方法步骤包括:
步骤110,当确定处于网络阻塞状态后,生成轮询数据报文。
具体的,组播路由器确定是否处于网络阻塞的状态的方法步骤为现有技术,这里不做过多说明。而在确定处于网络阻塞状态后,则会生成轮询数据报文,用以后续根据轮询数据报文,获取基于FPGA加速器点对点通信的网络拓扑结构。
具体而言,作为一种软硬件架构相对简单的网络设备,FPGA加速器在网络安全保护能力方面相较于服务器等相对较弱。因此协助组播路由器转发之前,FPGA加速器点对点通信架构的详细网络拓扑对于组播路由器而言是不可知的。当组播路由器处于网络阻塞等状态需要协助时,会发送轮询数据报文获得分支树下的FPGA加速器点对点通信网络的拓扑架构。
步骤120,根据轮询数据报文,获取基于FPGA加速器点对点通信的网络拓扑结构。
具体的执行过程参见图3所示,可以包括:
步骤310,将轮询数据报文下发至组播路由器下的分支节点树中所有节点。
在一个可选的例子中,轮询数据报文的字段、字段内容,以及字段内容的释义等可以参见表1所示,包括但不限于如下字段:组播路由器发送时间戳send_t,轮询最大等待时间wait_max_t,反向转发字段send_dir,最高轮询次数loop_nb,每个FPGA加速器的ip地址信息ip_arr,以及代表轮询后进行反向转发时遍历过的FPGA加速器(和路由器)的数量。
表1
组播路由器下的分子节点树中的每一个节点(至少包括FPGA加速器,当然也有可能包括路由器)接收到轮询数据报文后,通过FPGA点对点通信网络,执行轮询转发工作。由此获取与发起轮询的组播路由器直接(或间接)相连接的FPGA加速器的多条点对点通信网络的数据转发路径。而每一个节点轮询后,会自动更新轮询数据报文。
当分支节点树中任一节点符合预设轮询结束条件时,则结束轮询并生成网络拓扑结构。
在一个可选的例子中,预设轮询结束条件可以包括:
在任一节点的轮询时间超过预设时间阈值,或者当轮询到任一节点后,轮询次数超过预设次数阈值。
其中,预设时间阈值,也即是表1中的轮询最大等待时间字段对应的时间,而预设次数阈值,则是表1中的最高轮询次数对应的次数数值。
在一个可执行的例子中,具体的轮询过程,以及对于轮询数据报文的更新等,可以参见如下介绍:
首先,在进行转发之前,为保证轮询质量,本发明中通过轮询最大等待时间wait_max_t来避免待轮询的FPGA加速器(或路由器)处于忙碌或阻塞状态。与此同时,为避免轮询路径中FPGA加速器(或路由器)过多,本发明中通过最高轮询次数loop_nb来限制最大轮询次数。其中,限制最大等待时间和最高轮询次数,都是为了避免时间成本高于组播路由器的阻塞时间。
为保证以秒为最小单位的轮询数据报文中发送时间戳send_t的准确性,在组播路由器发送报文前5毫秒,组播路由器会将会记录一个本地时间作为发送时间戳send_t的值。与此同时,会将其IP地址的值转化为32位二进制值,并将其从ip_arr中第一个空白位开始存入。代表数据报文转发方向的send_dir值会设置为0(0代表数据报文未进行反向转发)。wait_max_t值(轮询最大等待时间)和loop_nb(代表可允许的最高轮询次数)值也会按照需要设置为相应数值。
其次,当FPGA加速器在接收和转发轮询数据报文时,逻辑控制子内核会读取报文中的轮询最大等待时间和代表数据报文转发方向的字段send_dir的字段值,并启动一个计时器从0计算。当在进行接收和转发轮询数据报文时,send_dir为0。反之,在进行反馈数据报文的反向转发时,send_dir为1(该部分将在后续介绍)。在接收和转发轮询数据报文此过程中,存在如下三种情况:
第一种情况,当达到轮询最大等待时间wait_max_t时,FPGA加速器的数据收发子内核仍处于忙碌状态或路由器处于网络阻塞状态,则当前FPGA加速器的逻辑控制子内核(或路由器)会将轮询数据报文中的rever_nb和send_dir字段分别设置为1,send_dir置为1,表示开始进行反向转发。其原因就在于当前轮询的FPGA加速器处于网络堵塞状态,无法进行下一个节点的轮询,已经符合预设轮询结束条件。而将rever_nb置为1,则表示完成轮询后进行反向转发时遍历过的FPGA加速器(和路由器)的数量为1。
将代表可允许的最高轮询次数的字段loop_nb的字段值设置为loop_nb-1。将当前FPGA加速器(或路由器)的IP地址的值转化为32位二进制值,并将其从ip_arr中第一个空白位开始存入。读出ip_arr中的倒数第2个IP地址(反向传输,当前处于阻塞状态的FPGA加速器的地址信息为ip_arr中的倒数第一地址,那么它上一个节点对应的ip地址信息,即为倒数第二个地址)。
然后开始向发起轮询的组播路由器反向传输,以得到包含点对点通信转发路径信息的反馈数据报文。
可选的,反馈数据报文中的字段与轮询数据报文中的字段相同,而反馈数据报文中的字段内容,则是在最后一次更新后的轮询数据报文字段内容的基础上,经过每一次的反向传输,做适应性调整。
因此,反馈数据报文的字段同样是包括但不限于表1中的字段,例如包括:组播路由器发送时间戳、轮询时间对应的预设时间阈值、轮询次数对应的预设次数阈值、反向转发字段、轮询过的FPGA加速器的地址信息,以及轮询过的FPGA加速器的数量。
具体的,在a)种情况下反馈数据报文的反向转发分为以下三步:
(1)在开始首次反向传输得到的反馈数据报文时,报文头中的下一跳转发的目的地址设置为读出的IP地址。而反馈数据报文的报文体设置为本步骤中修改的轮询数据报文中的报文体。
(2)在后续反向转发反馈数据报文直到传输至发起轮询的组播路由器之前,每一跳FPGA加速器的反馈数据报文体中代表完成轮询后进行反向转发时遍历过的FPGA加速器(和路由器)数量的字段rever_nb的值将修改为rever_nb+1(比如本次情况中首个是1,那么下一个即为rever_nb+1=2)。然后将ip_arr中实际包含的倒数第rever_nb个IP地址信息(也可以理解为反向的第rever_nb个IP地址信息),作为反馈数据报文头中的下一跳转发的目的地址。以上过程,均需在FPGA加速器的数据收发子内核中进行。
(3)组播路由器收到反馈数据报文时,读取send_t代表的轮询发送时间戳的值,并用收到反馈数据报文的时间的数值减去send_t的值,就可得到本次轮询实际使用的时间。而读取ip_arr中的IP地址即可得到其中一条点对点通信网络的数据转发路径。
而得到本次轮询实际使用的时间,是为了后续选择最佳数据转发路径时使用。
第二种情况,若当前最大轮询次数loop_nb值为0时,也即是已经达到最大轮询次数,同样是符合预设轮询结束条件。
此时,将当前FPGA加速器(或路由器)的IP地址的值转化为32位二进制值,并将其从ip_arr中第一个空白位开始存入。将轮询数据报文中的rever_nb和send_dir字段设置为1。然后,开始向发起轮询的组播路由器反向传输得到包含点对点通信转发路径信息的反馈数据报文。
具体步骤分为如下三步:
(1)首次开始反馈数据报文的转发时,将ip_arr在代表倒数第2个FPGA加速器(或路由器)IP地址信息作为反馈数据报文的目的地址。而反馈数据报文的报文体设置为本步骤中修改的轮询数据报文中的报文体。
(2)在后续反向转发反馈数据报文直到传输至发起轮询的组播路由器之前,每一跳FPGA加速器的反馈数据报文体中rever_nb的值将修改为rever_nb+1。然后将ip_arr中实际包含的倒数第rever_nb+1个IP地址信息,作为反馈数据报文头中的下一跳转发的目的地址。以上过程,均需在FPGA加速器的数据收发子内核(或路由器)中进行。
(3)组播路由器收到反馈数据报文时,读取send_t代表的轮询发送时间戳的值,并用收到反馈数据报文的时间的数值减去send_t的值,就可得到本次轮询实际使用的时间。而读取ip_arr中的IP地址即可得到其中一条点对点通信网络的数据转发路径。
第三种情况,若当前最大轮询次数loop_nb值大于0,且在小于wait_max_t(轮询最大等待时间)时,说明不符合预设轮询结束条件。
数据收发子内核(或路由器)处于空闲状态,数据收发子内核(或路由器)会将当前FPGA加速器IP地址转化为32位二进制值,并将此IP地址值从ip_arr中第一个空白位开始存入。此外,会将轮询数据报文中loop_nb(代表可允许的最高轮询次数)值减1。然后判断是否存在可转发的FPGA加速器(或路由器),其主要考虑到FPGA虽然有两个光口,其中一个光口负责与路由器相连。而另一个光口未必与其他FPGA加速器相连实现点对点通信。所以需要确定另外一个光口是否与其他FPGA加速器相连。
若存在可转发的FPGA加速器(或路由器),则继续进行转发,下一跳FPGA加速器会继续执行上述步骤,即判断属于如上所介绍的第一种情况、第二种情况,还是第三种情况,并执行与上述三种情况中符合的那种情况的相同或类似的步骤。
需要说明的是,当路由器中存在多个与其直接相连的FPGA加速器或路由器时,他们要转发的轮询数据报文体的内容均相同。
若不存在下一步可转发的FPGA加速器(或路由器),将轮询数据报文中的rever_nb和send_dir字段设置为1。然后,开始向发起轮询的组播路由器反向传输得到包含点对点通信转发路径信息的反馈数据报文。具体操作与第二种情况中的反向传输3个步骤相同。
步骤320,获取符合预设轮询结束条件的节点反馈的网络拓扑结构。
具体的,经过步骤310中的所有操作后,发起轮询的组播路由器可以得到携带点对点通信网络拓扑信息的众多反馈数据报文。
根据数据反馈报文,则可以获取网络拓扑结构。包括点对点通信转发路径信息,以及本次轮询实际使用的时间等。
也即是,网络拓扑结构图中包括多条数据转发路径,以及每一条数据转发路径对应的轮询总时间以及反馈数据报文的传输时间。
步骤130,从网络拓扑结构中选择最优数据转发路径。
在一个可选的例子中,可以通过如下方式获取最优数据转发路径,具体包括:
根据每一条数据转发路径对应的轮询总时间,以及反馈数据报文的传输时间,从网络拓扑结构中选择最优数据转发路径。
根据已知的路径信息及时间信息,处于网络阻塞状态的组播路由器可以从公平性和组播报文时延敏感性等多个维度考虑,选择出最优的转发路径。而具体的选择机制则为现有技术,这里不再过多说明。
步骤140,将待转发的数据报文通过最优数据转发路径,转发到目的地址。
具体的,在获取到最优数据转发路径后,将待转发的数据报文转发到目的地址,用以缓解组播路由器的拥塞问题。
图4示意出了通过有向图来描述一个分布式FPGA加速器集群中的部分组播网络拓扑。其中,数值单位为秒。数值的含义代表传输10G数据时,不同网络节点(FPGA加速器、路由器和服务器)等所花费的时间。
具体参见图4所示,仅有的一台服务器为组播源服务器,1#组播路由器为陷入网络阻塞状态的组播路由器,2#组播路由器为其下一跳的组播路由器。现有的组播技术中,普通路由器也可协助组播报文的分发,因此,本发明使用1#普通路由器。
此外,图4中还示出了FPGA虚拟化的4台FPGA加速器。假设1#FPGA加速器的数据收发子内核陷入死锁,其他FPGA加速器的数据收发子内核均处于空闲状态。
考虑到多元组播转发机制进行轮询之前,FPGA加速器之间的点对点通信网络对于组播路由器和服务器而言是未知1的。因此,首先需要进行轮询数据报文初始化。假定初始化结果如表2所示。
表2
表2中按序字段看出,组播路由器发送的时间戳为00:00:00,轮询最大等待时间为10秒,当前轮询数据报文并未执行反向转发,允许最高轮询次数为4次。目前轮询过的FPGA加速器包括2个,第二个FPGA加速器已经进入死锁状态。最后的字段0则代表正在进行轮询。
结合图4可知,由于1#组播路由器阻塞,因此1#组播路由器和2#组播路由器之间的组播转发无法进行。目前能够实现数据转发的点对点通信路径有两条,路径描述如下:
路径一:1#组播路由器->1#FPGA加速器->4#FPGA加速器->1#普通路由器->2#组播路由器
路径二:1#组播路由器->2#FPGA加速器->3#FPGA加速器->2#组播路由。
结合表2,及上文所提及的方案内容,按照所提出的多元组播转发机制进行轮询数据报文和反馈数据报文的描述。
针对路径一,当1#组播路由器将如表2所示的数据报文转发给1#组播路由器时,由于1#组播路由器陷入死锁。因此,此路径无法到达2#组播路由器,因此第1)条路径无法使用。由于轮询数据报文和反馈数据报文体的字段及其含义相同,因此详细的轮询数据报文及反馈数据报文变化如表3所示。
表3
针对路径二,如表4和表5所示的轮询数据报文和反馈数据报文变化可知,wait_max_t和loop_nb均未到0。因此可知,路径二所示的点对点通信路径会添加到组播网络拓扑中,得到多元组播网络拓扑图,具体如表所示。
表4路径二轮询数据报文变化情况表
表5路径二反馈数据报文变化情况表
其中,表3至表5中的参数均是通过上文所描述的方法步骤获取的,这里不再过多赘述。其中,表4为路径二轮询数据报文变化情况表,表5为路径二反馈数据报文变化情况表。
由上可知,当组播路由器的转发原则为时延敏感时,从1#组播路由器到2#组播路由器的替代最优转发路径如路径二所示。
本发明实施例提供的基于FPGA加速器的组播转发方法,当组播路由器确定目前处于网络阻塞状态时,可以生成轮询数据报文,用以对其所在的节点树中的旗下的分支节点进行轮询,用以获取基于FPGA加速器点对点通信的网络拓扑结构,然后从网络拓扑结构中选择最优数据转发路径。然后将带转发的数据报文通过最优数据转发路径,转发到目的地。该过程中,充分考虑到FPGA加速器不仅可接入组播路由器,也可与其他组播路由器下的其他FPGA加速器实现高速互联,进而实现FPGA加速器点对点通信。为处于网络阻塞等状态的组播路由器提供了更加多元的组播转发选择。以解决面组播网络中常见的组播路由器网络阻塞,导致数据传输延误等的问题。
以上,为本申请所提供的基于FPGA加速器的组播转发方法实施例,下文中则介绍说明本申请所提供的基于FPGA加速器的组播转发其他实施例,具体参见如下。
图6为本发明实施例提供的一种基于FPGA加速器的组播转发装置,该装置包括:生成模块601、获取模块602、选择模块603以及发送模块604。
生成模块601,用于当确定处于网络阻塞状态后,生成轮询数据报文;
获取模块602,用于根据轮询数据报文,获取基于FPGA加速器点对点通信的网络拓扑结构;
选择模块603,用于从网络拓扑结构中选择最优数据转发路径;
发送模块604,用于将待转发的数据报文通过最优数据转发路径,转发到目的地址。
可选的,发送模块604,还用于将轮询数据报文下发至组播路由器下的分支节点树中所有节点,以便每一个节点在接收到轮询数据报文后,根据轮询数据报文进行轮询并在每一个节点轮询后,更新轮询数据报文,且当分支节点树中任一节点符合预设轮询结束条件时,结束轮询并生成网络拓扑结构;
获取符合预设轮询结束条件的节点反馈的网络拓扑结构,其中,节点至少包括FPGA加速器。
可选的,预设轮询结束条件包括:
在任一节点的轮询时间超过预设时间阈值,或者当轮询到任一节点后,轮询次数超过预设次数阈值。
可选的,获取模块602具体用于,将网络拓扑结构以反馈数据报文的形式,反馈至组播路由器。
可选的,反馈数据报文中的字段与轮询数据报文中的字段相同。
可选的,反馈数据报文的字段包括:组播路由器发送时间戳、轮询时间对应的预设时间阈值、轮询次数对应的预设次数阈值、反向转发字段、轮询过的FPGA加速器的地址信息,以及轮询过的FPGA加速器的数量。
可选的,网络拓扑结构图中包括多条数据转发路径,以及每一条数据转发路径对应的轮询总时间以及反馈数据报文的传输时间;
选择模块603,具体用于根据每一条数据转发路径对应的轮询总时间,以及反馈数据报文的传输时间,从网络拓扑结构中选择最优数据转发路径。
本发明实施例提供的基于FPGA加速器的组播转发装置中各部件所执行的功能均已在上述任一方法实施例中做了详细的描述,因此这里不再赘述。
本发明实施例提供的一种基于FPGA加速器的组播转发装置,当组播路由器确定目前处于网络阻塞状态时,可以生成轮询数据报文,用以对其所在的节点树中的旗下的分支节点进行轮询,用以获取基于FPGA加速器点对点通信的网络拓扑结构,然后从网络拓扑结构中选择最优数据转发路径。然后将带转发的数据报文通过最优数据转发路径,转发到目的地。该过程中,充分考虑到FPGA加速器不仅可接入组播路由器,也可与其他组播路由器下的其他FPGA加速器实现高速互联,进而实现FPGA加速器点对点通信。为处于网络阻塞等状态的组播路由器提供了更加多元的组播转发选择。以解决面组播网络中常见的组播路由器网络阻塞,导致数据传输延误等的问题。
如图7所示,本申请实施例提供了一种组播路由器,包括处理器111、通信接口112、存储器113和通信总线114,其中,处理器111,通信接口112,存储器113通过通信总线114完成相互间的通信。
存储器113,用于存放计算机程序;
在本申请一个实施例中,处理器111,用于执行存储器113上所存放的程序时,实现前述任意一个方法实施例提供的基于FPGA加速器的组播转发方法,包括:
当确定处于网络阻塞状态后,生成轮询数据报文;
根据轮询数据报文,获取基于FPGA加速器点对点通信的网络拓扑结构;
从网络拓扑结构中选择最优数据转发路径;
将待转发的数据报文通过最优数据转发路径,转发到目的地址。
可选的,将轮询数据报文下发至组播路由器下的分支节点树中所有节点,以便每一个节点在接收到轮询数据报文后,根据轮询数据报文进行轮询并在每一个节点轮询后,更新轮询数据报文,且当分支节点树中任一节点符合预设轮询结束条件时,结束轮询并生成网络拓扑结构;
获取符合预设轮询结束条件的节点反馈的网络拓扑结构,其中,节点至少包括FPGA加速器。
可选的,预设轮询结束条件包括:在任一节点的轮询时间超过预设时间阈值,或者当轮询到任一节点后,轮询次数超过预设次数阈值。
可选的,将网络拓扑结构以反馈数据报文的形式,反馈至组播路由器。
可选的,反馈数据报文中的字段与轮询数据报文中的字段相同。
可选的,反馈数据报文的字段包括:组播路由器发送时间戳、轮询时间对应的预设时间阈值、轮询次数对应的预设次数阈值、反向转发字段、轮询过的FPGA加速器的地址信息,以及轮询过的FPGA加速器的数量。
可选的,网络拓扑结构图中包括多条数据转发路径,以及每一条数据转发路径对应的轮询总时间以及反馈数据报文的传输时间;
从网络拓扑结构中选择最优数据转发路径,具体包括:
根据每一条数据转发路径对应的轮询总时间,以及反馈数据报文的传输时间,从网络拓扑结构中选择最优数据转发路径。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如前述任意一个方法实施例提供的基于FPGA加速器的组播转发方法的步骤。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (9)
1.一种基于FPGA加速器的组播转发方法,其特征在于,所述方法由组播路由器执行,所述方法包括:
当确定处于网络阻塞状态后,生成轮询数据报文;
根据所述轮询数据报文,获取基于FPGA加速器点对点通信的网络拓扑结构;
从所述网络拓扑结构中选择最优数据转发路径;
将待转发的数据报文通过所述最优数据转发路径,转发到目的地址;
其中,所述根据所述轮询数据报文,获取基于FPGA加速器点对点通信的网络拓扑结构,具体包括:
将所述轮询数据报文下发至所述组播路由器下的分支节点树中所有节点,以便每一个节点在接收到所述轮询数据报文后,根据所述轮询数据报文进行轮询并在每一个节点轮询后,更新所述轮询数据报文,且当所述分支节点树中任一节点符合预设轮询结束条件时,结束轮询并生成网络拓扑结构;
获取符合所述预设轮询结束条件的节点反馈的所述网络拓扑结构,其中,所述节点至少包括FPGA加速器。
2.根据权利要求1所述的方法,其特征在于,所述预设轮询结束条件包括:
在任一节点的轮询时间超过预设时间阈值,或者当轮询到任一节点后,轮询次数超过预设次数阈值。
3.根据权利要求1或2所述的方法,其特征在于,将所述网络拓扑结构反馈至所述组播路由器,包括:
将所述网络拓扑结构以反馈数据报文的形式,反馈至所述组播路由器。
4.根据权利要求3所述的方法,其特征在于,反馈数据报文中的字段与所述轮询数据报文中的字段相同。
5.根据权利要求4所述的方法,其特征在于,所述反馈数据报文的字段包括:所述组播路由器发送时间戳、轮询时间对应的预设时间阈值、轮询次数对应的预设次数阈值、反向转发字段、轮询过的FPGA加速器的地址信息,以及轮询过的FPGA加速器的数量。
6.根据权利要求5所述的方法,其特征在于,所述网络拓扑结构图中包括多条数据转发路径,以及每一条数据转发路径对应的轮询总时间以及反馈数据报文的传输时间;
所述从所述网络拓扑结构中选择最优数据转发路径,具体包括:
根据每一条数据转发路径对应的轮询总时间,以及反馈数据报文的传输时间,从所述网络拓扑结构中选择最优数据转发路径。
7.一种基于FPGA加速器的组播转发装置,其特征在于,所述装置包括:
生成模块,用于当确定处于网络阻塞状态后,生成轮询数据报文;
获取模块,用于根据所述轮询数据报文,获取基于FPGA加速器点对点通信的网络拓扑结构;
选择模块,用于从所述网络拓扑结构中选择最优数据转发路径;
发送模块,用于将待转发的数据报文通过所述最优数据转发路径,转发到目的地址;
其中,所述发送模块,具体用于:
将所述轮询数据报文下发至组播路由器下的分支节点树中所有节点,以便每一个节点在接收到所述轮询数据报文后,根据所述轮询数据报文进行轮询并在每一个节点轮询后,更新所述轮询数据报文,且当所述分支节点树中任一节点符合预设轮询结束条件时,结束轮询并生成网络拓扑结构;
获取符合所述预设轮询结束条件的节点反馈的所述网络拓扑结构,其中,所述节点至少包括FPGA加速器。
8.一种组播路由器,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-6任一项所述的基于FPGA加速器的组播转发方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-6任一项所述的基于FPGA加速器的组播转发方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210148585.6A CN114567592B (zh) | 2022-02-17 | 2022-02-17 | 基于fpga加速器的组播转发方法、装置及组播路由器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210148585.6A CN114567592B (zh) | 2022-02-17 | 2022-02-17 | 基于fpga加速器的组播转发方法、装置及组播路由器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114567592A CN114567592A (zh) | 2022-05-31 |
CN114567592B true CN114567592B (zh) | 2023-08-04 |
Family
ID=81713527
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210148585.6A Active CN114567592B (zh) | 2022-02-17 | 2022-02-17 | 基于fpga加速器的组播转发方法、装置及组播路由器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114567592B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117149442B (zh) * | 2023-10-30 | 2024-02-20 | 山东浪潮数据库技术有限公司 | 一种基于分布式架构数据库的硬件加速方法及系统 |
CN117687943B (zh) * | 2024-02-04 | 2024-05-14 | 浪潮电子信息产业股份有限公司 | 一种加速设备、基于异构计算架构的系统及数据处理方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102647312A (zh) * | 2012-05-09 | 2012-08-22 | 浙江宇视科技有限公司 | 一种整网组播拓扑的探测方法及装置 |
CN111966496A (zh) * | 2020-08-21 | 2020-11-20 | 浪潮(北京)电子信息产业有限公司 | 数据处理方法、装置、系统及计算机可读存储介质 |
WO2022001152A1 (zh) * | 2020-07-03 | 2022-01-06 | 中兴通讯股份有限公司 | 信息通告、报文转发、报文消除方法、装置、设备和介质 |
-
2022
- 2022-02-17 CN CN202210148585.6A patent/CN114567592B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102647312A (zh) * | 2012-05-09 | 2012-08-22 | 浙江宇视科技有限公司 | 一种整网组播拓扑的探测方法及装置 |
WO2022001152A1 (zh) * | 2020-07-03 | 2022-01-06 | 中兴通讯股份有限公司 | 信息通告、报文转发、报文消除方法、装置、设备和介质 |
CN111966496A (zh) * | 2020-08-21 | 2020-11-20 | 浪潮(北京)电子信息产业有限公司 | 数据处理方法、装置、系统及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114567592A (zh) | 2022-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114567592B (zh) | 基于fpga加速器的组播转发方法、装置及组播路由器 | |
US20190327345A1 (en) | Method and apparatus for forwarding heterogeneous protocol message and network switching device | |
US7529199B1 (en) | System and method for resolving conflicts in proxy routing information associated with multicast distribution trees | |
US8243643B2 (en) | Active multicast information protocol | |
EP2835938B1 (en) | Message publishing and subscribing method and apparatus | |
US7936702B2 (en) | Interdomain bi-directional protocol independent multicast | |
KR101717000B1 (ko) | 패킷 처리를 위한 방법 및 장치 | |
EP3751805B1 (en) | Method and device for processing multicast data packet | |
WO2019085822A1 (zh) | 用于实现组播业务的方法和装置 | |
WO2017028398A1 (zh) | 通信处理方法和装置 | |
WO2020114512A1 (zh) | 组播报文的传输方法、第一网络设备和第二网络设备 | |
US11343153B2 (en) | BGP logical topology generation method, and device | |
CN110868353B (zh) | 一种报文处理方法及装置 | |
CN110868307B (zh) | 一种报文处理方法及装置 | |
CN109218182B (zh) | 一种路由信息的同步方法及装置 | |
WO2022089169A1 (zh) | 计算路由信息发送方法、装置、设备及存储介质 | |
JP6729845B2 (ja) | ネットワークシステム、パケット伝送装置、パケット伝送方法、及び情報処理プログラム | |
US20230353484A1 (en) | PCE for BIER-TE Path | |
US20240048483A1 (en) | PCE for BIER-TE Ingress Protection | |
WO2024045599A1 (zh) | 报文匹配方法、计算机设备和计算机可读存储介质 | |
US10797900B2 (en) | System and method of filtering control plane data | |
WO2020151461A1 (zh) | 对数据包进行路由的方法和装置 | |
Fenner et al. | RFC 7761: Protocol Independent Multicast-Sparse Mode (PIM-SM): Protocol Specification (Revised) | |
CN115277554A (zh) | 一种组播数据报文的传输方法和通信装置 | |
CN116319311A (zh) | 一种交换机批量升级方法、系统、电子设备及存储介质 |
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 |