CN112804154A - 报文处理方法、装置、电子设备及介质 - Google Patents
报文处理方法、装置、电子设备及介质 Download PDFInfo
- Publication number
- CN112804154A CN112804154A CN202110003879.5A CN202110003879A CN112804154A CN 112804154 A CN112804154 A CN 112804154A CN 202110003879 A CN202110003879 A CN 202110003879A CN 112804154 A CN112804154 A CN 112804154A
- Authority
- CN
- China
- Prior art keywords
- message
- packet
- forwarding rule
- target
- gateway
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3009—Header conversion, routing tables or routing tags
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本说明书实施例公开了报文处理方法、装置、电子设备及介质,涉及云计算领域。该方法包括:接收第一报文;获取由第一报文封装成的第二报文,所述第二报文中含有目标服务器的信息;将所述第二报文转发至所述目标服务器;其中,所述获取由第一报文封装成的第二报文,包括:根据所述第一报文的报文元素,确定已有转发规则中是否存在与所述第一报文适配的目标转发规则;在存在目标转发规则的情况下,根据目标转发规则对所述第一报文进行处理以生成第二报文。
Description
技术领域
本公开涉及计算机技术领域,更具体地,涉及一种报文处理方法、装置、电子设备及介质。
背景技术
当前云计算数据中心架构中,传统云网关都是基于x86服务器,使用数据平面开发套件(DPDK,Data Plane Development Kit)进行的二次开发,通过纵向扩展(scaleup)和横向扩展(scaleout)的方式来不断提供云网关的能力。
然而,受限于x86服务器CPU以及网卡本身的处理能力,云网关性能无法做到大幅scale up,同时,由于云网关的规模增长过快,对云网关的维护带来更大的挑战,从成本上需要更多的物力以及人力来维护。
发明内容
本公开的一个目的是提供一种报文处理的新的技术方案。
根据本公开实施例的第一方面,提供了一种报文处理方法,应用于可编程交换机,该方法包括:
接收第一报文;
获取由第一报文封装成的第二报文,所述第二报文中含有目标服务器的信息;
将所述第二报文转发至所述目标服务器;
其中,所述获取由第一报文封装成的第二报文,包括:
根据所述第一报文的报文元素,确定已有转发规则中是否存在与所述第一报文适配的目标转发规则;
在存在目标转发规则的情况下,根据目标转发规则对所述第一报文进行处理以生成第二报文。
可选地,所述获取由第一报文封装成的第二报文,还包括:
在不存在目标转发规则的情况下,将所述第一报文发送至网关以供所述网关对所述第一报文进行处理以生成所述第二报文,以及,接收所述网关生成的第二报文。
可选地,所述方法还包括:在不存在目标转发规则的情况下,将所述第一报文发送至网关以供所述网关确认目标服务器,生成目标转发规则,以及,接收所述网关生成的目标转发规则。
可选地,所述转发规则包括报文元素与所述目标服务器的映射关系。
可选地,所述确定已有转发规则中是否存在与所述第一报文适配的目标转发规则,包括:
确定是否存在定义了所述报文元素与所述目标服务器间的对应关系的映射数据;
在存在定义了所述报文元素与所述目标服务器间的对应关系的映射数据的情况下,确定已有转发规则中存在适配所述第一报文的目标转发规则。
可选地,所述转发规则携带有时间有效期,所述方法还包括:
在超过所述时间有效期的情况下,删除所述转发规则。
根据本公开实施例的第二方面,提供了另外一种报文处理方法,应用于网关,该方法包括:
接收第一报文,并生成目标转发规则;
将所述目标转发规则下发至可编程交换机。
可选地,所述在接收第一报文之后,还包括:
将所述第一报文封装成第二报文,并将所述第二报文下发至所述可编程交换机。
根据本公开实施例的第三方面,提供了一种报文处理装置,应用于可编程交换机,该装置包括:
第一接收模块,用于接收第一报文;
获取模块,用于获取由第一报文封装成的第二报文,所述第二报文中含有目标服务器的信息;
第一发送模块,用于将所述第二报文转发至所述目标服务器;
其中,所述获取模块在获取由第一报文封装成的第二报文,所述第二报文中含有目标服务器的信息时,用于根据所述第一报文的报文元素,确定已有转发规则中是否存在与所述第一报文适配的目标转发规则;在存在目标转发规则的情况下,根据目标转发规则对所述第一报文进行处理以生成第二报文。
可选地,所述第一发送模块,还用于在不存在目标转发规则的情况下,将所述第一报文发送至网关以供所述网关对所述第一报文进行处理以生成所述第二报文;以及,
所述第一接收模块,用于接收所述网关生成的第二报文。
可选地,所述第一发送模块,还用于在不存在目标转发规则的情况下,将所述第一报文发送至网关以供所述网关确认目标服务器,生成目标转发规则;以及,
所述第一接收模块,还用于接收所述网关生成的目标转发规则。
可选地,所述转发规则包括报文元素与所述目标服务器的映射关系。
可选地,所述获取模块还用于:确定是否存在定义了所述报文元素与所述目标服务器间的对应关系的映射数据;在存在定义了所述报文元素与所述目标服务器间的对应关系的映射数据的情况下,确定已有转发规则中存在适配所述第一报文的目标转发规则。
可选地,所述转发规则携带有时间有效期,所述装置还包括删除模块,
所述删除模块,用于在超过所述时间有效期的情况下,删除所述转发规则。
根据本公开的第四方面,提供了另外一种报文处理装置,应用于网关,该装置包括:
第二接收模块,用于接收第一报文,并生成目标转发规则;
第二发送模块,用于将所述目标转发规则下发至可编程交换机。
可选地,所述第二发送模块,还用于在所述第二接收模块接收到第一报文之后,将所述第一报文封装成第二报文,并将所述第二报文下发至所述可编程交换机。
根据本公开实施例的第五方面,提供了一种电子设备,其包括存储器和处理器,所述存储器中存储有计算机指令,所述计算机指令被所述处理器执行时,实现以上第二方面或第二方面所述的方法。
根据本公开实施例的第六方面,提供了一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令被处理器执行时,实现以上第一方面或第二方面所述的方法。
根据本公开实施例提供的报文处理方法、装置、电子设备及介质,可编程交换机在接收到第一报文后,会根据第一报文的报文元素,确定在已有转发规则中存在适配第一报文的目标转发规则的情况下,根据目标转发规则对第一报文进行处理以生成第二报文,并将第二报文直接转发至目标服务器,而不再将第一报文发送网关进行处理,从而,减少了网关的负载以及处理压力,节省了成本以及人力维护成本。
通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。
附图说明
被结合在说明书中并构成说明书的一部分的附图示出了本公开的实施例,并且连同其说明一起用于解释本公开的原理。
图1是可用于实现本公开实施例的报文处理系统的硬件配置的框图。
图2是根据本公开实施例的报文处理方法的示意性流程图;
图3是根据本公开另一实施例的报文处理方法的示意性流程图;
图4是根据本公开第三实施例的报文处理方法的示意性流程图;
图5是根据本公开第四实施例的报文处理方法的示意性流程图;
图6是根据本公开实施例的报文处理装置的原理框图;
图7是根据本公开另一实施例的报文处理装置的原理框图;
图8是根据本公开实施例的电子设备的原理框图。
具体实施方式
现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
<硬件配置>
图1是根据本公开实施例提供的一种报文处理系统的硬件配置的框图。
如图1所示,本实施例的报文处理系统100中包括路由器1000、可编程交换机2000、网关3000、传统交换机4000和主机集群5000。
可编程交换机2000具有可编程性,其可以被写入自定义的转发逻辑,负责一部分网关工作。
该可编程交换机2000可以如图1所示,包括处理器2100、存储器2200、接口装置2300、通信装置2400、显示装置2500和输入装置2600。
处理器2100例如可以是中央处理器CPU等。存储器2200例如包括ROM(只读存储器)、RAM(随机存取存储器)、诸如硬盘的非易失性存储器等。接口装置2300例如包括USB接口、串行接口等。通信装置2400例如能够进行有线或无线通信。显示装置2500例如是液晶显示屏。输入装置2600例如可以包括触摸屏、键盘等。
尽管图1中示出了可编程交换机2000的多个装置,但该可编程交换机2000也可以仅包括处理器2100、存储器2200和通信装置2400。
网关3000可以是基于x86服务器的云网关,该网关3000可以如图1所示,包括处理器3100、存储器3200、接口装置3300、通信装置3400、显示装置3500和输入装置3600。
处理器3100例如可以是中央处理器CPU等。存储器3200例如包括ROM(只读存储器)、RAM(随机存取存储器)、诸如硬盘的非易失性存储器等。接口装置3300例如包括USB接口、串行接口等。通信装置3400例如能够进行有线或无线通信。显示装置3500例如是液晶显示屏。输入装置3600例如可以包括触摸屏、键盘等。
尽管图1中示出了网关3000的多个装置,但该网关3000也可以仅包括处理器3100、存储器3200和通信装置3400。
当然,网关3000还可以是基于x86服务器的云网关集群,云网关集群中可以包括至少一个服务器,例如可以包括一个或多个服务器,本实施例在此不做限定。
主机集群5000中可以包括至少一个服务器,该服务器是为报文提供服务的服务器。例如图1所示,该主机集群5000可以包括服务器5100A、服务器5100B和服务器5100C,当然,该主机集群5000中还可以包含其他数量个服务器,本实施例在此不做限定。该服务器例如可以是刀片服务器、机架式服务器等。
服务器5100可以如图1所示,包括处理器5110、存储器5120、接口装置5130、通信装置5140、显示装置5150和输入装置5160。
处理器5110例如可以是中央处理器CPU等。存储器5120例如包括ROM(只读存储器)、RAM(随机存取存储器)、诸如硬盘的非易失性存储器等。接口装置5130例如包括USB接口、串行接口等。通信装置5140例如能够进行有线或无线通信。显示装置5150例如是液晶显示屏。输入装置5160例如可以包括触摸屏、键盘等。
尽管图1中示出了服务器5100的多个装置,但该服务器也可以仅包括处理器5110、存储器5120和通信装置5140。
本实施例中,如图1所示,报文从公网进入路由器1000,路由器1000通过路由发布的方式将报文发送至可编程交换机2000,可编程交换机2000在接收到报文之后,根据报文的报文元素确定存在适配报文的目标转发规则的情况下,直接根据目标转发规则处理该报文,由于处理后的报文中含义目标服务器的信息,在此,可编程交换机2000将处理后的报文通过传统交换机4000转发至主机集群5000,而不再经过云网关3000,减少了x86服务器云网关的负载以及处理压力,节省了x86服务器成本以及人力维护成本。
<方法实施例1>
图2是根据本公开实施例的报文处理方法的流程示意图,该方法应用于可编程交换机2000中。如图2所示,该方法可以包括如下步骤S2100~S2300:
步骤S2100,接收第一报文。
报文是网络中交互与传输的数据单元。该报文可以包括传输控制协议(Transmission Control Protocol,TCP)报文、用户数据报协议(User DatagramProtocol,UDP)报文、超文本传输协议(HyperText Transfer Protocol,HTTP)报文等,当然,还可以是其他报文,本实施例在此不做赘述。例如,对于一个TCP请求,该TCP请求中可以包括多个TCP报文,该多个TCP报文中的每一个TCP报文均可以称之为一个第一报文。
以第一报文为TCP报文为例,例如当该TCP报文通过公网进入路由器1000,路由器1000通过路由发布的方式将该TCP报文发送至可编程交互机2000。
步骤S2200,获取由第一报文封装成的第二报文。
第二报文为对第一报文进行封装得到的报文,第二报文中含有目标服务器的信息,该目标服务器是为第一报文提供真实服务的服务器。该目标服务器可以是图1所示主机集群5000中的服务器5100A、服务器5100B和服务器5100C之中的任意一个服务器,其中,不同服务器具有不同的标识。
在实施例中,如图3所示,本步骤S2200中获取由第一报文封装成的第二报文可以进一步包括如下步骤S2210~S2220:
步骤S2210,根据第一报文的报文元素,确定已有转发规则中是否存在适配第一报文的目标转发规则。
转发规则包括报文元素与目标服务器间的映射关系。具体的,转发规则可以包括报文元素与目标服务器的标识间的对应关系。
该报文元素为报文中的协议字段。该报文元素包括源IP地址、目的IP地址、源端口和目的端口中的任意一项或多项,以及包括协议号、服务类型和接口索引中的任意一项或多项。其中,在报文元素包括源IP地址、目的IP地址、源端口、目的端口和协议号的情况下,将该报文元素称之为报文的五元组元素。
例如,报文规则可以包括:源IP地址、目的IP地址、源端口、目的端口和协议号+目标服务器的标识间的对应关系,在此,报文规则可以包括五元组元素+目标服务器间的对应关系。
本步骤S2210中确定已有转发规则中是否存在适配第一报文的目标转发规则可以进一步包括:确定是否存在定义了报文元素与目标服务器间的对应关系的映射数据;在存在定义了报文元素与目标服务器间的对应关系的映射数据的情况下,确定已有转发规则中存在适配第一报文的目标转发规则。
示例性地,获取到第一报文例如TCP报文的报文元素可以包括源IP地址:192.168.1.1、目的IP地址:121.14.88.76.80、源端口:1000、目的端口:80和协议号:TCP协议,如果在可编程交换机2000中查找到定义了源IP地址:192.168.1.1、目的IP地址:121.14.88.76.80、源端口:1000、目的端口:80和协议号:TCP协议+服务器的标识:X之间的对应关系的映射数据,则确定已有转发规则中存在适配该TCP报文的目标转发规则,该目标转发规则即为源IP地址:192.168.1.1、目的IP地址:121.14.88.76.80、源端口:1000、目的端口:80和协议号:TCP协议+服务器的标识:X。
步骤S2220,在存在目标转发规则的情况下,根据目标转发规则对第一报文进行处理以生成第二报文。
继续以第一报文为TCP报文为例,可编程交换机2000在确定存在适配该TCP报文的目标转发规则的情况下,根据该目标转发规则,获得对应于该TCP报文的报文元素源IP地址:192.168.1.1、目的IP地址:121.14.88.76.80、源端口:1000、目的端口:80和协议号:TCP协议的目标服务器X,由于该目标服务器的标识为X,表示的是服务器5100A,则可以在该TCP报文中添加该目标服务器的标识X,并对该TCP报文进行其他处理,以将该TCP报文生成第二报文,在此,该第二报文中含有服务器5100A的标识信息X。
根据本步骤2210~S2220,可编程交换机2000在确定存在适配第一报文的目标转发规则的情况下,会根据目标转发规则直接对该第一报文进行处理以生成第二报文,而不需要在将该第一报文发送至网关3000处理成第二报文,从而能够减少网关3000的负载以及处理压力。
步骤S2300,将第二报文转发至目标服务器。
继续以第一报文为TCP报文为例,可编程交换机2000在根据目标转发规则将该TCP报文生成第二报文之后,由于该第二报文中含有目标服务器的标识信息X,其指示的是服务器5100A,在此,根据本步骤S2300可编程交换机2000会经由传统交换机4000将第二报文转发至服务器5100A进行处理。
根据本公开实施例提供的报文处理方法,可编程交换机在接收到第一报文后,会根据第一报文的报文元素,确定在已有转发规则中存在适配第一报文的目标转发规则的情况下,根据目标转发规则对第一报文进行处理以生成第二报文,并将第二报文直接转发至目标服务器,而不再将第一报文发送网关进行处理,从而,减少了云网关的负载以及处理压力,节省了成本以及人力维护成本,提升了云网关的转发、带宽能力。
在一个实施例中,提供另外一种报文处理方法,根据图3所示,在执行步骤S2210之后,本公开实施例的报文处理方法还可以包括如下步骤S2230:
步骤S2230,在不存在目标转发规则的情况下,将第一报文发送至网关以供网关对第一报文进行处理以生成第二报文,以及,接收网关生成的第二报文。
继续以第一报文为TCP报文为例,可编程交换机2000在确定不存在适配该TCP报文的目标转发规则的情况下,会根据本步骤S2230将该TCP报文上报至网关3000。
网关3000会对该第一报文进行处理,具体的,网关3000会根据编程人员预先设置的特定的算法分配为该TCP报文提供服务的目标服务器,并在该TCP报文中添加该目标服务器的标识,同时,还可以对该TCP报文进行其他处理,进而将该TCP报文生成第二报文发送至可编程交换机2000。
由于该第二报文中含有目标服务器的标识信息,该标识信息例如可以是X,指示的是服务器5100A,在此,可编程交换机2000便可以根据以上步骤S2300经由传统交换机4000将第二报文转发至服务器5100A进行处理。
本步骤S2230中,网关例如可以是将一个TCP请求中的多个TCP报文轮询分配给主机集群5000中的服务器;又例如也可以是结合主机集群5000中的服务器的性能将一个TCP请求中的多个TCP报文分配给主机集群5000中的服务器;还例如可以是结合报文元素和主机集群5000中的服务器的性能为TCP报文分配服务器,本实施例在此不做限定。
根据本公开实施例的方法,可编程交换机2000在确定不存在适配第一报文的目标转发规则的情况下,会将该第一报文上报至网关3000,供网关3000处理该第一报文,从而确保每一个第一报文都能被准确转发,提高请求处理效率。
在一个实施例中,提供另外一种报文处理方法,如图4所示,在执行步骤S2210之后,本公开实施例的报文处理方法还可以包括如下步骤S2240:
步骤S2240,在不存在目标转发规则的情况下,将第一报文发送至网关以供网关确认目标服务器,生成目标转发规则,以及,接收网关生成的目标转发规则。
继续以第一报文为TCP报文为例,可编程交换机2000在确定不存在适配该TCP报文的目标转发规则的情况下,会根据本步骤S2240将该TCP报文发送至网关3000。
根据以上步骤S2230的示例可知,网关3000会根据编程人员预先设置的特定的算法分配为该TCP报文提供服务的目标服务器,本步骤S2240中,一旦分配完成,报文元素与目标服务器的对应关系就会被记录下来并保存到网关3000中,该对应关系可以是五元组元素+目标服务器的标识,该对应关系即为对应该TCP报文的目标转发规则,例如,生成的目标转发规则可以是源IP地址:192.168.1.1、目的IP地址:121.14.88.76.80、源端口:1000、目的端口:80和协议号:TCP协议+服务器的标识:X,同时,网关3000会将该目标转发规则发送至可编程交换机2000。
根据本公开实施例的方法,可编程交换机2000在确定不存在适配第一报文的目标转发规则的情况下,会将该第一报文上报至网关3000,网关3000在确认目标服务器后会生成适配第一报文的目标转发规则,并将该目标转发规则发送至可编程交换器2000,从而,可编程交换机2000在接收到后续第一报文时,如果根据报文元素确定该目标转发规则适配该后续第一报文,则直接根据该目标转发规则对该后续第一报文进行处理,并将处理后的该后续第一报文转发至目标服务器,即,该后续第一报文不再经过网关3000处理,从而,减少了云网关的负载以及处理压力。
在一个实施例中,可编程交换机2000中的每一个报文规则均携带有时间有效期,在此,本公开实施例的报文处理方法还可以包括如下步骤:
在超过时间有效期的情况下,删除转发规则。
本实施例中,网关3000在生成报文规则时,会自动为报文规则设置时间有效期,并携带在报文规则中下发至可编程交换机2000,可编程交换机2000会在转发规则超过时间有效期的情况下,删除存储在可编程交换机2000中的该转发规则,以更新存储在本地的转发规则。
在一个例子中,该时间有效期可以是预设的固定数值,在该例子中,所有转发规则的时间有效期均为该固定数值。
在一个例子中,每一个报文规则也可以有各自对应的时间有效期,对应不同报文规则的时间有效期可以相同,也可以不同。
本实施例中,可编程交换机2000在删除存储在可编程交换机2000中的该转发规则的同时,还可以与网关3000进行通信,供网关3000删除存储在网关3000中的该转发规则,以更新存储在本地的转发规则,也就是说,可编程交换机2000和网关3000在逻辑上共同维护转发规则表格,定期进行数据同步。
<方法实施例2>
图5是根据本公开另一实施例的报文处理方法的流程示意图,该方法应用于网关3000中。如图5所示,该方法可以包括如下步骤S5100~S5200:
步骤S5100,接收第一报文,并生成目标转发规则。
以第一报文为TCP报文为例,例如当该TCP报文通过公网进入路由器1000,路由器1000通过路由发布的方式将该TCP报文发送至可编程交互机2000,可编程交换机2000在确定不存在适配该TCP报文的目标转发规则的情况下,将该TCP报文发送至网关3000。
本步骤S5100中,网关3000在确认目标服务器后,会进一步生成目标转发规则。
继续以第一报文为TCP报文为例,网关3000在接收到该TCP报文后,会根据编程人员预先设置的特定的算法分配为该TCP报文提供服务的目标服务器,例如分配的目标服务器为服务器5100A,在此,网关3000将该TCP报文的五元组元素源IP地址:192.168.1.1、目的IP地址:121.14.88.76.80、源端口:1000、目的端口:80和协议号:TCP协议和服务器5100A的服务器标识X进行绑定,形成对应关系以生成目标转发规则,在此形成的目标转发规则可以是源IP地址:192.168.1.1、目的IP地址:121.14.88.76.80、源端口:1000、目的端口:80和协议号:TCP协议+服务器的标识:X。
本步骤S5100中,网关3000如何根据特定的算法分配为该TCP报文提供服务的目标服务器,可以参见以上方法实施例1,本实施例不做详细赘述
步骤S5200,将目标转发规则下发至可编程交换机2000。
继续以第一报文为TCP报文为例,生成目标转发规则源IP地址:192.168.1.1、目的IP地址:121.14.88.76.80、源端口:1000、目的端口:80和协议号:TCP协议+服务器的标识:X之后,便可根据本步骤S5300将该目标转发规则发送至可编程交换机2000。
根据本公开实施例的方法,网关3000在确认目标服务器后会生成适配第一报文的目标转发规则,并将该目标转发规则发送至可编程交换机2000,从而,可编程交换机2000在接收到后续第一报文时,如果根据报文元素确定该目标转发规则适配该后续第一报文,则直接根据该目标转发规则对该后续第一报文进行处理,并将处理后的该后续第一报文转发至目标服务器,即,该后续第一报文不再经过网关3000处理,从而,减少了云网关3000的负载以及处理压力。
在一个实施例中,提供另外一种报文处理方法,在接收第一报文之后,本公开实施例的报文处理方法还可以包括如下步骤S5300:
步骤S5300,将第一报文封装成第二报文,并将第二报文下发至可编程交换机2000。
继续以第一报文为TCP报文为例,在确认为该TCP报文提供服务的是服务器5100A之后,便可将服务器5100A的信息例如标识信息X携带在该TCP报文中,同时,对该TCP报文进行其他处理以生成第二报文,并将该第二报文下发至可编程交换机2000,并经由传统交换机4000将第二报文转发至服务器5100A进行处理。
根据本公开实施例的方法,网关3000在接收到第一报文后,会对该第一报文进行处理以生成第二报文,并将该第二报文下发至可编程交换机2000,供可编程交换机2000将第二报文转发至目标服务器,即,在可编程交换机2000不能处理第一报文的情况下,可以由网关对该第一报文进行处理,从而确保每一个第一报文都能被准确转发,提高请求处理效率。
<例子>
以报文为TCP报文为例,示出了一个例子的报文处理方法的流程示意图,该方法应用于报文处理系统1000中,结合图1,该方法可以包括如下步骤:
步骤S6110,路由器1000接收TCP请求的第一个TCP报文,并将该TCP报文通过路由的方式发送至可编程交换机2000。
步骤S6210,可编程交换机2000接收到路由器1000发送的TCP报文后,将该TCP报文上报至网关3000。
步骤S6310,网关3000在接收到可编程交换机2000上报的TCP报文后,将该TCP报文封装为第二报文发送至可编程交换机2000,同时,生成适配该TCP报文的目标转发规则也发送至可编程交换机2000。
其中,第二报文含有目标服务器的信息。该目标转发规则包括报文元素与目标服务器的映射关系。
步骤S6220,可编程交换机2000接收第二报文和目标转发规则,将该第二报文发送至传统交换机4000,以及,将目标转发规则存储在可编程交换机2000本地。
步骤S6410,传统交换机4000将该第二报文发送至主机集群5000中的目标服务器。
步骤S6230,可编程交换机2000在接收到后续TCP报文时,会先根据报文元素确定是否存在适配该TCP报文的目标转发规则,并在存在适配该TCP报文的目标转发规则的情况下,根据目标转发规则对该后续TCP报文进行处理以生成第二报文,其中,第二报文中携带目标服务器的信息,并将该第二报文发送至传统交换机4000,由传统交换机4000将该第二报文发送至主机集群5000中的目标服务器。
步骤S6240,可编程交换机2000在不存在适配该TCP报文的转发规则的情况下,将该TCP报文上报至网关3000进行处理,即,执行以上步骤S6310。
<装置实施例1>
在本实施例中,还提供一种报文处理装置6000,应用于可编程交换机2000,如图6所示,该装置6000可以包括第一接收模块6100、获取模块6200和第一发送模块6300。
第一接收模块6100,用于接收第一报文。
获取模块6200,用于获取由第一报文封装成的第二报文,所述第二报文中含有目标服务器的信息。
第一发送模块6300,用于将所述第二报文转发至所述目标服务器。
其中,获取模块6200在获取由第一报文封装成的第二报文,所述第二报文中含有目标服务器的信息时,用于根据所述第一报文的报文元素,确定已有转发规则中是否存在与所述第一报文适配的目标转发规则;在存在目标转发规则的情况下,根据目标转发规则对所述第一报文进行处理以生成第二报文。
在一个实施例中,第一发送模块6300,还用于在不存在目标转发规则的情况下,将所述第一报文发送至网关以供所述网关对所述第一报文进行处理以生成所述第二报文。
第一接收模块6100,用于接收所述网关生成的第二报文。
在一个实施例中,第一发送模块6300,还用于在不存在目标转发规则的情况下,将所述第一报文发送至网关以供所述网关确认目标服务器,生成目标转发规则。
第一接收模块6100,还用于接收所述网关生成的目标转发规则。
在一个实施例中,所述转发规则包括报文元素与所述目标服务器的映射关系。
在一个实施例中,获取模块6200还用于:确定是否存在定义了所述报文元素与所述目标服务器间的对应关系的映射数据;在存在定义了所述报文元素与所述目标服务器间的对应关系的映射数据的情况下,确定已有转发规则中存在适配所述第一报文的目标转发规则。
在一个实施例中,所述转发规则携带有时间有效期,所述装置还包括删除模块(图中未示出)。
删除模块,用于在超过所述时间有效期的情况下,删除所述转发规则。
<装置实施例2>
在本实施例中,还提供另外一种报文处理装置7000,应用于网关3000,如图7所示,该装置7000可以包括第二接收模块7100和第二发送模块7200。
第二接收模块7100,用于接收第一报文,并生成目标转发规则。
第二发送模块7200,用于将所述目标转发规则下发至可编程交换机。
在一个实施例中,第二发送模块7200,还用于在所述第二接收模块接收到第一报文之后,将所述第一报文封装成第二报文,并将所述第二报文下发至所述可编程交换机。
<电子设备实施例>
本公开实施例提供了一种电子设备8000,包括处理器8100和存储器8200,存储器8200中存储有计算机指令,计算机指令被处理器8100执行时,实现前述任一实施例提供的报文处理方法。
<介质实施例>
本发明实施例提供了一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令被处理器执行时,实现前述任一实施例提供的报文处理方法。
本公开可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本公开的范围由所附权利要求来限定。
Claims (18)
1.一种报文处理方法,应用于可编程交换机,包括:
接收第一报文;
获取由第一报文封装成的第二报文,所述第二报文中含有目标服务器的信息;
将所述第二报文转发至所述目标服务器;
其中,所述获取由第一报文封装成的第二报文,包括:
根据所述第一报文的报文元素,确定已有转发规则中是否存在与所述第一报文适配的目标转发规则;
在存在目标转发规则的情况下,根据目标转发规则对所述第一报文进行处理以生成第二报文。
2.根据权利要求1所述的方法,所述获取由第一报文封装成的第二报文,还包括:
在不存在目标转发规则的情况下,将所述第一报文发送至网关以供所述网关对所述第一报文进行处理以生成所述第二报文,以及,接收所述网关生成的第二报文。
3.根据权利要求2所述的方法,所述方法还包括:在不存在目标转发规则的情况下,将所述第一报文发送至网关以供所述网关确认目标服务器,生成目标转发规则,以及,接收所述网关生成的目标转发规则。
4.根据权利要求1所述的方法,
所述转发规则包括报文元素与所述目标服务器的映射关系。
5.根据权利要求4所述的方法,所述确定已有转发规则中是否存在与所述第一报文适配的目标转发规则,包括:
确定是否存在定义了所述报文元素与所述目标服务器间的对应关系的映射数据;
在存在定义了所述报文元素与所述目标服务器间的对应关系的映射数据的情况下,确定已有转发规则中存在适配所述第一报文的目标转发规则。
6.根据权利要求1所述的方法,所述转发规则携带有时间有效期,所述方法还包括:
在超过所述时间有效期的情况下,删除所述转发规则。
7.一种报文处理方法,应用于网关,包括:
接收第一报文,并生成目标转发规则;
将所述目标转发规则下发至可编程交换机。
8.根据权利要求7所述的方法,所述在接收第一报文之后,还包括:
将所述第一报文封装成第二报文,并将所述第二报文下发至所述可编程交换机。
9.一种报文处理装置,应用于可编程交换机,包括:
第一接收模块,用于接收第一报文;
获取模块,用于获取由第一报文封装成的第二报文,所述第二报文中含有目标服务器的信息;
第一发送模块,用于将所述第二报文转发至所述目标服务器;
其中,所述获取模块在获取由第一报文封装成的第二报文,所述第二报文中含有目标服务器的信息时,用于根据所述第一报文的报文元素,确定已有转发规则中是否存在与所述第一报文适配的目标转发规则;在存在目标转发规则的情况下,根据目标转发规则对所述第一报文进行处理以生成第二报文。
10.根据权利要求9所述的装置,
所述第一发送模块,还用于在不存在目标转发规则的情况下,将所述第一报文发送至网关以供所述网关对所述第一报文进行处理以生成所述第二报文;以及,
所述第一接收模块,用于接收所述网关生成的第二报文。
11.根据权利要求10所述的装置,
所述第一发送模块,还用于在不存在目标转发规则的情况下,将所述第一报文发送至网关以供所述网关确认目标服务器,生成目标转发规则;以及,
所述第一接收模块,还用于接收所述网关生成的目标转发规则。
12.根据权利要求9所述的装置,
所述转发规则包括报文元素与所述目标服务器的映射关系。
13.根据权利要求12所述的装置,所述获取模块具体用于:
确定是否存在定义了所述报文元素与所述目标服务器间的对应关系的映射数据;在存在定义了所述报文元素与所述目标服务器间的对应关系的映射数据的情况下,确定已有转发规则中存在适配所述第一报文的目标转发规则。
14.根据权利要求9所述的装置,所述转发规则携带有时间有效期,所述装置还包括删除模块,
所述删除模块,用于在超过所述时间有效期的情况下,删除所述转发规则。
15.一种报文处理装置,应用于网关,包括:
第二接收模块,用于接收第一报文,并生成目标转发规则;
第二发送模块,用于将所述目标转发规则下发至可编程交换机。
16.根据权利要求15所述的装置,
所述第二发送模块,还用于在所述第二接收模块接收到第一报文之后,将所述第一报文封装成第二报文,并将所述第二报文下发至所述可编程交换机。
17.一种电子设备,包括存储器和处理器,所述存储器中存储有计算机指令,所述计算机指令被所述处理器执行时,实现权利要求1-8中任一项所述的方法。
18.一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令被处理器执行时,实现权利要求1-8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110003879.5A CN112804154A (zh) | 2021-01-04 | 2021-01-04 | 报文处理方法、装置、电子设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110003879.5A CN112804154A (zh) | 2021-01-04 | 2021-01-04 | 报文处理方法、装置、电子设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112804154A true CN112804154A (zh) | 2021-05-14 |
Family
ID=75807913
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110003879.5A Pending CN112804154A (zh) | 2021-01-04 | 2021-01-04 | 报文处理方法、装置、电子设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112804154A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113489640A (zh) * | 2021-08-25 | 2021-10-08 | 北京金山云网络技术有限公司 | 报文转发方法、装置及网关系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080267174A1 (en) * | 2007-04-27 | 2008-10-30 | Mahalank Shashikiran Bhalachandra | Method, Apparatus And Software For Providing Communications Between A Packet Switched Network And A Public Switched Telephone Network |
CN104168202A (zh) * | 2014-08-26 | 2014-11-26 | 华为技术有限公司 | 开放流报文转发方法及装置 |
CN106130900A (zh) * | 2016-08-05 | 2016-11-16 | 浪潮(北京)电子信息产业有限公司 | 一种虚拟化网络分布式路由实现方法及系统 |
CN106254235A (zh) * | 2016-07-27 | 2016-12-21 | 上海华为技术有限公司 | 一种负荷分担的方法及其设备 |
CN107360205A (zh) * | 2016-05-09 | 2017-11-17 | 阿里巴巴集团控股有限公司 | 数据报文的传输方法及装置、系统 |
CN111817960A (zh) * | 2020-07-23 | 2020-10-23 | 杭州迪普信息技术有限公司 | 流控设备的报文转发方法及装置 |
CN112152924A (zh) * | 2019-06-29 | 2020-12-29 | 华为技术有限公司 | 一种在数据中心网络中转发报文的方法及相关装置 |
-
2021
- 2021-01-04 CN CN202110003879.5A patent/CN112804154A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080267174A1 (en) * | 2007-04-27 | 2008-10-30 | Mahalank Shashikiran Bhalachandra | Method, Apparatus And Software For Providing Communications Between A Packet Switched Network And A Public Switched Telephone Network |
CN104168202A (zh) * | 2014-08-26 | 2014-11-26 | 华为技术有限公司 | 开放流报文转发方法及装置 |
CN107360205A (zh) * | 2016-05-09 | 2017-11-17 | 阿里巴巴集团控股有限公司 | 数据报文的传输方法及装置、系统 |
CN106254235A (zh) * | 2016-07-27 | 2016-12-21 | 上海华为技术有限公司 | 一种负荷分担的方法及其设备 |
CN106130900A (zh) * | 2016-08-05 | 2016-11-16 | 浪潮(北京)电子信息产业有限公司 | 一种虚拟化网络分布式路由实现方法及系统 |
CN112152924A (zh) * | 2019-06-29 | 2020-12-29 | 华为技术有限公司 | 一种在数据中心网络中转发报文的方法及相关装置 |
CN111817960A (zh) * | 2020-07-23 | 2020-10-23 | 杭州迪普信息技术有限公司 | 流控设备的报文转发方法及装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113489640A (zh) * | 2021-08-25 | 2021-10-08 | 北京金山云网络技术有限公司 | 报文转发方法、装置及网关系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109561171B (zh) | 虚拟私有云服务的配置方法和装置 | |
US9767293B2 (en) | Content based hardware security module assignment to virtual machines | |
US20140075243A1 (en) | Tunnel health check mechanism in overlay network | |
US10044837B2 (en) | Generation and distribution of named, definable, serialized tokens | |
WO2021023149A1 (zh) | 一种动态返回报文的方法和装置 | |
CN105978817B (zh) | 用于传输数据的方法、存储器和网络适配器 | |
CN105450690A (zh) | 虚拟机管理程序执行的方法和虚拟机管理系统 | |
CN108141469A (zh) | 负载均衡器中的数据平面操纵 | |
CN111913884A (zh) | 分布式测试方法、装置、设备、系统和可读存储介质 | |
CN108540408B (zh) | 一种基于Openstack的分布式虚拟交换机的管理方法及系统 | |
US10205813B2 (en) | Method and system for detecting abnormal contact information and server | |
CN113595927A (zh) | 一种旁路模式下镜像流量的处理方法和装置 | |
US11121946B2 (en) | Capturing packets in a virtual switch | |
CN112804154A (zh) | 报文处理方法、装置、电子设备及介质 | |
US20220103415A1 (en) | Remote network and cloud infrastructure management | |
US10129204B2 (en) | Network client ID from external management host via management network | |
CN112511440B (zh) | 报文转发方法、系统、存储介质和电子设备 | |
CN115277428A (zh) | 用于配置网络的方法和装置 | |
CN115185636A (zh) | 一种Cinder卷挂载方法、装置以及介质 | |
US10915410B2 (en) | Distributed system management using snapshots and packets | |
CN114726657A (zh) | 中断管理和数据收发管理的方法、装置及智能网卡 | |
CN114979128A (zh) | 跨区域通信方法、装置及电子设备 | |
CN109842498A (zh) | 一种客户端配置方法、服务器、客户端及电子设备 | |
CN112115134A (zh) | 数据存储方法、装置、电子设备及存储介质 | |
CN110300060B (zh) | 用于软件定义网络的通信方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210514 |