一种对流表中的流表项处理的方法及装置与流程

文档序号:30226534发布日期:2022-06-01 01:41阅读:96来源:国知局
一种对流表中的流表项处理的方法及装置与流程

1.本技术涉及计算机技术领域,特别是涉及一种对流表中的流表项处理的方法及装置。


背景技术:

2.随着技术的飞速发展,网络的作用也越来越大,设备可以通过网络上网,在设备通过网络上网时,设备中的网卡会通过流表(flow表)记录流表项,流表项中记录有网络连接信息(主要可以包括源ip(internet protocol address,互联网协议地址)、目的ip、源端口、目的端口以及网络协议等五元组信息),并基于流表项中记录的网络连接信息来与外界进行数据交换。
3.例如,在外界的数据达到设备的网卡之后,网卡会查询流表并命中数据所需的流表项,然后可以根据流表项转发数据。


技术实现要素:

4.本技术示出了一种对流表中的流表项处理的方法及装置。
5.第一方面,本技术示出了一种对流表中的流表项处理的方法,应用于电子设备,所述电子设备中包括网卡,所述网卡中记录有流表,所述流表中包括有流表项,所述电子设备中运行有用于管理所述网卡的应用程序,所述方法包括:
6.基于所述网卡获取所述流表中的目标流表项在历史过程中被命中的第一命中时刻,以及,获取所述目标流表项的标识;
7.基于所述网卡向所述应用程序发送所述第一命中时刻以及所述标识;
8.基于所述应用程序接收所述第一命中时刻以及所述标识;
9.基于所述应用程序根据所述标识获取第一间隔阈值,所述第一间隔阈值包括所述目标流表项对应的租户事先在所述应用程序中设置的适用于所述租户的间隔阈值;
10.基于所述应用程序确定所述应用程序的当前时刻与所述第一命中时刻之间的第一时间间隔是否大于或等于所述第一间隔阈值;
11.在所述第一时间间隔大于或等于所述第一间隔阈值的情况下,基于所述应用程序向所述网卡发送携带所述标识的删除指令;
12.基于所述网卡接收所述删除指令;
13.基于所述网卡根据所述删除指令中的所述标识删除所述流表中的所述目标流表项。
14.在一个可选的实现方式中,所述方法还包括:
15.在基于所述网卡获取所述流表中的目标流表项在历史过程中被命中的第一命中时刻之后,基于所述网卡确定所述网卡的当前时刻与所述第一命中时刻之间的第二时间间隔是否大于或等于第二间隔阈值,所述第二间隔阈值包括所述网卡的流表中的流表项的默认的间隔阈值;所述第二间隔阈值小于所述第一间隔阈值;
16.在所述第二时间间隔大于或等于所述第二间隔阈值的情况下,再执行所述获取所述目标流表项的标识的步骤。
17.在一个可选的实现方式中,所述基于所述应用程序根据所述标识获取第一间隔阈值,包括:
18.基于所述应用程序在所述流表中的流表项的标识与间隔阈值之间的第一对应关系中,查找与所述目标流表项的标识相对应的第一间隔阈值。
19.在一个可选的实现方式中,所述方法还包括:
20.在所述流表中添加所述租户的所述目标流表项的情况下,基于所述应用程序获取所述租户事先在所述应用程序中设置的第一间隔阈值;
21.基于所述应用程序在所述第一对应关系中存储所述目标流表项的标识以及所述第一间隔阈值。
22.在一个可选的实现方式中,所述基于所述应用程序获取所述租户事先在所述应用程序中设置的第一间隔阈值,包括:
23.基于所述应用程序获取所述租户的标识;
24.基于所述应用程序在租户的标识与租户的间隔阈值之间的第二对应关系中,查找与所述租户的标识相对应的第一间隔阈值。
25.在一个可选的实现方式中,所述方法还包括:
26.基于所述应用程序接收所述租户提交的设置请求,所述设置请求包括所述租户的租户标识以及所述租户的第一间隔阈值;所述设置请求用于请求在所述应用程序中为所述租户标识所对应的所述租户设置所述第一间隔阈值;
27.基于所述应用程序在所述第二对应关系中存储所述租户的标识以及所述第一间隔阈值。
28.在一个可选的实现方式中,所述方法还包括:
29.在基于所述网卡接收所述删除指令之后,基于所述网卡根据所述标识获取所述目标流表项在历史过程中被命中的第二命中时刻;所述第二命中时刻与所述第一命中时刻相同或者所述第二命中时刻晚于所述第一命中时刻;
30.基于所述网卡确定所述网卡的当前时刻与所述第二命中时刻之间的第三时间间隔是否大于或等于第一间隔阈值;
31.在所述第三时间间隔大于或等于所述第一间隔阈值的情况下,再执行所述基于所述网卡根据所述删除指令中的所述标识删除所述流表中的所述目标流表项的步骤。
32.在一个可选的实现方式中,所述方法还包括:
33.在基于所述网卡接收所述删除指令之后,基于所述网卡确定所述流表是否处于被轮巡状态;
34.在所述流表未处于被轮巡状态的情况下,再执行所述基于所述网卡根据所述删除指令中的所述标识删除所述流表中的所述目标流表项的步骤。
35.第二方面,本技术示出了一种对流表中的流表项处理的装置,应用于电子设备,所述电子设备中包括网卡,所述网卡中记录有流表,所述流表中包括有流表项,所述电子设备中运行有用于管理所述网卡的应用程序,所述装置包括:
36.第一获取模块,用于基于所述网卡获取所述流表中的目标流表项在历史过程中被
命中的第一命中时刻,以及,第二获取模块,用于获取所述目标流表项的标识;
37.第一发送模块,用于基于所述网卡向所述应用程序发送所述第一命中时刻以及所述标识;
38.第一接收模块,用于基于所述应用程序接收所述第一命中时刻以及所述标识;
39.第三获取模块,用于基于所述应用程序根据所述标识获取第一间隔阈值,所述第一间隔阈值包括所述目标流表项对应的租户事先在所述应用程序中设置的适用于所述租户的间隔阈值;
40.第一确定模块,用于基于所述应用程序确定所述应用程序的当前时刻与所述第一命中时刻之间的第一时间间隔是否大于或等于所述第一间隔阈值;
41.第二发送模块,用于在所述第一时间间隔大于或等于所述第一间隔阈值的情况下,基于所述应用程序向所述网卡发送携带所述标识的删除指令;
42.第二接收模块,用于基于所述网卡接收所述删除指令;
43.删除模块,用于基于所述网卡根据所述删除指令中的所述标识删除所述流表中的所述目标流表项。
44.在一个可选的实现方式中,所述装置还包括:
45.第二确定模块,用于在基于所述网卡获取所述流表中的目标流表项在历史过程中被命中的第一命中时刻之后,基于所述网卡确定所述网卡的当前时刻与所述第一命中时刻之间的第二时间间隔是否大于或等于第二间隔阈值,所述第二间隔阈值包括所述网卡的流表中的流表项的默认的间隔阈值;所述第二间隔阈值小于所述第一间隔阈值;
46.所述第二获取模块还用于:在所述第二时间间隔大于或等于所述第二间隔阈值的情况下,获取所述目标流表项的标识。
47.在一个可选的实现方式中,所述第三获取模块包括:
48.查找单元,用于基于所述应用程序在所述流表中的流表项的标识与间隔阈值之间的第一对应关系中,查找与所述目标流表项的标识相对应的第一间隔阈值。
49.在一个可选的实现方式中,所述第三获取模块还包括:
50.获取单元,用于在所述流表中添加所述租户的所述目标流表项的情况下,基于所述应用程序获取所述租户事先在所述应用程序中设置的第一间隔阈值;
51.存储单元,用于基于所述应用程序在所述第一对应关系中存储所述目标流表项的标识以及所述第一间隔阈值。
52.在一个可选的实现方式中,所述获取单元包括:
53.获取子单元,用于基于所述应用程序获取所述租户的标识;
54.查找子单元,用于基于所述应用程序在租户的标识与租户的间隔阈值之间的第二对应关系中,查找与所述租户的标识相对应的第一间隔阈值。
55.在一个可选的实现方式中,所述获取单元还包括:
56.接收子单元,用于基于所述应用程序接收所述租户提交的设置请求,所述设置请求包括所述租户的租户标识以及所述租户的第一间隔阈值;所述设置请求用于请求在所述应用程序中为所述租户标识所对应的所述租户设置所述第一间隔阈值;
57.存储子单元,用于基于所述应用程序在所述第二对应关系中存储所述租户的标识以及所述第一间隔阈值。
58.在一个可选的实现方式中,所述装置还包括:
59.第四获取模块,用于在基于所述网卡接收所述删除指令之后,基于所述网卡根据所述标识获取所述目标流表项在历史过程中被命中的第二命中时刻;所述第二命中时刻与所述第一命中时刻相同或者所述第二命中时刻晚于所述第一命中时刻;
60.第三确定模块,用于基于所述网卡确定所述网卡的当前时刻与所述第二命中时刻之间的第三时间间隔是否大于或等于第一间隔阈值;
61.所述删除模块还用于:在所述第三时间间隔大于或等于所述第一间隔阈值的情况下,基于所述网卡根据所述删除指令中的所述标识删除所述流表中的所述目标流表项。
62.在一个可选的实现方式中,所述装置还包括:
63.第四确定模块,用于在基于所述网卡接收所述删除指令之后,基于所述网卡确定所述流表是否处于被轮巡状态;
64.所述删除模块还用于:在所述流表未处于被轮巡状态的情况下,基于所述网卡根据所述删除指令中的所述标识删除所述流表中的所述目标流表项。
65.第三方面,本技术示出了一种电子设备,所述电子设备包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为执行如前述的任一方面所示的方法。
66.第四方面,本技术示出了一种非临时性计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如前述的任一方面所示的方法。
67.第五方面,本技术示出了一种计算机程序产品,当所述计算机程序产品中的指令由电子设备的处理器执行时,使得电子设备能够执行如前述的任一方面所示的方法。
68.与现有技术相比,本技术包括以下优点:
69.在本技术中,通过“当前时刻与目标流表项在历史过程中被命中的第一命中时刻之间的时间间隔”与“目标流表项对应的租户事先在应用程序中设置的适用于目标流表项对应的租户的第一间隔阈值”之间的大小关系来确定是否在流表中删除目标流表项,可以实现按照租户的实际需求(例如租户实际要求的老化时间)在流表中删除租户对应的流表项,避免出现“租户之后本来还需要使得网卡使用租户对应的目标流表项来转发数据,但是,由于目标流表项根据统一的老化时间已经被删除了而导致网卡无法得到目标流表项并无法使用目标流表项来转发租户的数据”的情况发生,从而可以避免影响租户基于租用的设备对外提供服务,避免被租户投诉,可以提高租户的体验。
70.另外,在一个方式中,若应用程序需要从网卡中得到流表项在历史过程中被命中的命中时刻,则应用程序可以向网卡发送(例如基于电子设备中的总线向网卡发送)获取指令,网卡在得到获取指令之后,再向应用程序返回(例如基于电子设备中的总线向应用程序返回)流表项在历史过程中被命中的命中时刻。
71.但是,在这种方式中,为了应用程序能够得到流表项在历史过程中被命中的命中时刻,需要应用程序与网卡之间的两次的数据传输,例如,需要基于电子设备中的总线进行两次的数据传输,占用电子设备中的总线的带宽较多。
72.而在本技术中,不需要应用程序向网卡发送获取指令,而网卡可以主动向应用程序发送流表项在历史过程中被命中的命中时刻,从而可以避免获取指令占用电子设备中的总线的带宽,如此,通过本技术的方式可以节省电子设备中的总线的带宽。
附图说明
73.图1是本技术的一种对流表中的流表项处理的方法的步骤流程图。
74.图2是本技术的一种对流表中的流表项处理的装置的结构框图。
75.图3是本技术的一种装置的结构框图。
具体实施方式
76.为使本技术的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本技术作进一步详细的说明。
77.网卡的流表能够记录的流表项的数量是有限的,在流表中记录的流表项的数量达到最大数量的情况下,就无法继续在流表中继续添加新的流表项了,这样会影响后续设备与外界之间的数据交换,例如,之后就无法在流表中添加其他数据涉及的流表项,进而无法基于其他数据涉及的流表项转发需要转发的其他数据。
78.因此,往往会为网卡设置流表项的老化时间,流表项的老化时间可以理解为:流表项在历史过程中被命中的命中时刻(例如包括最后一次被命中的命中时刻等)至其需要在流表中被删除的时刻之间的时间间隔。
79.若当前时刻与流表项在历史过程中被命中的命中时刻之间的时间间隔大于或等于流表项的老化时间,则网卡可以在流表中删除流表项,以在流表中腾出空闲位置,使得之后在网卡的流表中可以添加新的流表项,进而使得后续设备与外界可以基于新的流表项进行数据交换。
80.其中,可以是设备提供商为设备的网卡设置一个统一的老化时间。
81.然而,发明人对上述情况进行分析之后发现,在设备的网卡为一个用户提供服务的情况下,设备提供商为设备的网卡设置一个统一的老化时间有时候可以满足需求,往往也不一定影响设备与外界进行数据交换。用户正常使用设备的网卡转发数据往往也不会遇到什么问题。
82.然而,在一些可能的情况下,为设备的网卡设置一个统一的老化时间往往无法满足实际需求,例如删除流表项过早进而导致之后在需要使用流表项转发数据的时候流表项无法被用来转发数据,影响设备与外界进行数据交换。
83.例如,设备提供商提供有设备集群,设备集群可以对外出租,租户可以租用设备提供商提供的设备集群中的设备,并使用租用的设备,例如,租户可以使用租用的设备为广大用户提供服务,例如,提供电商服务、物流服务或者游戏服务等,在租户使用租用的设备为广大用户提供服务的过程中,租用的设备往往与外界需要进行数据交换。
84.另外,设备提供商可以为设备集群中的各个设备的网卡设置一个统一的老化时间,例如,设备集群中的各个设备的网卡针对流表项使用一个统一的老化时间。
85.但是,发明人对上述情况分析后发现,网卡的流表中的每一个流表项用来转发数据,任意一个流表项用来转发的数据是隶属于一个租户的(也即对应一个租户),且租用设备集群的租户的数量是往往海量的,以及,设备集群中的每一个设备均可能是被两个以上的租户共享租用,如此,设备集群中的各个设备的网卡的流表中的不同的流表项隶属的租户(对应的租户)不全相同。
86.发明人又发现,不同的租户对各自对应的流表项的老化时间的要求往往是不全相
同的,也即,不同的租户对各自对应的流表项的老化时间的要求往往是有差异的,且通常与设备提供商设置的统一的老化时间不一致。
87.如此,对于设备集群中的设备的网卡的流表中的任意一个租户对应的流表项,在该租户期望的该租户对应的流表项的老化时间与设备提供商设置的统一的老化时间不一致的情况下,若当前时刻与该租户对应的一个流表项在历史过程中被命中的命中时刻之间的时间间隔大于或等于统一的老化时间,则设备会就在网卡的流表中删除该租户对应的这一个流表项,会导致设备无法按照该租户的实际需求删除该租户对应的这一个流表项(无法按照该租户期望的老化时间删除该租户对应的这一个流表项),例如,删除该租户对应的这一个流表项的时刻过早等。
88.这样会至少导致如下情况:
89.该租户之后本来还需要使得网卡使用该租户对应的这一个流表项来转发数据,但是,由于该租户对应的这一个流表项已经被删除了,则导致网卡无法使用该租户对应的这一个流表项来转发该租户的数据,影响对该租户基于租用的设备对外提供服务。
90.对于设备集群中的设备的网卡的流表中的其他每一个租户对应的流表项,同样如此。
91.鉴于此,提出了避免影响租户基于租用的设备对外提供服务的需求。
92.为了达到避免影响租户基于租用的设备对外提供服务的目的,发明人通过上述分析想到了,可以按照租户的实际需求(租户实际要求的老化时间)删除租户对应的流表项,而可以不按照设备提供商设置的统一的老化时间删除租户对应的流表项。
93.为了达到“按照租户的实际需求(租户实际要求的老化时间)删除租户对应的流表项,而不按照设备提供商设置的统一的老化时间删除租户对应的流表项”的目的,发明人想到了可以支持租户设置各自对应的流表项的老化时间,以及,对于任意一个租户,若当前时刻与该租户对应的一个流表项在历史过程中被命中的命中时刻之间的时间间隔大于或等于该租户设置的老化时间,则在设备的网卡的流表中删除该租户对应的这一个流表项。
94.具体地,参照图1,示出了本技术的一种对流表中的流表项处理的方法的流程示意图,该方法应用于电子设备中,电子设备可以是实体的电子设备,也可以是虚拟的电子设备(例如虚拟机)等,电子设备中包括网卡,网卡可以是实体网卡,也可以是虚拟网卡(例如eni(elastic network interface,弹性网卡)等)等,网卡中记录有流表,流表中包括有流表项,电子设备中还运行有用于管理网卡的应用程序(例如包括网卡的驱动程序等,应用程序可以是网卡的生产商为网卡配套开发的等)。
95.具体地,该方法包括:
96.在步骤s101中,基于网卡获取流表中的目标流表项在历史过程中被命中的第一命中时刻,以及,基于网卡获取目标流表项的标识。
97.在本技术中,网卡的流表中记录有至少一个流表项,在一种可能的情况下,网卡的流表中记录有多个流表项,流表项中除了包括用于转发数据的五元组信息以外,还可以包括流表项的标识以及流表项在历史过程中被命中的命中时刻等。
98.在本技术中,流表项在历史过程中被命中的命中时刻包括流表项最后一次被命中的命中时刻,也可以包括倒数第二次被命中的命中时刻,也可以包括最后多次分别被命中的不同命中时刻的之间的平均时刻等。
99.在本技术中,不同的流表项的标识不同。
100.在一个例子中,在外界的一个数据进入到电子设备的网卡的情况下,网卡会查询流表,若命中该一个数据对应的流表项,则可以根据命中的该一个数据对应的流表项转发该一个数据,以及,网卡可以记录命中该一个数据对应的流表项时的命中时刻,并将命中该一个数据对应的流表项时的命中时刻作为流表项在历史过程中被命中的命中时刻存储在该一个数据对应的流表项中。
101.之后在外界的另一个数据进入到电子设备的网卡的情况下,网卡会查询流表,若命中另一个数据对应的流表项,则可以根据命中的另一个数据对应的流表项转发另一个数据,以及,网卡可以记录命中另一个数据对应的流表项时的命中时刻,并将命中另一个数据对应的流表项时的命中时刻作为流表项在历史过程中被命中的命中时刻存储在该一个数据对应的流表项中。其中,若该一个数据对应的流表项与另一个数据对应的流表项相同,则可以使用命中另一个数据对应的流表项时的命中时刻替换该一个数据对应的流表项中已存储的该一个数据对应的流表项在历史过程中被命中的命中时刻。
102.在本步骤中,可以基于网卡主动轮巡网卡的流表,每当轮巡到网卡的流表中的一个流表项,则可以获取该一个流表项中记录的该一个流表项的标识以及该一个流表项在历史过程中被命中的命中时刻。
103.其中,本技术所示的目标流表项为流表中的其中的一个流表项(是作为举例说明)。
104.在步骤s102中,基于网卡向应用程序发送第一命中时刻以及目标流表项的标识。
105.在本技术中,网卡可以基于电子设备中的总线(例如pc接口/pg接口对应的profibus总线或pn接口/ie接口对应profinet总线等)向应用程序发送第一命中时刻以及目标流表项的标识。
106.在步骤s103中,基于应用程序接收第一命中时刻以及目标流表项的标识。
107.在本技术中,应用程序可以基于电子设备中的总线接收网卡发送的第一命中时刻以及目标流表项的标识。
108.在步骤s104中,基于应用程序根据目标流表项的标识获取第一间隔阈值,第一间隔阈值包括目标流表项对应的租户事先在应用程序中设置的适用于目标流表项对应的租户的间隔阈值。
109.在本技术一个实施例中,电子设备被租户租用,用于处理租户的数据,网卡在工作的过程中,会转发租户的数据,为了能够转发租户的数据,有时候需要在网卡的流表中添加需要的流表项,以使得之后可以基于添加的流表项来转发数据。
110.在一个例子中,事先在流表中添加租户的目标流表项的情况下,可以在应用程序中为目标流表项设置第一间隔阈值,例如,基于应用程序获取目标流表项对应的租户事先在应用程序中设置的第一间隔阈值,然后,基于应用程序在流表中的流表项的标识与间隔阈值之间的第一对应关系中存储目标流表项的标识以及第一间隔阈值。以实现将目标流表项的标识与目标流表项对应的租户事先在应用程序中设置的第一间隔阈值绑定,进而实现在应用程序中为目标流表项设置第一间隔阈值。
111.如此,在基于应用程序根据目标流表项的标识获取第一间隔阈值时,可以基于应用程序在流表中的流表项的标识与间隔阈值之间的第一对应关系中,查找与目标流表项的
标识相对应的第一间隔阈值。
112.其中,租用电子设备的租户可以自行在运行在电子设备上的应用程序上设置适用于自己的第一间隔阈值,例如,目标流表项对应的租户可以向应用程序提交设置请求,该设置请求包括该租户的标识以及该租户适用的第一间隔阈值。该设置请求用于请求在应用程序中为该标识所对应的该租户设置第一间隔阈值。电子设备可以基于应用程序接收该租户提交的该设置请求,并基于应用程序在租户的标识与租户的间隔阈值之间的第二对应关系中存储该租户的标识以及第一间隔阈值。
113.如此,在基于应用程序获取目标流表项对应的租户事先在应用程序中设置的第一间隔阈值时,可以基于应用程序获取目标流表项对应的租户的标识,然后在租户的标识与租户的间隔阈值之间的第二对应关系中,查找与目标流表项对应的租户的标识相对应的第一间隔阈值。
114.在步骤s105中,基于应用程序确定应用程序的当前时刻与第一命中时刻之间的第一时间间隔是否大于或等于第一间隔阈值。
115.在本技术一个实施例中,可以基于应用程序获取应用程序的当前时刻,然后计算应用程序的当前时刻与第一命中时刻之间的差值,得到第一时间间隔,并比较第一时间间隔与第一间隔阈值之间的大小关系。
116.在第一时间间隔大于或等于第一间隔阈值的情况下,在步骤s106中,基于应用程序向网卡发送携带目标流表项的标识的删除指令。
117.在第一时间间隔大于或等于第一间隔阈值的情况下,则说明网卡的流表中的目标流表项已经至少间隔了第一间隔阈值未被命中,很可能是对租户的数据的转发不再需要使用目标流表项了,如此,可以删除网卡的流表中的目标流表项(以使之后可以继续在网卡的流表中添加其他需要使用的流表项),具体地,可以基于应用程序生成携带目标流表项的标识的删除指令,并向网卡发送携带目标流表项的标识的删除指令。
118.在本技术中,应用程序可以基于电子设备中的总线向网卡发送携带目标流表项的标识的删除指令。
119.在第一时间间隔小于第一间隔阈值的情况下,则说明网卡的流表中的目标流表项可能并不是间隔了第一间隔阈值持续未被命中,也即,网卡的流表中的目标流表项在当前时刻之前的第一间隔阈值之内可能被命中过,之后对租户的数据的转发可能还需要使用目标流表项,如此,可以先不删除网卡中的目标流表项,避免出现“之后在需要使用目标流表项转发数据时无法得到目标流表项而无法转发数据”的情况发生。
120.在步骤s107中,基于网卡接收该删除指令。
121.在本技术中,网卡可以基于电子设备中的总线接收应用程序发送的携带目标流表项的标识的删除指令。
122.在步骤s108中,基于网卡根据该删除指令中的目标流表项的标识删除流表中的目标流表项。
123.在本技术中,通过“当前时刻与目标流表项在历史过程中被命中的第一命中时刻之间的时间间隔”与“目标流表项对应的租户事先在应用程序中设置的适用于目标流表项对应的租户的第一间隔阈值”之间的大小关系来确定是否在流表中删除目标流表项,可以实现按照租户的实际需求(例如租户实际要求的老化时间)在流表中删除租户对应的流表
项,避免出现“租户之后本来还需要使得网卡使用租户对应的目标流表项来转发数据,但是,由于目标流表项根据统一的老化时间已经被删除了而导致网卡无法得到目标流表项并无法使用目标流表项来转发租户的数据”的情况发生,从而可以避免影响租户基于租用的设备对外提供服务,避免被租户投诉,可以提高租户的体验。
124.另外,在一个方式中,若应用程序需要从网卡中得到流表项在历史过程中被命中的命中时刻,则应用程序可以向网卡发送(例如基于电子设备中的总线向网卡发送)获取指令,网卡在得到获取指令之后,再向应用程序返回(例如基于电子设备中的总线向应用程序返回)流表项在历史过程中被命中的命中时刻。
125.但是,在这种方式中,为了应用程序能够得到流表项在历史过程中被命中的命中时刻,需要应用程序与网卡之间的两次的数据传输,例如,需要基于电子设备中的总线进行两次的数据传输,占用电子设备中的总线的带宽较多。
126.而在本技术中,不需要应用程序向网卡发送获取指令,而网卡可以主动向应用程序发送流表项在历史过程中被命中的命中时刻,从而可以避免获取指令占用电子设备中的总线的带宽,如此,通过本技术的方式可以节省电子设备中的总线的带宽。
127.在本技术一个实施例中,一方面,目标流表项对应的租户事先在应用程序中设置了第一间隔阈值,用于作为决定是否删除网卡中的租户对应的流表项的时间门限。
128.另一方面,电子设备的提供商(管理电子设备且用于向外提供租赁电子设备的服务)或者网卡的生产商事先也可能会在网卡中设置统一的第二间隔阈值(可以作为一个默认的间隔阈值)。在一个实施例中,第一间隔阈值可以大于第二间隔阈值。
129.在一个可能的情况下,租户为了使得自己的数据能够正常被转发或者为了使得自己的数据的转发尽可能地不受影响,租户在应用程序中往往会将第一时间间隔设置地较大,例如,50秒、60秒或者70秒等(此处的时间仅仅是举例的示例性说明,但不作为对本技术的方案的限制)。
130.然而,网卡主动轮巡网卡的流表的频率较高,例如,网卡间隔数秒(例如3秒、5秒或7秒等)就会主动轮巡一次网卡的流表,也即,网卡每隔3秒、5秒或7秒等网卡主动轮巡一次网卡的流表。
131.由于第一间隔阈值(例如50秒、60秒或者70秒等)大于第二间隔阈值(例如3秒、5秒或7秒等),因此,网卡在最初的很多次轮巡网卡的流表的过程中,目标流表项在历史过程中被命中的第一命中时刻与当前时刻之间的时间间隔均不会大于或等于第一间隔阈值。
132.但是,在经过对网卡的流表轮巡一次之后,如果在网卡得到了目标流表项在历史过程中被命中的第一命中时刻之后,就获取目标流表项的标识并向应用程序发送第一命中时刻以及目标流表项的标识。则应用程序就需要获取第一间隔阈值并确定应用程序的当前时刻与第一命中时刻之间的第一时间间隔是否大于或等于第一间隔阈值,且往往会确定出小于第一间隔阈值,也就不会删除网卡中的目标流表项。
133.可见,在上述过程中,应用程序多次反复执行“获取第一间隔阈值并确定应用程序的当前时刻与第一命中时刻之间的第一时间间隔是否大于或等于第一间隔阈值”的动作是没有意义的,是无效的,是没有必要执行的,会耗费应用程序占用的系统资源。
134.因此,为了节省应用程序占用的系统资源,在本技术中,可以尽可能地降低应用程序无效执行“获取第一间隔阈值并确定应用程序的当前时刻与第一命中时刻之间的第一时
间间隔是否大于或等于第一间隔阈值”的动作的次数。
135.为了尽可能地降低应用程序无效执行“获取第一间隔阈值并确定应用程序的当前时刻与第一命中时刻之间的第一时间间隔是否大于或等于第一间隔阈值”的动作的次数,在本技术中,可以使得网卡尽可能少地向应用程序无效发送目标流表项在历史过程中被命中的第一命中时刻以及目标流表项的标识。
136.为了使得网卡尽可能少地向应用程序无效发送目标流表项在历史过程中被命中的第一命中时刻以及目标流表项的标识,在一个方式中,在基于网卡获取流表中的目标流表项在历史过程中被命中的第一命中时刻之后,可以基于网卡确定网卡的当前时刻与第一命中时刻之间的第二时间间隔是否大于或等于第二间隔阈值,第二间隔阈值包括网卡的流表中的流表项的默认的间隔阈值(可以是电子设备的提供商统一设置的等)。第二间隔阈值可以小于第一间隔阈值。在第二时间间隔大于或等于第二间隔阈值的情况下,再获取目标流表项的标识,并向应用程序发送目标流表项在历史过程中被命中的第一命中时刻以及目标流表项的标识。
137.在本实施例中,在当前时刻与第一命中时刻之间的时间间隔小于第二间隔阈值的情况下,当前时刻与第一命中时刻之间的时间间隔必然小于第一间隔阈值。而在当前时刻与第一命中时刻之间的时间间隔大于第二间隔阈值的情况下,当前时刻与第一命中时刻之间的时间间隔才可能大于第一间隔阈值。
138.因此,在当前时刻与第一命中时刻之间的时间间隔大于第二间隔阈值的情况下再向应用程序发送第一命中时刻以及目标流表项的标识,可以降低向应用程序无效发送第一命中时刻以及目标流表项的标识的次数,从而降低应用程序无效执行“获取第一间隔阈值并确定应用程序的当前时刻与第一命中时刻之间的第一时间间隔是否大于或等于第一间隔阈值”的动作的次数,如此可以节省应用程序占用的系统资源。
139.在本技术中,在一种可能的情况下,网卡在工作时使用的可以是网卡自己的系统资源,而应用程序在工作时使用的是电子设备的系统资源,例如,应用程序在工作时使用的是电子设备中的cpu(central processing unit,中央处理器)以及内存等,也即,网卡使用的系统资源与应用程序使用的系统资源可以不同,然而,电子设备为应用程序分配的系统资源是有限的,通过本实施例,将一部分判断当前时刻与第一命中时刻之间的时间间隔是否大于或等于间隔阈值的工作从应用程序分流至网卡执行,以降低应用程序判断当前时刻与第一命中时刻之间的时间间隔是否大于或等于间隔阈值的工作负担(通过减少判断次数来降低工作负担),从而可以节省电子设备为应用程序分配的系统资源,例如,节省电子设备为应用程序分配的cpu以及内存等。
140.在本技术一个实施例中,在网卡接收到该删除指令之后,就可以立刻根据该删除指令中的目标流表项标识删除流表中的目标流表项。
141.然而,发明人发现,网卡向应用程序发送“目标流表项在历史过程中被命中的第一命中时刻以及目标流表项的标识”时的发送时刻与网卡接收到该删除指令时的接收时刻之间可能具有一段时间间隔,在这段时间间隔内,网卡的流表中的目标流表项可能未被命中,也可能被命中了至少一次。
142.在这段时间间隔内网卡的流表中的目标流表项被命中了的情况下,目标流表项在历史过程中被命中的命中时刻即不再是第一命中时刻,目标流表项在历史过程中被命中的
命中时刻是晚于第一命中时刻的一个时刻,例如是第二命中时刻等。
143.而网卡的当前时刻与第二命中时刻之间的第三时间间隔并不一定会大于或等于第一间隔阈值,网卡的当前时刻与第二命中时刻之间的第三时间间隔是否大于或等于第一间隔阈值决定了是否可以删除目标流表项。
144.如此,在本技术另一实施例中,在基于网卡接收该删除指令之后,可以基于网卡根据目标流表项的标识获取目标流表项在历史过程中被命中的第二命中时刻(其中,实际情况中,第二命中时刻与第一命中时刻可能相同,或者,第二命中时刻晚于第一命中时刻)。
145.然后可以基于网卡确定网卡的当前时刻与第二命中时刻之间的第三时间间隔是否大于或等于第一间隔阈值。
146.其中,在网卡向应用程序发送第一命中时刻以及目标流表项的标识至网卡接收到该删除指令之间的了一段时间内如果目标流表项未被命中,则第二命中时刻与第一命中时刻相同,网卡的当前时刻与第二命中时刻之间的第三时间间隔大于第一间隔阈值。
147.或者,在网卡向应用程序发送第一命中时刻以及目标流表项的标识至网卡接收到该删除指令之间的一段时间内如果目标流表项被命中过,则第二命中时刻晚于第一命中时刻,网卡的当前时刻与第二命中时刻之间的第三时间间隔可能并不大于或等于第一间隔阈值。
148.在网卡的当前时刻与第二命中时刻之间的第三时间间隔大于或等于第一间隔阈值的情况下,再基于网卡根据该删除指令中的目标流表项的标识删除流表中的目标流表项。
149.在网卡的当前时刻与第二命中时刻之间的第三时间间隔小于第一间隔阈值的情况下,可以先不基于网卡根据删除指令中的目标流表项的标识删除流表中的目标流表项,待之后在网卡的当前时刻与第二命中时刻之间的第三时间间隔大于或等于第一间隔阈值的情况下,再获取目标流表项的标识,再开始执行步骤s102~步骤s108。
150.或者,发明人发现,在基于网卡接收到该删除指令之后,可能正好网卡需要转发租户的数据,而为了转发租户的数据,则需要轮巡网卡的流表以命中转发该数据需要使用的流表项,在一种可能的情况下,需要转发该数据需要使用的流表项可能是目标流表项。
151.在这种情况下,如果在基于网卡接收到该删除指令之后立刻基于网卡根据该删除指令中的目标流表项的标识删除流表中的目标流表项,则很可能导致网卡无法命中转发该数据需要使用的目标流表项,进而对网卡转发该数据带来影响。
152.因此,为了避免这种情况发生,在本技术另一实施例中,在基于网卡接收到该删除指令之后,可以基于网卡确定流表是否处于被轮巡状态。
153.例如,在网卡开始轮巡网卡的流表时,网卡可以自行设置流表的状态为被轮巡的状态,当网卡结束轮巡网卡的流表时,网卡可以自行设置流表的状态为未被轮巡的状态。用于标识被轮巡的状态的标识符以及未被轮巡的状态的标识符可以记录在流表中的特定的字段中。如此,可以根据网卡中的特定的字段中的标识符来确定网卡的流表是否处于被轮巡状态。
154.在流表处于被轮巡状态的情况下,则说明网卡正在轮巡网卡的流表且可能以期命中转发租户的数据需要使用的目标流表项,因此,可以先不基于网卡根据该删除指令中的目标流表项的标识删除流表中的目标流表项。而在流表未处于被轮巡状态的情况下,可以
基于网卡根据该删除指令中的目标流表项的标识删除流表中的目标流表项。
155.需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术并不受所描述的动作顺序的限制,因为依据本技术,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作并不一定是本技术所必须的。
156.参照图2,示出了本技术的一种对流表中的流表项处理的装置的结构框图,应用于电子设备,所述电子设备中包括网卡,所述网卡中记录有流表,所述流表中包括有流表项,所述电子设备中运行有用于管理所述网卡的应用程序,所述装置包括:
157.第一获取模块11,用于基于所述网卡获取所述流表中的目标流表项在历史过程中被命中的第一命中时刻,以及,第二获取模块12,用于获取所述目标流表项的标识;
158.第一发送模块13,用于基于所述网卡向所述应用程序发送所述第一命中时刻以及所述标识;
159.第一接收模块14,用于基于所述应用程序接收所述第一命中时刻以及所述标识;
160.第三获取模块15,用于基于所述应用程序根据所述标识获取第一间隔阈值,所述第一间隔阈值包括所述目标流表项对应的租户事先在所述应用程序中设置的适用于所述租户的间隔阈值;
161.第一确定模块16,用于基于所述应用程序确定所述应用程序的当前时刻与所述第一命中时刻之间的第一时间间隔是否大于或等于所述第一间隔阈值;
162.第二发送模块17,用于在所述第一时间间隔大于或等于所述第一间隔阈值的情况下,基于所述应用程序向所述网卡发送携带所述标识的删除指令;
163.第二接收模块18,用于基于所述网卡接收所述删除指令;
164.删除模块19,用于基于所述网卡根据所述删除指令中的所述标识删除所述流表中的所述目标流表项。
165.在一个可选的实现方式中,所述装置还包括:
166.第二确定模块,用于在基于所述网卡获取所述流表中的目标流表项在历史过程中被命中的第一命中时刻之后,基于所述网卡确定所述网卡的当前时刻与所述第一命中时刻之间的第二时间间隔是否大于或等于第二间隔阈值,所述第二间隔阈值包括所述网卡的流表中的流表项的默认的间隔阈值;所述第二间隔阈值小于所述第一间隔阈值;
167.所述第二获取模块还用于:在所述第二时间间隔大于或等于所述第二间隔阈值的情况下,获取所述目标流表项的标识。
168.在一个可选的实现方式中,所述第三获取模块包括:
169.查找单元,用于基于所述应用程序在所述流表中的流表项的标识与间隔阈值之间的第一对应关系中,查找与所述目标流表项的标识相对应的第一间隔阈值。
170.在一个可选的实现方式中,所述第三获取模块还包括:
171.获取单元,用于在所述流表中添加所述租户的所述目标流表项的情况下,基于所述应用程序获取所述租户事先在所述应用程序中设置的第一间隔阈值;
172.存储单元,用于基于所述应用程序在所述第一对应关系中存储所述目标流表项的标识以及所述第一间隔阈值。
173.在一个可选的实现方式中,所述获取单元包括:
174.获取子单元,用于基于所述应用程序获取所述租户的标识;
175.查找子单元,用于基于所述应用程序在租户的标识与租户的间隔阈值之间的第二对应关系中,查找与所述租户的标识相对应的第一间隔阈值。
176.在一个可选的实现方式中,所述获取单元还包括:
177.接收子单元,用于基于所述应用程序接收所述租户提交的设置请求,所述设置请求包括所述租户的租户标识以及所述租户的第一间隔阈值;所述设置请求用于请求在所述应用程序中为所述租户标识所对应的所述租户设置所述第一间隔阈值;
178.存储子单元,用于基于所述应用程序在所述第二对应关系中存储所述租户的标识以及所述第一间隔阈值。
179.在一个可选的实现方式中,所述装置还包括:
180.第四获取模块,用于在基于所述网卡接收所述删除指令之后,基于所述网卡根据所述标识获取所述目标流表项在历史过程中被命中的第二命中时刻;所述第二命中时刻与所述第一命中时刻相同或者所述第二命中时刻晚于所述第一命中时刻;
181.第三确定模块,用于基于所述网卡确定所述网卡的当前时刻与所述第二命中时刻之间的第三时间间隔是否大于或等于第一间隔阈值;
182.所述删除模块还用于:在所述第三时间间隔大于或等于所述第一间隔阈值的情况下,基于所述网卡根据所述删除指令中的所述标识删除所述流表中的所述目标流表项。
183.在一个可选的实现方式中,所述装置还包括:
184.第四确定模块,用于在基于所述网卡接收所述删除指令之后,基于所述网卡确定所述流表是否处于被轮巡状态;
185.所述删除模块还用于:在所述流表未处于被轮巡状态的情况下,基于所述网卡根据所述删除指令中的所述标识删除所述流表中的所述目标流表项。
186.在本技术中,通过“当前时刻与目标流表项在历史过程中被命中的第一命中时刻之间的时间间隔”与“目标流表项对应的租户事先在应用程序中设置的适用于目标流表项对应的租户的第一间隔阈值”之间的大小关系来确定是否在流表中删除目标流表项,可以实现按照租户的实际需求(例如租户实际要求的老化时间)在流表中删除租户对应的流表项,避免出现“租户之后本来还需要使得网卡使用租户对应的目标流表项来转发数据,但是,由于目标流表项根据统一的老化时间已经被删除了而导致网卡无法得到目标流表项并无法使用目标流表项来转发租户的数据”的情况发生,从而可以避免影响租户基于租用的设备对外提供服务,避免被租户投诉,可以提高租户的体验。
187.另外,在一个方式中,若应用程序需要从网卡中得到流表项在历史过程中被命中的命中时刻,则应用程序可以向网卡发送(例如基于电子设备中的总线向网卡发送)获取指令,网卡在得到获取指令之后,再向应用程序返回(例如基于电子设备中的总线向应用程序返回)流表项在历史过程中被命中的命中时刻。
188.但是,在这种方式中,为了应用程序能够得到流表项在历史过程中被命中的命中时刻,需要应用程序与网卡之间的两次的数据传输,例如,需要基于电子设备中的总线进行两次的数据传输,占用电子设备中的总线的带宽较多。
189.而在本技术中,不需要应用程序向网卡发送获取指令,而网卡可以主动向应用程序发送流表项在历史过程中被命中的命中时刻,从而可以避免获取指令占用电子设备中的
总线的带宽,如此,通过本技术的方式可以节省电子设备中的总线的带宽。
190.本技术实施例还提供了一种非易失性可读存储介质,该存储介质中存储有一个或多个模块(programs),该一个或多个模块被应用在设备时,可以使得该设备执行本技术实施例中各方法步骤的指令(instructions)。
191.本技术实施例提供了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得电子设备执行如上述实施例中一个或多个所述的方法。本技术实施例中,所述电子设备包括服务器、网关、子设备等,子设备为物联网设备等设备。
192.本公开的实施例可被实现为使用任意适当的硬件,固件,软件,或及其任意组合进行想要的配置的装置,该装置可包括服务器(集群)、终端设备如iot设备等电子设备。
193.图3示意性地示出了可被用于实现本技术中所述的各个实施例的示例性装置1300。
194.对于一个实施例,图3示出了示例性装置1300,该装置具有一个或多个处理器1302、被耦合到(一个或多个)处理器1302中的至少一个的控制模块(芯片组)1304、被耦合到控制模块1304的存储器1306、被耦合到控制模块1304的非易失性存储器(nvm)/存储设备1308、被耦合到控制模块1304的一个或多个输入/输出设备1310,和被耦合到控制模块1304的网络接口1312。
195.处理器1302可包括一个或多个单核或多核处理器,处理器1302可包括通用处理器或专用处理器(例如图形处理器、应用处理器、基频处理器等)的任意组合。在一些实施例中,装置1300能够作为本技术实施例中所述网关等服务器设备。
196.在一些实施例中,装置1300可包括具有指令1314的一个或多个计算机可读介质(例如,存储器1306或nvm/存储设备1308)和与该一个或多个计算机可读介质相合并被配置为执行指令1314以实现模块从而执行本公开中所述的动作的一个或多个处理器1302。
197.对于一个实施例,控制模块1304可包括任意适当的接口控制器,以向(一个或多个)处理器1302中的至少一个和/或与控制模块1304通信的任意适当的设备或组件提供任意适当的接口。
198.控制模块1304可包括存储器控制器模块,以向存储器1306提供接口。存储器控制器模块可以是硬件模块、软件模块和/或固件模块。
199.存储器1306可被用于例如为装置1300加载和存储数据和/或指令1314。对于一个实施例,存储器1306可包括任意适当的易失性存储器,例如,适当的dram。在一些实施例中,存储器1306可包括双倍数据速率四同步动态随机存取存储器(ddr4sdram)。
200.对于一个实施例,控制模块1304可包括一个或多个输入/输出控制器,以向nvm/存储设备1308及(一个或多个)输入/输出设备1310提供接口。
201.例如,nvm/存储设备1308可被用于存储数据和/或指令1314。nvm/存储设备1308可包括任意适当的非易失性存储器(例如,闪存)和/或可包括任意适当的(一个或多个)非易失性存储设备(例如,一个或多个硬盘驱动器(hdd)、一个或多个光盘(cd)驱动器和/或一个或多个数字通用光盘(dvd)驱动器)。
202.nvm/存储设备1308可包括在物理上作为装置1300被安装在其上的设备的一部分的存储资源,或者其可被该设备访问可不必作为该设备的一部分。例如,nvm/存储设备1308可通过网络经由(一个或多个)输入/输出设备1310进行访问。
203.(一个或多个)输入/输出设备1310可为装置1300提供接口以与任意其他适当的设备通信,输入/输出设备1310可以包括通信组件、拼音组件、传感器组件等。网络接口1312可为装置1300提供接口以通过一个或多个网络通信,装置1300可根据一个或多个无线网络标准和/或协议中的任意标准和/或协议来与无线网络的一个或多个组件进行无线通信,例如接入基于通信标准的无线网络,如wifi、2g、3g、4g、5g等,或它们的组合进行无线通信。
204.对于一个实施例,(一个或多个)处理器1302中的至少一个可与控制模块1304的一个或多个控制器(例如,存储器控制器模块)的逻辑封装在一起。对于一个实施例,(一个或多个)处理器1302中的至少一个可与控制模块1304的一个或多个控制器的逻辑封装在一起以形成系统级封装(sip)。对于一个实施例,(一个或多个)处理器1302中的至少一个可与控制模块1304的一个或多个控制器的逻辑集成在同一模具上。对于一个实施例,(一个或多个)处理器1302中的至少一个可与控制模块1304的一个或多个控制器的逻辑集成在同一模具上以形成片上系统(soc)。
205.在各个实施例中,装置1300可以但不限于是:服务器、台式计算设备或移动计算设备(例如,膝上型计算设备、手持计算设备、平板电脑、上网本等)等终端设备。在各个实施例中,装置1300可具有更多或更少的组件和/或不同的架构。例如,在一些实施例中,装置1300包括一个或多个摄像机、键盘、液晶显示器(lcd)屏幕(包括触屏显示器)、非易失性存储器端口、多个天线、图形芯片、专用集成电路(asic)和扬声器。
206.本技术实施例提供了一种电子设备,包括:一个或多个处理器;和,其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行如本技术中一个或多个所述的方法。
207.对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
208.本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
209.本技术实施例是参照根据本技术实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、和流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程信息处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程信息处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
210.这些计算机程序指令也可存储在能引导计算机或其他可编程信息处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
211.这些计算机程序指令也可装载到计算机或其他可编程信息处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
212.尽管已描述了本技术实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例和落入本技术实施例范围的所有变更和修改。
213.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
214.以上对本技术所提供的对流表中的流表项处理的方法及装置,进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1