网络地址转换映射表的操作方法及装置制造方法及图纸

技术编号:15335211 阅读:115 留言:0更新日期:2017-05-16 21:59
本发明专利技术公开了一种网络地址转换映射表的操作方法及装置,涉及互联网技术领域,解决了现有多核系统中操作NAT映射表造成数据报文转发效率低的问题。本发明专利技术的方法包括:在获取到与待转换网间协议IP地址对应的公网IP地址后,判断NAT映射表中表项的数量是否超过预设阈值,NAT映射表存储有待转换IP地址和公网IP地址对应关系,该对应关系以表项的形式存在,表项以最近最少使用LRU链表的方式组织;若未超过预设阈值,则对NAT映射表不进行加锁更新;若超过预设阈值,则根据当前待转换IP地址对应的表项在NAT映射表中的位置确定是否对NAT映射表进行加锁更新。本发明专利技术应用于多核异构平台下对网络地址转换表的操作过程中。

【技术实现步骤摘要】
网络地址转换映射表的操作方法及装置
本专利技术涉及互联网
,尤其涉及一种网络地址转换映射表的操作方法及装置。
技术介绍
近年来,随着互联网的迅猛发展,接入互联网的主机数量成倍增长,联网使用的互联网协议(InternetProtocol,IP)的第四版IPv4协议中IP地址的长度选择了32位,IP地址的短缺已经成为互联网面临的最大问题之一。为了解决IP地址短缺的问题,人们提出了许多解决方案。在众多的解决方案中,网络地址转换(NetworkAddressTranslation,NAT)技术得到了广泛的应用。NAT的基本工作原理是,当私有网主机和公共网主机通信的IP包经过NAT网关时,将IP包中的多个待转换IP地址转换为一个指定的公网IP地址,一定程度上节约了IP地址资待转换。在实际的应用中,当防火墙接收到私有网需要向公共网络发送的报文时,需要通过NAT模块获取报文的待转换IP地址对应的转换后的公网IP地址,对于已经有待转换IP地址与转换后的公网IP地址转换关系的情况,只需要NAT模块查询已有的待转换IP地址与转换后IP地址之间的对应关系表,即网络地址转换NAT映射表;对于没有待转换IP地址与转换后的公网IP地址转换关系的情况,需要NAT模块从转换后的IP地址池中选择一个可用的IP地址,并将选出的IP地址与报文的待转换IP地址,对应的添加到NAT映射表中,以便下次遇到同样的待转换IP地址可以直接从NAT映射表中查询到转换后的IP地址。可以看到,对于每个接收到的报文来讲,NAT模块都需要先查询NAT映射表,并且还需要维持NAT映射表的超时机制。由于NAT映射表是全局表,在多核系统下,多核同时操作NAT映射全局表时,每个核对NAT映射全局表操作时通常需要加锁操作,即每次查找、维持NAT映射表的超时机制时都需要加锁操作,性能十分差,严重影响数据报文转发的效率。
技术实现思路
鉴于上述问题,本专利技术提供一种网络地址转换映射表的操作方法及装置,用以解决现有多核系统中操作NAT映射表造成数据报文转发效率低的问题。为解决上述技术问题,第一方面,本专利技术提供了一种网络地址转换映射表的操作方法,所述方法包括:在获取到与待转换网间协议IP地址对应的公网IP地址后,判断NAT映射表中表项的数量是否超过预设阈值,所述NAT映射表存储有待转换IP地址和公网IP地址对应关系,该对应关系以表项的形式存在,所述表项以最近最少使用LRU链表的方式组织,所述NAT映射表的地址空间为通过内存池预先申请的长期有效的地址空间;若未超过预设阈值,则对NAT映射表不进行加锁更新;若超过预设阈值,则根据当前待转换IP地址对应的表项在所述NAT映射表中的位置确定是否对NAT映射表进行加锁更新。可选的,根据当前待转换IP地址对应的表项在所述NAT映射表中的位置确定是否对NAT映射表进行加锁更新包括:确定NAT映射表中的前N项;判断当前待转换IP地址对应的表项是否位于所述NAT映射表中的前N项中,所述前N项对应NAT映射表中的预设常用表项;若当前待转换IP地址对应的表项位于NAT映射表的前N项中,则对NAT映射表不进行加锁更新;若当前待转换IP地址对应的表项不位于NAT映射表的前N项中,则对NAT映射表进行加锁更新。可选的,所述确定NAT映射表中的前N项,包括:初始化NAT映射表时,根据最大堆排序算法对NAT映射表中每个表项按照在预设时段内的操作次数的大小进行排序,将排序后的前N项确定为NAT映射表中的前N项;初始化NAT映射表后,若预设单位时间内NAT映射表的加锁更新次数超过预设更新次数,则动态调整NAT映射表中的前N项。可选的,所述动态调整NAT映射表中的前N项,包括:若调整前的N值小于N的最大取值Y,将前N项扩大为前N1项,其中N1大于N,N1与N之间的关系如下,N1=N+(Y-N)/10;若调整前的N值大于等于N的最大取值Y,则对NAT映射表中表项按照最大堆排序算法进行重新排序,得到新的前N个表项。可选的,若获取与待转换网间协议IP地址对应的公网IP地址的进程为内核态进程,所述确定NAT映射表中的前N项,包括:生成获取NAT映射表中的前N项的获取消息;将所述获取消息以消息机制发送给用户态进程,使用户态进程根据内核态进程发送的获取消息确定NAT映射表中的前N项后返回给内核态进程。可选的,若获取与待转换网间协议IP地址对应的公网IP地址的进程为内核态进程,所述对NAT映射表进行加锁更新,包括:生成对NAT映射表进行加锁更新的更新消息;将所述更新消息发送至用户态进程,使用户态进程根据内核态进程发送的更新消息对NAT映射表进行加锁更新。可选的,所述NAT映射表中的表项中还包括前项指针和后项指针,所述前项指针指向表项的前一表项,后项指针指向表项的后一表项,所述对NAT映射表进行加锁更新,包括:将当前待转换IP地址对应的表项、NAT映射表中的第一个表项以及与当前待转换IP地址相邻的表项的前项指针和后项指针进行更新,以使当前待转换IP地址对应的表项为NAT映射表中的第一个表项。可选的,所述获取到与待转换网间协议IP地址对应的公网IP地址,包括:查找哈希表中是否有待转换IP地址,所述哈希表中记录待转换IP地址和待转换IP地址对应的表项的空间地址之间的对应关系;若有待转换IP地址,则根据哈希表中待转换IP地址对应的表项的空间地址获取待转换IP地址对应的公网IP地址;若没有待转换IP地址,则新建与待转换IP地址对应的表项,并将新建的表项的空间地址以及其中的待转换IP地址对应记录在哈希表中。可选的,所述新建与待转换IP地址对应的表项,包括:若获取到与待转换IP地址对应的公网IP地址的进程为用户态进程,则直接对NAT映射表进行加锁后,新建与待转换IP地址对应的表项;若获取到与待转换IP地址对应的公网IP地址的进程为内核态进程,则生成新建表项的新建消息;内核态进程将所述新建消息发送给用户态进程,以使用户态进程根据新建消息新建与待转换IP地址对应的表项。可选的,在所述新建与待转换IP地址对应的表项方法之前,所述方法还包括:判断所述NAT映射表的地址空间是否已满;若地址空间已满,则对NAT映射表按照从后到前的顺序删除预设数量的表项,以使新建的表项可以添加到NAT映射表中。可选的,所述对NAT映射表按照从后到前的顺序删除预设数量的表项,包括:若获取到与待转换IP地址对应的公网IP地址的进程为用户态进程,则直接执行对NAT映射表按照从后到前的顺序删除预设数量的表项;若获取到与待转换IP地址对应的公网IP地址的进程内核态进程,则生成对NAT映射表按照从后到前的顺序删除预设数量的表项的删除消息;内核态进程将所述删除消息发送给用户态进程,以使用户态进程根据删除消息对NAT映射表按照从后到前的顺序删除预设数量的表项。第二方面,本专利技术提供了一种网络地址转换映射表的操作装置,所述装置包括:判断单元,用于在获取到与待转换网间协议IP地址对应的公网IP地址后,判断NAT映射表中表项的数量是否超过预设阈值,所述NAT映射表存储有待转换IP地址和公网IP地址对应关系,该对应关系以表项的形式存在,所述表项以最近最少使用LRU链表的方式组织,所述NAT映射表的地址空间为通过内存池预先申请的长期有效的地本文档来自技高网
...
网络地址转换映射表的操作方法及装置

【技术保护点】
一种网络地址转换映射表的操作方法,其特征在于,所述方法包括:在获取到与待转换网间协议IP地址对应的公网IP地址后,判断NAT映射表中表项的数量是否超过预设阈值,所述NAT映射表存储有待转换IP地址和公网IP地址对应关系,该对应关系以表项的形式存在,所述表项以最近最少使用LRU链表的方式组织,所述NAT映射表的地址空间为通过内存池预先申请的长期有效的地址空间;若未超过预设阈值,则对NAT映射表不进行加锁更新;若超过预设阈值,则根据当前待转换IP地址对应的表项在所述NAT映射表中的位置确定是否对NAT映射表进行加锁更新。

【技术特征摘要】
1.一种网络地址转换映射表的操作方法,其特征在于,所述方法包括:在获取到与待转换网间协议IP地址对应的公网IP地址后,判断NAT映射表中表项的数量是否超过预设阈值,所述NAT映射表存储有待转换IP地址和公网IP地址对应关系,该对应关系以表项的形式存在,所述表项以最近最少使用LRU链表的方式组织,所述NAT映射表的地址空间为通过内存池预先申请的长期有效的地址空间;若未超过预设阈值,则对NAT映射表不进行加锁更新;若超过预设阈值,则根据当前待转换IP地址对应的表项在所述NAT映射表中的位置确定是否对NAT映射表进行加锁更新。2.根据权利要求1所述的方法,其特征在于,根据当前待转换IP地址对应的表项在所述NAT映射表中的位置确定是否对NAT映射表进行加锁更新包括:确定NAT映射表中的前N项;判断当前待转换IP地址对应的表项是否位于所述NAT映射表中的前N项中,所述前N项对应NAT映射表中的预设常用表项;若当前待转换IP地址对应的表项位于NAT映射表的前N项中,则对NAT映射表不进行加锁更新;若当前待转换IP地址对应的表项不位于NAT映射表的前N项中,则对NAT映射表进行加锁更新。3.根据权利要求2所述的方法,其特征在于,所述确定NAT映射表中的前N项,包括:初始化NAT映射表时,根据最大堆排序算法对NAT映射表中每个表项按照在预设时段内的操作次数的大小进行排序,将排序后的前N项确定为NAT映射表中的前N项;初始化NAT映射表后,若预设单位时间内NAT映射表的加锁更新次数超过预设更新次数,则动态调整NAT映射表中的前N项。4.根据权利要求3所述的方法,其特征在于,所述动态调整NAT映射表中的前N项,包括:若调整前的N值小于N的最大取值Y,将前N项扩大为前N1项,其中N1大于N,N1与N之间的关系如下,N1=N+(Y-N)/10;若调整前的N值大于等于N的最大取值Y,则对NAT映射表中表项按照最大堆排序算法进行重新排序,得到新的前N个表项。5.根据权利要求4所述的方法,其特征在于,若获取与待转换网间协议IP地址对应的公网IP地址的进程为内核态进程,所述确定NAT映射表中的前N项,包括:生成获取NAT映射表中的前N项的获取消息;将所述获取消息以消息机制发送给用户态进程,使用户态进程根据内核态进程发送的获取消息确定NAT映射表中的前N项后返回给内核态进程。6.根据权利要求1-5中任一项所述的方法,其特征在于,若获取与待...

【专利技术属性】
技术研发人员:刘健男党丽娜
申请(专利权)人:东软集团股份有限公司
类型:发明
国别省市:辽宁,21

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1