本申请实施例提供了一种数据转发方法、流表处理方法、设备及系统,数据转发方法应用于数据转发装置,数据转发装置与服务器通信连接,数据转发装置包括用于访问服务器内存的服务器内存访问模块;数据转发方法包括:获取待处理数据和用于实现数据转发操作的第一转发流表,第一转发流表存储在数据转发装置中;在待处理数据未命中第一转发流表时,通过服务器内存访问模块在服务器内存中获取与待处理数据相对应的目标流表信息,目标流表信息中包括待处理数据;基于目标流表信息对待处理数据进行转发处理。本实施例通过服务器内存实现了转发流表的拓展操作,在不需要服务器CPU参与的前提下即可完成数据的转发操作,有效地简化了数据转发的操作过程。数据转发的操作过程。数据转发的操作过程。
【技术实现步骤摘要】
数据转发方法、流表处理方法、设备及系统
[0001]本申请涉及网络
,尤其涉及一种数据转发方法、流表处理方法、设备及系统。
技术介绍
[0002]Match
‑
Action是指在网络设备获取数据包之后,根据数据包的五元组信息去和存储中的流表信息进行匹配(Match),在匹配成功之后,可以执行存储中流表信息的网络操作(Action)的过程。
[0003]具体的,在现有的Match
‑
Action流程中,根据数据包的五元组计算出哈希值,使用哈希值与流表进行匹配,若哈希值命中流表,则基于流表获取对应的网络操作(Action)项,随后加载并执行这一网络操作,完成了一次数据包的处理操作。若哈希值并没有命中流表中的已有项,需要触发驱动的流表项的置换操作,具体的,通过服务器中的核心处理器(Central Processing Unit,简称CPU)更换流表中的流表项,再次匹配直到命中,如果始终无法命中,就可以丢弃相对应的数据包。
[0004]由于现有的数据转发流程需要服务器CPU的参与,这样不仅增加了系统的繁杂程度,并且由于数据转发路径的延长,也降低数据转发操作的质量和效率。
技术实现思路
[0005]本申请实施例提供一种数据转发方法、流表处理方法、设备及系统,通过服务器内存实现了流表的拓展操作,有效地实现了在不需要服务器CPU参与的前提下即可完成数据转发操作,从而简化了数据转发的操作步骤。
[0006]第一方面,本申请实施例提供了一种数据转发方法,应用于数据转发装置,所述数据转发装置与服务器通信连接,所述数据转发装置包括用于访问服务器内存的服务器内存访问模块;所述方法包括:获取待处理数据和用于实现数据转发操作的第一转发流表,所述第一转发流表存储在所述数据转发装置中;在所述待处理数据未命中所述第一转发流表时,通过所述服务器内存访问模块在服务器内存中获取与所述待处理数据相对应的目标流表信息,所述目标流表信息中包括所述待处理数据;基于所述目标流表信息对所述待处理数据进行转发处理。
[0007]第二方面,本申请实施例提供了一种数据转发装置,所述数据转发装置与服务器通信连接,所述数据转发装置包括用于访问服务器内存的服务器内存访问模块;所述装置包括:第一获取模块,用于获取待处理数据和用于实现数据转发操作的第一转发流表,所述第一转发流表存储在所述数据转发装置中;第一处理模块,用于在所述待处理数据未命中所述第一转发流表时,通过所述服
务器内存访问模块在服务器内存中获取与所述待处理数据相对应的目标流表信息,所述目标流表信息中包括所述待处理数据;所述第一处理模块,用于基于所述目标流表信息对所述待处理数据进行转发处理。
[0008]第三方面,本申请实施例提供了一种电子设备,包括:存储器、处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时实现上述第一方面所示的数据转发方法。
[0009]第四方面,本专利技术实施例提供了一种计算机存储介质,用于储存计算机程序,所述计算机程序使计算机执行时实现上述第一方面所示的数据转发方法。
[0010]第五方面,本专利技术实施例提供了一种计算机程序产品,包括:计算机程序,当所述计算机程序被电子设备的处理器执行时,使所述处理器执行上述第一方面所示的数据转发方法中的步骤。
[0011]第六方面,本专利技术实施例提供了一种流表处理方法,应用于服务器,所述方法包括:获取待处理流表项以及用于将所述待处理流表项存储在所述服务器的内存中的初始存储位置,所述待处理流表项包括映射信息、与所述映射信息相对应的操作信息以及预设空白区域,其中,所述映射信息用于标识数据包头到服务器内存中存储地址之间的映射关系;在所述初始存储位置不为空时,则基于所述初始存储位置向下遍历查询,获得空的目标存储位置;基于所述目标存储位置,获取位于所述待处理流表项之前的预设数量的相邻流表项;将所述待处理流表项所对应的映射信息添加至所述相邻流表项中,获得用于实现数据转发操作的原始流表项。
[0012]第七方面,本专利技术实施例提供了一种流表处理装置,应用于服务器,所述装置包括:第二获取模块,用于获取待处理流表项以及用于将所述待处理流表项存储在所述服务器的内存中的初始存储位置,所述待处理流表项包括映射信息、与所述映射信息相对应的操作信息以及预设空白区域,其中,所述映射信息用于标识数据包头到服务器内存中存储地址之间的映射关系;第二查询模块,用于在所述初始存储位置不为空时,则基于所述初始存储位置向下遍历查询,获得空的目标存储位置;第二处理模块,用于基于所述目标存储位置,获取位于所述待处理流表项之前的预设数量的相邻流表项;所述第二处理模块,用于将所述待处理流表项所对应的映射信息添加至所述相邻流表项中,获得用于实现数据转发操作的原始流表项。
[0013]第八方面,本申请实施例提供了一种电子设备,包括:存储器、处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时实现上述第六方面所示的流表处理方法。
[0014]第九方面,本专利技术实施例提供了一种计算机存储介质,用于储存计算机程序,所述计算机程序使计算机执行时实现上述第六方面所示的流表处理方法。
[0015]第十方面,本专利技术实施例提供了一种计算机程序产品,包括:计算机程序,当所述计算机程序被电子设备的处理器执行时,使所述处理器执行上述第六方面所示的流表处理方法中的步骤。
[0016]第十一方面,本专利技术实施例提供了一种数据转发系统,包括:数据转发装置,包括用于访问服务器内存的服务器内存访问模块,用于获取待处理数据和用于实现数据转发操作的第一转发流表,所述第一转发流表存储在所述数据转发装置中;在所述待处理数据未命中所述第一转发流表时,通过所述服务器内存访问模块在服务器内存中获取与所述待处理数据相对应的目标流表信息,所述目标流表信息中包括所述待处理数据;基于所述目标流表信息对所述待处理数据进行转发处理;服务器,与所述数据转发装置通信连接,所述服务器的内存中包括与所述待处理数据相对应的目标流表信息。
[0017]本申请实施例提供的数据转发方法、流表处理方法、设备及系统,通过获取待处理数据和第一转发流表,在待处理数据未命中第一转发流表时,通过服务器内存访问模块在服务器内存中获取目标流表信息,之后基于目标流表信息对待处理数据进行转发处理,这样通过服务器内存实现了转发流表的拓展操作,从而可以实现了在不需要服务器CPU参与的前提下即可完成数据的转发操作,有效地简化了数据转发的操作步骤,进而提高了数据转发方法的质量和效率,进一步提高了该方法的实用性,有利于市场的推广与应用。
附图说明
[0018]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种数据转发方法,其特征在于,应用于数据转发装置,所述数据转发装置与服务器通信连接,所述数据转发装置包括用于访问服务器内存的服务器内存访问模块;所述方法包括:获取待处理数据和用于实现数据转发操作的第一转发流表,所述第一转发流表存储在所述数据转发装置中;在所述待处理数据未命中所述第一转发流表时,通过所述服务器内存访问模块在服务器内存中获取与所述待处理数据相对应的目标流表信息,所述目标流表信息中包括所述待处理数据;基于所述目标流表信息对所述待处理数据进行转发处理。2.根据权利要求1所述的方法,其特征在于,通过所述服务器内存访问模块在服务器内存中获取与所述待处理数据相对应的目标流表信息,包括:在所述服务器内存中,获取与所述待处理数据相对应的原始流表项,所述原始流表项中包括映射信息序列、与首位映射信息相对应的操作信息,其中,所述映射信息序列中包括的映射信息用于标识数据包头到服务器内存中存储地址之间的映射关系;通过所述服务器内存访问模块将所述待处理数据写入至所述原始流表项,获得与所述待处理数据相对应的目标流表信息。3.根据权利要求2所述的方法,其特征在于,获取与所述待处理数据相对应的原始流表项,包括:获取所述待处理数据的数据包包头信息;基于所述数据包包头信息,确定所述原始流表项在所述服务器内存中的存储地址;基于所述存储地址,获得与所述待处理数据相对应的原始流表项。4.根据权利要求3所述的方法,其特征在于,基于所述数据包包头信息,确定所述原始流表项在服务器内存中的存储地址,包括:获取与所述待处理数据相对应的地址映射值;确定用于存储所述原始流表项的内存宽度;基于所述地址映射值和所述内存宽度进行地址映射,获得所述原始流表项在服务器内存中的存储地址。5.根据权利要求2所述的方法,其特征在于,所述原始流表项还包括预设空白区域;通过所述服务器内存访问模块将所述待处理数据写入至所述原始流表项,获得与所述待处理数据相对应的目标流表信息,包括:通过所述服务器内存访问模块生成与所述待处理数据相对应的写指令;基于所述写指令将所述待处理数据写入至所述预设空白区域,生成与所述待处理数据相对应的目标流表信息;通过所述服务器内存访问模块生成与所述目标流表信息相对应的读指令;基于所述读指令,获得与所述待处理数据相对应的目标流表信息。6.根据权利要求1所述的方法,其特征在于,基于所述目标流表信息对所述待处理数据进行转发处理,包括:获取所述目标流表信息中所包括的映射信息序列,所述映射信息序列包括:当前流表项所对应的首位映射信息以及位于当前流表项之后的预设数量的相邻流表项各自对应的
相邻映射信息,其中,所述映射信息序列中包括的映射信息用于标识数据包头到服务器内存中存储地址之间的映射关系;确定与所述待处理数据相对应的地址映射值;基于所述映射信息序列和所述地址映射值对所述待处理数据进行转发处理。7.根据权利要求6所述的方法,其特征在于,基于所述映射信息序列和所述地址映射值对所述待处理数据进行转发处理,包括:在所述地址映射值与所述映射...
【专利技术属性】
技术研发人员:聂浩,刘一锐,尹俊,刘运卓,蔡慧,张鹏宇,祝顺民,
申请(专利权)人:阿里巴巴中国有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。