CN101150505B - 通过网络地址转换转发数据流的方法和装置 - Google Patents
通过网络地址转换转发数据流的方法和装置 Download PDFInfo
- Publication number
- CN101150505B CN101150505B CN200710137645XA CN200710137645A CN101150505B CN 101150505 B CN101150505 B CN 101150505B CN 200710137645X A CN200710137645X A CN 200710137645XA CN 200710137645 A CN200710137645 A CN 200710137645A CN 101150505 B CN101150505 B CN 101150505B
- Authority
- CN
- China
- Prior art keywords
- address
- data flow
- nat
- characteristic value
- cryptographic hash
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 238000013519 translation Methods 0.000 title claims abstract description 26
- 238000006243 chemical reaction Methods 0.000 claims description 51
- 238000003860 storage Methods 0.000 claims description 8
- 230000009466 transformation Effects 0.000 abstract 1
- 238000005516 engineering process Methods 0.000 description 5
- 238000004064 recycling Methods 0.000 description 5
- 230000014759 maintenance of location Effects 0.000 description 4
- 108010023321 Factor VII Proteins 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000006855 networking Effects 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000036964 tight binding Effects 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了通过网络地址转换转发数据流的方法,将NAT地址池中的IP地址+端口按照不同的选择因子扩展,并包括:将第一数据流特征值中至少一项通过哈希函数得到第一哈希值;在NAT地址扩展分配表中,选取与第一哈希值相同的选择因子对应的第一IP地址+端口的组合进行NAT转换,转发第一数据流;获得转发的第二数据流的特征值中与所述从第一数据流获得的特征值相同类型的项,并通过所述哈希函数得到第二哈希值;在NAT地址扩展分配表中,选取与第二哈希值相同的选择因子对应的第一IP地址+端口的组合进行NAT转换,转发第二数据流。本发明还公开了相应装置。利用本发明,可以降低对IP地址+端口资源的消耗。
Description
技术领域
本发明涉及计算机网络技术领域,特别涉及通过网络地址转换转发数据流的方法和装置。
背景技术
目前计算机互联网络采用版本号为4的网际协议(Internet Protocol version4,IPv4)。由于IPv4中网络地址定义共包含32位的地址,而随着互联网的迅速发展,IPv4定义的宝贵的地址资源逐步趋于枯竭。
为了扩展对IPv4中的地址的使用,产生了网络地址转换(Network AddressTrasnlation,NAT)技术。NAT技术允许重复使用IP地址。具体的,在私网中的计算机,例如企业内部或家庭内部组网的计算机,在私网中使用私网IP地址。当私网中的计算机需要访问公网时,通过NAT转换,将私网IP地址转换为公网IP地址。私网IP地址是可以自行分配和管理的,而公网IP地址是有限的,如前所述,是宝贵的地址资源。因此,一般企业内部或家庭内部组网的计算机使用私网IP地址组网,而向网络接入运营商租用接入公网的专线和购买少量公网IP地址,通过NAT实现私网内的计算机重复使用公网IP地址接入公网。
现有技术中NAT技术包括采用NAT地址池的方式。NAT地址池中一般包括公网IP地址和对应的端口。这里所说的端口为传输控制协议(TransportControl Protocol,TCP)或用户数据协议(User Data Protocol,UDP)的网络四层端口。本领域技术人员知道,所述的端口一般指关于通信协议的端口。在计算机中一般包括0到65535共65536个端口。其中0到1023端口为公认端口,它们紧密绑定于一些特定的服务,即这些端口的通讯明确表明了某种服务的协议。而1024到65535一般是可以自行定义和使用的端口。
私网内的计算机采用NAT接入公网,私网内的计算机发出的数据包需要经过NAT转换后转发到公网,公网发来的数据包经NAT转换后转发到私网内的计算机。这里,可以将私网内的计算机发出的数据包经NAT转换后转发到公网的方向为正向;相应地,可以将公网发来的数据包经NAT转换后转发到私网内计算机的方向为反向。
所述发出的数据包,即发起的数据流,其采用的协议可以是TCP或UDP类型。转发是数据包中,包括源IP地址、源端口、协议类型、目的IP和目的端口,这五个元素可以称为IP五元组,并可以惟一确定一个数据包。换句话说,IP五元组惟一决定一个TCP/UDP数据流。
正向数据流中,IP五元组中作为源IP地址的私网IP地址和作为源端口的私网端口转换为NAT地址池中的公网IP地址和公网端口,之后进行数据包转发。下面表1示出了NAT地址池分配表:
IP地址端口 | IP11024 | IP11025 | ...... | IP165535 | IP21024 | IP21025 | ...... | IPn65535 |
是否分配 | 是/否 | 是/否 | ...... | 是/否 | 是/否 | 是/否 | ...... | 是/否 |
表1.NAT地址池分配表
该表中,将IP地址和端口作为资源来管理。私网内源IP+源端口发出数据包,即发起数据流时,需要独占表1中的一个IP地址+端口作为公网IP地址+公网端口。相应地,在表1中占用的IP地址+端口上标上已分配的标识(即在是否分配栏中标上“是”)。
但是,现有技术中通过NAT转换来转发数据流的方式,NAT地址池分配表中的一个IP地址+端口只能分配给一个数据流,即只能分配给一个IP五元组决定的数据流。也就是说,发起多少数据流就需要占用多少NAT地址池分配表中的IP地址+端口,这样的方式对NAT地址池中的IP地址+端口资源消耗较大。
发明内容
本发明的目的是提供通过网络地址转换转发数据流的方法和装置,以克服现有技术中对NAT地址池中的IP地址+端口资源消耗较大的问题。
为解决上述技术问题,本发明提供通过网络地址转换转发数据流的方法和装置是这样实现的:
一种通过网络地址转换转发数据流的方法,将NAT地址池中的IP地址+端口按照不同的选择因子扩展,当通过NAT转换转发的数据流时,包括:
获得转发的第一数据流中能区分数据流的特征值,并将所述特征值通过哈希函数得到第一哈希值;
在NAT地址扩展分配表中,选取与第一哈希值相同的选择因子对应的第一IP地址+端口的组合进行NAT转换,转发第一数据流;
获得转发的第二数据流中与获得的第一数据流特征值类型相同的特征值,并将第二数据流的特征值通过所述哈希函数得到第二哈希值;
在NAT地址扩展分配表中,选取与第二哈希值相同的选择因子对应的第一IP地址+端口的组合进行NAT转换,转发第二数据流。
所述将NAT地址池中的IP地址+端口按照不同的选择因子扩展由以下方式实现:
设置0到M-1共M个选择因子,将NAT地址池中的IP地址+端口用所述M个选择因子扩展为M份。
所述获得第一数据流和第二数据流的特征值包括:
当第一数据流和第二数据流为正向数据流时,获得第一数据流和第二数据流各自IP五元组中目的IP地址、目的端口和协议类型中的至少一项。
所述哈希函数包括将获得的特征值中的至少一项进行全部或部分的数值组合。
一种通过网络地址转换转发数据流的方法,将NAT地址池中的IP地址按照不同的选择因子扩展,当通过NAT转换转发的数据流时,包括:
获得转发的第一数据流中能区分数据流的特征值,并将所述特征值通过哈希函数得到第一哈希值;
在NAT地址扩展分配表中,选取与第一哈希值相同的选择因子对应的第一IP地址进行NAT转换,转发第一数据流;
获得转发的第二数据流中与获得的第一数据流特征值类型相同的特征值,并将第二数据流的特征值通过所述哈希函数得到第二哈希值;
在NAT地址扩展分配表中,选取与第二哈希值相同的选择因子对应的第一IP地址进行NAT转换,转发第二数据流。
所述将NAT地址池中的IP地址按照不同的选择因子扩展由以下方式实现:
设置0到M-1共M个选择因子,将NAT地址池中的IP地址用所述M个选择因子扩展为M份。
所述获得第一数据流和第二数据流的特征值包括:
当第一数据流和第二数据流为正向数据流时,获得第一数据流和第二数据流各自IP五元组中目的IP地址、目的端口和协议类型中的至少一项。
所述哈希函数包括将获得的特征值中的至少一项进行全部或部分的数值组合。
一种通过网络地址转换转发数据流的装置,包括NAT地址池单元301,特征值获得单元302,哈希值计算单元303,IP地址+端口选取和转换单元304,转发单元305,其中,
NAT地址池单元301,用于存储经选择因子扩展IP地址+端口NAT地址池分配表;
特征值获得单元302,用于获得转发的数据流中能区分数据流的特征值;
哈希值计算单元303,用于将所述特征值中至少一项通过哈希函数得到哈希值;
IP地址+端口选取和转换单元304,用于在NAT地址池单元301存储的NAT地址池扩展分配表中选取与所述哈希值相同的选择因子对应的IP地址+端口的组合,并进行NAT转换;
转发单元305,用于转发经过NAT转换的数据流。
一种通过网络地址转换转发数据流的装置,包括NAT地址池单元401,特征值获得单元402,哈希值计算单元403,IP地址选取和转换单元404,转发单元405,其中,
NAT地址池单元401,用于存储经选择因子扩展IP地址的NAT地址池扩展分配表;
特征值获得单元402,用于获得转发的数据流中能区分数据流的特征值;
哈希值计算单元403,用于将所述特征值中至少一项通过哈希函数得到哈希值;
IP地址选取和转换单元404,用于在NAT地址池单元401存储的NAT地址池扩展分配表中选取与所述哈希值相同的选择因子对应的IP地址,并进行NAT转换;
转发单元405,用于转发经过NAT转换的数据流。
由以上本发明提供的技术方案可见,本发明在第一数据流和第二数据流的特征值中选取相同类型的项,通过同一哈希函数得到不同的哈希值,在NAT地址扩展分配表中,分别采用与哈希值相等的不同选择因子所对应的同一IP地址+端口的组合(或同一IP地址)转发第一数据流和第二数据流,实现了重复利用NAT地址池中同一IP地址+端口(或同一IP地址)转发不同的数据流,降低了对NAT地址池中的IP地址+端口(或IP地址)的资源的消耗。
附图说明
图1为本发明方法中IP地址+端口转换方式的实施例的流程图;
图2为本发明方法中纯IP地址转换方式的实施例的流程图;
图3为本发明装置第一实施例的流程图;
图4为本发明装置第二实施例的流程图。
具体实施方式
本发明提供一种通过网络地址转换转发数据流的方法,将NAT地址池中的IP地址+端口按照不同的选择因子扩展,当通过NAT转换转发的数据流时,包括:获得转发的第一数据流的中能区分数据流的特征值,并将所述特征值通过哈希函数得到第一哈希值;在NAT地址扩展分配表中,选取与第一哈希值相同的选择因子对应的第一IP地址+端口的组合进行NAT转换,转发第一数据流;获得转发的第二数据流中与获得的第一数据流特征值类型相同的特征值,并将第二数据流的特征值通过所述哈希函数得到第二哈希值;在NAT地址扩展分配表中,选取与第二哈希值相同的选择因子对应的第一IP地址+端口的组合进行NAT转换,转发第二数据流。
以下介绍本发明提供的方法实施例。
首先,将NAT地址池中的IP地址+端口按照不同的选择因子扩展。
可以设置0到M-1共M个选择因子,将NAT地址池中的IP地址+端口用所述M个选择因子扩展为M份。具体的,可以如下面表2所示:
表2.NAT地址池扩展分配表
之后,当通过NAT转换转发的数据流时,包括图1所示的流程:
步骤101:获得转发的第一数据流中能区分数据流的特征值,并将所述特征值通过哈希函数得到第一哈希值。
获得转发的第一数据流中能区分数据流的特征值,可以利用获得的特征值区分数据流。具体的,当第一数据流为正向数据流时,获得第一数据流IP五元组中目的IP地址、目的端口和协议类型中的至少一项。以下以第一数据流为正向数据流进行说明。
将所述特征值通过哈希函数得到第一哈希值。
例如,获得第一数据流的协议类型。第一数据流的协议类型为TCP,假设该TCP协议类型在数据流的值表示为0,由该协议类型通过哈希函数得到的哈希值为所述协议类型值,即为0。
或者是,第一数据流的协议类型为TCP,目的IP地址为68.1.23.5,该TCP协议类型的值表示为0,哈希函数为取协议类型值与目的IP地址低2位组合后的二进制值。所述目的IP地址68.1.23.5的低2位为01(二进制表示),则协议类型值与目的IP地址地2位组合后的二进制值为001(最高位为协议类型值,后两位为目的IP地址低两位),即为1。上面的取目的IP地址的低两位也可以是去全部目的IP地址或部分目的IP地址。
当然,也可以是由特征值中一项或多项的组合通过哈希函数得到哈希值。
综上可得,所述哈希函数为将特征值中的至少一项进行全部或部分的数值组合。
步骤102:在NAT地址扩展分配表中,选取与第一哈希值相同的选择因子对应的第一IP地址+端口的组合进行NAT转换,转发第一数据流。
以步骤101中选取的第一数据流的协议类型为TCP,哈希值为0为例,选取NAT地址扩展分配表中选择因子为0的一个IP地址+端口进行NAT转换,例如选取IP1+1024转换,转发第一数据流。
如果如步骤101中,第一数据流的协议类型为TCP,目的IP地址为68.1.23.5,哈希值为1,则可以选取NAT地址扩展分配表中选择因子为1的一个IP地址+端口进行NAT转换,例如选取IP2+1024转换,转发第一数据流。
综上,当获得的特征值中的项包括协议类型时,不同的协议类型用不同的值表示。如TCP和UDP分别0和1值表示。
步骤103:获得转发的第二数据流中与获得的第一数据流特征值类型相同的特征值,并将第二数据流的特征值通过所述哈希函数得到第二哈希值。
与步骤101类似的,当第二数据流为正向数据流时,获得第二数据流IP五元组中目的IP地址、目的端口和协议类型中的至少一项;当第二数据流为反向数据流时,获得第二数据流IP五元组中源IP地址、源端口和协议类型中的至少一项。以下以第二数据流为正向数据流进行说明,为反向数据流的情况与此类似。
并且,获得转发的第二数据流中与获得的第一数据流特征值类型相同的特征值。当第一数据流获得的特征值包括IP五元组中的协议类型时,步骤103与步骤101类似,例如,获得的第二数据流的协议类型为UDP,该UDP协议类型的值表示为1,由该协议类型通过同一哈希函数得到的哈希值为协议类型值,即为1。
或者是,第一数据流中获得的特征值包括协议类型为TCP,目的IP地址为68.1.23.5,其哈希值为1。则获得的第二数据流的特征值也应包括协议类型和目的IP地址。例如获得的第二数据流的协议类型为UDP,目的IP地址为68.1.23.3,该UDP协议类型的值表示为1,哈希函数也是取协议类型值与目的IP地址地2位组合后的二进制值。所述第二数据流目的IP地址68.1.23.3的低2位为11,则协议类型值与目的IP地址低2位组合后的二进制值为111(最高位为协议类型值,后两位为目的IP地址低两位),即为7。
上面的取目的IP地址的低两位也可以是取全部目的IP地址或目的IP地址其它部分。
步骤104:在NAT地址扩展分配表中,选取与第二哈希值相同的选择因子对应的第一IP地址+端口的组合进行NAT转换,转发第二数据流。
以步骤103中选取第二数据流的协议类型为UDP,哈希值为1为例,选取NAT地址扩展分配表中选择因子为1的一个IP地址+端口进行NAT转换,例如选取选择因子1对应的IP1+1024转换,转发第二数据流。可见,对第二数据流的NAT转换与第一数据流的NAT转换后都是IP1+1024。
如果如步骤103中的,第一数据流的协议类型为TCP,目的IP地址为68.1.23.5,TCP值为0,哈希值为1,则可以选取NAT地址扩展分配表中选择因子为1的一个IP地址+端口进行NAT转换,仍例如选取IP2+1024。则步骤104中,第二数据流的协议类型为UDP,目的IP地址为68.1.23.3,UDP值为1,哈希值为7,选取选择因子7对应的IP2+1024转换,转发第二数据流。可见,对第二数据流的NAT转换与第一数据流的NAT转换后都是IP2+1024。
所述特征值还可以是接口,所述接口之数据包报文出入的逻辑接口。由接口实现数据流进行NAT转换后转发的过程与上面过程类似,且也可以实现重复利用NAT地址池中同一IP地址+端口转发不同的数据流。
这样,在第一数据流和第二数据流的特征值中选取相同类型的项,通过同一哈希函数得到不同的哈希值,在NAT地址扩展分配表中,分别采用与哈希值相等的不同选择因子所对应的同一IP地址+端口的组合转发第一数据流和第二数据流,实现了重复利用NAT地址池中同一IP地址+端口转发不同的数据流,降低了对NAT地址池中的IP地址+端口的资源的消耗。
只要第一数据流和第二数据流的哈希值不同,就可以选取同一IP地址+端口转发第一数据流和第二数据流。
经过这样NAT转换后转发的正向数据流,其反向数据流也可以转发给正确的私网IP地址对应的私网内的计算机。例如,正向第一数据流的目的IP地址为68.1.23.5,协议类型为TCP,正向第一数据流的哈希值为1,正向第二数据流的目的IP地址为68.1.23.3,协议类型为UDP,正向第二数据流的哈希值为7。则如上所述,正向第一数据流和正向第二数据流都采用NAT转换的IP2+1024转发。当通过NAT转换后转发反向第一数据流和第二数据流时,第一数据流的源IP地址为68.1.23.5,协议类型为TCP,反向第一数据流的哈希值按照同一哈希函数计算仍为1,则反向第一数据流转发给IP2+1024中选择因子为1所对应的私网计算机;第二数据流的源IP地址为68.1.23.3,协议类型为UDP,反向第二数据流的哈希值按照同一哈希函数计算仍为7,则反向第一数据流转发给IP2+1024中选择因子为7所对应的私网计算机。从中可以看出,利用同一IP+端口转发的不同的反向数据流,可以转发给正确的私网IP地址对应的计算机。
反之,当反向数据流采用上面步骤101到104所述的步骤转发时,相应的正向数据流也可以正确的转发。理由与上面类似,不再赘述。
以下例举一完整的例子加以说明。
第一数据流需要转发时,获得的特征值包括其IP五元组中的协议类型和目的端口,分别为TCP和68.1.23.5,TCP由0表示。哈希函数为取协议类型值与目的IP地址地2位组合后的二进制值,得哈希值001,即为1。选择NAT地址扩展分配表中选择因子1对应的IP2+1024进行NAT转换后转发第一数据流。
第二数据流需要转发时,获得的特征值包括其IP五元组中的协议类型和目的端口,分别为UDP和68.1.23.3,UDP由1表示。哈希函数为取协议类型值与目的IP地址地2位组合后的二进制值,得哈希值111,即为7。选择NAT地址扩展分配表中选择因子7对应的IP2+1024进行NAT转换后转发第二数据流。
再例如,此时如果有第三数据流需要转发,获得的特征值包括其IP五元组中的协议类型和目的端口,分别为UDP和68.1.23.5,UDP由1表示。哈希函数为取协议类型值与目的IP地址地2位组合后的二进制值,得哈希值101,即为5。选择NAT地址扩展分配表中选择因子5对应的IP2+1024进行NAT转换后转发第三数据流。
这样,实现了重复利用NAT地址池中同一IP地址+端口转发不同的数据流,降低了对NAT地址池中的IP地址+端口的资源的消耗。
上面的通过网络地址转换转发数据流的方法是进行IP地址+端口转换的方式,现有的通过网络地址转换转发数据流的方法中,还包括进行纯IP转换的方式,即将私网IP地址转换为公网IP地址。类似的,本发明提供该方式的方法实施例如下:
预先将NAT地址池中的IP地址按照不同的选择因子扩展。
可以设置0到M-1共M个选择因子,将NAT地址池中的IP地址用所述M个选择因子扩展为M份。具体的,可以如下面表3所示:
表3.NAT地址池扩展分配表
当通过NAT转换转发的数据流时,包括图2所示的流程:
步骤201:获得转发的第一数据流中能区分数据流的特征值,并将所述特征值通过哈希函数得到第一哈希值。
可以获得转发的第一数据流的特征值中的一项或多项。
将上述第一数据流特征值中一项或多项,通过哈希函数得到第一哈希值。
所述哈希函数为将获得的特征值中的至少一项进行全部或部分的数值组合。
步骤202:在NAT地址扩展分配表中,选取与第一哈希值相同的选择因子对应的第一IP地址进行NAT转换,转发第一数据流。
当获得的特征值中的项包括协议类型时,不同的协议类型由不同的值表示。如TCP和UDP分别0和1值表示。
步骤203:获得转发的第二数据流中与获得的第一数据流特征值类型相同的特征值,并将第二数据流的特征值通过所述哈希函数得到第二哈希值。
需要注意的是,从第二数据流获得的特征值应与从第一数据流获得的特征值是相同类型的项,即都是目的IP地址,或都是目的IP地址和协议类型,等等。
上面的取目的IP地址的低两位也可以是取全部目的IP地址或目的IP地址的一部分,但应与步骤201中的哈希函数相同。
类似地,所述哈希函数包括将获得的特征值中的至少一项进行全部或部分的数值组合。
步骤204:在NAT地址扩展分配表中,选取与第二哈希值相同的选择因子对应的第一IP地址进行NAT转换,转发第二数据流。
只要第一数据流和第二数据流的哈希值不同,就可以选取同一IP地址转发第一数据流和第二数据流。
经过这样NAT转换后转发的正向数据流,其反向数据流也可以转发给正确的私网IP地址对应的私网内的计算机,理由与前面类似,在此不再赘述。
反之,当反向数据流采用上面步骤201到204所述的步骤转发时,相应的正向数据流也可以正确的转发。理由也与前面类似。
以下例举一完整的例子加以说明。
第一数据流需要转发时,获得的特征值包括其IP五元组中的协议类型和目的端口,分别为TCP和68.1.23.5,TCP由0表示。哈希函数为取协议类型值与目的IP地址地2位组合后的二进制值,得哈希值001,即为1。选择NAT地址扩展分配表中选择因子1对应的IP1进行NAT转换后转发第一数据流。
第二数据流需要转发时,获得的特征值包括其IP五元组中的协议类型和目的端口,分别为UDP和68.1.23.3,UDP由1表示。哈希函数为取协议类型值与目的IP地址地2位组合后的二进制值,得哈希值111,即为7。选择NAT地址扩展分配表中选择因子7对应的IP1进行NAT转换后转发第二数据流。
再例如,此时如果有第三数据流需要转发,获得的特征值包括其IP五元组中的协议类型和目的端口,分别为UDP和68.1.23.5,UDP由1表示。哈希函数为取协议类型值与目的IP地址地2位组合后的二进制值,得哈希值101,即为5。选择NAT地址扩展分配表中选择因子5对应的IP1进行NAT转换后转发第三数据流。
这样,实现了重复利用NAT地址池中同一IP地址转发不同的数据流,降低了对NAT地址池中的IP地址资源的消耗。
以下介绍本发明提供的第一装置实施例。
图3示出了第一装置实施例,如图所示:
一种通过网络地址转换转发数据流的装置,包括NAT地址池单元301,特征值获得单元302,哈希值计算单元303,IP地址+端口选取和转换单元304,转发单元305,其中,
NAT地址池单元301,用于存储经选择因子扩展IP地址+端口NAT地址池分配表;
特征值获得单元302,用于获得转发的数据流中能区分数据流的特征值;
哈希值计算单元303,用于将所述特征值中至少一项通过哈希函数得到哈希值;
IP地址+端口选取和转换单元304,用于在NAT地址池单元301存储的NAT地址池扩展分配表中选取与所述哈希值相同的选择因子对应的IP地址+端口的组合,并进行NAT转换;
转发单元305,用于转发经过NAT转换的数据流。
当数据流为正向数据流时,所述特征值获得单元402获得数据流IP五元组中目的IP地址、目的端口和协议类型中的至少一项;
当第一数据流和第二数据流为反向数据流时,所述特征值获得单元402获得第一数据流和第二数据流各自IP五元组中源IP地址、源端口和协议类型中的至少一项。
所述特征值也可以是接口。
所述哈希函数包括将获得的特征值中的至少一项进行全部或部分的数值组合。
利用该装置实施例实现通过网络地址转换转发数据流的方法与前面步骤101至104所述的方法类似,在此不再赘述。
以下介绍本发明提供的第二装置实施例。
图4示出了第二装置实施例,如图所示:
一种通过网络地址转换转发数据流的装置,包括NAT地址池单元401,特征值获得单元402,哈希值计算单元403,IP地址选取和转换单元404,转发单元405,其中,
NAT地址池单元401,用于存储经选择因子扩展IP地址的NAT地址池扩展分配表;
特征值获得单元402,用于获得转发的数据流中能区分数据流的特征值;
哈希值计算单元403,用于将所述特征值中至少一项通过哈希函数得到哈希值;
IP地址选取和转换单元404,用于在NAT地址池单元401存储的NAT地址池扩展分配表中选取与所述哈希值相同的选择因子对应的IP地址,并进行NAT转换;
转发单元405,用于转发经过NAT转换的数据流。
当数据流为正向数据流时,所述特征值获得单元402获得数据流IP五元组中目的IP地址、目的端口和协议类型中的至少一项;
当第一数据流和第二数据流为反向数据流时,所述特征值获得单元402获得第一数据流和第二数据流各自IP五元组中源IP地址、源端口和协议类型中的至少一项。
所述特征值也可以是接口。
所述哈希函数包括将获得的特征值中的至少一项进行全部或部分的数值组合。
利用该装置实施例实现通过网络地址转换转发数据流的方法与前面步骤201至204所述的方法类似,在此不再赘述。
由以上实施例可见,在第一数据流和第二数据流的特征值中选取相同类型的项,通过同一哈希函数得到不同的哈希值,在NAT地址扩展分配表中,分别采用与哈希值相等的不同选择因子所对应的同一IP地址+端口的组合(或同一IP地址)转发第一数据流和第二数据流,实现了重复利用NAT地址池中同一IP地址+端口(或同一IP地址)转发不同的数据流,降低了对NAT地址池中的IP地址+端口(或IP地址)的资源的消耗。
虽然通过实施例描绘了本发明,本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,希望所附的权利要求包括这些变形和变化而不脱离本发明的精神。
Claims (8)
1.一种通过网络地址转换NAT转发数据流的方法,其特征在于,将NAT地址池中的IP地址+端口按照不同的选择因子扩展,所述将NAT地址池中的IP地址+端口按照不同的选择因子扩展由以下方式实现:设置0到M-1共M个选择因子,将NAT地址池中的IP地址+端口用所述M个选择因子扩展为M份;
当通过NAT转换转发数据流时,包括:
获得转发的第一数据流中能区分数据流的特征值,并将所述特征值通过哈希函数得到第一哈希值;
在NAT地址扩展分配表中,选取与第一哈希值相同的选择因子对应的第一IP地址+端口的组合进行NAT转换,转发第一数据流;
获得转发的第二数据流中与获得的第一数据流特征值类型相同的特征值,并将第二数据流的特征值通过所述哈希函数得到第二哈希值;
在NAT地址扩展分配表中,选取与第二哈希值相同的选择因子对应的第一IP地址+端口的组合进行NAT转换,转发第二数据流。
2.如权利要求1所述的方法,其特征在于,所述获得第一数据流和第二数据流的特征值包括:
当第一数据流和第二数据流为正向数据流时,获得第一数据流和第二数据流各自IP五元组中目的IP地址、目的端口和协议类型中的至少一项。
3.如权利要求1所述的方法,其特征在于,所述哈希函数包括将获得的特征值中的至少一项进行全部或部分的数值组合。
4.一种通过网络地址转换NAT转发数据流的方法,其特征在于,将NAT地址池中的IP地址按照不同的选择因子扩展,所述将NAT地址池中的IP地址按照不同的选择因子扩展由以下方式实现:设置0到M-1共M个选择因子,将NAT地址池中的IP地址用所述M个选择因子扩展为M份;
当通过NAT转换转发数据流时,包括:
获得转发的第一数据流中能区分数据流的特征值,并将所述特征值通过哈希函数得到第一哈希值;
在NAT地址扩展分配表中,选取与第一哈希值相同的选择因子对应的第一IP地址进行NAT转换,转发第一数据流;
获得转发的第二数据流中与获得的第一数据流特征值类型相同的特征值,并将第二数据流的特征值通过所述哈希函数得到第二哈希值;
在NAT地址扩展分配表中,选取与第二哈希值相同的选择因子对应的第一IP地址进行NAT转换,转发第二数据流。
5.如权利要求4所述的方法,其特征在于,所述获得第一数据流和第二数据流的特征值包括:
当第一数据流和第二数据流为正向数据流时,获得第一数据流和第二数据流各自IP五元组中目的IP地址、目的端口和协议类型中的至少一项。
6.如权利要求4所述的方法,其特征在于,所述哈希函数包括将获得的特征值中的至少一项进行全部或部分的数值组合。
7.一种通过网络地址转换NAT转发数据流的装置,其特征在于,包括NAT地址池单元(301),特征值获得单元(302),哈希值计算单元(303),IP地址+端口选取和转换单元(304),转发单元(305),其中,
NAT地址池单元(301),用于存储经选择因子扩展IP地址+端口的NAT地址池分配表;所述选择因子包括设置为从0到M-1共M个,用于将NAT地址池中的IP地址+端口扩展为M份;
特征值获得单元(302),用于获得转发的数据流中能区分数据流的特征值;
哈希值计算单元(303),用于将所述特征值中至少一项通过哈希函数得到哈希值;
IP地址+端口选取和转换单元(304),用于在NAT地址池单元(301)存储的NAT地址池扩展分配表中选取与所述哈希值相同的选择因子对应的IP地址+端口的组合,并进行NAT转换;
转发单元(305),用于转发经过NAT转换的数据流。
8.一种通过网络地址转换NAT转发数据流的装置,其特征在于,包括NAT地址池单元(401),特征值获得单元(402),哈希值计算单元(403),IP地址选取和转换单元(404),转发单元(405),其中,
NAT地址池单元(401),用于存储经选择因子扩展IP地址的NAT地址池扩展分配表;所述选择因子包括设置为从0到M-1共M个,用于将NAT地址池中的IP地址扩展为M份;
特征值获得单元(402),用于获得转发的数据流中能区分数据流的特征值;
哈希值计算单元(403),用于将所述特征值中至少一项通过哈希函数得到哈希值;
IP地址选取和转换单元(404),用于在NAT地址池单元(401)存储的NAT地址池扩展分配表中选取与所述哈希值相同的选择因子对应的IP地址,并进行NAT转换;
转发单元(405),用于转发经过NAT转换的数据流。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200710137645XA CN101150505B (zh) | 2007-07-31 | 2007-07-31 | 通过网络地址转换转发数据流的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200710137645XA CN101150505B (zh) | 2007-07-31 | 2007-07-31 | 通过网络地址转换转发数据流的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101150505A CN101150505A (zh) | 2008-03-26 |
CN101150505B true CN101150505B (zh) | 2010-06-16 |
Family
ID=39250856
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200710137645XA Expired - Fee Related CN101150505B (zh) | 2007-07-31 | 2007-07-31 | 通过网络地址转换转发数据流的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101150505B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102158398A (zh) * | 2011-02-25 | 2011-08-17 | 杭州华三通信技术有限公司 | 报文转发方法和装置 |
CN102594942B (zh) * | 2012-02-23 | 2014-05-14 | 汉柏科技有限公司 | 实现网络地址转换的方法及*** |
CN103716243B (zh) * | 2012-09-28 | 2017-07-21 | 华为技术有限公司 | 报文转发方法和装置 |
CN103442096B (zh) * | 2013-08-26 | 2016-12-28 | 暨南大学 | 基于移动互联网的nat转换方法及*** |
CN104580550A (zh) * | 2014-12-30 | 2015-04-29 | 北京天融信科技有限公司 | 分布式***中多业务板分流时的nat处理方法及设备 |
CN106302236A (zh) * | 2015-05-27 | 2017-01-04 | 国家计算机网络与信息安全管理中心 | 一种数据分流的方法及接入设备 |
CN106254577B (zh) * | 2016-09-18 | 2019-04-19 | 东软集团股份有限公司 | 端口分配的方法及装置 |
CN106789666B (zh) * | 2016-11-22 | 2020-05-08 | 东软集团股份有限公司 | 一种确定转换后端口的方法和装置 |
CN110798538B (zh) * | 2019-10-16 | 2022-05-17 | 中盈优创资讯科技有限公司 | Nat地址分配方法及装置 |
CN110825061B (zh) * | 2019-11-29 | 2023-08-11 | 新疆新能集团有限责任公司乌鲁木齐电力建设调试所 | 一种分散处理单元的流数据二维处理方法 |
CN113132242B (zh) * | 2021-03-19 | 2022-11-15 | 翱捷科技股份有限公司 | 一种网络设备及其共享发送和接收缓存的方法 |
CN115134334A (zh) * | 2022-06-22 | 2022-09-30 | 上海弘积信息科技有限公司 | 一种负载均衡设备nat地址池扩展分配端口的方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1567907A (zh) * | 2003-06-14 | 2005-01-19 | 华为技术有限公司 | 一种网络地址资源的利用方法 |
CN1725735A (zh) * | 2005-06-17 | 2006-01-25 | 杭州华为三康技术有限公司 | 虚拟专用网的网络地址转换设备资源使用的控制方法 |
-
2007
- 2007-07-31 CN CN200710137645XA patent/CN101150505B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1567907A (zh) * | 2003-06-14 | 2005-01-19 | 华为技术有限公司 | 一种网络地址资源的利用方法 |
CN1725735A (zh) * | 2005-06-17 | 2006-01-25 | 杭州华为三康技术有限公司 | 虚拟专用网的网络地址转换设备资源使用的控制方法 |
Non-Patent Citations (1)
Title |
---|
JP特開2005-341127A 2005.12.08 |
Also Published As
Publication number | Publication date |
---|---|
CN101150505A (zh) | 2008-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101150505B (zh) | 通过网络地址转换转发数据流的方法和装置 | |
EP1861967B1 (en) | Vpn services using address translation over an ipv6 network | |
Blanchet | Migrating to IPv6: a practical guide to implementing IPv6 in mobile and fixed networks | |
CN100521663C (zh) | 点对点通信中穿越网络地址转换的方法 | |
CN102148773B (zh) | 一种IPv6协议和IPv4协议转换的方法及*** | |
CN103841037B (zh) | 组播报文转发的方法及设备 | |
CN103731349B (zh) | 一种以太网虚拟化互联邻居间报文转发方法和边缘设备 | |
CN102438331B (zh) | 一种移动终端通过手机上网的方法及*** | |
CN101610295B (zh) | 使用非特定IPv6地址的无状态IPv4/IPv6分组转换方法 | |
CN101431477B (zh) | 端到端运营商级和园区网路由器组合的IPv4/IPv6分组转换方法 | |
CN107770221A (zh) | 数据的传输方法、服务器转换装置、客户端转换装置及*** | |
CN106209637A (zh) | 从虚拟可扩展局域网至虚拟局域网的报文转发方法和设备 | |
Wang et al. | An Adaptive Broadcast and Multicast Traffic Cutting Framework to Improve Ethernet Efficiency by SDN. | |
US20090141651A1 (en) | Determining an optimal route advertisement in a reactive routing environment | |
CN102143250B (zh) | 非对称数字用户环线的IPv4/IPv6翻译和隧道组合通信方法 | |
CN101431478A (zh) | 端到端运营商级路由器和家庭网关组合的IPv4/IPv6分组转换方法 | |
WO2021147357A1 (zh) | 路由信息的发布方法、装置及*** | |
CN101969478B (zh) | 一种智能dns报文处理方法及处理装置 | |
CN105515995A (zh) | 报文处理方法、流表生成方法及装置 | |
CN107547690A (zh) | Nat中的端口分配方法、装置、nat设备及存储介质 | |
CN101022426A (zh) | 静态网络地址转换-协议转换的实现方法及网关设备 | |
CN101699821B (zh) | 一种分布式多核网络***中地址解析协议实现的方法 | |
Igulu et al. | IPV6: Strengths and Limitations | |
CN112953823B (zh) | 一种虚电路组网的方法 | |
Liang et al. | A new network based on vector address |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Patentee after: NEW H3C TECHNOLOGIES Co.,Ltd. Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base Patentee before: HANGZHOU H3C TECHNOLOGIES Co.,Ltd. |
|
CP03 | Change of name, title or address | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100616 |