报文发送方法、装置、计算机存储介质及电子设备与流程

文档序号:32031483发布日期:2022-11-03 01:48阅读:65来源:国知局
报文发送方法、装置、计算机存储介质及电子设备与流程

1.本技术涉及云计算技术领域,特别涉及一种报文发送方法、报文发送系统、计算机存储介质及电子设备。


背景技术:

2.随着云计算技术的发展和网络功能虚拟化(network function virtualization,简称nfv)理念的发展,越来越多的虚拟化网元支持云化部署,包括采用虚拟机部署的虚拟网络功能(virtualization network function,简称vnf)单元和采用容器技术的云原生网络功能((cloud native function,简称cnf)单元。
3.但是,相比传统基于硬件的网络功能而言,虚拟化网络功能的性能仍然面临很大挑战,虽然业界也提出了多种网络加速方案,但是目前一个虚拟化网元只支持一种加速转发方案,不能根据场景进行选择,导致不同场景下虚拟化网元加速出现较大波动。
4.需要说明的是,上述背景技术部分公开的信息仅用于加强对本技术的背景的理解。


技术实现要素:

5.本技术的目的在于提供一种报文发送方法、报文发送系统、计算机存储介质及电子设备,进而至少在一定程度上实现虚拟化网元可以根据场景从多种加速转发方案中选择最优的加速转发方案,增加虚拟化网元对不同场景下的报文的加速转发能力,避免出现转发能力的抖动。
6.本技术的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本技术的实践而习得。
7.根据本技术的第一方面,提供一种报文发送方法,包括:
8.对报文进行解析,以获取与所述报文对应的五元组信息;
9.根据所述五元组信息进行转发场景判定,以获取与所述报文对应的目标转发场景;
10.根据所述目标转发场景确定目标转发方案,并基于所述目标转发方案转发所述报文。
11.根据本技术的第二方面,提供一种报文发送系统,包括:
12.解析模块,用于对报文进行解析,以获取与所述报文对应的五元组信息;
13.场景判定模块,用于根据所述五元组信息进行转发场景判定,以获取与所述报文对应的目标转发场景;
14.方案确定模块,用于根据所述目标转发场景确定目标转发方案,并基于所述目标转发方案转发所述报文。
15.在本技术的一个实施例中,所述解析模块配置为:
16.获取所述报文中对应预设位置标识的数据包,对所述数据包进行解析,以获取所
述五元组信息。
17.在本技术的一个实施例中,所述场景判定模块包括:
18.获取单元,用于获取所述五元组信息中的源ip地址和目的ip地址;
19.比对单元,用于将所述源ip地址和所述目的ip地址进行比对,并根据比对结果确定与所述报文对应的目标转发场景。
20.在本技术的一个实施例中,所述比对单元包括:
21.第一场景确定单元,用于当所述源ip地址和所述目的ip地址相同时,获取与发送所述报文的虚拟化网元对应的网元类型,并根据所述网元类型确定与所述报文对应的目标转发场景;
22.第二场景确定单元,用于当所述源ip地址和所述目的ip地址不同时,将跨节点的流量转发场景作为所述目标转发场景。
23.在本技术的一个实施例中,所述第一场景确定单元包括:
24.第三场景确定单元,用于当所述网元类型为虚拟机时,将同一节点内不支持共享内存的流量转发场景作为所述目标转发场景;
25.第四场景确定单元,用于当所述网元类型为容器时,获取与所述容器对应的内存共享信息,并根据所述内存共享信息确定与所述报文对应的目标转发场景。
26.在本技术的示例性实施例中,所述第四场景确定单元配置为:
27.当所述内存共享信息为支持共享内存时,将同一节点内支持共享内存的流量转发场景作为所述目标转发场景;
28.当所述内存共享信息为不支持共享内存时,将所述同一节点内不支持共享内存的流量转发场景作为所述目标转发场景。
29.在本技术的示例性实施例中,所述方案确定模块包括:
30.场景比对单元,用于获取转发映射表,将所述目标转发场景与所述转发映射表中的转发场景进行比对;
31.转发方案确定单元,用于当所述转发映射表中存在所述目标转发场景时,获取与所述目标转发场景对应的转发方案作为所述目标转发方案。
32.在本技术的示例性实施例中,所述转发映射表中包含跨节点的流量转发场景、同一节点内支持共享内存的流量转发场景和同一节点内不支持共享内存的流量转发场景;所述转发方案确定单元配置为:
33.当所述目标转发场景为所述跨节点的流量转发场景时,将数据平面开发套件dpdk转发方案作为所述目标转发方案;
34.当所述目标转发场景为所述同一节点内支持共享内存的流量转发场景时,将接口转发方案作为所述目标转发方案;
35.当所述目标转发场景为所述同一节点内不支持共享内存的流量转发场景时,将扩展的伯克利数据包过滤器ebpf转发方案作为所述目标转发方案。
36.根据本技术的第三方面,提供一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述的报文发送方法。
37.根据本技术的第四方面,提供一种电子设备,其特征在于,包括:
38.处理器;以及
39.存储器,用于存储所述处理器的可执行指令;
40.其中,所述处理器配置为经由执行所述可执行指令来执行上述的报文发送方法。
41.由上述技术方案可知,本技术示例性实施例中的报文发送方法、报文发送装置、计算机存储介质及电子设备至少具备以下优点和积极效果:
42.本技术中的报文发送方法,在虚拟化网元转发报文之前,先对报文进行解析以获取与报文对应的五元组信息;接着根据获取的五元组信息进行转发场景判定,以获取与报文对应的目标转发场景;最后根据目标转发场景确定目标转发方案,并基于该目标转发方案转发该报文。本技术实施例一方面能够从多种加速转发方案中根据报文对应的目标转发场景确定与之对应的目标转发方案,并基于目标转发方案进行报文转发,增加了虚拟化网元对不同场景中报文的加速转发能力,提升了虚拟化网元的整体处理效率;另一方面能够在对目标转发场景进行确定时仅需根据五元组信息进行分析得到,方法简便,实现难度低。
43.本技术应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。
附图说明
44.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
45.图1示意性地示出了本技术实施例中报文发送方法的流程示意图。
46.图2示意性地示出了本技术实施例中虚拟化网元和场景判决器的结构示意图。
47.图3示意性地示出了本技术实施例中获取目标转发场景的流程示意图。
48.图4示意性地示出了本技术实施例中报文发送的流程示意图。
49.图5示意性地示出了本技术实施例中报文发送的流程示意图。
50.图6示意性地示出了本技术中报文发送装置的结构框图。
51.图7示意性示出了适于用来实现本技术实施例的电子设备的计算机系统结构框图。
具体实施方式
52.现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本技术将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
53.此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本技术的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本技术的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本技术的各方面。
54.本说明书中使用用语“一个”、“一”、“该”和“所述”用以表示存在一个或多个要素/组成部分/等;用语“包括”和“具有”用以表示开放式的包括在内的意思并且是指除了列出
的要素/组成部分/等之外还可存在另外的要素/组成部分/等;用语“第一”和“第二”等仅作为标记使用,不是对其对象的数量限制。
55.附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
56.附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
57.在本技术的相关技术中,在虚拟化网元转发报文时,存在多种加速方案,例如业界提出的包括dpdk、ebpf、共享内存接口等多种虚拟化网元的加速方案,但是不同的加速方案适用的场景并不相同,并且现有的虚拟化网元通常只能支持一种加速方案,而虚拟化网元通常要处理多种业务场景,导致虚拟化网元在处理不同场景的业务是加速能力出现较大差异。
58.针对相关技术中存在的问题,本技术提出了一种报文发送方法,涉及虚拟化网元根据不同业务场景选择相应加速方案进行报文转发。
59.在对本技术实施例中的技术方案进行详细说明之前,首先对本技术实施例中可能涉及到的技术名词进行解释和说明。
60.(1)网元:由一个或多个机盘或机框组成,能够独立完成一定的传输功能,网元是网络管理中可以监视和管理的最小单位。
61.(2)网络功能:网络中定义明确的节点或构建块,负责促进特定行为。
62.(3)vnf:虚拟网络功能,是在虚拟环境中运行的网络功能。
63.(4)cnf:云原生网络功能,也称为容器(化)网络功能,是一种旨在容器内运行的网络功能,容器是捆绑代码的标准化软件单元,因此应用程序可以在不同的计算环境中无缝运行。
64.(5)报文:是网络中交换与传输的数据单元,即站点一次性要发送的数据块。报文包含了将要发送的完整的数据信息,其长短很不一致,长度不限且可变。
65.(6)dpdk:data plane development kit,数据平面开发套件,是由6wind、intel等多家公司开发,主要基于linux系统运行,用于快速数据包处理的函数库与驱动集合,可以极大提高数据处理性能和吞吐量,提高数据平面应用程序的工作效率。
66.(7)ebpf:extended berkeley packet filter,扩展的伯克利数据包过滤器,是一种数据包过滤技术,是从伯克利数据包过滤器(berkeley packet filter,bpf)技术扩展而来的。
67.(8)memif接口:内存接口,负责从下层flash和eeprom模块中进行抽象,并为上层提供统一的地址空间。
68.在介绍完本技术实施例中可能涉及到的技术名词后,对本技术中的报文发送方法进行详细说明。
69.本技术中的报文发送方法可以由服务器执行,该服务器可以是提供云计算服务的云服务器。
70.云计算(cloud computing)是一种计算模式,它将计算任务分布在大量计算机构
成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。
71.作为云计算的基础能力提供商,会建立云计算资源池(简称云平台,一般称为iaas(infrastructure as a service,基础设施即服务)平台,在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。
72.按照逻辑功能划分,在iaas(infrastructure as a service,基础设施即服务)层上可以部署paas(platform as a service,平台即服务)层,paas层之上再部署saas(software as a service,软件即服务)层,也可以直接将saas部署在iaas上。paas为软件运行的平台,如数据库、web容器等。saas为各式各样的业务软件,如web门户网站、短信群发器等。一般来说,saas和paas相对于iaas是上层。
73.下面结合具体实施方式对本技术提供的报文发送方法、报文发送装置、计算机可读介质以及电子设备等技术方案做出详细说明。
74.图1示出了报文发送方法的流程图,如图1所示,报文发送方法包括:
75.步骤s110:对报文进行解析,以获取与所述报文对应的五元组信息;
76.步骤s120:根据所述五元组信息进行转发场景判定,以获取与所述报文对应的目标转发场景;
77.步骤s130:根据所述目标转发场景确定目标转发方案,并基于所述目标转发方案转发所述报文。
78.本技术的报文发送方法,在虚拟化网元转发报文之前,先对报文进行解析以获取与报文对应的五元组信息;接着根据获取的五元组信息进行转发场景判定,以获取与报文对应的目标转发场景;最后根据目标转发场景确定目标转发方案,并基于该目标转发方案转发该报文。本技术实施例一方面能够从多种加速转发方案中根据报文对应的目标转发场景确定与之对应的目标转发方案,并基于目标转发方案进行报文转发,增加了虚拟化网元对不同场景报文的加速转发能力,提升了虚拟化网元的整体处理效率;另一方面能够在对目标转发场景进行确定时仅需根据五元组信息进行分析得到,方法简便,实现难度低。
79.下面对图1所示的报文发送方法的各个步骤进行详细说明。
80.在步骤s110中,对报文进行解析,以获取与所述报文对应的五元组信息。
81.在本技术的示例性实施例中,虚拟化网元在对报文进行转发前,首先需要对报文进行解析,获取其中的五元组信息,进而根据五元组信息确定与该报文对应的目标转发场景。
82.由于报文在传输过程中,通常会被封装成分组、包、帧来传输,封装的方式就是添加一些信息段,那些就是报文头以一定格式组织起来的数据,因此对应同一消息的报文可以被封装成多个数据包,而每个数据包中所包含的五元组信息都是相同,因此在提取报文的五元组信息时,为了提高信息获取效率,可以只对预设位置标识对应的数据包进行解析,以获取五元组信息。在本技术的实施例中,该预设位置标识具体可以是第一位、第二位等等,以第一位数据包为例,当虚拟化网元转发报文之前,获取报文中的第一位数据包,即首包,然后将首包上送至设置于虚拟化网元中的场景判决器,通过场景判决器对首包进行解
析,以获取与报文对应的五元组信息。
83.图2示意性示出了虚拟化网元和场景判决器的结构示意图,如图2所示,场景判决器200设置于虚拟化网元201中,场景判决器200包括五元组提取模块202、五元组分析模块203、场景判定模块204和转发方案配置模块205,虚拟化网元201从报文中抽取首包后,将首包上送至五元组提取模块202,以使五元组提取模块202从首包中提取五元组信息;接着将所提取的五元组信息发送至五元组分析模块203进行分析,以获取所需的信息;然后可以将获取的信息发送至场景判定模块204,以使场景判定模块204根据该信息确定目标转发场景;在确定目标转发场景后,可以将目标转发场景发送至加速方案配置模块205,以获取与目标转发场景对应的目标转发方案。在获取目标转发方案后,即可由虚拟化网元根据目标转发方案对报文进行转发。
84.在步骤s120中,根据所述五元组信息进行转发场景判定,以获取与所述报文对应的目标转发场景。
85.在本技术的示例性实施例中,虚拟化网元部署在虚拟化平台或者云平台中,具体地可以是采用虚拟机部署的虚拟网络功能vnf单元或者采用容器技术的云原生网络功能cnf单元,而虚拟化平台或者云平台中存储有每个节点所包含的虚拟机或者容器的信息,该信息包括虚拟机或者容器的ip地址,也就是说,虚拟化平台或者云平台中存储有每个虚拟化网元对应的ip地址,当某个虚拟化网元向另一个虚拟化网元转发报文时,就可以根据两个虚拟化网元对应的ip地址对报文的转发场景进行判定。值得说明的是,虚拟化平台或者云平台包括多个节点,并且各节点中包括一个或多个虚拟机或者容器,其中的虚拟机或者容器即可视为虚拟化网元。
86.在本技术的示例性实施例中,五元组信息包括源ip地址、源端口、目的ip地址、目的端口和传输层协议,在进行转发场景判定时,主要根据源ip地址和目的ip地址进行判定。图3示意性示出了获取目标转发场景的流程示意图,如图3所示,在步骤s301中,获取五元组信息中的源ip地址和目的ip地址;在步骤s302中,将源ip地址与目的ip地址进行比对,并根据比对结果确定与报文对应的目标转发场景。其中,源ip地址为发送虚拟化网元对应的ip地址,目的ip地址为接收虚拟化网元对应的ip地址。
87.在将源ip地址和目的ip地址进行比对时,比对结果有两种,一种是源ip地址与目的ip地址相同,一种是源ip地址与目的ip地址不同,当源ip地址与目的ip地址相同时,说明发送报文的虚拟化网元和接收报文的虚拟化网元处于同一个节点中,而当源ip地址与目的ip地址不同时,说明发送报文的虚拟化网元和接收报文的虚拟化网元处于不同的节点中。
88.在本技术的示例性实施例中,转发场景包括三类,分别为:跨节点流量转发场景、同一节点内支持共享内存的流量转发场景和同一节点内不支持共享内存的流量转发场景,那么,当报文中的源ip地址与目的ip地址不同时,可以确定与报文对应的目标转发场景为跨节点流量转发场景,而对于报文中源ip地址和目的ip地址相同的情况,则可能是同一节点内支持共享内存的流量转发场景或者同一节点内不支持共享内存的流量转发场景,具体是哪种转发场景,还需要根据发送报文的虚拟化网元所对应的网元类型进行判定。
89.在本技术的示例性实施例中,当报文中的源ip地址和目的ip地址相同时,获取转发该报文的虚拟化网元的网元类型,当网元类型为虚拟机时,由于虚拟机不支持共享内存,因此可以将同一节点内不支持共享内存的流量转发场景作为目标转发场景,当网元类型为
容器时,可以获取容器对应的内存共享信息,进而根据内存共享信息确定与报文对应的目标转发场景。
90.在本技术的示例性实施例中,该内存共享信息具体为容器是否开启大页内存,当容器开启了大页内存时,说明容器是支持共享内存的,因此可以确定目标转发场景为同一节点内支持共享内存的流量转发场景,当容器未开启大页内存时,说明容器是不支持共享内存的,因此可以确定目标转发场景为同一节点内不支持共享内存的流量转发场景。
91.相应地,图3还包括以下步骤,在步骤s303中,当源ip地址与目的ip地址相同时,获取与发送报文的虚拟化网元对应的网元类型,并根据网元类型确定与报文对应的目标转发场景;在步骤s304中,当网元类型为虚拟机时,将同一节点内不支持共享内存的流量转发场景作为目标转发场景;在步骤s305中,当网元类型为容器时,获取与容器对应的内存共享信息,并根据内存共享信息确定与报文对应的目标转发场景;在步骤s306中,当内存共享信息为支持共享内存时,将同一节点内支持共享内存的流量转发场景作为目标转发场景;在步骤s307中,当内存共享信息为不支持共享内存时,将同一节点内不支持共享内存的流量转发场景作为目标转发场景;在步骤s308中,当源ip地址与目的ip地址不同时,将跨节点流量转发场景作为目标转发场景。
92.在本技术的示例性实施例中,在根据五元组信息确定报文对应的目标转发场景后,可以根据该目标转发场景确定与之对应的目标转发方案,并基于该目标转发方案转发报文。
93.在步骤s130中,根据所述目标转发场景确定目标转发方案,并基于所述目标转发方案转发所述报文。
94.在本技术的示例性实施例中,在根据目标转发场景确定目标转发方案时,可以通过转发映射表实现。具体地,可以将目标转发场景与转发映射表中的转发场景进行比对,当转发映射表中存在该目标转发场景时,将转发映射表中与该目标转发场景对应的转发方案作为目标转发方案。
95.与上述实施例中所述的三种转发场景对应,转发映射表中包括三种转发场景以及与各转发场景对应的转发方案,其中,与各转发场景对应的转发方案可以是一种,也可以是多种,例如当目标转发场景为同一节点内支持共享内存的流量转发场景时,那么所有可以在同一节点内支持共享内存的转发场景下进行报文转发的加速方案均可以用来进行报文转发,为了进一步提高报文转发效率,并减小转发能力的抖动,在本技术实施例中,通过对比多种加速方案的性能,可以针对每一种转发场景设置一种转发方案,表1示出了转发映射表所包含的转发场景和与各转发场景对应的转发方案,如下所示:
96.表1转发映射表
[0097] 转发场景转发方案1跨节点的流量转发场景dpdk转发方案2同一节点内支持共享内存的流量转发场景memif接口转发方案3同一节点内不支持共享内存的流量转发场景ebpf转发方案
[0098]
根据表1所示的转发映射表可知,当目标转发场景为跨节点的流量转发场景时,将数据平面开发套件dpdk转发方案作为目标转发方案;当目标转发场景为同一节点内支持共享内存的流量转发场景时,将memif接口转发方案作为目标转发方案;当目标转发场景为同
一节点内不支持共享内存的流量转发场景时,将扩展的伯克利数据包过滤器ebpf转发方案作为目标转发方案。
[0099]
之所以将dpdk转发方案、memif接口转发方案和ebpf转发方案作为目标转发方案,具体原因如下:dpdk转发方案是一种基于用户态的转发技术,避免了内核态中断以及用户态和内核态的切换,转发效率高;memif接口转发方案可以实现0拷贝状况下的通信,由于基于共享内存实现0拷贝,避免了数据传输,转发效率很高;ebpf转发方案可以大大减小数据包的i/o路径,进而提供内核态下的最优加速。
[0100]
值得注意的是,本技术实施例中的报文发送方法的实现基础是,云平台或者虚拟化平台中各节点中均可以支持不同的加速转发方案,当确定报文对应的目标转发场景后,可以从节点主持的多种加速转发方案中选择与目标转发场景对应的目标转发方案,并基于目标转发方案转发报文。其中,云平台或者虚拟化平台中各节点中均可以支持不同的加速转发方案由云平台或虚拟化平台的开发人员进行开发设置,本技术实施例对此不作具体解释说明。
[0101]
为了使本技术中的报文发送方法更清楚,接下来以一具体实例进行说明。
[0102]
图4示意性示出了报文发送的流程示意图,如图4所示,在步骤s401中,获取报文中的首包,并将首包上送至场景判决器;在步骤s402中,场景判决器从首包中提取报文的五元组信息,例如该五元组信息为[192.168.1.1,10000,tcp,121.14.88.76,80];在步骤s403中,获取五元组信息中的源ip地址和目的ip地址;以步骤s402中的五元组信息为例,源ip地址为192.168.1.1,目的ip地址为121.14.88.76;在步骤s404中,将源ip地址和目的ip地址进行比对;在步骤s405中,根据比对结果确定与报文对应的目标转发场景;通过比对可知,示例的源ip地址与目的ip地址不同,因此可以确定目标转发场景为跨节点流量转发场景;在步骤s406中,将目标转发场景与转发映射表中的转发场景进行比对,以获取目标转发方案;根据表1所示的转发映射表可以确定,与跨节点流量转发场景对应的转发方案为dpdk转发方案,因此最终确定的目标转发方案为dpdk转发方案;在步骤s407中,基于目标转发方案发送报文,即基于dpdk转发方案转发报文。
[0103]
图4中示出了源ip地址和目的ip地址不同的情况,对于源ip地址和目的ip地址相同的情况,可以根据上述实施例确定目标转发方案,并基于目标转发方案转发报文。
[0104]
图5示意性示出了报文发送的流程示意图,如图5所示,在步骤s501中,获取报文中的首包,并将首包上送至场景判决器;在步骤s502中,场景判决器从首包中提取报文的五元组信息,例如该五元组信息为[192.168.1.1,10000,tcp,192.168.1.1,80];在步骤s503中,获取五元组信息中的源ip地址和目的ip地址;以步骤s502中的五元组信息为例,源ip地址为192.168.1.1,目的ip地址为192.168.1.1;在步骤s504中,将源ip地址和目的ip地址进行比对,判断源ip地址和目的ip地址是否相同;通过比对可知,示例的源ip地址与目的ip地址相同,因此可以确定目标转发场景为同一节点内支持共享内存的流量转发场景或者同一节点内不支持共享内存的流量转发场景;在步骤s505中,在源ip地址和目的ip地址相同时,获取转发报文的虚拟化网元的网元类型;在步骤s506中,根据网元类型确定目标转发场景;例如当网元类型为虚拟机时,目标转发场景为同一节点内不支持共享内存的流量转发场景;当网元类型为容器且开启大页内存时,目标转发场景为同一节点内支持共享内存的流量转发场景;当网元类型为容器且未开启大页内存时,目标转发场景为同一节点内不支持共享
内存的流量转发场景;在步骤s507中,将目标转发场景与转发映射表中的转发场景进行比对,以获取目标转发方案;根据表1所示的转发映射表可以确定,与同一节点内支持共享内存的流量转发场景为memif接口转发方案,与同一节点内不支持共享内存的流量转发场景为ebpf转发方案,因此最终确定的目标转发方案为memif接口转发方案或者ebpf转发方案;在步骤s508中,基于目标转发方案发送报文,即基于memif接口转发方案或者ebpf转发方案转发报文。
[0105]
本技术实施例中的报文发送方法,在虚拟化网元发送报文之前,先对报文进行解析以获取与报文对应的五元组信息;接着根据获取的五元组信息进行转发场景判定,以获取与报文对应的目标转发场景;最后根据目标转发场景确定目标转发方案,并基于该目标转发方案转发该报文。本技术实施例一方面能够从多种加速转发方案中根据报文对应的目标转发场景确定与之对应的目标转发方案,并基于目标转发方案进行报文转发,增加了虚拟化网元对不同场景报文的加速转发能力,提升了虚拟化网元的整体处理效率;另一方面能够在对目标转发场景进行确定时仅需根据五元组信息进行分析得到,方法简便,实现难度低。
[0106]
本技术还提供了一种报文发送装置,图6示出了报文发送装置的结构示意图,如图6所示,报文发送装置600可以包括解析模块601、场景判定模块602和方案确定模块603。其中:
[0107]
解析模块601,用于对报文进行解析,以获取与所述报文对应的五元组信息;
[0108]
场景判定模块602,用于根据所述五元组信息进行转发场景判定,以获取与所述报文对应的目标转发场景;
[0109]
方案确定模块603,用于根据所述目标转发场景确定目标转发方案,并基于所述目标转发方案转发所述报文。
[0110]
在本技术的一个实施例中,所述解析模块601配置为:
[0111]
获取所述报文中对应预设位置标识的数据包,对所述数据包进行解析,以获取所述五元组信息。
[0112]
在本技术的一个实施例中,所述场景判定模块602包括:
[0113]
获取单元,用于获取所述五元组信息中的源ip地址和目的ip地址;
[0114]
比对单元,用于将所述源ip地址和所述目的ip地址进行比对,并根据比对结果确定与所述报文对应的目标转发场景。
[0115]
在本技术的一个实施例中,所述比对单元包括:
[0116]
第一场景确定单元,用于当所述源ip地址和所述目的ip地址相同时,获取与发送所述报文的虚拟化网元对应的网元类型,并根据所述网元类型确定与所述报文对应的目标转发场景;
[0117]
第二场景确定单元,用于当所述源ip地址和所述目的ip地址不同时,将跨节点的流量转发场景作为所述目标转发场景。
[0118]
在本技术的一个实施例中,所述第一场景确定单元包括:
[0119]
第三场景确定单元,用于当所述网元类型为虚拟机时,将同一节点内不支持共享内存的流量转发场景作为所述目标转发场景;
[0120]
第四场景确定单元,用于当所述网元类型为容器时,获取与所述容器对应的内存
共享信息,并根据所述内存共享信息确定与所述报文对应的目标转发场景。
[0121]
在本技术的示例性实施例中,所述第四场景确定单元配置为:
[0122]
当所述内存共享信息为支持共享内存时,将同一节点内支持共享内存的流量转发场景作为所述目标转发场景;
[0123]
当所述内存共享信息为不支持共享内存时,将所述同一节点内不支持共享内存的流量转发场景作为所述目标转发场景。
[0124]
在本技术的示例性实施例中,所述方案确定模块603包括:
[0125]
场景比对单元,用于获取转发映射表,将所述目标转发场景与所述转发映射表中的转发场景进行比对;
[0126]
转发方案确定单元,用于当所述转发映射表中存在所述目标转发场景时,获取与所述目标转发场景对应的转发方案作为所述目标转发方案。
[0127]
在本技术的示例性实施例中,所述转发映射表中包含跨节点的流量转发场景、同一节点内支持共享内存的流量转发场景和同一节点内不支持共享内存的流量转发场景;所述转发方案确定单元配置为:
[0128]
当所述目标转发场景为所述跨节点的流量转发场景时,将数据平面开发套件dpdk转发方案作为所述目标转发方案;
[0129]
当所述目标转发场景为所述同一节点内支持共享内存的流量转发场景时,将接口转发方案作为所述目标转发方案;
[0130]
当所述目标转发场景为所述同一节点内不支持共享内存的流量转发场景时,将扩展的伯克利数据包过滤器ebpf转发方案作为所述目标转发方案。
[0131]
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本技术的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
[0132]
此外,尽管在附图中以特定顺序描述了本技术中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
[0133]
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本技术实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本技术实施方式的方法。
[0134]
图7示意性地示出了用于实现本技术实施例的电子设备的计算机系统结构框图,该电子设备可以是设置于终端设备或服务器中。
[0135]
需要说明的是,图7示出的电子设备的计算机系统700仅是一个示例,不应对本技术实施例的功能和使用范围带来任何限制。
[0136]
如图7所示,计算机系统700包括中央处理器701(central processing unit,
cpu),其可以根据存储在只读存储器702(read-only memory,rom)中的程序或者从存储部分708加载到随机访问存储器703(random access memory,ram)中的程序而执行各种适当的动作和处理。在随机访问存储器703中,还存储有系统操作所需的各种程序和数据。中央处理器701、在只读存储器702以及随机访问存储器703通过总线704彼此相连。输入/输出接口705(input/output接口,即i/o接口)也连接至总线704。
[0137]
在一些实施例中,以下部件连接至输入/输出接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(cathode ray tube,crt)、液晶显示器(liquid crystal display,lcd)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如局域网卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至输入/输出接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
[0138]
特别地,根据本技术的实施例,各个方法流程图中所描述的过程可以被实现为计算机软件程序。例如,本技术的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被中央处理器701执行时,执行本技术的系统中限定的各种功能。
[0139]
需要说明的是,本技术实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读介质或者是上述两者的任意组合。计算机可读介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(erasable programmable read only memory,eprom)、闪存、光纤、便携式紧凑磁盘只读存储器(compact disc read-only memory,cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本技术中,计算机可读介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本技术中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
[0140]
附图中的流程图和框图,图示了按照本技术各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要
注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0141]
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本技术的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
[0142]
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本技术实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台电子设备执行根据本技术实施方式的方法。
[0143]
应当理解的是,本技术并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本技术的范围仅由所附的权利要求来限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1