CN114265869A - 数据报文的转发方法及装置、存储介质及电子设备 - Google Patents

数据报文的转发方法及装置、存储介质及电子设备 Download PDF

Info

Publication number
CN114265869A
CN114265869A CN202111568014.XA CN202111568014A CN114265869A CN 114265869 A CN114265869 A CN 114265869A CN 202111568014 A CN202111568014 A CN 202111568014A CN 114265869 A CN114265869 A CN 114265869A
Authority
CN
China
Prior art keywords
state information
packet
information
forwarding
data message
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
CN202111568014.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.)
China Telecom Corp Ltd
Original Assignee
China Telecom Corp 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 China Telecom Corp Ltd filed Critical China Telecom Corp Ltd
Priority to CN202111568014.XA priority Critical patent/CN114265869A/zh
Publication of CN114265869A publication Critical patent/CN114265869A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本公开提供了一种数据报文的转发方法及装置、存储介质及电子设备,涉及计算机技术领域。其中,数据报文的转发方法,包括:接收数据报文,获取所述数据报文网络的状态信息;利用哈希函数在所述状态信息的分组集合中进行随机选择,构建所述状态信息与所述状态信息缓存的位信息的索引表;基于索引表的引导,优先在已有的缓存信息与所述状态信息匹配时,将所述缓存信息对应的数据报文进行转发;在索引表查询到与所述状态信息的虚拟地址匹配的信息后,将所述状态信息发送至目的地址对应的服务器;将没有匹配到转发路径的所述状态信息重新建立转发路径。通过构建缓存索引表组织数据报文的缓存与转发,能够在单回合中快速匹配转发数据报文。

Description

数据报文的转发方法及装置、存储介质及电子设备
技术领域
本公开涉及计算机技术领域,尤其涉及一种报文的转发方法及装置、存储介质及电子设备。
背景技术
随着越来越多的业务在云端上部署,采用可编程交换机的虚拟网元部署方式,由于其低成本、高性能、低时延云商的青睐。可编程交换机的缓存容量限制,在面对有状态转发网元,如网关、防火墙、负载均衡等部署时,更多是借助外部通用服务器实现状态信息的扩展缓存。
在借助外部资源进行状态信息缓存时,现有技术更多采用顺序分割或水平分割状态信息实现状态信息的缓存,数据报文转发需在可编程交换机和服务器间多次往返,存在消耗带宽资源多、报文处理延时的问题。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种报文的转发方法及装置、存储介质及电子设备,至少在一定程度上克服由于相关技术的报文转发需要在交互机和服务器之间多次往返,导致过多消耗带宽资源和报文处理延时的问题。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的一个方面,提供一种数据报文的转发方法,包括:接收数据报文,获取所述数据报文网络的状态信息;利用哈希函数在所述状态信息的分组集合中进行随机选择,构建所述状态信息与所述状态信息缓存的位信息的索引表;基于索引表的引导,优先在已有的缓存信息与所述状态信息匹配时,将所述缓存信息对应的数据报文进行转发;在索引表查询到与所述状态信息的虚拟地址匹配的信息后,将所述状态信息发送至目的地址对应的服务器,其中,所述服务器进行所述状态信息的匹配,并在匹配后触发对应的数据报文进行转发;将没有匹配到转发路径的所述状态信息重新建立转发路径。
在本公开一个实施例中,所述利用哈希函数在所述状态信息的分组集合中进行随机选择,构建所述状态信息与所述状态信息缓存的位信息的索引表的步骤,包括:根据所述状态信息的虚拟地址进行分组,得到分组的初始集合,且每个分组构建有状态标识位;根据各分组内数据报文转发量排序,利用哈希函数选择多个分组;对每个选中的所述分组通过哈希函数的mod选择第m个目的地址,组成影子分组;将影子分组对应的状态信息放置在可编程设备的缓存中,其它所述状态信息逐步迁移至服务器。
在本公开一个实施例中,所述根据各分组内数据报文转发量排序,利用哈希函数选择多个分组的步骤,包括:对每个分组对应的数据报文转发量进行计数,基于计数结果对分组集合中各分组进行降序排列;通过哈希函数在排名前K个分组中随机选择一组长度为d的子集;将选中的分组的状态标识位重置为1,将未选中的分组的状态标识位重置为0。
在本公开一个实施例中,所述对每个选中的所述分组通过哈希函数的mod选择第m个的目的地址,组成影子分组的步骤,包括:对每个选中的所述分组通过哈希函数的mod选择第m个的目的地址,组成影子分组,将影子分组的状态标识为设置为1;将每个选中的所述分组中未选中的目的地址组成新组,将新组替换初始集合中同位置的分组,并将新组的状态标识位重置为0。
在本公开一个实施例中,所述将没有匹配到转发路径的所述状态信息重新建立转发路径的步骤,包括:通过路由表获取所述数据报文的状态信息;将所述状态信息的虚拟地址对应的分组的状态标识位设置为0,逐步迁移至对应服务器;在迁移结束后,触发所述服务器对与所述状态信息相匹配的数据报文进行转发。
在本公开一个实施例中,所述利用哈希函数在所述状态信息的分组集合中进行随机选择,构建所述状态信息与所述状态信息缓存的位信息的索引表的步骤,还包括:检测当前缓存信息是否超过设定阈值,根据检测结果设定不同的迁移方案。
在本公开一个实施例中,所述利用哈希函数在所述状态信息的分组集合中进行随机选择,构建所述状态信息与所述状态信息缓存的位信息的索引表的步骤,还包括:每间隔固定时间,将构建的所述索引表进行重置。
根据本公开的另一个方面,提供一种报文的转发装置,包括:接收模块,用于接收数据报文,获取所述数据报文网络的状态信息;构建模块,用于利用哈希函数在所述状态信息的分组集合中进行随机选择,构建所述状态信息与所述状态信息缓存的位信息的索引表;第一转发模块,用于基于索引表的引导,优先在已有的缓存信息与所述状态信息匹配时,将所述缓存信息对应的数据报文进行转发;第二转发模块,在索引表查询到与所述状态信息的虚拟地址匹配的信息后,将所述状态信息发送至目的地址对应的服务器,其中,所述服务器进行所述状态信息的匹配,并在匹配后触发对应的数据报文进行转发;和重建模块,用于将没有匹配到转发路径的所述状态信息重新建立转发路径。
根据本公开的再一个方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述的报文的转发方法。
根据本公开的又一个方面,提供一种如计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的报文的转发方法。
本公开的实施例所提供的报文的转发方法,通过构建缓存索引表,将高流量业务的状态信息缓存在可编程设备中进行匹配转发,将非高流量业务的状态信息通过索引表引导至服务器,能够在单回合中快速匹配转发数据报文,提升带宽使用效率,降低报文处理时延。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本公开实施例中一种计算机系统结构的示意图;
图2示出本公开实施例中一种数据报文转发系统结构的示意图;
图3示出本公开实施例中一种数据报文的转发方法流程图;
图4示出本公开实施例中另一种数据报文的转发方法流程图;
图5示出本公开实施例中一种分组集合间的映射关系;
图6示出本公开实施例中一种分组集合位图的映射关系;
图7示出本公开实施例中一种索引表构建流程图;
图8示出本公开实施例中再一种数据报文的转发方法流程图;
图9示出本公开实施例中又一种数据报文的转发方法流程图;
图10示出本公开实施例中另一种数据报文的转发方法流程图;
图11示出本公开实施例中再一种数据报文的转发方法流程图;
图12示出本公开实施例中又一种数据报文的转发方法流程图;
图13示出本公开实施例中一种数据报文转发装置示意图;和
图14示出本公开实施例中一种数据报文转发的计算机设备的结构框图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
本申请提供的方案,通过构建索引表,将高流量业务的状态信息缓存在可编程交换机中,将其它业务的状态信息依据索引表逐步迁移至分布式服务器集群中。基于数据报文的状态信息与缓存信息进行匹配,来引导数据报文的转发。为了便于理解,下面首先对本申请涉及到的几个名词进行解释。
索引表使用一种平衡树(B-tree)变体来组织数据的存储;而常规的表使用的是堆来组织数据的存储。在这里,所谓平衡树变体结构是指存储在其中的数据需要排序,并且数据的排序是按照主键排序的方式。
索引表上的位图(Bitmap)索引,支持在被分割或未被分割的索引表上使用位图(bitmap)索引,创建位图索引时需要一张映射表。建立在索引表上的一个位图索引和建立在堆组织结构表上的位图索引很类似,不同的是,前者的位图索引使用的rowids是映射表中的rowids,而不是基表的。每个索引表可以拥有一张映射表,而某个索引表的所有位图都将使用一张映射表。
可编程交换机,在以太网络中,交换机起的是信息中转站的作用。它把从某个端口接收到的数据从其他端口转发出去。可编程交换机分为控制平面可编程和数据平面可编程。全可编程交换机,是控制平面和数据平面都可以编程控制,使用者可以定义交换机处理数据包的方式,交换机没有绑定任何特定的网络协议。交换机出厂时转发芯片ASIC的内容是空的,客户根据自己需求自行编程完成定制化的需求,并可以根据业务需要随时进行在线编程升级。
本申请实施例提供的方案涉及数据报文的转发技术,具体通过如下实施例进行说明:
图1是本申请一个示例性实施例提供的计算机系统的结构示意图。该系统包括:若干个终端120和服务器集群140。
终端120可以是手机、游戏主机、平板电脑、电子书阅读器、智能眼镜、MP4(MovingPicture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、智能家居设备、AR(Augmented Reality,增强现实)设备、VR(Virtual Reality,虚拟现实)设备等移动终端,或者,终端120也可以是个人计算机(Personal Computer,PC),比如膝上型便携计算机和台式计算机等等。
终端120与可编程设备130之间通过通信网络相连。可选的,通信网络是有线网络或无线网络。可编程设备130可以通过路由器、猫等来实现与通讯网络的连接。
如图2所示,可编程设备130可以直接与服务器集群140连接,在路由器上可以为服务器集群绑定物理地址或以太网地址。
服务器集群140是一台服务器,或者由若干台服务器组成,或者是一个虚拟化平台,或者是一个云计算服务中心。服务器集群140用于为提供数据报文的转发、存储提供服务。可选地,服务器集群140承担主要计算工作,终端120承担次要计算工作;或者,服务器集群140承担次要计算工作,终端120承担主要计算工作;或者,终端120和服务器集群140之间采用分布式计算架构进行协同计算。
在一些可选的实施例中,服务器集群140用于存储数据报文和数据报文的状态信息。
下面,将结合附图及实施例对本示例实施方式中的报文的转发方法的各个步骤进行更详细的说明。
图3示出本公开实施例中一种数据报文的转发方法流程图。本公开实施例提供的方法可以由任意具备计算处理能力的电子设备执行,例如如图2中的可编程交换机130和/或服务器集群140。在下面的举例说明中,以可编程交换机130为执行主体进行示例说明。
如图3所示,可编程交换机130执行数据报文的转发方法,数据报文的转发方法包括以下步骤:
S302,接收数据报文,获取所述数据报文网络的状态信息;
其中,可以获取网络传输过程中的数据报文。具体的,数据报文可以包括网络中交换与传输的数据单元,即站点一次性要发送的数据块。报文包含了将要发送的完整的数据信息,其长短可以不一致,长度不限且可变。进一步的,在网络传输过程中,会将数据报文不断的封装成分组、包、帧来传输,封装的方式就是添加一些信息段,例如添加报文头,并且以一定的格式组织起来。封装包内包括多种信息,例如报文类型,报文版本,报文长度,报文实体等。报文可以用于在各个系统之间进行请求和响应时交换信息,且需要遵守规定好的格式。
当数据报文到达可编程设备中的网元,借助可编程芯片的ASIC中的PARSE进行释义。可以获取数据报文网络的状态信息。
S304,利用哈希函数在所述状态信息的分组集合中进行随机选择,构建所述状态信息与所述状态信息缓存的位信息的索引表。
其中,可以在可编程设备的MATCH-ACTION中基于不同的分组集合构建不同的信息索引表。
状态信息即虚拟地址与目的地址的映射关系,状态信息可以通过路由表查询得到。路由表(routing table),是一个存储在路由器或者联网计算机中的电子表格(文件)或类数据库。路由表存储着指向特定网络地址的路径。进一步的,路由表中含有网络周边的拓扑信息,可以实现路由协议和静态路由选择。可以通过路由表确定数据报文对应的数据报文路由信息。
虚拟地址(VIP,virtual address)反映的是一种业务的对外虚拟IP地址,整体是可以反映这种业务或者服务本身的网络流量。
状态信息形成分组集合,在分组集合的排序基础上通过哈希函数进行随机选择,以区分高流量业务的状态信息和低流量业务的状态信息,这两个业务的区别不是绝对,具有一定随机性和相对性,低流量业务的状态信息通过索引表能够查询到其对应的目的地址。索引表能够组织高流量业务的状态信息和低流量业务的状态信息分别缓存在不同的存储区域,建立了数据报文的转发路径。
其中,S304的步骤可以是在数据转发步骤之前或者之后,在可编程设备的初始设置时、索引表更新时、找不到转发路径等情况都存在索引表的变更、构建动作。
S306,基于索引表的引导,优先在已有的缓存信息与所述状态信息匹配时,将所述缓存信息对应的数据报文进行转发;
其中,在索引表中对应状态标识位的标识,能够确定状态信息缓存在可编程设备中,优先对这部分状态信息进行匹配,将有匹配到的状态信息对应的数据报文从可编程设备中转发出去。
S308,在索引表查询到与所述状态信息的虚拟地址匹配的信息后,将所述状态信息发送至目的地址对应的服务器,其中,所述服务器进行所述状态信息的匹配,并在匹配后触发对应的数据报文进行转发;
对高流量业务之外的其它业务对应的状态信息,先通过虚拟地址在索引表中查询目的地址,能够匹配到目的地址,则通过服务器进行状态信息的匹配,并在匹配后触发对应的数据报文进行转发。
S310,将没有匹配到转发路径的所述状态信息重新建立转发路径。
在步骤S306与S308中都没有匹配到转发路径,需要建立转发路径后才能够进行转发工作。
如图4所示,在一个实施例中,步骤S304,利用哈希函数在所述状态信息的分组集合中进行随机选择,构建所述状态信息与所述状态信息缓存的位信息的索引表,包括:
S402,根据所述状态信息的虚拟地址进行分组,得到分组的初始集合,且每个分组构建有状态标识位。
其中,每个数据报文都有对应的状态信息,状态信息包括了虚拟地址与目的地址,及二者的对应关系等。虚拟地址与目的地址的对应关系有多种情况,如下表所示,一个虚拟地址可以对应1个目的地址或者多个目的地址。
Figure BDA0003422518860000081
其中,如图5所示,根据不同的虚拟地址信息将目的地址分成不同的分组G,即1个虚拟地址分成1个分组,分组后,形成分组集合{G1,G2,……Gi,……Gn}。
如图6所示,在分组集合{G1,G2,……Gi,……Gn}中,每个分组Gi构建有1bit状态标识位,其中bit位=0标志着该分组未被选中,bit=1标志着选中该分组。
S404,根据各分组内数据报文转发量排序,利用哈希函数选择多个分组。
其中,各分组根据转发量排序后,能够对高流量业务和低流量业务有一个区分,但也不是直接将转发量排名前几名的业务直接当成高流量业务。而是通过哈希函数在排序在前几名的数据报文中随机选择,在索引表更新时,转发量排名前几名的业务都有机会选择为高流量业务。能够使可编程设备在业务的变化过程中适应性更强、平衡性更佳。
S406,对每个选中的所述分组通过哈希函数的mod选择第m个目的地址,组成影子分组。
其中,从不同分组中分别选择固定m个目的地址,每个选中的分组又进一步选择目的地址,能够提高各分组的平衡性。
S408,将影子分组对应的状态信息放置在设备的缓存中,其它所述状态信息逐步迁移至服务器。
通过索引表组织状态信息的缓存,将高流量业务的状态信息缓存在可编程设备中,其它业务对应的状态信息通过索引表引导至目标服务器,实现单回合快速匹配以引导数据报文的转发。
如图7、8所示,在一个实施例中,步骤S404,根据各分组内数据报文转发量排序,利用哈希函数选择多个分组的一种具体实现方式,包括:
S802,对每个分组对应的数据报文转发量进行计数,基于计数结果对分组集合中各分组进行降序排列。
其中,每个分组设置有数据报文计数器,对于转发至分组Gi中的任意目的地址的数据报文进行加1。计数器可以是基于可编程设备设置的相关计数规则,例如,采用RFC8321中的分块着色计数方法,计数结果存储于缓存区域。
对分组集合{G1,G2,...,Gi,...,Gn}中各分组基于数据报文计数器的计数结果进行降序排列,生成{Gr1,Gr2,....,Gri,...,Grn}。并将数据报文的计数器清零,可以在下一次重置时从零计数。
S804,通过哈希函数在排名前K个分组中随机选择一组长度为d的子集。
其中,在步骤S802输出的按照降序排列的分组集合中,通过哈希函数随机选择排名靠前的K个分组,记录选择所需序号{Gh1,Gh2…Ghk},其中K小于等于n。
再从上述K个分组中通过哈希函数随机选择一组长度为d的子集:{Gd1,Gd2…Gdd},分组的选定以KEY=VIP地址+Port的哈希值进行选择。即:
HASH({Gh1,Gh2,…,Ghk})={Gd1,Gd2,…,Gdd}。
S806,将选中的分组的状态标识位重置为1,将未选中的分组的状态标识位重置为0。
将{Gd1,Gd2,…,Gdd}的分组在状态标识位的标识更新为1,其它未选中的分组的状态标识位更新为0。
如图7、9所示,在一个实施例中,步骤S406,对每个选中的所述分组通过哈希函数的mod选择第m个的目的地址,组成影子分组的一种具体实现方式,包括:
S902,对每个选中的所述分组通过哈希函数的mod选择第m个的目的地址,组成影子分组,将影子分组的状态标识为设置为1。
其中,在步骤S802~S806选中的分组中,依据目的地址的哈希值mod m进行选择固定m个目的地址形成影子分组G’,并将影子分组的状态标识位设置为1。具体如下:
HASH1(Gd1)=Gd1’=DIP’1,HASH2(Gd2)=Gd2’=DIP’2,……,HASHd(Gdd)=Gdd’=DIP’d;
影子分组G’={Gd1’,Gd2’,…,Gdd’}={DIP’1,DIP’2,…,DIP’d}。
并将影子分组对应的状态信息放置可编程设备中缓存。
S904,将每个选中的所述分组中未选中的目的地址组成新组,将新组替换初始集合中同位置的分组,并将新组的状态标识位重置为0。
针对分组{Gd1,Gd2,…,Gdd}中其它目的地址组成新组
{Gd”1,Gd”2,…,Gd”d},并替换原有集合中同位置的分组,并将分组的状标识位设置为0。
将标识为0的分组所对应的状态信息逐步迁移至外部服务器中,迁移路径可以由可编程设备的控制平面或者集中在控制器协商建立,例如基于目标地址或者其它相关流信息建立。可以优先采用RDMA以提升后续缓存信息查询的时延,减少CPU的投入成本。
如图10所示,在一个实施例中,步骤S210,将没有匹配到转发路径的所述状态信息重新建立转发路径的一种具体实现方式,包括:
S1002,通过路由表获取所述数据报文的状态信息;
其中,在已经建立的索引表中查询不到对应的虚拟地址时,可以通过查询路由表获取数据报文状态信息,状态信息包括虚拟地址、虚拟地址相对应的目的地址,目的地址与服务器的映射关系。
S1004,将所述状态信息的虚拟地址对应的分组的状态标识位设置为0,逐步迁移至对应服务器。
其中,默认将该状态信息的虚拟地址对应为分组Gn+1,并将分组Gn+1的状态标识位设置为0,并在后续逐步实现缓存信息的迁移。
S1006,在迁移结束后,触发所述服务器对匹配的数据报文进行转发。
其中,在将状态信息缓存至对应的服务器后,则该数据报文的转发路径已经建立,可编程设备可以发送转发的请求至对应服务器,触发服务器启动匹配与转发的操作。服务器基于请求,进行缓存信息的匹配,例如通过将状态信息的哈希值和缓信息的哈希值进行匹配,如果匹配则将相应的缓存信息转发出去。
如图11所示,在一个实施例中,步骤S304中在步骤S408之后还包括:步骤S409,检测当前缓存信息是否超过设定阈值,根据检测结果设定不同的迁移方案。
其中,随着纳入缓存区域状态信息的逐步增加,当缓存信息超过设定阈值时,将该缓存区域内的1/2缓存相关信息条目,依照目的地址迁移至外部目的服务器缓存,同时保持缓存迁移时间,并检测每两次迁移时间间隔。随两次缓存迁移时间间隔变化情况,合理选择迁移缓存信息规模,如时间间隔逐步缩小,将逐步加大缓存迁移比例,如1/2+1/4…;反之,逐步减小迁移缓存比例。
如图12所示,在一个实施例中,步骤S304中还包括有:步骤S410,每间隔固定时间,将构建的所述索引表进行重置。
可以在每隔固定时间后,将各分组内的计数器重新进行计数并排序。即重复执行步骤S802~806和步骤S902~904,索引表能够新的排序和哈希函数新的随机选择下生产新的索引表。
此外,可以对新纳入可编程设备缓存的状态信息,依据DIP地址逐步将分布式服务器集群内的缓存信息清除。对于原来已迁移至服务器的网络状态缓存信息,后面随着流量计数的增加,将需要在可编程设备侧实现网络状态信息缓存,那么对于这些新的网络状态缓存信息在可编程设备端的缓存,服务器侧的缓存信息逐步可以删除或过期自动清除。
需要注意的是,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图13来描述根据本发明的这种实施方式的数据报文的转发装置。图13所示的数据报文的转发装置仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
数据报文的转发装置1300以硬件模块的形式表现。数据报文转发装置包括:接收模块1301、构建模块1302、第一转发模块1303、第二转发模块1304、重建模块1305。
接收模块1301,用于接收数据报文,获取所述数据报文网络的状态信息;构建模块1302,用于利用哈希函数在所述状态信息的分组集合中进行随机选择,构建所述状态信息与所述状态信息缓存的位信息的索引表。第一转发模块1303,用于基于索引表的引导,优先在已有的缓存信息与所述状态信息匹配时,将所述缓存信息对应的数据报文进行转发。第二转发模块1304,在索引表查询到与所述状态信息的虚拟地址匹配的信息后,将所述状态信息发送至目的地址对应的服务器,其中,所述服务器进行所述状态信息的匹配,并在匹配后触发对应的数据报文进行转发。和重建模块1305,用于将没有匹配到转发路径的所述状态信息重新建立转发路径。
下面参照图14来描述根据本发明的这种实施方式的电子设备1400。图14显示的电子设备1400仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图14所示,电子设备1400以通用计算设备的形式表现。电子设备1400的组件可以包括但不限于:上述至少一个处理单元1410、上述至少一个存储单元1420、连接不同系统组件(包括存储单元1420和处理单元1410)的总线1430。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元1410执行,使得所述处理单元1410执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元1410可以执行如图3中所示的S302,接收数据报文,获取所述数据报文网络的状态信息;S304,利用哈希函数在所述状态信息的分组集合中进行随机选择,构建所述状态信息与所述状态信息缓存的位信息的索引表;S306,基于索引表的引导,优先在已有的缓存信息与所述状态信息匹配时,将所述缓存信息对应的数据报文进行转发;S308,在索引表查询到与所述状态信息的虚拟地址匹配的信息后,将所述状态信息发送至目的地址对应的服务器,其中,所述服务器进行所述状态信息的匹配,并在匹配后触发对应的数据报文进行转发;S310,将没有匹配到转发路径的所述状态信息重新建立转发路径。
存储单元1420可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)14201和/或高速缓存存储单元14202,还可以进一步包括只读存储单元(ROM)14203。
存储单元1420还可以包括具有一组(至少一个)程序模块14205的程序/实用工具14204,这样的程序模块14205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线1430可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备1400也可以与一个或多个外部设备1500(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备1400交互的设备通信,和/或与使得该电子设备1400能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口1450进行。并且,电子设备1400还可以通过网络适配器1460与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器1460通过总线1430与电子设备1400的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1400使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。
描述了根据本发明的实施方式的用于实现上述方法的程序产品,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。

Claims (10)

1.一种数据报文的转发方法,其特征在于,包括:
接收数据报文,获取所述数据报文网络的状态信息;
利用哈希函数在所述状态信息的分组集合中进行随机选择,构建所述状态信息与所述状态信息缓存的位信息的索引表;
基于索引表的引导,优先在已有的缓存信息与所述状态信息匹配时,将所述缓存信息对应的数据报文进行转发;
在索引表查询到与所述状态信息的虚拟地址匹配的信息后,将所述状态信息发送至目的地址对应的服务器,其中,所述服务器进行所述状态信息的匹配,并在匹配后触发对应的数据报文进行转发;
将没有匹配到转发路径的所述状态信息重新建立转发路径。
2.根据权利要求1所述的方法,其特征在于,所述利用哈希函数在所述状态信息的分组集合中进行随机选择,构建所述状态信息与所述状态信息缓存的位信息的索引表的步骤,包括:
根据所述状态信息的虚拟地址进行分组,得到分组的初始集合,且每个分组构建有状态标识位;
根据各分组内数据报文转发量排序,利用哈希函数选择多个分组;
对每个选中的所述分组通过哈希函数的mod选择第m个目的地址,组成影子分组;
将影子分组对应的状态信息放置在可编程设备的缓存中,其它所述状态信息逐步迁移至服务器。
3.根据权利要求2所述的方法,其特征在于,所述根据各分组内数据报文转发量排序,利用哈希函数选择多个分组的步骤,包括:
对每个分组对应的数据报文转发量进行计数,基于计数结果对分组集合中各分组进行降序排列;
通过哈希函数在排名前K个分组中随机选择一组长度为d的子集;
将选中的分组的状态标识位重置为1,将未选中的分组的状态标识位重置为0。
4.根据权利要求3所述的方法,其特征在于,所述对每个选中的所述分组通过哈希函数的mod选择第m个的目的地址,组成影子分组的步骤,包括:
对每个选中的所述分组通过哈希函数的mod选择第m个的目的地址,组成影子分组,将影子分组的状态标识为设置为1;
将每个选中的所述分组中未选中的目的地址组成新组,将新组替换初始集合中同位置的分组,并将新组的状态标识位重置为0。
5.根据权利要求1所述的方法,其特征在于,所述将没有匹配到转发路径的所述状态信息重新建立转发路径的步骤,包括:
通过路由表获取所述数据报文的状态信息;
将所述状态信息的虚拟地址对应的分组的状态标识位设置为0,逐步迁移至对应服务器;
在迁移结束后,触发所述服务器对与所述状态信息相匹配的数据报文进行转发。
6.根据权利要求1至5中任意一项所述的方法,其特征在于,所述利用哈希函数在所述状态信息的分组集合中进行随机选择,构建所述状态信息与所述状态信息缓存的位信息的索引表的步骤,还包括:
检测当前缓存信息是否超过设定阈值,根据检测结果设定不同的迁移方案。
7.根据权利要求2所述的方法,其特征在于,所述利用哈希函数在所述状态信息的分组集合中进行随机选择,构建所述状态信息与所述状态信息缓存的位信息的索引表的步骤,还包括:
每间隔固定时间,将构建的所述索引表进行重置。
8.一种数据报文的转发装置,其特征在于,包括:
接收模块,用于接收数据报文,获取所述数据报文网络的状态信息;
构建模块,用于利用哈希函数在所述状态信息的分组集合中进行随机选择,构建所述状态信息与所述状态信息缓存的位信息的索引表;
第一转发模块,用于基于索引表的引导,优先在已有的缓存信息与所述状态信息匹配时,将所述缓存信息对应的数据报文进行转发;
第二转发模块,在索引表查询到与所述状态信息的虚拟地址匹配的信息后,将所述状态信息发送至目的地址对应的服务器,其中,所述服务器进行所述状态信息的匹配,并在匹配后触发对应的数据报文进行转发;和
重建模块,用于将没有匹配到转发路径的所述状态信息重新建立转发路径。
9.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1~7中任意一项所述数据报文的转发方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1~7中任意一项所述的数据报文的转发方法。
CN202111568014.XA 2021-12-21 2021-12-21 数据报文的转发方法及装置、存储介质及电子设备 Pending CN114265869A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111568014.XA CN114265869A (zh) 2021-12-21 2021-12-21 数据报文的转发方法及装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111568014.XA CN114265869A (zh) 2021-12-21 2021-12-21 数据报文的转发方法及装置、存储介质及电子设备

Publications (1)

Publication Number Publication Date
CN114265869A true CN114265869A (zh) 2022-04-01

Family

ID=80828436

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111568014.XA Pending CN114265869A (zh) 2021-12-21 2021-12-21 数据报文的转发方法及装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN114265869A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117896333A (zh) * 2024-03-18 2024-04-16 深圳深蕾科技股份有限公司 报文转发方法、系统、装置和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019071464A1 (zh) * 2017-10-11 2019-04-18 华为技术有限公司 数据中心系统中域名解析的方法、装置和系统
CN111817960A (zh) * 2020-07-23 2020-10-23 杭州迪普信息技术有限公司 流控设备的报文转发方法及装置
CN112367278A (zh) * 2020-11-03 2021-02-12 清华大学 基于可编程数据交换机的云网关系统及其报文处理方法
WO2021169258A1 (zh) * 2020-02-24 2021-09-02 华为技术有限公司 转发报文的方法、发布路由信息的方法、装置及系统
CN113518074A (zh) * 2021-05-11 2021-10-19 北京物芯科技有限责任公司 一种数据报文转发方法、装置、设备及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019071464A1 (zh) * 2017-10-11 2019-04-18 华为技术有限公司 数据中心系统中域名解析的方法、装置和系统
WO2021169258A1 (zh) * 2020-02-24 2021-09-02 华为技术有限公司 转发报文的方法、发布路由信息的方法、装置及系统
CN111817960A (zh) * 2020-07-23 2020-10-23 杭州迪普信息技术有限公司 流控设备的报文转发方法及装置
CN112367278A (zh) * 2020-11-03 2021-02-12 清华大学 基于可编程数据交换机的云网关系统及其报文处理方法
CN113518074A (zh) * 2021-05-11 2021-10-19 北京物芯科技有限责任公司 一种数据报文转发方法、装置、设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
李博杰: "基于可编程网卡的高性能数据中心系统", 中国知网博士学位论文全文数据库信息科技辑, 15 August 2019 (2019-08-15) *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117896333A (zh) * 2024-03-18 2024-04-16 深圳深蕾科技股份有限公司 报文转发方法、系统、装置和存储介质

Similar Documents

Publication Publication Date Title
US9378042B2 (en) Virtual machine multicast/broadcast in virtual network
US11637889B2 (en) Configuration recommendation for a microservice architecture
CN109327542B (zh) 游戏业务访问响应方法、请求转发方法、连接方法、装置
CN111034160B (zh) 在负载均衡连接上具有虚拟vip和源代理的非dsr分布式负载均衡器
CN104428752A (zh) 将虚拟机流卸载至物理队列
JPH03131954A (ja) データブロック選択方法および制御ブロック選択システム
CN110727738B (zh) 基于数据分片的全局路由系统、电子设备及存储介质
CN109800005A (zh) 一种客户端热更新方法及装置
CN111431730B (zh) 一种业务处理方法、系统、计算机设备及可读介质
CN112822060B (zh) 主机网络的构建方法、装置、系统、介质和主机
CN105791381A (zh) 访问控制的方法及装置
JPWO2011045919A1 (ja) 分散システム、通信手段選択方法および通信手段選択プログラム
CN110958666B (zh) 基于强化学习的网络切片资源映射方法
CN106878052B (zh) 一种用户迁移方法和装置
CN114265869A (zh) 数据报文的转发方法及装置、存储介质及电子设备
CN113411363A (zh) 一种镜像文件的上传方法、相关设备及计算机存储介质
US20230019037A1 (en) Reactive non-blocking input and output for target device communication
CN105634999B (zh) 一种介质访问控制地址的老化方法及装置
US20120265801A1 (en) Out of order assembling of data packets
CN114726657B (zh) 中断管理和数据收发管理的方法、装置及智能网卡
CN111200608B (zh) 链路信息处理方法和装置
CN114979128A (zh) 跨区域通信方法、装置及电子设备
US8484182B1 (en) Wireless device content searching
CN114553492B (zh) 基于云平台的操作请求处理方法及装置
CN108718285A (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