报文发送方法、装置、电子设备和计算机可读存储介质制造方法及图纸

技术编号:21974585 阅读:24 留言:0更新日期:2019-08-28 02:09
本公开公开了一种报文发送方法、装置、电子设备和计算机可读存储介质。其中该报文发送方法包括:第一CPU核接收第一报文并为所述第一报文建立会话表项和全局转发表项;第二CPU核接收第二报文并根据所述全局转发表项将所述第二报文加入到所述第一CPU核的报文接收队列;所述第一CPU核从报文接收队列中获取、处理并发送所述第二报文。本公开实施例通过建立共享的全局转发表和非共享的报文接收队列,实现不依赖于特定的流过滤规则的负载均衡方案,并保持每个CPU核的独立性,从而保证报文处理的高性能。

Message sending method, device, electronic equipment and computer readable storage medium

【技术实现步骤摘要】
报文发送方法、装置、电子设备和计算机可读存储介质
本公开涉及计算机网络领域,尤其涉及一种报文发送方法、装置、电子设备及计算机可读存储介质。
技术介绍
随着计算机网络的普及,网络的访问流量也在快速增长,为了增加网络吞吐量、最优化资源使用,需要对网络负载进行合理分配。目前较为普遍的负载均衡方法是基于IP和端口的四层接入负载均衡器(LoadBalancer),它基于数据平面开发套件(DataPlaneDevelopmentKit,DPDK)的Linux虚拟服务器(LinuxVirtualServer,LVS)用户态实现,网络接入服务器通常采用基于IntelX86的多核服务器。四层接入负载均衡器的一项重要作用是报文转发,例如在接收到来自客户端的报文后,通过修改数据包的IP地址将报文转发给网络接入服务器。一般地,四层接入负载均衡器可以支持多种报文转发模式,例如DR模式、Tunnel模式、NAT模式、Full-NAT模式、Source-NAT模式等。对于Full-NAT/NAT/Source-NAT模式,报文经过负载均衡器被分发到特定的CPU核(CPUCore)进行处理并建立会话。为了保证包处理的高性能,每个CPU核建立自己独有的会话表,该会话表不与其它CPU核共享。一般要求同一个会话的正向流和反向流都被转发至同一个CPU核处理,以此最大化包处理在快速路径上的性能。为了实现这一目的,需要利用DPDK所支持网卡的数据流重定向(FlowDirector)功能,在网卡上设置“基于报文目的IP组合目的端口掩码”的流过滤(FlowFilter)规则。这样,接收到的反向流就被转发至处理其对应的正向流的CPU核。但是,现实中经常无法满足上述流过滤规则,导致无法将同一个会话的双向流转发至同一个CPU核进行处理。例如:1)在Full-NAT工作模式下,有些网卡(例如,Intel82599网卡)虽然支持IPv4完美模式(perfectmode)下“基于报文目的IP组合目的端口掩码”的流过滤规则,但在IPv6下仅能使用签名模式(signaturemode),而签名模式不支持“基于报文目的IP组合目的端口掩码”的流过滤规则。2)在Full-NAT工作模式下,有些网卡(例如,Inteli40e网卡)不支持“基于对报文目的端口掩码”的流过滤规则。3)在NAT模式下,四层接入负载均衡器以网关的形式存在于网络中,由于不做客户端IP地址的转换,面向内网的均衡器IP(DirectorIP)就等于客户端IP地址。但是,FlowDirector仅能设定有限数量的流过滤规则,客户端IP地址却可以是任意的,因此无法支持上述流过滤规则。由此可见,现有技术的四层接入负载均衡器对FlowDirector有较强的依赖性,在很多情况下无法满足用户的客观需要。因此,亟需一种不依赖于DPDKFlowDirector的报文发送方法,并且仍然能够保持每个CPU核的会话表的独立性,以维持报文处理的高性能。
技术实现思路
本公开实施例提供报文发送方法、装置、电子设备和计算机可读存储介质,能够不依赖于特定的流过滤规则,并保持每个CPU核的独立性,从而保证报文处理的高性能。第一方面,本公开实施例提供一种报文发送方法,包括:第一CPU核接收第一报文;所述第一CPU核为所述第一报文建立会话表项和全局转发表项,其中,所述会话表项包含所述第一报文的正向流信息和反向流信息,所述全局转发表项包含所述第一CPU核的标识信息;所述第一CPU核发送所述第一报文;所述第一CPU核从报文接收队列中获取并处理第二报文,其中,所述第二报文由第二CPU核根据所述全局转发表项加入到所述报文接收队列,所述第二CPU核与所述第一CPU核由同一个负载均衡器管理;所述第一CPU核发送处理后的所述第二报文,其中,所述第二报文是所述第一报文的反向流。进一步的,所述正向流信息包含所述正向流的传输层协议,源IP地址,源端口,目的IP地址和目的端口;所述反向流信息包含所述反向流的传输层协议,源IP地址,源端口,目的IP地址和目的端口。进一步的,所述全局转发表项还包含所述反向流的传输层协议,源IP地址,源端口,目的IP地址和目的端口。进一步的,所述报文接收队列包含所述第一CPU核为由所述负载均衡器管理的其它CPU核的每一个建立的队列。进一步的,所述报文接收队列为所述第一CPU核为由所述负载均衡器管理的所有其它CPU核建立的一个共用队列。进一步的,所述全局转发表项所属的全局转发表存储在所述第一CPU核、所述负载均衡器或预设存储单元中。进一步的,所述报文发送方法支持Full-NAT模式、NAT模式和SNAT模式。第二方面,本公开实施例提供一种报文发送方法,包括:第二CPU核接收第二报文,其中,所述第二报文是第一报文的反向流;所述第二CPU核在全局转发表中查找所述第一报文的全局转发表项,其中,所述全局转发表项包含所述第一报文的会话表项归属的第一CPU核的标识信息;所述第二CPU核根据所述全局转发表项将所述第二报文加入到所述第一CPU核的报文接收队列,其中,所述第二CPU核与所述第一CPU核由同一个负载均衡器管理。进一步的,所述全局转发表项还包含所述反向流的传输层协议,源IP地址,源端口,目的IP地址和目的端口。进一步的,所述报文接收队列包含所述第一CPU核为由所述负载均衡器管理的其它CPU核的每一个建立的队列。进一步的,所述报文接收队列为所述第一CPU核为由所述负载均衡器管理的所有其它CPU核建立的一个共用队列。进一步的,所述全局转发表项所属的全局转发表存储在所述第一CPU核、所述负载均衡器或预设存储单元中。进一步的,所述报文发送方法支持Full-NAT模式、NAT模式和SNAT模式。第三方面,本公开实施例提供一种报文发送装置,包括:接收模块,用于接收第一报文;表项建立模块,用于为所述第一报文建立会话表项和全局转发表项,其中,所述会话表项包含所述第一报文的正向流信息和反向流信息,所述全局转发表项包含所述第一CPU核的标识信息;发送模块,用于发送所述第一报文;处理模块,用于从报文接收队列中获取并处理第二报文,其中,所述第二报文由第二CPU核根据所述全局转发表项加入到所述报文接收队列,所述第二CPU核与所述第一CPU核由同一个负载均衡器管理;所述发送模块发送处理后的所述第二报文,其中,所述第二报文是所述第一报文的反向流。第四方面,本公开实施例提供一种报文发送装置,包括:接收模块,用于接收第二报文,其中,所述第二报文是第一报文的反向流;查找模块,用于在全局转发表中查找所述第一报文的全局转发表项,其中,所述全局转发表项包含所述第一报文的会话表项归属的第一CPU核的标识信息;发送模块,用于根据所述全局转发表项将所述第二报文加入到所述第一CPU核的报文接收队列,其中,所述第二CPU核与所述第一CPU核由同一个负载均衡器管理。第五方面,本公开实施例提供一种报文发送系统,包括上述第三方面和上述第四方面所述的报文发送装置。第六方面,本公开实施例提供一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有能被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行前本文档来自技高网
...

【技术保护点】
1.一种报文发送方法,其特征在于,包括:第一CPU核接收第一报文;所述第一CPU核为所述第一报文建立会话表项和全局转发表项,其中,所述会话表项包含所述第一报文的正向流信息和反向流信息,所述全局转发表项包含所述第一CPU核的标识信息;所述第一CPU核发送所述第一报文;所述第一CPU核从报文接收队列中获取并处理第二报文,其中,所述第二报文由第二CPU核根据所述全局转发表项加入到所述报文接收队列,所述第二CPU核与所述第一CPU核由同一个负载均衡器管理;所述第一CPU核发送处理后的所述第二报文,其中,所述第二报文是所述第一报文的反向流。

【技术特征摘要】
1.一种报文发送方法,其特征在于,包括:第一CPU核接收第一报文;所述第一CPU核为所述第一报文建立会话表项和全局转发表项,其中,所述会话表项包含所述第一报文的正向流信息和反向流信息,所述全局转发表项包含所述第一CPU核的标识信息;所述第一CPU核发送所述第一报文;所述第一CPU核从报文接收队列中获取并处理第二报文,其中,所述第二报文由第二CPU核根据所述全局转发表项加入到所述报文接收队列,所述第二CPU核与所述第一CPU核由同一个负载均衡器管理;所述第一CPU核发送处理后的所述第二报文,其中,所述第二报文是所述第一报文的反向流。2.如权利要求1所述的报文发送方法,其特征在于,所述正向流信息包含所述正向流的传输层协议,源IP地址,源端口,目的IP地址和目的端口;所述反向流信息包含所述反向流的传输层协议,源IP地址,源端口,目的IP地址和目的端口。3.如权利要求1或2所述的报文发送方法,其特征在于,所述全局转发表项还包含所述反向流的传输层协议,源IP地址,源端口,目的IP地址和目的端口。4.一种报文发送方法,其特征在于,包括:第二CPU核接收第二报文,其中,所述第二报文是第一报文的反向流;所述第二CPU核在全局转发表中查找所述第一报文的全局转发表项,其中,所述全局转发表项包含所述第一报文的会话表项归属的第一CPU核的标识信息;所述第二CPU核根据所述全局转发表项将所述第二报文加入到所述第一CPU核的报文接收队列,其中,所述第二CPU核与所述第一CPU核由同一个负载均衡器管理。5.如权利要求4所述的报文发送方法,其特征在于,所述全局转发表项还包含所述反向流的传输层协议,源IP地址,源端口,目的IP地址和目的端口。6.如权利要求1-5中任一项所述的报文发送方法,其特征在于,所述报文接收队列包含所述第一CPU核为由所述负载均衡器管理的其它CPU核的每一个建立的队列。7.如权利要求1-5中任一项所述的报文发送方法,其特征在于,所述报文接收队...

【专利技术属性】
技术研发人员:庄严
申请(专利权)人:北京字节跳动网络技术有限公司
类型:发明
国别省市:北京,11

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

1