一种配置资源调度方法及装置

文档序号:750544 发布日期:2021-04-02 浏览:12次 >En<

阅读说明:本技术 一种配置资源调度方法及装置 (Method and device for scheduling configuration resources ) 是由 刘世贞 于 2020-12-02 设计创作,主要内容包括:本说明书提供一种配置资源调度方法及装置,所述方法包括:解除了相关技术中,配置资源组和内网设备的一一对应的绑定关系,并预先配置了数量小于内网设备数量的配置资源组。网关设备在接收到某一内网设备请求新建首个会话的报文时,为该内网设备分配一个配置资源组,基于该配置资源组对该请求新建首个会话的报文进行NAT处理。如果网关设备接收到该内网设备请求新建下一个会话的报文时,依然基于该配置资源组对请求新建下一个会话的报文进行NAT处理。如果该内网设备的全部会话都已经老化,则收回分配给该内网设备的配置资源组。可以使用少于内网设备的配置资源组进行动态调度,减少了每个配置资源组的闲置时间,减少了资源浪费。(The present specification provides a method and an apparatus for scheduling configuration resources, where the method includes: the binding relationship of the configuration resource groups and the intranet equipment in one-to-one correspondence in the related technology is eliminated, and the configuration resource groups with the quantity smaller than that of the intranet equipment are configured in advance. When receiving a message of a certain intranet device requesting to establish a new first session, the gateway device allocates a configuration resource group for the intranet device, and performs NAT processing on the message requesting to establish the new first session based on the configuration resource group. And if the gateway equipment receives the message of the next session requested to be established by the intranet equipment, the NAT processing is still carried out on the message of the next session requested to be established on the basis of the configuration resource group. And if all the sessions of the intranet equipment are aged, recovering the configuration resource group allocated to the intranet equipment. The dynamic scheduling can be performed by using the configuration resource groups less than the intranet equipment, so that the idle time of each configuration resource group is reduced, and the resource waste is reduced.)

一种配置资源调度方法及装置

技术领域

本说明书涉及计算机应用技术领域,尤其涉及一种配置资源调度方法及装置。

背景技术

内网与公网之间的网关设备基于网络地址转换(Network Address Translation,NAT)协议,实现在内网设备与公网设备之间新建会话(本文中所述的会话都是指内网设备与公网设备之间的会话)。

网关设备维护有资源池,资源池中的资源包括若干公网地址与端口范围。在实际应用中,通常会对资源池中资源进行如下配置:将端口范围划分为多个端口块,每个端口块的端口数量相同;针对每个公网地址,分别将每个端口块与该公网地址组成一个配置资源组。

网关设备会预先将不同的配置资源组分配给不同的内网设备。针对每个内网设备,网关设备当接收到该内网设备请求新建会话的报文时,会用该内网设备对应的配置资源组中的一个配置资源(一个公网地址和一个端口的组合),去配置该新建会话的报文的源地址和源端口,且一个配置资源只能用于新建一个会话,这样,使得该内网设备可以与公网设备之间新建会话。

需要说明的是,同一内网设备可以请求新建多个会话,不同会话所绑定的端口并不相同。因此,任一内网设备对应的配置资源组中端口块的端口数量决定了该内网设备能够新建的会话数量的上限。

然而,这种预先为每个内网设备分配一个配置资源组的实现方式,存在资源浪费的技术问题。

发明内容

为克服相关技术中存在的资源浪费问题,本说明书提供了一种配置资源调度方法及装置。

根据本说明书实施例的第一方面,提供一种配置资源调度方法,应用于网关设备,所述网关设备对应于S个内网设备;预先配置所述网关设备的资源池,使得所述资源池包括M个公网地址与由N个端口组成的端口范围,并使得所述端口范围被划分为多个端口块,每个端口块的端口数量为Q,针对每个公网地址,分别将每个端口块与该公网地址组成一个配置资源组;其中,M*N/Q<S;所述方法包括:

在接收到任一内网设备请求新建会话的报文的情况下,若存在该内网设备正在占用的配置资源组,则基于该内网设备正在占用的配置资源组,对该报文进行NAT处理;若不存在该内网设备正在占用的配置资源组,则使该内网设备占用一个未被占用的配置资源组,并基于该内网设备正在占用的配置资源组,对该报文进行NAT处理;

在监测到该内网设备的全部会话已老化的情况下,收回该内网设备正在占用的配置资源组。

根据本说明书实施例的第二方面,提供一种配置资源调度装置,应用于网关设备,所述网关设备对应于S个内网设备;预先配置所述网关设备的资源池,使得所述资源池包括M个公网地址与由N个端口组成的端口范围,并使得所述端口范围被划分为多个端口块,每个端口块的端口数量为Q,针对每个公网地址,分别将每个端口块与该公网地址组成一个配置资源组;其中,M*N/Q<S;所述装置包括:

NAT处理单元,用于在接收到任一内网设备请求新建会话的报文的情况下,若存在该内网设备正在占用的配置资源组,则基于该内网设备正在占用的配置资源组,对该报文进行NAT处理;若不存在该内网设备正在占用的配置资源组,则使该内网设备占用一个未被占用的配置资源组,并基于该内网设备正在占用的配置资源组,对该报文进行NAT处理;

资源组收回单元,用于在监测到该内网设备的全部会话已老化的情况下,收回该内网设备正在占用的配置资源组。

根据本说明书实施例的第三方面,提供一种网关设备,包括:

一个或多个处理器;

存储器,用于存储一个或多个程序;

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本说明书实施例第一方面任一实施例所述的配置资源调度方法。

根据本说明书第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本说明书实施例第一方面任一实施例所述的配置资源调度方法。

本说明书实施例提供的技术方案,解除了相关技术中,配置资源组和内网设备的一一对应的绑定关系,并预先配置了数量小于内网设备数量的配置资源组。网关设备在接收到某一内网设备请求新建首个会话(即当前会话表中不存在该内网设备的会话)的报文时,为该内网设备分配一个配置资源组,基于该配置资源组对该请求新建首个会话的报文进行NAT处理。如果网关设备接收到该内网设备请求新建下一个会话的报文时,依然基于该配置资源组对请求新建下一个会话的报文进行NAT处理。如果该内网设备的全部会话都已经老化,则收回分配给该内网设备的配置资源组,使得该配置资源组可以被分配给其他内网设备。

通过本说明书实施例提供的技术方案,可以使用少于内网设备的配置资源组进行动态调度,减少了每个配置资源组的闲置时间,减少了资源浪费。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本说明书的原理。

图1是本说明书示出的一种NAT处理的方法流程图。

图2是本说明书根据一示例性实施例示出的一种配置资源调度方法的流程图。

图3是本说明书根据一实施例示出的另一种配置资源调度方法的流程图。

图4是本说明书根据一示例性实施例示出的一种配置资源调度装置的框图。

图5本说明书配置资源调度装置所在网关设备的一种硬件结构图。

具体实施方式

NAT是一种应用于网关设备的网络地址转换协议,用于将报文的源地址和源端口转换为公网地址和端口的组合,使得报文可以被公网设备识别,这样发送报文的内网设备就可以与公网设备之间进行通信。内网设备需要与公网设备进行通信时需要新建会话,在新建会话时,需要为该会话分配一配置资源,也就是IP地址和端口的组合。一个内网设备可能建立的会话数较多,为了避免一个内网设备无节制地占用配置资源,导致其他内网设备无法新建会话,一般需要限制一个内网设备使用的公网地址和端口的组合的数量,限制方法一般是使得一个内网设备只能占用一个配置资源组,配置资源组的配置方法一般是,将端口范围划分为多个端口块,针对每个公网地址,分别将每个端口块与该公网地址组成一个配置资源组。例如,假设资源池中的资源包括M个公网地址,N个端口的端口范围,指定每个端口块的端口数量为S,那么,配置后的资源池包括M*N/S个配置资源组。

基于此,相关技术中,一般会在配置资源组时,限制了配置资源组的数量不小于内网设备的数量,并为所有的内网设备预留一个配置资源组,且不能为不同的内网设备预留重复的配置资源组,只会为一个内网设备预留一个配置资源组,也就是说,内网设备和为其预留的配置资源组是一一对应的。这样,在需要进行NAT处理时,通过计算,得到了为该内网设备预留的配置资源组中的IP地址和端口范围,使得该内网设备可以使用为其预留的配置资源组,网关设备可以基于该配置资源组对会话中的报文进行NAT转换。

这种做法虽然可以避免一个内网设备无节制地占用配置资源,但是,某一时刻,所有内网设备都存在会话的概率较低,这导致有许多配置资源被闲置,造成了资源浪费。

基于此,本说明书提出了一种配置资源调度方法,解除了相关技术中,配置资源组和内网设备的一一对应的绑定关系,并预先配置了数量小于内网设备数量的配置资源组。网关设备在接收到某一内网设备请求新建首个会话(即当前会话表中不存在该内网设备的会话)的报文时,为该内网设备分配一个配置资源组,基于该配置资源组对该请求新建首个会话的报文进行NAT处理。如果网关设备接收到该内网设备请求新建下一个会话的报文时,依然基于该配置资源组对请求新建下一个会话的报文进行NAT处理。如果该内网设备的全部会话都已经老化,则收回分配给该内网设备的配置资源组,使得该配置资源组可以被分配给其他内网设备。通过本说明书实施例提供的技术方案,可以使用少于内网设备的配置资源组进行动态调度,减少了每个配置资源组的闲置时间,减少了资源浪费。

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。

在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

接下来对本说明书实施例进行详细说明。

如图1所示,图1是本说明书示出的一种网关设备NAT处理的方法流程图。NAT处理的方法包括以下步骤:

步骤101,接收到内网设备请求新建会话的报文。

步骤102,匹配NAT策略,获取资源池。

其中,NAT策略可以判断该报文是否需要进行NAT转换,是否需要为该报文分配配置资源。匹配到NAT策略后,可以获取资源池标识,以查找到对应的资源池,对报文进行NAT转换,以使得内网设备和公网设备之间得以新建会话。

步骤103,根据配置资源调度方法,获取一个配置资源组,将该配置资源组的公网地址作为报文的源地址。

配置资源调度方法为本说明书实施例第一方面中的方法,具体方法可以参见图2所示的流程图。一个配置资源组包含一个公网地址和一段端口范围的组合,获取了配置资源组后,将该配置资源组的公网地址作为报文源地址并进行转换。

步骤104,报文内网端口是否在配置资源组的端口范围内,如果在配置资源组的端口范围内,则执行105a,如果不在配置资源组的端口范围内,则执行105b。

可以判断报文的NAT转换前的源端口,也就是该报文对应的内网端口,是否在配置资源组的端口范围内,如果在,并且该端口未被该内网设备的其他会话中的报文使用,可以将该端口作为报文的源端口,来减少端口转换的过程,减轻CPU负担,节省时间。

步骤105a,将报文的内网端口作为报文的源端口。

步骤105b,将配置资源组的起始端口作为报文源端口。

为了方便遍历配置资源组中所有端口是否被使用,可以选择从第一个端口开始查找,也就是选择了起始端口作为报文的源端口,并查找会话表中是否有冲突的会话,若有,则继续将第二个端口作为报文的源端口,并进行查找,直至无存在冲突的会话,若没有,则将报文的源端口转换为该端口。

步骤106,查找会话表,判断是否存在冲突,如果存在冲突,则执行107,如果不存在冲突,则执行109。

上述的冲突,是会话表中是否存在使用该公网地址作为报文源地址,且使用该端口作为报文源端口的报文对应的会话,换言之,就是判断该内网设备发送的其他报文是否使用该端口作为报文的源端口。如果存在冲突,就需要该报文使用其他端口作为报文的源端口。为了方便查找,可以将同一内网设备的会话存于一个会话表中,这样,在同一内网设备的会话的源地址相同的情况下,在查找当前选择的端口是否存在冲突时,可以查找该会话表,只查找端口是否相同就可以判断出当前端口是否存在冲突,较为方便。

步骤107,判断配置资源组是否存在其他未使用端口,如存在其他未使用端口,则执行108,如果不存在其他未使用端口,则执行110。

未使用端口就是,该IP地址作为报文源地址的情况下,未被作为报文源端口的端口。判断是否存在其他未使用端口的方法,可以是查找会话表,查看是否有未被使用的端口,也就是针对该配置资源组对应的IP地址和每个端口的组合,是否存在使用该组合的会话,如果每个组合都被使用了,则说明没有未被使用的端口,如果存在未被使用的组合,则说明存在未使用的端口。

步骤110,报文丢包。

为了防止一个内网设备占用全部的资源,导致其他内网设备无法正常上网,需要限制每个内网设备使用的配置资源的数量,因此,限制一台内网设备占用的配置资源个数为一个配置资源组,当该资源组中没有剩余资源时,则将新的请求新建会话的报文丢包。在使用中,可以通过合理配置资源池的大小,使得丢包的情况出现次数减少。

步骤108,将报文源端口转换为未使用端口。

如果查找到了未使用端口,则将该报文的源端口修改为该未使用端口。

步骤109,得到转换完源地址和源端口的报文。

经过上述转换,得到了转换了源地址和源端口的报文,并将五元组、转换前的源端口等信息记录下来,存于会话表中,使得该会话的后续其他报文可以通过会话表正常传输报文。

为了实现进行NAT处理时,可以对配置资源动态调度,本说明书中的一个或多个实施例提供了一种配置资源调度方法,所述方法应用于网关设备,所述网关设备对应于S个内网设备,也就是说,该网关设备可以使连接到某一内网的S个内网设备与公网设备新建会话。配置资源调度方法包括两个阶段,分别是预先配置阶段和配置资源动态调度阶段。

接下来,将从预先配置和配置资源动态调度两个方面来描述方案。

在预先配置阶段:预先配置所述网关设备的资源池,使得所述资源池包括M个公网地址与由N个端口组成的端口范围,并使得所述端口范围被划分为多个端口块,每个端口块的端口数量为Q,针对每个公网地址,分别将每个端口块与该公网地址组成一个配置资源组;其中,M*N/Q<S。

相关技术中,是在配置的时候,为了可以使得内网设备和配置资源组一一对应,在配置资源池时,必须满足配置资源组的数量不小于内网设备数量的条件。在资源有限的条件下,为了满足配置资源组数量不小于内网设备数量的条件,可能使得每个配置资源组中的资源较少。这样,当某一内网设备流量较大,需要建立的会话较多,可能会丢包。这样,某一时刻,因为配置资源组数量条件的限制,配置的资源组无法满足使用需求,却同时有很多限制的配置资源组,导致配置资源得不到充分的利用。

因此,在本说明书的一个或多个实施例中,为了使得配置资源得到充分利用,需要合理配置资源池中的资源。在配置时,为了提高配置资源组的利用率,减少闲置的配置资源组数,需要在配置时,使得配置资源组的数量小于内网设备的数量。为了使得配置资源组的数量小于内网设备的数量,可以根据实际需求,选取合适的M、N、Q的值。比如每个内网设备所需要同时存在的会话的数量较多,可以提高每个端口块的端口数量Q的值,其他值不变,来使得配置资源组的利用率提高。再或者该内网中同一时刻需要连接公网的内网设备数量不多,可以在其他条件不变的情况下,减少公网地址的数量M或者端口范围的大小N,以使得配置资源的数量减少,提升配置资源组的利用率。当然,也可以根据实际情况,使得M、N和Q都发生变化,以实现更好的配置效果,来提升有限的配置资源的利用率。

在配置资源动态调度阶段:如图2所示,图2是本说明书根据一示例性实施例示出的一种配置资源调度方法的流程图,所述方法包括以下步骤:

步骤202,在接收到任一内网设备请求新建会话的报文的情况下,若存在该内网设备正在占用的配置资源组,则基于该内网设备正在占用的配置资源组,对该报文进行NAT处理;若不存在该内网设备正在占用的配置资源组,则使该内网设备占用一个未被占用的配置资源组,并基于该内网设备正在占用的配置资源组,对该报文进行NAT处理。

内网设备正在占用的配置资源组,可以是该内网设备正在使用的配置资源组,也就是说,该内网设备有正在使用该配置资源组中的资源作为报文源地址和源端口的会话。对该报文进行NAT处理包括,将该报文的源地址和源地址转换为公网地址和端口,在进行NAT处理后,需要将内网地址和端口与公网地址和端口的对应关系记录在会话表中,并将该报文发往该报文的目的地址。

进一步地,考虑到会话在长时间没有报文经过,应该将该会话老化,以使得该会话占用的配置资源可供其他会话使用。在考虑到会话老化需要时间来删除网关设备中的相关信息的情况下,为了避免给一个内网设备分配多个配置资源组,因此,该内网设备正在占用的配置资源组包括,该内网设备正在使用的配置资源组,和该内网设备正在老化的配置资源组。其中,该内网设备长在老化的配置资源组中包括正在老化的配置资源和已经老化完成且未被使用的配置资源。在将配置资源组设置为老化状态后,开始计时,在到达预设的老化时间阈值(该阈值一般较小)后,应将已经老化完成配置资源组从老化链表删除,以使得其他内网设备可以使用该配置资源组。这样,防止了在老化过程中出现意外使得该配置资源组老化失败,而导致一个内网设备对应于多个配置资源组的情况发生。

在上述情况下,判断是否存在该内网设备正在占用的配置资源组,具体包括:若确定存在该内网设备正在使用的配置资源组,或确定存在该内网设备的正在老化的配置资源组,则确定存在该内网设备正在占用的配置资源组;若确定不存在该内网设备正在使用的配置资源组,且确定不存在该内网设备的正在老化的配置资源组,则确定不存在该内网设备正在占用的配置资源组。

也就是说,判断该内网设备有无正在占用的配置资源组,需要查看该内网设备是否对应老化的配置资源组或正在使用的配置资源组,以防止给一个内网设备分配了两个配置资源组。

其中,对于任一配置资源组,当监测到满足该配置资源组对应的老化条件时,开始老化该配置资源组;该配置资源组对应的老化条件为,该内网设备最后一个未老化的会话开始老化。这样,可以解除该配置资源组与该内网设备的绑定关系,使得其余的内网设备可以重新使用该配置资源组来与公网设备新建会话。

若确定存在该内网设备的正在老化的配置资源组,则在对该报文进行NAT处理之前,还包括:停止老化该配置资源组,并使该内网设备重新使用该配置资源组。也就是说,如果该配置资源组正在老化,而此时,如果该配置资源组对应的内网设备需要新建会话,为了防止为一个内网设备分配多个配置资源组,需要使得该内网设备优先使用该配置资源组作为新建会话的配置资源组。

步骤204,在监测到该内网设备的全部会话已老化的情况下,收回该内网设备正在占用的配置资源组。

在该内网设备对应的全部会话都老化完成后,该内网设备对应的会话表将会清空,该会话表可能并不是实际上的会话表,指的是逻辑上的会话表,该会话表中存储有该内网设备对应的全部会话,且不存在其他内网设备的会话。也可以为了方便管理,生成多个会话表,每个会话表中分别对应于一个内网设备,并将该内网设备全部的会话信息记录于该会话表,这样,上述的该内网设备对应的会话表将清空中的会话表,指的是实际存在的一个会话表。这时,为了使得该配置资源组可以被其他内网设备使用,需要解除该内网设备和该配置资源组的绑定关系,将该配置资源组重新设置为未被占用状态,也就是说收回该内网设备正在占用的配置资源组,使得其他没有占用配置资源组的内网设备的新建会话请求到来时,网关设备可以根据该配置资源组对报文进行NAT处理。

进一步地,在配置资源有限的情况下,即使在改进之后可以使得一个配置资源组包括更多的端口,但是还是会存在丢包的可能性,因此,为了节省图1中所示的107步骤的时间,可以在动态分配配置资源组时,当该内网设备无正在占用的配置资源组时,需要将该报文丢包,减少执行107步骤的次数。具体地,基于该内网设备正在占用的配置资源组,对该报文进行NAT处理,包括:判断该内网设备正在占用的配置资源组的资源是否用尽;若用尽,则基于该内网设备正在占用的配置资源组,对该报文进行NAT处理。所述方法还包括:若未用尽,则拒绝对该报文进行NAT处理。

其中,查找该内网设备正在占用的配置资源组的资源是否用尽,可以是查找会话表以查找该内网设备是否存在未使用的资源。进一步地,为了减少动态调度配置资源的时间,尽可能提高动态调度的效率,可以使用计数变量来记录每个配置资源组中的资源使用情况。具体地,判断该内网设备正在占用的配置资源组是否用尽,包括:判断该内网设备正在占用的配置资源组对应的计数变量的值是否达到Q;若达到,则确定该内网设备正在占用的配置资源组的资源用尽;若未达到,则确定该内网设备正在占用的配置资源组的资源未用尽;其中,每当基于该内网设备正在占用的配置资源组对报文进行NAT处理时,将所述计数变量的值加1;每当该内网设备的一个会话完成老化时,将所述计数变量的值减1。也就是说,增加了一个计数变量来记录当前该配置资源组的占用情况,使得可以通过判断该计数变量的值是否达到每个端口块的端口数量Q,快速得出该配置资源组的资源是否用尽。

其中,在考虑到会话老化时,计数变量可以根据不同需要进行不同的处理,比如,可以在会话老化完成时,更改计数变量的值,也可以在会话开始老化时,更改技术变量的值。在考虑到存在老化配置资源组的情况下,如果计数变量在老化完成才更改其值,但是在开始老化时,可能就将该配置资源组设置为正在老化状态,那么该配置资源组可以同时具有正在使用状态和正在老化状态。

进一步地,为了提高查找该内网设备是否存在正在占用的配置资源组的效率,可以:利用预先创建的哈希链表中的一个节点,记录该内网设备的内网地址哈希与该内网设备正在占用的配置资源组之间的对应关系。相比于其他的链表,访问哈希链表的效率更高,哈希链表可供多个查询进程同时查找内网设备和配置资源组的对应关系。具体来说,哈希链表相当于多个数组组成的链表,在查找时,匹配到了从链表中查找到存储有哈希值的数组,在确定了具体数组后,可以从该数组中获取其他信息,如计数变量等。其中,哈希链表包括多个数组,可供多个进程同时访问链表,提升了查询效率。

进一步地,在考虑到存在老化链表时,可以使用两个哈希链表,来分别存储内网设备与其正在使用的配置资源组或正在老化的配置资源组之间的对应关系。具体来说。利用预先创建的第一哈希链表中的一个节点,记录该内网设备的内网地址哈希与该内网设备正在使用的配置资源组之间的对应关系;利用预先创建的第二哈希链表中的一个节点,记录该内网设备的内网地址哈希与该内网设备的正在老化的配置资源组之间的对应关系。

在考虑到通过计数变量来决定是否要将第一哈希链表中的某个节点删除,添加到第二哈希链表中的情况下,如果计数变量是在会话开始老化时发生变化,那么在计数变量为0时,应当将第一哈希链表中的该节点删除,并添加到第二哈希链表中,这表明了该节点表征的配置资源组开始老化;且当该节点添加到第二哈希链表中时,应当开始计时,在到达时间阈值时,表征该配置资源组老化完成,应该将其从第二哈希链表中删除,将该配置资源组重新标记为未使用状态。如果计数变量在会话老化完成时发生变化,那么在计数变量为1,且最后一个会话开始老化时,应当将将第一哈希链表中的该节点删除,并添加到第二哈希链表中。其中,未使用的配置资源组,也可以存储于一个链表中,方便调度和使用。

上述一个或多个实施例,解除了配置资源组和内网设备的预先绑定关系,合理配置资源池中的资源,通过动态调度配置资源,使得闲置的配置资源组减少,提升了有限的配置资源的使用率。此外,通过合理配置资源池中的资源,可以使得每个配置资源组中的配置资源增多,减少了因为配置资源组中配置资源不足而带来的丢包情况的发生。

其中,相关技术中,资源池中的资源包括M个公网地址,N个端口的端口范围,指定每个端口块的端口数量为S,那么,为内网设备计算为其预留的配置资源的方法是:计算预留的配置资源组的IP地址和端口范围的方法可以包括:计算1个IP地址对应的配置资源组的数量,为N/S;计算内网设备的内网地址偏移,为报文内网源地址减去内网的起始地址;计算为内网设备预留的配置资源组的公网源地址,为资源池可用公网起始地址,加上内网地址偏移与1个IP地址对应的配置资源组的数量的商;计算为内网设备预留的配置资源组的起始端口,为内网地址偏移与1个IP地址对应的配置资源组的数量取余的值与S的乘积,加上资源池可用的起始端口;计算为内网设备预留的配置资源组的结束端口,为预留的配置资源组的起始端口,加上S-1。这样,通过计算的为内网设备预留的配置资源组的公网源地址、起始端口和结束端口,就可以得到并使用该配置资源组。

接下来将从一具体的实施例来对该方法进行说明。假设预先对资源池中的资源进行了合理配置,得到了若干个配置资源组,并使得配置资源组的数量小于内网设备的数量,如图3所示,图3是本说明书根据一实施例示出的另一种配置资源调度方法的流程图,包括以下步骤:

步骤301,获取报文内网源地址哈希值。

将报文内的源地址进行哈希,得到该哈希值。

步骤302,使用哈希链表是否有该哈希值的节点,如果有该哈希值的节点,则执行303,如果没有改哈希值的节点,则执行306。

在该实施例中,通过使用哈希链表和老化哈希链表,提高了动态调度的效率。其中,上述的方法中,提及的第一哈希链表为使用哈希链表,提及的第二哈希链表在本实施例中为第二哈希链表,两个哈希链表中均存有该节点表征的配置资源组和内网设备的对应关系。判断在使用哈希链表中是否存在该哈希值的节点,也就是说,是否有该内网设备正在使用的配置资源组。

步骤303,该节点的计数变量是否达到每端口块的端口数量Q,如果达到Q,则执行是305,如果未达到,则执行304。

在两个哈希链表中,还存有计数变量,用于记录该配置资源组中有多少资源被使用,其中,在该实施例中,计数变量在会话开始老化时发生变化。在配置资源组中最后一个未老化的会话开始老化时,将该配置资源组从使用哈希链表删除,并添加至老化哈希链表,并将计数变量记为0。判断计数变量是否达到Q,即判断该配置资源组中的资源是否全部被占用。

步骤304,基于该配置资源组,对该报文进行NAT处理,并将计数变量加1。

步骤305,报文丢包。

步骤306,老化哈希链表是否有该哈希值的节点,如果老化哈希链表有该哈希值的节点,则执行307,如果老化哈希链表没有该哈希值的节点,则执行308。

如果老化哈希链表中存在该配置资源组,则说明该配置资源组中只存在此时未被使用的资源,和正在老化的资源。为了防止为一个内网设备分配多个配置资源组,当存在该内网设备对应的正在老化的配置资源时,应停止该配置资源组的老化过程,并使得该内网设备重新使用该配置资源组,来进行报文发送与接收。

步骤307,将该配置资源组从老化链表重新添加至使用哈希链表,并基于该配置资源组对该报文进行NAT处理,并将计数变量记为1。

步骤308,从未使用链表为该内网设备分配一未被占用的配置资源组,并基于该配置资源组对该报文进行NAT处理,并将计数变量记为1。

当发现该内网设备没有对应的配置资源组时,在配置得当,有剩余的配置资源组时,应该为其分配一未被使用或不是正在老化的配置资源组,用于该内网设备与公网进行通信。

此外,为了释放已经不被占用的配置资源组,在配置资源组中的最后一个会话老化完成时,应该将其从老化哈希链表删除,并添加至未使用链表,以使得其他的没有配置资源组的内网设备,在需要新建会话时,可以使网关设备基于该配置资源组对请求新建会话的报文进行NAT处理。

通过上述实施例,通过合理配置资源池中的资源,解除了配置资源组与内网设备的绑定关系,并通过合理的动态分配过程,调度了配置资源组,使得配置资源组得到了充分的利用,并且得到了复用。这样,使得同一时刻,闲置的配置资源组的数量减少,提升了有限的配置资源的利用率。

与前述方法的实施例相对应,本说明书还提供了装置及其所应用的网关设备的实施例。

如图4所示,图4是本说明书根据一示例性实施例示出的一种配置资源调度装置的框图,该装置应用于网关设备,所述网关设备对应于S个内网设备;预先配置所述网关设备的资源池,使得所述资源池包括M个公网地址与由N个端口组成的端口范围,并使得所述端口范围被划分为多个端口块,每个端口块的端口数量为Q,针对每个公网地址,分别将每个端口块与该公网地址组成一个配置资源组;其中,M*N/Q<S;所述装置包括:

NAT处理单元410,用于在接收到任一内网设备请求新建会话的报文的情况下,若存在该内网设备正在占用的配置资源组,则基于该内网设备正在占用的配置资源组,对该报文进行NAT处理;若不存在该内网设备正在占用的配置资源组,则使该内网设备占用一个未被占用的配置资源组,并基于该内网设备正在占用的配置资源组,对该报文进行NAT处理;

资源组收回单元420,用于在监测到该内网设备的全部会话已老化的情况下,收回该内网设备正在占用的配置资源组。

进一步地,NAT处理单元中,判断是否存在该内网设备正在占用的配置资源组,具体包括:若确定存在该内网设备正在使用的配置资源组,或确定存在该内网设备的正在老化的配置资源组,则确定存在该内网设备正在占用的配置资源组;若确定不存在该内网设备正在使用的配置资源组,且确定不存在该内网设备的正在老化的配置资源组,则确定不存在该内网设备正在占用的配置资源组;其中,对于任一配置资源组,当监测到满足该配置资源组对应的老化条件时,开始老化该配置资源组;该配置资源组对应的老化条件为,该内网设备最后一个未老化的会话开始老化;NAT处理单元中,若确定存在该内网设备的正在老化的配置资源组,则在对该报文进行NAT处理之前,还包括:停止老化单元,用于停止老化该配置资源组,并使该内网设备重新使用该配置资源组。

进一步地,NAT处理单元中,基于该内网设备正在占用的配置资源组,对该报文进行NAT处理,包括:判断该内网设备正在占用的配置资源组的资源是否用尽;若用尽,则基于该内网设备正在占用的配置资源组,对该报文进行NAT处理;所述装置还包括:拒绝NAT处理单元,用于,若未用尽,则拒绝对该报文进行NAT处理。

进一步地,NAT处理单元中,判断该内网设备正在占用的配置资源组是否用尽,包括:判断该内网设备正在占用的配置资源组对应的计数变量的值是否达到Q;若达到,则确定该内网设备正在占用的配置资源组的资源用尽;若未达到,则确定该内网设备正在占用的配置资源组的资源未用尽;其中,每当基于该内网设备正在占用的配置资源组对报文进行NAT处理时,将所述计数变量的值加1;每当该内网设备的一个会话完成老化时,将所述计数变量的值减1。

进一步地,可以利用预先创建的哈希链表中的一个节点,记录该内网设备的内网地址哈希与该内网设备正在占用的配置资源组之间的对应关系。

进一步地,还可以利用预先创建的第一哈希链表中的一个节点,记录该内网设备的内网地址哈希与该内网设备正在使用的配置资源组之间的对应关系;利用预先创建的第二哈希链表中的一个节点,记录该内网设备的内网地址哈希与该内网设备的正在老化的配置资源组之间的对应关系。

上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

如图5所示,图5示出了实施例中配置资源调度装置所在网关设备的一种硬件结构图,该网关设备包括一个或多个处理器;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现前述的配置资源调度方法。该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。

处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。

存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。

输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。

通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。

总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。

需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。

本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述配置资源调度方法。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。

应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。

以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。

18页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种网络工程用具有分布式混合结构的交换机

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!