网络地址转换的方法及相应服务器、存储介质和电子设备技术

技术编号:30375324 阅读:18 留言:0更新日期:2021-10-16 18:03
本发明专利技术属于网络通信技术领域,具体公开了一种网络地址转换的方法,该方法用于进行所述网络地址转换的转换服务器中包括端口分配表,所述端口分配表指定端口与所述转换服务器的CPU的核的对应关系,所述CPU的所述核根据所述端口分配表分别处理相应所述端口收发的报文。本发明专利技术的优点在于规定了端口与CPU的核的对应关系,从而可以改变链接追踪表(IPtable)的设置方式,使得多核心的服务器CPU不再共享一个链接追踪表,降低了多个核心(core)同时访问(尤其是修改)同一个链接追踪表而造成的冲突的几率。的几率。的几率。

【技术实现步骤摘要】
网络地址转换的方法及相应服务器、存储介质和电子设备


[0001]本专利技术涉及网络通信
,尤其涉及了一种网络地址转换的方法及相应服务器、存储介质和电子设备。

技术介绍

[0002]NAT(Network Address Translation,网络地址转换)是将IP数据包头中的IP地址转换为另一个IP地址的过程。在实际应用中,NAT主要用于实现内部网络访问公共网络的功能。
[0003]SNAT(Source Network Address Translation,源网络地址转换)服务器的作用是将IP数据包中的源地址(内部网络地址)转换成另一个网络地址(外部网络地址),从而可以使得内部网络主机所发送的数据包能够顺利发送到外部网络,并且外部网络回复的数据包也能准确回复到源地址(内部网络地址)所指向的内部网络主机。
[0004]当前的SNAT服务器大多都是用Linux内核的SNAT功能进行搭建,但是Linux内核对于SNAT处理基于链接追踪表,由于Linux内核的通用性,在链接追踪表的处理上性能比较弱,SNAT服务器中的多个CPU的核对链接追踪表的访问容易产生冲突,不能满足日益增长的需求。

技术实现思路

[0005]为了解决上述缺陷,减少多个CPU的核对链接追踪表的访问冲突,提高SNAT服务器中的多个CPU的核对各应用程序(或者说服务)的端口的查找效率,从而可以满足内部网络与外部网络之间越来越多的报文交换的需求。
[0006]本专利技术提供了一种网络地址转换的方法,方法包括:用于进行所述网络地址转换的转换服务器中包括端口分配表,所述端口分配表指定端口与所述转换服务器的CPU的核的对应关系,所述CPU的所述核根据所述端口分配表分别处理相应所述端口收发的报文。
[0007]上述的方法,其中,根据所述CPU的所述核的个数对所述端口进行分组,一组所述服务器端口收发的数据由同一个所述CPU的所述核处理。
[0008]上述的方法,其中,一个所述CPU的所述核维护一个链接追踪表,并且所述转换服务器中的多个CPU的核相互之间不修改其他CPU的核维护的所述链接追踪表。
[0009]上述的方法,其中,所述报文通过第一线程从内部网络向外部网络转发时,所述转换服务器还配置硬件规则,以使与所述报文相对应的应答报文聚合到所述第一线程处理的队列中。
[0010]上述的方法,其中,所述配置硬件规则包括:
[0011]记录发送所述报文的源IP地址和第一端口;
[0012]记录发送所述报文的所述第一线程;
[0013]至少根据接收到的所述应答报文中的所述第一端口确定发送所述报文时的线程为所述第一线程,并将所述应答报文聚合到所述第一线程处理的队列中。
[0014]上述的方法,其中,所述转换服务器接收到内部网络向外部网络发送的所述报文后,至少执行如下步骤:
[0015]读取所述报文中的端口号,根据所述端口分配表指定的对应关系将所述报文分配给相应的CPU的核,由所述核来处理所述报文的地址转换工作;
[0016]所述CPU的所述核开启所述第一线程,用于发送所述报文以及接收相应的所述应答报文;
[0017]所述CPU的所述核修改与所述CPU的所述核相对应的链接追踪表,以更新内部网络的所述报文与外部网络的报文的对应关系;
[0018]根据所述链接追踪表配置硬件规则。
[0019]上述的方法,其中,所述转换服务器接收到与所述报文相对应的所述应答报文后,至少执行如下步骤:由所述转换服务器的网络设备直接读取所述应答报文中的所述端口,并根据所述硬件规则将所述应答报文聚合到所述第一线程的队列中。
[0020]相应的,本专利技术还提出了一种服务器,所述服务器在内部网络和外部网络之间转换报文的IP地址的过程中包括上述的方法。
[0021]相应的,本专利技术还提出了一种计算机可读的存储介质,所述存储介质上存储有指令,所述指令在计算机上执行时,所述计算机执行上述的方法。
[0022]相应的,本专利技术还提出了一种电子设备,包括:
[0023]存储器,是所述电子设备的存储器之一,用于存储计算机指令;
[0024]处理器,是所述电子设备的处理器之一,当所述处理器执行所述计算机指令时,实现上述的方法。
[0025]与现有技术相比,本专利技术通过对端口分组的方法,规定了端口与CPU的核的对应关系,从而可以改变链接追踪表(IPtable)的设置方式,使得多核心的服务器CPU不再共享一个链接追踪表,降低了多个核心(core)同时访问(尤其是修改)同一个链接追踪表而造成的冲突的几率。通过一个核心一个链接追踪表的方式提高了访问连接追踪表的成功率,提高了访问速度,能够适应日益增长的网络带宽需求。
[0026]其次,在服务器的网络设备(例如网卡)上设置硬件规则,在接收到外部网络报文的第一时间内追踪到与所接收的外部网络报文相对应的内部网络报文是由哪一个线程(例如第一线程)处理的,从而可以将该外部网络报文的内容聚合到该线程(例如第一线程)。这样能够保证来回报文由同一个CPU线程处理。
附图说明
[0027]图1是根据本专利技术的若干实施例的服务器的硬件结构框图;
[0028]图2是根据本专利技术的若干实施例的端口分配的示意图;
[0029]图3是根据本专利技术的若干实施例的流程图。
具体实施方式
[0030]以下由特定的具体实施例说明本专利技术的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本专利技术的其他优点及功效。虽然本专利技术的描述将结合较佳实施例一起介绍,但这并不代表此专利技术的特征仅限于该实施方式。恰恰相反,结合实施方式作专利技术
介绍的目的是为了覆盖基于本专利技术的权利要求而有可能延伸出的其它选择或改造。为了提供对本专利技术的深度了解,以下描述中将包含许多具体的细节。本专利技术也可以不使用这些细节实施。此外,为了避免混乱或模糊本专利技术的重点,有些具体细节将在描述中被省略。需要说明的是,在不冲突的情况下,本专利技术中的实施例及实施例中的特征可以相互组合。
[0031]应注意的是,在本说明书中,相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,默认为同一定义。
[0032]还需声明的是,本专利技术中对方法、流程进行编号是为了便于引用,而不是限定先后顺序,各步骤之间如有先后顺序,当以文字说明为准。
[0033]网络技术的越来越普及,目前,无论是办公还是学习中都会遇到内部网络(公司/学校的内部网络)与外部网络(因特网)之间的报文交换的使用情景。内部网络中的主机需要链接到外部网络就需要有合法的外部网络地址,得到这个合法的外部网络地址的方法是让网关进行地址转换,将内部网络中的主机地址转换为外部网络地址,并且当收到相应的应答报文时,再将外部网络地址转换为内部网络地址。
技术介绍
中提及的SNAT服务器就能充当上述网关。
[0034]在内外网络之间转换本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种网络地址转换的方法,其特征在于,用于进行所述网络地址转换的转换服务器中包括端口分配表,所述端口分配表指定端口与所述转换服务器的CPU的核的对应关系,所述CPU的所述核根据所述端口分配表分别处理相应所述端口收发的报文。2.如权利要求1所述的方法,其特征在于,根据所述CPU的所述核的个数对所述端口进行分组,一组所述服务器端口收发的数据由同一个所述CPU的所述核处理。3.如权利要求1或2所述的方法,其特征在于,一个所述CPU的所述核维护一个链接追踪表,并且所述转换服务器中的多个CPU的核相互之间不修改其他CPU的核维护的所述链接追踪表。4.如权利要求3所述的方法,其特征在于,所述报文通过第一线程从内部网络向外部网络转发时,所述转换服务器还配置硬件规则,以使与所述报文相对应的应答报文聚合到所述第一线程处理的队列中。5.如权利要求4所述的方法,其特征在于,所述配置硬件规则包括:记录发送所述报文的源IP地址和第一端口;记录发送所述报文的所述第一线程;至少根据接收到的所述应答报文中的所述第一端口确定发送所述报文时的线程为所述第一线程,并将所述应答报文聚合到所述第一线程处理的队列中。6.如权利要求4所述的方法,其特征在于,所述转换服务器接收到内部网络向外部网络发送的所述报文后,至少执行如下步骤:读取所述报文中的端口号...

【专利技术属性】
技术研发人员:文旭
申请(专利权)人:优刻得科技股份有限公司
类型:发明
国别省市:

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

1