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中任一项所述的方法,其特征在于,若获取与待转换网间协议IP地址对应的公网IP地址的进程为内核态进程,所述对NAT映射表进行加锁更新,包括:
生成对NAT映射表进行加锁更新的更新消息;
将所述更新消息发送至用户态进程,使用户态进程根据内核态进程发送的更新消息对NAT映射表进行加锁更新。
7.根据权利要求6所述的方法,其特征在于,所述NAT映射表中的表项中还包括前项指针和后项指针,所述前项指针指向表项的前一表项,后项指针指向表项的后一表项,所述对NAT映射表进行加锁更新,包括:
将当前待转换IP地址对应的表项、NAT映射表中的第一个表项以及与当前待转换IP地址相邻的表项的前项指针和后项指针进行更新,以使当前待转换IP地址对应的表项为NAT映射表中的第一个表项。
8.根据权利要求7所述的方法,其特征在于,所述获取到与待转换网间协议IP地址对应的公网IP地址,包括:
查找哈希表中是否有待转换IP地址,所述哈希表中记录待转换IP地址和待转换IP地址对应的表项的空间地址之间的对应关系;
若有待转换IP地址,则根据哈希表中待转换IP地址对应的表项的空间地址获取待转换IP地址对应的公网IP地址;
若没有待转换IP地址,则新建与待转换IP地址对应的表项,并将新建的表项的空间地址以及其中的待转换IP地址对应记录在哈希表中。
9.根据权利要求8所述的方法,其特征在于,所述新建与待转换IP地址对应的表项,包括:
若获取到与待转换IP地址对应的公网IP地址的进程为用户态进程,则直接对NAT映射表进行加锁后,新建与待转换IP地址对应的表项;
若获取到与待转换IP地址对应的公网IP地址的进程为内核态进程,则生成新建表项的新建消息;
内核态进程将所述新建消息发送给用户态进程,以使用户态进程根据新建消息新建与待转换IP地址对应的表项。
10.一种网络地址转换映射表的操作装置,其特征在于,所述装置包括:
第一判断单元,用于在获取到与待转换网间协议IP地址对应的公网IP地址后,判断NAT映射表中表项的数量是否超过预设阈值,所述NAT映射表存储有待转换IP地址和公网IP地址对应关系,该对应关系以表项的形式存在,所述表项以最近最少使用LRU链表的方式组织,所述NAT映射表的地址空间为通过内存池预先申请的长期有效的地址空间;
第一更新单元,用于若未超过预设阈值,则对NAT映射表不进行加锁更新;
第二更新单元,用于若超过预设阈值,则根据当前待转换IP地址对应的表项在所述NAT映射表中的位置确定是否对NAT映射表进行加锁更新。