CN112804223B - 一种报文处理方法和装置 - Google Patents
一种报文处理方法和装置 Download PDFInfo
- Publication number
- CN112804223B CN112804223B CN202110013762.5A CN202110013762A CN112804223B CN 112804223 B CN112804223 B CN 112804223B CN 202110013762 A CN202110013762 A CN 202110013762A CN 112804223 B CN112804223 B CN 112804223B
- Authority
- CN
- China
- Prior art keywords
- session
- target
- identifier
- message
- request
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 32
- 230000004044 response Effects 0.000 claims abstract description 169
- 238000006243 chemical reaction Methods 0.000 claims abstract description 102
- 238000000034 method Methods 0.000 claims abstract description 91
- 238000012545 processing Methods 0.000 claims abstract description 41
- 238000013519 translation Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 3
- 239000002699 waste material Substances 0.000 abstract description 4
- 230000008569 process Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 238000013507 mapping Methods 0.000 description 3
- 230000000873 masking effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004888 barrier function Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000001681 protective effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/54—Organization of routing tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/146—Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开提供一种报文处理方法和装置,涉及计算机技术领域,方法包括:获取待处理请求报文,待处理请求报文携带有原始会话请求标识;基于原始会话请求标识对待处理请求报文进行网络地址转换,得到目标请求报文和目标会话信息;确定目标会话信息的内存地址;根据原始会话请求标识和目标会话信息的内存地址生成第一会话表项;将目标会话信息的内存地址发送至第二内核,以使第二内核基于目标会话信息的内存地址生成第二会话表项,以及在获取目标请求报文对应的待处理应答报文后,基于第二会话表项对待处理应答报文进行网络地址转换,得到目标应答报文;发送目标请求报文。本公开能够有效提高报文处理效率,降低性能浪费。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种报文处理方法和装置。
背景技术
由于防火墙处理器主频提升的瓶颈,多核处理成为当前解决性能问题的必要手段,然而加锁处理是多核处理模式中常见的性能短板,为解决该问题,现有的防火墙设备令同一内核接收请求报文和对应的应答报文,以此避免在跨内核查询会话信息时,加锁处理导致的性能浪费。然而,当启用网络地址转换功能时,应答报文和对应的请求报文会被分配到不同的内核上,由于会话信息是根据请求报文创建的,且存储在处理请求报文的内核的会话表中,因此启用网络地址转换后,处理应答报文的内核无法查到对应的会话信息,也就无法正常完成后续的网络地址转换处理和报文转发,或者需要在加锁处理模式下跨内核查找对应的会话信息,造成性能浪费。
因此,需要提供一种可靠有效的报文处理方案,以解决上述现有技术中存在的问题。
发明内容
本公开提供了一种报文处理方法、装置、设备及存储介质,能够在避免报文丢失的同时提高报文处理效率。
一方面,本公开提供了一种报文处理方法,应用于第一内核,所述方法包括:
获取待处理请求报文,所述待处理请求报文携带有原始会话请求标识;
基于所述原始会话请求标识对所述待处理请求报文进行网络地址转换,得到目标请求报文和目标会话信息;
确定所述目标会话信息的内存地址;
根据所述原始会话请求标识和所述目标会话信息的内存地址生成第一会话表项;
将所述目标会话信息的内存地址发送至第二内核,以使所述第二内核基于所述目标会话信息的内存地址生成第二会话表项,以及在获取所述目标请求报文对应的待处理应答报文后,基于所述第二会话表项对所述待处理应答报文进行网络地址转换,得到目标应答报文;
发送所述目标请求报文。
另一方面,本公开提供了一种报文处理方法,应用于第二内核,所述方法包括:
基于目标会话信息的内存地址生成第二会话表项;
获取目标请求报文对应的待处理应答报文;
基于所述第二会话表项对所述待处理应答报文进行网络地址转换,得到目标应答报文。
另一方面,本公开提供了一种报文处理装置,所述装置包括:
请求报文获取模块:用于获取待处理请求报文,所述待处理请求报文携带有原始会话请求标识;
第一地址转换模块:用于基于所述原始会话请求标识对所述待处理请求报文进行网络地址转换,得到目标请求报文和目标会话信息;
内存地址确定模块:用于确定所述目标会话信息的内存地址;
第一表项生成模块:用于根据所述原始会话请求标识和所述目标会话信息的内存地址生成第一会话表项;
内存地址发送模块:用于将所述目标会话信息的内存地址发送至第二内核,以使所述第二内核基于所述目标会话信息的内存地址生成第二会话表项,以及在获取所述目标请求报文对应的待处理应答报文后,基于所述第二会话表项对所述待处理应答报文进行网络地址转换,得到目标应答报文;
请求报文发送模块:用于发送所述目标请求报文。
另一方面,本公开提供了一种报文处理装置,所述装置包括:
第二表项生成模块:用于基于目标会话信息的内存地址生成第二会话表项;
应答报文获取模块:用于获取目标请求报文对应的待处理应答报文;
第二地址转换模块:用于基于所述第二会话表项对所述待处理应答报文进行网络地址转换,得到目标应答报文。
另一方面,本公开提供了一种报文处理设备,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如上述的报文处理方法。
另一方面,本公开提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如上述的报文处理方法。
另一方面,本公开提供了一种报文处理终端,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如上述的报文处理方法。
另一方面,本公开提供了一种报文处理服务器,所述服务器包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如上述的报文处理方法。
本公开提供的报文处理方法、装置、设备、存储介质、终端及服务器,具有如下技术效果:
本公开令第一内核获取待处理请求报文,基于原始会话请求标识对待处理请求报文进行网络地址转换,得到目标请求报文和目标会话信息,确定目标会话信息的内存地址,根据原始会话请求标识和目标会话信息的内存地址生成第一会话表项,发送目标请求报文,如此,第一内核在本核的会话表项中存储会话信息,有效提高后续请求报文的网络地址转换效率;然后,令第一内核将目标会话信息的内存地址发送至第二内核,以使第二内核基于目标会话信息的内存地址生成第二会话表项,以及在获取目标请求报文对应的待处理应答报文后,基于第二会话表项对待处理应答报文进行网络地址转换,得到目标应答报文,如此,第二内核在本核的会话表项中存储会话信息,在接收到应答报文后,无需查询其它内核的会话表,实现多核防火墙设备中报文的无锁处理,在确保报文正常转发的同时,有效提高报文处理效率,降低性能浪费。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
图1是本公开实施例提供的一种应用环境的示意图;
图2是本公开实施例提供的一种报文处理方法的流程示意图;
图3是本公开实施例提供的一个实施例提供的防火墙端的网卡模块与各内核的通信连接示意图;
图4是本公开实施例提供的一种报文处理方法的流程示意图;
图5是本公开实施例提供的一种报文处理方法的流程示意图;
图6是本公开实施例提供的一种报文处理装置的结构示意图;
图7是本公开实施例提供的一种报文处理装置的结构示意图;
图8是本公开实施例提供的一种执行报文处理方法的设备的硬件结构框图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
对本公开实施例进行进一步详细说明之前,对本公开实施例中涉及的名词和术语进行说明,本公开实施例中涉及的名词和术语适用于如下的解释。
网络地址转换:(Network Address Translation,NAT),也叫做网络掩蔽或者IP掩蔽(IP masquerading),是一种在IP数据包通过路由器或防火墙时重写源IP地址或目的IP地址的技术。
防火墙:是指一种将内部网和公众访问网(如Internet)分开的方法,主要是借助硬件和软件的作用于内部和外部网络的环境间产生一种保护的屏障,从而实现对计算机不安全网络因素的阻断。
五元组:包括源IP、源端口、目的IP、目的端口和协议类型;
哈希算法:可以将一个源数据转换为一个标志,这个标志和源数据的每一个字节都有十分紧密的关系。
哈希表:根据关键码值(Key-value)而直接进行访问的数据结构。它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做哈希表(散列表)。
会话哈希算法:用来为会话哈希表计算key值的哈希算法
哈希分流算法:用来为收包队列分发计算队列索引值的哈希算法,即根据报文会话标识(例如五元组),使用哈希分流算法计算出收包队列标识,然后将报文放入该收包队列。
网卡:网卡是一块被设计用来允许计算机在计算机网络上进行通讯的计算机硬件。由于其拥有MAC地址,因此属于OSI模型的第2层。它使得用户可以通过电缆或无线相互连接。
会话:防火墙上记录的连接信息(包含五元组信息)和当前所处的连接状态。
连接:狭义的连接指tcp连接,特点是请求方向和应答方向报文的五元组是对称的,即请求方向的源和应答方向的目的相同,请求方向的目的地址和应答方向的源地址相同。
多核处理器(多核CPU):多内核(multicore)是指在一枚处理器(processor)中集成两个或多个完整的计算引擎(内核)。
请参阅图1,图1是本发明实施例提供的一种应用环境的示意图,如图1所示,该应用环境可以至少包括终端01和防火墙端02两个节点。在实际应用中,终端01以及防火墙端02可以通过有线或无线通信方式进行直接或间接地连接,以实现终端01与防火墙端02间的交互,本公开在此不做限制。
本公开实施例中,终端01可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。具体地,终端01可以包括实体设备,具体可以包括有网络通信单元、处理器和存储器等等,也可以包括运行在实体设备中的软体,具体可以包括有应用程序等。具体地,终端01可以基于连接请求生成并发送待处理请求报文,待处理请求携带有原始会话请求标识等。
本公开实施例中,防火墙端02可以是路由设备或服务器等,防火墙端02可以用于接收终端01发送的待处理请求报文,并对待处理请求报文进行网络地址转换,生成并发送目标请求报文;以及用于接收目标请求报文对应的待处理应答报文,并对待处理应答报文进行网络地址转换,生成目标应答报文,以及将目标应答报文发送至终端01。
具体地,防火墙端02包括防火墙处理器,防火墙处理器可以为多核处理器,用于提供报文的网络地址转换服务。在一些实施例中,防火墙端02还可以包括网卡,用于接收终端01或其它服务器发送的数据包,数据包可以包括但不限于待处理请求报文和待处理应答报文等。
本公开实施例中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。具体地,服务器可以包括实体设备,可以具体包括有网络通信单元、处理器和存储器等等,也可以包括运行于实体设备中的软体,可以具体包括有应用程序等。
需要说明的是,图1的仅仅是一种应用环境的示意图,在实际应用中,该应用环境可以包括更多或更少的节点,本公开在此不做限制。
以下基于上述的防火墙端为执行主体介绍本公开的一种报文处理方法,请参考图2,图2是本公开实施例提供的一种报文处理方法的流程示意图,本说明书提供了如实施例或流程图的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或服务器产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。具体的如图2所示,方法可以包括:
S201:第一内核获取待处理请求报文,待处理请求报文携带有原始会话请求标识。
本公开实施例中,防火墙端的防火墙处理器可以为多核处理器,至少包括第一内核和第二内核。具体地,原始会话请求标识可以包括但不限于请求方向的五元组,其中,请求方向的五元组包括请求方向的源IP地址、源端口、目的IP地址、目的端口和传输层协议。在一些实施例中,源IP地址可以为客户端地址映射,目的IP地址可以为服务器地址映射。
在实际应用中,步骤S201可以具体为:第一内核从第一收包队列中获取待处理请求报文,第一收包队列可以是第一内核对应的收包队列。其中,第一收包队列可以用于挂载待处理请求报文。
需要说明的是,本公开中所涉及的内核(如第一内核和第二内核等)具体为多核CPU的内核。
相应的,在步骤S201之前,方法还可以包括:
S101:网卡模块接收终端发送的待处理请求报文。
S103:网卡模块确定待处理请求报文中的原始会话请求标识对应的第一收包队列标识。
S105:网卡模块将待处理请求报文挂载至第一收包队列标识对应的第一收包队列。
在实际应用中,防火墙端的网卡模块接收报文(终端发送的请求报文和/或服务器发送的应答报文),确定报文中的会话标识(会话请求标识和/或会话应答标识)对应的收包队列标识,并将报文挂载至收包队列标识对应的收包队列,以使防火墙处理器的各内核从对应的收包队列中获取报文,以进行后续的报文处理。
在一些实施例中,防火墙处理器的各内核与各收包队列一一对应。
在一些实施例中,步骤S103可以包括:网卡模块利用第二预设算法确定原始会话请求标识对应的第一收包队列标识。具体地,网卡模块利用第二预设算法对原始会话请求标识进行计算,得到第一收包队列索引值,第一收包队列索引值可以与第一收包队列标识一致,或者,第一收包队列索引值与第一收包队列标识间存在映射关系。在确定第一收包队列标识后,网卡模块根据第一收包队列标识确定对应的第一收包队列。在一个实施例中,第二预设算法为哈希分流算法,收包队列标识可以包括但不限于收包队列ID。
在实际应用中,客户端通过待处理请求报文与服务器进行会话通信。在一次会话过程中,客户端发送的第一个待处理请求报文用于请求建立客户端与服务器间的连接,以及用于建立目标会话。其中,待处理请求报文的类别包括但不限于HTTP请求报文,客户端与服务器间的连接的类别包括但不限于TCP连接。
S203:第一内核基于原始会话请求标识对待处理请求报文进行网络地址转换,得到目标请求报文和目标会话信息。
本公开实施例中,网络地址转换可以包括但不限于源地址转换和目的地址转换等。具体地,目标请求报文携带目标会话请求标识,该目标会话请求标识为对原始会话请求标识进行网络地址转换得到的。
本公开实施例中,在步骤S203之前,报文处理方法还包括:
S2021:第一内核判断第一会话表中是否存在原始会话请求标识对应的第一会话表项。如此,确定当前的待处理请求报文是否为对应的目标会话过程中的第一个请求报文。
在实际应用中,会话表用于挂载会话信息的内存地址,第一会话表为第一内核对应的会话表,用于挂载第一内核的会话表项。在一些实施例中,各会话表与防火墙处理器的各内核一一对应。
在实际应用中,第一内核在获取到待处理请求报文后,基于原始会话请求标识查询第一会话表,以判断第一会话表中是否存在第一会话表项。
在一些实施例中,在步骤S2021之前,报文处理方法还可以包括:第一内核利用第一预设算法确定原始会话请求标识对应的索引值。具体地,第一内核利用第一预设算法对原始会话请求标识进行计算,得到原始会话请求标识对应的索引值。相应的,步骤S2021可以具体为:第一内核判断第一会话表中是否存在与原始会话请求标识对应的索引值一致的索引值。具体地,第一内核查询第一会话表中的各索引值,判断其中的任一索引值是否与原始会话请求标识对应的索引值一致。在一个实施例中,第一预设算法可以为会话哈希算法。
S2022:若判断结果为否,第一内核确定与待处理请求报文匹配的目标转换策略。
在实际应用中,若第一会话表中不存在第一会话表项,则确定当前的待处理请求报文为对应的目标会话过程中的第一个请求报文,第一内核基于当前的待处理请求报文携带的信息确定与待处理请求报文匹配的目标转换策略。
具体地,若第一会话表中不存在与原始会话请求标识对应的索引值一致的索引值,则确定第一会话表中不存在第一会话表项。
具体地,前述的第一内核基于待处理请求报文携带的信息确定与待处理请求报文匹配的目标转换策略包括:第一内核判断是否存在待处理请求报文携带的信息对应的预设转换策略,若存在,将对应的预设转换策略作为目标转换策略,然后执行步骤S203至步骤S211;若不存在,不对待处理请求报文进行网络地址转换;在一些实施例中,若不存在,丢弃待处理请求报文。
相应的,基于步骤S2022,步骤S203可以包括:
S2031:第一内核基于目标转换策略对原始会话请求标识进行网络地址转换,得到目标会话请求标识。
S2032:第一内核根据目标会话请求标识和待处理请求报文生成目标请求报文。
在实际应用中,第一内核在得到目标会话请求标识后,可以将待处理请求报文中的原始会话请求标识替换为目标会话请求标识,得到目标请求报文。
S2033:第一内核根据原始会话请求标识和目标会话请求标识对应的会话应答标识生成目标会话信息。
在实际应用中,目标会话请求标识中的源地址为对应的会话应答标识中的目的地址,目标会话请求标识中的目的地址为对应的会话应答标识中的源地址。
在一些实施例中,原始会话请求标识为请求方向的五元组(以下简称为请求五元组),目标会话请求标识为转换后的请求方向的五元组(以下简称为转换后请求五元组);相应的,步骤S2031可以具体为:第一内核基于目标转换策略对请求五元组进行网络地址转换,得到转换后请求五元组;举例来说,对请求五元组进行网络地址转换可以具体为对请求五元组进行源地址转换;步骤S2032可以具体为:第一内核根据转换后请求五元组和待处理请求报文生成目标请求报文。进一步地,会话应答标识为转换后请求五元组对应的应答方向五元组(以下简称为转换后应答五元组);相应的,步骤S2033可以具体为:第一内核根据请求五元组和转换后应答五元组生成目标会话信息。
进一步地,请参考表一,表一示出了一个实施例中目标会话信息的内容。其中,tcp,192.168.1.100:3000→10.12.0.200:80为请求五元组,表征源IP地址为192.168.1.100的终端通过端口3000,利用TCP协议,向目的IP地址为10.12.0.200的服务器的端口80发送连接请求。tcp,10.12.0.200:80→20.120.0.3:3000为转换后应答五元组,20.120.0.3为对请求五元组中的源IP地址192.168.1.100进行网络地址转换后得到的IP地址。相应的,转换后请求五元组为tcp,20.120.0.3:3000→10.12.0.200:80。
tcp,192.168.1.100:3000→10.12.0.200:80 |
tcp,10.12.0.200:80→20.120.0.3:3000 |
表一
本公开实施例中,在步骤S2021之后,报文处理方法还包括:
S2023:若判断结果为是,第一内核基于第一会话表项对待处理请求报文进行网络地址转换,得到目标请求报文。
在实际应用中,若第一会话表中存在第一会话表项,则确定待处理请求报文不是对应的目标会话过程中的第一个请求报文。具体地,若第一会话表中存在与原始会话请求标识对应的索引值一致的索引值,则存在第一会话表项。第一内核执行步骤S2023的具体过程可以为:根据第一会话表项中目标会话信息的内存地址获取目标会话信息;读取目标会话信息中的会话应答标识;根据会话应答标识对原始会话请求标识进行网络地址转换,得到目标会话请求标识;将待处理报文中的原始会话请求标识替换为目标会话请求标识,得到目标请求报文。
具体地,以前述的原始会话请求标识为请求五元组,目标会话请求标识为转换后请求五元组,会话应答标识为转换后应答五元组为例,上述根据会话应答标识对原始会话请求标识进行网络地址转换,得到目标会话请求标识可以具体为:将请求五元组的源IP地址(如表一中的192.168.1.100)转换为转换后应答五元组的目的IP地址(如表一中的20.120.0.3),得到转换后请求五元组(tcp,20.120.0.3:3000→10.12.0.200:80)。
S205:第一内核确定目标会话信息的内存地址。
本公开实施例中,在得到目标会话信息之后,第一内核将目标会话信息存储至内存的预设位置,将预设位置对应的内存地址确定为目标会话信息的内存地址。
S207:第一内核根据原始会话请求标识和目标会话信息的内存地址生成第一会话表项。
本公开实施例中,第一内核可以根据原始会话请求标识生成目标会话信息的内存地址的第一索引值,根据第一索引值与目标会话信息的内存地址生成键值对,进而得到第一会话表项。
在实际应用中,步骤S207:第一内核根据原始会话请求标识和目标会话信息的内存地址生成第一会话表项可以包括:
S2071:第一内核利用第一预设算法确定原始会话请求标识对应的第一索引值。具体地,第一内核利用第一预设算法对原始会话请求标识进行计算,将计算得到的索引值作为第一索引值。
S2072:第一内核根据第一索引值和目标会话信息的内存地址生成第一会话表项。具体地,第一内核根据第一索引值与目标会话信息的内存地址生成键值对,进而根据该键值对生成第一会话表项。
相应的,在步骤S2072:第一内核根据第一索引值和目标会话信息的内存地址生成第一会话表项之后,报文处理方法还包括S2073:第一内核将第一会话表项挂载至第一内核的第一会话表中,以便于第一内核在目标会话过程中,接收到第一个请求报文后续的待处理请求报文时,通过查询第一会话表得到的第一会话表项,以对后续的待处理请求报文进行网络地址转换和转发。
如此,在第一会话表中不存在当前的待处理请求报文对应的会话表项时,第一内核基于原始会话请求标识生成会话信息并创建对应的第一会话表项,能够在获取到目标会话过程中后续的待处理请求报文时,快速查找到相应的会话信息,有效提高请求报文的处理效率。
S209:第一内核将目标会话信息的内存地址发送至第二内核。
本公开实施例中,第一内核在确定目标会话信息的内存地址后,将其发送至第二内核,在此情况下,第一内核确定第二内核为用于接收目标请求报文对应的待处理应答报文的内核。具体地,第一内核将目标会话信息的内存地址发送至第二内核的第二会话消息队列中,以使第二内核从第二会话消息队列中获取目标会话信息的内存地址。在一些实施例中,防火墙处理器的各内核与各会话消息队列一一对应。请参考图3,图3示出了一个实施例提供的防火墙端的网卡模块与各内核的通信连接示意图,如图3所示,各内核分别与会话表、收包队列和会话消息队列一一对应。
在实际应用中,在步骤S209之前,报文处理方法还包括:
S2081:第一内核利用第二预设算法确定会话应答标识对应的第二收包队列标识。
S2082:第一内核将第二收包队列标识对应的内核作为第二内核。
需要说明的是,步骤S2081中第一内核确定第二收包队列标识的方式与前述步骤S103中网卡模块确定第一收包队列标识的方式相类似,在此不再赘述。
在一些实施例中,在步骤S2082之前,报文处理方法还可以包括:
1)第一内核判断第二收包队列标识和第一收包队列标识是否一致;
2)若判断结果为否,第一内核执行步骤S2082。
3)若判断结果为是,第一内核利用第一预设算法确定会话应答标识对应的第三索引值。
4)第一内核根据第三索引值和目标会话信息的内存地址生成第三会话表项。
5)第一内核将第三会话表项挂载至第一内核的第一会话表中。
在实际应用中,若第二收包队列标识与第一收包队列标识一致,确定第一内核为获取对应的待处理应答报文的内核,第一会话表中同时挂载有第一会话表项和第三会话表项。
需要说明的是,第三索引值的确定方式与前述的第二索引值的确定方式相类似,在此不再赘述,一些实施例中,第三索引值与第二索引值相同。
S211:第一内核发送目标请求报文。
本公开实施例中,第一内核在生成目标请求报文后,将目标请求报文发送至目标会话请求标识的目的IP地址对应的服务器。
S213:第二内核基于目标会话信息的内存地址生成第二会话表项。
本公开实施例中,第二内核对应的会话表为第二会话表,第二会话表用于挂载第二内核的会话表项。
在实际应用中,步骤S213可以包括:
S2131:第二内核根据目标会话信息的内存地址获取目标会话信息。
S2132:第二内核读取目标会话信息中的会话应答标识。
S2133:第二内核利用第一预设算法确定会话应答标识对应的第二索引值。
S2134:第二内核根据第二索引值和目标会话信息的内存地址生成第二会话表项。
需要说明的是,第二内核确定第二索引值的方式与前述步骤S2071中第一内核确定第一索引值的方式相类似,在此不再赘述。
相应的,在步骤S2134之后,报文处理方法还可以包括S2135:第二内核将第二会话表项挂载至第二内核的第二会话表。以便于第二内核在目标会话过程中,接收到目标请求报文对应的待处理应答报文时,通过查询第二会话表得到第二会话表项,以对待处理应答报文进行网络地址转换和转发。
在一些实施例中,第一会话表和第二会话表为哈希表。
S215:第二内核获取目标请求报文对应的待处理应答报文。
本公开实施例中,响应于目标请求报文,服务器发送待处理应答报文。其中,待处理应答报文的类别包括但不限于HTTP应答报文。
在实际应用中,步骤S215可以具体为:第二内核从第二收包队列中获取待处理请求报文,第二收包队列是第二内核对应的收包队列。其中,第二收包队列可以用于挂载待处理请求报文对应的待处理应答报文。
相应的,在实际应用中,在步骤S215之前,报文处理方法还可以包括:
S301:网卡模块接收服务器发送的待处理应答报文,待处理应答报文携带目标会话请求标识对应的会话应答标识。
S303:网卡模块确定会话应答标识对应的第二收包队列标识。
S305:网卡模块将待处理应答报文挂载至第二收包队列标识对应的第二收包队列。
需要说明的是,步骤S303中第二收包队列标识的确定方式与前述步骤S103中第一收包队列标识的方式相类似,在此不再赘述。
S217:第二内核基于第二会话表项对待处理应答报文进行网络地址转换,得到目标应答报文。
如此,各内核通过独立维护和查询各自的会话表项,以及以无锁队列传递会话信息的内存地址数据,保证了防火墙多核并发处理的高性能实现,避免加锁模式的性能浪费。
本公开实施例中,第二内核执行步骤S217的具体过程可以为:根据第二会话表项中目标会话信息的内存地址获取目标会话信息;读取目标会话信息中的原始会话请求标识;根据原始会话请求标识对会话应答标识进行网络地址转换,得到原始会话请求标识对应的原始会话应答标识;将待处理应答报文中的会话应答标识替换为原始会话应答标识,得到目标应答报文。其中,原始会话应答标识的源IP地址为原始会话请求标识的目的IP地址(如表一中的10.12.0.200),原始会话应答标识的目的IP地址为原始会话请求标识的源IP地址(如表一中的192.168.1.100),相应的原始会话应答标识为(tcp,10.12.0.200:80→192.168.1.100:3000)。
S219:第二内核发送目标应答报文。
本公开实施例中,第二内核在生成目标应答报文后,将目标应答报文发送至终端,完成一次终端与服务器间的连接。
综上,本公开令第一内核获取待处理请求报文,基于原始会话请求标识对待处理请求报文进行网络地址转换,得到目标请求报文和目标会话信息,确定目标会话信息的内存地址,根据原始会话请求标识和目标会话信息的内存地址生成第一会话表项,发送目标请求报文,如此,第一内核在本核的会话表项中存储会话信息,有效提高后续请求报文的网络地址转换效率;然后,令第一内核将目标会话信息的内存地址发送至第二内核,以使第二内核基于目标会话信息的内存地址生成第二会话表项,以及在获取目标请求报文对应的待处理应答报文后,基于第二会话表项对待处理应答报文进行。
以下基于上述的应用环境,以防火墙端的第一内核为执行主体介绍本公开的一种报文处理方法,请参考图4,图4是本公开实施例提供的一种报文处理方法的流程示意图,本说明书提供了如实施例或流程图的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或服务器产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。具体的如图4所示,方法可以包括:
S401:获取待处理请求报文,待处理请求报文携带有原始会话请求标识。
S403:基于原始会话请求标识对待处理请求报文进行网络地址转换,得到目标请求报文和目标会话信息。
S405:确定目标会话信息的内存地址。
S407:根据原始会话请求标识和目标会话信息的内存地址生成第一会话表项。
S409:将目标会话信息的内存地址发送至第二内核,以使第二内核基于目标会话信息的内存地址生成第二会话表项,以及在获取目标请求报文对应的待处理应答报文后,基于第二会话表项对待处理应答报文进行网络地址转换,得到目标应答报文。
S411:发送目标请求报文。
在一些实施例中,步骤S407可以包括:
S4071:利用第一预设算法确定原始会话请求标识对应的第一索引值;
S4072:根据第一索引值和目标会话信息的内存地址生成第一会话表项。
相应的,在步骤S4072之后,方法还包括S4073:将第一会话表项挂载至第一内核的第一会话表中。
在一些实施例中,在步骤S403之前,方法还包括:
S4021:判断第一会话表中是否存在原始会话请求标识对应的第一会话表项;
S4022:若判断结果为否,确定与待处理请求报文匹配的目标转换策略;
相应的,基于步骤S4022,步骤S403可以包括:
S4031:基于目标转换策略对原始会话请求标识进行网络地址转换,得到目标会话请求标识;
S4032:根据目标会话请求标识和待处理请求报文生成目标请求报文;
S4033:根据原始会话请求标识和目标会话请求标识对应的会话应答标识生成目标会话信息。
在一些实施例中,在步骤S4021之后,方法还包括:
S4023:若判断结果为是,基于第一会话表项对待处理请求报文进行网络地址转换,得到目标请求报文。
在一些实施例中,在步骤S409之前,方法还包括:
S4081:利用第二预设算法确定会话应答标识对应的第二收包队列标识;
S4082:将第二收包队列标识对应的内核作为第二内核。
在一些实施例中,在步骤S4082之前,方法还包括:
1)判断第二收包队列标识和第一内核对应的第一收包队列标识是否一致;
2)若判断结果为否,执行将第二收包队列标识对应的内核作为第二内核的步骤。
在一些实施例中,在上述步骤S4082中的步骤2)之后,方法还包括:
3)若判断结果为是,利用第一预设算法确定会话应答标识对应的第三索引值;
4)根据第三索引值和目标会话信息的内存地址生成第三会话表项;
5)将第三会话表项挂载至第一内核的第一会话表中。
综上,本公开令第一内核获取待处理请求报文,基于原始会话请求标识对待处理请求报文进行网络地址转换,得到目标请求报文和目标会话信息,确定目标会话信息的内存地址,根据原始会话请求标识和目标会话信息的内存地址生成第一会话表项,发送目标请求报文,如此,第一内核在本核的会话表项中存储会话信息,有效提高后续请求报文的网络地址转换效率;然后,令第一内核将目标会话信息的内存地址发送至第二内核,以使第二内核基于目标会话信息的内存地址生成第二会话表项,以及在获取目标请求报文对应的待处理应答报文后,基于第二会话表项对待处理应答报文进行。
以下基于上述的应用环境,以防火墙端的第二内核为执行主体介绍本公开的一种报文处理方法,请参考图5,图5是本公开实施例提供的一种报文处理方法的流程示意图,本说明书提供了如实施例或流程图的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或服务器产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。具体的如图5所示,方法可以包括:
S501:基于目标会话信息的内存地址生成第二会话表项;
S503:获取目标请求报文对应的待处理应答报文;
S505:基于第二会话表项对待处理应答报文进行网络地址转换,得到目标应答报文。
本公开实施例中,在步骤S505之后,方法还包括S507:发送目标应答报文。
在一些实施例中,步骤S501可以包括:
S5011:根据内存地址获取目标会话信息。
S5012:读取目标会话信息中的会话应答标识。
S5013:利用第一预设算法确定会话应答标识对应的第二索引值。
S5014:根据第二索引值和目标会话信息的内存地址生成第二会话表项。
在一些实施例中,在步骤S5014之后,方法还可以包括S5015:将第二会话表项挂载至第二内核的第二会话表。
在一些实施例中,步骤S505可以包括:
S5051:根据第二会话表项中目标会话信息的内存地址获取目标会话信息;
S5052:读取目标会话信息中的原始会话请求标识;
S5053:根据原始会话请求标识对会话应答标识进行网络地址转换,得到原始会话请求标识对应的原始会话应答标识;
S5054:将待处理报文中的会话应答标识替换为原始会话应答标识,得到目标请求报文。
综上,本公开令第一内核获取待处理请求报文,基于原始会话请求标识对待处理请求报文进行网络地址转换,得到目标请求报文和目标会话信息,确定目标会话信息的内存地址,根据原始会话请求标识和目标会话信息的内存地址生成第一会话表项,发送目标请求报文,如此,第一内核在本核的会话表项中存储会话信息,有效提高后续请求报文的网络地址转换效率;然后,令第一内核将目标会话信息的内存地址发送至第二内核,以使第二内核基于目标会话信息的内存地址生成第二会话表项,以及在获取目标请求报文对应的待处理应答报文后,基于第二会话表项对待处理应答报文进行。
本公开实施例还提供了一种报文处理装置,如图6所示,该装置包括:
请求报文获取模块610:用于获取待处理请求报文,待处理请求报文携带有原始会话请求标识。
第一地址转换模块620:用于基于原始会话请求标识对待处理请求报文进行网络地址转换,得到目标请求报文和目标会话信息。
内存地址确定模块630:用于确定目标会话信息的内存地址。
第一表项生成模块640:用于根据原始会话请求标识和目标会话信息的内存地址生成第一会话表项。
内存地址发送模块650:用于将目标会话信息的内存地址发送至第二内核,以使第二内核基于目标会话信息的内存地址生成第二会话表项,以及在获取目标请求报文对应的待处理应答报文后,基于第二会话表项对待处理应答报文进行网络地址转换,得到目标应答报文。
请求报文发送模块660:用于发送目标请求报文。
在一些实施例中,第一表项生成模块640可以包括:
第一索引值确定单元:用于利用第一预设算法确定原始会话请求标识对应的第一索引值;
第一会话表项生成单元:用于根据第一索引值和目标会话信息的内存地址生成第一会话表项。
相应的,第一表项生成模块640还可以包括第一会话表项挂载单元:用于将第一会话表项挂载至第一内核的第一会话表中。
在一些实施例中,装置还包括:
第一判断模块:用于在基于原始会话请求标识对待处理请求报文进行网络地址转换,得到目标请求报文和目标会话信息之前,判断第一会话表中是否存在原始会话请求标识对应的第一会话表项;
转换策略确定模块:用于若判断结果为否,确定与待处理请求报文匹配的目标转换策略;
相应的,基于转换策略确定模块,第一地址转换模块620可以包括:
请求标识转换单元:用于基于目标转换策略对原始会话请求标识进行网络地址转换,得到目标会话请求标识;
请求报文生成单元:用于根据目标会话请求标识和待处理请求报文生成目标请求报文;
会话信息生成单元:用于根据原始会话请求标识和目标会话请求标识对应的会话应答标识生成目标会话信息。
在一些实施例中,基于第一判断模块,装置还包括:
请求报文转换模块:用于在判断第一会话表中是否存在原始会话请求标识对应的第一会话表项之后,若判断结果为是,基于第一会话表项对待处理请求报文进行网络地址转换,得到目标请求报文。
在一些实施例中,装置还包括:
收包队列标识确定模块:用于在将目标会话信息的内存地址发送至第二内核之前,利用第二预设算法确定会话应答标识对应的第二收包队列标识;
第二内核确定模块:用于将第二收包队列标识对应的内核作为第二内核。
在一些实施例中,装置还包括:
第二判断模块:用于在将第二收包队列标识对应的内核作为第二内核之前,判断第二收包队列标识和第一内核对应的第一收包队列标识是否一致;以及若判断结果为否,执行将第二收包队列标识对应的内核作为第二内核的步骤。
在一些实施例中,装置还包括:
第三索引值确定模块:用于在判断第二收包队列标识和第一内核对应的第一收包队列标识是否一致之后,若判断结果为是,利用第一预设算法确定会话应答标识对应的第三索引值;
第三会话表项生成模块:用于根据第三索引值和目标会话信息的内存地址生成第三会话表项;
挂载模块:用于将第三会话表项挂载至第一内核的第一会话表中。
以上装置实施例中的装置与方法实施例基于同样的申请构思。
本公开实施例还提供了一种报文处理装置,如图7所示,该装置包括:
第二表项生成模块710:用于基于目标会话信息的内存地址生成第二会话表项;
应答报文获取模块720:用于获取目标请求报文对应的待处理应答报文;
第二地址转换模块730:用于基于第二会话表项对待处理应答报文进行网络地址转换,得到目标应答报文。
本公开实施例中,装置还包括应答报文发送模块:用于在基于第二会话表项对待处理应答报文进行网络地址转换,得到目标应答报文之后,发送目标应答报文。
在一些实施例中,第二表项生成模块710可以包括:
第一会话信息获取单元:用于根据内存地址获取目标会话信息。
会话应答标识读取单元:用于读取目标会话信息中的会话应答标识。
第二索引值确定单元:用于利用第一预设算法确定会话应答标识对应的第二索引值。
第二会话表项生成单元:用于根据第二索引值和目标会话信息的内存地址生成第二会话表项。
在一些实施例中,装置还可以包括第二会话表项挂载单元:用于在根据第二索引值和目标会话信息的内存地址生成第二会话表项之后,将第二会话表项挂载至第二内核的第二会话表。
在一些实施例中,第二地址转换模块730可以包括:
第二会话信息获取单元:用于根据第二会话表项中目标会话信息的内存地址获取目标会话信息;
会话请求标识读取单元:用于读取目标会话信息中的原始会话请求标识;
会话应答标识转换单元:用于根据原始会话请求标识对会话应答标识进行网络地址转换,得到原始会话请求标识对应的原始会话应答标识;
请求报文生成单元:用于将待处理报文中的会话应答标识替换为原始会话应答标识,得到目标请求报文。
以上装置实施例中的装置与方法实施例基于同样的申请构思。
本公开实施例提供了一种报文处理设备,设备包括处理器和存储器,存储器中存储有至少一条指令或至少一段程序,至少一条指令或至少一段程序由处理器加载并执行以实现如上述的报文处理方法。
存储器可用于存储软件程序以及模块,处理器通过运行存储在存储器的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、功能所需的应用程序等;存储数据区可存储根据设备的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器还可以包括存储器控制器,以提供处理器对存储器的访问。
本公开实施例所提供的方法实施例可以在移动终端、计算机终端、服务器或者类似的运算装置中执行。图8是本申请实施例提供的一种实现报文处理方法的设备的硬件结构框图。如图8所示,该设备800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(Central Processing Units,CPU)810(处理器810可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器830,一个或一个以上存储应用程序823或数据822的存储介质820(例如一个或一个以上海量存储设备)。其中,存储器830和存储介质820可以是短暂存储或持久存储。存储在存储介质820的程序可以包括一个或一个以上模块,每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器810可以设置为与存储介质820通信,在设备800上执行存储介质820中的一系列指令操作。设备800还可以包括一个或一个以上电源860,一个或一个以上有线或无线网络接口850,一个或一个以上输入输出接口840,和/或,一个或一个以上操作系统821,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
输入输出接口840可以用于经由一个网络接收或者发送数据。上述的网络具体实例可包括设备800的通信供应商提供的无线网络。在一个实例中,输入输出接口840包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,输入输出接口840可以为射频(RadioFrequency,RF)模块,其用于通过无线方式与互联网进行通讯。
本领域普通技术人员可以理解,图8所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,设备800还可包括比图8中所示更多或者更少的组件,或者具有与图8所示不同的配置。
本公开的实施例还提供了一种计算机可读存储介质,存储介质可设置于设备之中以保存用于实现方法实施例中一种报文处理相关的至少一条指令、或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现上述方法实施例提供的报文处理。
可选地,在本实施例中,上述存储介质可以位于计算机网络的多个网络服务器中的至少一个网络服务器。可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中提供的方法。
由上述本公开提供的报文处理方法、装置、设备、系统或存储介质的实施例可见,本公开令第一内核获取待处理请求报文,基于原始会话请求标识对待处理请求报文进行网络地址转换,得到目标请求报文和目标会话信息,确定目标会话信息的内存地址,根据原始会话请求标识和目标会话信息的内存地址生成第一会话表项,发送目标请求报文,如此,第一内核在本核的会话表项中存储会话信息,有效提高后续请求报文的网络地址转换效率;然后,令第一内核将目标会话信息的内存地址发送至第二内核,以使第二内核基于目标会话信息的内存地址生成第二会话表项,以及在获取目标请求报文对应的待处理应答报文后,基于第二会话表项对待处理应答报文进行。
需要说明的是:上述本公开实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备、服务器和存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指示相关的硬件完成,的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上仅为本公开的较佳实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (29)
1.一种报文处理方法,应用于第一内核,其特征在于,所述方法包括:
获取待处理请求报文,所述待处理请求报文携带有原始会话请求标识;
基于所述原始会话请求标识对所述待处理请求报文进行网络地址转换,得到目标请求报文和目标会话信息,所述目标请求报文携带有对所述原始会话请求标识转换得到的目标会话请求标识,所述目标会话信息是基于所述原始会话请求标识和所述目标会话请求标识对应的会话应答标识生成的;
确定所述目标会话信息的内存地址;
根据所述原始会话请求标识和所述目标会话信息的内存地址生成第一会话表项并将所述第一会话表项挂载至所述第一内核的第一会话表中;
将所述目标会话信息的内存地址发送至第二内核对应的第二会话消息队列中,所述第二会话消息队列为无锁队列,以使所述第二内核从所述第二会话消息队列获取所述目标会话信息的内存地址并基于所述目标会话信息的内存地址和所述会话应答标识生成第二会话表项,将所述第二会话表项挂载至所述第二内核的第二会话表,以及在获取所述目标请求报文对应的待处理应答报文后,基于所述第二会话表项对所述待处理应答报文进行网络地址转换,得到目标应答报文;
发送所述目标请求报文。
2.根据权利要求1所述的方法,其特征在于,所述根据所述原始会话请求标识和所述目标会话信息的内存地址生成第一会话表项包括:
利用第一预设算法确定所述原始会话请求标识对应的第一索引值;
根据所述第一索引值和所述目标会话信息的内存地址生成所述第一会话表项;
相应的,在根据所述第一索引值和所述目标会话信息的内存地址生成所述第一会话表项之后,所述方法还包括:
将所述第一会话表项挂载至所述第一内核的第一会话表中。
3.根据权利要求2所述的方法,其特征在于,在基于所述原始会话请求标识对所述待处理请求报文进行网络地址转换,得到目标请求报文和目标会话信息之前,所述方法还包括:
判断所述第一会话表中是否存在所述原始会话请求标识对应的第一会话表项;
若判断结果为否,确定与所述待处理请求报文匹配的目标转换策略;
相应的,所述基于所述原始会话请求标识对所述待处理请求报文进行网络地址转换,得到目标请求报文和目标会话信息包括:
基于所述目标转换策略对所述原始会话请求标识进行网络地址转换,得到目标会话请求标识;
根据所述目标会话请求标识和所述待处理请求报文生成所述目标请求报文;
根据所述原始会话请求标识和所述目标会话请求标识对应的会话应答标识生成所述目标会话信息。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若判断结果为是,基于所述第一会话表项对所述待处理请求报文进行网络地址转换,得到所述目标请求报文。
5.根据权利要求3-4中任一所述的方法,其特征在于,在所述将所述目标会话信息的内存地址发送至第二内核之前,所述方法还包括:
利用第二预设算法确定所述会话应答标识对应的第二收包队列标识;
将所述第二收包队列标识对应的内核作为所述第二内核。
6.根据权利要求5所述的方法,其特征在于,在所述将所述第二收包队列标识对应的内核作为所述第二内核之前,所述方法还包括:
判断所述第二收包队列标识和所述第一内核对应的第一收包队列标识是否一致;
若判断结果为否,执行所述将所述第二收包队列标识对应的内核作为所述第二内核的步骤。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
若判断结果为是,利用所述第一预设算法确定所述会话应答标识对应的第三索引值;
根据所述第三索引值和所述目标会话信息的内存地址生成第三会话表项;
将所述第三会话表项挂载至所述第一内核的第一会话表中。
8.一种报文处理方法,应用于第二内核,其特征在于,所述方法包括:
基于目标会话信息的内存地址生成第二会话表项;
获取目标请求报文对应的待处理应答报文;所述目标会话信息和所述目标请求报文是第一内核基于原始会话请求标识对待处理请求报文进行网络地址转换得到的,所述原始会话请求标识是第一内核接收的所述目标请求报文对应的待处理请求报文所携带的,所述第二会话表项是所述第二内核从第二会话消息队列获取所述目标会话信息的内存地址,并基于所述目标会话信息的内存地址和会话应答标识生成并挂载在第二会话表中的,所述目标会话信息的内存地址是所述第一内核发送的,所述第二会话消息队列为无锁队列;
基于所述第二会话表项对所述待处理应答报文进行网络地址转换,得到目标应答报文。
9.根据权利要求8所述的方法,其特征在于,所述基于所述第二会话表项对所述待处理应答报文进行网络地址转换,得到目标应答报文之后,所述方法还包括:
发送目标应答报文。
10.根据权利要求9所述的方法,其特征在于,所述基于目标会话信息的内存地址生成第二会话表项包括:
根据所述内存地址获取目标会话信息;
读取所述目标会话信息中的会话应答标识;
利用第一预设算法确定所述会话应答标识对应的第二索引值;
根据所述第二索引值和所述目标会话信息的内存地址生成所述第二会话表项。
11.根据权利要求10所述的方法,其特征在于,在所述根据所述第二索引值和所述目标会话信息的内存地址生成所述第二会话表项之后,所述方法还包括:
将所述第二会话表项挂载至所述第二内核的第二会话表。
12.根据权利要求8所述的方法,其特征在于,所述基于所述第二会话表项对所述待处理应答报文进行网络地址转换,得到目标应答报文包括:
根据所述第二会话表项中所述目标会话信息的内存地址获取目标会话信息;
读取所述目标会话信息中的原始会话请求标识;
根据所述原始会话请求标识对所述会话应答标识进行网络地址转换,得到所述原始会话请求标识对应的原始会话应答标识;
将所述待处理应答报文中的会话应答标识替换为所述原始会话应答标识,得到所述目标应答报文。
13.一种报文处理装置,其特征在于,所述装置包括:
请求报文获取模块:用于获取待处理请求报文,所述待处理请求报文携带有原始会话请求标识;
第一地址转换模块:用于基于所述原始会话请求标识对所述待处理请求报文进行网络地址转换,得到目标请求报文和目标会话信息,所述目标请求报文携带有对所述原始会话请求标识转换得到的目标会话请求标识,所述目标会话信息是基于所述原始会话请求标识和所述目标会话请求标识对应的会话应答标识生成的;
内存地址确定模块:用于确定所述目标会话信息的内存地址;
第一表项生成模块:用于根据所述原始会话请求标识和所述目标会话信息的内存地址生成第一会话表项并将所述第一会话表项挂载至第一内核的第一会话表中;
内存地址发送模块:用于将所述目标会话信息的内存地址发送至第二内核对应的第二会话消息队列中,所述第二会话消息队列为无锁队列,以使所述第二内核从所述第二会话消息队列获取所述目标会话信息的内存地址并基于所述目标会话信息的内存地址和所述会话应答标识生成第二会话表项,将所述第二会话表项挂载至所述第二内核的第二会话表,以及在获取所述目标请求报文对应的待处理应答报文后,基于所述第二会话表项对所述待处理应答报文进行网络地址转换,得到目标应答报文;
请求报文发送模块:用于发送所述目标请求报文。
14.根据权利要求13所述的装置,其特征在于,第一表项生成模块包括:
第一索引值确定单元:用于利用第一预设算法确定所述原始会话请求标识对应的第一索引值;
第一会话表项生成单元:用于根据所述第一索引值和所述目标会话信息的内存地址生成所述第一会话表项;
相应的,第一表项生成模块还包括第一会话表项挂载单元:用于将所述第一会话表项挂载至所述第一内核的第一会话表中。
15.根据权利要求14所述的装置,其特征在于,所述装置还包括:
第一判断模块:用于在基于所述原始会话请求标识对所述待处理请求报文进行网络地址转换,得到目标请求报文和目标会话信息之前,判断所述第一会话表中是否存在所述原始会话请求标识对应的第一会话表项;
转换策略确定模块:用于若判断结果为否,确定与所述待处理请求报文匹配的目标转换策略;
相应的,所述第一地址转换模块包括:
请求标识转换单元:用于基于所述目标转换策略对所述原始会话请求标识进行网络地址转换,得到目标会话请求标识;
请求报文生成单元:用于根据所述目标会话请求标识和所述待处理请求报文生成所述目标请求报文;
会话信息生成单元:用于根据所述原始会话请求标识和所述目标会话请求标识对应的会话应答标识生成所述目标会话信息。
16.根据权利要求15所述的装置,其特征在于,所述装置还包括:
请求报文转换模块:用于若判断结果为是,基于所述第一会话表项对所述待处理请求报文进行网络地址转换,得到所述目标请求报文。
17.根据权利要求15或16所述的装置,其特征在于,所述装置还包括:
收包队列标识确定模块:用于在所述将所述目标会话信息的内存地址发送至第二内核之前,利用第二预设算法确定所述会话应答标识对应的第二收包队列标识;
第二内核确定模块:用于将所述第二收包队列标识对应的内核作为所述第二内核。
18.根据权利要求17所述的装置,其特征在于,所述装置还包括:
第二判断模块:用于在所述将所述第二收包队列标识对应的内核作为所述第二内核之前,判断所述第二收包队列标识和所述第一内核对应的第一收包队列标识是否一致;以及若判断结果为否,执行所述将所述第二收包队列标识对应的内核作为所述第二内核的步骤。
19.根据权利要求18所述的装置,其特征在于,所述装置还包括:
第三索引值确定模块:用于若判断结果为是,利用所述第一预设算法确定所述会话应答标识对应的第三索引值;
第三会话表项生成模块:用于根据所述第三索引值和所述目标会话信息的内存地址生成第三会话表项;
挂载模块:用于将所述第三会话表项挂载至所述第一内核的第一会话表中。
20.一种报文处理装置,其特征在于,所述装置包括:
第二表项生成模块:用于基于目标会话信息的内存地址生成第二会话表项;
应答报文获取模块:用于获取目标请求报文对应的待处理应答报文;所述目标会话信息和所述目标请求报文是第一内核基于原始会话请求标识对待处理请求报文进行网络地址转换得到的,所述原始会话请求标识是第一内核接收的所述目标请求报文对应的待处理请求报文所携带的,所述第二会话表项是第二内核从第二会话消息队列获取所述目标会话信息的内存地址,并基于所述目标会话信息的内存地址和会话应答标识生成并挂载在第二会话表中的,所述目标会话信息的内存地址是所述第一内核发送的,所述第二会话消息队列为无锁队列;
第二地址转换模块:用于基于所述第二会话表项对所述待处理应答报文进行网络地址转换,得到目标应答报文。
21.根据权利要求20所述的装置,其特征在于,所述装置还包括:
应答报文发送模块:用于在基于所述第二会话表项对所述待处理应答报文进行网络地址转换,得到目标应答报文之后,发送所述目标应答报文。
22.根据权利要求21所述的装置,其特征在于,所述第二表项生成模块包括:
第一会话信息获取单元:用于根据所述内存地址获取目标会话信息;
会话应答标识读取单元:用于读取所述目标会话信息中的会话应答标识;
第二索引值确定单元:用于利用第一预设算法确定所述会话应答标识对应的第二索引值;
第二会话表项生成单元:用于根据所述第二索引值和所述目标会话信息的内存地址生成所述第二会话表项。
23.根据权利要求22所述的装置,其特征在于,所述装置还可以包括:
第二会话表项挂载单元:用于在所述根据所述第二索引值和所述目标会话信息的内存地址生成所述第二会话表项之后,将第二会话表项挂载至第二内核的第二会话表。
24.根据权利要求20所述的装置,其特征在于,所述第二地址转换模块包括:
第二会话信息获取单元:用于根据所述第二会话表项中所述目标会话信息的内存地址获取目标会话信息;
会话请求标识读取单元:用于读取所述目标会话信息中的原始会话请求标识;
会话应答标识转换单元:用于根据所述原始会话请求标识对所述会话应答标识进行网络地址转换,得到所述原始会话请求标识对应的原始会话应答标识;
请求报文生成单元:用于将所述待处理应答报文中的会话应答标识替换为所述原始会话应答标识,得到所述目标应答报文。
25.一种报文处理设备,其特征在于,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如权利要求1-12中任一项所述的报文处理方法。
26.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如权利要求1-12中任一项报文处理方法。
27.一种报文处理终端,其特征在于,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如权利要求1-12中任一项报文处理方法。
28.一种报文处理服务器,其特征在于,所述服务器包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如权利要求1-12中任一项报文处理方法。
29.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机指令,所述计算机指令存储在计算机可读存储介质中,计算机设备的处理器从所述计算机可读存储介质读取所述计算机指令,所述处理器执行所述计算机指令,使得所述计算机设备执行以实现如权利要求1-12中任一项报文处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110013762.5A CN112804223B (zh) | 2021-01-06 | 2021-01-06 | 一种报文处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110013762.5A CN112804223B (zh) | 2021-01-06 | 2021-01-06 | 一种报文处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112804223A CN112804223A (zh) | 2021-05-14 |
CN112804223B true CN112804223B (zh) | 2024-04-16 |
Family
ID=75808547
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110013762.5A Active CN112804223B (zh) | 2021-01-06 | 2021-01-06 | 一种报文处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112804223B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113626736B (zh) * | 2021-08-10 | 2023-11-17 | 迈普通信技术股份有限公司 | Url特征学习方法、装置、电子设备及计算机可读存储介质 |
CN113904950B (zh) * | 2021-12-06 | 2022-02-22 | 广东睿江云计算股份有限公司 | 基于流的网络监测方法、装置、计算机设备及存储介质 |
CN114513466A (zh) * | 2022-03-23 | 2022-05-17 | 杭州迪普科技股份有限公司 | 用于负载均衡设备的会话处理方法及装置 |
CN114785733B (zh) * | 2022-06-20 | 2022-08-26 | 中电云数智科技有限公司 | 一种实现跨vpc网络流量转发中会话溯源的方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106789617A (zh) * | 2016-12-22 | 2017-05-31 | 东软集团股份有限公司 | 一种报文转发方法及装置 |
CN107079060A (zh) * | 2014-09-09 | 2017-08-18 | 思杰系统有限公司 | 用于运营商级nat优化的系统和方法 |
CN107729159A (zh) * | 2017-09-29 | 2018-02-23 | 华为技术有限公司 | 一种共享内存的地址映射方法及装置 |
CN111866204A (zh) * | 2019-04-25 | 2020-10-30 | 英特尔公司 | 无锁有状态网络地址转换 |
-
2021
- 2021-01-06 CN CN202110013762.5A patent/CN112804223B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107079060A (zh) * | 2014-09-09 | 2017-08-18 | 思杰系统有限公司 | 用于运营商级nat优化的系统和方法 |
CN106789617A (zh) * | 2016-12-22 | 2017-05-31 | 东软集团股份有限公司 | 一种报文转发方法及装置 |
CN107729159A (zh) * | 2017-09-29 | 2018-02-23 | 华为技术有限公司 | 一种共享内存的地址映射方法及装置 |
CN111866204A (zh) * | 2019-04-25 | 2020-10-30 | 英特尔公司 | 无锁有状态网络地址转换 |
Also Published As
Publication number | Publication date |
---|---|
CN112804223A (zh) | 2021-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112804223B (zh) | 一种报文处理方法和装置 | |
US9325785B2 (en) | Device, system, and method for client-governed session persistency between one or more clients and servers of a data center | |
CN110166570B (zh) | 业务会话管理方法、装置、电子设备 | |
US20150213134A1 (en) | Data query method and system and storage medium | |
CN107135268B (zh) | 基于信息中心网络的分布式任务计算方法 | |
US9843514B2 (en) | Packet processing method and background server | |
EP3633948A1 (en) | Anti-attack method and device for server | |
US20140143339A1 (en) | Method, apparatus, and system for resource sharing | |
CN106797384B (zh) | 以不同的协议将请求路由到集群中的相同端点 | |
CN108595574B (zh) | 数据库集群的连接方法、装置、设备及存储介质 | |
CN106856456B (zh) | 缓存集群服务的处理方法及系统 | |
US10341292B2 (en) | Increased port address space | |
CN114006955B (zh) | 一种数据处理方法、装置、设备及可读存储介质 | |
CN112906048B (zh) | 一种针对db2数据的密态数据访问防护方法 | |
CN109688204B (zh) | 基于ndn网络的文件下载方法、节点、终端 | |
CN103685367A (zh) | 离线下载系统和方法 | |
US10116698B1 (en) | Managing network firewall configuration utilizing source lists | |
CN113556370A (zh) | 一种服务调用方法和装置 | |
CN112291202B (zh) | 报文数据的可视化方法、装置和计算机可读存储介质 | |
WO2024109262A1 (zh) | 一种信息处理方法及装置、存储介质 | |
US11330074B2 (en) | TCP (transmission control protocol) fast open for classification acceleration of cache misses in a network processor | |
CN113422772B (zh) | 专网终端访问处理方法、装置及电子设备 | |
US10623523B2 (en) | Distributed communication and task handling to facilitate operations of application system | |
US20230060132A1 (en) | Coordinating data packet processing between kernel space and user space | |
CN108900499B (zh) | 信息处理方法及装置、存储介质、电子装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40044548 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |