CN114025370B - 数据报文传输方法、介质、系统和计算设备 - Google Patents

数据报文传输方法、介质、系统和计算设备 Download PDF

Info

Publication number
CN114025370B
CN114025370B CN202111301110.8A CN202111301110A CN114025370B CN 114025370 B CN114025370 B CN 114025370B CN 202111301110 A CN202111301110 A CN 202111301110A CN 114025370 B CN114025370 B CN 114025370B
Authority
CN
China
Prior art keywords
data message
application
port address
user state
transmitting
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
Application number
CN202111301110.8A
Other languages
English (en)
Other versions
CN114025370A (zh
Inventor
陈启钧
汪翰林
张晓龙
刘亚灿
陈谔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Netease Shuzhifan Technology Co ltd
Original Assignee
Hangzhou Langhe Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Langhe Technology Co Ltd filed Critical Hangzhou Langhe Technology Co Ltd
Priority to CN202111301110.8A priority Critical patent/CN114025370B/zh
Publication of CN114025370A publication Critical patent/CN114025370A/zh
Application granted granted Critical
Publication of CN114025370B publication Critical patent/CN114025370B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W24/00Supervisory, monitoring or testing arrangements
    • H04W24/02Arrangements for optimising operational condition

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本公开的实施方式提供了一种数据报文传输方法、介质、系统和计算设备。该方法包括:将第一POD的应用服务发出的第一数据报文传输给第一POD的重定向加速装置,重定向加速装置将接收到的第一数据报文重定向至应用适配装置,应用适配装置将第一数据报文传输给应用代理进行处理,并将应用代理进行处理后的第一数据报文传输给用户态加速装置;用户态加速装置将第一数据报文传输给引流装置所在的网卡;网卡将第一数据报文传输给网络接口;网络接口将第一数据报文传输给第二POD。本公开能够降低由于内核态协议栈的消耗引起的时延,加快了应用服务之间的报文传输速度,进而提高了用户体验。

Description

数据报文传输方法、介质、系统和计算设备
技术领域
本公开的实施方式涉及计算机技术领域,更具体地,本公开的实施方式涉及数据报文传输方法、介质、系统和计算设备。
背景技术
本部分旨在为权利要求书中陈述的本公开的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
目前,将一个应用程序拆分成多个微小的应用服务,每个应用服务运行在独立的进程中,执行着具体业务。其中,随着应用程序被拆分成应用服务的数目增大,导致应用服务之间的通信链路变得愈发复杂,呈现网格状连接。
为了解决上述应用服务之间的通信链路的复杂度,目前引入Sidecar应用代理来提供应用服务的监控、流控、熔断、升级等治理。但是Sidecar应用代理的引入,附带引入了多个内核协议栈,进而导致应用服务之间的通信路径拉长,增加了应用服务之间的通信时延。
发明内容
本公开提供一种数据报文传输方法、介质、装置及电子设备,以解决目前采用的应用服务之间的通信管理方式,导致通信时延增加的问题。
在本公开实施方式的第一方面中,提供了一种数据报文传输方法,应用于云服务器,云服务器包括:用户态加速装置和多个POD,POD包括:设置在用户态的应用服务、应用适配装置和应用代理,以及设置在内核态的重定向加速装置、引流装置和网络接口;数据报文传输方法,包括:第一POD的应用服务发出的第一数据报文传输给第一POD的重定向加速装置;重定向加速装置将接收到的第一数据报文重定向至应用适配装置;应用适配装置将第一数据报文传输给应用代理进行处理,并将应用代理进行处理后的第一数据报文传输给用户态加速装置;用户态加速装置将第一数据报文传输给引流装置所在的网卡;网卡将第一数据报文传输给网络接口;网络接口将第一数据报文传输给第二POD。
在本公开的一个实施例中,应用适配装置和引流装置均支持IPv4协议栈和IPv6协议栈。
在本公开的另一个实施例中,重定向加速装置将接收到的第一数据报文重定向至应用适配装置,包括:重定向加速装置执行以下步骤:拦截传输给TCP的第一数据报文;读取第一数据报文中第一目的端口地址;将第一目的端口地址替换成应用代理的第一端口地址;根据第一端口地址,将第一数据报文传输至应用适配装置。
在本公开的另一个实施例中,重定向加速装置将接收到的第一数据报文重定向至应用适配装置之前,还包括:重定向加速装置监听TCP连接状态的变化;在TCP连接状态建立时,创建第一映射表;获取第一数据报文的第一源端口地址和第一目的端口地址,以及应用适配装置的第一端口的第一端口地址;在第一映射表中存储第一映射关系和第二映射关系,第一映射关系为第一源端口地址和第一端口地址的对应关系,第二映射关系为第一源端口地址和第一目的端口地址的对应关系。
在本公开的另一个实施例中,用户态加速装置包括AF-XDP,用户态加速装置将第一数据报文传输给引流装置所在的网卡,包括:采用AF-XDP,将第一数据报文传输到共享内存,然后将共享内存的第一数据报文传输给引流装置所在的网卡。
在本公开的另一个实施例中,云服务器还包括:宿主机,用户态加速装置设置在POD中,或者设置在宿主机中。
在本公开实施方式的第二方面中,提供了一种数据报文传输方法,应用于云服务器,云服务器包括:用户态加速装置和多个POD,POD包括:设置在用户态的应用服务、应用适配装置和应用代理,以及设置在内核态的重定向加速装置、引流装置和网络接口;数据报文传输方法,包括:引流装置通过网卡劫持网络接口传输的第二数据报文;引流装置根据第二数据报文,确定第二数据报文需要应用代理进行处理;引流装置将第二数据报文传输至用户态加速装置;用户态加速装置将第二数据报文传输至应用适配装置;应用适配装置将第二数据报文传输给应用代理进行处理,并将应用代理处理后的第二数据报文传输给重定向加速装置;重定向加速装置将第二数据报文传输给第一POD的应用服务。
在本公开的一个实施例中,应用适配装置和引流装置均支持IPv4协议栈和IPv6协议栈。
在本公开的另一个实施例中,根据第二数据报文,确定第二数据报文需要应用代理进行处理,包括:读取第二数据报文的第二源端口地址;若第二源端口地址在预先配置的第一目标端口地址范围时,则确定第二数据报文需要应用代理进行处理。
在本公开的另一个实施例中,该数据报文传输方法还包括:若第二源端口地址不在第一目标端口范围时,引流装置将第二数据报文传输给内核态。
在本公开的另一个实施例中,根据第二数据报文,确定第二数据报文需要应用代理进行处理,包括:读取第二数据报文的第二目的端口地址;若第二目的端口地址在预先配置的第二目标端口地址范围时,则确定第二数据报文需要应用代理进行处理。
在本公开的另一个实施例中,该数据报文传输方法还包括:若第二目的端口地址不在第二目标端口范围时,引流装置将第二数据报文传输给内核态。
在本公开的另一个实施例中,根据第二数据报文,确定第二数据报文需要应用代理进行处理,包括:若第二数据报文为地址解析协议报文,则确定第二数据报文需要应用代理进行处理。
在本公开的另一个实施例中,引流装置将第二数据报文传输至用户态加速装置,包括:复制第二数据报文;将其中一第二数据报文广播传输给用户态加速装置;数据报文传输方法,还包括:将另一第二数据报文广播传输给内核态。
在本公开的另一个实施例中,云服务器还包括配置装置,引流装置将第二数据报文传输至用户态加速装置,包括:将第二数据报文传输给内核态,以使配置装置在内核态订阅第二数据报文的内核态表项,并在内核态表项发生变化时,将内核态表项同步配置至用户态加速装置;其中,内核态表项为存储在内核态的映射表。
在本公开的另一个实施例中,引流装置将第二数据报文传输至用户态加速装置之后,还包括:配置装置在用户态订阅第二数据报文的用户态表项;若用户态表项发生变化,配置装置将用户态表项同步配置至内核态,其中,用户态表项为存储在用户态的映射表。
在本公开的另一个实施例中,引流装置将第二数据报文传输至用户态加速装置,包括:将接收到的第二数据报文传输至内核态,以通过配置在内核态中针对第二数据报文的第一钩子函数,将第二数据报文同步至用户态加速装置。
在本公开的另一个实施例中,引流装置将第二数据报文传输至用户态加速装置之后,还包括:通过配置在用户态中针对第二数据报文的第二钩子函数,将第二数据报文同步至内核态。
在本公开的另一个实施例中,用户态加速装置包括AF-XDP,用户态加速装置将第二数据报文传输至应用适配装置,包括:采用AF-XDP,将第二数据报文传输到共享内存,然后将共享内存的第二数据报文传输给应用适配装置。
在本公开的另一个实施例中,应用适配装置包括:第一应用适配端口和第二应用适配端口;第一应用适配端口用于与重定向加速装置通信,第二应用适配端口用于与用户态加速装置通信,应用适配装置将第二数据报文传输给应用代理进行处理,并将应用代理处理后的第二数据报文传输给重定向加速装置,包括:应用适配装置接收第二数据报文,并记录接收第二数据报文第二应用适配端口的第二应用适配端口地址;将第二数据报文传输给应用代理进行处理,并接收应用代理处理的第二数据报文;若记录的第二应用适配端口地址属于预先配置的第三目标端口地址范围,则将第二数据报文通过第一应用适配端口传输给重定向加速装置。
在本公开的另一个实施例中,重定向加速装置将第二数据报文传输给第一POD的应用服务,包括:重定向加速装置读取第二数据报文的第二源端口地址和第二目的端口地址;根据第二源端口地址和第二目的端口地址,在第一映射表中确定第一映射关系,第一映射关系为第二源端口地址和第二目的端口地址的对应关系;根据第一映射关系,在第一映射表中查找对应的第二映射关系,第一映射表中存储有第一映射关系和第二映射关系的对应关系,第二映射关系为第二端口地址和第二目的端口地址的对应关系;确定第二映射关系的第二目的端口地址对应的第二端口地址;根据第二端口地址,将第二数据报文传输给应用服务。
在本公开的另一个实施例中,还包括:配置装置,配置应用服务的工作网段,以及配置应用适配装置,用户态加速装置和引流装置的端口地址范围。
在本公开的另一个实施例中,云服务器还包括:宿主机,用户态加速装置设置在POD中,或者设置在宿主机中。
在本公开实施方式的第三方面中,提供了一种数据报文传输系统,应用于云服务器,云服务器包括:用户态加速装置和多个POD,POD包括:设置在用户态的应用服务、应用适配装置和应用代理,以及设置在内核态的重定向加速装置、引流装置和网络接口;数据报文传输系统,包括:
应用服务,用于将第一POD的应用服务发出的第一数据报文传输给第一POD的重定向加速装置;
重定向加速装置,用于将接收到的第一数据报文重定向至应用适配装置;
应用适配装置,用于将第一数据报文传输给应用代理进行处理,并将应用代理进行处理后的第一数据报文传输给用户态加速装置;
用户态加速装置,用于将第一数据报文传输给引流装置所在的网卡;
网卡,用于将第一数据报文传输给网络接口;
网络接口,用于将第一数据报文传输给第二POD。
在本公开的另一个实施例中,应用适配装置和引流装置均支持IPv4协议栈和IPv6协议栈。
在本公开的另一个实施例中,重定向加速装置,具体用于:拦截传输给TCP的第一数据报文;读取第一数据报文中第一目的端口地址;将第一目的端口地址替换成应用代理的第一端口地址;根据第一端口地址,将第一数据报文传输至应用适配装置。
在本公开的另一个实施例中,重定向加速装置还具体用于:监听TCP连接状态的变化;在TCP连接状态建立时,创建第一映射表;获取第一数据报文的第一源端口地址和第一目的端口地址,以及应用适配装置的第一端口的第一端口地址;在第一映射表中存储第一映射关系和第二映射关系,第一映射关系为第一源端口地址和第一端口地址的对应关系,第二映射关系为第一源端口地址和第一目的端口地址的对应关系。
在本公开的另一个实施例中,用户态加速装置包括AF-XDP,用户态加速装置,具体用于:采用AF-XDP,将第一数据报文传输到共享内存,然后将共享内存的第一数据报文传输给引流装置所在的网卡。
在本公开的另一个实施例中,云服务器还包括:宿主机,用户态加速装置设置在POD中,或者设置在宿主机中。
在本公开实施方式的第四方面中,提供了一种数据报文传输系统,应用于云服务器,云服务器包括:用户态加速装置和多个POD,POD包括:设置在用户态的应用服务、应用适配装置和应用代理,以及设置在内核态的重定向加速装置、引流装置和网络接口;数据报文传输系统,包括:
引流装置,用于通过网卡劫持网络接口传输的第二数据报文;根据第二数据报文,确定第二数据报文需要应用代理进行处理;将第二数据报文传输至用户态加速装置;
用户态加速装置,用于将第二数据报文传输至应用适配装置;
应用适配装置,用于将第二数据报文传输给应用代理进行处理,并将应用代理处理后的第二数据报文传输给重定向加速装置;
重定向加速装置,用于将第二数据报文传输给第一POD的应用服务。
在本公开的一个实施例中,应用适配装置和引流装置均支持IPv4协议栈和IPv6协议栈。
在本公开的另一个实施例中,引流装置,具体用于:读取第二数据报文的第二源端口地址;若第二源端口地址在预先配置的第一目标端口地址范围时,则确定第二数据报文需要应用代理进行处理。
在本公开的另一个实施例中,引流装置还用于:若第二源端口地址不在第一目标端口范围时,将第二数据报文传输给内核态。
在本公开的另一个实施例中,引流装置,具体用于:读取第二数据报文的第二目的端口地址;若第二目的端口地址在预先配置的第二目标端口地址范围时,则确定第二数据报文需要应用代理进行处理。
在本公开的另一个实施例中,引流装置,还用于:若第二目的端口地址不在第二目标端口范围时,将第二数据报文传输给内核态。
在本公开的另一个实施例中,引流装置具体用于:若第二数据报文为地址解析协议报文,则确定第二数据报文需要应用代理进行处理。
在本公开的另一个实施例中,引流装置具体用于:复制第二数据报文;将其中一第二数据报文广播传输给用户态加速装置;数据报文传输方法,还包括:将另一第二数据报文广播传输给内核态。
在本公开的另一个实施例中,云服务器还包括配置装置,引流装置具体用于:将第二数据报文传输给内核态,以使配置装置在内核态订阅第二数据报文的内核态表项,并在内核态表项发生变化时,将内核态表项同步配置至用户态加速装置;
其中,内核态表项为存储在内核态的映射表。
在本公开的另一个实施例中,配置装置,用于在用户态订阅第二数据报文的用户态表项;若用户态表项发生变化,将用户态表项同步配置至内核态,其中,用户态表项为存储在用户态的映射表。
在本公开的另一个实施例中,引流装置具体用于:将接收到的第二数据报文传输至内核态,以通过配置在内核态中针对第二数据报文的第一钩子函数,将第二数据报文同步至用户态加速装置。
在本公开的另一个实施例中,引流装置还用于:通过配置在用户态中针对第二数据报文的第二钩子函数,将第二数据报文同步至内核态。
在本公开的另一个实施例中,用户态加速装置包括AF-XDP,用户态加速装置具体用于:采用AF-XDP,将第二数据报文传输到共享内存,然后将共享内存的第二数据报文传输给应用适配装置。
在本公开的另一个实施例中,应用适配装置包括:第一应用适配端口和第二应用适配端口;第一应用适配端口用于与重定向加速装置通信,第二应用适配端口用于与用户态加速装置通信,应用适配装置具体用于:接收第二数据报文,并记录接收第二数据报文第二应用适配端口的第二应用适配端口地址;将第二数据报文传输给应用代理进行处理,并接收应用代理处理的第二数据报文;若记录的第二应用适配端口地址属于预先配置的第三目标端口地址范围,则将第二数据报文通过第一应用适配端口传输给重定向加速装置。
在本公开的另一个实施例中,重定向加速装置具体用于:读取第二数据报文的第二源端口地址和第二目的端口地址;根据第二源端口地址和第二目的端口地址,在第一映射表中确定第一映射关系,第一映射关系为第二源端口地址和第二目的端口地址的对应关系;根据第一映射关系,在第一映射表中查找对应的第二映射关系,第一映射表中存储有第一映射关系和第二映射关系的对应关系,第二映射关系为第二端口地址和第二目的端口地址的对应关系;确定第二映射关系的第二目的端口地址对应的第二端口地址;根据第二端口地址,将第二数据报文传输给应用服务。
在本公开的另一个实施例中,配置装置,用于配置应用服务的工作网段,以及配置应用适配装置,用户态加速装置和引流装置的端口地址范围。
在本公开的另一个实施例中,云服务器还包括:宿主机,用户态加速装置设置在POD中,或者设置在宿主机中。
在本公开实施方式的第五方面中,提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序指令,计算机程序指令被执行时,实现如上述第一方面或第二方面中任一项的数据报文传输方法。
在本公开实施方式的第六方面中,提供了一种计算设备,包括:存储器和处理器;存储器用于存储程序指令;处理器用于调用存储器中的程序指令执行如上述第一方面或第二方面任一项的数据报文传输方法。
本公开实施方式将第一POD的应用服务发出的第一数据报文传输给第一POD的重定向加速装置,重定向加速装置将接收到的第一数据报文重定向至应用适配装置,应用适配装置将第一数据报文传输给应用代理进行处理,并将应用代理进行处理后的第一数据报文传输给用户态加速装置;用户态加速装置将第一数据报文传输给引流装置所在的网卡;网卡将第一数据报文传输给网络接口;网络接口将第一数据报文传输给第二POD。本公开通过重定向加速装置将应用服务发送给内核态的第一数据报文重定向至用户态的应用代理,避免了第一数据报文需要内核态的协议栈进行传输,从而降低了由于内核态协议栈的消耗引起的时延,加快了应用服务之间的报文传输速度,进而提高了用户体验。
附图说明
通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,其中:
图1示意性地示出了相关技术公开的数据报文传输方法的场景图;
图2示意性地示出了相关技术的一种云服务器的结构框图一;
图3示意性地示出了相关技术的一种云服务器的结构框图二;
图4示意性地示出了相关技术的一种云服务器的结构框图三;
图5示意性地示出了根据本公开一实施例的数据报文传输方法的应用场景图;
图6示意性地示出了根据本公开一实施例的数据报文传输方法的步骤流程图;
图7示意性地示出了根据本公开另一实施例的数据报文传输方法的步骤流程图;
图8示意性地示出了根据本公开一实施例的引流装置的结构框图;
图9示意性地示出了根据本公开一实施例的计算机存储介质的结构示意图;
图10示意性地示出了根据本公开一实施例的数据报文传输系统的结构框图;
图11示意性地示出了根据本公开另一实施例的数据报文传输系统的结构框图;
图12示意性地示出了根据本公开一实施例的计算设备的结构框图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本公开的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本公开的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本公开的实施方式,提出了一种数据报文传输方法、介质、系统和计算设备。
在本文中,需要理解的是附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
其中,首先对本文中出现的名词进行解释,具体如下:
POD:是Kubernetes创建或部署的最小/最简单的基本单位,一个Pod代表集群上正在运行的一个进程。一个Pod封装一个或多个应用容器、存储资源、一个独立的网络IP以及管理控制容器运行方式的策略选项。其中,Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用。其中,容器(Container):和虚拟机相似,也是计算机系统的仿真器,由于容器之间底层共享操作系统,所以相对于虚拟机来说,更加的轻量化。
应用服务(微服务),一种用于构建应用的架构方案,通过将单个应用拆分成多个微服务,实现单独构建和部署,降低耦合。
应用代理:服务网格的数据面实现组件,劫持应用的流量实现治理能力,通常以单独的进程存在,如envoy。
TCP/IP:(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议栈),是指能够在多个不同网络间实现信息传输的协议簇。
Iptables,是nuix/linux系统自带的优秀且完全免费的基于包过滤的防火墙工具。
Loopback:是一种纯软件的虚拟接口。
etho:光纤以太网接口。
PRELOAD:是预载荷库,用于完成对Socket通信接口的劫持,并和后端Session组件通信。
Session:是会话控制,用于管理PRELOAD的通信。
Dpdk:Intel Data Plane Development Kit,是intel提供的数据平面开发工具集。
Nic:(network interface controller,网络接口控制器)。
Sockops:是利用内核虚拟机(EBPF)中映射表和重定向技术,
下面参考本公开的若干代表性实施方式,详细阐释本公开的原理和精神。
发明概述
本发明人发现,为了解决服务网格中的通信复杂度,需要应用服务(service)之间引入应用代理(sidecar)来提供服务的监控、流控、熔断、升级等服务治理能力。其中,应用代理通常以进程的方式存在,和应用服务之间通过socket(套接字)通信,通过iptables劫持应用服务的流量到应用代理实现服务治理。参照图1,在应用服务11和应用服务12之间增加应用代理13和应用代理14。但是,该应用代理13和应用代理14的引入会在应用服务11和应用服务12之间的报文的传输路径上增加两个网络处理单元,使传输路径拉长,进而引起报文传输的时延问题,而时延会之间影响到用户使用过程中的业务体验,因此,需要对报文的传输进行加速。
为解决上述问题,第一种相关技术参照图2,图2是采用高性能容器网络方式,将一个应用服务采用一个POD管理,每个POD中设置一个应用代理,其中,每个POD中的TCP/IP、Iptables以及Loopback均设置在内核态,应用服务和应用代理设置在用户态。例如,在图2中POD21包括应用服务A和应用代理A,POD22包括应用服务B和应用代理B。其中,图2,通过etho(硬件接口)和容器网络、虚拟VPC网络以及物理网络的软硬结合,达到降低应用服务之间报文传输的时延。并且容器网络给对应POD提供网络资源,进而实现加速报文的传输。但是图2中从应用服务A到应用服务B报文在传输过程中,依旧要经过6个内核态TCP/IP,而内核态TCP/IP的消耗会极大的提高时延。此外,由于容器网络的存在,使必须给POD配置硬件接口,并不能使用目前通用的Veth网络接口,进而限制了图2对应方案的使用。
第二种相关技术参照图3,将POD21中的应用服务A发出的数据报文,经过三个TCP/IP发送至POD22的etho,再经过三个TCP/IP,发送给应用服务B。此外,图3的方式是将图2中应用代理到etho之间的TCP/IP设置在POD外(用户态),并且在POD中配以PRELOAD,在POD外配以Session、Dpdk和Nic实现不同POD(31和32)中的应用服务之间报文的传输。其中,采用图3的方式,应用服务A和应用服务B之间的报文传输还需要经过4个内核态的TCP/IP,因此,还是没有较大程度的降低报文传输的时延。并且图3的方式也无法使用目前主流的网络接口Veth。
第三种相关技术参照图4,其中,采用sockops实现加速应用服务A和应用代理A之间的通信,使POD41的应用服务A和POD42的应用服务B之间只需要通过2个内核态的TCP/IP。但是该方案由于POD外还是需要通过内核态的TCP/IP与应用代理之间通信,因此,在POD外侧还需要硬件接口适配,无法适应于网络接口veth,并且需要2个内核态的TCP/IP,也不能很大程度的降低应用服务之间的通信时延。
而在本公开中,是将第一POD的应用服务发出的第一数据报文传输给第一POD的重定向加速装置,重定向加速装置将接收到的第一数据报文重定向至应用适配装置,应用适配装置将第一数据报文传输给应用代理进行处理,并将应用代理进行处理后的第一数据报文传输给用户态加速装置;用户态加速装置将第一数据报文传输给引流装置所在的网卡;网卡将第一数据报文传输给网络接口;网络接口将第一数据报文传输给第二POD。本公开通过重定向加速装置将应用服务发送给内核态的第一数据报文重定向至用户态的应用代理,避免了第一数据报文需要内核态的协议栈进行传输,从而降低了由于内核态协议栈的消耗引起的时延,加快了应用服务之间的报文传输速度,进而提高了用户体验。
在介绍了本公开的基本原理之后,下面具体介绍本公开的各种非限制性实施方式。
应用场景总览
首先本公开应用的是目前主流的容器calico,cilium,flannel,openshift参考图5,为本公开提供的一种数据报文传输方法的应用场景图,图5中,云服务器50包括:用户态加速装置和多个POD(如51和52),每个POD包括:设置在用户态的应用服务、应用适配装置和应用代理,以及设置在内核态的重定向加速装置、引流装置和网络接口。其中,各POD中的应用服务通过应用适配装置和应用代理,以及设置在内核态的重定向加速装置、引流装置和网络接口完成数据报文的传输。
基于上述应用场景,本公开提供一种数据报文传输方法,以实现不同POD中的应用服务之间的数据报文的快速传输。
示例性方法
下面结合图5的应用场景,参考图6来描述根据本公开示例性实施方式的用于数据报文传输方法。需要注意的是,上述应用场景仅是为了便于理解本公开的精神和原理而示出,本公开的实施方式在此方面不受任何限制。相反,本公开的实施方式可以应用于适用的任何场景。
图6示出本公开提供的一种数据报文传输方法的步骤流程图,该数据报文传输方法应用于云服务器,云服务器包括:用户态加速装置和多个POD,POD包括:设置在用户态的应用服务、应用适配装置和应用代理,以及设置在内核态的重定向加速装置、引流装置和网络接口;该数据报文传输方法,具体包括以下步骤:
S601,第一POD的应用服务发出的第一数据报文传输给第一POD的重定向加速装置。
其中,云服务器中每个POD发送数据报文的方式相同。在此,参照图5,以第一POD51向第二POD52发送数据报文举例说明本公开。
在图5中,第一POD51包括:应用服务A、Socket1、Socket2、重定向加速装置A、应用代理A和应用适配装置A、网卡A,集成在网卡A中的引流装置A,etho A接口,网络接口A。此外,第二POD52的硬件设置与第一POD51相同,对应采用B标识,在此不再赘述。
此外,应用服务A发出的第一数据报文通过Socket1传输给重定向加速装置A。
S602,重定向加速装置将接收到的第一数据报文重定向至应用适配装置。
其中,重定向加速装置将接收到的第一数据报文重定向至应用适配装置之前,还包括:重定向加速装置监听TCP连接状态的变化;在TCP连接状态建立时,创建第一映射表;获取第一数据报文的第一源端口地址和第一目的端口地址,以及应用适配装置的第一端口的第一端口地址;在第一映射表中存储第一映射关系和第二映射关系,第一映射关系为第一源端口地址和第一端口地址的对应关系,第二映射关系为第一源端口地址和第一目的端口地址的对应关系。
示例性的,重定向加速装置A在接收到第一数据报文后,先进行TCP的新建连接,在TCP连接状态建立时,创建第一映射表(sockmap),然后读取第一数据报文的第一源端口地址A(如172.10.1.1:370058)和第一目的端口地址B(如172.10.1.2:1000),并获取应用适配装置A的第一端口的第一端口地址C(127.0.0.1:15001),然后将该第一源端口地址A和第一目的端口地址B存储在第二映射表(Pod25VC-map)中。然后将第一源端口地址A和第一端口地址C作为第一映射关系(skops1)存储在第一映射表(sockmap)中,然后将第二映射表中的第一源端口地址A和第一目的端口地址B作为第二映射关系(skops2)也存储在第一映射表(sockmap)中,然后擦除第二映射表(Pod25VC-map)中的第一源端口地址A和第一目的端口地址B。
在本公开中,在第一映射表中存储第一映射关系和第二映射关系,能够发出的第一数据报文在发出后,具有对应的反馈报文时,能够准确的将反馈报文返回给应用服务A。
可选的,重定向加速装置将接收到的第一数据报文重定向至应用适配装置,包括:重定向加速装置执行以下步骤:拦截传输给TCP的第一数据报文;读取第一数据报文中第一目的端口地址;将第一目的端口地址替换成应用代理的第一端口地址;根据第一端口地址,将第一数据报文传输至应用适配装置。
具体的,重定向加速装置A可以直接拦截传输给TCP的第一数据报文,然后根据应用代理的第一端口地址,传输给应用适配装置A。
在本公开中,参照图5,第一POD51的虚线框511里面各硬件设置在内核态中,虚线框511外的各硬件设置在用户态。重定向加速装置A的目的是将发送给内核态TCP/IP的第一数据报文,重定向至用户态的应用适配装置A,避免内核态TCP/IP的消耗,进而实现第一数据报文的加速传输,此外,由于内核态通常设置的硬件较多,比较臃肿,并且处理的业务较多,因此采用内核态发送第一数据报文会增长时延。而用户态处理的业务较少,因此采用用户态发送第一数据报文能够降低时延。
此外,参照图5,云服务器还包括配置装置53。其中,配置装置53可以对重定向加速装置A配置源端口地址范围和目的端口地址范围,当第一数据报文的第一源端口地址属于该源端口地址范围,且第一目标端口地址属于该目的端口地址范围时,才对第一数据报文进行重定向发送至应用适配装置A,否则,则将第一数据报文经过内核态的TCP/IP进行传输。
S603,应用适配装置将第一数据报文传输给应用代理进行处理,并将应用代理进行处理后的第一数据报文传输给用户态加速装置。
在本公开中,应用代理A和应用适配装置A属于一体,共用相同的第一端口和第二端口。其中,应用适配装置支持双栈协议,第一端口用于和内核态的重定向加速装置A通信,第二端口用于和用户态的用户态加速装置A通信。
其中,应用适配装置通过第一端口接收到第一数据报文后给应用代理进行处理,然后并将应用代理进行处理后的第一数据报文经过第二端口传输给用户态加速装置。
在本公开中,配置装置53给应用适配装置预先配置端口范围,应用适配装置的执行逻辑是,判断接收到的数据报文是从第一端口还是第二端口进来的,若接收到的数据报文是从第一端口进入应用适配装置A的,则数据报文中携带的端口地址包括第一端口的第一端口地址,该第一端口地址不属于预先配置的端口范围,因此将该数据报文从第二端口发送给用户态加速装置。若接收到的数据报文是从第二端口进入应用适配装置A的,则数据报文中携带的端口地址包括第二端口的第二端口地址,该第二端口地址属于预先配置的端口范围,将该数据报文从第一端口发送给重定向加速装置。这样可以避免从第一端口进入应用适配装置A的数据报文,再经过应用代理A处理后,又从第一端口发出去,也可以避免第二端口进入应用适配装置A的数据报文,再经过应用代理A处理后,又从第二端口发出去,从而能够保证数据报文准确的从应用适配装置A转发。
S604,用户态加速装置将第一数据报文传输给引流装置所在的网卡。
其中,云服务器还包括:宿主机,用户态加速装置设置在POD中,或者设置在宿主机中。
具体的,在本公开中,参照图5,用户态加速装置54设置在宿主机,则多个POD共用一个用户态加速装置54。这样一方面可以降低内存资源的消耗。另一方面由于POD中硬件较多,用户态加速装置54设置在内核态能够降低POD的臃肿。
此外,用户态加速装置也可以设置在POD中,使每个POD都具有一个用户态加速装置,这样能够使用户态加速装置更专一的对一个POD服务,能够提高数据报文的传输速度。
此外,用户态加速装置包括AF-XDP,用户态加速装置将第一数据报文传输给引流装置所在的网卡,包括:采用AF-XDP,将第一数据报文传输到共享内存,然后将共享内存的第一数据报文传输给引流装置所在的网卡。
其中,由于应用适配装置A是设置在用户态,网卡A是设置在内核态。因此应用适配装置A和网卡A之间不能直接进行数据传输,因此需要采用AF-XDP将应用适配装置A的第一数据报文传输至共享内存,然后通过共享内存传输给网卡。
S605,网卡将第一数据报文传输给网络接口。
其中,应用适配装置和引流装置均支持IPv4协议栈和IPv6协议栈。具体的,网卡包括引流装置,因此引流装置的端口也为网卡的端口。由于网卡设置在内核态,网卡即需要在内核态进行数据传输,也需要和用户态的用户加速装置进行数据传输。因此,网卡需要支持双栈协议。
S606,网络接口将第一数据报文传输给第二POD。
其中,网络接口可以是虚拟接口Veth,也可以是其他硬件接口,如sriov vf(srv)。具体的,由于本公开中第一POD中的网络接口A和ethoA是配套使用的。并且网络接口A是用于和第二POD进行通信,不需要通过容器网络以及虚拟VPC网络等。因此,本公开可以使用Veth虚拟网络接口作为POD的网络接口。
本公开通过重定向加速装置将应用服务发送给内核态的第一数据报文重定向至用户态的应用代理,避免了第一数据报文需要内核态的协议栈进行传输,从而降低了由于内核态协议栈的消耗引起的时延,加快了应用服务之间的报文传输速度,进而提高了用户体验。
图7示出本公开提供的一种数据报文传输方法的步骤流程图,该数据报文传输方法应用于云服务器,云服务器包括:用户态加速装置和多个POD,POD包括:设置在用户态的应用服务、应用适配装置和应用代理,以及设置在内核态的重定向加速装置、引流装置和网络接口;该数据报文传输方法,具体包括以下步骤:
S701,引流装置通过网卡劫持网络接口传输的第二数据报文。
其中,本公开应用于图5所示的云服务器在应用服务接收数据报文时,对应POD中各硬件的执行逻辑中。具体的,云服务器中每个POD接收数据报文的方式相同。在此,参照图5,以第一POD51接收第二POD52发送的数据报文举例说明本公开。
参照图5,第二POD52的网络接口B发出的第二数据报文,经过第一POD51的网络接口A,传输给引流装置A。
其中,应用适配装置和引流装置均支持IPv4协议栈和IPv6协议栈。
具体的,由于引流装置设置在内核态,引流装置即需要在内核态进行数据传输,也需要和用户态的用户加速装置进行数据传输。因此,引流装置需要支持双栈协议。
S702,引流装置根据第二数据报文,确定第二数据报文需要应用代理进行处理。
第一种方式,根据第二数据报文,确定第二数据报文需要应用代理进行处理,包括:读取第二数据报文的第二源端口地址;若第二源端口地址在预先配置的第一目标端口地址范围时,则确定第二数据报文需要应用代理进行处理。
其中,若第二源端口地址不在第一目标端口范围时,引流装置将第二数据报文传输给内核态。
在本公开中,第一目标端口地址范围是配置装置53预先给引流装置配置的,根据第二源端口地址是否在第一目标端口地址范围,确定第二数据报文是否需要加速,如果需要则发送给用户态加速装置,然后发送至应用代理,若不需要则发送给内核态,通过内核态的TCP/IP发送至应用服务A。
在本公开中,采用上述第一种方式通过获取第二数据报文的第二源端口地址,能够快速的确定第二数据报文是否为要加速的数据报文。
第二种方式,根据第二数据报文,确定第二数据报文需要应用代理进行处理,包括:读取第二数据报文的第二目的端口地址;若第二目的端口地址在预先配置的第二目标端口地址范围时,则确定第二数据报文需要应用代理进行处理。
此外,若第二目的端口地址不在第二目标端口范围时,引流装置将第二数据报文传输给内核态。
在本公开中,第二目标端口地址范围也是配置装置53预先给引流装置配置的,根据第二目的端口地址是否在第二目标端口地址范围,确定第二数据报文是否需要加速,如果需要则发送给用户态加速装置,然后发送至应用代理,若不需要则发送给内核态,通过内核态的TCP/IP发送至应用服务A。
在本公开中,采用上述第二种方式通过获取第二数据报文的第二目的端口地址,能够快速的确定第二数据报文是否为要加速的数据报文。
第三种方式,根据第二数据报文,确定第二数据报文需要应用代理进行处理,包括:若第二数据报文为地址解析协议报文,则确定第二数据报文需要应用代理进行处理。
其中,地址解析协议报文(ARP)是需要内核态和用户态均获取到,这样才能学习对应的MAC地址协议,保证各数据报文顺利通过内核态或用户态传输。
具体的,地址解析协议报文是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。地址解析协议是建立在网络中各个主机互相信任的基础上的,局域网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗。ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等。
在本公开中,采用上述第三种方式,能够准确的将ARP报文发送给用户态加速装置处理,避免由于用户态加速装置无法获得ARP报文,影响到用户态学习对应的MAC地址协议。
在本公开中,除以上三种方式的第二数据报文之外的其他数据报文,可以均发给内核态进行处理,因此本公开的引流装置能够对从网络接口传输进来的第二数据报文进行筛选,进而确定哪些第二数据报文需要加速哪些不需要加速,需要加速的第二数据报文发送给用户态加速装置进行加速传输。
S703,引流装置将第二数据报文传输至用户态加速装置。
首先,引流装置在接收到第二数据报文后,先判断第二数据报文是否合法。具体为,若第二数据报文的字节数小于或等于预设字节(如16字节),则该第二数据报文为合法的,合法后执行后续流程。若第二数据报文的字节数大于预设字节,则该第二数据报文是非法的,则直接发送给内核态进行处理。其中,预设字节的大小可根据具体需要设置。
其中,对于ARP报文,引流装置可以通过以下几种方式传输至用户态加速装置。
第一种方式,引流装置将第二数据报文传输至用户态加速装置,包括:复制第二数据报文;将其中一第二数据报文广播传输给用户态加速装置。
此外,将另一第二数据报文广播传输给内核态。
其中,具体的,引流装置设置在网卡中,引流装置通过网卡劫持到第二数据报文后,将第二数据报文进行复制(克隆),则得到相同的两份第二数据报文,将这两份第二数据报文通过广播分别发送至用户态加速装置和内核态,进而使用户态和内核态均获取到ARP报文。
进一步的,该第一种方式通过广播方式能够将第二数据报文分别传输给用户态和内核态。
第二种方式,可选的,云服务器还包括配置装置53,引流装置将第二数据报文传输至用户态加速装置,包括:将第二数据报文传输给内核态,以使配置装置在内核态订阅第二数据报文的内核态表项,并在内核态表项发生变化时,将内核态表项同步配置至用户态加速装置;其中,内核态表项为存储在内核态的映射表。
在本公开中,可以先将第二数据报文传输给内核态,然后通过配置装置将内核态的第二数据报文配置给用户态加速装置,同样可以使用户态和内核态均获取到ARP报文。
进一步的,该第二种方式通过内核态表项能够将第二数据报文分别传输给用户态和内核态。
第三种方式,引流装置将第二数据报文传输至用户态加速装置之后,还包括:配置装置在用户态订阅第二数据报文的用户态表项;若用户态表项发生变化,配置装置将用户态表项同步配置至内核态,其中,用户态表项为存储在用户态的映射表。
在本公开中,可以先将第二数据报文传输给用户态加速装置,然后通过配置装置将内核态的第二数据报文配置给内核态,同样可以使用户态和内核态均获取到ARP报文。
进一步的,该第三种方式通过用户态表项能够将第二数据报文分别传输给用户态和内核态。
第四种方式,引流装置将第二数据报文传输至用户态加速装置,包括:将接收到的第二数据报文传输至内核态,以通过配置在内核态中针对第二数据报文的第一钩子函数,将第二数据报文同步至用户态加速装置。
在本公开中,可以在内核态对第二数据报文的处理逻辑中增加第一钩子函数(hook点),该第一钩子函数可以将内核态的第二数据报文同步至用户态加速装置,同样可以使用户态和内核态均获取到ARP报文。
进一步的,该第四种方式通过配置第一钩子函数能够将第二数据报文分别传输给用户态和内核态。
第五种方式,引流装置将第二数据报文传输至用户态加速装置之后,还包括:通过配置在用户态中针对第二数据报文的第二钩子函数,将第二数据报文同步至内核态。
在本公开中,可以在用户态加速装置中对第二数据报文的处理逻辑中增加第二钩子函数(hook点),该第二钩子函数可以将内核态的第二数据报文同步至内核态,同样可以使用户态和内核态均获取到ARP报文。
进一步的,该第五种方式通过配置第二钩子函数能够将第二数据报文分别传输给用户态和内核态。
此外,参照图8,示出了引流装置A的基本要素,其中,AF-XDP prog为ebpf(extended Berkeley Packet Filter,扩展伯克利包过滤器)程序,用于控制报文的走向。xsk_map是存放用户态加速装置中的afxdp插件注册的特殊socket,afxdp prog可以控制将第二数据报文重定向到该特殊socket,进而将第二数据报文送入用户态装置。binging_port map为存放监听的第一目标端口地址范围,对应上述若第二源端口地址在第一目标端口地址范围内容,则需要将该第二数据报文送入用户态加速装置,其中,需要通过配置装置将第一目标端口地址范围设置到Binging_port map。Local_port map用于存放第二目标端口地址范围,若引流装置劫持到的第二数据报文的第二目的端口地址属于该第二目标端口地址范围,则将第二数据报文传输用户态加速装置。
S704,用户态加速装置将第二数据报文传输至应用适配装置。
其中,用户态加速装置包括AF-XDP,用户态加速装置将第二数据报文传输至应用适配装置,包括:采用AF-XDP,将第二数据报文传输到共享内存,然后将共享内存的第二数据报文传输给应用适配装置。
具体的,由于应用适配装置A是设置在用户态,引流装置A是设置在内核态。因此应用适配装置A和引流装置A之间不能直接进行数据传输,因此需要采用AF-XDP将第二数据报文传输至共享内存,然后通过共享内存传输给应用适配装置A。
此外,云服务器还包括:宿主机,用户态加速装置设置在POD中,或者设置在宿主机中。
S705,应用适配装置将第二数据报文传输给应用代理进行处理,并将应用代理处理后的第二数据报文传输给重定向加速装置。
其中,应用适配装置包括:第一应用适配端口和第二应用适配端口;第一应用适配端口用于与重定向加速装置通信,第二应用适配端口用于与用户态加速装置通信,应用适配装置将第二数据报文传输给应用代理进行处理,并将应用代理处理后的第二数据报文传输给重定向加速装置,包括:应用适配装置接收第二数据报文,并记录接收第二数据报文第二应用适配端口的第二应用适配端口地址;将第二数据报文传输给应用代理进行处理,并接收应用代理处理的第二数据报文;若记录的第二应用适配端口地址属于预先配置的第三目标端口地址范围,则将第二数据报文通过第一应用适配端口传输给重定向加速装置。
具体的,配置装置53给应用适配装置预先配置第三目标端口地址范围,应用适配装置的执行逻辑是,判断接收到的数据报文是从第一应用适配端口还是第二应用适配端口进来的,若接收到的数据报文是从第一应用适配端口进入应用适配装置A的,则数据报文中携带的端口地址包括第一应用适配端口的第一应用适配端口地址,该第一应用端口地址不属于预先配置的第三目标端口地址范围,因此将该数据报文从第二应用适配端口发送给用户态加速装置。若接收到的数据报文是从第二应用适配端口进入应用适配装置A的,则数据报文中携带的端口地址包括第二应用适配端口的第二应用适配端口地址,该第二应用适配端口地址属于预先配置的第三目标端口地址范围,将该数据报文从第一应用适配端口发送给重定向加速装置。这样可以避免从第一应用适配端口进入应用适配装置A的数据报文,再经过应用代理A处理后,又从第一应用适配端口发出去,也可以避免第二应用适配端口进入应用适配装置A的数据报问,再经过应用代理A处理后,又从第二应用适配端口发出去,从而能够保证数据报文准确的从应用适配装置A转发。
S706,重定向加速装置将第二数据报文传输给第一POD的应用服务。
重定向加速装置将第二数据报文传输给第一POD的应用服务,包括:重定向加速装置读取第二数据报文的第二源端口地址和第二目的端口地址;根据第二源端口地址和第二目的端口地址,在第一映射表中确定第一映射关系,第一映射关系为第二源端口地址和第二目的端口地址的对应关系;根据第一映射关系,在第一映射表中查找对应的第二映射关系,第一映射表中存储有第一映射关系和第二映射关系的对应关系,第二映射关系为第二端口地址和第二目的端口地址的对应关系;确定第二映射关系的第二目的端口地址对应的第二端口地址;根据第二端口地址,将第二数据报文传输给应用服务。
在本公开中,在步骤S602中,应用服务A在往出去发送第一数据报文时,便创建了第一映射表,以及在第一映射表中存储有第一映射关系和第二映射关系。则在第二数据报文返回应用服务A时,可以通过第一映射关系和第二映射关系进行重定向,发送给应用服务A。
示例性的,第二数据报文的第二源端口地址C(127.0.0.1:15001)和第二目的端口地址A(172.10.1.1:370058),根据第二源端口地址C(127.0.0.1:15001)和第二目的端口地址A(172.10.1.1:370058),在第一映射表(sockmap)中确定第一映射关系(skops1),该第一映射关系对应的第二映射关系(skops2)的第二目的端口地址A(172.10.1.1:370058)对应的第二端口地址B(172.10.1.2.1000),采用该第二端口地址B(172.10.1.2.1000)替换第二源端口地址C(127.0.0.1:15001),使第二数据报文的源端口地址为第二端口地址B(172.10.1.2.1000),其中,第二数据报文的第二目的端口地址为A(172.10.1.1:370058)。则第二数据报文与第一数据报文的第一源端口地址A(172.10.1.1:370058)和第一目的端口地址对应。能够使第一数据报文的回包(第二数据报文)能够准确的传输给应用服务A,避免端口冲突的问题。
此外,配置装置,配置应用服务的工作网段,以及配置应用适配装置,用户态加速装置和引流装置的端口地址范围。
具体的,在公开中配置装置用于配置用户态加速装置,如配置用户态加速装置的哪一个端口和内核态通信(网卡),哪一个端口和用户态(应用适配装置)通信。再者,配置装置还用于配置引流装置,具体为,配置哪一个端口和用户态加速装置通信,以及配置劫持网卡的端口。此外,配置内核态源端口范围,该端口范围不能和用户态加速装置的端口范围冲突。在重定向加速装置中配置k8s的应用服务的网段,如果访问的是k8s的应用服务,则需要重定向加速装置进行重定向。综上,配置装置通过给用户态加速装置、引流装置、应用适配装置配置相应的端口,能够避免端口冲突的问题。
本公开提供了一种基于主流容器网络加速服务网格的方法,可以将用户态加速装置脱离网卡限制,实现广泛应用。本公开相对于现有的应用服务之间的数据报文传输,可以有效降低时延。
此外,在本公开中,参照图5,第一POD51中的应用服务A的第一数据报文发送至第二POD52中的应用服务B,所经过的链路明显少于图2至图4中应用服务A到应用服务B之间的链路,进而本公开能够通过减少链路降低时延。再者,在本公开中,将第一数据报文或第二数据报文重定向至用户态进行传输,能够避免由于内核态的协议栈以及内核态的臃肿,造成数据报文传输的时延增长的问题。
进一步的,在本公开中,相对于图2和图4的云服务器,设置的重定向加速装置,能够通过Istio流量劫持将应用服务发送出去的第一数据报文重定向给用户态的应用适配装置,将应用服务要接收的第二数据报文准确返回给应用服务。设置的应用适配装置,能够将从重定向加速装置发送的第一数据报文发送至用户态加速装置,将从用户态加速装置发送的第二数据报文发送给重定向加速装置,避免在需要将数据报文从用户态和内核态之间转发时,出现转发错误的问题。设置的用户态加速装置能够实现将数据报文通过用户态转发实现降低时延的效果。设置的引流装置能够对接收的第二数据报文劫持至用户态加速装置,避免第二数据报文走内核态增加时延的问题。
示例性介质
在介绍了本公开示例性实施方式的方法之后,接下来,参考图9对本公开示例性实施方式的存储介质进行说明。
参考图9所示,描述了根据本公开的实施方式的用于实现上述方法的程序产品90,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开的程序产品不限于此。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开公开操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备。
示例性系统
在介绍了本公开示例性实施方式的介质之后,接下来,参考图10对本公开示例性实施方式的数据报文传输系统进行说明,用于实现上述任一方法实施例中的方法,其实现原理和技术效果类似,在此不再赘述。
图10示出本公开提供的一种数据报文传输系统的结构框图,该数据报文传输系统100应用于云服务器,云服务器包括:用户态加速装置和多个POD,POD包括:设置在用户态的应用服务、应用适配装置和应用代理,以及设置在内核态的重定向加速装置、引流装置和网络接口。该数据报文传输系统100包括:应用服务101、重定向加速装置102、应用适配装置103、用户态加速装置104、网卡105和网络接口106,具体如下:
应用服务101,用于将第一POD的应用服务发出的第一数据报文传输给第一POD的重定向加速装置;
重定向加速装置102,用于将接收到的第一数据报文重定向至应用适配装置;
应用适配装置103,用于将第一数据报文传输给应用代理进行处理,并将应用代理进行处理后的第一数据报文传输给用户态加速装置;
用户态加速装置104,用于将第一数据报文传输给引流装置所在的网卡;
网卡105,用于将第一数据报文传输给网络接口;
网络接口106,用于将第一数据报文传输给第二POD。
在本公开的另一个实施例中,应用适配装置和引流装置均支持IPv4协议栈和IPv6协议栈。
在本公开的另一个实施例中,重定向加速装置102具体用于:拦截传输给TCP的第一数据报文;读取第一数据报文中第一目的端口地址;将第一目的端口地址替换成应用代理的第一端口地址;根据第一端口地址,将第一数据报文传输至应用适配装置。
在本公开的另一个实施例中,重定向加速装置102还具体用于:监听TCP连接状态的变化;在TCP连接状态建立时,创建第一映射表;获取第一数据报文的第一源端口地址和第一目的端口地址,以及应用适配装置的第一端口的第一端口地址;在第一映射表中存储第一映射关系和第二映射关系,第一映射关系为第一源端口地址和第一端口地址的对应关系,第二映射关系为第一源端口地址和第一目的端口地址的对应关系。
在本公开的另一个实施例中,用户态加速装置104包括AF-XDP,用户态加速装置,具体用于:采用AF-XDP,将第一数据报文传输到共享内存,然后将共享内存的第一数据报文传输给引流装置所在的网卡。
图11示出本公开提供的一种数据报文传输系统的结构框图,该数据报文传输系统110应用于云服务器,云服务器包括:用户态加速装置和多个POD,POD包括:设置在用户态的应用服务、应用适配装置和应用代理,以及设置在内核态的重定向加速装置、引流装置和网络接口。该数据报文传输系统110包括:应用服务111、重定向加速装置112、应用适配装置113、用户态加速装置114、引流装置115和网络接口116,具体如下:
引流装置115,用于通过网卡劫持网络接口传输的第二数据报文;根据第二数据报文,确定第二数据报文需要应用代理进行处理;将第二数据报文传输至用户态加速装置;
用户态加速装置114,用于将第二数据报文传输至应用适配装置;
应用适配装置113,用于将第二数据报文传输给应用代理进行处理,并将应用代理处理后的第二数据报文传输给重定向加速装置;
重定向加速装置112,用于将第二数据报文传输给第一POD的应用服务。
在本公开的一个实施例中,应用适配装置和引流装置均支持IPv4协议栈和IPv6协议栈。
在本公开的另一个实施例中,引流装置115具体用于:读取第二数据报文的第二源端口地址;若第二源端口地址在预先配置的第一目标端口地址范围时,则确定第二数据报文需要应用代理进行处理。
在本公开的另一个实施例中,引流装置115还用于:若第二源端口地址不在第一目标端口范围时,将第二数据报文传输给内核态。
在本公开的另一个实施例中,引流装置115具体用于:读取第二数据报文的第二目的端口地址;若第二目的端口地址在预先配置的第二目标端口地址范围时,则确定第二数据报文需要应用代理进行处理。
在本公开的另一个实施例中,引流装置115还用于:若第二目的端口地址不在第二目标端口范围时,将第二数据报文传输给内核态。
在本公开的另一个实施例中,引流装置115具体用于:若第二数据报文为地址解析协议报文,则确定第二数据报文需要应用代理进行处理。
在本公开的另一个实施例中,引流装置115具体用于:复制第二数据报文;将其中一第二数据报文广播传输给用户态加速装置;数据报文传输方法,还包括:将另一第二数据报文广播传输给内核态。
在本公开的另一个实施例中,云服务器还包括配置装置(未示出),引流装置具体用于:将第二数据报文传输给内核态,以使配置装置在内核态订阅第二数据报文的内核态表项,并在内核态表项发生变化时,将内核态表项同步配置至用户态加速装置;其中,内核态表项为存储在内核态的映射表。
在本公开的另一个实施例中,配置装置,用于在用户态订阅第二数据报文的用户态表项;若用户态表项发生变化,将用户态表项同步配置至内核态,其中,用户态表项为存储在用户态的映射表。
在本公开的另一个实施例中,引流装置115具体用于:将接收到的第二数据报文传输至内核态,以通过配置在内核态中针对第二数据报文的第一钩子函数,将第二数据报文同步至用户态加速装置。
在本公开的另一个实施例中,引流装置115还用于:通过配置在用户态中针对第二数据报文的第二钩子函数,将第二数据报文同步至内核态。
在本公开的另一个实施例中,用户态加速装置114包括AF-XDP,用户态加速装置具体用于:采用AF-XDP,将第二数据报文传输到共享内存,然后将共享内存的第二数据报文传输给应用适配装置。
在本公开的另一个实施例中,应用适配装置113包括:第一应用适配端口和第二应用适配端口;第一应用适配端口用于与重定向加速装置通信,第二应用适配端口用于与用户态加速装置通信,应用适配装置具体用于:接收第二数据报文,并记录接收第二数据报文第二应用适配端口的第二应用适配端口地址;将第二数据报文传输给应用代理进行处理,并接收应用代理处理的第二数据报文;若记录的第二应用适配端口地址属于预先配置的第三目标端口地址范围,则将第二数据报文通过第一应用适配端口传输给重定向加速装置。
在本公开的另一个实施例中,重定向加速装置112具体用于:读取第二数据报文的第二源端口地址和第二目的端口地址;根据第二源端口地址和第二目的端口地址,在第一映射表中确定第一映射关系,第一映射关系为第二源端口地址和第二目的端口地址的对应关系;根据第一映射关系,在第一映射表中查找对应的第二映射关系,第一映射表中存储有第一映射关系和第二映射关系的对应关系,第二映射关系为第二端口地址和第二目的端口地址的对应关系;确定第二映射关系的第二目的端口地址对应的第二端口地址;根据第二端口地址,将第二数据报文传输给应用服务。
在本公开的另一个实施例中,配置装置,用于配置应用服务的工作网段,以及配置应用适配装置,用户态加速装置和引流装置的端口地址范围。
在本公开的另一个实施例中,云服务器还包括:宿主机,用户态加速装置设置在POD中,或者设置在宿主机中。
本公开提供的数据报文传输系统可以执行图6和/或图7所示的点击率确定方法,具体内容参照上述点击率确定方法的说明,在此不再赘述。
示例性计算设备
在介绍了本公开示例性实施方式的方法、介质和装置之后,接下来,参考图12对本公开示例性实施方式的计算设备进行说明。
图12显示的计算设备120仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图12所示,计算设备120以通用计算设备的形式表现。计算设备40的组件可以包括但不限于:上述至少一个处理单元121、上述至少一个存储单元122,连接不同系统组件(包括处理单元121和存储单元122)的总线123。
总线123包括数据总线、控制总线和地址总线。
存储单元122可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM1221和/或高速缓存存储器1222,可以进一步包括非易失性存储器形式的可读介质,例如只读存储器(ROM)1223。
存储单元122还可以包括具有一组(至少一个)程序模块1224的程序/实用工具1225,这样的程序模块1224包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
计算设备120也可以与一个或多个外部设备124(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(I/O)接口125进行。并且,计算设备120还可以通过网络适配器126与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图12所示,网络适配器126通过总线123与计算设备120的其它模块通信。应当理解,尽管图中未示出,可以结合计算设备120使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
应当注意,尽管在上文详细描述中提及了数据报文传输系统的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
此外,尽管在附图中以特定顺序描述了本公开方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本公开的精神和原理,但是应该理解,本公开并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本公开旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。

Claims (48)

1.一种数据报文传输方法,应用于云服务器,所述云服务器包括:用户态加速装置和多个POD,所述POD包括:设置在用户态的应用服务、应用适配装置和应用代理,以及设置在内核态的重定向加速装置、引流装置和网络接口;所述数据报文传输方法,包括:
第一POD的应用服务发出的第一数据报文传输给所述第一POD的重定向加速装置;
所述重定向加速装置将接收到的所述第一数据报文重定向至所述应用适配装置;
所述应用适配装置将所述第一数据报文传输给所述应用代理进行处理,并将所述应用代理进行处理后的第一数据报文传输给所述用户态加速装置;
所述用户态加速装置将所述第一数据报文传输给所述引流装置所在的网卡;
所述网卡将所述第一数据报文传输给所述网络接口;
所述网络接口将所述第一数据报文传输给第二POD。
2.根据权利要求1所述的数据报文传输方法,所述应用适配装置和所述引流装置均支持IPv4协议栈和IPv6协议栈。
3.根据权利要求1所述的数据报文传输方法,所述重定向加速装置将接收到的所述第一数据报文重定向至所述应用适配装置,包括:所述重定向加速装置执行以下步骤:
拦截传输给TCP的所述第一数据报文;
读取所述第一数据报文中第一目的端口地址;
将所述第一目的端口地址替换成所述应用代理的第一端口地址;
根据所述第一端口地址,将所述第一数据报文传输至所述应用适配装置。
4.根据权利要求1所述的数据报文传输方法,所述重定向加速装置将接收到的所述第一数据报文重定向至所述应用适配装置之前,还包括:
所述重定向加速装置监听TCP连接状态的变化;
在所述TCP连接状态建立时,创建第一映射表;
获取所述第一数据报文的第一源端口地址和第一目的端口地址,以及所述应用适配装置的第一端口的第一端口地址;
在所述第一映射表中存储第一映射关系和第二映射关系,所述第一映射关系为所述第一源端口地址和所述第一端口地址的对应关系,所述第二映射关系为所述第一源端口地址和所述第一目的端口地址的对应关系。
5.根据权利要求1至4任一项所述的数据报文传输方法,所述用户态加速装置包括AF-XDP,所述用户态加速装置将所述第一数据报文传输给所述引流装置所在的网卡,包括:
采用所述AF-XDP,将所述第一数据报文传输到共享内存,然后将所述共享内存的所述第一数据报文传输给所述引流装置所在的网卡。
6.根据权利要求1至4任一项所述的数据报文传输方法,所述云服务器还包括:宿主机,所述用户态加速装置设置在所述POD中,或者设置在所述宿主机中。
7.一种数据报文传输方法,应用于云服务器,所述云服务器包括:用户态加速装置和多个POD,所述POD包括:设置在用户态的应用服务、应用适配装置和应用代理,以及设置在内核态的重定向加速装置、引流装置和网络接口;所述数据报文传输方法,包括:
所述引流装置通过网卡劫持所述网络接口传输的第二数据报文;
所述引流装置根据所述第二数据报文,确定所述第二数据报文需要所述应用代理进行处理;
所述引流装置将所述第二数据报文传输至所述用户态加速装置;
所述用户态加速装置将所述第二数据报文传输至所述应用适配装置;
所述应用适配装置将所述第二数据报文传输给所述应用代理进行处理,并将所述应用代理处理后的第二数据报文传输给所述重定向加速装置;
所述重定向加速装置将所述第二数据报文传输给第一POD的应用服务。
8.根据权利要求7所述的数据报文传输方法,所述应用适配装置和所述引流装置均支持IPv4协议栈和IPv6协议栈。
9.根据权利要求7所述的数据报文传输方法,所述根据所述第二数据报文,确定所述第二数据报文需要所述应用代理进行处理,包括:
读取所述第二数据报文的第二源端口地址;
若所述第二源端口地址在预先配置的第一目标端口地址范围时,则确定所述第二数据报文需要所述应用代理进行处理。
10.根据权利要求9所述的数据报文传输方法,还包括:
若所述第二源端口地址不在所述第一目标端口范围时,所述引流装置将所述第二数据报文传输给内核态。
11.根据权利要求7所述的数据报文传输方法,所述根据所述第二数据报文,确定所述第二数据报文需要所述应用代理进行处理,包括:
读取第二数据报文的第二目的端口地址;
若所述第二目的端口地址在预先配置的第二目标端口地址范围时,则确定所述第二数据报文需要所述应用代理进行处理。
12.根据权利要求11所述的数据报文传输方法,还包括:
若所述第二目的端口地址不在所述第二目标端口范围时,所述引流装置将所述第二数据报文传输给内核态。
13.根据权利要求7所述的数据报文传输方法,所述根据所述第二数据报文,确定所述第二数据报文需要所述应用代理进行处理,包括:
若所述第二数据报文为地址解析协议报文,则确定所述第二数据报文需要所述应用代理进行处理。
14.根据权利要求12所述的数据报文传输方法,所述引流装置将所述第二数据报文传输至所述用户态加速装置,包括:
复制所述第二数据报文;
将其中一第二数据报文广播传输给所述用户态加速装置;
所述数据报文传输方法,还包括:将另一第二数据报文广播传输给所述内核态。
15.根据权利要求7所述的数据报文传输方法,所述云服务器还包括配置装置,所述引流装置将所述第二数据报文传输至所述用户态加速装置,包括:
将所述第二数据报文传输给所述内核态,以使所述配置装置在所述内核态订阅第二数据报文的内核态表项,并在所述内核态表项发生变化时,将所述内核态表项同步配置至所述用户态加速装置;
其中,所述内核态表项为存储在所述内核态的映射表。
16.根据权利要求15所述的数据报文传输方法,所述引流装置将所述第二数据报文传输至所述用户态加速装置之后,还包括:
所述配置装置在所述用户态订阅第二数据报文的用户态表项;
若所述用户态表项发生变化,所述配置装置将所述用户态表项同步配置至所述内核态,其中,所述用户态表项为存储在所述用户态的映射表。
17.根据权利要求7所述的数据报文传输方法,所述引流装置将所述第二数据报文传输至所述用户态加速装置,包括:
将接收到的所述第二数据报文传输至所述内核态,以通过配置在所述内核态中针对所述第二数据报文的第一钩子函数,将所述第二数据报文同步至所述用户态加速装置。
18.根据权利要求7所述的数据报文传输方法,所述引流装置将所述第二数据报文传输至所述用户态加速装置之后,还包括:
通过配置在所述用户态中针对所述第二数据报文的第二钩子函数,将所述第二数据报文同步至所述内核态。
19.根据权利要求7至18任一项所述的数据报文传输方法,所述用户态加速装置包括AF-XDP,所述用户态加速装置将所述第二数据报文传输至所述应用适配装置,包括:
采用所述AF-XDP,将所述第二数据报文传输到共享内存,然后将所述共享内存的所述第二数据报文传输给所述应用适配装置。
20.根据权利要求7至18任一项所述的数据报文传输方法,所述应用适配装置包括:第一应用适配端口和第二应用适配端口;所述第一应用适配端口用于与所述重定向加速装置通信,所述第二应用适配端口用于与所述用户态加速装置通信,所述应用适配装置将所述第二数据报文传输给所述应用代理进行处理,并将所述应用代理处理后的第二数据报文传输给所述重定向加速装置,包括:
所述应用适配装置接收所述第二数据报文,并记录接收所述第二数据报文第二应用适配端口的第二应用适配端口地址;
将所述第二数据报文传输给所述应用代理进行处理,并接收所述应用代理处理的第二数据报文;
若记录的所述第二应用适配端口地址属于预先配置的第三目标端口地址范围,则将所述第二数据报文通过所述第一应用适配端口传输给所述重定向加速装置。
21.根据权利要求7至18任一项所述的数据报文传输方法,所述重定向加速装置将所述第二数据报文传输给所述第一POD的应用服务,包括:
所述重定向加速装置读取所述第二数据报文的第二源端口地址和第二目的端口地址;
根据所述第二源端口地址和所述第二目的端口地址,在第一映射表中确定第一映射关系,所述第一映射关系为所述第二源端口地址和所述第二目的端口地址的对应关系;
根据所述第一映射关系,在所述第一映射表中查找对应的第二映射关系,所述第一映射表中存储有所述第一映射关系和所述第二映射关系的对应关系,所述第二映射关系为第二端口地址和所述第二目的端口地址的对应关系;
确定第二映射关系的第二目的端口地址对应的所述第二端口地址;
根据所述第二端口地址,将所述第二数据报文传输给所述应用服务。
22.根据权利要求15所述的数据报文传输方法,还包括:
所述配置装置,配置应用服务的工作网段,以及配置所述应用适配装置,所述用户态加速装置和所述引流装置的端口地址范围。
23.根据权利要求7至18任一项所述的数据报文传输方法,所述云服务器还包括:宿主机,所述用户态加速装置设置在所述POD中,或者设置在所述宿主机中。
24.一种数据报文传输系统,应用于云服务器,所述云服务器包括:用户态加速装置和多个POD,所述POD包括:设置在用户态的应用服务、应用适配装置和应用代理,以及设置在内核态的重定向加速装置、引流装置和网络接口;所述数据报文传输系统,包括:
所述应用服务,用于将第一POD的所述应用服务发出的第一数据报文传输给所述第一POD的重定向加速装置;
所述重定向加速装置,用于将接收到的所述第一数据报文重定向至所述应用适配装置;
所述应用适配装置,用于将所述第一数据报文传输给所述应用代理进行处理,并将所述应用代理进行处理后的第一数据报文传输给所述用户态加速装置;
所述用户态加速装置,用于将所述第一数据报文传输给所述引流装置所在的网卡;
所述网卡,用于将所述第一数据报文传输给所述网络接口;
所述网络接口,用于将所述第一数据报文传输给第二POD。
25.根据权利要求24所述的数据报文传输系统,所述应用适配装置和所述引流装置均支持IPv4协议栈和IPv6协议栈。
26.根据权利要求24所述的数据报文传输系统,所述重定向加速装置,具体用于:
拦截传输给TCP的所述第一数据报文;
读取所述第一数据报文中第一目的端口地址;
将所述第一目的端口地址替换成所述应用代理的第一端口地址;
根据所述第一端口地址,将所述第一数据报文传输至所述应用适配装置。
27.根据权利要求24所述的数据报文传输系统,所述重定向加速装置还具体用于:
监听TCP连接状态的变化;
在所述TCP连接状态建立时,创建第一映射表;
获取所述第一数据报文的第一源端口地址和第一目的端口地址,以及所述应用适配装置的第一端口的第一端口地址;
在所述第一映射表中存储第一映射关系和第二映射关系,所述第一映射关系为所述第一源端口地址和所述第一端口地址的对应关系,所述第二映射关系为所述第一源端口地址和所述第一目的端口地址的对应关系。
28.根据权利要求24至27任一项所述的数据报文传输系统,所述用户态加速装置包括AF-XDP,所述用户态加速装置,具体用于:
采用所述AF-XDP,将所述第一数据报文传输到共享内存,然后将所述共享内存的所述第一数据报文传输给所述引流装置所在的网卡。
29.根据权利要求24至27任一项所述的数据报文传输系统,所述云服务器还包括:宿主机,所述用户态加速装置设置在所述POD中,或者设置在所述宿主机中。
30.一种数据报文传输系统,应用于云服务器,所述云服务器包括:用户态加速装置和多个POD,所述POD包括:设置在用户态的应用服务、应用适配装置和应用代理,以及设置在内核态的重定向加速装置、引流装置和网络接口;所述数据报文传输系统,包括:
所述引流装置,用于通过网卡劫持所述网络接口传输的第二数据报文;根据所述第二数据报文,确定所述第二数据报文需要所述应用代理进行处理;将所述第二数据报文传输至所述用户态加速装置;
所述用户态加速装置,用于将所述第二数据报文传输至所述应用适配装置;
所述应用适配装置,用于将所述第二数据报文传输给所述应用代理进行处理,并将所述应用代理处理后的第二数据报文传输给所述重定向加速装置;
所述重定向加速装置,用于将所述第二数据报文传输给第一POD的应用服务。
31.根据权利要求30所述的数据报文传输系统,所述应用适配装置和所述引流装置均支持IPv4协议栈和IPv6协议栈。
32.根据权利要求30所述的数据报文传输系统,所述引流装置,具体用于:
读取所述第二数据报文的第二源端口地址;
若所述第二源端口地址在预先配置的第一目标端口地址范围时,则确定所述第二数据报文需要所述应用代理进行处理。
33.根据权利要求32所述的数据报文传输系统,所述引流装置还用于:若所述第二源端口地址不在所述第一目标端口范围时,将所述第二数据报文传输给内核态。
34.根据权利要求30所述的数据报文传输系统,所述引流装置具体用于:
读取第二数据报文的第二目的端口地址;
若所述第二目的端口地址在预先配置的第二目标端口地址范围时,则确定所述第二数据报文需要所述应用代理进行处理。
35.根据权利要求34所述的数据报文传输系统,所述引流装置还用于:
若所述第二目的端口地址不在所述第二目标端口范围时,将所述第二数据报文传输给内核态。
36.根据权利要求30所述的数据报文传输系统,所述引流装置具体用于:
若所述第二数据报文为地址解析协议报文,则确定所述第二数据报文需要所述应用代理进行处理。
37.根据权利要求35所述的数据报文传输系统,所述引流装置具体用于:
复制所述第二数据报文;
将其中一第二数据报文广播传输给所述用户态加速装置;
所述引流装置还用于:将另一第二数据报文广播传输给所述内核态。
38.根据权利要求30所述的数据报文传输系统,所述云服务器还包括配置装置,所述引流装置具体用于:
将所述第二数据报文传输给所述内核态,以使所述配置装置在所述内核态订阅第二数据报文的内核态表项,并在所述内核态表项发生变化时,将所述内核态表项同步配置至所述用户态加速装置;
其中,所述内核态表项为存储在所述内核态的映射表。
39.根据权利要求38所述的数据报文传输系统,所述配置装置,用于在所述用户态订阅第二数据报文的用户态表项;若所述用户态表项发生变化,将所述用户态表项同步配置至所述内核态,其中,所述用户态表项为存储在所述用户态的映射表。
40.根据权利要求30所述的数据报文传输系统,所述引流装置具体用于:
将接收到的所述第二数据报文传输至所述内核态,以通过配置在所述内核态中针对所述第二数据报文的第一钩子函数,将所述第二数据报文同步至所述用户态加速装置。
41.根据权利要求30所述的数据报文传输系统,所述引流装置还用于:通过配置在所述用户态中针对所述第二数据报文的第二钩子函数,将所述第二数据报文同步至所述内核态。
42.根据权利要求30至41任一项所述的数据报文传输系统,所述用户态加速装置包括AF-XDP,所述用户态加速装置具体用于:
采用所述AF-XDP,将所述第二数据报文传输到共享内存,然后将所述共享内存的所述第二数据报文传输给所述应用适配装置。
43.根据权利要求30至41任一项所述的数据报文传输系统,所述应用适配装置包括:第一应用适配端口和第二应用适配端口;所述第一应用适配端口用于与所述重定向加速装置通信,所述第二应用适配端口用于与所述用户态加速装置通信,所述应用适配装置具体用于:
接收所述第二数据报文,并记录接收所述第二数据报文第二应用适配端口的第二应用适配端口地址;
将所述第二数据报文传输给所述应用代理进行处理,并接收所述应用代理处理的第二数据报文;
若记录的所述第二应用适配端口地址属于预先配置的第三目标端口地址范围,则将所述第二数据报文通过所述第一应用适配端口传输给所述重定向加速装置。
44.根据权利要求30至41任一项所述的数据报文传输系统,所述重定向加速装置具体用于:
读取所述第二数据报文的第二源端口地址和第二目的端口地址;
根据所述第二源端口地址和所述第二目的端口地址,在第一映射表中确定第一映射关系,所述第一映射关系为所述第二源端口地址和所述第二目的端口地址的对应关系;
根据所述第一映射关系,在所述第一映射表中查找对应的第二映射关系,所述第一映射表中存储有所述第一映射关系和所述第二映射关系的对应关系,所述第二映射关系为第二端口地址和所述第二目的端口地址的对应关系;
确定第二映射关系的第二目的端口地址对应的所述第二端口地址;
根据所述第二端口地址,将所述第二数据报文传输给所述应用服务。
45.根据权利要求38所述的数据报文传输系统,所述配置装置,用于配置应用服务的工作网段,以及配置所述应用适配装置,所述用户态加速装置和所述引流装置的端口地址范围。
46.根据权利要求30至41任一项所述的数据报文传输系统,所述云服务器还包括:宿主机,所述用户态加速装置设置在所述POD中,或者设置在所述宿主机中。
47.一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序指令,所述计算机程序指令被执行时,实现如权利要求1至23中任一项所述的数据报文传输方法。
48.一种计算设备,包括:存储器和处理器;
所述存储器用于存储程序指令;
所述处理器用于调用所述存储器中的程序指令执行如权利要求1至23中任一项所述的数据报文传输方法。
CN202111301110.8A 2021-11-04 2021-11-04 数据报文传输方法、介质、系统和计算设备 Active CN114025370B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111301110.8A CN114025370B (zh) 2021-11-04 2021-11-04 数据报文传输方法、介质、系统和计算设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111301110.8A CN114025370B (zh) 2021-11-04 2021-11-04 数据报文传输方法、介质、系统和计算设备

Publications (2)

Publication Number Publication Date
CN114025370A CN114025370A (zh) 2022-02-08
CN114025370B true CN114025370B (zh) 2023-08-08

Family

ID=80060812

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111301110.8A Active CN114025370B (zh) 2021-11-04 2021-11-04 数据报文传输方法、介质、系统和计算设备

Country Status (1)

Country Link
CN (1) CN114025370B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114710548B (zh) * 2022-03-22 2024-04-05 阿里巴巴(中国)有限公司 报文转发方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110716744A (zh) * 2019-10-21 2020-01-21 中国科学院空间应用工程与技术中心 一种数据流处理方法、系统和计算机可读存储介质
CN110933075A (zh) * 2019-11-28 2020-03-27 腾讯音乐娱乐科技(深圳)有限公司 服务调用方法、装置、电子设备及存储介质
CN112099900A (zh) * 2020-08-14 2020-12-18 北京思特奇信息技术股份有限公司 一种基于Sidecar模式的容器安全方法及系统
CN112119374A (zh) * 2018-05-21 2020-12-22 国际商业机器公司 使用替代服务器名称选择性地提供相互传输层安全
CN112511611A (zh) * 2020-11-19 2021-03-16 腾讯科技(深圳)有限公司 节点集群的通信方法、装置、系统及电子设备
CN113596171A (zh) * 2021-08-04 2021-11-02 杭州朗和科技有限公司 云计算数据交互方法、系统、电子设备及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11824765B2 (en) * 2018-12-19 2023-11-21 Cisco Technology, Inc. Fast redirect of traffic when pods fail
US20210328886A1 (en) * 2021-06-25 2021-10-21 Intel Corporation Methods and apparatus to facilitate service proxying

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112119374A (zh) * 2018-05-21 2020-12-22 国际商业机器公司 使用替代服务器名称选择性地提供相互传输层安全
CN110716744A (zh) * 2019-10-21 2020-01-21 中国科学院空间应用工程与技术中心 一种数据流处理方法、系统和计算机可读存储介质
CN110933075A (zh) * 2019-11-28 2020-03-27 腾讯音乐娱乐科技(深圳)有限公司 服务调用方法、装置、电子设备及存储介质
CN112099900A (zh) * 2020-08-14 2020-12-18 北京思特奇信息技术股份有限公司 一种基于Sidecar模式的容器安全方法及系统
CN112511611A (zh) * 2020-11-19 2021-03-16 腾讯科技(深圳)有限公司 节点集群的通信方法、装置、系统及电子设备
CN113596171A (zh) * 2021-08-04 2021-11-02 杭州朗和科技有限公司 云计算数据交互方法、系统、电子设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
InterDigital France R amp ; amp ; D, SAS.S4aV200577 "Review of the test conditions in TR 26.955".3GPP tsg_sa\wg4_codec.2020,(3gpp_sa4_ahoc_mtgs),全文. *

Also Published As

Publication number Publication date
CN114025370A (zh) 2022-02-08

Similar Documents

Publication Publication Date Title
US11934341B2 (en) Virtual RDMA switching for containerized
US9935920B2 (en) Virtualization gateway between virtualized and non-virtualized networks
US7111303B2 (en) Virtual machine operating system LAN
US8363656B2 (en) Multiple virtual machines sharing a single IP address
US8743894B2 (en) Bridge port between hardware LAN and virtual switch
US10841256B2 (en) Upgrading components of a messaging system used by a microservice-based application
US7721299B2 (en) Zero-copy network I/O for virtual hosts
US7996569B2 (en) Method and system for zero copy in a virtualized network environment
US7093024B2 (en) End node partitioning using virtualization
US20040267866A1 (en) Virtual machine connection to a tangible network
US20090328073A1 (en) Method and system for low-overhead data transfer
US20080098197A1 (en) Method and System For Address Translation With Memory Windows
US11563799B2 (en) Peripheral device enabling virtualized computing service extensions
CN111262784A (zh) 报文转发方法、报文转发装置、存储介质及电子设备
US11520530B2 (en) Peripheral device for configuring compute instances at client-selected servers
CN114025370B (zh) 数据报文传输方法、介质、系统和计算设备
US7561585B2 (en) Manufacture and method for accelerating network address translation
US20070121621A1 (en) Integrated active-active fibre channel capability in SATA and SAS devices
US6931449B2 (en) Method migrating open network connections
EP3884628A1 (en) Provider network service extensions

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
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address

Address after: 310052 Room 301, Building No. 599, Changhe Street Network Business Road, Binjiang District, Hangzhou City, Zhejiang Province

Patentee after: Hangzhou NetEase Shuzhifan Technology Co.,Ltd.

Address before: 310052 Room 301, Building No. 599, Changhe Street Network Business Road, Binjiang District, Hangzhou City, Zhejiang Province

Patentee before: HANGZHOU LANGHE TECHNOLOGY Ltd.

CP03 Change of name, title or address