CN117376274A - 组播包的复制方法及装置、存储介质及电子装置 - Google Patents

组播包的复制方法及装置、存储介质及电子装置 Download PDF

Info

Publication number
CN117376274A
CN117376274A CN202210765523.XA CN202210765523A CN117376274A CN 117376274 A CN117376274 A CN 117376274A CN 202210765523 A CN202210765523 A CN 202210765523A CN 117376274 A CN117376274 A CN 117376274A
Authority
CN
China
Prior art keywords
multicast
multicast packet
replication
packet
information
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.)
Pending
Application number
CN202210765523.XA
Other languages
English (en)
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.)
Sanechips Technology Co Ltd
Original Assignee
Sanechips 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 Sanechips Technology Co Ltd filed Critical Sanechips Technology Co Ltd
Priority to CN202210765523.XA priority Critical patent/CN117376274A/zh
Priority to PCT/CN2023/083747 priority patent/WO2024001340A1/zh
Publication of CN117376274A publication Critical patent/CN117376274A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/15Flow control; Congestion control in relation to multipoint traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/52Queue scheduling by attributing bandwidth to queues

Landscapes

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

Abstract

本发明公开了一种组播包的复制方法和装置、存储介质及电子装置,其中,上述方法包括:将待复制的组播包存入组播包复制队列中;从组播包复制队列中确定出目标指针所指向的待复制的第一组播包;查找第一组播包的组播成员信息,并获取第一组播包的第一组播复制信息;在等待接收第一组播包的组播成员信息的同时,将目标指针指向下一个待复制的第二组播包,以获取第二组播包的组播复制信息;在接收到第一组播包的全部组播成员信息的情况下,将携带第一组播复制信息的第一组播包移出组播包复制队列,采用上述技术方案,解决了由于组播表查表延时大于该组播包复制一次所用的时间导致无法做到全线速复制,进而造成带宽浪费的技术问题。

Description

组播包的复制方法及装置、存储介质及电子装置
技术领域
本发明实施例涉及通信领域,具体而言,涉及一种组播包的复制方法及装置、存储介质及电子装置。
背景技术
目前,在网络通讯过程中,存在需要将信息从源主机发送到网络中的其他多个目的主机的需求,为了不将信息发送到不需要该信息的主机导致带宽资源的浪费,需要在所有可能目的地中明确地选择部分目的主机发送,即组播。
相关技术中,在交换芯片中的组播报文查询组播成员并复制时,采用先复制完第一个包再复制下一个包的方式。在小包场景下,受限于组播表查询延时,当组播表查表延时大于该组播包复制一次所用时间时,则无法做到全线速复制,造成带宽的浪费。
针对相关技术中,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种组播包的复制方法及装置、存储介质及电子装置,以至少解决相关技术中,由于组播表查表延时大于该组播包复制一次所用的时间导致无法做到全线速复制,进而造成带宽浪费的技术问题。
根据本发明的一个实施例,提供了一种组播包的复制方法,包括:将待复制的组播包存入组播包复制队列中;从上述组播包复制队列中确定出目标指针所指向的待复制的第一组播包,其中,上述组播包复制队列包括至少两个待复制的组播包;查找上述第一组播包的组播成员信息,并获取上述第一组播包的第一组播复制信息;在等待接收上述第一组播包的组播成员信息的同时,将上述目标指针指向下一个待复制的第二组播包,以获取上述第二组播包的组播复制信息;在接收到上述第一组播包的全部组播成员信息的情况下,将携带上述第一组播复制信息的上述第一组播包移出上述组播包复制队列。
在一个示例性实施例中,上述查找上述第一组播包的组播成员信息包括:从上述第一组播包的包首标志中提取上述第一组播包的组播标识;发送基于上述第一组播包的组播标识生成的查询请求,其中,上述查询请求用于向组播复制信息表发起对组播成员信息的读请求查询;接收查找到的上述第一组播包的组播成员信息,并将查找到的上述第一组播包的组播成员信息整合进报文描述符中。
在一个示例性实施例中,在上述查找上述第一组播包的组播成员信息之后,还包括:在当前查找到的上述第一组播包的组播成员信息并非最后一个组播成员信息的情况下,将携带上述第一组播复制信息的上述目标组播包移出上述组播包复制队列,并将上述目标组播包的包体数据复制写入目标缓存中,其中,上述目标缓存中存储的组播包将被重新输入上述组播包复制队列中。
在一个示例性实施例中,在将上述目标组播包的包体数据复制写入目标缓存中之后,还包括:在没有新的待复制的组播包输入上述组播包复制队列的情况下,将上述目标缓存中存储的组播包输入上述组播包复制队列,其中,在上述目标缓存被清空之前,上述组播包复制队列将不会输入新的待复制的组播包。
在一个示例性实施例中,上述获取上述第一组播包的第一组播复制信息包括:发送查表请求,其中,上述查表请求用于请求基于查表地址获取组播复制信息;使用上述查表地址向组播复制信息表发起读请求;获取在上述组播复制信息表中查找到的一条或多条组播复制信息表项;将对上述一条或多条组播复制信息表项解析得到的上述第一组播复制信息打包发送给上述组播包复制队列。
在一个示例性实施例中,还包括:接收组播变更写请求,其中,上述组播变更写请求用于请求对上述组播复制信息表中已存的组播复制信息执行变更操作;暂存上述组播变更写请求,并开始实时监测上述组播包复制队列的组播复制进程;判断上述组播包复制队列中是否存在至少一个组播包参与复制;在存在至少一个组播包参与复制的情况下,记录接收到上述组播变更写请求时,尚未发发送的用于查询组播成员信息的查表请求的组播包的数量;在所述尚未发送的用于查询组播成员信息的查询请求的组播包全部发送查表请求的情况下,暂停发送上述查表请求,并按照暂存的上述组播变更写请求,将所请求的变更表项内容写入对应的写入地址。
在一个示例性实施例中,在将携带上述第一组播复制信息的上述第一组播包移出上述组播包复制队列时,还包括:对上述第一组播包中的组播信元地址进行回收;判断当前回收的组播信元地址是否处于等待总复制份数相同组播信元地址的读返回过程中;在处于等待上述总复制份数相同组播信元地址的读返回过程中,取消对上述当前回收的组播信元地址对应的组播信元的输出,并等待上述总复制份数读请求;在并未处于等待上述总复制份数相同组播信元地址的读返回过程中,以上述当前回收的组播信元地址为读地址向总复制份数发起读请求;以上述当前回收的组播信元地址为写地址,向上述写地址发起总复制份数写请求。
在一个示例性实施例中,在对上述第一组播包中的组播信元地址进行回收时,还包括:判断当前回收的组播信元地址是否处于等待已调度份数相同组播信元地址的读返回过程中;在处于等待已调度份数相同组播信元地址的读返回过程中,取消对上述当前回收的组播信元地址对应的组播信元的输出,并发起已调度份数和总复制份数的读请求;在并未处于等待已调度份数相同组播信元地址的读返回过程中,以上述当前回收的组播信元地址为读地址,同时向已调度份数和总复制份数发起读请求。
根据本发明的另一个实施例,提供了一种组播包的复制装置,包括:存入模块,用于将待复制的组播包存入组播包复制队列中;确定模块,用于从上述组播包复制队列中确定出目标指针所指向的待复制的第一组播包,其中,上述组播包复制队列包括至少两个待复制的组播包;查找模块,用于查找上述第一组播包的组播成员信息,并获取上述第一组播包的第一组播复制信息;获取模块,用于在等待接收上述第一组播包的组播成员信息的同时,将上述目标指针指向下一个待复制的第二组播包,以获取上述第二组播包的组播复制信息;移出模块,用于在接收到上述第一组播包的全部组播成员信息的情况下,将携带上述第一组播复制信息的上述第一组播包移出上述组播包复制队列。
根据本发明的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本发明,由于待复制的组播包可以轮流查询组播成员信息,不必再等待前一个包复制完全结束。每一个包复制出队时判断是否复制结束,如果没有复制结束,则继续回到复制队列与其他组播包轮流查询组播成员信息。因此,可以解决由于组播表查表延时大于该组播包复制一次所用的时间导致无法做到全线速复制,进而造成带宽浪费的技术问题,达到提高带宽利用率的技术效果。
附图说明
图1是根据本发明实施例的一种可选的组播包的复制方法的系统结构的示意图;
图2是根据本发明实施例的一种可选的组播包的复制方法的示意图;
图3是根据本发明实施例的一种可选的组播包的复制方法的流程图;
图4是根据本发明实施例的另一种可选的组播包的复制方法的示意图;
图5是根据本发明实施例的一种可选的组播包的复制装置的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本发明实施例中,提供了一种上述组播包的复制方法的实施例。作为一种可选的实施方式,该组播包的复制方法可以但不限于应用于如图1所示的系统结构中。
可选地,在本实施例中,如图1所示,该系统包含了“地址生成装置101”、“报文保序装置102”、“报文检查装置103”、“组播复制装置104”以及“净荷存储装置105”。
地址生成装置101:管理一套存储地址的链表,该存储地址与净荷存储装置中净荷存储地址相对应。当组播报文输入时,地址生成装置101为该组播包分配地址,并将组播包净荷数据存入净荷存储装置105中的对应地址空间。在组播报文从该系统输出之前,均用只携带组播包存储地址、组播标识等必要的报文描述符信息来代替该组播报文在其他装置中进行处理。
报文保序装置102:用于恢复组播包内部信元和组播包之间的排列顺序。这样在后续组播复制装置中104,可以保证同一组播包内所有信元复制行为相同,并且可以避免组播包间复制乱序。
报文检查装置103:用于检查组播包所携带报文描述符信息是否真实正确。对于检查错误的组播包,会直接丢弃。这样在后续组播复制装置104中,可以保证参与复制的组播包均为正确的组播包,避免错误组播包的复制无效地浪费带宽。
净荷存储装置105:用于存储组播包的净荷信息。当组播包携带组播复制信息准备从该系统输出时,该组播包需要提取出地址生成装置101分配的存储地址送给净荷存储装置,从而将组播包净荷提取出来。随后,完整的组播包即可携带组播复制信息从该系统输出。
组播复制装置104包括组播复制队列管理装置203、组播复制查表装置202、组播复制变更装置201、组播地址回收装置204。如图2所示,待复制的组播包首先进入组播复制队列管理装置203中排队等待复制,同时在包首信元中提取组播标识发往组播复制查表装置202查询组播复制信息。组播复制队列管理装置203接收到返回的组播复制信息后,组播包即可携带组播复制信息输出所在系统,在下级子系统中参与组播复制端口调度。完成组播复制端口调度的组播包原路返回至组播复制地址回收装置204中,随后将组播包送出至净荷存储装置105。与此同时,组播地址回收装置204会判断该组播包是否已经全部复制完毕,如果全部复制完成,则告知净荷存储装置105:该组播包内所有信元地址均可回收,可供其他待进入此系统的组播包使用。
在本实施例中提供了一种组播包的复制方法,图3是根据本发明实施例的组播包的复制方法的流程图,该流程包括如下步骤:
步骤S302,将待复制的组播包存入组播包复制队列中;
步骤S304,从组播包复制队列中确定出目标指针所指向的待复制的第一组播包,其中,组播包复制队列包括至少两个待复制的组播包;
步骤S306,查找第一组播包的组播成员信息,并获取第一组播包的第一组播复制信息;
步骤S308,在等待接收第一组播包的组播成员信息的同时,将目标指针指向下一个待复制的第二组播包,以获取第二组播包的组播复制信息;
步骤S310,在接收到第一组播包的全部组播成员信息的情况下,将携带第一组播复制信息的第一组播包移出组播包复制队列。
可选地,在本实施例中,为待复制的组播报文设置一个组播复制队列,该组播复制队列由数个寄存器构成,寄存器个数应该足够多,能够抵消一个组播包的查表延时。
可选地,在本实施例中,为组播复制队列设置查表指针,查表指针最开始指向队列首,当组播报文进入队列时,查表指针即从队列首开始提取组播包首标志。当组播复制队列无输出时,查表指针从队列首逐渐后移,提取组播包首标志;当组播复制队列有输出时,由于移位寄存器中数据不断前移,查表指针位置不变,不断从同一个寄存器中提取包首标志。组播复制信息可以包括但不限于出向端口号、全局封装索引号。
可选地,在本实施例中,经过固定的查表延时之后,排在队列首的组播包最先得到组播成员信息。其他组播包得到组播成员信息的时间间隔与之前发起查表请求的时间间隔保持一致。
可选地,在本实施例中,每次查表除了可以得到组播成员信息外,还会返回下一次查表的地址,如果下一次查表地址与此次查表地址相同,则表明此次返回的组播成员信息为最后一份组播成员信息。
可选地,在本实施例中,每个组播包出队的同时需要判断是否已将所有组播成员信息全部查出,在该组播包已经查到所有组播成员信息的情况下,携带此份复制信息出队后,即可结束复制。
通过本申请实施例提供的方案,将待复制的组播包存入组播包复制队列中;从组播包复制队列中确定出目标指针所指向的待复制的第一组播包,其中,组播包复制队列包括至少两个待复制的组播包;查找第一组播包的组播成员信息,并获取第一组播包的第一组播复制信息;在等待接收第一组播包的组播成员信息的同时,将目标指针指向下一个待复制的第二组播包,以获取第二组播包的组播复制信息;在接收到第一组播包的全部组播成员信息的情况下,将携带第一组播复制信息的第一组播包移出组播包复制队列。由于待复制的组播包可以轮流查询组播成员信息,不必再等待前一个包复制完全结束,提高了带宽利用率,解决了由于组播表查表延时大于该组播包复制一次所用的时间导致无法做到全线速复制,进而造成带宽浪费的技术问题。
在一个示例性实施例中,查找第一组播包的组播成员信息包括:从第一组播包的包首标志中提取第一组播包的组播标识;发送基于第一组播包的组播标识生成的查询请求,其中,查询请求用于向组播复制信息表发起对组播成员信息的读请求查询;接收查找到的第一组播包的组播成员信息,并将查找到的第一组播包的组播成员信息整合进报文描述符中。
可选地,在本实施例中,因为同一组播包内的信元切片复制行为完全相同,当查表指针检测到组播包首标志时即可从信元描述符中提取组播标识向组播复制信息表发起读请求查询组播成员信息,其中,一次读请求查询一个组播成员信息。该组播包将查到的组播成员信息整合进入报文描述符中即可出队。查询请求仅与查表指针所指寄存器中包首标志是否有效有关,如果队列出队被阻塞,查表指针会不断后移直至指向队列尾最后一个寄存器,然后停止。
通过本申请实施例提供的方案,基于组播标识查询组播成员信息,提高了查询的准确性。
在一个示例性实施例中,在查找第一组播包的组播成员信息之后,还包括:在当前查找到的第一组播包的组播成员信息并非最后一个组播成员信息的情况下,将携带第一组播复制信息的目标组播包移出组播包复制队列,并将目标组播包的包体数据复制写入目标缓存中,其中,目标缓存中存储的组播包将被重新输入组播包复制队列中。
可选地,在本实施例中,定义一个目标缓存fifo,为了保证每个组播包的包体连续性,该目标缓存fifo的深度应该大于一个最长组播包包含的信元个数。因为该组播包查表得到的下一次查表地址与此次查表地址并不相同,说明这个组播包并未查到最后一份组播成员信息。该组播包在携带此次复制信息出队的同时,需要将其包体数据复制一份写入该目标缓存fifo。对于写入目标缓存fifo的组播包包首信元,还需要用下一次查表地址来替换组播标识所在的位段。因为组播复制过程中组播包内容只包含在净荷存储装置中存放的地址信息,因此目标缓存fifo总大小很小。
通过本申请实施例提供的方案,在当前查找到的第一组播包的组播成员信息并非最后一个组播成员信息的情况下,将携带第一组播复制信息的目标组播包移出组播包复制队列,并将目标组播包的包体数据复制写入目标缓存中,保证了组播复制的准确性。
在一个示例性实施例中,在将目标组播包的包体数据复制写入目标缓存中之后,还包括:在没有新的待复制的组播包输入组播包复制队列的情况下,将目标缓存中存储的组播包输入组播包复制队列,其中,在目标缓存被清空之前,组播包复制队列将不会输入新的待复制的组播包。
可选地,在本实施例中,若队列此时并未从前一级模块输入一个新的待复制的组播包,则目标缓存fifo可将其中缓存的组播包数据读出至队列,在读出过程中,队列无法从前一级模块输入新的组播包,一直到目标缓存fifo清空为止。若队列此时正在输入一个新的待复制的组播包,则目标缓存fifo需要等待该组播包包尾输入至队列,才能发起读操作。
例如,如图4所示,步骤S401、组播包进入队列,查表指针逐一扫描组播包包首标志;步骤S402、从包首信元中提取组播标识发起查表;步骤S403、复制信息返回后,对应组播包即可出队;步骤S404、判断组播包是否查到尾份复制信息;若是,跳转到步骤S405,若否,跳转到步骤S406;步骤S405、该组播包结束复制;步骤S406、该组播包写入目标缓存;步骤S407、当队列未输入新的组播包时,从目标缓存读出组播包,并进入队列。
通过本申请实施例提供的方案,在没有新的待复制的组播包输入组播包复制队列的情况下,将目标缓存中存储的组播包输入组播包复制队列,可以保证组播包包体的连续性,还能避免一个组播包复制总耗时过长。
在一个示例性实施例中,获取第一组播包的第一组播复制信息包括:发送查表请求,其中,查表请求用于请求基于查表地址获取组播复制信息;使用查表地址向组播复制信息表发起读请求;获取在组播复制信息表中查找到的一条或多条组播复制信息表项;将对一条或多条组播复制信息表项解析得到的第一组播复制信息打包发送给组播包复制队列。
可选地,在本实施例中,组播复制队列发起查表请求后,将查表地址送给信息表进行查表。在不同的组播复制场景下,每份复制信息所占比特数可能不相同,受限于组播复制信息表RAM资源,一份复制信息可能需要对应多个地址,即对应多条表项。对于这种情况,需要将组播复制信息表RAM按深度划分为多块,将包含一份复制信息的多条表项分别配置于不同的信息表RAM块中,以方便这些表项能够同时读出。查表地址即对应于每份复制信息首条表项所存放的信息表RAM地址。
可选地,在本实施例中,使用查表地址向组播复制信息表RAM发起读请求(如果一份复制信息存放在多条表项中,还需要向多个信息表RAM块发起读请求)。在经历固定的RAM读延时后,得到一条或多条组播复制信息表表项。
可选地,在本实施例中,将一条或多条组播复制信息表表项送往解析模块进行解析,获得出向端口号以及全局封装索引号等组播复制信息。
可选地,在本实施例中,将组播复制信息打包送还给组播复制队列。因为组播复制队列可能因受到后级模块流控而无法顺利出队,此时组播复制信息需要在解析模块暂存起来。等待组播复制队列所受流控解除后,解析模块再将组播复制信息一份一份地送给组播复制队列。
通过本申请实施例提供的方案,获取在组播复制信息表中查找到的一条或多条组播复制信息表项;将对一条或多条组播复制信息表项解析得到的第一组播复制信息打包发送给组播包复制队列。可以通过解析获得组播复制信息。
在一个示例性实施例中,还包括:接收组播变更写请求,其中,组播变更写请求用于请求对组播复制信息表中已存的组播复制信息执行变更操作;暂存组播变更写请求,并开始实时监测组播包复制队列的组播复制进程;判断组播包复制队列中是否存在至少一个组播包参与复制;在存在至少一个组播包参与复制的情况下,记录接收到组播变更写请求时,尚未发发送的用于查询组播成员信息的查表请求的组播包的数量;在所述尚未发送的用于查询组播成员信息的查询请求的组播包全部发送查表请求的情况下,暂停发送查表请求,并按照暂存的组播变更写请求,将所请求的变更表项内容写入对应的写入地址。
可选地,在本实施例中,组播复制信息表中的表项内容均由配置总线下发,当配置总线对现存组播复制信息有新增、删除或变更的需求时,则向组播复制变更装置下发组播变更写请求,以及对应的写入地址和写入表项内容。
可选地,在本实施例中,组播复制变更装置接收到组播变更写请求后,并不直接将组播变更表项内容写入组播复制查表装置中,而是先暂存起来,开始组播复制变更预处理操作。
可选地,在本实施例中,组播变更表项内容暂存起来后,组播复制变更装置开始实时监测组播复制队列管理装置中组播复制进程,判断队列中是否还有组播包参与复制。
可选地,在本实施例中,在队列中还有组播包参与复制的情况下,记录下组播变更请求下发时,组播复制队列管理装置中尚未发起查表组播包的个数(即使用组播复制队列中组播包个数+目标缓存fifo中组播包个数-已发起查表等待复制信息返回的组播包个数)。
可选地,在本实施例中,在队列中没有组播包参与复制的情况下,判断从组播变更请求下发开始,组播复制队列管理装置发起查表请求的个数是否等于记录下的尚未发起查表的组播包个数。即判断是否所有组播包均已发起查表。
可选地,在本实施例中,暂停组播复制队列管理装置发起查表请求,将缓存中的组播变更写请求以及对应的写入地址和写入表项内容送给组播复制查表装置,由组播复制查表装置将变更表项内容写入信息表。
可选地,在本实施例中,组播复制变更装置等待缓存的组播变更写请求全部写入信息表后,即向组播复制队列管理装置告知组播变更流程结束,组播复制队列重启查表复制流程。
通过本申请实施例提供的方案,在没有组播包参与复制的情况下,暂停发送查表请求,并按照暂存的组播变更写请求,将所请求的变更表项内容写入对应的写入地址。确保了查表的准确性。
在一个示例性实施例中,在将携带第一组播复制信息的第一组播包移出组播包复制队列时,还包括:对第一组播包中的组播信元地址进行回收;判断当前回收的组播信元地址是否处于等待总复制份数相同组播信元地址的读返回过程中;在处于等待总复制份数相同组播信元地址的读返回过程中,取消对当前回收的组播信元地址对应的组播信元的输出,并等待总复制份数读请求;在并未处于等待总复制份数相同组播信元地址的读返回过程中,以当前回收的组播信元地址为读地址向总复制份数发起读请求;以当前回收的组播信元地址为写地址,向写地址发起总复制份数写请求。
可选地,在本实施例中,组播信元携带组播复制信息从组播队列管理模块输出到下级系统进行端口调度的同时,会将组播信元地址送到组播地址回收装置中,其中,端口调度即是根据端口号的优先级确定向多个目的主机发送携带不同端口号的组播包的顺序。
可选地,在本实施例中,定义两块大小相同的总复制份数RAM0和RAM1,用于记录每个信元地址的复制份数,RAM0和RAM1写使能、写地址以及写数据保持一致。判断此时是否处于等待总复制份数RAM0相同组播信元地址的读返回过程中。
可选地,在本实施例中,在处于等待总复制份数RAM0相同组播信元地址的读返回过程中的情况下,不为此次组播信元的输出发起总复制份数RAM0读请求,并用寄存器记录此次取消行为,等待总复制份数RAM0相同组播信元地址的读返回。
可选地,在本实施例中,在未处于等待总复制份数RAM0相同组播信元地址的读返回过程中的情况下,以该组播信元地址为读地址向总复制份数RAM0发起读请求。
可选地,在本实施例中,总复制份数RAM0的读出数据即为该组播信元已复制的份数。
可选地,在本实施例中,以该组播信元地址为写地址,以(该组播信元已复制的份数+等待读返回过程中取消读请求的个数+1)为写数据,向总复制份数RAM0和RAM1发起写请求。
通过本申请实施例提供的方案,以当前回收的组播信元地址为写地址,向写地址发起总复制份数写请求。可以记录下从组播队列管理模块输出到下级系统进行端口调度的组播包的数量。
在一个示例性实施例中,在对第一组播包中的组播信元地址进行回收时,还包括:判断当前回收的组播信元地址是否处于等待已调度份数相同组播信元地址的读返回过程中;在处于等待已调度份数相同组播信元地址的读返回过程中,取消对当前回收的组播信元地址对应的组播信元的输出,并发起已调度份数和总复制份数的读请求;在并未处于等待已调度份数相同组播信元地址的读返回过程中,以当前回收的组播信元地址为读地址,同时向已调度份数和总复制份数发起读请求。
可选地,在本实施例中,下级系统完成组播复制出向端口调度后,将组播信元内容原路返回至组播复制模块,送入组播地址回收装置。
可选地,在本实施例中,定义一块与总复制份数RAM1大小相同的已调度份数RAM,用于记录每个信元地址已参与调度的次数。该已调度份数RAM和总复制份数RAM1读使能、读地址均保持一致。判断此时是否处于等待已调度份数RAM相同组播信元地址的读返回过程中。
可选地,在本实施例中,在处于等待已调度份数RAM相同组播信元地址的读返回过程中的情况下,不为此次组播信元的输出发起已调度份数RAM和总复制份数RAM1读请求,并用寄存器记录此次取消行为,等待已调度份数RAM和总复制份数RAM1相同组播信元地址的读返回。
可选地,在本实施例中,在未处于等待已调度份数RAM相同组播信元地址的读返回过程中的情况下,以该组播信元地址为读地址同时向已调度份数RAM和总复制份数RAM1发起读请求。
可选地,在本实施例中,已调度份数RAM的读出数据即为该组播信元已复制的份数,总复制份数RAM1的读出数据即为该组播信元已完成调度的次数。
可选地,在本实施例中,写完一次之后判断已复制份数是否等于(已完成调度的次数+1)。
可选地,在本实施例中,在已复制份数等于(已完成调度的次数+1)的情况下,将该组播信元内容送回给净荷存储装置,同时给出地址回收标志,告知净荷存储装置该地址对应的信元已完成全部复制操作,可以释放。同时以该组播信元地址为写地址,0为写数据向已调度份数RAM发起写请求,避免影响该信元地址在净荷存储装置中的循环利用。
可选地,在本实施例中,在已复制份数不等于(已完成调度的次数+1)的情况下,将该组播信元内容送回给净荷存储装置。同时,以该组播信元地址为写地址,以(该组播信元已完成调度的次数+等待读返回过程中取消读请求的个数+1)为写数据,向已调度份数RAM发起写请求。
通过本申请实施例提供的方案,通过向已调度份数和总复制份数发起读请求,可以判断总的调度份数是否等于总的复制份数,即可以判断完成调度返回的组播包的份数是否等于进行端口调度的组播包的份数。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
在本实施例中还提供了一种组播包的复制装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图5是根据本发明实施例的一种组播包的复制装置的结构框图,如图5所示,该装置包括:
存入模块501,用于将待复制的组播包存入组播包复制队列中;
确定模块502,用于从组播包复制队列中确定出目标指针所指向的待复制的第一组播包,其中,组播包复制队列包括至少两个待复制的组播包;
查找模块503,用于查找第一组播包的组播成员信息,并获取第一组播包的第一组播复制信息;
获取模块504,用于在等待接收第一组播包的组播成员信息的同时,将目标指针指向下一个待复制的第二组播包,以获取第二组播包的组播复制信息;
移出模块505,用于在接收到第一组播包的全部组播成员信息的情况下,将携带第一组播复制信息的第一组播包移出组播包复制队列。
通过本申请实施例提供的方案,将待复制的组播包存入组播包复制队列中;从组播包复制队列中确定出目标指针所指向的待复制的第一组播包,其中,组播包复制队列包括至少两个待复制的组播包;查找第一组播包的组播成员信息,并获取第一组播包的第一组播复制信息;在等待接收第一组播包的组播成员信息的同时,将目标指针指向下一个待复制的第二组播包,以获取第二组播包的组播复制信息;在接收到第一组播包的全部组播成员信息的情况下,将携带第一组播复制信息的第一组播包移出组播包复制队列。由于待复制的组播包可以轮流查询组播成员信息,不必再等待前一个包复制完全结束,提高了带宽利用率,解决了由于组播表查表延时大于该组播包复制一次所用的时间导致无法做到全线速复制,进而造成带宽浪费的技术问题。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本发明的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (11)

1.一种组播包的复制方法,其特征在于,包括:
将待复制的组播包存入组播包复制队列中;
从所述组播包复制队列中确定出目标指针所指向的待复制的第一组播包,其中,所述组播包复制队列包括至少两个待复制的组播包;
查找所述第一组播包的组播成员信息,并获取所述第一组播包的第一组播复制信息;
在等待接收所述第一组播包的组播成员信息的同时,将所述目标指针指向下一个待复制的第二组播包,以获取所述第二组播包的组播复制信息;
在接收到所述第一组播包的全部组播成员信息的情况下,将携带所述第一组播复制信息的所述第一组播包移出所述组播包复制队列。
2.根据权利要求1所述的方法,其特征在于,所述查找所述第一组播包的组播成员信息包括:
从所述第一组播包的包首标志中提取所述第一组播包的组播标识;
发送基于所述第一组播包的组播标识生成的查询请求,其中,所述查询请求用于向组播复制信息表发起对组播成员信息的读请求查询;
接收查找到的所述第一组播包的组播成员信息,并将查找到的所述第一组播包的组播成员信息整合进报文描述符中。
3.根据权利要求1所述的方法,其特征在于,在所述查找所述第一组播包的组播成员信息之后,还包括:
在当前查找到的所述第一组播包的组播成员信息并非最后一个组播成员信息的情况下,将携带所述第一组播复制信息的所述目标组播包移出所述组播包复制队列,并将所述目标组播包的包体数据复制写入目标缓存中,其中,所述目标缓存中存储的组播包将被重新输入所述组播包复制队列中。
4.根据权利要求3所述的方法,其特征在于,在将所述目标组播包的包体数据复制写入目标缓存中之后,还包括:
在没有新的待复制的组播包输入所述组播包复制队列的情况下,将所述目标缓存中存储的组播包输入所述组播包复制队列,其中,在所述目标缓存被清空之前,所述组播包复制队列将不会输入新的待复制的组播包。
5.根据权利要求2所述的方法,其特征在于,所述获取所述第一组播包的第一组播复制信息包括:
发送查表请求,其中,所述查表请求用于请求基于查表地址获取组播复制信息;
使用所述查表地址向组播复制信息表发起读请求;
获取在所述组播复制信息表中查找到的一条或多条组播复制信息表项;
将对所述一条或多条组播复制信息表项解析得到的所述第一组播复制信息打包发送给所述组播包复制队列。
6.根据权利要求5所述的方法,其特征在于,还包括:
接收组播变更写请求,其中,所述组播变更写请求用于请求对所述组播复制信息表中已存的组播复制信息执行变更操作;
暂存所述组播变更写请求,并开始实时监测所述组播包复制队列的组播复制进程;
判断所述组播包复制队列中是否存在至少一个组播包参与复制;
在存在至少一个组播包参与复制的情况下,记录接收到所述组播变更写请求时,尚未发送的用于查询组播成员信息的查表请求的组播包的数量;
在所述尚未发送的用于查询组播成员信息的查询请求的组播包全部发送查表请求的情况下,暂停发送所述查表请求,并按照暂存的所述组播变更写请求,将所请求的变更表项内容写入对应的写入地址。
7.根据权利要求1所述的方法,其特征在于,在将携带所述第一组播复制信息的所述第一组播包移出所述组播包复制队列时,还包括:
对所述第一组播包中的组播信元地址进行回收;
判断当前回收的组播信元地址是否处于等待总复制份数相同组播信元地址的读返回过程中;
在处于等待所述总复制份数相同组播信元地址的读返回过程中,取消对所述当前回收的组播信元地址对应的组播信元的输出,并等待所述总复制份数读请求;
在并未处于等待所述总复制份数相同组播信元地址的读返回过程中,以所述当前回收的组播信元地址为读地址向总复制份数发起读请求;
以所述当前回收的组播信元地址为写地址,向所述写地址发起总复制份数写请求。
8.根据权利要求7所述的方法,其特征在于,在对所述第一组播包中的组播信元地址进行回收时,还包括:
判断当前回收的组播信元地址是否处于等待已调度份数相同组播信元地址的读返回过程中;
在处于等待已调度份数相同组播信元地址的读返回过程中,取消对所述当前回收的组播信元地址对应的组播信元的输出,并发起已调度份数和总复制份数的读请求;
在并未处于等待已调度份数相同组播信元地址的读返回过程中,以所述当前回收的组播信元地址为读地址,同时向已调度份数和总复制份数发起读请求。
9.一种组播包的复制装置,其特征在于,包括:
存入模块,用于将待复制的组播包存入组播包复制队列中;
确定模块,用于从所述组播包复制队列中确定出目标指针所指向的待复制的第一组播包,其中,所述组播包复制队列包括至少两个待复制的组播包;
查找模块,用于查找所述第一组播包的组播成员信息,并获取所述第一组播包的第一组播复制信息;
获取模块,用于在等待接收所述第一组播包的组播成员信息的同时,将所述目标指针指向下一个待复制的第二组播包,以获取所述第二组播包的组播复制信息;
移出模块,用于在接收到所述第一组播包的全部组播成员信息的情况下,将携带所述第一组播复制信息的所述第一组播包移出所述组播包复制队列。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至8任一项中所述的方法。
11.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至8任一项中所述的方法。
CN202210765523.XA 2022-06-30 2022-06-30 组播包的复制方法及装置、存储介质及电子装置 Pending CN117376274A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210765523.XA CN117376274A (zh) 2022-06-30 2022-06-30 组播包的复制方法及装置、存储介质及电子装置
PCT/CN2023/083747 WO2024001340A1 (zh) 2022-06-30 2023-03-24 组播包的复制方法及装置、存储介质及电子装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210765523.XA CN117376274A (zh) 2022-06-30 2022-06-30 组播包的复制方法及装置、存储介质及电子装置

Publications (1)

Publication Number Publication Date
CN117376274A true CN117376274A (zh) 2024-01-09

Family

ID=89382618

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210765523.XA Pending CN117376274A (zh) 2022-06-30 2022-06-30 组播包的复制方法及装置、存储介质及电子装置

Country Status (2)

Country Link
CN (1) CN117376274A (zh)
WO (1) WO2024001340A1 (zh)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7263099B1 (en) * 2002-08-14 2007-08-28 Juniper Networks, Inc. Multicast packet replication
CN101340389B (zh) * 2008-08-29 2011-04-20 华为技术有限公司 一种组播报文复制方法和设备
CN102821045B (zh) * 2012-08-03 2015-07-22 中兴通讯股份有限公司 多播报文复制方法及装置
CN108055211B (zh) * 2017-12-22 2020-10-30 盛科网络(苏州)有限公司 一种组播复制的方法、设备和存储介质

Also Published As

Publication number Publication date
WO2024001340A1 (zh) 2024-01-04

Similar Documents

Publication Publication Date Title
US7680875B1 (en) Markers for cached objects
CN101551736B (zh) 基于地址指针链表的缓存管理装置和方法
CN110806986B (zh) 提高网络芯片报文存储效率的方法、设备及存储介质
KR101407743B1 (ko) 패킷 처리 장비내에서의 플로우 데이터의 저장 관리 방법 및 패킷 처리 장비
US7813342B2 (en) Method and apparatus for writing network packets into computer memory
US7441268B2 (en) Method and apparatus to manage exceptions in network processors
US20090070560A1 (en) Method and Apparatus for Accelerating the Access of a Multi-Core System to Critical Resources
CN114356223A (zh) 存储器的访问方法及装置、芯片、电子设备
CN115905061A (zh) 数据搬运装置、dma装置、电子设备及数据搬运方法
CN117707991B (zh) 一种数据读写方法、系统、设备及存储介质
CN116155828B (zh) 一种多个虚拟队列的报文保序方法及其装置、存储介质、电子设备
CN117376274A (zh) 组播包的复制方法及装置、存储介质及电子装置
CN111752941B (zh) 一种数据存储、访问方法、装置、服务器及存储介质
CN112035428A (zh) 分布式存储系统、方法、装置、电子设备和存储介质
US9804959B2 (en) In-flight packet processing
US20090307463A1 (en) Inter-processor, communication system, processor, inter-processor communication method, and communication method
CN113326020A (zh) 缓存器件、缓存器、系统、数据处理方法、装置及介质
US20160055112A1 (en) Return available ppi credits command
CN112822126B (zh) 报文存储方法、报文出入队列方法及存储调度装置
CN113868249A (zh) 一种数据存储方法、装置、计算机设备以及存储介质
US6789176B2 (en) Address release method, and common buffering device for ATM switching system which employs the same method
CN111435332B (zh) 数据处理方法及设备
CN112395296A (zh) 一种大数据归档方法、装置、设备及存储介质
JPS6148745B2 (zh)
CN112965833B (zh) 日志处理方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication