会话管理方法、装置、电子设备及存储介质与流程
未命名
10-21
阅读:42
评论:0
1.本技术涉及通信技术领域,尤其涉及一种会话管理方法、装置、电子设备及存储介质。
背景技术:
2.网络地址转换(nat,network address translation)技术作为有效解决地址紧缺问题的方案之一,通过将私有互联网协议地址(internet protocol address,ip地址)转换为公有ip地址,实现私有网络访问公共网络的功能。
3.基于nat的会话管理通常将不同协议的会话一起进行管理,并采用最久未使用最先删除的方法进行老化管理。
4.但是,采用最久未使用最先删除的方法进行会话删除,可能出现需要删除的会话不能及时删除,需要保持的会话可能被删除然后再被创建,导致出现资源的浪费,以及降低了nat的转发效率。
技术实现要素:
5.针对上述资源的浪费,以及nat转发效率低的问题,本技术提供一种会话管理方法、装置、电子设备及存储介质,可以降低资源的浪费和提高nat的转发效率。
6.第一方面,本技术提供一种会话管理方法,包括:
7.接收针对目标设备的会话请求;
8.获取所述会话请求所属的目标网络地址转换nat会话;
9.根据所述会话请求对应的目标数据传输协议,确定所述目标nat会话的超时时长;不同数据传输协议对应的nat会话的超时时长不同;
10.根据所述超时时长,以及,当前时间,更新所述目标nat会话的超时时间;
11.将更新后的目标nat会话添加至所述目标数据传输协议对应的双向链表中;
12.删除所述目标数据传输协议对应的双向链表中超时的nat会话。
13.可选的,所述获取所述会话请求所属的目标网络地址转换nat会话,包括:
14.根据所述会话请求中携带的所述目标设备的标识,以及,设备标识与会话的映射关系,确定是否存在已创建的nat会话;
15.若存在,则将已创建的nat会话作为所述目标nat会话;
16.若不存在,则根据所述会话请求,创建所述目标nat会话。
17.可选的,所述根据所述会话请求,创建所述目标nat会话,包括:
18.对所述会话请求进行nat规则匹配;
19.若确定所述会话请求与nat规则匹配,则根据所述会话请求中所述目标设备的标识,确定是否存在所述目标设备的双向链表列表;
20.若不存在,则创建所述目标设备的双向链表列表,以及,创建所述目标nat会话。
21.可选的,所述目标设备的标识包括:所述目标设备的ip地址、所述ip地址对应的端
口标识、路由转发表;
22.所述根据所述会话请求中携带的所述目标设备的标识,以及,设备标识与会话的映射关系,确定是否存在已创建的nat会话,包括:
23.根据所述ip地址、所述端口标识、数据传输协议,以及,所述路由转发表,生成所述目标设备的哈希键;
24.根据所述哈希键,在基于键值对构建的会话关系表中查询是否存在已创建的nat会话;其中,所述会话关系表中包括哈希键与nat会话的映射关系。
25.可选的,所述创建所述目标nat会话之后,所述方法还包括:
26.生成所述目标nat会话的映射关系;
27.将所述映射关系写入所述会话关系表。
28.可选的,所述将更新后的目标nat会话添加至所述目标设备的目标数据传输协议对应的双向链表中,包括:
29.若所述目标nat会话为已创建的nat会话,则在目标数据传输协议对应的双向链表中将更新后的目标nat会话调整至队尾。
30.可选的,所述删除所述目标数据传输协议对应的双向链表中超时的nat会话,包括:
31.若所述目标设备的双向链表列表为基于所述会话请求创建的,则删除所有设备的双向链表列表中各双向链表中超时的nat会话;
32.若所述目标设备的双向链表列表非基于所述会话请求创建的,则删除所述目标设备的双向链表列表中双向链表中超时的nat会话。
33.第二方面,本技术提供一种会话管理装置,包括:
34.接收模块,用于接收针对目标设备的会话请求;
35.获取模块,用于获取所述会话请求所属的目标网络地址转换nat会话;
36.处理模块,用于根据所述会话请求对应的目标数据传输协议,确定所述目标nat会话的超时时长;不同数据传输协议对应的nat会话的超时时长不同;
37.更新模块,用于根据所述超时时长,以及,当前时间,更新所述目标nat会话的超时时间;
38.添加模块,用于将更新后的目标nat会话添加至所述目标数据传输协议对应的双向链表中;
39.删除模块,用于删除所述目标数据传输协议对应的双向链表中超时的nat会话。
40.第三方面,本技术提供一种电子设备,包括:存储器和处理器;
41.存储器用于存储计算机指令;处理器用于运行存储器存储的计算机指令实现第一方面中任一项的方法。
42.第四方面,本技术提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行以实现第一方面中任一项的方法。
43.第五方面,本技术提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现第一方面中任一项的方法。
44.本技术提供一种会话管理方法、装置、电子设备及存储介质,通过接收针对目标设备的会话请求;获取所述会话请求所属的目标网络地址转换nat会话;根据所述会话请求对
应的目标数据传输协议,确定所述目标nat会话的超时时长;不同数据传输协议对应的nat会话的超时时长不同;根据所述超时时长,以及,当前时间,更新所述目标nat会话的超时时间;将更新后的目标nat会话添加至所述目标数据传输协议对应的双向链表中;删除所述目标数据传输协议对应的双向链表中超时的nat会话。通过数据传输协议设置双向链表和对应的超时时长,可以将该删除的会话及时删除,该保留的会话一直存在会话中,从而有效提高数据包的转发效率,降低资源的浪费。
附图说明
45.图1为本技术实施例提供的nat网关的示意图;
46.图2为本技术实施例提供的会话管理方法的流程示意图一;
47.图3为本技术实施例提供的双向链表列表的示意图;
48.图4为本技术实施例提供的会话管理方法的流程示意图二;
49.图5为本技术实施例提供的会话管理装置的结构示意图;
50.图6为本技术实施例提供的电子设备的结构示意图。
具体实施方式
51.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
52.在本技术的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分,并不对其先后顺序进行限定。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
53.需要说明的是,本技术实施例中,“示例性的”或者“例如”等词用于表示例子、例证或说明。本技术中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
54.网际网协议第4版(internet protocol version 4,ipv4)定义一个跨越异种网络互连的超级网,为每个网际网的节点分配全球唯一ip地址。
55.ipv4使用32bits整数表达一个地址,地址最大范围就是2
32
约为43亿。以ip创始时期可被联网的设备来看,这样的一个空间已经很大,很难被短时间用完。然而,事实远远超出人们的设想,计算机网络在此后的几十年里迅速壮大,网络终端数量呈爆炸性增长,ip地址消耗飞速增长,如何面对ip地址资源的枯竭是一项重要问题。针对上述问题,网络地址转换(network address translation,nat)技术应运而生。
56.nat是将私有ip地址通过边界路由转换成外网ip地址,在边界路由的nat地址转换表记录下这个转换映射记录,当外部数据返回时,路由使用nat技术查询nat转换表,再将目标地址替换成内网用户ip地址。
57.目前,nat会话管理是将基于不同的数据传输协议的会话一起管理,并采用最久未
使用最先删除的方法进行老化管理。
58.但是,采用最久未使用最先删除的方法进行会话删除,并不能体现每个协议自身在网络中的特点,可能出现需要删除的会话不能及时删除,需要保持的会话可能被删除然后再被创建,导致出现资源的浪费,以及降低了nat的转发效率。
59.有鉴于此,本技术实施例提供一种会话管理方法、装置、电子设备及存储介质,通过将不同的数据传输协议分对应的会话分开管理,对于不同的数据传输协议的会话根据自身特点单独设定不同的超时时长,在nat网关接收到会话请求时,可以根据各会话对应的超时时长将已超时的会话进行删除。通过上述方法可以将该删除的会话及时删除,该保留的会话一直存在会话中,从而有效提高数据包的转发效率。
60.下面以具体地实施例对本技术的技术方案以及本技术的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以独立实现,也可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
61.图1为本技术实施例的nat网关的架构示意图,nat网关(nat gateway)能够为虚拟私有云(virtual private cloud,vpc)内的弹性云服务器提供网络地址转换(network address translation)服务,使多个弹性云服务器可以共享使用弹性ip访问internet(snat)。如图1所示:
62.内部网络将一个会话请求(携带有数据包以及对应的标识信息)经过内部网卡发送至nat网关时,nat网关根据所述数据包的源ip地址、源端口以及数据传输协议等信息,创建对应的nat会话,并将源ip地址修改为外网ip地址,将源端口修改为新分配的端口,通过外部网卡将数据包转发出去,实现内网访问外网。
63.外部网络将一个会话请求经过外部网卡发送至nat网关时,nat网关根据数据包的目的ip地址、目的端口、数据传输协议等信息,查找对应的nat会话,基于对应的nat会话获取内部网络的ip地址和端口,根据所述内部网络的ip地址和端口通过内部网卡将所述数据包转发至对应的设备。
64.上面对nat网关进行网络地址转换的方式进行了简单介绍,下面以图1中的nat网关为例,对本技术实施例提供的会话管理方法进行说明。
65.图2为本技术实施例提供的会话管理方法的流程示意图,如图2所示,包括如下所示步骤:
66.s201、接收针对目标设备的会话请求。
67.本技术实施例中,会话请求可以为访问目标设备的请求,或者,向目标设备反馈消息的请求。
68.会话请求可以为通过报文的方式发送至nat网关。报文是网络中交换与传输的数据单元,也是网络传输的单元。报文包含了将要发送的完整的数据信息,其长短不需一致。报文在传输过程中会不断地封装成分组、包、帧来传输。
69.s202、获取所述会话请求所属的目标网络地址转换nat会话。
70.本技术实施例中,nat网关可以对所述会话请求进行解析,获取所述会话请求的标识。
71.根据所述标识在会话关系表中查询所述会话请求所属的目标nat会话,其中,所述nat网关中存储有所述会话请求表,所述会话请求表中包括会话请求与nat会话的映射关
系。
72.在一种可能的实现方式中,nat网关接收到的会话请求包括内部至外部的会话请求和外部至内部的会话请求,会话请求表包括与之对应的两种表。例如,in2out表(内至外)和out2in表(外至内)。
73.s203、根据所述会话请求对应的目标数据传输协议,确定所述目标nat会话的超时时长;不同数据传输协议对应的nat会话的超时时长不同。
74.本技术实施例中,数据传输协议包括传输控制协议(transmission control protocol,tcp)、因特网控制报文协议(internet control message protocol,icmp)、用户数据报协议(user datagram protocol,udp)等。
75.本技术实施例中,不同的数据传输协议对应的nat会话的超时时长不同,例如,tcp协议对应的nat会话的超时时长可以为t1,icmp协议对应的nat会话的超时时长可以为t1,tcp协议对应的nat会话的超时时长可以为t2,udp协议对应的nat会话的超时时长可以为t3,其他协议对应的nat会话的超时时长可以为t4。
76.nat网关确定目标nat会话时,可以根据会话请求的标识中的目标数据传输协议确定目标nat会话的超时时长。
77.例如,根据会话请求确定目标nat会话为a,会话请求中的目标数据传输协议为udp协议,则a的超时时长为t3。
78.在一种可能的实现方式中,tcp协议下传输的数据包包括established状态和非established状态,为进一步提升目标nat回话超时时长的准确性,若目标传输协议为tcp协议,则可以进一步根据数据包的状态确定超时时长。例如,established状态对应的超时时长为t11,非established状态对应的超时时长为t12。其中,tcp协议下数据包的状态可以根据经典tcp状态转换图进行确定,本技术实施例对此不进行限制。
79.s204、根据所述超时时长,以及,当前时间,更新所述目标nat会话的超时时间。
80.示例性的,若目标nat会话为a、对应的超时时长为t3,当前时间为b,则更新后所述目标nat会话的超时时间为b+t3。
81.s205、将更新后的目标nat会话添加至所述目标数据传输协议对应的双向链表中。
82.本技术实施例中,nat网关针对不同的ip地址建立了管理该ip地址的列表(user表),每个列表中根据数据传输协议的不同包括不同的双向链表。每个双向链表包括对应的nat会话。
83.示例性的,如图3所示,一个use表中可以包括other链表,icmp链表,udp链表,tcp非established链表,tcp established链表。
84.nat网关更新所述目标nat会话的超时时间后,可以将该nat会话从对应的双向链表的当前位置调整至队尾。以保证该链表中,先超时的nat会话在前,后超时的nat会话在后,且有序。
85.在一种可能的实现方式中,在获取所述会话请求所属的nat会话时,不存在所属的nat会话,则nat网关可以构建nat会话以及对应的user表,根据数据传输协议,将该nat会话写入至user表中对应双向链表中。
86.应理解,一个ip地址对应一个user表,一个user表中可以包括上述所述的5个双向链表。
87.s206、删除所述目标数据传输协议对应的双向链表中超时的nat会话。
88.本技术实施例中,nat网关可以检查双向链表中各会话的超时时间,若超时时间大于当前时间,则确定为超时的nat会话,对超时的nat会话进行删除处理。
89.可选的,nat网关在更新目标nat会话后,可以将所述nat会话进行正常转发。
90.本技术实施例提供的会话管理方法,通过接收针对目标设备的会话请求;获取所述会话请求所属的目标网络地址转换nat会话;根据所述会话请求对应的目标数据传输协议,确定所述目标nat会话的超时时长;不同数据传输协议对应的nat会话的超时时长不同;根据所述超时时长,以及,当前时间,更新所述目标nat会话的超时时间;将更新后的目标nat会话添加至所述目标数据传输协议对应的双向链表中;删除所述目标数据传输协议对应的双向链表中超时的nat会话。通过数据传输协议设置双向链表和对应的超时时长,可以将该删除的会话及时删除,该保留的会话一直存在会话中,从而有效提高数据包的转发效率,降低资源的浪费。
91.在上述实施例的基础上,所述获取所述会话请求所属的目标网络地址转换nat会话还可以根据如下所示步骤实现:
92.示例性的,根据所述会话请求中携带的所述目标设备的标识,以及,设备标识与会话的映射关系,确定是否存在已创建的nat会话;若存在,则将已创建的nat会话作为所述目标nat会话;若不存在,则根据所述会话请求,创建所述目标nat会话。
93.其中,所述目标设备的标识包括目标设备的ip地址、所述ip地址对应的端口标识、路由转发表以及数据传输协议中的一种或多种。
94.若根据所述目标设备的标识,以及,设备标识与会话的映射关系,查询到存在已创建的nat会话时,则将已创建的nat会话作为所述目标nat会话。
95.可选的,nat网关可以根据所述标识中ip地址确定对应的user表,根据数据传输协议在user表中确定对应的双向链表,根据所述端口标识和/或路由转发表确定所述目标nat会话。
96.若不存在已创建的nat会话,nat网关可以根据所述ip地址创建对应的user表和创建对应的目标nat会话。其中,创建user表包括创建其中对应的双向链表。
97.在一些实施例中,所述创建所述目标nat会话还包括如下所示步骤:
98.示例性的,对所述会话请求进行nat规则匹配;若确定所述会话请求与nat规则匹配,则根据所述会话请求中所述目标设备的标识,确定是否存在所述目标设备的双向链表列表;若不存在,则创建所述目标设备的双向链表列表,以及,创建所述目标nat会话。
99.其中,所述会话请求进行nat规则匹配可以为对所述会话请求中的数据包进行nat规则匹配。即,所述数据包是否进行了nat转换。
100.若所述匹配结果表征所述数据包进行了nat转换,则可以根据所述标识在双向链表列表(user表)中查询是否存在对应的双向链表列表。
101.若所述匹配结果表征所述数据包未了nat转换,则所述nat网关可以将所述会话请求丢弃。
102.若nat网关确定存在user表,则创建所述目标nat会话,并将所述目标nat会话写入对应的双向链表。
103.若nat网关确定存在不user表,则创建所述目标设备的user表以及所述目标nat会
话,并将所述目标nat会话写入对应的双向链表。
104.可选的,创建所述目标nat会话时,还包括常见所述目标nat会话的映射关系。
105.示例性的,生成所述目标nat会话的映射关系;将所述映射关系写入所述会话关系表。
106.其中,目标nat会话的映射关系为所述目标nat会话与所述,设备标识之间的映射关系。生成所述映射关系后,可以根据所述映射关系更新所属会话关系表。
107.应理解,常见nat回话以及创建user表可以参见现有技术中的实现方式,本技术实施例对此不进行限制。
108.在一些实施例中,所述根据所述会话请求中携带的所述目标设备的标识,以及,设备标识与会话的映射关系,确定是否存在已创建的nat会话,还可以根据如下所示步骤实现:
109.示例性的,根据所述ip地址、所述端口标识、数据传输协议,以及,所述路由转发表,生成所述目标设备的哈希键;根据所述哈希键,在基于键值对构建的会话关系表中查询是否存在已创建的nat会话;其中,所述会话关系表中包括哈希键与nat会话的映射关系。
110.本技术实施例中,会话关系表、user表均可以为基于键值对构建的哈希表。在根据目标设备的标识查询是否存在已创建的nat会话时,可以将所述ip地址、所述端口标识、数据传输协议,以及,所述路由转发表作为hash key,在键值对构建的会话关系表中查询是否存在已创建的nat会话。
111.相应的,在根据目标设备的标识查询是否存在user表时,可以将ip地址和路由转发表作为hash key进行查询。
112.在一些实施例中,所述将更新后的目标nat会话添加至所述目标设备的目标数据传输协议对应的双向链表中,还包括:
113.若所述目标nat会话为已创建的nat会话,则在目标数据传输协议对应的双向链表中将更新后的目标nat会话调整至队尾。
114.其中,目标nat会话为已创建的nat会话表征当前的会话请求存在对应的nat回话,则nat网关可以将该nat会话从对应的双向链表中取出来,根据数据传输线协议更新超时时间后,将该目标nat会话写入对应的双向链表的末尾。
115.目标nat会话非已创建的nat会话表征当前的会话请求不存在对应的nat回话,nat网关可以进行nat回话的创建,以及双向链表的创建,此时,双向链表为空,nat网关将创建的目标nat会话写入对应的双向链表中即可。
116.在一些实施例中,删除所述目标数据传输协议对应的双向链表中超时的nat会话还包括如下所示的删除方式。
117.示例性的,若所述目标设备的双向链表列表为基于所述会话请求创建的,则删除所有设备的双向链表列表中各双向链表中超时的nat会话;若所述目标设备的双向链表列表非基于所述会话请求创建的,则删除所述目标设备的双向链表列表中双向链表中超时的nat会话。
118.本技术实施例中,若所述目标设备的双向链表列表为基于所述会话请求创建的,即表征nat网关接收到所述会话请求时需要新建user表和nat会话,则nat网关可以遍历所有user表,检查各user表中各双向链表中nat会话的超时时间,若已超时,则删除已超时的
nat会话。
119.若所述目标设备的双向链表列表非基于所述会话请求创建的,即,存在对应的user表,则nat网关可以检查该user表中各双向链表中nat会话的超时时间,若已超时,则删除已超时的nat会话。
120.在一种可能的实现方式中,为降低删除超时的nat会话对nat网关性能的影响,在执行删除了,可以检查每个双向链表中前n个nta会话,将前n个nta会话中已超时的nat会话进行删除处理,例如,前5个。
121.在一种可能的实现方式中,若存在所述会话请求所属的nat会话,也可以仅检查会话请求所属的nat会话所在的双向链表中已超时的nat会话,或者,前n个nta会话中已超时的nat会话。
122.下面结合图4,以一个具体的示例对本技术实施例提供的会话管理方法进行说明。
123.图4为本技术实施例提供的会话管理方法的流程示意图二,如图4所示,包括如下步骤:
124.s401、接收会话请求。
125.s402、根据所述会话请求的ip地址、端口标识、数据传输协议,以及,路由转发表,生成目标设备的哈希键。
126.s403、根据所述哈希键,在基于键值对构建的会话关系表中查询是否存在已创建的目标nat会话。
127.s404、若存在,根据对应的超时时长,以及,当前时间,更新所述目标nat会话的超时时间。
128.s405、根据目标数据传输协议在对应的双向链表中将更新后的目标nat会话调整至队尾。
129.s406、进行数据包转发。
130.s407、若不存在,确定所述会话请求是否与nat规则匹配。
131.s408、若匹配,则根据所述会话请求中所述目标设备的标识,确定是否存在所述目标设备的双向链表列表。
132.s409、若存在,创建目标nat会话,将目标nat会话根据目标数据传输协议写入对应的双向链表的队尾。
133.s410、删除所述目标设备的双向链表列表中双向链表中超时的nat会话。
134.s411、若不存在,创建目标nat会话、和创建所述目标设备的双向链表列表,并将目标nat会话根据目标数据传输协议写入对应的双向链表的队尾。
135.s412、删除所有设备的双向链表列表中各双向链表中超时的nat会话。
136.本技术实施例中各步骤的具体实现方式与上述实施例中的类似,此处不再赘述。
137.本技术实施例还提供一种会话管理装置。
138.图5为本技术实施例还提供的会话管理装置50的结构示意图,如图5所示,包括:
139.接收模块501,用于接收针对目标设备的会话请求。
140.获取模块502,用于获取所述会话请求所属的目标网络地址转换nat会话。
141.处理模块503,用于根据所述会话请求对应的目标数据传输协议,确定所述目标nat会话的超时时长;不同数据传输协议对应的nat会话的超时时长不同。
142.更新模块504,用于根据所述超时时长,以及,当前时间,更新所述目标nat会话的超时时间。
143.添加模块505,用于将更新后的目标nat会话添加至所述目标数据传输协议对应的双向链表中。
144.删除模块506,用于删除所述目标数据传输协议对应的双向链表中超时的nat会话。
145.可选的,获取模块502,还用于根据所述会话请求中携带的所述目标设备的标识,以及,设备标识与会话的映射关系,确定是否存在已创建的nat会话;若存在,则将已创建的nat会话作为所述目标nat会话;若不存在,则根据所述会话请求,创建所述目标nat会话。
146.可选的,处理模块503,还用于对所述会话请求进行nat规则匹配;若确定所述会话请求与nat规则匹配,则根据所述会话请求中所述目标设备的标识,确定是否存在所述目标设备的双向链表列表;若不存在,则创建所述目标设备的双向链表列表,以及,创建所述目标nat会话。
147.可选的,处理模块503,还用于根据所述ip地址、所述端口标识、数据传输协议,以及,所述路由转发表,生成所述目标设备的哈希键;根据所述哈希键,在基于键值对构建的会话关系表中查询是否存在已创建的nat会话;其中,所述会话关系表中包括哈希键与nat会话的映射关系。
148.可选的,处理模块503,还用于生成所述目标nat会话的映射关系;将所述映射关系写入所述会话关系表。
149.可选的,添加模块505,还用于若所述目标nat会话为已创建的nat会话,则在目标数据传输协议对应的双向链表中将更新后的目标nat会话调整至队尾。
150.可选的,删除模块506,还用于若所述目标设备的双向链表列表为基于所述会话请求创建的,则删除所有设备的双向链表列表中各双向链表中超时的nat会话;若所述目标设备的双向链表列表非基于所述会话请求创建的,则删除所述目标设备的双向链表列表中双向链表中超时的nat会话。
151.本技术实施例提供的会话管理装置可以执行上述任一实施例提供的会话管理方法的技术方案,其原理和技术效果类似,此处不再赘述。
152.本技术实施例还提供一种电子设备。
153.图6为本技术实施例提供的电子设备600的结构示意图,如图6所示,包括:
154.处理器601。
155.存储器602,用于存储终端设备的可执行指令。
156.具体的,程序可以包括程序代码,程序代码包括计算机操作指令。存储器602可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
157.处理器601用于执行存储器602存储的计算机执行指令,以实现前述方法实施例所描述的会话管理方法实施例的技术方案。
158.其中,处理器601可能是一个中央处理器(central processing unit,简称为cpu),或者是特定集成电路(application specific integrated circuit,简称为asic),或者是被配置成实施本技术实施例的一个或多个集成电路。
159.可选的,电子设备60还可以包括通信接口603,以通过通信接口603可以与外部设备进行通信交互,外部设备例如可以是用户终端(例如,手机、平板)。在具体实现上,如果通信接口603、存储器602和处理器601独立实现,则通信接口603、存储器602和处理器601可以通过总线相互连接并完成相互间的通信。总线可以是工业标准体系结构(industry standard architecture,简称为isa)总线、外部设备互连(peripheral component,简称为pci)总线或扩展工业标准体系结构(extended industry standard architecture,简称为eisa)总线等。总线可以分为地址总线、数据总线、控制总线等,但并不表示仅有一根总线或一种类型的总线。
160.可选的,在具体实现上,如果通信接口603、存储器602和处理器601集成在一块芯片上实现,则通信接口603、存储器602和处理器601可以通过内部接口完成通信。
161.本技术实施例中还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述会话管理方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
162.一种可能的实现方式中,计算机可读介质可以包括随机存取存储器(random access memory,ram),只读存储器(read-only memory,rom),只读光盘(compact disc read-only memory,cd-rom)或其它光盘存储器,磁盘存储器或其它磁存储设备,或目标于承载的任何其它介质或以指令或数据结构的形式存储所需的程序代码,并且可由计算机访问。而且,任何连接被适当地称为计算机可读介质。例如,如果使用同轴电缆,光纤电缆,双绞线,数字用户线(digital subscriber line,dsl)或无线技术(如红外,无线电和微波)从网站,服务器或其它远程源传输软件,则同轴电缆,光纤电缆,双绞线,dsl或诸如红外,无线电和微波之类的无线技术包括在介质的定义中。如本文所使用的磁盘和光盘包括光盘,激光盘,光盘,数字通用光盘(digital versatile disc,dvd),软盘和蓝光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光光学地再现数据。上述的组合也应包括在计算机可读介质的范围内。
163.本技术实施例中还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述会话管理方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
164.在上述终端设备或者服务器的具体实现中,应理解,处理器可以是中央处理单元(英文:central processing unit,简称:cpu),还可以是其他通用处理器、数字信号处理器(英文:digital signal processor,简称:dsp)、专用集成电路(英文:application specific integrated circuit,简称:asic)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
165.本领域技术人员可以理解,上述任一方法实施例的全部或部分步骤可以通过与程序指令相关的硬件来完成。前述的程序可以存储于计算机可读取存储介质中,该程序被执行时,执行上述方法实施例的全部或部分的步骤。
166.本技术技术方案如果以软件的形式实现并作为产品销售或使用时,可以存储在计算机可读取存储介质中。基于这样的理解,本技术的技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括计算机程序或者若干指令。
该计算机软件产品使得计算机设备(可以是个人计算机、服务器、网络设备或者类似的电子设备)执行本技术实施例所述方法的全部或部分步骤。
167.最后应说明的是:以上各实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述各实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。
技术特征:
1.一种会话管理方法,其特征在于,包括:接收针对目标设备的会话请求;获取所述会话请求所属的目标网络地址转换nat会话;根据所述会话请求对应的目标数据传输协议,确定所述目标nat会话的超时时长;不同数据传输协议对应的nat会话的超时时长不同;根据所述超时时长,以及,当前时间,更新所述目标nat会话的超时时间;将更新后的目标nat会话添加至所述目标数据传输协议对应的双向链表中;删除所述目标数据传输协议对应的双向链表中超时的nat会话。2.根据权利要求1所述的方法,其特征在于,所述获取所述会话请求所属的目标网络地址转换nat会话,包括:根据所述会话请求中携带的所述目标设备的标识,以及,设备标识与会话的映射关系,确定是否存在已创建的nat会话;若存在,则将已创建的nat会话作为所述目标nat会话;若不存在,则根据所述会话请求,创建所述目标nat会话。3.根据权利要求2所述的方法,其特征在于,所述根据所述会话请求,创建所述目标nat会话,包括:对所述会话请求进行nat规则匹配;若确定所述会话请求与nat规则匹配,则根据所述会话请求中所述目标设备的标识,确定是否存在所述目标设备的双向链表列表;若不存在,则创建所述目标设备的双向链表列表,以及,创建所述目标nat会话。4.根据权利要求3所述的方法,其特征在于,所述目标设备的标识包括:所述目标设备的ip地址、所述ip地址对应的端口标识、路由转发表;所述根据所述会话请求中携带的所述目标设备的标识,以及,设备标识与会话的映射关系,确定是否存在已创建的nat会话,包括:根据所述ip地址、所述端口标识、数据传输协议,以及,所述路由转发表,生成所述目标设备的哈希键;根据所述哈希键,在基于键值对构建的会话关系表中查询是否存在已创建的nat会话;其中,所述会话关系表中包括哈希键与nat会话的映射关系。5.根据权利要求4所述的方法,其特征在于,所述创建所述目标nat会话之后,所述方法还包括:生成所述目标nat会话的映射关系;将所述映射关系写入所述会话关系表。6.根据权利要求2-5任一项所述的方法,其特征在于,所述将更新后的目标nat会话添加至所述目标设备的目标数据传输协议对应的双向链表中,包括:若所述目标nat会话为已创建的nat会话,则在目标数据传输协议对应的双向链表中将更新后的目标nat会话调整至队尾。7.根据权利要求3-5任一项所述的方法,其特征在于,所述删除所述目标数据传输协议对应的双向链表中超时的nat会话,包括:若所述目标设备的双向链表列表为基于所述会话请求创建的,则删除所有设备的双向
链表列表中各双向链表中超时的nat会话;若所述目标设备的双向链表列表非基于所述会话请求创建的,则删除所述目标设备的双向链表列表中双向链表中超时的nat会话。8.一种会话管理装置,其特征在于,包括:接收模块,用于接收针对目标设备的会话请求;获取模块,用于获取所述会话请求所属的目标网络地址转换nat会话;处理模块,用于根据所述会话请求对应的目标数据传输协议,确定所述目标nat会话的超时时长;不同数据传输协议对应的nat会话的超时时长不同;更新模块,用于根据所述超时时长,以及,当前时间,更新所述目标nat会话的超时时间;添加模块,用于将更新后的目标nat会话添加至所述目标数据传输协议对应的双向链表中;删除模块,用于删除所述目标数据传输协议对应的双向链表中超时的nat会话。9.一种电子设备,其特征在于,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序以实现权利要求1-7中任一项所述的方法。10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被处理器执行以实现权利要求1-7中任一项所述的方法。
技术总结
本申请提供一种会话管理方法、装置、电子设备及存储介质,涉及通信技术领域,方法包括:接收针对目标设备的会话请求;获取会话请求所属的目标网络地址转换NAT会话;根据会话请求对应的目标数据传输协议,确定目标NAT会话的超时时长;根据超时时长,以及,当前时间,更新目标NAT会话的超时时间;将更新后的目标NAT会话添加至目标数据传输协议对应的双向链表中;删除目标数据传输协议对应的双向链表中超时的NAT会话。通过数据传输协议设置双向链表和对应的超时时长,可以将该删除的会话及时删除,该保留的会话一直存在会话中,从而有效提高数据包的转发效率,降低资源的浪费。降低资源的浪费。降低资源的浪费。
技术研发人员:李劭哲 马魁 吴狄 刘勇 王骏飞 兰飞 陈概华 邓杰
受保护的技术使用者:联通数字科技有限公司 联通云数据有限公司
技术研发日:2023.08.04
技术公布日:2023/10/15
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/