CN117812039B - 一种网络地址转换日志记录方法、系统、设备及介质 - Google Patents
一种网络地址转换日志记录方法、系统、设备及介质 Download PDFInfo
- Publication number
- CN117812039B CN117812039B CN202410204477.5A CN202410204477A CN117812039B CN 117812039 B CN117812039 B CN 117812039B CN 202410204477 A CN202410204477 A CN 202410204477A CN 117812039 B CN117812039 B CN 117812039B
- Authority
- CN
- China
- Prior art keywords
- address
- mask
- network
- port
- public network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000013519 translation Methods 0.000 title claims description 28
- 238000006243 chemical reaction Methods 0.000 claims abstract description 43
- 238000013507 mapping Methods 0.000 claims abstract description 18
- 238000004422 calculation algorithm Methods 0.000 claims description 30
- 238000004590 computer program Methods 0.000 claims description 10
- 230000014616 translation Effects 0.000 claims 8
- 238000012545 processing Methods 0.000 abstract description 6
- 230000000694 effects Effects 0.000 abstract description 4
- 230000008569 process Effects 0.000 description 24
- 238000010586 diagram Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000010276 construction Methods 0.000 description 3
- 238000003780 insertion Methods 0.000 description 3
- 230000037431 insertion Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000013468 resource allocation Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/2514—Translation of Internet protocol [IP] addresses between local and global IP addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/069—Management of faults, events, alarms or notifications using logs of notifications; Post-processing of notifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/695—Types of network addresses using masks or ranges of addresses
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请涉及一种网络地址转换日志记录方法、系统、设备及介质,属于网络地址转换日志处理领域,其包括获取待转换地址信息,待转换地址信息包括公网IP地址、公网IP地址对应的端口号和私网IP地址;将公网IP地址转换为地址掩码和地址掩码对应的掩码网络地址;将公网IP地址对应的端口号转换为端口掩码和端口掩码对应的掩码端口号;根据地址掩码、掩码网络地址、端口掩码和掩码端口号,在转换日志中的哈希表上记录公网IP地址和私网IP地址的映射关系。本申请具有提高NAT日志数据更新时效性的效果。
Description
技术领域
本申请涉及网络地址转换日志处理的技术领域,尤其是涉及一种网络地址转换日志记录方法、系统、设备及介质。
背景技术
网络地址转换(network address translation,NAT)是一种局域网接入广域网的地址转换技术,NAT广泛应用于终端设备的互联网接入环节。NAT是将局域网IPv4私有地址与端口,转换为公网IPv4地址与端口,以达到解决IPv4地址数量不能满足终端数量的问题。
由于NAT资源始终处于资源分配与回收的过程中,NAT日志所描述的地址映射关系变化非常频繁。通常NAT资源的分配采用预分配的方式执行,其发生时间早于连接新建过程。但是NAT日志的生产、转发和加载到关联算法并生效的过程会产生一定的时延,该时延如果导致关联关系的生效时间晚于连接新建的时间,则部分数据流不能被正确关联到NAT资源信息。在大规模的流量分析业务场景中,需要对规模很大的并发连接流量执行实时的NAT资源信息的关联计算,所以要求NAT信息关联的算法能够快速地响应频繁变化的NAT日志里的资源映射关系,并在上述的正确关联的时间窗口内将并发连接与端设备信息进行关联与标识。
NAT信息的关联功能会使用到搜索树算法。搜索树算法是将数值范围的小值或大值作为树的节点值,另一个值作为节点中的待匹配数值,并依照一定的构建方法的约束,在构建过程中动态地调整树的结构以实现一种空间和搜索性能的最优状态。搜索树的结构是一个全局性的逻辑整体,更新时需要一个复杂的重新构造过程,该过程导致数据的更新的时效性变差。
上述中的相关技术方案存在以下缺陷:NAT日志更新的时效性较差。
发明内容
为了改善NAT日志更新的时效性差的问题,本申请提供了一种网络地址转换日志记录方法、系统、设备及介质。
在本申请的第一方面,提供了一种网络地址转换日志记录方法。该方法包括:
获取待转换地址信息,待转换地址信息包括公网IP地址、公网IP地址对应的端口号和私网IP地址;
将公网IP地址转换为地址掩码和地址掩码对应的掩码网络地址;
将公网IP地址对应的端口号转换为端口掩码和端口掩码对应的掩码端口号;
根据地址掩码、掩码网络地址、端口掩码和掩码端口号,在转换日志中的哈希表上记录公网IP地址和私网IP地址的映射关系。
由以上技术方案可知,通过对待转换地址信息进行掩码形式的转换,然后根据转换后的数据在转换日志的哈希表中进行记录,没有了搜索树算法中对搜索树进行重构的过程,使用哈希表来提高转换日志中数据的搜索效率,进而实现NAT日志更新时效性的提高。
在一种可能的实现方式中,转换日志包括多个哈希表,每个哈希表包括掩码属性字段和多个键值对,每个键值对包括键和键对应的值,键包括掩码网络地址和掩码端口号,键对应的值包括私网IP地址和私网IP地址的占用时间。
在一种可能的实现方式中,根据地址掩码、掩码网络地址、端口掩码和掩码端口号,记录转换日志中公网IP地址和私网IP地址的映射关系,包括:
确定与地址掩码和端口掩码对应的哈希表,地址掩码和端口掩码在哈希表的掩码属性字段对应的范围内;
根据公网IP地址和公网IP地址对应的端口号,计算哈希表中的目标存储位置;
当目标存储位置为空时,则将私网IP地址存储至目标存储位置中;
当目标存储位置不为空时,根据目标存储位置中私网IP地址的占用时间,记录私网IP地址。
在一种可能的实现方式中,根据目标存储位置中私网IP地址的占用时间,记录私网IP地址,包括:
当私网IP地址的占用时间大于时间预设值时,将待转换地址信息中的私网IP地址存储在目标存储位置中;
当私网IP地址的占用时间小于等于时间预设值时,将待转换地址信息中的私网IP地址存储在更新存储位置中,更新存储位置=目标存储位置+n,n为正整数。
在一种可能的实现方式中,确定与地址掩码和端口掩码对应的哈希表,包括:
当地址掩码和端口掩码对应的哈希表不存在时,创建地址掩码和端口掩码对应的哈希表。
在一种可能的实现方式中,目标存储位置通过对公网IP地址和公网IP地址对应的端口号使用散列算法计算得到。
在一种可能的实现方式中,散列算法为消息摘要算法、安全散列算法和哈希运算消息认证码散列算法中的任意一种。
在本申请的第二方面,提供了一种网络地址转换日志记录系统。该系统包括:
数据获取模块,用于获取待转换地址信息,待转换地址信息包括公网IP地址、公网IP地址对应的端口号和私网IP地址;
地址掩码转换模块,用于将公网IP地址转换为地址掩码和地址掩码对应的掩码网络地址;
端口掩码转换模块,用于将公网IP地址对应的端口号转换为端口掩码和端口掩码对应的掩码端口号;
地址记录模块,用于根据地址掩码、掩码网络地址、端口掩码和掩码端口号,在转换日志中的哈希表上记录公网IP地址和私网IP地址的映射关系。
在本申请的第三方面,提供了一种电子设备。该电子设备包括:存储器和处理器,所述存储器上存储有计算机程序,所述处理器执行所述程序时实现如以上所述的方法。
在本申请的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如根据本申请的第一方面的方法。
综上所述,本申请包括至少一种有益技术效果:
通过对待转换地址信息进行掩码形式的转换,然后根据转换后的数据在转换日志的哈希表中进行记录,减少了搜索树算法中对搜索树进行重构的过程,使用哈希表来提高转换日志中数据的搜索效率,进而实现NAT日志更新时效性的提高。
附图说明
图1是本申请实施例提供的网络地址转换日志记录方法的流程示意图。
图2是本申请实施例提供的转换日志的日志结构示意图。
图3是本申请实施例提供的哈希表的结构示意图。
图4是本申请实施例提供的网络地址转换日志记录方法的插入流程示意图。
图5是本申请实施例提供的哈希表的数据存储示意图。
图6是本申请实施例提供的网络地址转换日志记录方法的查询流程示意图。
图7是本申请实施例提供的网络地址转换日志记录系统的结构示意图。
图8是本申请实施例提供的电子设备的结构示意图。
图中,201、数据获取模块;202、地址掩码转换模块;203、端口掩码转换模块;204、地址记录模块;301、CPU;302、ROM;303、RAM;304、I/O接口;305、输入部分;306、输出部分;307、存储部分;308、通信部分;309、驱动器;310、可拆卸介质。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。
NAT是一种局域网接入广域网的地址转换技术。为了解决IPv4地址数量不能满足终端数量的问题,NAT通过预制的策略,将局域网IPv4私有地址与端口转换为公网IPv4地址与端口。在具体使用过程中,NAT将有限个数的公网IP地址映射到多个内网私有IP地址。每个公网IP的端口资源采用分时复用的方式,映射到每个连接的私有IP与端口。每个分配后的公网IP的端口资源在一段时间范围内,由其对应的私有IP地址独享。动态NAT服务会根据终端设备并发连接的新建与老化,为其预分配一组独享的公网IP与端口资源。NAT服务为了提高连接获得公网IP端口资源的效率,通常将一个范围的公网的地址资源作为每次分配的单位,该地址范围包含公网IP地址以及上述公网IP地址对应的一组端口范围,即一个NAT资源。
NAT日志是在动态分配NAT资源时产生的一种日志。日志内容至少包含内网的源IPv4地址与外网的源IPv4地址范围与端口范围的映射关系。NAT服务会在终端设备的NAT资源即将耗尽时,对其预先分配新的NAT资源,并在该过程中产生相对应的NAT日志。终端设备IP的每个新建连接都将在一段时间内独占一个NAT资源。当某个NAT资源在一段时间内没有被连接占用时,释放并回收该NAT资源,该过程不产生日志。每个NAT服务节点的公网IP资源往往较为有限,例如仅有一个IP地址且该IP地址也属于一个连续的地址段内。
由于NAT资源始终处于资源分配与回收的过程中,NAT日志所描述的地址映射关系变化非常频繁。NAT日志的产生时机和上述映射关系的建立时间之间,存在一个时间窗口,该时间窗口起始位置为NAT服务针对某终端IP分配了NAT资源的时刻,该时间窗口的结束位置为上述NAT资源超时的时刻或上述NAT资源被重新分配给其他端设备地址的时刻。通常NAT资源的分配采用预分配的方式执行,其发生时间早于上述映射关系的建立时间。但是NAT日志的生产、转发和加载到关联算法并生效的过程会产生一定的时延,如果该时延导致上述映射关系的确立时间晚于连接新建时间,则上述时间窗口内的部分数据流不能被正确关联到NAT资源信息。在大规模的流量分析业务场景中,需要对规模很大的并发连接流量执行实时的NAT资源信息的关联计算,所以要求NAT信息关联模块的算法能够快速地响应频繁变化的NAT日志里的资源映射关系,并在上述时间窗口内将并发连接与端设备信息进行关联与标识。
NAT日志的关联功能一般会涉及搜索树算法。Hash算法负责对NAT资源的某种唯一值进行散列存储。搜索树算法用于实现公网IP地址和端口与私网IP地址的匹配。通过将数值范围的小值或大值作为树的节点值,另一个值作为节点中的待匹配数值,并依照一定的构建方法的约束,动态地调整树的结构以实现一种空间和搜索性能的最优状态。搜索树的结构是一个全局性的逻辑整体,更新时需要一个复杂的重新构造过程,该过程导致数据的更新的时效性变差。
由于搜索树是一个逻辑整体的结构特性,其更新过程是一个对该逻辑整体重新构造的复杂过程。这一个过程需要大量时间完成计算工作,在NAT日志关联业务中,其必然影响NAT日志信息的生效时机。并且随着NAT服务对同一个公网IP地址的端口范围的不断复用,使得树状结构的空间复杂度持续增加,导致NAT信息的更新过程中大量的时间消耗在树状结构的构造过程上,无法在狭窄的时间窗口内对新建连接与NAT资源建立正确的映射关系。
为了解决上述搜索树算法数据更新的时效性差的问题,本申请提供了一种网络地址转换日志记录方法,通过设置掩码范围建立哈希表,使得每个掩码范围在每个哈希表内存储的数据均处于无耦合的散列状态,达到对哈希表中的数据进行插入、删除过程均相对独立的效果,不需要哈希表进行重构,提高数据更新的时效性。
下面结合说明书附图对本申请实施例做进一步详细描述。
本申请实施例提供一种网络地址转换日志记录方法,所述方法的主要流程描述如下。
如图1所示:
步骤S101:获取待转换地址信息。
具体地,上述待转换地址信息包括公网IP地址、上述公网IP地址对应的端口号和私网IP地址。
可以理解的是,由于NAT会根据预定的策略对公网IP地址进行分配,即指定公网IP地址及其端口号与私网IP地址的对应关系,所以上述对应关系是已知的,上述待转换地址信息就是根据上述对应关系得到的,也可以说上述待转换地址信息就是上述对应关系。
步骤S102:将公网IP地址转换为地址掩码和地址掩码对应的掩码网络地址。
步骤S103:将公网IP地址对应的端口号转换为端口掩码和端口掩码对应的掩码端口号。
可以理解的是,掩码的计算为本领域技术人员公知的技术手段,在此不做赘述。通过步骤S102和步骤S103,可以分别建立地址掩码与掩码网络地址的关系以及端口掩码和掩码端口号的关系,即将地址掩码和掩码网络地址进行与运算,就可以得到上述公网IP地址,同理,将端口掩码和掩码端口号进行与运算就可以得到上述公网IP地址对应的端口号。
步骤S104:根据地址掩码、掩码网络地址、端口掩码和掩码端口号,在转换日志中的哈希表上记录公网IP地址和私网IP地址的映射关系。
具体地,参照图2和图3,图2表示转换日志的日志结构,图3表示每个哈希表的内部结构,上述转换日志包括多个哈希表,每个哈希表包括掩码属性字段和多个键值对,哈希表中的每个键值对包括键和上述键对应的值,上述键包括上述掩码网络地址和上述掩码端口号,上述键对应的值包括私网IP地址和上述私网IP地址的占用时间。
可以理解的是,转换日志中存储的数据是当前公网IP地址及其端口和私网IP地址之间的对应关系,例如,在哈希表A中,存储有某一个键值对,其中键为掩码网络地址a和掩码端口号b,上述键对应的值为私网IP地址c和占用时间d。上述键值对表示在该时刻,a和b同c存在对应关系,并且上述对应关系的建立时间距离该时刻经过了时间d。
在一个具体的示例中,每个哈希表由掩码属性字段以及连续的哈希开放地址空间组成。其中,掩码属性字段包括地址掩码范围和端口掩码范围。例如,公网IP地址范围为1.2.3.4-1.2.3.15,将其转换成掩码形式为1.2.3.4/30和1.2.3.8/29两个地址掩码范围。再例如,端口号范围为138-271,将其转换成掩码形式为138/31、140/30、144/28、160/27、192/26、256/24、264/29。哈希表中的各个键值对包括在上述哈希表掩码属性字段范围内的掩码网络地址和掩码端口号。
本申请实施例中占用时间的精度定位为秒级,根据NAT技术特性,NAT资源有效期使用秒为单位就可以达到精度要求。上述占用时间可以为当前时间加上私网IP地址的占用时间,也可以为私网IP地址的占用时间,占用时间用于查询或插入过程中,判断是否超时。上述私网IP地址是NAT资源映射的私网IP地址。
进一步地,确定与上述地址掩码和端口掩码对应的哈希表,上述地址掩码在上述哈希表对应的地址掩码范围内且上述端口掩码在上述哈希表对应的端口掩码范围内;根据上述公网IP地址和上述公网IP地址对应的端口号,计算上述哈希表中的目标存储位置;当上述目标存储位置为空时,则将上述私网IP地址存储至上述目标存储位置中;当上述目标存储位置不为空时,根据上述目标存储位置中上述私网IP地址的占用时间,记录上述私网IP地址。上述目标存储位置通过对上述公网IP地址和上述公网IP地址对应的端口号使用散列算法计算得到。在本申请提供的实施例中,散列算法可以为消息摘要算法(Message-Digest Algorithm version.5,MD5)、安全散列算法(secure hash algorithm,SHA)、哈希运算消息认证码散列算法(Hash-based Message Authentication Code,HMAC)中的任意一种,在其他实施方式中,也可以使用其他散列算法,在此不作限定。
可以理解的是,当获取到新的公网IP地址及其端口号与私网IP地址的对应关系时,需要将上述对应关系存储或记录到转换日志中。例如,当上述对应关系中的公网IP地址在此之前没有被分配过即转换日志中不存在包括上述公网IP地址的数据,则将上述对应关系存储到转换日志中的对应位置上。当上述对应关系中的公网IP地址之前被分配过即转换日志中存在包括上述公网IP地址的数据,则需要对转换日志中的数据进行进一步判断,确定上述对应关系的目标存储位置并进行存储。
进一步地,当上述地址掩码和端口掩码对应的哈希表不存在时,创建上述地址掩码和端口掩码对应的哈希表。
在一个具体的示例中,通过将公网IP地址对应的地址掩码和转换日志中各个哈希表的地址掩码范围进行比较、将端口掩码和转换日志中各个哈希表的端口掩码范围进行比较,判断上述地址掩码是否在某个哈希表的地址掩码范围内且上述端口掩码是否在某个哈希表的端口掩码范围内,如果上述地址掩码没有在任意一个哈希表对应的地址掩码范围内和/或上述端口掩码没有在任意一个哈希表对应的端口掩码范围内时,创建新的哈希表,使得新的哈希表的地址掩码范围中包括上述地址掩码且端口掩码范围中包括上述端口掩码。如果上述地址掩码在某一个哈希表对应的地址掩码范围内且上述端口掩码在某一个哈希表对应的端口掩码范围内时,对上述公网IP地址及其端口号进行散列计算,就可以得到公网IP地址及其端口号与私网IP地址的对应关系在该哈希表中的目标存储位置。判断目标存储位置是否为空,如果为空,就将上述公网IP地址及其端口号与私网IP地址存储到该目标存储位置中,如果不为空,就还需要对目标存储位置中的占用时间进行进一步判断,确定公网IP地址及其端口号与私网IP地址的新的目标存储位置。
进一步地,当上述私网IP地址的占用时间大于时间预设值时,将上述待转换地址信息中的上述私网IP地址存储在上述目标存储位置中;当上述私网IP地址的占用时间小于等于上述时间预设值时,将上述待转换地址信息中的上述私网IP地址存储在更新存储位置中,上述更新存储位置=上述目标存储位置+n,n为正整数。
在一个具体的示例中,当哈希表中目标存储位置中的占用时间大于时间预设值时,表示在该目标存储位置中的私网IP地址与公网IP地址及其端口号的关系已经超时,该公网IP地址可以与新的私网IP地址建立连接关系,所以此时,将获取到的私网IP地址直接存储到上述目标存储位置中,即覆盖之前的存储的数据。当哈希表中目标存储位置中的占用时间小于等于时间预设值时,表示在该目标存储位置中的私网IP地址与公网IP地址及其端口号的关系并未超时,此时,将目标存储位置向高地址方向偏移一位,得到新的目标存储位置即更新存储位置,更新存储位置=目标存储位置+1,再对更新存储位置进行上述判断,如果符合存储条件,则将数据存储到更新存储位置中,如果不符合条件,再继续进行判断,直到完成数据的存储。在本申请提供的实施例中,上述n取值为1,在其他实施方式中,可以根据实际情况,设定n的值,对此不做限定。
参照图4,在一个具体的示例中,在转换日志中插入获取到的待转换地址信息。首先将待转换地址信息进行掩码形式的转换,得到地址掩码、掩码网络地址、端口掩码和掩码端口号。其中,地址掩码和端口掩码组成待转换地址信息的掩码属性,掩码网络地址和掩码端口号组成hash key。参照图5,图5表示转换日志中各个哈希表的数据存储情况,其中,键值对序号用于排列每条数据。掩码属性字段表示该键值对所在哈希表的掩码属性字段,掩码网络地址和掩码端口号为每个键值对中的键,地址掩码为与上述掩码网络地址对应,端口掩码与上述掩码端口号对应。然后根据待转换地址信息得到的地址掩码、掩码网络地址、端口掩码和掩码端口号,判断转换日志中的是否有与上述待转换地址信息匹配的哈希表,如果没有,则根据预置的哈希空间配置新建哈希表。继而对掩码网络地址和掩码端口号进行散列计算,得到在哈希表中的目标存储位置,再判断上述目标存储位置是否已经被占用,如果没有被占用则将待转换信息中的掩码网络地址、掩码端口号和私网IP地址写入哈希表的目标存储位置中,并将目标存储位置中的占用时间进行初始化,上述占用时间的初始化可以将占用时间记为0也可以将占用时间记为当前时间。如果被占用,判断目标存储位置中的占用时间字段对应的值是否大于时间预设值,即判断目标存储位置的数据是否超时,若是,则删除目标存储位置中的数据并将待转换地址信息中对应的数据填入目标存储位置。若否,则将上述目标存储位置向高地址方向偏移1个位置后得到更新存储位置,继续判断更新存储位置是否被占用以及是否超时,直到完成待转换地址信息中数据的存储。
参照图6,在一个具体的示例中,在转换日志中查询获取到的地址信息,地址信息包括掩码网络地址和掩码端口号。依次遍历转换日志中的每个哈希表,哈希表中的各个键值对也可以成为哈希表的表项。对哈希表掩码属性字段中的地址掩码范围和掩码网络地址进行与运算得到判断地址,对哈希表掩码属性字段中的端口掩码范围和掩码端口号进行与运算得到判断端口。将判断地址和判断端口记为key,如果上述判断地址或判断端口中任意一个字段为0,则表示该哈希表的掩码属性字段中不包含上述地址信息对应的IP地址和端口,继续对下一个哈希表进行判断,直到找到适配的哈希表。然后对上述判断地址和判断端口进行散列运算,得到上述地址信息对应的存储位置,读取上述存储位置中的数据,如果上述存储位置没被使用,则向高地址偏移1后,读取新的存储位置的数据,直到找到被占用的存储位置。继而判断上述存储位置中的占用时间是否超时,若是,则删除上述存储位置中的数据后,向高地址偏移1后,继续读取新的存储位置的数据。判断存储位置中的键是否与上述判断端口和判断地址相等,如果不相等则向高地址偏移1后,继续读取新的存储位置的数据。如果相等,则结束对转换日志的遍历,返回读取到的存储位置的数据,查询成功。
可以理解的是,在查询过程中可以对占用时间超时的数据进行删除,也可以不对超时的数据进行删除,因为超时的数据已经没有必要存储在转换日志中了,所以在进行遍历时就会将无用的数据删除,以提高数据插入时的执行效率。
本申请通过将掩码和哈希表结合的方式,实现对公网IP地址、端口号和私网IP地址的匹配存储,根据哈希表的掩码属性字段可以先将需要搜索的范围缩小,然后在对应的哈希表中进行进一步的遍历和判断,减少了搜索树的重构过程,同时哈希表本身的插入、删除和查找效率就要优于搜索树。本申请提高了NAT日志数据更新的时效性。
本申请实施例提供一种网络地址转换日志记录系统,参照图7,网络地址转换日志记录系统包括:
数据获取模块201,用于获取待转换地址信息,待转换地址信息包括公网IP地址、公网IP地址对应的端口号和私网IP地址;
地址掩码转换模块202,用于将公网IP地址转换为地址掩码和地址掩码对应的掩码网络地址;
端口掩码转换模块203,用于将公网IP地址对应的端口号转换为端口掩码和端口掩码对应的掩码端口号;
地址记录模块204,用于根据地址掩码、掩码网络地址、端口掩码和掩码端口号,在转换日志中的哈希表上记录公网IP地址和私网IP地址的映射关系。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,所描述的模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本申请实施例公开一种电子设备。参照图8,电子设备包括中央处理单元(centralprocessing unit,CPU)301,其可以根据存储在只读存储器(read-only memory,ROM)302中的程序或者从存储部分307加载到随机访问存储器(random access memory,RAM)303中的程序而执行各种适当的动作和处理。在RAM 303中,还存储有系统操作所需的各种程序和数据。CPU 301、ROM 302以及RAM 303通过总线彼此相连。输入/输出(input/output,I/O)接口304也连接至总线。
以下部件连接至I/O接口304:包括键盘、鼠标等的输入部分305;包括诸如阴极射线管(cathode ray tube,CRT)、液晶显示器(liquid crystal display,LCD)等以及扬声器等的输出部分306;包括硬盘等的存储部分307;以及包括诸如局域网(local areanetwork,LAN)卡、调制解调器等的网络接口卡的通信部分308。通信部分308经由诸如因特网的网络执行通信处理。驱动器309也根据需要连接至I/O接口304。可拆卸介质310,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器309上,以便于从其上读出的计算机程序根据需要被安装入存储部分307。
特别地,根据本申请的实施例,上文参考流程图图1描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在机器可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分308从网络上被下载和安装,和/或从可拆卸介质310被安装。在该计算机程序被中央处理单元(CPU)301执行时,执行本申请的装置中限定的上述功能。
需要说明的是,本申请所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(erasable programmable read only memory,EPROM)、光纤、便携式紧凑磁盘只读存储器(compact disc read-only memory,CD-ROM)、光存储器件、磁存储器件,或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、射频(radio frequency,RF)等等,或者上述的任意合适的组合。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的申请范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离前述申请构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其他技术方案。例如上述特征与本申请中申请的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (9)
1.一种网络地址转换日志记录方法,其特征在于,包括:
获取待转换地址信息,所述待转换地址信息包括公网IP地址、所述公网IP地址对应的端口号和私网IP地址;
将所述公网IP地址转换为地址掩码和所述地址掩码对应的掩码网络地址;
将所述公网IP地址对应的端口号转换为端口掩码和所述端口掩码对应的掩码端口号;
根据所述地址掩码、所述掩码网络地址、所述端口掩码和所述掩码端口号,在转换日志中的哈希表上记录所述公网IP地址和私网IP地址的映射关系;所述转换日志包括多个所述哈希表,每个所述哈希表包括掩码属性字段和多个键值对,每个键值对包括键和所述键对应的值,所述键包括所述掩码网络地址和所述掩码端口号,所述键对应的值包括私网IP地址和所述私网IP地址的占用时间;所述掩码属性字段包括地址掩码范围和端口掩码范围。
2.根据权利要求1所述的网络地址转换日志记录方法,其特征在于,所述根据所述地址掩码、所述掩码网络地址、所述端口掩码和所述掩码端口号,在转换日志中的哈希表上记录所述公网IP地址和私网IP地址的映射关系,包括:
确定与所述地址掩码和所述端口掩码对应的哈希表,所述地址掩码和所述端口掩码在所述哈希表的掩码属性字段对应的范围内;
根据所述公网IP地址和所述公网IP地址对应的端口号,计算所述哈希表中的目标存储位置;
当所述目标存储位置为空时,则将所述私网IP地址存储至所述目标存储位置中;
当所述目标存储位置不为空时,根据所述目标存储位置中所述私网IP地址的占用时间,记录所述私网IP地址。
3.根据权利要求2所述的网络地址转换日志记录方法,其特征在于,所述根据所述目标存储位置中所述私网IP地址的占用时间,记录所述私网IP地址,包括:
当所述私网IP地址的占用时间大于时间预设值时,将所述待转换地址信息中的所述私网IP地址存储在所述目标存储位置中;
当所述私网IP地址的占用时间小于等于所述时间预设值时,将所述待转换地址信息中的所述私网IP地址存储在更新存储位置中,所述更新存储位置=所述目标存储位置+n,n为正整数。
4.根据权利要求2所述的网络地址转换日志记录方法,其特征在于,所述确定与所述地址掩码和所述端口掩码对应的哈希表,包括:
当所述地址掩码和所述端口掩码对应的哈希表不存在时,创建所述地址掩码和所述端口掩码对应的哈希表。
5.根据权利要求2所述的网络地址转换日志记录方法,其特征在于,所述目标存储位置通过对所述公网IP地址和所述公网IP地址对应的端口号使用散列算法计算得到。
6.根据权利要求5所述的网络地址转换日志记录方法,其特征在于,所述散列算法为消息摘要算法、安全散列算法和哈希运算消息认证码散列算法中的任意一种。
7.一种网络地址转换日志记录系统,其特征在于,包括:
数据获取模块,用于获取待转换地址信息,所述待转换地址信息包括公网IP地址、所述公网IP地址对应的端口号和私网IP地址;
地址掩码转换模块,用于将所述公网IP地址转换为地址掩码和所述地址掩码对应的掩码网络地址;
端口掩码转换模块,用于将所述公网IP地址对应的端口号转换为端口掩码和所述端口掩码对应的掩码端口号;
地址记录模块,用于根据所述地址掩码、所述掩码网络地址、所述端口掩码和所述掩码端口号,在转换日志中的哈希表上记录所述公网IP地址和私网IP地址的映射关系;所述转换日志包括多个所述哈希表,每个所述哈希表包括掩码属性字段和多个键值对,每个键值对包括键和所述键对应的值,所述键包括所述掩码网络地址和所述掩码端口号,所述键对应的值包括私网IP地址和所述私网IP地址的占用时间;所述掩码属性字段包括地址掩码范围和端口掩码范围。
8.一种电子设备,其特征在于,包括存储器和处理器,所述存储器上存储有能够被处理器加载并执行如权利要求1至6中任一种所述方法的计算机程序。
9.一种计算机可读存储介质,其特征在于,存储有能够被处理器加载并执行如权利要求1至6中任一种所述方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410204477.5A CN117812039B (zh) | 2024-02-24 | 2024-02-24 | 一种网络地址转换日志记录方法、系统、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410204477.5A CN117812039B (zh) | 2024-02-24 | 2024-02-24 | 一种网络地址转换日志记录方法、系统、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117812039A CN117812039A (zh) | 2024-04-02 |
CN117812039B true CN117812039B (zh) | 2024-05-14 |
Family
ID=90425705
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410204477.5A Active CN117812039B (zh) | 2024-02-24 | 2024-02-24 | 一种网络地址转换日志记录方法、系统、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117812039B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010056948A (ko) * | 1999-12-17 | 2001-07-04 | 이계철 | 이진표기 문자열을 이용한 데이터베이스 상에서의 인터넷프로토콜(ip)주소정보 관리방법 |
CN101132424A (zh) * | 2007-09-29 | 2008-02-27 | 杭州华三通信技术有限公司 | 网络地址转换的方法及装置 |
WO2010045809A1 (zh) * | 2008-10-22 | 2010-04-29 | 华为技术有限公司 | 一种实现网络地址转换的方法、媒体网关和网络系统 |
WO2017088628A1 (zh) * | 2015-11-24 | 2017-06-01 | 中兴通讯股份有限公司 | 地址转换方法、装置及系统、网络标识控制方法及装置 |
CN110069431A (zh) * | 2018-01-24 | 2019-07-30 | 上海交通大学 | 基于RDMA和HTM的弹性Key-Value键值对数据存储方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190334863A1 (en) * | 2019-04-25 | 2019-10-31 | Intel Corporation | Lockless stateful network address translation |
-
2024
- 2024-02-24 CN CN202410204477.5A patent/CN117812039B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010056948A (ko) * | 1999-12-17 | 2001-07-04 | 이계철 | 이진표기 문자열을 이용한 데이터베이스 상에서의 인터넷프로토콜(ip)주소정보 관리방법 |
CN101132424A (zh) * | 2007-09-29 | 2008-02-27 | 杭州华三通信技术有限公司 | 网络地址转换的方法及装置 |
WO2010045809A1 (zh) * | 2008-10-22 | 2010-04-29 | 华为技术有限公司 | 一种实现网络地址转换的方法、媒体网关和网络系统 |
WO2017088628A1 (zh) * | 2015-11-24 | 2017-06-01 | 中兴通讯股份有限公司 | 地址转换方法、装置及系统、网络标识控制方法及装置 |
CN110069431A (zh) * | 2018-01-24 | 2019-07-30 | 上海交通大学 | 基于RDMA和HTM的弹性Key-Value键值对数据存储方法 |
Non-Patent Citations (1)
Title |
---|
NAT技术的研究及实现方法比较;刘洋;;计算机与信息技术;20090520(05);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117812039A (zh) | 2024-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3591510B1 (en) | Method and device for writing service data in block chain system | |
CN109726206B (zh) | 区块链节点的数据处理方法、装置、设备和存储介质 | |
US20060259571A1 (en) | Zero-copy transfer of memory between address spaces | |
CN109684335B (zh) | 基于键值对的数据结构实现方法、装置、设备和存储介质 | |
CN112416908A (zh) | 基于Handle标识解析前缀分库存储数据的方法及系统 | |
CN109684414A (zh) | 区块数据的同步方法、装置、设备及存储介质 | |
CN109710190A (zh) | 一种数据存储方法、装置、设备及存储介质 | |
CN110008738A (zh) | 用于区块链合约数据的缓存方法、装置、介质和计算设备 | |
US20070088854A1 (en) | Apparatus for searching TCP and UDP sockets | |
CN117812039B (zh) | 一种网络地址转换日志记录方法、系统、设备及介质 | |
CN112769973B (zh) | 一种网络地址与网络地址转换规则的匹配方法 | |
CN113050987B (zh) | 一种接口文档的生成方法、装置、存储介质及电子设备 | |
CN110046132A (zh) | 一种元数据请求处理方法、装置、设备及可读存储介质 | |
CN113407560A (zh) | 更新消息处理方法、数据同步方法、配置信息配置方法 | |
US7735128B2 (en) | Method of storing pattern matching policy and method of controlling alert message | |
US11924116B2 (en) | Resource address allocation method, system and apparatus for PCI device | |
US20230081889A1 (en) | Method, apparatus, and computing device for operating data object, and storage medium | |
CN114793244B (zh) | 一种区块链的资源处理方法、装置、设备和介质 | |
CN114095471B (zh) | 地址转换方法、装置以及地址溯源方法、装置 | |
CN115686497A (zh) | 业务开发数据管理方法、开发引擎、电子设备和存储介质 | |
CN112491723B (zh) | 网关报文转发方法、装置、存储介质及网关 | |
CN116781780A (zh) | 请求处理方法、装置、服务器和存储介质 | |
CN109542631A (zh) | 一种备机的重演方法、装置、服务器及存储介质 | |
CN110166447B (zh) | 一种基于pon网关的应用识别系统及其识别方法 | |
CN111786943B (zh) | 一种网络标识匿名传输方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |