System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及通信,特别是涉及一种组播复制方法、装置、电子设备和存储介质。
技术介绍
1、随着网络技术的发展,组播复制技术的应用越来越广泛。随着用户的增加,一个组播组中的组播组成员变多,一个组播报文需要被复制的数量也随之增多。因此,对组播复制的性能要求也变得更高。组播复制的性能可以用获取组播复制表的查询结果所需要的时间来衡量,获取组播复制表的查询结果所需要的时间可以用芯片的时钟周期表示。若能够在芯片的一个周期内获取到一个查询结果,则可认为组播复制的性能达到了线速复制。
2、然而,芯片获取组播复制表的查询结果的时间受到了组播复制表大小和芯片工艺的影响,一般需要几个周期。在组播复制表规模变大,芯片工艺没有突破的情况下,如何提高组播复制的性能,达到线速复制,成为需要解决的重要问题。
技术实现思路
1、本专利技术实施例的目的在于提供一种组播复制方法、装置、电子设备和存储介质,以使组播复制性能可以达到线速复制。具体技术方案如下:
2、第一方面,本申请实施例提供一种组播复制方法,包括:
3、获取组播报文所属组播组的第一组播标识;
4、从组播起始表中查找所述第一组播标识对应的第一加扰因子和第一组播条目数量;
5、基于所述第一组播标识、所述第一加扰因子和所述第一组播条目数量分别计算所述第一组播标识对应的每个组播条目的存储地址,并按照存储地址从组播复制表中读取组播条目,基于读取的组播条目包括的组播复制信息进行组播复制;
6、其中
7、在一种可能的实现方式中,所述基于所述第一组播标识、所述第一加扰因子和所述第一组播条目数量分别计算所述第一组播标识对应的每个组播条目的存储地址,并按照存储地址从组播复制表中读取组播条目,基于读取的组播条目包括的组播复制信息进行组播复制,包括:
8、将预设初始复制序列号作为当前复制序列号;
9、对所述第一组播标识、所述第一加扰因子和所述当前复制序列号进行哈希运算,得到一个组播标识的目标存储地址;
10、从所述组播复制表中读取所述目标存储地址对应的目标组播条目;
11、基于所述目标组播条目包括的组播复制信息进行组播复制,并将当前复制序列号加1,返回所述对所述第一组播标识、所述第一加扰因子和所述当前复制序列号进行哈希运算,得到一个组播标识的目标存储地址的步骤,直至当前复制序列号与所述预设初始复制序列号之间的差值达到所述第一组播条目数量。
12、在一种可能的实现方式中,所述方法还包括:
13、接收组播条目增加指令,所述组播条目增加指令包括第二组播标识和新增组播复制信息;
14、从所述组播起始表中查找所述第二组播标识对应的第二加扰因子和第二组播条目数量;
15、将所述第二组播条目数量与预设初始复制序列号的和值,作为所述新增组播复制信息对应的新增组播复制序列号;
16、基于所述第二组播标识、所述第二加扰因子和所述新增组播复制序列号计算所述新增组播复制信息对应的新增存储地址;
17、在所述组播复制表中所述新增存储地址处,生成存储有所述新增组播复制信息的组播条目;
18、将所述组播起始表中所述第二组播标识对应的组播条目数量加1。
19、在一种可能的实现方式中,所述方法还包括:
20、接收组播条目删除指令,所述组播条目删除指令包括第三组播标识和待删除的第一组播条目对应的第一复制序列号;
21、从所述组播起始表中查找所述第三组播标识对应的第三加扰因子和第三组播条目数量;
22、基于所述第三组播标识、所述第三加扰因子和所述第一复制序列号计算第一组播条目对应的第一存储地址;
23、基于所述第三组播标识、所述第三加扰因子和第二复制序列号,计算第二组播条目的第二存储地址,所述第二复制序列号为所述第三组播标识对应的最后一个复制序列号;
24、从所述组播复制表读取所述第二存储地址对应的所述第二组播条目;
25、从所述组播复制表中删除所述第一存储地址对应的所述第一组播条目,并在所述第一存储地址处存入所述第二组播条目;
26、将所述组播起始表中所述第三组播标识对应的组播条目数量减1。
27、在一种可能的实现方式中,所述第三组播标识和所述第一组播标识相同;在所述第一存储地址处存入所述第二组播条目之后,所述方法还包括:
28、判断所述当前复制序列号是否大于所述第一复制序列号;
29、若是,则将所述第二存储地址对应的复制标记和删除标记均置为第一值;
30、若否,则将所述第二存储地址对应的复制标记置为第二值,将所述第二存储地址对应的删除标记置为第一值;
31、在所述对所述第一组播标识、所述第一加扰因子和所述当前复制序列号进行哈希运算,得到一个组播标识的目标存储地址之后,所述方法还包括:
32、判断所述目标存储地址对应的删除标记是否为第一值;
33、若是,则判断所述目标存储地址对应的复制标记是否为第一值;
34、若所述目标存储地址对应的复制标记为第一值,则执行所述从所述组播复制表中读取所述目标存储地址对应的目标组播条目的步骤;
35、若所述目标存储地址对应的复制标记为第二值,则将当前复制序列号加1;若当前复制序列号与所述预设初始复制序列号之间的差值未达到所述第一组播条目数量,则返回所述对所述第一组播标识、所述第一加扰因子和所述当前复制序列号进行哈希运算,得到一个组播标识的目标存储地址的步骤;若当前复制序列号与所述预设初始复制序列号之间的差值达到所述第一组播条目数量,则停止组播复制,并执行所述将所述组播起始表中所述第三组播标识对应的组播条目数量减1的步骤。
36、第二方面,本申请实施例提供一种组播复制装置,包括:
37、获取模块,用于获取组播报文所属组播组的第一组播标识;
38、查找模块,用于从组播起始表中查找所述第一组播标识对应的第一加扰因子和第一组播条目数量;
39、复制模块,用于基于所述第一组播标识、所述第一加扰因子和所述第一组播条目数量分别计算所述第一组播标识对应的每个组播条目的存储地址,并按照存储地址从组播复制表中读取组播条目,基于读取的组播条目包括的组播复制信息进行组播复制;
40、其中,所述组播复制表中包括至少一个组播标识对应的组播条目。
41、在一种可能的实现方式中,所述复制模块,具体用于:
42、将预设初始复制序列号作为当前复制序列号;
43、对所述第一组播标识、所述第一加扰因子和所述当前复制序列号进行哈希运算,得到一个组播标识的目标存储地址;
44、从所述组播复制表中读取所述目标存储地址对应的目标组播条目;
45、基于所述目标组播条目包括的组播复制信息本文档来自技高网...
【技术保护点】
1.一种组播复制方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述基于所述第一组播标识、所述第一加扰因子和所述第一组播条目数量分别计算所述第一组播标识对应的每个组播条目的存储地址,并按照存储地址从组播复制表中读取组播条目,基于读取的组播条目包括的组播复制信息进行组播复制,包括:
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
5.根据权利要求4所述的方法,其特征在于,所述第三组播标识和所述第一组播标识相同;在所述第一存储地址处存入所述第二组播条目之后,所述方法还包括:
6.一种组播复制装置,其特征在于,包括:
7.根据权利要求6所述的装置,其特征在于,所述复制模块,具体用于:
8.根据权利要求6或7所述的装置,其特征在于,所述装置还包括接收模块、加和模块、计算模块和生成模块:
9.根据权利要求7所述的装置,其特征在于,所述装置还包括接收模块、计算模块、读取模块、更新模块和减少模块;
...【技术特征摘要】
1.一种组播复制方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述基于所述第一组播标识、所述第一加扰因子和所述第一组播条目数量分别计算所述第一组播标识对应的每个组播条目的存储地址,并按照存储地址从组播复制表中读取组播条目,基于读取的组播条目包括的组播复制信息进行组播复制,包括:
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
5.根据权利要求4所述的方法,其特征在于,所述第三组播标识和所述第一组播标识相同;在所述第一存储地址处存入所述第二组播条目之后,所述方法还包括:
6.一种组播复制装置,其特征在于,包括:
7.根据权利...
【专利技术属性】
技术研发人员:牛忠华,曾敏,王萌,
申请(专利权)人:格创通信浙江有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。