CN105162901B - 一种基于sopc的nat的实现方法及装置 - Google Patents
一种基于sopc的nat的实现方法及装置 Download PDFInfo
- Publication number
- CN105162901B CN105162901B CN201510641720.0A CN201510641720A CN105162901B CN 105162901 B CN105162901 B CN 105162901B CN 201510641720 A CN201510641720 A CN 201510641720A CN 105162901 B CN105162901 B CN 105162901B
- Authority
- CN
- China
- Prior art keywords
- processing
- module
- nat
- learning
- turning
- 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 85
- ATHVAWFAEPLPPQ-VRDBWYNSSA-N 1-stearoyl-2-oleoyl-sn-glycero-3-phosphocholine Chemical compound CCCCCCCCCCCCCCCCCC(=O)OC[C@H](COP([O-])(=O)OCC[N+](C)(C)C)OC(=O)CCCCCCC\C=C/CCCCCCCC ATHVAWFAEPLPPQ-VRDBWYNSSA-N 0.000 title claims abstract description 26
- 230000008569 process Effects 0.000 claims abstract description 48
- 238000000605 extraction Methods 0.000 claims abstract description 41
- 230000006870 function Effects 0.000 claims abstract description 29
- 239000012634 fragment Substances 0.000 claims description 29
- 230000032683 aging Effects 0.000 claims description 15
- 238000013467 fragmentation Methods 0.000 claims description 6
- 238000006062 fragmentation reaction Methods 0.000 claims description 6
- 230000008901 benefit Effects 0.000 abstract description 11
- 230000007812 deficiency Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 4
- 230000003139 buffering effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000004083 survival effect Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 230000003068 static effect Effects 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
- H04L61/00—Network arrangements, protocols or services for addressing or naming
-
- 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
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了基于SOPC的NAT的实现方法及装置。步骤包括学习/处理模块判断自己能否处理此信息,如果能处理,学习/处理模块根据以前学习的内容进行处理,然后将处理结果提交给NAT处理模块否则将接收到的信息提交给处理器处理。装置包括处理器模块、学习/处理模块、以太网接口模块、提取模块、数据缓冲模块、NAT处理模块、NAT逆处理模块。本发明通过基于SOPC实现了NAT处理,充分发挥处理器和逻辑处理各自的长处,合理分配各自的实现功能,并采用了学习/处理模块来弥补处理器模块处理能力的不足;而且还具有NAT处理灵活、处理速度快、成本低、功耗低的优点,具有良好的经济和社会效益。本发明可广泛应用于各种NAT处理***。
Description
技术领域
本发明涉及计算机网络领域,尤其涉及一种网络地址转换方法。
背景技术
NAT:Network Address Translation,网络地址转换。
SOPC:System-on-Programmable-Chip,即可编程片上***。
ICMP:Internet Control Message Protocol,Internet控制报文协议。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。
CAM:Content Addressable Memory, 内容可寻址存储器。
目前NAT的实现主要有三种方法,第一种是纯软件实现,载体通常为通用CPU;第二种是基于FPGA硬件实现;第三种是基于网络处理器(NP)实现。
通过纯软件实现的方法处理方式灵活,技术成熟,但缺点也很明显,处理速度比较慢,时延大,需要占用大量CPU时间,内存消耗大。
通过FPGA实现的方法处理速度快,时延小。如果仅用单纯逻辑实现,通常只能实现一些功能比较简单的NAT处理,且不及纯软件实现应用灵活、需要消耗大量逻辑资源。
通过NP实现的方法处理速度快,但价格昂贵,应用不够灵活。
综上所述,现有技术存在以下问题:
1、通过单纯逻辑进行NAT实现对功能复杂度有限制;
2、针对具体应用,现有通过FPGA或者NP的实现方式应用均不够灵活;
3、针对小型应用,现有的实现方式体积大,功耗高,成本高。
发明内容
为了解决上述技术问题,本发明的目的是提供一种可灵活实现NAT处理、处理速度快、成本低、功耗低的NAT的实现方法。
为了解决上述技术问题,本发明的另一个目的是提供一种可灵活实现NAT处理、处理速度快、成本低、功耗低的NAT的实现装置。
本发明所采用的技术方案是:
一种基于SOPC的NAT的实现方法,其包括步骤:S1,对数据包进行信息提取;S2,将数据包存入缓冲区,同时将提取的信息提交给学习/处理模块;S3,学习/处理模块判断自己能否处理此信息,如果能处理,则进入步骤S4,否则将接收到的信息提交给处理器并进入步骤S5;S4,学习/处理模块根据以前学习的内容进行处理,然后将处理结果提交给NAT处理模块;S5,处理器对接收到信息进行处理,并将处理结果返回给学习/处理模块;S6,学习/处理模块学习处理器的结果,并将处理结果提交给NAT处理模块;S7,NAT处理模块、NAT逆处理模块根据接收的处理结果对缓冲区中的数据包进行处理。
优选的,步骤S1所述信息包括源MAC地址、以太网协议类型、IP协议类型、以太网源IP、以太网目的IP、ICMP标识符、ICMP序列号、源端口号、目的端口、IP包的16位标识、IP包的3位标志及13位片偏移、IP首部检验和、ICMP/TCP/UDP的检验和。
优选的,步骤S2中所述提交给学习/处理模块的信息包括源IP、目的IP、源端口号(TCP、UDP)、目的端口(TCP、UDP)、IP包的16位标识、IP包的3位标志及13位片偏移及协议类型。
优选的,所述步骤S3具体包括子步骤:S31,首先通过数据包的3位标志及13位片偏移判断该数据包是否为IP分片包,如果是分片包,则不能处理此信息,否则进入步骤S32;S32,用信息中的源IP、源端口、目的IP、目的端口、协议类型进行CAM查询,如果存在有效项,则表示学习/处理模块能处理此信息并进入步骤S4,否则表示不能处理此信息并进入步骤S33;S33,将接收到的信息提交给处理器并进入步骤S5。
优选的,所述步骤S4具体为:从CAM的输出中获取匹配单元的地址,从存储模块中读出该地址单元的内容,作为处理结果返回给NAT处理模块,同时将对应的老化计数器清零。
优选的,步骤S5中所述的信息为私网数据或公网数据,所述步骤S5具体包括子步骤:S51,对私网数据进行处理,并将处理结果返回给学习/处理模块;或者S52,对公网数据进行处理,并将处理结果返回给学习/处理模块。
优选的,所述步骤S51具体包括子步骤:S511,用源端口号作为私网端口查找表的索引,从存储器中取出该序号的对应表项,判断表项的有效标识位是否有效,如果有效则进入步骤S512,否则转至步骤S519;S512,判断指针标识位是否有效,如果有效则转至步骤S517,否则转至步骤S513;S513,判断协议字段、源IP字段是否匹配,如果匹配则转至步骤S514,否则转至步骤S519;S514,用替换端口的内容对源端口进行替换,并判断外网网关有效标识位是否有效,如果有效则转至步骤S516,否则转至步骤S515;S515,数据包可直接送达或采用默认网关,转至步骤S518;S516,数据包需经过该外网网关转发,转至步骤S518;S517,通过IP指针找到IP查找表,历遍有效标识位有效的表项,如果存在协议字段、源IP字段匹配项,则转至步骤S514,否则转至步骤S519;S518,查表成功,转至步骤S5111;S519,若动态模式位置位,则随机分配一个未使用的公网IP、端口,并将相应信息添加到NAT配置表中,转至步骤S5111;S5110,查表失败,数据包丢弃,转至步骤S5111;S5111,将处理结果返回给学习/处理模块,转至步骤S511,开始下一次查表;所述步骤S52具体包括子步骤:S521,用目的端口号作为公网端口查找表的索引,从存储器中取出该序号的对应表项,判断表项的有效标识位是否有效,如果无效则转至步骤S5210,如果有效则转至步骤S522;S522,判断指针标识位是否有效,如果无效则转至步骤S523,如果有效则转至步骤S525;S523,判断协议字段、外网IP字段是否匹配,如果匹配则转至骤S524,否则转至步骤S5210;S524,用替换端口的内容、内网IP的内容对目的端口、目的IP进行替换,转至步骤S529;S525, 通过IP指针找到IP查找表,历遍有效标识位有效的表项,如果存在协议字段、外网IP字段匹配,且当远程IP有效标识有效时,远程IP、远程端口也匹配的匹配项时则转至步骤S526,如果没有则转至步骤S5210;S526,判断内网IP有效标识是否有效,如果有效则转至步骤S527,否则转至步骤S528;S527,用IP查找表中的替换端口、内网IP对目的端口、目的IP进行替换,转至步骤S529;S528,用IP查找表中的替换端口、端口查找表中的内网IP对目的端口、目的IP进行替换,转至步骤S529;S529,查表成功,转至步骤S5211;S5210,查表失败,转至步骤S5211;S5211,将处理结果返回给学习/处理模块,转至步骤S521,开始下一次查表。
优选的,所述步骤S5还包括子步骤:S50,对接收到的信息进行IP分片包处理;所述步骤S50具体包括子步骤:S501,判断是否为IP分片包,如果是分片包则转至步骤S502;S502,判断是否为IP分片包的首包,如果是则转至步骤S503,否则转至步骤S504;S503,将首包按非分片包的处理方式进行处理,并将缓存中该分片包的其它分片也按该方式处理,转至步骤S505;S504,将分片包信息缓存,转至步骤S505;S505,转至步骤S501步,开始下一次处理。
优选的,所述步骤S7具体包括子步骤:S71,根据学习/处理模块输出的结果,结合提取模块的输出、数据缓冲模块中的数据包内容,实现私网到公网TCP、UDP数据包的源IP、源端口替换,即完成NAT处理;S72,根据学习/处理模块输出的结果,结合提取模块的输出、数据缓冲模块中的数据包内容,实现公网到私网TCP、UDP数据包的目的IP、目的端口替换,即完成NAT逆处理;S73,重新计算IP首部校验和、TCP校验和、UDP校验和。
一种基于SOPC的NAT的实现装置,其用于实施基于SOPC的NAT的实现方法,其包括:处理器模块, 用于对学习/处理模块输出的数据包信息进行查表处理,并将处理结果返回给学习/处理模块;学习/处理模块,其分别与提取模块和处理器模块相连,主要有两个作用:一是接收提取模块的输出,检查学习内容中是否有符合项,如果有符合项则将存储的对应结果输出给NAT处理模块,如果没有符合项则将接收的数据直接提交给处理器模块,并记录该数据,以便在学习过程中与处理结果建立一一对应关系;二是学习处理器输出的数据包处理结果,即将数据包信息输入与数据包处理结果间建立一一对应的关系,以便对后续数据包中有相同输入条件的数据包直接进行处理,以减轻处理器模块的负荷,提高数据包的处理能力,然后将结果输出给NAT处理模块;提取模块,其与以太网接口模块相连,用于提取数据包信息;以太网接口,包括用于连接私网的私网以太网接口和用于连接公网的以太网接口;数据缓冲模块,其连接于提取模块和NAT处理模块或NAT逆处理模块之间,用于缓存数据包;NAT处理模块,其分别与提取模块、数据缓冲模块、学习/处理模块和以太网接口连接,其用于接收学习/处理模块的输出,并结合提取模块的输出、数据缓冲模块中的数据包内容,实现私网到公网的NAT处理;NAT逆处理模块,其分别与提取模块、数据缓冲模块、学习/处理模块和以太网接口连接,其用于接收学习/处理模块的输出,并结合提取模块的输出、数据缓冲模块中的数据包内容,实现公网到私网的NAT逆处理。
本发明的有益效果是:
本发明通过基于SOPC实现了NAT处理,充分发挥处理器和逻辑处理各自的长处,合理分配各自的实现功能,并采用了学习/处理模块来弥补处理器模块处理能力的不足,采用先进的数据结构(NAT处理表)和合理的NAT处理流程,最大限度的提升通用性和处理性能;而且还具有NAT处理灵活、处理速度快、成本低、功耗低的优点,具有良好的经济和社会效益。
本发明可广泛应用于各种NAT处理***。
附图说明
下面结合附图对本发明的具体实施方式作进一步说明:
图1是本发明基于SOPC的NAT的实现方法一种实施例的方法流程图;
图2是本发明私网NAT处理表一种实施例的结构及逻辑关系图;
图3是本发明公网NAT处理表一种实施例的结构及逻辑关系图;
图4是本发明基于SOPC的NAT的实现装置一种实施例的***结构框图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
该实施例中,一种基于SOPC的NAT的实现装置以FPGA为载体,设计方案结构框图如图4所示。该方案由两部分组成,一部分是外部存储器主要用来存储和查询网络地址转换表以及作为处理器的外部存储器,另一部分则主要完成NAT功能的实现,主要包括处理器模块、学习/处理模块、以太网接口模块、提取模块、数据缓冲模块、NAT处理模块、NAT逆处理模块,这些功能模块都是用FPGA来实现。
本方案支持TCP、UDP、ICMP协议的NAT处理。由于NAT转换表的存储、管理和查找用逻辑实现比较繁琐且耗费资源,特别是当NAT配置复杂、表项庞大的时候几乎不可实现,故这部分的功能在FPGA内部以嵌入式CPU核的方式来进行实现。其包括:
1.处理器模块
处理器模块与学习/处理模块和外部存储相连,主要有三个作用:一、在静态NAT模式下,接收配置下发通道的数据,并根据配置数据建立NAT处理表;二、在动态NAT模式下,根据学习/处理模块输出的私网数据包信息进行动态分配公网IP、端口号,并用该信息建立NAT处理表;三、对学习/处理模块输出的数据包信息进行查表处理,并将处理结果返回给学习/处理模块。
本实例中处理器模块采用xilinx提供的软核CPU microblaze 和相应外设构成。CPU采用了两个microblaze核,一个主要用于NAT处理表的更新及维护以及***管理,另一个主要用于NAT处理。
2.学习/处理模块
学习/处理模块与提取模块和处理器模块相连,主要有两个作用:一、接收提取模块的输出,检查学习内容中是否有符合项,如果有符合项则将存储的对应结果输出给NAT处理模块,如果没有符合项则将接收的数据直接提交给处理器模块,并记录该数据,以便在学习过程中与处理结果建立一一对应关系。二、学习处理器输出的数据包处理结果,即将数据包信息输入与数据包处理结果间建立一一对应的关系,以便对后续数据包中有相同输入条件的数据包直接进行处理,以减轻处理器的负荷,提高数据包的处理能力,然后将结果输出给NAT处理模块。
该实施例中,学习/处理模块主要包括CAM模块、存储模块、管理模块、计数器组等。
CAM模块有两种实现方法,基于查找表实现和基于BLOCKRAM实现,需根据逻辑资源的使用情况权衡。CAM模块的功能是实现数据的快速匹配,用于判断学习内容中是否有符合项。CAM模块的表项数可参数设置,可根据具体应用环境需要进行设置,本实例中采用的表项数为32。增加表项可大幅提高学习/处理能力,但所消耗的逻辑资源成指数增长。
存储模块也有两种实现方法,基于查找表实现和基于BLOCKRAM实现,需根据逻辑资源的使用情况权衡。存储模块的功能是用于存储学习到的处理结果,并在存储单元数量上与CAM模块的表项数相同、在地址关系上一一对应。本实例中存储单元数量为32。
管理模块主要实现对CAM模块的写入、查询的控制功能,对存储模块的读写控制功能,对计数器组的计数启动、清零控制功能,此外还实现学习控制功能和处理控制功能。
学习控制功能如下:首先根据表项数建立标识组,每个标识组单元唯一指示一个表项,初始时标识组单元全部置为无效,当检测到处理器输出的有效结果时,首先在标识组找出一个无效单元,如果没有无效单元则找出计数器组中计数值最大的计数器所对应的标识组单元,并将该标识组单元有效位置位,同时将该结果的输入缩减后存入CAM的对应单元,结果存入存储模块相应单元,且清零计数器组中对应的计数器,并启动该计数器。当计数器组中的计数器值超过阈值时,将对应标识组单元有效位复位,同时关闭该计数器并计数值清零。
处理控制功能如下:将提取模块的输出经过缩减后进行CAM查询,如果存在匹配单元且该单元对应的标识组单元有效位置位,则将计数器组中对应位置的计数器清零,并将存储模块对应位置的内容作为处理结果输出给NAT处理模块,否则将提取模块的输出提交给处理器模块,并暂存该数据。
计数器组实现CAM单元的老化时间计数,并在数量上与CAM模块的表项数相同、并与CAM模块的表项一一对应。本实例中计数器组的数量为32。
3.以太网接口
包括用于连接私网的私网以太网接口和用于连接公网的以太网接口,以太网接口模块根据实际需求实现以太网PHY、MAC功能。
4.提取模块
提取模块与以太网接口模块相连,主要完成数据包信息的提取。提取的控制流信号包括源MAC地址、以太网协议类型、IP协议类型、以太网源IP、以太网目的IP、ICMP标识符(ICMP)、ICMP序列号(ICMP)、源端口号(TCP、UDP)、目的端口(TCP、UDP)、IP包的16位标识、IP包的3位标志及13位片偏移、IP首部检验和 、ICMP/TCP/UDP的检验和等。其中源IP、目的IP、源端口号(TCP、UDP)、目的端口(TCP、UDP)、IP包的16位标识、IP包的3位标志及13位片偏移及协议类型输出给学习/处理模块;其余的直接输出给NAT处理模块或者NAT逆处理模块。
5.数据缓冲模块
数据缓冲模块基于BLOCKRAM实现,用于实现数据包的缓存,还可以消除由于NAT处理过程的时延抖动造成数据包的累积。
6.NAT处理模块
NAT模块与提取模块、数据缓冲模块和学习/处理模块相连,主要有两个作用:一、接收提取模块的输出,并结合数据缓冲模块中的数据包内容,实现私网NAT IP的ARP功能及ICMP功能及ICMP的NAT功能(ICMP是(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。);二、接收学习/处理模块的输出,并结合提取模块的输出、数据缓冲模块中的数据包内容,实现私网到公网TCP、UDP数据包的源IP、源端口替换,实现私网到公网的NAT处理,并重新计算IP首部校验和、TCP校验和、UDP校验和。
7.NAT逆处理模块
NAT逆处理模块实现公网数据到私网的NAT处理,与NAT处理模块大部分功能相同,除了以下两点:一、没有ICMP的NAT功能;二、公网到私网TCP、UDP数据包替换的是目的IP、目的端口。
本实施例中,从私网来的千兆以太网数据包通过FPGA中的SGMII接口进入FPGA中,由以太网接口模块对数据包进行接收、缓存;然后提取模块从数据包中提取必要的信息,如源IP地址、目的IP地址、TCP、UDP端口号,协议类型等;然后将数据包存入数据缓冲模块,并将提取的数据包信息提交给学习处理模块;学习/处理模块检查自己能否处理此信息,如果不能处理这些信息则将接收到的信息提交给处理器,如果能处理,则根据学习到的内容进行处理,并将处理结果提交给NAT处理模块;处理器接收到数据包信息后,根据预设的规则进行处理,并将处理结果返回给学习/处理模块;学习/处理模块学习处理结果,并将处理结果提交给NAT处理模块;NAT处理模块接收到处理结果后,从数据缓冲模块中读出数据包并根据处理结果对数据进行NAT处理,然后提交给以太网接口模块;以太网接口模块将数据包缓存并发送到公网或私网上。反之从公网过来的数据包也通过相应的流程进行NAT逆处理。
一种基于SOPC的NAT实现方法可分为数据流步骤和控制流步骤。
一、控制流步骤
包括步骤:
P1,处理器模块从配置下发通道接收配置数据。
当配置下发通道接收到外部外部发送过来的配置数据时,将产生中断信号。处理器模块接收到中断后,将读取配置数据,并与本地保存的配置数据比较,只对更新的内容进行更改。初始时,本地配置数据为初始默认配置。
P2,处理器模块更新、维护NAT处理表(NAT处理表存储在外部存储器中)。
在以下三种情况下,需要对NAT处理表进行更新、维护。第一、配置下发通道接收到下发数据,并且存在NAT处理表相关内容的更改;第二、有新分配IP、端口发生;第三、定时刷新标志位置位。NAT处理表分为私网NAT处理表和公网NAT处理表,私网NAT处理表结构及其逻辑关系如图2所示,公网NAT处理表的结构及逻辑关系如图3所示。
如图2所示,私网NAT处理表、公网NAT处理表都包含端口查找表和IP查找表。其中端口查找表表项数固定为65536项,即全端口范围。IP查找表表项也固定,表项数视应用需求的复杂度而定,通常取8、16、32,如果仅是单个公网IP的简单NAT处理(例如五元组NAT),可省去IP查找表 。IP查找表在NAT处理表的更新、维护过程中动态分配和回收。私网IP查找表按源IP排序放置,公网IP查找表按远程IP排序放置,以提高查找速度。
私网端口查找表包含10项,即有效标识、指针标识、替换端口/IP指针、协议、源IP、外网IP、外网网关有效标识、外网网关、老化计数器使能、老化计数器。有效标识位用于标识该表项是否有效;指针标识位用于标识替换端口/IP指针字段的内容是IP查找表的指针还是公网源端口;替换端口/IP指针字段用于存放IP查找表的指针或公网源端口;协议用于指示该表项对应的协议类型,0表示对所有协议有效,1表示TCP协议,2表示UDP协议等,可跟据实现应用扩展;源IP字段用于指示该表项对应私网主机的IP地址;外网IP字段用于指示私网主机经NAT后的公网IP地址;外网网关有效标识用于标识外网网关字段是否有效;外网网关字段用于在一个网络中存在多公网网关的情况,用于指定一个特定的网关;老化计数器使能位用于标识老化计数器是否有效;老化计数器字段用于设定该表项的生存时间,生存时间超过阈值后,则此表项将设为无效。
私网IP查找表包含9项,即有效标识、替换端口、协议、源IP、外网IP、外网网关有效标识、外网网关、老化计数器使能、老化计数器。除了替换端口字段外,均与私网端口查找表的表项字段定义相同,替换端口用于存放公网源端口。仅当在私网源端口存在重叠的情况才需要分配私网IP查找表。
如图3所示,公网端口查找表包含8项,即有效标识、指针标识、替换端口/IP指针、协议、内网IP、外网IP、老化计数器使能、老化计数器。除了替换端口/IP指针、内网IP字段外,均与私网端口查找表的表项字段定义相同。替换端口/IP指针字段用于存放IP查找表的指针或数据包对应的私网目的端口;内网IP字段用于存放数据包对应的私网目的主机IP地址。
公网IP查找表包含11项,即有效标识、替换端口、协议、远程IP有效标识、远程IP、远程端口、内网IP、内网IP有效标识、外网IP、老化计数器使能、老化计数器。除了替换端口、远程IP有效标识、远程IP、远程端口、内网IP、内网IP有效标识字段外,均与私网端口查找表的表项字段定义相同。替换端口字段用于存放数据包对应的私网目的端口;远程IP有效标识位用于标识远程IP、远程端口字段是否有效;远程IP字段用于存放数据包对应的公网远程主机源IP地址;远程端口字段用于存放数据包对应的公网远程主机源端口;内网IP字段用于存放数据包对应的私网目的主机IP地址;内网IP有效标识位用于标识内网IP字段是否有效,如无效则表示采用公网端口查找表中的内网IP。
二、数据流步骤
包括步骤:
S1,对数据包进行信息提取;
提取的控制流信号包括源MAC地址、以太网协议类型、IP协议类型、以太网源IP、以太网目的IP、icmp标识符(ICMP)、icmp序列号(ICMP)、源端口号(TCP、UDP)、目的端口(TCP、UDP)、IP包的16位标识、IP包的3位标志及13位片偏移、IP首部检验和 、ICMP/TCP/UDP的检验和等。
S2,将数据包存入缓冲区,同时将提取的信息提交给学习/处理模块;
提交给学习/处理模块的数据包信息包括源IP、目的IP、源端口号(TCP、UDP)、目的端口(TCP、UDP)、IP包的16位标识、IP包的3位标志及13位片偏移及协议类型。
S3,学习/处理模块判断自己能否处理此信息,如果能处理,则进入步骤S4,否则将接收到的信息提交给处理器并进入步骤S5;
学习/处理模块的具体判断过程如下:
优选的,所述步骤S3具体包括子步骤:S31,首先通过数据包的3位标志及13位片偏移判断该数据包是否为IP分片包,如果是分片包,则不能处理此信息,否则进入步骤S32;S32,用信息中的源IP、源端口、目的IP、目的端口、协议类型进行CAM查询,如果存在有效项,则表示学习/处理模块能处理此信息并进入步骤S4,否则表示不能处理此信息并进入步骤S33;S33,将接收到的信息提交给处理器并进入步骤S5。
S4,学习/处理模块根据以前学习的内容进行处理,然后将处理结果提交给NAT处理模块;
所述步骤S4具体为:从CAM的输出中获取匹配单元的地址,从存储模块中读出该地址单元的内容,作为处理结果返回给NAT处理模块,同时将对应的老化计数器清零。
S5,处理器对接收到信息进行处理,并将处理结果返回给学习/处理模块;
处理器模块接收到学习/处理模块输出的信息后,首先进行IP分片包处理(步骤S50,对接收到的信息进行IP分片包处理),处理过程如下:
S501,判断是否为IP分片包,如果是分片包则转至步骤S502
S502,判断是否为IP分片包的首包,如果是则转至步骤S503,否则转至步骤S504;
S503,将首包按非分片包的处理方式进行处理,并将缓存中该分片包的其它分片也按该方式处理,转至步骤S505;
S504,将分片包信息缓存,转至步骤S505;
S505,转至步骤S501步,开始下一次处理。
然后处理器模块根据接收到的信息是私网数据还是公网数据分别进行处理。
私网数据的处理过程如下:
S511,用源端口号作为私网端口查找表的索引,从存储器中取出该序号的对应表项,判断表项的有效标识位是否有效,如果有效则进入步骤S512,否则转至步骤S519;
S512,判断指针标识位是否有效,如果有效则转至步骤S517,否则转至步骤S513;
S513,判断协议字段、源IP字段是否匹配,如果匹配则转至步骤S514,否则转至步骤S519;
S514,用替换端口的内容对源端口进行替换,并判断外网网关有效标识位是否有效,如果有效则转至步骤S516,否则转至步骤S515;
S515,数据包可直接送达或采用默认网关,转至步骤S518;
S516,数据包需经过该外网网关转发,转至步骤S518;
S517,通过IP指针找到IP查找表,历遍有效标识位有效的表项,如果存在协议字段、源IP字段匹配项,则转至步骤S514,否则转至步骤S519;
S518,查表成功,转至步骤S5111;
S519,若动态模式位置位,则随机分配一个未使用的公网IP、端口,并将相应信息添加到NAT配置表中,转至步骤S5111;
S5110,查表失败,数据包丢弃,转至步骤S5111;
S5111,将处理结果返回给学习/处理模块,转至步骤S511,开始下一次查表;
公网数据的处理过程如下:
S521,用目的端口号作为公网端口查找表的索引,从存储器中取出该序号的对应表项,判断表项的有效标识位是否有效,如果无效则转至步骤S5210,如果有效则转至步骤S522;
S522,判断指针标识位是否有效,如果无效则转至步骤S523,如果有效则转至步骤S525;
S523,判断协议字段、外网IP字段是否匹配,如果匹配则转至骤S524,否则转至步骤S5210;
S524,用替换端口的内容、内网IP的内容对目的端口、目的IP进行替换,转至步骤S529;
S525, 通过IP指针找到IP查找表,历遍有效标识位有效的表项,如果存在协议字段、外网IP字段匹配,且当远程IP有效标识有效时,远程IP、远程端口也匹配的匹配项时则转至步骤S526,如果没有则转至步骤S5210;
S526,判断内网IP有效标识是否有效,如果有效则转至步骤S527,否则转至步骤S528;
S527,用IP查找表中的替换端口、内网IP对目的端口、目的IP进行替换,转至步骤S529;
S528,用IP查找表中的替换端口、端口查找表中的内网IP对目的端口、目的IP进行替换,转至步骤S529;
S529,查表成功,转至步骤S5211;
S5210,查表失败,转至步骤S5211;
S5211,将处理结果返回给学习/处理模块,转至步骤S521,开始下一次查表。
S6,学习/处理模块学习处理器的结果,并将处理结果提交给NAT处理模块;
S7,NAT处理模块、NAT逆处理模块根据接收的处理结果对缓冲区中的数据包进行处理;
所述步骤S7具体包括子步骤:S71,根据学习/处理模块输出的结果,结合提取模块的输出、数据缓冲模块中的数据包内容,实现私网到公网TCP、UDP数据包的源IP、源端口替换,即完成NAT处理;S72,根据学习/处理模块输出的结果,结合提取模块的输出、数据缓冲模块中的数据包内容,实现公网到私网TCP、UDP数据包的目的IP、目的端口替换,即完成NAT逆处理;S73,重新计算IP首部校验和、TCP校验和、UDP校验和。
综上所述,本发明的优点包括:
1、基于SOPC的实现方式,主要功能均由单颗FPGA实现,可有效减少芯片的使用数量,此外由于许多不适合逻辑处理的工作由处理器实现可大幅缩减逻辑规模,从而缩小产品体积,降低功耗,节约成本;
2、采用处理器+逻辑的实现方式,能最大限度的发挥纯软件实现和纯逻辑实现各自的长处,具有很高的性价比。
3、采用FPGA厂商提供的片上处理器(软核或硬核),具有高度可定制性,一方面相较于传统处理器可剪裁掉所有未使用的功能,从而降低功耗;另一方面可根据NAT应用的需求进行优化,提高处理速度和效率。
4、处理器和逻辑模块位于一个FPGA芯片上,能大幅提高两者之间的数据交互效率,提高NAT的处理速度。
5、在处理器和逻辑模块之间增加学习模块,能大幅减轻处理器的处理负担,提高整体的处理速度,弥补高速应用环境下处理器主频不高的限制。
本发明通过基于SOPC实现了NAT处理,充分发挥处理器和逻辑处理各自的长处,合理分配各自的实现功能,并采用了学习/处理模块来弥补处理器模块处理能力的不足,采用先进的数据结构(NAT处理表)和合理的NAT处理流程,最大限度的提升通用性和处理性能;而且还具有NAT处理灵活、处理速度快、成本低、功耗低的优点,具有良好的经济和社会效益。
本发明可广泛应用于各种NAT处理***。
以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。
Claims (8)
1.一种基于SOPC的NAT的实现方法,其特征在于,其应用于一种基于SOPC的NAT的实现装置,所述一种基于SOPC的NAT的实现装置包括:
处理器模块,用于对学习/处理模块输出的数据包信息进行查表处理,并将处理结果返回给学习/处理模块;
学习/处理模块,其分别与提取模块和处理器模块相连,所述学习/处理模块有两个作用:一是接收提取模块的输出,检查学习内容中是否有符合项,如果有符合项则将存储的对应结果输出给NAT处理模块或NAT逆处理模块,如果没有符合项则将接收的数据直接提交给处理器模块,并记录该数据,以便在学习过程中与处理结果建立一一对应关系;二是学习处理器模块输出的数据包处理结果,即将数据包信息输入与数据包处理结果间建立一一对应的关系,以便对后续数据包中有相同输入条件的数据包直接进行处理,以减轻处理器模块的负荷,提高数据包的处理能力,然后将结果输出给NAT处理模块或NAT逆处理模块;
提取模块,其与以太网接口相连,用于提取数据包信息;
以太网接口,包括用于连接私网的私网以太网接口和用于连接公网的以太网接口;
数据缓冲模块,其连接于提取模块和NAT处理模块或NAT逆处理模块之间,用于缓存数据包;
NAT处理模块,其分别与提取模块、数据缓冲模块、学习/处理模块和以太网接口连接,其用于接收学习/处理模块的输出,并结合提取模块的输出、数据缓冲模块中的数据包内容,实现私网到公网的NAT处理;
NAT逆处理模块,其分别与提取模块、数据缓冲模块、学习/处理模块和以太网接口连接,其用于接收学习/处理模块的输出,并结合提取模块的输出、数据缓冲模块中的数据包内容,实现公网到私网的NAT逆处理;
所述方法包括步骤:
S1,对数据包进行信息提取;
S2,将数据包存入缓冲区,同时将提取的信息提交给学习/处理模块;
S3,学习/处理模块判断自己能否处理此信息,如果能处理,则进入步骤S4,否则将接收到的信息提交给处理器模块并进入步骤S5;其中,所述学习/处理模块包括CAM模块和存储模块,CAM模块用于实现数据的快速匹配,用于判断学习内容中是否有符合项,存储模块用于存储学习到的处理结果;
S4,学习/处理模块根据以前学习的内容进行处理,然后将处理结果提交给NAT处理模块或NAT逆处理模块,然后跳转进入步骤S7;
S5,处理器模块对接收到的信息进行处理,并将处理结果返回给学习/处理模块;
S6,学习/处理模块学习处理器模块的结果,并将处理结果提交给NAT处理模块或NAT逆处理模块;
S7,NAT处理模块、NAT逆处理模块根据接收的处理结果对缓冲区中的数据包进行处理;
步骤S5中所述的信息为私网数据或公网数据,所述步骤S5具体包括子步骤:
S51,对私网数据进行处理,并将处理结果返回给学习/处理模块;
或者
S52,对公网数据进行处理,并将处理结果返回给学习/处理模块;
所述步骤S51具体包括子步骤:
S511,用源端口号作为私网端口查找NAT处理表的索引,从外部存储器中取出该源端口号的对应表项,判断表项的有效标识位是否有效,如果有效则进入步骤S512,否则转至步骤S519;其中,所述外部存储器中存储有NAT处理表;
S512,判断指针标识位是否有效,如果有效则转至步骤S517,否则转至步骤S513;
S513,判断私网数据中的协议类型、源IP分别与对应表项中的协议字段、源IP字段是否匹配,如果匹配则转至步骤S514,否则转至步骤S519;
S514,用所述NAT处理表对应表项的替换端口的内容对源端口进行替换,并判断外网网关有效标识位是否有效,如果有效则转至步骤S516,否则转至步骤S515;其中,所述NAT处理表中存储有源端口对应表项的替换端口;
S515,数据包可直接送达或采用默认网关,转至步骤S518;
S516,数据包需经过该外网网关转发,转至步骤S518;
S517,通过IP指针找到IP查找表,历遍有效标识位有效的表项,如果存在协议字段、源IP字段匹配项,则转至步骤S514,否则转至步骤S519;
S518,查表成功,转至步骤S5111;
S519,若动态模式位置位,则随机分配一个未使用的公网IP、端口,并将相应信息添加到NAT配置表中,转至步骤S5111;
S5110,查表失败,数据包丢弃,转至步骤S5111;
S5111,将处理结果返回给学习/处理模块,转至步骤S511,开始下一次查表;
所述步骤S52具体包括子步骤:
S521,用目的端口号作为公网端口查找NAT处理表的索引,从外部存储器中取出该目的端口号的对应表项,判断表项的有效标识位是否有效,如果无效则转至步骤S5210,如果有效则转至步骤S522;
S522,判断指针标识位是否有效,如果无效则转至步骤S523,如果有效则转至步骤S525;
S523,判断公网数据中的协议类型、外网IP分别与对应表项中的协议字段、外网IP字段是否匹配,如果匹配则转至骤S524,否则转至步骤S5210;
S524,用所述NAT处理表对应表项的替换端口的内容、内网IP的内容对目的端口、目的IP进行替换,转至步骤S529;
S525,通过IP指针找到IP查找表,历遍有效标识位有效的表项,如果存在协议字段、外网IP字段匹配,且当远程IP有效标识有效时,远程IP、远程端口也匹配的匹配项时则转至步骤
S526,如果没有则转至步骤S5210;
S526,判断内网IP有效标识是否有效,如果有效则转至步骤
S527,否则转至步骤S528;
S527,用IP查找表中的替换端口、内网IP对目的端口、目的IP进行替换,转至步骤S529;
S528,用IP查找表中的替换端口、端口查找表中的内网IP对目的端口、目的IP进行替换,转至步骤S529;
S529,查表成功,转至步骤S5211;
S5210,查表失败,转至步骤S5211;
S5211,将处理结果返回给学习/处理模块,转至步骤S521,开始下一次查表。
2.根据权利要求1所述的基于SOPC的NAT的实现方法,其特征在于,步骤S1所述信息包括源MAC地址、以太网协议类型、IP协议类型、以太网源IP、以太网目的IP、ICMP标识符、ICMP序列号、源端口号、目的端口、IP包的16位标识、IP包的3位标志及13位片偏移、IP首部检验和、ICMP/TCP/UDP的检验和。
3.根据权利要求1所述的基于SOPC的NAT的实现方法,其特征在于,步骤S2中所述提交给学习/处理模块的信息包括源IP、目的IP、源端口号(TCP、UDP)、目的端口(TCP、UDP)、IP包的16位标识、IP包的3位标志及13位片偏移及协议类型。
4.根据权利要求2或3所述的基于SOPC的NAT的实现方法,其特征在于,所述步骤S3具体包括子步骤:
S31,首先通过数据包的3位标志及13位片偏移判断该数据包是否为IP分片包,如果是分片包,则不能处理此信息,否则进入步骤S32;
S32,用信息中的源IP、源端口、目的IP、目的端口、协议类型利用CAM模块进行查询,如果存在有效项,则表示学习/处理模块能处理此信息并进入步骤S4,否则表示不能处理此信息并进入步骤S33;
S33,将接收到的信息提交给处理器模块并进入步骤S5。
5.根据权利要求1所述的基于SOPC的NAT的实现方法,其特征在于,所述步骤S4具体为:从CAM模块的输出中获取匹配单元的地址,从存储模块中读出该地址对应的内容,作为处理结果返回给NAT处理模块或NAT逆处理模块,同时将对应的老化计数器清零。
6.根据权利要求5所述的基于SOPC的NAT的实现方法,其特征在于,所述步骤S5还包括子步骤:
S50,对接收到的信息进行IP分片包处理;
所述步骤S50具体包括子步骤:
S501,判断是否为IP分片包,如果是分片包则转至步骤S502;
S502,判断是否为IP分片包的首包,如果是则转至步骤S503,否则转至步骤S504;
S503,将首包按非分片包的处理方式进行处理,并将缓存中该分片包的其它分片也按该方式处理,转至步骤S505;
S504,将分片包信息缓存,转至步骤S505;
S505,转至步骤S501步,开始下一次处理。
7.根据权利要求1所述的基于SOPC的NAT的实现方法,其特征在于,所述步骤S7具体包括子步骤:
S71,根据学习/处理模块输出的结果,结合提取模块的输出、数据缓冲模块中的数据包内容,实现私网到公网TCP、UDP数据包的源IP、源端口替换,即完成NAT处理;
S72,根据学习/处理模块输出的结果,结合提取模块的输出、数据缓冲模块中的数据包内容,实现公网到私网TCP、UDP数据包的目的IP、目的端口替换,即完成NAT逆处理;
S73,重新计算IP首部校验和、TCP校验和、UDP校验和。
8.一种基于SOPC的NAT的实现装置,其特征在于,其用于实施如权利要求1至7任一项所述的基于SOPC的NAT的实现方法,其包括:
处理器模块,用于对学习/处理模块输出的数据包信息进行查表处理,并将处理结果返回给学习/处理模块;
学习/处理模块,其分别与提取模块和处理器模块相连,所述学习/处理模块有两个作用:一是接收提取模块的输出,检查学习内容中是否有符合项,如果有符合项则将存储的对应结果输出给NAT处理模块或NAT逆处理模块,如果没有符合项则将接收的数据直接提交给处理器模块,并记录该数据,以便在学习过程中与处理结果建立一一对应关系;二是学习处理器模块输出的数据包处理结果,即将数据包信息输入与数据包处理结果间建立一一对应的关系,以便对后续数据包中有相同输入条件的数据包直接进行处理,以减轻处理器模块的负荷,提高数据包的处理能力,然后将结果输出给NAT处理模块或NAT逆处理模块;
提取模块,其与以太网接口相连,用于提取数据包信息;
以太网接口,包括用于连接私网的私网以太网接口和用于连接公网的以太网接口;
数据缓冲模块,其连接于提取模块和NAT处理模块或NAT逆处理模块之间,用于缓存数据包;
NAT处理模块,其分别与提取模块、数据缓冲模块、学习/处理模块和以太网接口连接,其用于接收学习/处理模块的输出,并结合提取模块的输出、数据缓冲模块中的数据包内容,实现私网到公网的NAT处理;
NAT逆处理模块,其分别与提取模块、数据缓冲模块、学习/处理模块和以太网接口连接,其用于接收学习/处理模块的输出,并结合提取模块的输出、数据缓冲模块中的数据包内容,实现公网到私网的NAT逆处理;
所述处理器模块具体用于实施步骤:
S51,对私网数据进行处理,并将处理结果返回给学习/处理模块;
或者,
S52,对公网数据进行处理,并将处理结果返回给学习/处理模块;
所述步骤S51具体包括子步骤:
S511,用源端口号作为私网端口查找NAT处理表的索引,从外部存储器中取出该源端口号的对应表项,判断表项的有效标识位是否有效,如果有效则进入步骤S512,否则转至步骤S519;其中,所述外部存储器中存储有NAT处理表;
S512,判断指针标识位是否有效,如果有效则转至步骤S517,否则转至步骤S513;
S513,判断私网数据中的协议类型、源IP分别与对应表项中的协议字段、源IP字段是否匹配,如果匹配则转至步骤S514,否则转至步骤S519;
S514,用替换端口的内容对源端口进行替换,并判断外网网关有效标识位是否有效,如果有效则转至步骤S516,否则转至步骤S515;
S515,数据包可直接送达或采用默认网关,转至步骤S518;
S516,数据包需经过该外网网关转发,转至步骤S518;
S517,通过IP指针找到IP查找表,历遍有效标识位有效的表项,如果存在协议字段、源IP字段匹配项,则转至步骤S514,否则转至步骤S519;
S518,查表成功,转至步骤S5111;
S519,若动态模式位置位,则随机分配一个未使用的公网IP、端口,并将相应信息添加到NAT配置表中,转至步骤S5111;
S5110,查表失败,数据包丢弃,转至步骤S5111;
S5111,将处理结果返回给学习/处理模块,转至步骤S511,开始下一次查表;
所述步骤S52具体包括子步骤:
S521,用目的端口号作为公网端口查找NAT处理表的索引,从外部存储器中取出该目的端口号的对应表项,判断表项的有效标识位是否有效,如果无效则转至步骤S5210,如果有效则转至步骤S522;
S522,判断指针标识位是否有效,如果无效则转至步骤S523,如果有效则转至步骤S525;
S523,判断公网数据中的协议类型、外网IP分别与对应表项中的协议字段、外网IP字段是否匹配,如果匹配则转至骤S524,否则转至步骤S5210;
S524,用所述NAT处理表对应表项的替换端口的内容、内网IP的内容对目的端口、目的IP进行替换,转至步骤S529;
S525,通过IP指针找到IP查找表,历遍有效标识位有效的表项,如果存在协议字段、外网IP字段匹配,且当远程IP有效标识有效时,远程IP、远程端口也匹配的匹配项时则转至步骤
S526,如果没有则转至步骤S5210;
S526,判断内网IP有效标识是否有效,如果有效则转至步骤
S527,否则转至步骤S528;
S527,用IP查找表中的替换端口、内网IP对目的端口、目的IP进行替换,转至步骤S529;
S528,用IP查找表中的替换端口、端口查找表中的内网IP对目的端口、目的IP进行替换,转至步骤S529;
S529,查表成功,转至步骤S5211;
S5210,查表失败,转至步骤S5211;
S5211,将处理结果返回给学习/处理模块,转至步骤S521,开始下一次查表。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510641720.0A CN105162901B (zh) | 2015-09-30 | 2015-09-30 | 一种基于sopc的nat的实现方法及装置 |
PCT/CN2016/078029 WO2017054429A1 (zh) | 2015-09-30 | 2016-03-31 | 一种基于sopc的nat的实现方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510641720.0A CN105162901B (zh) | 2015-09-30 | 2015-09-30 | 一种基于sopc的nat的实现方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105162901A CN105162901A (zh) | 2015-12-16 |
CN105162901B true CN105162901B (zh) | 2019-05-14 |
Family
ID=54803652
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510641720.0A Active CN105162901B (zh) | 2015-09-30 | 2015-09-30 | 一种基于sopc的nat的实现方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN105162901B (zh) |
WO (1) | WO2017054429A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105162901B (zh) * | 2015-09-30 | 2019-05-14 | 北京特立信电子技术股份有限公司 | 一种基于sopc的nat的实现方法及装置 |
CN109618020B (zh) * | 2018-12-25 | 2022-01-11 | 北京物芯科技有限责任公司 | 一种分片报文的网络地址转换方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1585401A (zh) * | 2003-08-21 | 2005-02-23 | 华为技术有限公司 | 对分片报文进行网络地址转换的方法 |
CN101068212A (zh) * | 2007-06-11 | 2007-11-07 | 中兴通讯股份有限公司 | 一种网络地址转换转发的装置及方法 |
CN102307123A (zh) * | 2011-09-06 | 2012-01-04 | 电子科技大学 | 基于传输层流量特征的nat流量识别方法 |
CN103152269A (zh) * | 2013-02-26 | 2013-06-12 | 杭州华三通信技术有限公司 | 一种基于nat的报文转发方法和设备 |
CN104244305A (zh) * | 2014-09-02 | 2014-12-24 | 福建三元达通讯股份有限公司 | 基于atca硬件的多板卡lte网关处理方法及*** |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6650641B1 (en) * | 1999-07-02 | 2003-11-18 | Cisco Technology, Inc. | Network address translation using a forwarding agent |
CN101877728B (zh) * | 2010-06-25 | 2014-12-31 | 中兴通讯股份有限公司 | 网络地址转换转发方法及装置 |
US9667595B2 (en) * | 2013-07-24 | 2017-05-30 | Cisco Technology, Inc. | Selectively using network address translated mapped addresses based on their prior network reachability |
CN105162901B (zh) * | 2015-09-30 | 2019-05-14 | 北京特立信电子技术股份有限公司 | 一种基于sopc的nat的实现方法及装置 |
-
2015
- 2015-09-30 CN CN201510641720.0A patent/CN105162901B/zh active Active
-
2016
- 2016-03-31 WO PCT/CN2016/078029 patent/WO2017054429A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1585401A (zh) * | 2003-08-21 | 2005-02-23 | 华为技术有限公司 | 对分片报文进行网络地址转换的方法 |
CN101068212A (zh) * | 2007-06-11 | 2007-11-07 | 中兴通讯股份有限公司 | 一种网络地址转换转发的装置及方法 |
CN102307123A (zh) * | 2011-09-06 | 2012-01-04 | 电子科技大学 | 基于传输层流量特征的nat流量识别方法 |
CN103152269A (zh) * | 2013-02-26 | 2013-06-12 | 杭州华三通信技术有限公司 | 一种基于nat的报文转发方法和设备 |
CN104244305A (zh) * | 2014-09-02 | 2014-12-24 | 福建三元达通讯股份有限公司 | 基于atca硬件的多板卡lte网关处理方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN105162901A (zh) | 2015-12-16 |
WO2017054429A1 (zh) | 2017-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107689931B (zh) | 一种基于国产fpga的实现以太网交换功能***及方法 | |
US9977763B2 (en) | Network proxy for high-performance, low-power data center interconnect fabric | |
US9727508B2 (en) | Address learning and aging for network bridging in a network processor | |
US7782874B2 (en) | Apparatus and method for route summarization and distribution in a massively parallel router | |
US7890672B2 (en) | Data processing apparatus and data transfer method | |
US9755947B2 (en) | Hierarchical self-organizing classification processing in a network switch | |
EP3282649B1 (en) | Data packet forwarding | |
KR101409311B1 (ko) | 패킷 처리 및 전처리기를 위한 장치 및 방법 | |
US10237130B2 (en) | Method for processing VxLAN data units | |
US8798066B2 (en) | Method for IPv6 longest prefix match | |
US9979643B2 (en) | Communication apparatus, communication method, and computer-readable recording medium | |
CN106713144B (zh) | 一种报文出口信息的读写方法及转发引擎 | |
US7729362B2 (en) | Method and apparatus for processing packet in high speed router | |
CN105359472B (zh) | 一种用于OpenFlow网络的数据处理方法和装置 | |
US10430364B2 (en) | Packet forwarding | |
CN110932890A (zh) | 一种数据传输方法、服务器及计算机可读存储介质 | |
WO2016138845A1 (zh) | 一种实现协议报文上送cpu的方法和装置 | |
CN105162901B (zh) | 一种基于sopc的nat的实现方法及装置 | |
CN113986560B (zh) | 一种在智能网卡/DPU内实现P4与OvS逻辑复用的方法 | |
US9898069B1 (en) | Power reduction methods for variable sized tables | |
US9137158B2 (en) | Communication apparatus and communication method | |
JP2016005284A (ja) | 変更のためにパケットを個々のレイヤに分割し、変更後のレイヤを情報処理で継合する方法およびその装置 | |
US9461952B2 (en) | Method for processing messages | |
CN105635138A (zh) | 一种防止arp攻击的方法和装置 | |
JP2016005281A (ja) | パケットを汎用フォーマットに変更して、プログラマブルな変更を可能にする方法およびその装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP02 | Change in the address of a patent holder | ||
CP02 | Change in the address of a patent holder |
Address after: 100000 room 1501, 15th floor, building 5, lianhuayuan, Haidian District, Beijing Patentee after: BEIJING TELIXIN ELECTRONICS TECHNOLOGY Co.,Ltd. Patentee after: Yanbang Technology Co., Ltd Address before: Building 1, jianxiangyuan, 209 North Fourth Ring Road, Haidian District, Beijing Patentee before: BEIJING TELIXIN ELECTRONICS TECHNOLOGY Co.,Ltd. Patentee before: Yanbang Technology Co., Ltd |