System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 转发信息的确定方法、装置、网关及存储介质制造方法及图纸_技高网

转发信息的确定方法、装置、网关及存储介质制造方法及图纸

技术编号:44615024 阅读:1 留言:0更新日期:2025-03-17 18:16
本申请实施例提供了一种转发信息的确定方法、装置、网关及计算机可读存储介质,涉及云计算技术领域。该方法包括:将从第一数据包的数据包头中提取第一多元组,然后获取第一会话表并确定第一多元组中的K项信息对应的第一哈希值,第一会话表包括至少一个第一键值对,进而将第一哈希值以及第一多元组中的L‑K项信息与第一会话表的第一键值对进行匹配;若与其中一个第一键值对匹配成功,则基于匹配成功的第一键值对的值所对应的第一转发指示信息,确定第一数据包的目标转发信息。本申请实施例可以减少第一会话表所占据的片上存储空间,提高支持的状态会话规模。

【技术实现步骤摘要】

本申请涉及云计算,具体而言,本申请涉及一种转发信息的确定方法、装置、网关及存储介质


技术介绍

1、在云计算网络中,有状态网关随处可见,如nat(网络地址转换,network addresstranslation)网关、acl(访问控制列表,access control lists)网关或负载均衡网关等。这些网关的特点是会根据规则匹配接收到的数据包头字段信息,如果匹配命中了,则会生成对应的会话,并对该会话进行持续处理。相比于其他没有规则的数据包,有会话的数据包会得到更快速的服务处理。目前,有状态网关需要利用芯片,例如交换机芯片,基于会话(session)表来进行数据包的转发。

2、在相关技术中,直接将五元组信息以及其对应的转发信息作为表元素存储在会话表中,如果数据包的数据包头中的字段命中了会话表的五元组信息,则将命中的五元组信息所对应的转发信息,确定为数据包的转发信息。

3、然而,交换机芯片上的内存有限,直接将五元组信息以及对应映射的转发信息作为表元素存储在状态表中,占据了交换机芯片的大量的片上存储空间,使得交换机芯片能够支持的状态会话规模非常有限。


技术实现思路

1、本申请实施例提供了一种转发信息的确定方法、装置、网关及存储介质,用于解决交换机芯片能够支持的状态会话规模非常有限的技术问题。

2、一方面,本申请实施例提供了一种转发信息的确定方法,包括:

3、获取待转发的第一数据包;

4、从第一数据包的数据包头中提取第一多元组;

5、获取预置的第一会话表项,并确定第一多元组中的k项信息对应的第一哈希值,1≤k<l,l表示多元组的信息总项数,第一会话表项包括第一会话表,第一会话表包括至少一个第一键值对,对于每一第一键值对,第一键值对的键对应第二哈希值和已转发的第二数据包的第二多元组中的l-k项信息,第二哈希值为第二多元组中的k项信息对应的哈希值,第一键值对的值对应第一转发指示信息,第一转发指示信息用于确定第二多元组对应的转发信息;

6、将第一哈希值以及第一多元组中的l-k项信息与第一会话表的第一键值对进行匹配;

7、若与其中一个第一键值对匹配成功,则基于匹配成功的第一键值对的值所对应的第一转发指示信息,确定第一数据包的目标转发信息。

8、另一方面,本申请实施例还提供了一种转发信息的确定方法,包括:

9、获取来自第二芯片的第一数据包;

10、从第一数据包的数据包头中提取第一多元组;

11、从预置的第二会话表项中查找第一多元组对应的目标会话表项,目标会话表项包括第四会话表,第四会话表包括第四键值对,第四键值对中的键对应第一哈希值和第一多元组中的l-k项信息,第一哈希值为第一多元组的k项信息对应的哈希值,第四键值对的值对应第二转发指示信息,第二转发指示信息用于确定第一多元组对应的目标转发信息,其中,1≤k<l,l表示多元组的信息总项数;

12、若目标会话表项查找成功,则基于目标会话表项确定第一数据包的目标转发信息,以及将目标会话表项发送至第二芯片,以使得第二芯片基于目标会话表项更新预置的第一会话表项,其中,第四会话表用于更新第一会话表项中的第一会话表。

13、另一方面,本申请实施例还提供了一种转发信息的确定装置,包括:

14、第一获取模块,用于获取待转发的第一数据包;

15、第一提取模块,用于从第一数据包的数据包头中提取第一多元组;

16、第二获取模块,用于获取预置的第一会话表项,并确定第一多元组中的k项信息对应的第一哈希值,1≤k<l,l表示多元组的信息总项数,第一会话表项包括第一会话表,第一会话表包括至少一个第一键值对,对于每一第一键值对,第一键值对的键对应第二哈希值和已转发的第二数据包的第二多元组中的l-k项信息,第二哈希值为第二多元组中的k项信息对应的哈希值,第一键值对的值对应第一转发指示信息,第一转发指示信息用于确定第二多元组对应的转发信息;

17、第一确定模块,用于将第一哈希值以及第一多元组中的l-k项信息与第一会话表的第一键值对进行匹配;

18、第一确定模块还用于若与其中一个第一键值对匹配成功,则基于匹配成功的第一键值对的值所对应的第一转发指示信息,确定第一数据包的目标转发信息。

19、可选的,第一会话表项还包括至少一个第二会话表,每一第二会话表包括至少一个第二键值对,对于一个第二会话表的每一第二键值对,第二键值对的键对应第二多元组中的k项信息的至少部分,第二键值对的值对应第一编码值,至少一个第二会话表的信息的集合包括第二多元组中的k项信息;第二获取模块在确定第一多元组中的k项信息对应的第一哈希值时,用于:将第一多元组中的k项信息与各第二会话表中的第二键值对进行匹配,以确定第一多元组中的k项信息对应的目标编码值组;基于目标编码值组确定第一多元组中的k项信息对应的第一哈希值。

20、可选的,至少一个第二会话表包括第一会话子表和第二会话子表,第一会话子表的第二键值对的键对应第二多元组中的k项信息中的m项信息,第二会话子表的每一第二键值对的键对应第二多元组中的k项信息中的k-m项信息,1≤m<k;第二获取模块在将第一多元组中的k项信息与各第二会话表中的第二键值对进行匹配,以确定第一多元组中的k项信息对应的目标编码值组时,用于:将第一多元组中的m项信息与第一会话子表的第二键值对进行匹配,以及将第一多元组中的k-m项信息与第二会话子表的第二键值对进行匹配;若与第一会话子表的其中一个第二键值对以及第二会话子表的其中一个第二键值对匹配成功,则获取第一目标编码值和第二目标编码值,第一目标编码值为第一会话子表的匹配成功的第二键值对的值所对应的编码值,第二目标编码值为第二会话子表的匹配成功的第二键值对的值所对应的编码值;将第一目标编码值和第二目标编码值作为目标编码值组的至少部分。

21、可选的,第二获取模块还用于以下的至少一项:若与第一会话子表的任一第二键值对均匹配失败,则将预置的无效编码值作为第一目标编码值或将第一数据包发送至第一芯片;若与第二会话子表的任一第二键值对均匹配失败,则将预置的无效编码值作为第二目标编码值或将第一数据包发送至第一芯片。

22、可选的,第一会话表为至少两种,至少两种第一会话表与至少两种哈希函数一一对应,对于至少两种第一会话表中的每一第一会话表,第一会话表的第一键值对的键对应的第二哈希值是基于第一会话表对应的哈希函数确定的;第二获取模块在基于目标编码值组确定第一多元组中的k项信息对应的第一哈希值时,用于:基于至少两种哈希函数中各哈希函数对目标编码值组进行压缩,得到各哈希函数对应的第一哈希值;第一确定模块在将第一哈希值以及第一多元组中的l-k项信息与第一会话表的第一键值对进行匹配时,用于:分别将各哈希函数对应的第一哈希值以及第一多元组信息的l-k项信息与各哈希函数对应的第一会话表的第一键值对进行匹配。

23、可选的,第本文档来自技高网...

【技术保护点】

1.一种转发信息的确定方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述第一会话表项还包括至少一个第二会话表,每一第二会话表包括至少一个第二键值对,对于一个第二会话表的每一第二键值对,所述第二键值对的键对应所述第二多元组中的K项信息的至少部分,所述第二键值对的值对应第一编码值,所述至少一个第二会话表的信息的集合包括所述第二多元组中的K项信息;

3.根据权利要求2所述的方法,其特征在于,所述至少一个第二会话表包括第一会话子表和第二会话子表,所述第一会话子表的第二键值对的键对应所述第二多元组中的K项信息中的M项信息,所述第二会话子表的每一第二键值对的键对应所述第二多元组中的K项信息中的K-M项信息,1≤M<K;

4.根据权利要求3所述的方法,其特征在于,所述方法还包括以下的至少一项:

5.根据权利要求3所述的方法,其特征在于,所述第一会话表为至少两种,至少两种第一会话表与至少两种哈希函数一一对应,对于所述至少两种第一会话表中的每一第一会话表,所述第一会话表的第一键值对的键对应的第二哈希值是基于所述第一会话表对应的哈希函数确定的;

6.根据权利要求1-5任一项所述的方法,其特征在于,所述第一会话表中的L-K项信息是通过以下方式确定的:

7.根据权利要求1-5任一项所述的方法,其特征在于,所述转发信息包括第一转发信息和第二转发信息,所述第一转发指示信息包括第二编码值和第二转发信息,所述第一会话表项还包括第三会话表,所述第三会话表包括至少一个第三键值对,对于每一第三键值对,所述第三键值对的键对应第三编码值,所述第三键值对的值对应第一转发信息;

8.根据权利要求1-5任一项所述的方法,其特征在于,所述方法还包括:

9.一种转发信息的确定方法,其特征在于,包括:

10.根据权利要求9所述的方法,其特征在于,所述目标会话表项还包括至少一个第五会话表或第六会话表中的至少一项,其中,所述第五会话表用于更新所述第一会话表项中的第二会话表,所述第六会话表用于更新所述第一会话表项中的第三会话表;

11.根据权利要求10所述的方法,其特征在于,所述第五会话表包括第三会话子表和第四会话子表,所述第三会话子表的第五键值对中的键对应所述第一多元组中的K项信息中的M项信息,所述第三会话子表的第五键值对中的值对应第一目标编码值,所述第四会话子表的第五键值对中的键对应所述第一多元组中的K-M项信息,所述第四会话子表的第五键值对中的值对应第二目标编码值,1≤M<K;

12.根据权利要求9-11任一项所述的方法,其特征在于,若所述目标会话表项查询失败,则所述方法还包括:

13.根据权利要求12所述的方法,其特征在于,所述哈希冲突结果是通过以下方式得到的:

14.一种转发信息的确定装置,其特征在于,包括:

15.一种转发信息的确定装置,其特征在于,包括:

16.一种网关,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求1-8任一项所述方法,或者,实现权利要求9-13任一项所述方法。

17.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-8任一项所述方法,或者,实现权利要求9-13任一项所述方法。

...

【技术特征摘要】

1.一种转发信息的确定方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述第一会话表项还包括至少一个第二会话表,每一第二会话表包括至少一个第二键值对,对于一个第二会话表的每一第二键值对,所述第二键值对的键对应所述第二多元组中的k项信息的至少部分,所述第二键值对的值对应第一编码值,所述至少一个第二会话表的信息的集合包括所述第二多元组中的k项信息;

3.根据权利要求2所述的方法,其特征在于,所述至少一个第二会话表包括第一会话子表和第二会话子表,所述第一会话子表的第二键值对的键对应所述第二多元组中的k项信息中的m项信息,所述第二会话子表的每一第二键值对的键对应所述第二多元组中的k项信息中的k-m项信息,1≤m<k;

4.根据权利要求3所述的方法,其特征在于,所述方法还包括以下的至少一项:

5.根据权利要求3所述的方法,其特征在于,所述第一会话表为至少两种,至少两种第一会话表与至少两种哈希函数一一对应,对于所述至少两种第一会话表中的每一第一会话表,所述第一会话表的第一键值对的键对应的第二哈希值是基于所述第一会话表对应的哈希函数确定的;

6.根据权利要求1-5任一项所述的方法,其特征在于,所述第一会话表中的l-k项信息是通过以下方式确定的:

7.根据权利要求1-5任一项所述的方法,其特征在于,所述转发信息包括第一转发信息和第二转发信息,所述第一转发指示信息包括第二编码值和第二转发信息,所述第一会话表项还包括第三会话表,所述第三会话表包括至少一个第三键值对,对于每一第三键值对,所述第三键值对的键对应第三编码值,所述第三键值对的值对应第一转发信息;

【专利技术属性】
技术研发人员:陈共龙
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1