CN112929277A - 一种报文处理方法及装置 - Google Patents
一种报文处理方法及装置 Download PDFInfo
- Publication number
- CN112929277A CN112929277A CN201911245095.2A CN201911245095A CN112929277A CN 112929277 A CN112929277 A CN 112929277A CN 201911245095 A CN201911245095 A CN 201911245095A CN 112929277 A CN112929277 A CN 112929277A
- Authority
- CN
- China
- Prior art keywords
- message
- address
- service request
- processing
- server
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 35
- 238000012545 processing Methods 0.000 claims abstract description 501
- 238000000034 method Methods 0.000 claims abstract description 59
- 230000008569 process Effects 0.000 claims abstract description 41
- 230000004044 response Effects 0.000 claims description 100
- 238000004590 computer program Methods 0.000 claims description 12
- 238000004148 unit process Methods 0.000 claims description 4
- 238000004891 communication Methods 0.000 abstract description 32
- 238000002955 isolation Methods 0.000 abstract description 8
- 230000006870 function Effects 0.000 description 21
- 238000013461 design Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 7
- 238000013519 translation Methods 0.000 description 7
- 230000009471 action Effects 0.000 description 5
- 230000003993 interaction Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- 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
- H04L61/2521—Translation architectures other than single NAT servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
一种报文处理方法及装置,涉及通信领域,解决了NAT设备处理同一会话中不同方向的报文所导致的不同处理核之间数据的隔离性能差的问题。该报文处理方法应用于中继设备,该中继设备包括第一处理核和第二处理核。该报文处理方法包括:根据客户端发送的第一业务请求报文的源地址和目的地址,确定第一处理核;根据预设策略确定服务端,并将第一业务请求报文的源地址修改为中继设备的第二地址,目的地址修改为服务端的地址,得到第二业务请求报文;根据第二业务请求报文的源地址和目的地址,确定第二处理核;将包括客户端的地址和服务端的地址的会话信息分别存储于第一处理核和第二处理核,其中,客户端和服务端对应;向服务端发送第二业务请求报文。
Description
技术领域
本申请涉及通信领域,尤其涉及一种报文处理方法及装置。
背景技术
网络设备通过多核的中央处理单元(central processing unit,CPU)对报文软转发时,通过网络设备中网卡的接收端扩展(receive side scaling,RSS)技术计算报文的哈希值。然后,网络设备根据网卡计算出的哈希值,确定处理该报文的处理核,并采用确定出的处理核处理该报文。
当网络设备为网络地址转换(network address translation,NAT)设备时,该NAT设备通常会修改所接收到的报文的地址。因此,对于同一会话中不同方向的报文(例如:来自客户端的请求报文和服务端的响应报文)而言,NAT设备确定出的处理核可能不同。每次接收到所述会话中的报文时,NAT设备的处理核与处理核之间均需交互,以确定所述报文的地址转换规则,进而实现该报文的转发。这样的话,NAT设备中不同处理核之间数据的隔离性能被破坏。
发明内容
本申请提供了一种报文处理方法及装置,用于解决NAT设备处理同一会话中不同方向的报文所导致的不同处理核之间数据的隔离性能差的问题。
为达上述目的,本申请提供如下技术方案:
第一方面,本申请提供了一种报文处理方法,该报文处理方法应用于包括第一处理核和第二处理核的报文处理装置中,并且该报文处理装置分别与客户端和服务端连接通信。该报文处理方法包括:
报文处理装置接收客户端发送的第一业务请求报文,第一业务请求报文的源地址是客户端的地址,目的地址是上述报文处理装置的第一地址。这里,第一地址为报文处理装置在公用网络中的地址。报文处理装置根据该第一业务请求报文的源地址和目的地址,确定报文处理装置的第一处理核处理该第一业务请求报文。然后,报文处理装置根据预设策略确定与客户端通信的服务端,并将第一业务请求报文的源地址修改为报文处理装置的第二地址,目的地址修改为上述确定的服务端的地址,从而得到第二业务请求报文。这里,第二地址为报文处理装置在私有网络中的地址。报文处理装置还根据第二业务请求报文的源地址和目的地址,确定第二处理核。报文处理装置将包括上述客户端的地址和上述服务端的地址的会话信息分别存储于第一处理核以及第二处理核,这里,客户端和服务端是对应的。进一步的,报文处理装置向上述确定出的服务端发送第二业务请求报文。
本申请实施例提供的报文处理方法,在首次接收到来自客户端的业务请求报文时,报文处理装置确定通过第一处理核处理该报文,并预先确定出处理该业务请求报文的业务响应报文的第二处理核。然后,报文处理装置在第一处理核的会话列表和第二处理核的会话列表中分别存储会话信息。因此,当报文处理装置接收到业务响应报文,或者再次接收到来自客户端的业务请求报文时,报文处理装置中的处理核之间无需频繁交互,而只需根据会话信息,即可完成报文的处理转发。
结合第一方面,在一种可能的设计方式中,上述“报文处理装置向上述确定出的服务端发送第二业务请求报文”包括:报文处理装置通过第一处理核向上述确定出的服务端发送第二业务请求报文;或者,报文处理装置将第二业务请求报文从第一处理核发送到第二处理核,然后,通过第二处理核向上述确定出的服务端发送第二业务请求报文。
报文处理装置可以通过多种方式将第二业务请求报文发送至服务端,以便服务端生成业务响应报文,以作为业务请求报文的回应。
结合第一方面,在另一种可能的设计方式中,上述“报文处理装置还根据第二业务请求报文的源地址和目的地址,确定第二处理核”包括:报文处理装置将第二业务请求报文的源地址和目的地址的顺序倒置,并根据倒置后的第二业务请求报文的源地址和目的地址,确定第二处理核。这里,“报文处理装置将第二业务请求报文的源地址和目的地址的顺序倒置”是指,报文处理装置将第二业务请求报文的源地址作为目的地址,将目的地址作为源地址。
将第二业务请求报文的源地址和目的地址的顺序倒置,并根据倒置后的第二业务请求报文的源地址和目的地址确定出的第二处理核,实际上是报文处理装置为第二业务请求报文的响应报文所分配的处理核。这样,报文处理装置就预先确定出了处理第二业务请求报文的响应报文的处理核。
结合第一方面,在另一种可能的设计方式中,报文处理装置还接收上述服务端发送的第一业务响应报文,该第一业务响应报文是服务端根据第二业务请求报文生成的响应报文。这里,第一业务响应报文的源地址是该服务端的地址,目的地址是上述报文处理装置的第二地址。然后,报文处理装置根据第一业务响应报文的源地址和目的地址,确定第二处理核处理该第一业务响应报文。报文处理装置根据该第一业务响应报文的源地址,以及第二处理核的专有内存中存储的会话信息,确定出客户端的地址。报文处理装置将第一业务响应报文的源地址修改为报文处理装置的第一地址,目的地址修改为上述确定出的客户端的地址,从而得到第二业务响应报文。进一步的,报文处理装置通过第二处理核向上述客户端发送第二业务响应报文。
由于第二处理核预先存储了上述客户端和上述服务端的会话信息,因此,当报文处理装置确定第二处理核处理第一业务响应报文时,可以直接根据第一业务响应报文的地址和已存储的会话信息,确定出客户端的地址。然后,报文处理装置修改第一业务响应报文的地址得到第二业务响应报文,并将第二业务响应报文发送至客户端。这样的话,无需报文处理装置中的处理核之间进行交互,报文处理装置也能确定出客户端,并向客户端发送第二业务响应报文。
第二方面,本申请提供一种报文处理装置,该报文处理装置分别与客户端和服务端连接。该报文处理装置包括:接收单元、确定单元、第一处理单元、第二处理单元、存储单元、以及发送单元。
上述接收单元,用于接收客户端发送的第一业务请求报文,第一业务请求报文的源地址是客户端的地址,第一业务请求报文的目的地址是报文处理装置的第一地址。上述确定单元,用于根据第一业务请求报文的源地址和目的地址,确定第一处理单元处理第一业务请求报文。上述确定单元,还用于根据预设策略确定服务端。上述第一处理单元,用于将第一业务请求报文的源地址修改为报文处理装置的第二地址,并将所述第一业务请求报文的目的地址修改为服务端的地址,得到第二业务请求报文。上述确定单元,还用于根据上述第一处理单元得到的第二业务请求报文的源地址和目的地址,确定第二处理单元。上述存储单元,用于将会话信息分别存储于上述确定单元确定出的第一处理单元和第二处理单元。这里,该会话信息包括客户端的地址和服务端的地址,并且客户端和服务端对应。上述发送单元,用于向上述确定单元确定出的服务端发送上述第一处理单元得到的第二业务请求报文。
结合第二方面,在一种可能的设计方式中,上述第一处理单元可以是报文处理装置的第一处理核,上述第二处理单元可以是报文处理装置的第二处理核。
结合第二方面,在另一种可能的设计方式中,上述发送单元具体用于:
通过上述确定单元确定出的第一处理单元发送上述处第一理单元得到的第二业务请求报文,或者,将上述第一处理单元得到的第二业务请求报文从上述确定单元确定出的第一处理单元发送到上述确定单元确定出的第二处理单元,并通过该第二处理单元发送第二业务请求报文。
结合第二方面,在另一种可能的设计方式中,上述确定单元具体用于:将第二业务请求报文的源地址和目的地址倒置,并根据倒置后的第二业务请求报文的源地址和目的地址,确定第二处理单元。
结合第二方面,在另一种可能的设计方式中,上述接收单元,还用于接收服务端发送的第一业务响应报文,该第一业务响应报文为服务端根据第二业务请求报文生成的,第一业务响应报文的源地址是服务端的地址,第一业务响应报文目的地址是报文处理装置的第二地址。上述确定单元,还用于根据第一业务响应报文的源地址和目的地址,确定第二处理单元处理第一业务响应报文。上述第二处理单元,用于根据第一业务响应报文的源地址,以及第二处理单元存储的会话信息,获取客户端的地址。上述第二处理单元,还用于将第一业务响应报文的源地址修改为报文处理装置的第一地址,以及将第一业务响应报文的目的地址修改为上述第二处理单元单元获取的客户端的地址,得到第二业务响应报文。上述发送单元,还用于通过上述确定单元确定出的第二处理单元向客户端发送上述第二处理单元得到的第二业务响应报文。
第三方面,本申请提供一种报文处理装置,该报文处理装置包括存储器和一个或多个处理器,并且存储器和处理器耦合。上述存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令,当计算机指令被上述报文处理装置执行时,使得上述报文处理装置执行如第一方面及其任一种可能的设计方式所述的报文处理方法。
第四方面,本申请提供一种芯片系统,该芯片系统应用于报文处理装置;该芯片系统包括一个或多个接口电路和一个或多个处理器;该接口电路和处理器通过线路互联;该接口电路用于从报文处理装置的存储器接收信号,并向处理器发送该信号。该信号包括存储器中存储的计算机指令,当处理器执行该计算机指令时,报文处理装置执行如第一方面及其任一种可能的设计方式所述的报文处理方法。
第五方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当该计算机指令在报文处理装置上运行时,使得报文处理装置实现如第一方面及其任一种可能的设计方式所述的报文处理方法。
第六方面,本申请提供一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行如第一方面及其任一种可能的设计方式所述的报文处理方法。
本申请中第二方面到第六方面及其各种实现方式的具体描述,可以参考第一方面及其各种实现方式中的详细描述;并且,第二方面到第六方面及其各种实现方式的有益效果,可以参考第一方面及其各种实现方式中的有益效果分析,此处不再赘述。
在本申请中,上述报文处理装置的名字对设备或功能模块本身不构成限定,在实际实现中,这些设备或功能模块可以以其他名称出现。只要各个设备或功能模块的功能和本申请类似,属于本申请权利要求及其等同技术的范围之内。
本申请的这些方面或其他方面在以下的描述中会更加简明易懂。
附图说明
图1为本申请实施例提供的报文处理装置的硬件结构示意图一;
图2为本申请实施例提供的报文处理装置的硬件结构示意图二;
图3为本申请实施例提供的一种通信系统示意图一;
图4为本申请实施例提供的一种通信系统示意图二;
图5为本申请实施例提供的一种报文处理方法的流程示意图;
图6为本申请实施例提供的报文处理装置的结构示意图;
图7为本申请实施例提供的一种芯片系统的结构示意图;
图8为本申请实施例提供的计算机程序产品的结构示意图。
具体实施方式
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在本申请的实施例中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。
在实际应用中,为了解决NAT设备在处理同一会话中不同方向的报文时,造成的处理核之间数据的隔离性能差的问题,通常会为NAT设备设置一个专用的分发器。可以通过以下两种方式实现:
方式一、将NAT设备中的某一个处理核(例如处理核1)设置为专用的分发器,同时,处理核1保存发送报文的客户端和服务端的对应关系。当客户端发送报文到NAT设备,NAT设备经由网卡将该报文发送到处理核1。接着,处理核1根据所述客户端和所述服务端的对应关系确定处理该报文的处理核,NAT设备通过确定出的处理核对该报文做地址转换处理。这样,NAT设备对来自同一个会话不同方向的报文可以采用同一个处理核处理,从而避免了在同一会话过程中,不同处理核之间需要频繁交互以确定所述报文的地址转换规则,从而造成的数据隔离性能差的问题。
方式二、将NAT设备的物理网卡虚拟为多张虚拟网卡,每张虚拟网卡分配一个网际互连协议(internet protocol,IP)地址,且每张虚拟网卡唯一对应NAT设备的一个处理核。此外,用户还需要为NAT设备增设一个交换机。这样,在同一个会话中,交换机可以根据客户端向NAT设备发送的业务请求报文的目的虚拟网卡的IP地址,以及服务端向NAT设备发送的业务响应报文的目的虚拟网卡的IP地址,将所述业务请求报文和所述业务响应报文分配至NAT设备的同一个处理核,并通过该处理核对所述业务请求报文和所述业务响应报文分别进行地址转换处理。这样,也可以解决同一会话过程中,不同处理核之间需要频繁交互以确定所述报文的地址转换规则,从而造成的数据隔离性能差的问题。
然而,当采用上述方式转发报文时,由于引入了专用的分发器,因此,报文在转发过程中步骤增多,从而导致报文转发效率低下。此外,上述报文转发方式都没有用到网卡的RSS技术,并且,采用方式一的方法需要耗费大量IP,采用方式二的方法需要增加额外的设备,因此上述报文转发方式都提高了报文转发的成本。
基于此,本申请实施例提供一种报文处理方法及装置,在首次接收到来自客户端的业务请求报文时,报文处理装置确定通过第一处理核处理该业务请求报文。并且,报文处理装置预先确定出处理该业务请求报文的响应报文(响应报文是指服务器根据上述业务请求报文生成的业务响应报文)的第二处理核。然后,报文处理装置在第一处理核的会话列表和第二处理核的会话列表中分别存储会话信息。因此,当报文处理装置后续接收到业务响应报文,或者再次接收到来自客户端的业务请求报文时,报文处理装置中的处理核之间无需频繁交互,而只需根据会话信息即可完成报文的转发。因此,本申请实施例提供的报文处理方法,不仅解决了NAT设备转发同一会话中来自不同方向的报文所导致的不同处理核之间数据的隔离性能差的问题,还充分的利用了网卡的RSS技术。
本申请实施例提供的报文处理方法可以通过物理机或虚拟机实现。本申请实施例提供的报文处理装置可以是网关、交换机等中继设备,也可以是转发设备组,该转发设备组可以由多台物理机或多台虚拟机构成。本申请实施例提供的报文处理装置还可以是其他任一能够实现上述报文处理方法的设备,本申请实施例对此不作限定。
上述报文处理装置可以是NAT设备,该NAT设备可以为全地址转换(fulldestination network address translation,fullNAT)设备,可以为源网络地址转换(sourcedestination network address translation,SNAT)设备,还可以为目标地址转换(destination network address translation,DNAT)设备。
参考图1,图1示出了本申请实施例中的报文处理装置10的一种硬件结构。如图1所示,报文处理装置10包括处理器11、存储器12、通信接口13、总线14。处理器11、存储器12以及通信接口13之间可以通过总线14连接。
处理器11是报文处理装置10的控制中心,可以是一个通用中央处理单元(centralprocessing unit,CPU),也可以是其他通用处理器等。其中,通用处理器可以是微处理器或者是任何常规的处理器等。作为一个示例,处理器11可以包括一个或多个CPU,例如图1中所示的CPU 0和CPU 1。
处理器11中集成有一个或多个处理核,多个处理核可以并行的处理多个任务。
示例性的,如图2所示,处理器11包括4个处理核:处理核0、处理核1、处理核2、处理核3。
存储器12可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasable programmable read-only memory,EEPROM)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
一种可能的实现方式中,存储器12可以独立于处理器11存在。存储器12可以通过总线14与处理器11相连接,用于存储数据、指令或者程序代码。处理器11调用并执行存储器12中存储的指令或程序代码时,能够实现本申请实施例提供的报文处理方法。
另一种可能的实现方式中,存储器12也可以和处理器11集成在一起。
通信接口13,用于报文处理装置10与其他设备(如客户端、服务器等)通过通信网络连接,所述通信网络可以是以太网,无线接入网(radio access network,RAN),无线局域网(wireless local area networks,WLAN)等。通信接口13可以包括用于接收数据的接收单元,以及用于发送数据的发送单元。
通信接口13可以是网卡,网卡可以是按照支持不同计算机的标准以太网卡和PCMCIA网卡,也可以是按照不同传输速率划分的10Mbps网卡、100Mbps网卡、10/100Mbps自适应网卡和1000Mbps网卡,还可以是按照总线类型划分的ISA、EISA、PCI等。本申请实施例对此不作限定。本申请实施例中的网卡配置RSS技术,可以高效的将报文分发至报文处理装置10中不同的处理核进行处理。
总线14,可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component Interconnect,PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图1中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
需要指出的是,图1中示出的结构并不构成对该报文处理装置的限定,除图1所示部件之外,该报文处理装置10可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
参考图3,图3示出了本申请实施例提供的一种通信系统。该通信系统包括报文处理装置10、与报文处理装置10通过公用网络连接的至少一个客户端(例如图3中示出的客户端31和客户端32),以及与报文处理装置10通过私有网络连接的至少一个服务端(例如图3中示出的服务器33和服务器34)。
上述客户端和服务器均可以是通用计算机。上述公用网络是指网络服务提供商建设,供公共用户使用的通信网络。上述私有网络是区别于公用网络的内部网络,例如可以是局域网、或者集团内网等。
为了便于理解,本申请实施例以报文处理装置10为fullNAT设备,该报文处理装置10包括四个处理核:处理核0、处理核1、处理核2、处理核3,通信接口为网卡131,客户端为客户端31,服务端为服务器33为例进行说明。结合图3,图4示出了该通信系统的一种结构。
下面结合附图对本申请实施例提供的报文处理方法进行描述。
结合图4,图5示出了本申请施例提供的报文处理方法流程示意图。
下述本申请实施例中描述的网卡执行某一动作,具体是指报文处理装置通过网卡执行该动作。下述本申请实施例中描述的处理核执行某一动作,具体是指报文处理装置通过处理核执行该动作。
结合图4,如图5所示,本申请施例提供的报文处理方法包括以下步骤:
S501、客户端31向报文处理装置10发送第一业务请求报文。
客户端31通过公用网络向报文处理装置10发送第一业务请求报文。第一业务请求报文的源地址为客户端31的地址,目的地址为报文处理装置10的第一地址。报文处理装置10的第一地址为报文处理装置10在公用网络中的地址。
相应的,报文处理装置10通过网卡131接收来自客户端31的第一业务请求报文。
S502、报文处理装置10根据第一业务请求报文的源地址和目的地址,确定第一处理核。
报文处理装置10的网卡131接收到第一业务请求报文后,根据第一业务请求报文的源地址和目的地址,确定第一处理核。
具体的,报文处理装置10通过网卡131配置的RSS技术,根据第一业务请求报文源地址和目的地址,计算哈希值,并根据计算出的哈希值确定第一处理核为处理第一业务请求报文的处理核。
在一种实现方式中,网卡131可以在接收到第一业务请求报文后,提取第一业务请求报文中的五元组信息(简称五元组A,对应于本申请实施例中的第一业务请求报文的源地址和目的地址)。五元组包括:源IP地址、源端口(port)、目的IP地址,目的端口(port),以及四层协议类型(传输控制协议(transmission control protocol,TCP),用户数据报协议(user datagram protocol,UDP))。
示例性的,如表1所示,五元组A的源IP地址为客户端31在公用网络中的IP地址cip,源port为客户端31在公用网络中的端口cport,目的IP地址为报文处理装置10在公用网络中的IP地址vip,目的port为报文处理装置10在公用网络中的端口vport,协议为客户端31和报文处理装置10在公用网络中中通信传输所采用的TCP协议。
表1
源IP地址 | 源port | 目的IP地址 | 目的port | 协议 | |
五元组A | cip | cport | vip | vport | TCP |
网卡131提取到第一业务请求报文的五元组A后,通过配置的哈希函数,并根据五元组A计算哈希值。进一步的,网卡131用计算出的哈希值除以报文处理装置10中处理核的数目,并求余取整得到哈希余数。接着,网卡131根据哈希余数在网卡131的索引中查找,以确定该哈希余数对应的处理核的编号。其中,索引为网卡131预先设置的。例如,如图5所示,报文处理装置10包括4个处理核,因此,索引可以为下述表2所示:
表2
处理核0 | 处理核1 | 处理核2 | 处理核3 | |
哈希余数 | 0 | 1 | 2 | 3 |
例如,若网卡131根据五元组A计算出的哈希值为8.3,报文处理装置10包括4个处理核,则网卡131用哈希值8.3除以处理核的数目4,得到余数0.3。然后,网卡131对余数0.3取整,得到哈希余数0。接着,网卡131查询表2所示的索引,确定哈希余数为0对应的处理核为处理核0。因此,网卡131确定第一处理核为处理核0,并将第一业务请求报文发送至处理核0的接收队列(receive xmit,RX),由处理核0接收并处理第一业务请求报文。
此外,报文处理装置10通过网卡131配置的RSS技术,计算第一业务请求报文的哈希值,并根据计算出的哈希值确定第一处理核为处理第一业务请求报文的处理核的具体过程仅作为示例性说明,并不构成对本申请实施例保护范围的限定。
本申请实施例下面描述中,以第一处理核为图4中的处理核0为例进行说明。
S503、报文处理装置10查询处理核0的会话列表中是否存在客户端31的地址。
报文处理装置10遍历处理核0的会话列表,以确定该会话列表中是否存在客户端31的地址。
需要说明的是,报文处理装置10中的每个处理核在自身的专有内存中存储有会话列表,该会话列表用于记录任一设备经由处理核0处理的会话信息。该会话信息包括客户端的地址,以及与该客户端对应的服务器的地址。
若确定处理核0的会话列表中存在客户端31的地址,则报文处理装置10调用包括客户端31地址的会话信息,并根据该会话信息所指示的服务器,将第一业务请求报文转发给该服务器。
若确定处理核0的会话列表中不存客户端31的地址,则报文处理装置10执行S504,新建包括客户端31的地址的会话信息。
S504、报文处理装置10新建包括客户端31的地址的会话信息。
具体的,报文处理装置10新建包括客户端31的地址的会话信息的过程可以由以下步骤实现:
S5041、报文处理装置10确定五元组B。
报文处理装置10先根据预设策略确定服务器(例如服务器33)。
该预设策略可以是在m个服务器中按序指定服务器33,也可以是将m个服务器中当前负载最低的服务器确定为服务器,本申请实施例对此不作具体限定。其中,m为大于或等于1的正整数。
该预设策略还可以是,第一处理核根据五元组A 计算哈希值,并查询自身存储的服务器索引,以确定哈希值对应的服务器33。服务器索引为第一处理核预先配置的,并且,服务器索引记录了哈希值与服务器的对应关系。
示例性的,服务器索引可以如表2-1所示:
表2-1
服务器11 | 服务器22 | 服务器33 | 服务器44 | |
哈希值 | 1 | 2 | 3 | 4 |
报文处理装置10确定服务器33后,根据报文处理装置10和服务器33在私有网络中的地址,生成五元组B。五元组B指示了在私有网络中,报文处理装置10到服务器33的路径。
示例性的,如表3所示,五元组B的源IP地址为报文处理装置10在私有网络中的IP地址lip,源port为报文处理装置10在私有网络中的端口lport,目的IP地址为服务器33在私有网络中的IP地址sip,目的port为服务器33在私有网络中的端口sport,协议为报文处理装置10和服务器33在私有网络中通信传输所采用的TCP协议。
表3
源IP地址 | 源port | 目的IP地址 | 目的port | 协议 | |
五元组B | lip | lport | sip | sport | TCP |
S5042、报文处理装置10根据五元组B确定五元组C。
具体的,报文处理装置10将五元组B中的源地址信息和目的地址信息倒置,得到五元组C(对应于本申请实施例中的倒置后的第一业务请求报文的源地址和目的地址)。也就是说,五元组C指示了在私有网络中,服务器33到报文处理装置10的路径。
示例性的,如表4所示,五元组C的源IP地址为服务器33在私有网络中的IP地址sip,源port为服务器33在私有网络中的端口sport,目的IP地址为报文处理装置10在私有网络中的IP地址lip,目的port为报文处理装置10在私有网络中的端口lport,协议为报文处理装置10和服务器33在私有网络中通信传输所采用的TCP协议。
表4
源IP地址 | 源port | 目的IP地址 | 目的port | 协议 | |
五元组C | sip | sport | lip | lport | TCP |
S5043、报文处理装置10生成包括客户端31的地址的会话信息。
报文处理装置10生成的会话信息为客户端31和服务器33之间的会话信息,该会话信息包括客户端31的地址和服务器33的地址。
示例性的,上述会话信息可以为:包括客户端31地址的五元组和包括服务器33地址的五元组。
可选的,报文处理装置10生成的会话信息可以包括:五元组A(五元组A的源地址为客户端31的地址)和五元组C(五元组C的源地址为服务器33的地址)。如表5所示,表5中的五元组A可以参考上述表1的描述,表5中的五元组C,可以参考上述表4的描述。
表5
源IP地址 | 源port | 目的IP地址 | 目的port | 协议 | |
五元组A | cip | cport | vip | vport | TCP |
五元组C | sip | sport | lip | lport | TCP |
可选的,报文处理装置10生成的会话信息可以包括:五元组A(五元组A的源地址为客户端31的地址)、五元组B(五元组B的目的地址为服务器33的地址)、以及五元组C(五元组C的源地址为服务器33的地址)。如表6所示,表6中的五元组A可以参考上述表1的描述,表6中的五元组B,可以参考上述表3的描述,表6中的五元组C,可以参考上述表4的描述。
表6
源IP地址 | 源port | 目的IP地址 | 目的port | 协议 | |
五元组A | cip | cport | vip | vport | TCP |
五元组B | lip | lport | sip | sport | TCP |
五元组C | sip | sport | lip | lport | TCP |
可选的,报文处理装置10生成的会话信息可以包括:五元组A(五元组A的源地址为客户端31的地址)、五元组C(五元组C的源地址为服务器33的地址)、以及五元组D,如表7所示。其中,五元组D为报文处理装置10将五元组A的源地址信息和目的地址信息倒置后得到的。五元组D的源IP地址为报文处理装置10在公用网络中的IP地址vip,源port为报文处理装置10在公用网络中的端口vport,目的IP地址为客户端31在公用网络中的IP地址cip,目的port在公用网络中为客户端31的端口cport,协议为客户端31和报文处理装置10在公用网络中通信传输所采用的TCP协议。也就是说,五元组D的目的地址为客户端31的地址,并指示了从报文处理装置10到客户端31的路径。其中,表7中的五元组A可以参考上述表1的描述,表7中的五元组C,可以参考上述表4的描述。
表7
源IP地址 | 源port | 目的IP地址 | 目的port | 协议 | |
五元组A | cip | cport | vip | vport | TCP |
五元组C | sip | sport | lip | lport | TCP |
五元组D | vip | vport | cip | cport | TCP |
可选的,报文处理装置10生成的会话信息可以包括:五元组A(五元组A的源地址为客户端31的地址)、五元组B(五元组B的目的地址为服务器33的地址)、五元组C(五元组C的源地址为服务器33的地址)、以及五元组D(五元组D的目的地址为客户端31的地址)的会话信息。如表8所示,表8中的五元组A可以参考上述表1的描述,表8中的五元组B,可以参考上述表3的描述,表8中的五元组C,可以参考上述表4的描述,表8中的五元组D,可以参考上述表7的描述。
表8
源IP地址 | 源port | 目的IP地址 | 目的port | 协议 | |
五元组A | cip | cport | vip | vport | TCP |
五元组B | lip | lport | sip | sport | TCP |
五元组C | sip | sport | lip | lport | TCP |
五元组D | vip | vport | cip | cport | TCP |
S505、报文处理装置10根据五元组C确定第二处理核。
报文处理装置10根据五元组C确定第二处理核的具体过程,可以参考上述S502中,报文处理装置10确定处理核0的过程,此处不再详细赘述。
其中,第二处理核为报文处理装置10中处理业务响应报文的处理核。该业务响应报文是指,报文处理装置10向服务器33发送业务请求报文后,服务器33根据业务请求报文生成并发送至报文处理装置10的业务响应报文。
需要说明的是,在本申请实施例中,报文处理装置10的每个处理核配置的哈希函数和通信接口(如网卡131)配置的哈希函数相同。
本申请实施例下面描述中,以第二处理核为图4中的处理核3为例进行说明。
S506、报文处理装置10在处理核0和处理核3分别存储新建的会话信息。
报文处理装置10将上述新建的会话信息存储在处理核0的专有内存中,并通过处理核0将该会话信息发送到处理核3,并存储于处理核3的专有内存中。
可选的,报文处理装置10可以为存储的会话信息标记生存周期。当会话信息的生存周期结束时,报文处理装置删除该会话信息,或将该会话信息置为无效。从而有效地提高了报文处理装置10的内存的利用率。其中,该生存周期可以根据实际使用需求设定,本申请实施例对此不作限定。
可选的,报文处理装置10在预设时长内没有调用存储的会话信息,则当该预设时长结束时,报文处理装置10删除该会话信息,或将该会话信息置为无效。从而有效地提高了报文处理装置10的内存的利用率。其中,该预设时长可以根据实际使用需求设定,本申请实施例对此不作限定。
可选的,报文处理装置10还可以在接收到来自客户端31或服务器33的挥手信息时,删除与该客户端31或服务器33相关的会话信息,或者,将该会话信息置为无效。从而有效地提高了报文处理装置10的内存的利用率。其中,挥手信息是指该客户端31与报文处理装置10之间的通信连接断开时,或者,服务器33与报文处理装置10的通信连接断开时,报文处理装置10接收到的信息。
S507、报文处理装置10向服务器33发送第二业务请求报文。
报文处理装置10通过处理核0修改第一业务请求报文的源地址和目的地址,将第一业务请求报文的源地址修改为报文处理装置10的第二地址,目的地址修改为服务器33的地址,得到第二业务请求报文。其中,第二地址为报文处理装置10在私有网络中的地址。也就是说,报文处理装置10通过处理核0修改第一业务请求报文的源地址和目的地址,修改为五元组B。
随后,报文处理装置10可以通过以下任一种方式向服务器33发送第二业务请求报文:
方式一、处理核0向服务器33发送第二业务请求报文。具体的,报文处理装置10可以通过处理核0的发送队列(transmit xmit,TX),将第二业务请求报文发送至网卡131,并由网卡131根据五元组B,将第二业务请求报文发送至服务器33。
方式二、报文处理装置10还可以将上述新建的会话信息添加至第二业务请求报文,然后通过处理核0将第二业务请求报文发送至处理核3。接着,处理核3向服务器33发送第二业务请求报文。
具体的,报文处理装置10可以通过处理核3的发送队列,将第二业务请求报文发送至网卡131,并由网卡131根据五元组B,将第二业务请求报文发送至服务器33。
方式三、报文处理装置10还可以通过处理核0先将上述新建的会话信息发送至处理核3,再将第二业务请求报文发送至处理核3。接着,处理核3向服务器33发送第二业务请求报文。
具体的,报文处理装置10可以通过处理核3的发送队列,将第二业务请求报文发送至网卡131,并由网卡131根据五元组B,将第二业务请求报文发送至服务器33。
当然,若报文处理装置10通过方式二或方式三向服务器33发送第二业务请求报文时,报文处理装置10还可以通过处理核0将会话信息添加至第一业务请求报文发送至处理核3,或者将会话信息和第一业务请求报文分别发送至处理核3。然后,报文处理装置10通过处理核3修改第一业务请求报文的源地址和目的地址,以得到第二业务请求报文。本申请实施例对此不作限定。
至此,本申请实施例提供了一种报文处理方法,在首次接收到来自客户端的业务请求报文时,报文处理装置确定通过第一处理该数据包,并预先确定出处理该业务请求报文的响应报文的第二处理核。然后,报文处理装置在第一处理核的会话列表和第二处理核的会话列表中分别存储会话信息。因此,当报文处理装置后续接收到该业务请求报文的响应报文,或者再次接收到来自客户端的业务请求报文时,报文处理装置根据会话信息,即可完整数据包的转发。
进一步的,报文处理装置10向服务器33发送第二业务请求报文后,服务器33可能向报文处理装置发送响应报文。下面对这种情况进行描述。
S508(可选的)、服务器33向报文处理装置10发送第一业务响应报文。
其中,第一业务响应报文为服务器33接收到第二业务请求报文之后,根据第二业务请求报文生成的响应报文。
由于报文处理装置10向服务器33发送的第二业务请求报文的五元组信息为五元组B,因此,服务器33向报文处理装置10发送第一业务响应报文时,将五元组B中的源地址信息和目的地址信息倒置,得到五元组C,并将第一业务响应报文的源地址和目的地址修改为五元组C。
然后,服务器33根据五元组C向报文处理装置10发送第一业务响应报文。相应的,报文处理装置10通过网卡131接收来自服务器33的第一业务响应报文。
S509(可选的)、报文处理装置10根据预先存储的会话信息,确定客户端31,并向客户端31发送第二业务响应报文。
根据上述S505描述可知,报文处理装置10根据五元组C可以确定出第二处理核(例如图4中的处理核3),并且报文处理装置10和通信接口(例如网卡131)配置的哈希函数相同。因此,当报文处理装置10通过网卡131接收到第一业务响应报文后,提取到的五元组信息为五元组C时,网卡131能够根据五元组C确定出处理核3为处理第一业务响应报文的处理核。进一步的,报文处理装置10通过网卡131将第一业务响应报文发送至处理核3的接收队列,由处理核3接收并处理第一业务响应报文。
由于在S506,报文处理装置10在处理核3的专有内存中存储了包括服务器33的地址的会话信息,并且该会话信息中还包括与服务器33对应的客户端31的地址。因此,报文处理装置10通过处理核3将第一业务响应报文的中的源地址修改为报文处理装置10的第一地址,目的地址修改为客户端31的地址,得到第二业务响应报文。然后,报文处理装置10通过处理核3的发送队列,将第二业务请求报文发送至网卡131,并由网卡131将第一业务响应报文发送至客户端31。
当报文处理装置10接收到来自客户端31的第三业务请求报文时,第三业务请求报文的源地址为客户端31的地址,目的地址为报文处理装置10的第一地址。因此,报文处理装置10提取的五元组信息仍为五元组A。也就是说,通过报文处理装置10配置的RSS技术,第三业务请求报文仍然被分配至第一处理核(例如处理核0)处理。由于处理核0已经存储了包括客户端31的地址的会话信息,且该会话信息还包括与客户端31对应的服务器33的地址。因此,报文处理装置10通过处理核0,并根据会话信息,修改第三业务请求报文的源地址和目的地址,得到第四业务请求报文,并发送至服务器33。
综上所述,本申请实施例提供的报文处理方法,在首次接收到来自客户端的业务请求报文时,报文处理装置确定通过第一处理核处理该数据包,并预先确定出处理该业务请求报文的业务响应报文的第二处理核。然后,报文处理装置在第一处理核的会话列表和第二处理核的会话列表中分别存储会话信息。因此,当报文处理装置接收到业务响应报文,或者再次接收到来自客户端的业务请求报文时,报文处理装置中的处理核之间无需频繁交互,而只需根据会话信息,即可完成数据包的转发。本申请实施例提供的报文处理方法,不仅解决了NAT设备转发同一会话中不同方向的报文所导致的不同处理核之间数据的隔离性能差的问题,还充分的利用了网卡的RSS技术。不仅提高了数据包的转发效率,还节约了成本。
上述主要从方法的角度对本申请实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对报文处理装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
如图6所示,为本申请实施例提供的一种报文处理装置的结构示意图。报文处理装置用于业务报文的处理及转发,例如用于执行图5所示的方法。其中,报文处理装置分别与客户端和服务端连接,报文处理装置可以包括接收单元61、确定单元62、第一处理单元63a、第二处理单元63b、存储单元64、以及发送单元65。
接收单元61,用于接收客户端发送的第一业务请求报文,第一业务请求报文的源地址是客户端的地址,第一业务请求报文的目的地址是报文处理装置的第一地址。确定单元62,用于根据上述第一业务请求报文的源地址和目的地址,确定第一处理单元63a处理第一业务请求报文。确定单元62。还用于根据预设策略确定服务端。第一处理单元63a,用于将上述第一业务请求报文的源地址修改为报文处理装置的第二地址,以及将上述第一业务请求报文的目的地址修改为服务端的地址,得到第二业务请求报文。确定单元62,还用于根据第一处理单元63a得到的第二业务请求报文的源地址和目的地址,确定第二处理单元63b。存储单元64,用于将会话信息分别存储于确定单元62确定出的第一处理单元63a和第二处理单元63b,该会话信息包括客户端的地址和服务端的地址,该客户端和该服务端对应。发送单元65,用于向确定单元62确定出的服务端发送第一处理单元63a得到的第二业务请求报文。
例如,结合图5,接收单元61可以用于响应S501。确定单元62可以用于执行S502,也可以用于执行S5041中确定服务端的过程,还可以用于执行S505。第一处理单元63a可以用于执行S507中得到第二业务请求报文的过程。存储单元64可以用于执行S506。发送单元65可以用于执行S507中的发送第二业务请求报文的过程。
可选的,发送单元65具体用于:通过第一处理单元63a发送第二业务请求报文;或者,将第二业务请求报文从第一处理单元63a发送到第二处理单元63b;并通过第二处理单元63b发送第二业务请求报文。
例如,结合图5,发送单元65可以用于执行S507中发送第二业务请求报文的过程。
可选的,确定单元62具体用于:将第二业务请求报文的源地址和目的地址倒置,并根据倒置后的第二业务请求报文的源地址和目的地址,确定第二处理单元63b。
例如,结合图5,确定单元62可以用于执行S505。
可选的,接收单元61,还用于接收服务端发送的第一业务响应报文,该第一业务响应报文为服务端根据第二业务请求报文生成的,第一业务响应报文的源地址是该服务端的地址,第一业务响应报文目的地址是报文处理装置的第二地址。确定单元62,还用于根据第一业务响应报文的源地址和目的地址,确定第二处理单元63b处理第一业务响应报文。第二处理单元63b,用于根据第一业务响应报文的源地址,以及第二处理单元63b存储的会话信息,获取客户端的地址。第二处理单元63b,还用于将第一业务响应报文的源地址修改为报文处理装置的第一地址,以及将第一业务响应报文的目的地址修改为第二处理单元63b获取到的客户端的地址,得到第二业务响应报文。发送单元65,还用于通过确定单元62确定出的第二处理单元63b向客户端发送第二业务响应报文。
例如,结合图5,接收单元61可以用于响应S508。确定单元62可以用于执行S509中确定客户端地址的过程。第二处理单元63b可以用于执行S503,以及S509中得到第二业务响应报文的过程。发送单元65可以用于执行S509中发送第二业务响应报文的过程。
可选的,上述第一处理单元63a可以是报文处理装置的第一处理核,上述第二处理单元63b可以是报文处理装置的第二处理核。
作为一个示例,结合图1,报文处理装置中的接收单元61和发送单元65实现的功能与图1中的通信接口13的功能相同。确定单元62、第一处理单元63a、以及第二处理单元63b实现的功能与图1中处理器11的功能相同。存储单元64实现的功能和图1中的存储器12的功能相同。
本申请实施例还提供一种芯片系统,如图7所示,该芯片系统包括至少一个处理器71和至少一个接口电路72。处理器71和接口电路72可通过线路互联。例如,接口电路72可用于从其它装置(例如报文处理装置的存储器)接收信号。又例如,接口电路72可用于向其它装置(例如处理器71)发送信号。示例性的,接口电路72可读取存储器中存储的指令,并将该指令发送给处理器71。当所述指令被处理器71执行时,可使得报文处理装置执行上述实施例中的各个步骤。当然,该芯片系统还可以包含其他分立器件,本申请实施例对此不作具体限定。
本申请另一实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当指令在报文处理装置上运行时,该报文处理装置执行上述方法实施例所示的方法流程中报文处理装置执行的各个步骤。
在一些实施例中,所公开的方法可以实施为以机器可读格式被编码在计算机可读存储介质上的或者被编码在其它非瞬时性介质或者制品上的计算机程序指令。
图8示意性地示出本申请实施例提供的计算机程序产品的概念性局部视图,所述计算机程序产品包括用于在计算设备上执行计算机进程的计算机程序。
在一个实施例中,计算机程序产品是使用信号承载介质80来提供的。所述信号承载介质80可以包括一个或多个程序指令,其当被一个或多个处理器运行时可以提供以上针对图5描述的功能或者部分功能。因此,例如,参考图5中S501~S509的一个或多个特征可以由与信号承载介质80相关联的一个或多个指令来承担。此外,图8中的程序指令也描述示例指令。
在一些示例中,信号承载介质80可以包含计算机可读介质81,诸如但不限于,硬盘驱动器、紧密盘(CD)、数字视频光盘(DVD)、数字磁带、存储器、只读存储记忆体(read-onlymemory,ROM)或随机存储记忆体(random access memory,RAM)等等。
在一些实施方式中,信号承载介质80可以包含计算机可记录介质82,诸如但不限于,存储器、读/写(R/W)CD、R/W DVD、等等。
在一些实施方式中,信号承载介质80可以包含通信介质83,诸如但不限于,数字和/或模拟通信介质(例如,光纤电缆、波导、有线通信链路、无线通信链路、等等)。
信号承载介质80可以由无线形式的通信介质83(例如,遵守IEEE 802.11标准或者其它传输协议的无线通信介质)来传达。一个或多个程序指令可以是,例如,计算机可执行指令或者逻辑实施指令。
在一些示例中,诸如针对图5描述的报文处理装置可以被配置为,响应于通过计算机可读介质81、计算机可记录介质82、和/或通信介质83中的一个或多个程序指令,提供各种操作、功能、或者动作。
应该理解,这里描述的布置仅仅是用于示例的目的。因而,本领域技术人员将理解,其它布置和其它元素(例如,机器、接口、功能、顺序、和功能组等等)能够被取而代之地使用,并且一些元素可以根据所期望的结果而一并省略。另外,所描述的元素中的许多是可以被实现为离散的或者分布式的组件的、或者以任何适当的组合和位置来结合其它组件实施的功能实体。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机执行指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digitalsubscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
以上所述,仅为本申请的具体实施方式。熟悉本技术领域的技术人员根据本申请提供的具体实施方式,可想到变化或替换,都应涵盖在本申请的保护范围之内。
Claims (12)
1.一种报文处理方法,其特征在于,所述报文处理方法应用于报文处理装置,所述报文处理装置包括第一处理核和第二处理核,所述报文处理装置分别与客户端和服务端连接,所述报文处理方法包括:
接收所述客户端发送的第一业务请求报文,所述第一业务请求报文的源地址是所述客户端的地址,所述第一业务请求报文的目的地址是所述报文处理装置的第一地址;
根据所述第一业务请求报文的源地址和目的地址,确定所述第一处理核处理所述第一业务请求报文;
根据预设策略确定所述服务端,并将所述第一业务请求报文的源地址修改为所述报文处理装置的第二地址,以及将所述第一业务请求报文的目的地址修改为所述服务端的地址,得到第二业务请求报文;
根据所述第二业务请求报文的源地址和目的地址,确定所述第二处理核;
将会话信息分别存储于所述第一处理核和所述第二处理核,所述会话信息包括所述客户端的地址和所述服务端的地址,所述客户端和所述服务端对应;
向所述服务端发送所述第二业务请求报文。
2.根据权利要求1所述的报文处理方法,其特征在于,所述向所述服务端发送所述第二业务请求报文,包括:
通过所述第一处理核发送所述第二业务请求报文;
或者,
将所述第二业务请求报文从所述第一处理核发送到所述第二处理核;通过所述第二处理核发送所述第二业务请求报文。
3.根据权利要求1或2所述的报文处理方法,其特征在于,所述根据所述第二业务请求报文的源地址和目的地址,确定所述第二处理核,包括:
将所述第二业务请求报文的源地址和目的地址倒置,并根据倒置后的第二业务请求报文的源地址和目的地址,确定所述第二处理核。
4.根据权利要求1-3中任意一项所述的方法,其特征在于,所述报文处理方法还包括:
接收所述服务端发送的第一业务响应报文,所述第一业务响应报文为所述服务端根据所述第二业务请求报文生成,所述第一业务响应报文的源地址是所述服务端的地址,所述第一业务响应报文目的地址是所述报文处理装置的第二地址;
根据所述第一业务响应报文的源地址和目的地址,确定所述第二处理核处理所述第一业务响应报文;
根据所述第一业务响应报文的源地址,以及所述第二处理核存储的会话信息,确定所述客户端的地址;
将所述第一业务响应报文的源地址修改为所述报文处理装置的第一地址,以及将所述第一业务响应报文的目的地址修改为所述客户端的地址,得到第二业务响应报文;
通过所述第二处理核向所述客户端发送所述第二业务响应报文。
5.一种报文处理装置,其特征在于,所述报文处理装置分别与客户端和服务端连接,所述报文处理装置包括:接收单元、确定单元、第一处理单元、第二处理单元、存储单元、以及发送单元;
所述接收单元,用于接收所述客户端发送的第一业务请求报文,所述第一业务请求报文的源地址是所述客户端的地址,所述第一业务请求报文的目的地址是所述报文处理装置的第一地址;
所述确定单元,用于根据所述第一业务请求报文的源地址和目的地址,确定所述第一处理单元处理所述第一业务请求报文;
所述确定单元,还用于根据预设策略确定所述服务端;
所述第一处理单元,用于将所述第一业务请求报文的源地址修改为所述报文处理装置的第二地址,以及将所述第一业务请求报文的目的地址修改为所述服务端的地址,得到第二业务请求报文;
所述确定单元,还用于根据所述第一处理单元得到的所述第二业务请求报文的源地址和目的地址,确定所述第二处理单元;
所述存储单元,用于将会话信息分别存储于所述确定单元确定出的所述第一处理单元和所述第二处理单元,所述会话信息包括所述客户端的地址和所述服务端的地址,所述客户端和所述服务端对应;
所述发送单元,用于向所述确定单元确定出的所述服务端发送所述第一处理单元得到的所述第二业务请求报文。
6.根据权利要求5所述的报文处理装置,其特征在于,所述发送单元具体用于:
通过所述第一处理单元发送所述第二业务请求报文;
或者,
将所述第二业务请求报文从所述第一处理单元发送到所述第二处理单元;通过所述第二处理单元发送所述第二业务请求报文。
7.根据权利要求5或6所述的报文处理装置,其特征在于,所述确定单元具体用于:
将所述第二业务请求报文的源地址和目的地址倒置,并根据倒置后的第二业务请求报文的源地址和目的地址,确定所述第二处理单元。
8.根据权利要求5-7中任意一项所述的报文处理装置,其特征在于,
所述接收单元,还用于接收所述服务端发送的第一业务响应报文,所述第一业务响应报文为所述服务端根据所述第二业务请求报文生成,所述第一业务响应报文的源地址是所述服务端的地址,所述第一业务响应报文的目的地址是所述报文处理装置的第二地址;
所述确定单元,还用于根据所述第一业务响应报文的源地址和目的地址,确定所述第二处理单元处理所述第一业务响应报文;
所述第二处理单元,用于根据所述第一业务响应报文的源地址,以及所述第二处理单元存储的会话信息,获取所述客户端的地址;
所述第二处理单元,还用于将所述第一业务响应报文的源地址修改为所述报文处理装置的第一地址,以及将所述第一业务响应报文的目的地址修改为所述第二处理单元获取的所述客户端的地址,得到第二业务响应报文;
所述发送单元,还用于通过所述确定单元确定出的所述第二处理单元向所述客户端发送所述第二业务响应报文。
9.一种报文处理装置,其特征在于,包括:存储器和一个或多个处理器;所述存储器和所述处理器耦合;
所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述计算机指令被所述报文处理装置执行时,使得所述报文处理装置执行如权利要求1-4中任一项所述的报文处理方法。
10.一种芯片系统,其特征在于,所述芯片系统应用于报文处理装置;所述芯片系统包括一个或多个接口电路和一个或多个处理器;
所述接口电路和所述处理器通过线路互联;所述接口电路用于从所述报文处理装置的存储器接收信号,并向所述处理器发送所述信号,所述信号包括所述存储器中存储的计算机指令;当所述处理器执行所述计算机指令时,所述报文处理装置执行如权利要求1-4中任一项所述的报文处理方法。
11.一种计算机可读存储介质,其特征在于,包括计算机指令,当所述计算机指令在报文处理装置上运行时,使得所述报文处理装置实现如权利要求1-4中任意一项所述的报文处理方法。
12.一种计算机程序产品,其特征在于,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如权利要求1-4中任一项所述的报文处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911245095.2A CN112929277B (zh) | 2019-12-06 | 2019-12-06 | 一种报文处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911245095.2A CN112929277B (zh) | 2019-12-06 | 2019-12-06 | 一种报文处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112929277A true CN112929277A (zh) | 2021-06-08 |
CN112929277B CN112929277B (zh) | 2024-03-05 |
Family
ID=76162071
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911245095.2A Active CN112929277B (zh) | 2019-12-06 | 2019-12-06 | 一种报文处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112929277B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115242711A (zh) * | 2022-07-14 | 2022-10-25 | 天翼云科技有限公司 | 一种报文传输方法及装置 |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103503424A (zh) * | 2010-12-20 | 2014-01-08 | 思杰系统有限公司 | 用于实现多核系统中的连接镜像的系统和方法 |
CN103731356A (zh) * | 2013-12-09 | 2014-04-16 | 福建星网锐捷网络有限公司 | 报文处理方法及装置 |
CN103973573A (zh) * | 2014-05-16 | 2014-08-06 | 杭州华三通信技术有限公司 | 会话备份方法、报文转发方法及其装置 |
CN104539528A (zh) * | 2014-12-31 | 2015-04-22 | 迈普通信技术股份有限公司 | 多核通信设备及其与radius服务器间报文交互方法 |
US20160057031A1 (en) * | 2014-08-19 | 2016-02-25 | Citrix Systems, Inc. | Systems and methods for high volume logging and synchronization for large scale network address translation |
CN105634958A (zh) * | 2015-12-24 | 2016-06-01 | 东软集团股份有限公司 | 基于多核系统的报文转发方法和装置 |
CN106131244A (zh) * | 2016-08-29 | 2016-11-16 | 北京神州绿盟信息安全科技股份有限公司 | 一种报文传送方法及装置 |
CN106302841A (zh) * | 2015-05-18 | 2017-01-04 | 中兴通讯股份有限公司 | 一种运营商级网络地址转换的方法及装置 |
CN106572197A (zh) * | 2015-10-10 | 2017-04-19 | 阿里巴巴集团控股有限公司 | 一种网络地址转换方法、装置及系统 |
CN107079060A (zh) * | 2014-09-09 | 2017-08-18 | 思杰系统有限公司 | 用于运营商级nat优化的系统和方法 |
CN108494623A (zh) * | 2018-03-14 | 2018-09-04 | 东软集团股份有限公司 | 一种网络转发设备的性能测试方法及设备 |
US20180255017A1 (en) * | 2017-03-02 | 2018-09-06 | Cisco Technology, Inc. | Identity-based policy implementation in network address translation (nat) environments |
CN108769257A (zh) * | 2018-06-28 | 2018-11-06 | 新华三信息安全技术有限公司 | 一种服务器切换方法及装置 |
CN109361608A (zh) * | 2018-11-23 | 2019-02-19 | 北京六方领安网络科技有限公司 | 报文处理方法、系统及存储介质 |
CN109525684A (zh) * | 2018-12-11 | 2019-03-26 | 杭州数梦工场科技有限公司 | 报文转发方法和装置 |
CN110177047A (zh) * | 2019-05-27 | 2019-08-27 | 北京字节跳动网络技术有限公司 | 报文发送方法、装置、电子设备和计算机可读存储介质 |
-
2019
- 2019-12-06 CN CN201911245095.2A patent/CN112929277B/zh active Active
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103503424A (zh) * | 2010-12-20 | 2014-01-08 | 思杰系统有限公司 | 用于实现多核系统中的连接镜像的系统和方法 |
CN103731356A (zh) * | 2013-12-09 | 2014-04-16 | 福建星网锐捷网络有限公司 | 报文处理方法及装置 |
CN103973573A (zh) * | 2014-05-16 | 2014-08-06 | 杭州华三通信技术有限公司 | 会话备份方法、报文转发方法及其装置 |
US20160057031A1 (en) * | 2014-08-19 | 2016-02-25 | Citrix Systems, Inc. | Systems and methods for high volume logging and synchronization for large scale network address translation |
CN107079060A (zh) * | 2014-09-09 | 2017-08-18 | 思杰系统有限公司 | 用于运营商级nat优化的系统和方法 |
CN104539528A (zh) * | 2014-12-31 | 2015-04-22 | 迈普通信技术股份有限公司 | 多核通信设备及其与radius服务器间报文交互方法 |
CN106302841A (zh) * | 2015-05-18 | 2017-01-04 | 中兴通讯股份有限公司 | 一种运营商级网络地址转换的方法及装置 |
CN106572197A (zh) * | 2015-10-10 | 2017-04-19 | 阿里巴巴集团控股有限公司 | 一种网络地址转换方法、装置及系统 |
CN105634958A (zh) * | 2015-12-24 | 2016-06-01 | 东软集团股份有限公司 | 基于多核系统的报文转发方法和装置 |
CN106131244A (zh) * | 2016-08-29 | 2016-11-16 | 北京神州绿盟信息安全科技股份有限公司 | 一种报文传送方法及装置 |
US20180255017A1 (en) * | 2017-03-02 | 2018-09-06 | Cisco Technology, Inc. | Identity-based policy implementation in network address translation (nat) environments |
CN108494623A (zh) * | 2018-03-14 | 2018-09-04 | 东软集团股份有限公司 | 一种网络转发设备的性能测试方法及设备 |
CN108769257A (zh) * | 2018-06-28 | 2018-11-06 | 新华三信息安全技术有限公司 | 一种服务器切换方法及装置 |
CN109361608A (zh) * | 2018-11-23 | 2019-02-19 | 北京六方领安网络科技有限公司 | 报文处理方法、系统及存储介质 |
CN109525684A (zh) * | 2018-12-11 | 2019-03-26 | 杭州数梦工场科技有限公司 | 报文转发方法和装置 |
CN110177047A (zh) * | 2019-05-27 | 2019-08-27 | 北京字节跳动网络技术有限公司 | 报文发送方法、装置、电子设备和计算机可读存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115242711A (zh) * | 2022-07-14 | 2022-10-25 | 天翼云科技有限公司 | 一种报文传输方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112929277B (zh) | 2024-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11303553B1 (en) | Return path trace | |
CN107948076B (zh) | 一种转发报文的方法及装置 | |
US11356410B2 (en) | Packet transmission method and device, and computer readable storage medium | |
US8509244B2 (en) | Method and apparatus for providing host node awareness for multiple NAT64 environments | |
US8165138B2 (en) | Converged infiniband over ethernet network | |
EP2913972A1 (en) | Resource subscription method and device | |
CN110166570B (zh) | 业务会话管理方法、装置、电子设备 | |
CN109040243B (zh) | 一种报文处理方法及装置 | |
JP2020520612A (ja) | パケット伝送方法、エッジデバイス及び機械可読記憶媒体 | |
EP2965476B1 (en) | Forwarding ethernet packets | |
JP2012524499A (ja) | 一連の携帯サービス機能を維持しながらデータテザリングサービスを提供することのできる携帯端末 | |
WO2011059770A2 (en) | Smart client routing | |
CN109196842B (zh) | 一种会话保持方法、设备及存储介质 | |
US9118608B2 (en) | Communication apparatus, control method therefor, and computer-readable storage medium | |
CN107547346B (zh) | 一种报文传输方法和装置 | |
CN110012118B (zh) | 一种提供网络地址转换nat服务的方法及控制器 | |
EP2890064A1 (en) | Packet forwarding method and system | |
EP3780885A1 (en) | Method, apparatus and system for establishing subflows of multipath connection | |
CN104852855A (zh) | 拥塞控制方法、装置及设备 | |
CN106027599B (zh) | 一种数据传输通道建立方法、系统和服务器 | |
KR102579060B1 (ko) | 라우팅 정보 전송 방법, 패킷 전송 방법 및 관련 장치 | |
CN112929277B (zh) | 一种报文处理方法及装置 | |
CN112311672B (zh) | 一种路由表项获得方法、装置及设备 | |
US10917378B1 (en) | Facilitating communication between network devices of a virtual router redundancy protocol (VRRP) group | |
US10142126B2 (en) | Scalable dynamic overlay tunnel management |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220214 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Applicant after: Huawei Cloud Computing Technologies Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Applicant before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |