一种报文传送方法及装置与流程

文档序号:11879520阅读:140来源:国知局
一种报文传送方法及装置与流程

本方案涉及网络通信领域,尤其涉及一种报文传送方法及装置。



背景技术:

随着Internet的日益发展,网络协议(Internet Protocol,IP)地址已经十分紧缺,网络地址转换(Network Address Translation,NAT)技术是解决当前Internet IP地址匮乏的一种有效手段。采用NAT技术,内部网络的各个主机可以通过共享IP地址的方式访问外部网络,从而解决IP地址紧缺的问题;同时,NAT技术又是一种网络边界安全防范措施,可以将内部网络和外部网络隔离,为网络提供一定的安全保障。

随着网络技术的发展,用户对带宽需求的也在日益增长,因此,对NAT设备的性能要求也越来越高,常用的技术手段中一般是采用多核的硬件平台来提高NAT设备的性能。

现有技术当中,采用了多核技术的NAT设备通常会采用互斥锁的方式来实现多个处理核间的互斥访问。具体的,NAT设备在收到来自内部网络的客户端的请求报文后,会根据NAT规则进行端口转换,将内网端口转换为能与外部网络进行通信的外网端口,同时记录端口转换表,然后采用所述外网端口将请求报文发往外部网络,其中,NAT设备的多个处理核之间共享同一份端口转换表,为了避免出现NAT设备的多个处理核在访问端口转换表时会分配到同一个外网端口(即为了避免端口资源发生冲突),NAT设备的多个处理核在访问端口转换表时是采用加互斥锁的方式排队访问,即多个处理核中的某一个处理核在访问端口转换表时,剩余的其他处理核不能访问端口转换表。

显然,在多核系统中采用互斥锁的方式访问端口转换表,会增加端口转换所耗费的时间,不能发挥出多核系统的优势,从而降低了数据传输效率,影响了系统的整体性能

有鉴于此,需要设计一种新的NAT处理方法来克服上述缺陷。



技术实现要素:

本发明实施例提供一种报文传送方法及装置,用以提高NAT转换效率,进而提升数据传输效率。

本发明实施例提供的具体技术方案如下:

一种报文传送方法,应用于多处理核的场景下,其特征在于,包括:

接收内网主机发送的请求报文;

从预设的多个处理核中,选取一个处理核;其中,每一个处理核分配有相应的外网端口集合,且不同处理核对应的外网端口集合之间无交集;

将所述请求报文发往所述一个处理核,通过所述一个处理核,在相应的外网端口集合中为所述请求报文分配外网端口后,通过分配的外网端口将所述请求报文发往外网。

可选的,从预设的多个处理核中,选取一个处理核,包括:

采用预设方式,计算出相应的指示信息;

从预设的多个处理核中,选取与所述指示信息关联的一个处理核。

可选的,通过所述一个处理核,在相应的外网端口集合中为所述请求报文分配外网端口,包括:

通过所述一个处理核,在相应的外网端口集合中随机选取一个空闲的外网端口分配给所述请求报文;或者,

通过所述一个处理核,在相应的外网端口集合中按照设定的优先级,从优先级最高的N个外网端口中,选取一个空闲的外网端口分配给所述请求报文。

可选的,通过分配的外网端口将所述请求报文发往外网,包括:

通过所述一个处理核对所述请求报文进行网络地址转换NAT的源地址转换,所述NAT的源地址转换至少包括将所述请求报文的源端口替换为所述外网端口,以及记录所述源端口和所述外网端口之间的端口映射关系;

通过所述外网端口,将所述请求报文发往外网。

可选的,进一步包括:

接收到所述请求报文对应的响应报文时,获取所述响应报文中携带的外网端口;

基于所述端口映射关系,确定所述外网端口对应的一个处理核;

将所述响应报文发送至所述一个处理核,通过所述一个处理核,对所述响应报文进行NAT的目的地址转换,所述NAT的目的地址转换至少包括将所述外网端口替换为对应的源端口;

通过所述一个处理核,将所述响应报文发往所述源端口对应的接收方。

一种报文传送装置,应用于多处理核的场景下,其特征在于,包括:

第一通信单元,用于接收内网主机发送的请求报文;

处理单元,用于从预设的多个处理核中,选取一个处理核;其中,每一个处理核分配有相应的外网端口集合,且不同处理核对应的外网端口集合之间无交集;

第二通信单元,用于将所述请求报文发往所述一个处理核,通过所述一个处理核,在相应的外网端口集合中为所述请求报文分配外网端口后,通过分配的外网端口将所述请求报文发往外网。

可选的,从预设的多个处理核中,选取一个处理核,所述处理单元用于:

采用预设方式,计算出相应的指示信息;

从预设的多个处理核中,选取与所述指示信息关联的一个处理核。

可选的,通过所述一个处理核,在相应的外网端口集合中为所述请求报文分配外网端口,所述第二通信单元用于:

通过所述一个处理核,在相应的外网端口集合中随机选取一个空闲的外网端口分配给所述请求报文;或者,

通过所述一个处理核,在相应的外网端口集合中按照设定的优先级,从优先级最高的N个外网端口中,选取一个空闲的外网端口分配给所述请求报文。

可选的,通过分配的外网端口将所述请求报文发往外网,所述第二通信单元用于:

通过所述一个处理核对所述请求报文进行网络地址转换NAT的源地址转换,所述NAT的源地址转换至少包括将所述请求报文的源端口替换为所述外网端口,以及记录所述源端口和所述外网端口之间的端口映射关系;

通过所述外网端口,将所述请求报文发往外网。

可选的,所述第二通信单元进一步用于:

接收到所述请求报文对应的响应报文时,获取所述响应报文中携带的外网端口;

基于所述端口映射关系,确定所述外网端口对应的一个处理核;

将所述响应报文发送至所述一个处理核,通过所述一个处理核,对所述响应报文进行NAT的目的地址转换,所述NAT的目的地址转换至少包括将所述外网端口替换为对应的源端口;

通过所述一个处理核,将所述响应报文发往所述源端口对应的接收方。

本发明有益效果如下:

本发明实施例中,通过将一个NAT设备的多个核在逻辑上划分为多个处理核形成的组和一个智能负载均衡器,其中,每一个处理核分配有相应的外网端口集合,且不同处理核对应的外网端口集合之间无交集,并利用上述智能负载均衡器控制多个处理核进行报文收发,这样,每一个处理核会各自对应一份端口地址表,而不是多个处理核共享一份端口地址转换表,避免了多个处理核在进行端口转换时的排队访问,从而大大减少端口转换的时间,有效的提高了NAT转换效率,进而提高了数据传输效率,保证了系统性能。

附图说明

图1为本发明实施例中报文传送方法示意图;

图2为本发明实施例中报文传送流程图;

图3为本发明实施例中报文传送装置图。

具体实施方式

为了提高NAT转换效率,进而提升数据传输效率,本发明实施例中,设计了一种报文传送方法,该方法为:将一个NAT设备的多个核在逻辑上划分为多个处理核形成的组和一个智能负载均衡器,其中,每一个处理核分配有相应的外网端口集合,且不同处理核对应的外网端口集合之间无交集,并利用上述智能负载均衡器控制多个处理核进行报文收发。

例如,参阅图1所示,本发明实施例中,在多核NAT设备初始化阶段,按照性能需求可以将多个核,在逻辑上划分为一个智能负载均衡器和N个处理核,如图2所示,其中,一个处理核中至少包含一个中央处理器(Central Processing Unit,CPU),一个智能负载均衡器中也至少包含一个CPU,这样,通过智能负载均衡器的调度,可以控制N个处理核完成报文的传送。

下面结合附图对本发明优先的实施方式进行详细说明。

参阅图2所示,本发明实施例中,报文传送方法的具体流程如下:

步骤200:智能负载均衡器接收内网主机发送的请求报文。

具体的,在执行步骤200时,可以采用但不限于以下方式:

内网主机中的智能负载均衡器通过局域网(Local Area Network,LAN)口接收来自内网主机的请求报文。

步骤210:智能负载均衡器基于获得的请求报文,从预设的多个处理核中,选取一个处理核。

本发明实施例中,执行步骤210时,智能负载均衡器可以采用但不限于以下方式:

智能负载均衡器基于获得的请求报文,采用预设方式,从预设的N个处理核中选取一个作为处理请求报文的处理核,其中,N个处理核会分配一个公网IP地址,即,N个处理核下的各个处理核共享一个公网IP地址。

具体的,预设方式可以有多种,本发明实施例中是以如下两种预设方式进行说明。

例如采用基于流的哈希算法,智能负载均衡器接收到内网主机发送的请求报文,并根据请求报文的源地址信息利用基于流的哈希算法计算出一个数值,即相应的指示信息,根据基于流的哈希算法得到的数值可以找到对应的处理核,其中,根据处理核的个数N会生成相应的N个数值,且上述N个数值分别对应了N个处理核,即N个数值与N个处理核之间存在一一对应的关系。

采用基于流的哈希算法计算出的数值会在上述N个数值范围之内,即上述N个数值中一定存在一个数值与采用基于流的哈希算法计算出的数值对应相同,假设采用基于流的哈希算法计算出的数值为3,则对应的处理核即为处理核3。

又例如可采用轮询调度(Round-Robin)模式,所谓轮询调度的模式即是把每一次智能负载均衡器获得的上述请求报文轮流分配给N个处理核,假设,第一次上述请求报文分配给处理核1,第二次上述请求报文分配给处理核2,第三次上述请求报文分配给处理核3,……,第N次上述请求报文分配给处理核N,直到将第N次上述请求报文分配给处理核N,即第一轮调度完成,然后开始新一轮调度,即第N+1次请求报文分配给处理核1,第N+2次请求报文分配给处理核2,等等。

步骤220:一个处理核接收到由智能负载均衡器发送的请求报文,并在相应的外网端口集合中为上述请求报文分配外网端口。

本发明实施例中,预先为每一个处理核分配有相应的外网端口集合,且不同处理核对应的外网端口集合之间无交集,即将所有外网端口资源区分化处理,不同的外网端口集合对应不同的处理核,每个处理核仅对自身对应的外网端口集合具有处理权限,这样,可以避免不同处处理核之间发生资源冲突。

例如,假设本发明实施例中的N个处理核中的N为“4”,且外网端口集合的分配关系为:处理核1的外网端口集合为“0-1000”,处理核2的外网端口集合为“1000-2000”,处理核3的外网端口集合为“2000-3000”,处理核4的外网端口集合为“3000-4000”。

本实施例中,在执行步骤220时,智能负载均衡器接收到内网主机发送的请求报文,并通过核间通信通道向处理核发送上述请求报文,一个处理核接收到请求报文后,会从相应的外网端口集合中选取一个空闲的外网端口,具体的,可以采用但不限于以下方式:

方式一:上述一个处理核接收到由智能负载均衡器发送的请求报文后,从相应的外网端口集合中随机选取一个空闲的外网端口分配给上述请求报文。

方式二:上述一个处理核接收到由智能负载均衡器发送的请求报文后,在相应的外网端口集合中按照设定的优先级,从优先级最高的N个外网端口中,选取一个空闲的外网端口分配给上述请求报文。

例如,将上述一个处理核的外网端口集合中的外网端口按优先级的高低从高到低进行排序,选取优先级最高的N个外网端口,假设N为3,则选取出优先级最高的、优先级次高的、优先级次次高的3个外网端口,并从上述3个外网端口中随机选取一个空闲的外网端口分配给上述请求报文,或者选取一个优先级最高的且空闲的外网端口分配给上述请求报文。

当然,上述方式仅为举例,外网端口选取规则并不仅限于上述方式。

其中,在对外网端口的优先级进行评定时可以将外网端口被使用次数作为评定标准,即,外网端口被使用次数越少,则对应的优先级越高。

步骤230:上述一个处理核通过对上述请求报文进行NAT的源地址转换后,将上述请求报文发往外网。

上述一个处理核获得由智能负载均衡器发送的请求报文,并为该请求报文进行NAT的源地址转换,上述NAT的源地址转换包括将上述请求报文的源端口替换为所述外网端口,并记录上述源端口与上述外网端口之间的端口映射关系,如,将上述端口映射关系保存至端口映射表,以及为上述请求报文做源IP地址转换,即将上述请求报文的源IP地址替换为外网IP地址,并记录上述源IP地址与上述外网IP地址之间的地址转换关系,如,将上述地址转换关系保存至地址转换表。

若上述请求报文的源端口替换为外网端口,以及源IP地址替换成外网IP地址的过程完成,则上述一个处理核会将上述请求报文通过上述外网端口和外网IP地址发往外网。

步骤240:智能负载均衡器接收到由外网返回的响应报文,并将上述响应报文发往上述一个处理核。

外网接收到由处理核发送的请求报文,会根据上述请求报文生成对应的响应报文,并将上述响应报文下发给智能负载均衡器。

智能负载均衡器接收到响应报文后,会解析出上述响应报文的目的端口,并基于端口映射关系查找对应的处理核,其中,上述响应报文的目的端口即为对应请求报文替换的外网端口。

若上述响应报文的目的端口为“2500”,即,对应的请求报文替换的外网端口为“2500”,则根据端口映射关系查找到对应的处理核为处理核3。

至此,智能负载均衡器查找到响应报文对应的一个处理核,并将上述响应报文发送给上述一个处理核。

步骤250:上述一个处理核接收到由智能负载均衡器发送的响应报文,并将上述响应报文进行NAT的目的地址转换,查找到对应的内网主机。

智能负载均衡器将响应报文发送给对应的上述一个处理核后,上述一个处理核会对上述响应报文进行NAT的目的地址转换,上述目的地址转换包括了将上述响应报文的目的端口替换为对应的源端口,以及为上述响应报文做目的IP地址转换。

上述一个处理核对上述响应报文进行NAT的目的地址转换可以通过查找本地存储的端口映射表和地址转换表,其中,上述端口映射表中记录了上述响应报文对应的请求报文源端口和外网端口之间的端口映射关系,上述地址转换表中记录了上述响应报文对应的请求报文源IP地址与外网IP地址之间的地址转换关系。

上述一个处理核在本地存储的端口映射表中查找上述响应报文对应的上述请求报文的源端口,即,为上述响应报文做目的端口转换,将上述响应报文的目的端口(外网端口)替换为上述响应报文对应的请求报文的源端口,并且,上述一个处理核在本地存储的地址转换表中查找上述响应报文对应的上述请求报文的源IP地址,即,为上述响应报文做目的IP地址转换,将上述响应报文的目的IP地址转换为上述响应报文对应的上述请求报文的源IP地址,并基于上述源端口和源IP地址找到对应的内网主机。

步骤260:上述一个处理核将上述响应报文下发给对应的内网主机。

上述一个处理核找到上述响应报文对应的内网主机后,并将上述响应报文下发给内网主机。

参阅图3所示,本发明实施例中,报文传送装置至少包括第一通信单元300、处理单元310和第二通信单元320,其中,

第一通信单元300,用于接收内网主机发送的请求报文;

处理单元310,用于从预设的多个处理核中,选取一个处理核;其中,每一个处理核分配有相应的外网端口集合,且不同处理核对应的外网端口集合之间无交集;

第二通信单元320,用于将所述请求报文发往所述一个处理核,通过所述一个处理核,在相应的外网端口集合中为所述请求报文分配外网端口后,通过分配的外网端口将所述请求报文发往外网。

可选的,从预设的多个处理核中,选取一个处理核,所述处理单元310用于:

采用预设方式,计算出相应的指示信息;

从预设的多个处理核中,选取与所述指示信息关联的一个处理核。

可选的,通过所述一个处理核,在相应的外网端口集合中为所述请求报文分配外网端口,所述第二通信单元320用于:

通过所述一个处理核,在相应的外网端口集合中随机选取一个空闲的外网端口分配给所述请求报文;或者,

通过所述一个处理核,在相应的外网端口集合中按照设定的优先级,从优先级最高的N个外网端口中,选取一个空闲的外网端口分配给所述请求报文。

可选的,通过分配的外网端口将所述请求报文发往外网,所述第二通信单元320用于:

通过所述一个处理核对所述请求报文进行网络地址转换NAT的源地址转换,所述NAT的源地址转换至少包括将所述请求报文的源端口替换为所述外网端口,以及记录所述源端口和所述外网端口之间的端口映射关系;

通过所述外网端口,将所述请求报文发往外网。

可选的,所述第二通信单元320进一步用于:

接收到所述请求报文对应的响应报文时,获取所述响应报文中携带的外网端口;

基于所述端口映射关系,确定所述外网端口对应的一个处理核;

将所述响应报文发送至所述一个处理核,通过所述一个处理核,对所述响应报文进行NAT的目的地址转换,所述NAT的目的地址转换至少包括将所述外网端口替换为对应的源端口;

通过所述一个处理核,将所述响应报文发往所述源端口对应的接收方。

综上所述,本发明实施例中,通过将一个NAT设备的多个核在逻辑上划分为多个处理核形成的组和一个智能负载均衡器,其中,每一个处理核分配有相应的外网端口集合,且不同处理核对应的外网端口集合之间无交集,并利用上述智能负载均衡器控制多个处理核进行报文收发,这样,每一个处理核会各自对应一份端口地址表,而不是多个处理核共享一份端口地址转换表,避免了多个处理核在进行端口转换时的排队访问,从而大大减少端口转换的时间,有效的提高了NAT转换效率,进而提高了数据传输效率,保证了系统性能。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1