CN115514828A - 数据传输方法及电子设备 - Google Patents
数据传输方法及电子设备 Download PDFInfo
- Publication number
- CN115514828A CN115514828A CN202211136072.XA CN202211136072A CN115514828A CN 115514828 A CN115514828 A CN 115514828A CN 202211136072 A CN202211136072 A CN 202211136072A CN 115514828 A CN115514828 A CN 115514828A
- Authority
- CN
- China
- Prior art keywords
- gateway device
- data message
- transmission
- data
- multilink
- 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
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/14—Multichannel or multilink protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/66—Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
-
- 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/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/14—Systems for two-way working
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Multimedia (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种数据传输方法及电子设备,其中方法应用于第一网关设备,所述第一网关设备与第二网关设备之间建立有多条传输链路,所述传输链路的通信类型不同,应用于第一网关设备的方法包括:接收客户端发送的数据报文;在所述数据报文满足多链路传输条件的情况下,对所述数据报文添加多链路报头;将所述数据报文通过所述多条传输链路传输到所述第二网关设备,以使得所述第二网关设备将所述数据报文传输给服务端。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种数据传输方法及电子设备。
背景技术
目前多采用多路传输控制协议MPTCP(Multipath Transmission ControlProtocol)让通信双方使用多条路径进行数据通信,以提高网络利用率。例如,在手机进行视频通话过程中,同时使用5G和WiFi传输视频数据。
但是,存在终端不支持MPTCP的情况,导致无法提高数据传输中的网络利用率。
发明内容
有鉴于此,本申请提供一种数据传输方法及电子设备,如下:
一种数据传输方法,应用于第一网关设备,所述第一网关设备与第二网关设备之间建立有多条传输链路,所述传输链路的通信类型不同,所述方法包括:
接收客户端发送的数据报文;
在所述数据报文满足多链路传输条件的情况下,对所述数据报文添加多链路报头;
将所述数据报文通过所述多条传输链路传输到所述第二网关设备,以使得所述第二网关设备将所述数据报文传输给服务端。
上述方法,优选的,所述多链路报头中至少包含:协议标识,所述协议标识表征所述数据报文对应的传输协议;
其中,所述协议标识通过对所述数据报文进行协议解析得到。
上述方法,优选的,所述数据报文满足多链路传输条件,包括:
所述第一网关设备上存储有流表,且所述流表中包含有与所述数据报文相对应的应用服务配置信息。
上述方法,优选的,所述流表中的应用服务配置信息通过以下方式获得:
所述第一网关设备建立所述第一网关设备和所述第二网关设备之间的控制链路;
所述第一网关设备通过所述控制链路接收所述第二网关设备发送的应用服务配置信息,所述应用服务配置信息包含所述服务端的应用服务信息;
所述第一网关设备将所述应用服务配置信息添加到所述流表中。
上述方法,优选的,所述接收客户端发送的数据报文,包括:
在所述第一网关设备的内核态接收客户端发送的数据报文,并通过预设的传输接口将所述数据报文传输到所述第一网关设备的用户态;
其中,所述对所述数据报文添加多链路报头,包括:
在所述第一网关设备的用户态,对所述数据报文添加多链路报头。
上述方法,优选的,在对所述数据报文添加多链路报头之前,所述方法还包括:
对所述数据报文进行协议解析,以得到所述数据报文对应的传输协议;
根据所述传输协议,对所述数据报文进行协议栈处理。
一种数据传输方法,应用于第二网关设备,所述第二网关设备与第一网关设备之间建立有多条传输链路,所述传输链路的通信类型不同,所述方法包括:
通过所述多条传输链路接收所述第一网关设备发送的数据报文,所述数据报文由所述第一网关设备对客户端的数据报文添加多链路报头得到;
对所述数据报文中的多链路报头进行解封装,以得到不带有所述多链路报头的数据报文;
将所述数据报文传输给服务端。
上述方法,优选的,所述多链路报头中至少包含:协议标识,所述协议标识表征所述数据报文对应的传输协议;
其中,在将所述数据报文传输给服务端之前,所述方法还包括:
根据所述协议标识所表征的传输协议,对所述数据报文进行协议栈处理。
一种电子设备,作为第一网关设备,所述第一网关设备与第二网关设备之间建立有多条传输链路,所述传输链路的通信类型不同,所述第一网关设备包括:
存储器,用于存储计算机程序以及所述计算机程序运行所产生的数据;
处理器,用于执行所述计算机程序,以实现:接收客户端发送的数据报文;在所述数据报文满足多链路传输条件的情况下,对所述第一数据报文添加多链路报头;将所述数据报文通过所述多条传输链路传输到所述第二网关设备,以使得所述第二网关设备将所述数据报文传输给服务端。
一种电子设备,作为第二网关设备,所述第二网关设备与第一网关设备之间建立有多条传输链路,所述传输链路的通信类型不同,所述第二网关设备包括:
存储器,用于存储计算机程序以及所述计算机程序运行所产生的数据;
处理器,用于执行所述计算机程序,以实现:通过所述多条传输链路接收所述第一网关设备发送的数据报文,所述数据报文由所述第一网关设备对客户端的数据报文添加多链路报头得到;对所述数据报文中的多链路报头进行解封装,以得到不带有所述多链路报头的数据报文;将所述数据报文传输给服务端。
从上述技术方案可以看出,本申请公开的一种数据传输方法及电子设备中,在客户端和服务端两侧分别配置相应的网关设备,在客户端侧的网关设备与服务端侧的网关设备之间建立有多条通信类型不同的传输链路,基于此,客户端侧的网关设备在接收到客户端发送的数据报文之后,判断数据报文是否满足多链路传输条件,而在数据报文满足多链路传输条件的情况下,对数据报文添加多链路报头,进而在将带有多链路报头的数据报文通过多条传输链路传输到服务端侧的网关设备之后,服务端侧的网关设备能够将数据报文传输到服务端,由此,本申请中可以通过配置在客户端和服务端两侧的网关设备实现客户端和服务端之间的多链路传输,不受限于客户端与服务端是否支持多链路传输,由此提高客户端与服务端之间的网络利用率。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例一提供的一种数据传输方法的流程图;
图2为本申请中多链路传输的架构图;
图3为本申请实施例一提供的一种数据传输方法的部分流程图;
图4为本申请实施例二提供的一种数据传输方法的流程图;
图5为本申请实施例三提供的一种数据传输装置的结构示意图;
图6为本申请实施例三提供的一种数据传输装置的另一结构示意图;
图7为本申请实施例四提供的一种数据传输装置的结构示意图;
图8为本申请实施例五提供的一种电子设备的结构示意图;
图9为本申请实施例六提供的一种电子设备的结构示意图;
图10为本申请适用于APP1时MPTCP网关设备在用户态与内核态之间进行数据流量快速转发的示例图;
图11为本申请适用于APP1时在原有报头的基础上添加多链路报头的示例图;
图12为本申请适用于APP1时多链路报头ENCAP HDR的示例图;
图13为本申请适用于APP1的多链路传输架构图;
图14为本申请适用于APP1时客户端侧网关的处理流程图;
图15为本申请适用于APP1时服务端侧网关的处理流程图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参考图1所示,为本申请实施例一提供的一种数据传输方法的实现流程图,该方法可以应用于能够进行数据处理的电子设备,如配置在客户端侧的第一网关设备,而服务端侧配置有第二网关设备,第一网关设备与第二网关设备之间建立有多条传输链路,如图2中所示,这多条传输链路可以为基于MPTCP的传输链路,这些传输链路的通信类型不同,如4G、5G、LTE(Long Term Evolution)链路、WiFi链路等。本实施例中的技术方案主要用于提高客户端与服务端之间的网络利用率。
具体的,本实施例中的方法可以包含如下步骤:
步骤101:接收客户端发送的数据报文。
其中,数据报文为客户端需要发送到服务端的报文,数据报文中至少具有表征服务端所提供的服务的服务类型的标识,即服务端为客户端上装载的应用程序提供相应的应用服务的类型,例如,聊天应用服务的类型、购物应用服务的类型、支付应用服务的类型。
例如,以客户端为用户手机为例,手机中启动聊天应用,用户使用聊天应用通过聊天应用对应的供应商后台服务器与其他用户手机之间进行视频通话,此时,用户手机将视频通话的相应数据如视频画面或控制指令等生成相应的数据报文,并将该数据报文向服务器发送。
需要说明的是,客户端可以为独立的终端,或者,客户端可以为边缘网络。相应的,数据报文可以为独立终端如手机需要向服务端发送的数据报文,或者,数据报文可以为边缘网络中需要向服务端发送的数据报文。
另外,第一网关设备可以对应于一个或多个客户端,第一网关设备上可以接收到一个或多个客户端发送的数据报文。
步骤102:判断数据报文是否满足多链路传输条件,在数据报文满足多链路传输条件的情况下,执行步骤103。
其中,多链路传输条件是指表征数据报文可以通过多链路传输至服务端的条件。
具体的,本实施例中可以通过判断数据报文中的标识所表征服务端所提供的服务的服务类型是否为已经注册有多链路传输服务的服务类型,如果是,那么可以确定数据报文满足多链路传输条件。
例如,数据报文满足多链路传输条件可以为:第一网关设备上存储有流表,且流表中包含有与数据报文相对应的应用服务配置信息。
其中,流表中存储有至少一项应用服务配置信息,应用服务配置信息为服务端提供的应用服务对应的服务配置信息,该应用服务配置信息为服务端在注册多链路传输服务时生成的信息,以表征服务端提供的应用服务的类型。
基于此,本实施例中可以在第一网关设备存储的流表中查询是否有与数据报文中的标识所表征的服务类型相对应的应用服务配置信息,如果在流表中能够查询到与数据报文中的标识所表征的服务类型相对应的应用服务配置信息,那么可以确定流表中有与数据报文相对应的应用服务配置信息,也就可以确定:数据报文中的标识所表征的服务类型已经注册有多链路传输服务,此时,可以确定数据报文满足多链路传输条件。
步骤103:对数据报文添加多链路报头。
其中,多链路报头为表征需要对数据报文进行多链路传输的报头。
具体的,多链路报头中可以包含有协议标识、同步码、报文长度等字段。其中的协议标识表征数据报文对应的传输协议,如IPv4或IPv6或其他协议,协议标识可以通过对数据报文进行协议解析得到;而同步码用于同步传输,报文长度用于表征数据报文的长度。
具体的,在第一网关设备上接收到满足多链路传输条件的数据报文之后,直接对数据报文添加表征需要进行多链路传输的多链路报头,以便于后续多链路传输处理。
步骤104:将数据报文通过多条传输链路传输到第二网关设备,以使得第二网关设备将数据报文传输给服务端。
需要说明的是,如果在步骤102中判断出数据报文不满足多链路传输条件,那么无需对数据报文添加多链路报头。基于此,如果在步骤102中判断出数据报文不满足多链路传输条件,那么可以采用常规传输方式将数据报文传输到第二网关设备,例如,采用单一的传输链路通过路由表查询后将数据报文传输到下一个网络节点。
另外,第二网关设备可以对应于一个或多个服务端,第二网关设备可以根据数据报文中的IP地址和端口将数据报文发送到相应的服务端。
从上述技术方案可以看出,本申请实施例一提供的一种数据传输方法中,在客户端和服务端两侧分别配置相应的网关设备,在客户端侧的网关设备与服务端侧的网关设备之间建立有多条通信类型不同的传输链路,基于此,客户端侧的网关设备在接收到客户端发送的数据报文之后,判断数据报文是否满足多链路传输条件,而在数据报文满足多链路传输条件的情况下,对数据报文添加多链路报头,进而在将带有多链路报头的数据报文通过多条传输链路传输到服务端侧的网关设备之后,服务端侧的网关设备能够将数据报文传输到服务端,由此,本实施例中可以通过配置在客户端和服务端两侧的网关设备实现客户端和服务端之间的多链路传输,不受限于客户端与服务端是否支持多链路传输,由此提高客户端与服务端之间的网络利用率。
在一种实现方式中,流表中的应用服务配置信息通过以下方式获得,如图3中所示:
步骤301:第一网关设备建立第一网关设备和第二网关设备之间的控制链路。
例如,第一网关设备通过预配置的第二网关设备的IP地址和端口建立Websocket连接,以便于第一网关设备与第二网关设备之间传输信息。
步骤302:第一网关设备通过控制链路接收第二网关设备发送的应用服务配置信息。
其中,第二网关设备可以在控制链路被建立之后,将自己的应用服务配置信息通过控制链路向第一网关设备发送,基于此,第一网关设备通过控制链路接收到第二网关设备的应用服务配置信息。
具体的,应用服务配置信息中包含服务端的应用服务信息,如聊天应用的信息、购物应用的信息、支付应用的信息。
需要说明的是,第二网关设备可以对应于一个或多个服务端,第一网关设备一侧可以接收到一个或多个服务端的应用服务信息。
步骤303:第一网关设备将应用服务配置信息添加到流表中。
基于此,流表中保存有第二网关设备对应的服务端的应用服务配置信息。
在一种实现方式中,步骤101中在接收客户端发送的数据报文时,具体可以为:
在第一网关设备的内核态接收客户端发送的数据报文,并通过预设的传输接口将数据报文传输到第一网关设备的用户态,这一过程中,在第一网关设备的内核态不对数据报文进行系统调用和内核协议栈等其他处理。
其中,传输接口可以为UIO/VFIO接口、AF_XDP接口或AF_PACK接口,由此,在第一网关设备上节省一次系统调用和内核协议栈处理,以提高数据报文的传输效率。
基于以上实现,步骤103中在对数据报文添加多链路报头时,具体可以是在第一网关设备的用户态对数据报文添加多链路报头。之后,在第一网关设备上将添加有多链路报头的数据报文在内核态通过系统调用以及内核协议栈等处理后,将数据报文从内核的多条传输链路发送到第二网关设备,以便于第二网关设备将数据报文发送到相应的服务端。
在一种实现方式中,步骤103中在对数据报文添加多链路报头之前,可以先对数据报文进行协议解析,以得到数据报文对应的传输协议,由此,根据传输协议,对数据报文进行协议栈处理。例如,对IPv4协议的数据报文进行IPv4协议栈处理,或者,对IPv6协议的数据报文进行IPv6协议栈处理,等等。
参考图4,为本申请实施例二提供的一种数据传输方法的实现流程图,该方法可以适用于能够进行数据处理的电子设备,如配置在服务端侧的第二网关设备,如图2中所示,客户端侧配置有第一网关设备,第一网关设备与第二网关设备之间建立有多条传输链路,这多条传输链路可以为基于MPTCP的传输链路。本实施例中的技术方案主要用于提高客户端与服务端之间的网络利用率。
具体的,本实施例中的方法可以包含如下步骤:
步骤401:通过多条传输链路接收第一网关设备发送的数据报文。
其中,数据报文由第一网关设备对客户端的数据报文添加多链路报头得到。第一网关设备在接收到客户端发送的数据报文后为数据报文添加多链路报头的具体实现方式可以参考前文中的实施例。
步骤402:对数据报文中的多链路报头进行解封装,以得到不带有多链路报头的数据报文。
其中,本实施例可以对数据报文中的多链路报头进行截取,进而得到多链路报头和不带有多链路报头的数据报文。
步骤403:将数据报文传输给服务端。
在具体实现中,多链路报头中至少包含:协议标识,协议标识表征数据报文对应的传输协议,基于此,在步骤403之前,第二网关设备可以先根据协议标识所表征的传输协议,对数据报文进行协议栈处理,之后,第二网关设备在将数据报文传输给相应的服务端。
其中,第二网关设备可以在内核态接收第一网关设备通过多条传输链路传输来的数据报文,第二网关设备可以在内核态对数据报文进行系统调用和内核协议栈处理,之后,将数据报文传输到用户态,第二网关设备在用户态对数据报文中的多链路报头进行解封装,以得到不带有多链路报文的数据报文,然后,第二网关设备根据多链路报头中的协议标识对数据报文进行相应的协议解析处理,例如,对IPv4协议的数据报文进行IPv4协议栈处理,或者,对IPv6协议的数据报文进行IPv6协议栈处理,等等,然后,第二网关设备将处理后的数据报文发送到相应的服务端。
参考图5,为本申请实施例三提供的一种数据传输装置的结构示意图,该装置可以配置在能够进行数据处理的电子设备,如配置在客户端侧的第一网关设备,而服务端侧配置有第二网关设备,第一网关设备与第二网关设备之间建立有多条传输链路,如图2中所示,这多条传输链路可以为基于MPTCP的传输链路,这些传输链路的通信类型不同,如4G/5G链路、WiFi链路等。本实施例中的技术方案主要用于提高客户端与服务端之间的网络利用率。
具体的,本实施例中的装置可以包含如下单元:
报文接收单元501,用于接收客户端发送的数据报文;
条件判断单元502,用于判断数据博文是否满足多链路传输条件,在所述数据报文满足多链路传输条件的情况下,触发报头添加单元503;
报头添加单元503,用于对所述数据报文添加多链路报头;
报文传输单元504,用于将所述数据报文通过所述多条传输链路传输到所述第二网关设备,以使得所述第二网关设备将所述数据报文传输给服务端。
从上述技术方案可以看出,本申请实施例三提供的一种数据传输装置中,在客户端和服务端两侧分别配置相应的网关设备,在客户端侧的网关设备与服务端侧的网关设备之间建立有多条通信类型不同的传输链路,基于此,客户端侧的网关设备在接收到客户端发送的数据报文之后,判断数据报文是否满足多链路传输条件,而在数据报文满足多链路传输条件的情况下,对数据报文添加多链路报头,进而在将带有多链路报头的数据报文通过多条传输链路传输到服务端侧的网关设备之后,服务端侧的网关设备能够将数据报文传输到服务端,由此,本实施例中可以通过配置在客户端和服务端两侧的网关设备实现客户端和服务端之间的多链路传输,不受限于客户端与服务端是否支持多链路传输,由此提高客户端与服务端之间的网络利用率。
在一种实现方式中,所述多链路报头中至少包含:协议标识,所述协议标识表征所述数据报文对应的传输协议;其中,所述协议标识通过对所述数据报文进行协议解析得到。
在一种实现方式中,所述数据报文满足多链路传输条件,包括:所述第一网关设备上存储有流表,且所述流表中包含有与所述数据报文相对应的应用服务配置信息。
在一种实现方式中,本实施例中的装置还可以包含如下单元,如图6中所示:
流表处理单元505,用于建立所述第一网关设备和所述第二网关设备之间的控制链路;通过所述控制链路接收所述第二网关设备发送的应用服务配置信息,所述应用服务配置信息包含所述服务端的应用服务信息;将所述应用服务配置信息添加到所述流表中。
在一种实现方式中,报文接收单元501具体用于:在所述第一网关设备的内核态接收客户端发送的数据报文,并通过预设的传输接口将所述数据报文传输到所述第一网关设备的用户态;
其中,报头添加单元503具体用于:在所述第一网关设备的用户态,对所述数据报文添加多链路报头。
在一种实现方式中,报头添加单元503在对所述数据报文添加多链路报头之前,还用于:对所述数据报文进行协议解析,以得到所述数据报文对应的传输协议;根据所述传输协议,对所述数据报文进行协议栈处理。
需要说明的是,本实施例中各单元的具体实现可以参考前文中的相应内容,此处不再详述。
参考图7,为本申请实施例四提供的一种数据传输装置的结构示意图,该装置可以配置在能够进行数据处理的电子设备,如配置在服务端侧的第二网关设备,如图2中所示,客户端侧配置有第一网关设备,第一网关设备与第二网关设备之间建立有多条传输链路,这多条传输链路可以为基于MPTCP的传输链路。本实施例中的技术方案主要用于提高客户端与服务端之间的网络利用率。
具体的,本实施例中的装置可以包含如下单元:
报文接收单元701,用于通过所述多条传输链路接收所述第一网关设备发送的数据报文,所述数据报文由所述第一网关设备对客户端的数据报文添加多链路报头得到;
报头解封单元702,用于对所述数据报文中的多链路报头进行解封装,以得到不带有所述多链路报头的数据报文;
报文传输单元703,用于将所述数据报文传输给服务端。
在一种实现方式中,所述多链路报头中至少包含:协议标识,所述协议标识表征所述数据报文对应的传输协议;在报文传输单元703将所述数据报文传输给服务端之前,报头解封单元702还用于:根据所述协议标识所表征的传输协议,对所述数据报文进行协议栈处理。
参考图8,为本申请实施例五提供的一种电子设备的结构示意图,该电子设备作为第一网关设备为能够进行数据处理的电子设备,如配置在客户端侧的第一网关设备,而服务端侧配置有第二网关设备,第一网关设备与第二网关设备之间建立有多条传输链路,如图2中所示,这多条传输链路可以为基于MPTCP的传输链路,这些传输链路的通信类型不同,如4G/5G链路、WiFi链路等。本实施例中的技术方案主要用于提高客户端与服务端之间的网络利用率。
具体的,第一网关设备可以包含如下结构:
存储器801,用于存储计算机程序以及所述计算机程序运行所产生的数据;
处理器802,用于执行所述计算机程序,以实现:接收客户端发送的数据报文;在所述数据报文满足多链路传输条件的情况下,对所述第一数据报文添加多链路报头;将所述数据报文通过所述多条传输链路传输到所述第二网关设备,以使得所述第二网关设备将所述数据报文传输给服务端。
当然,第一网关设备中还包含有通信模块,以便于接收数据报文和发送数据报文。
从上述技术方案可以看出,本申请实施例五提供的一种电子设备中,在客户端和服务端两侧分别配置相应的网关设备,在客户端侧的网关设备与服务端侧的网关设备之间建立有多条通信类型不同的传输链路,基于此,客户端侧的网关设备在接收到客户端发送的数据报文之后,判断数据报文是否满足多链路传输条件,而在数据报文满足多链路传输条件的情况下,对数据报文添加多链路报头,进而在将带有多链路报头的数据报文通过多条传输链路传输到服务端侧的网关设备之后,服务端侧的网关设备能够将数据报文传输到服务端,由此,本实施例中可以通过配置在客户端和服务端两侧的网关设备实现客户端和服务端之间的多链路传输,不受限于客户端与服务端是否支持多链路传输,由此提高客户端与服务端之间的网络利用率。
参考图9,为本申请实施例六提供的一种电子设备的结构示意图,该电子设备作为第二网关设备为能够进行数据处理的电子设备,如配置在服务端侧的第二网关设备,如图2中所示,客户端侧配置有第一网关设备,第一网关设备与第二网关设备之间建立有多条传输链路,这多条传输链路可以为基于MPTCP的传输链路。本实施例中的技术方案主要用于提高客户端与服务端之间的网络利用率。
具体的,本实施例中的第二网关设备可以包含如下结构:
存储器901,用于存储计算机程序以及所述计算机程序运行所产生的数据;
处理器902,用于执行所述计算机程序,以实现:通过所述多条传输链路接收所述第一网关设备发送的数据报文,所述数据报文由所述第一网关设备对客户端的数据报文添加多链路报头得到;对所述数据报文中的多链路报头进行解封装,以得到不带有所述多链路报头的数据报文;将所述数据报文传输给服务端。
当然,第二网关设备中还包含有通信模块,以便于接收数据报文和发送数据报文。
从上述技术方案可以看出,本申请实施例六提供的一种电子设备中,在客户端和服务端两侧分别配置相应的网关设备,在客户端侧的网关设备与服务端侧的网关设备之间建立有多条通信类型不同的传输链路,基于此,客户端侧的网关设备在接收到客户端发送的数据报文之后,判断数据报文是否满足多链路传输条件,而在数据报文满足多链路传输条件的情况下,对数据报文添加多链路报头,进而在将带有多链路报头的数据报文通过多条传输链路传输到服务端侧的网关设备之后,服务端侧的网关设备能够将数据报文传输到服务端,由此,本实施例中可以通过配置在客户端和服务端两侧的网关设备实现客户端和服务端之间的多链路传输,不受限于客户端与服务端是否支持多链路传输,由此提高客户端与服务端之间的网络利用率。
基于以上实施例,以客户端为手机为例,本申请中实现一种支持MPTCP的网关设备,可以以VNF/CNF形式部署在通用硬件上,客户端侧和服务端侧之间使用MPTCP建立多路径连接(多条传输链路),以支持边缘侧(客户端侧)与服务端侧的多种网络栈和组网。
首先,如图10中所示,MPTCP网关设备可以在用户态(User Space)与内核态(Kernel Space)之间进行数据流量快速转发。其中,内核态通过NIC网络接口控制器(network interface controller)传输数据报文,在硬件层Hardwares的基础上,构建驱动层Drivers,基于此,构建内核态和用户态。基于此,客户端将数据报文发送到客户端侧网关(Client GW)的内核态,客户端侧网关在内核态使用UIO/VFIO、AF_XDP或AF_PACK接口驱动来旁路内核协议栈实现流量高速收发(multipule driver methods),进而将数据报文发送到用户态进行处理,之后经网关处理后通过系统调用从MPTCP通道(mptcp_tunnel)由内核(包含网络层internet、传输层transport和中间软件抽象层socket api)将流量转发出去,而在服务端侧网关(Server GW)类似,由此整个流量路径在客户端和服务端两侧分别减少一次系统调用(one less syscall)和内核协议栈处理,可有效提高数据转发效率。
其次,边缘侧的网关解析客户端接入的流量,经流表查询后,匹配到MEC平台应用的流量会对其使用MPTCP通道(即数据报文满足多链路传输条件),将客户端数据报文作为Payload封装于MPTCP报头之中传输到服务端侧网关,服务端侧网关将MPTCP的流量进行解封装后在本地做NAT后进行路由查找发送至MEC平台内部的应用服务。
另外,MPTCP网关实现了一个新封装头定义(即多链路报头),如图11,在原有报头的基础上,添加多链路报头,原有报头中包含有协议标识如IPv4、IPv6或多协议标签交换协议MPLS(Multi-Protocol Label Switching),还包含有TCP标识以及原有的payload。而被添加的作为多链路报头的头部主要用来封装边缘侧的各种业务流量,头部中包含有IP字段、MPTCP标识字段和多链路报头ENCAP HDR字段,其中,ENCAP HDR的结构如图12中所示:Flags为协议标识(2个bytes),以表示本申请的多链路传输方案支持IPv4、IPv6、MPLS等多种协议报文并可扩展例如,bit为0表示IPv4,bit为1表示IPv6,bit为2表示MPLS,bit为3-15分别用于表示其他协议,SYNC CODE为同步码(4个bytes),即是用来报文同步的,Length为报文长度(2个bytes)。基于此,数据报文形成的流量在边缘侧网关会进行聚合,而在服务端会依据同步码被分散,从而可提高网络带宽利用率。
可见,本申请中的网关支持VNF/CNF形式进行灵活部署,不需要终端支持MPTCP,屏蔽了终端各系统差异,兼容MEC内部的负载均衡组网架构;而且,本申请中使用封装在MPTCPPayload透明传输的方式相比代理,可减少转发路径的系统调用IO(Input Output),无需在内核经过冗长协议栈对传输控制协议TCP(Transmission Control Protocol)进行多次解包封包,保证高性能传输,此外还可对用户数据报协议UDP(User Datagram Protocol)等流量提供可靠性和支持,并提供IPv4、IPv6、MPLS等多种域的转发。另外,本申请中的MPTCP网关不仅可打通单个终端与服务端侧之间的多链路传输,还可以用于一个边缘网络经过多路径接入到另一个边缘网络,实现一层Overlay网络。
结合图13中的架构图,以下对本申请的技术方案进行详细说明:
1、客户端侧网关设备client gateway上配置有客户端控制器ClientController,服务端侧网关设备server gateway上配置有服务端控制器ServerController,客户端上配置有应用APP1,服务端侧为APP1的Sever。Client Controller通过预配置的Server Controller IP地址和端口通过默认网络同Server Controller建立Websocket连接(即控制链路),建立连接后Server Controller向Client Controller发送服务端的应用服务配置信息,如数据面服务地址和端口以及已注册的应用服务信息,Client Controller接收到配置信息后通过RESTFULL或gRPC接口下发多连接服务地址和端口、流表配置到client gateway,随后client gateway向server gateway发起MPTCP多路径连接。如图13所示,client gateway有2个出口c1和c2,服务端有一个出口s1,可以建立两条多路径连接(多条传输链路),如subflow1为c1到s1的连接,subflow2为c2到s1的连接。
2、当APP1应用在MEC平台注册了多连接服务(即多链路传输服务),ServerController会根据注册的服务对server gateway下发APP1的流表配置信息,同时向ClientController发布服务所对应的配置信息,而Client Controller 会依据接收到的服务配置信息向对应的client gateway下发流表配置进行APP1应用流量特征匹配及策略服务。
3、接入client gateway的终端流量进入到client gateway后,首先经过网络协议解析后分别进入不同的协议栈处理,如图14中所示,在流量转发线程上,经过协议分流后的流量均会查找流表进行注册应用的流量匹配,未匹配上流表的默认本地查路由后转发,匹配上流表的流量会转入到MPTCP隧道进行ENCAP HDR头部封装转发,该头部会填写同步码SYNC CODE、协议标识Flags以及报文总长Length,随后发送到报文环形缓冲区(Lockless)完成当前线程的处理,随后IO线程从环形缓冲区中取出已准备好的报文,进行聚合(buffer)后从内核的MPTCP通道发出,该通道使用多路径完成到服务端的数据转发。
4、如图15中所示,Server gateway通过MPTCP通道分别收到不同路径转发来的流量后,在IO线程上,依据ENCAP HDR的同步码、Flags和报文长度将接收缓存块中数据重新分散为数据包并放入报文接收环形缓冲区;在流量转发线程上,MPTCP隧道从报文环形缓冲区取出已准备好的报文,通过ENCAP HDR中Flag识别流量的网络协议,将报文分流送入不同的网络域,IPv4及IPv6均需要查路由表进行转发,其中的IPv4的流量可以在出接口做NAT后送至MEC平台。
综上,本申请中的技术方案中,MPTCP网关以隧道形式直接打通客户侧和MEC服务侧的多路径连接,同时屏蔽了终端系统差异和MEC内部的网络架构;而且,本申请中,客户端业务流量被封装在MPTCP隧道之中,可使除TCP流量外的UDP等非可靠流量使用多路径同时提供可靠性保证,另外还可以实现一个边缘网络多路径接入到另一个边缘网络;另外,本申请中通过扩展的ENCAP HEADER头部信息,可支持客户与服务端平台打通IPv4、IPv6、MPLS多种形式网络,并具有扩展能力。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种数据传输方法,应用于第一网关设备,所述第一网关设备与第二网关设备之间建立有多条传输链路,所述传输链路的通信类型不同,所述方法包括:
接收客户端发送的数据报文;
在所述数据报文满足多链路传输条件的情况下,对所述数据报文添加多链路报头;
将所述数据报文通过所述多条传输链路传输到所述第二网关设备,以使得所述第二网关设备将所述数据报文传输给服务端。
2.根据权利要求1所述的方法,所述多链路报头中至少包含:协议标识,所述协议标识表征所述数据报文对应的传输协议;
其中,所述协议标识通过对所述数据报文进行协议解析得到。
3.根据权利要求1或2所述的方法,所述数据报文满足多链路传输条件,包括:
所述第一网关设备上存储有流表,且所述流表中包含有与所述数据报文相对应的应用服务配置信息。
4.根据权利要求3所述的方法,所述流表中的应用服务配置信息通过以下方式获得:
所述第一网关设备建立所述第一网关设备和所述第二网关设备之间的控制链路;
所述第一网关设备通过所述控制链路接收所述第二网关设备发送的应用服务配置信息,所述应用服务配置信息包含所述服务端的应用服务信息;
所述第一网关设备将所述应用服务配置信息添加到所述流表中。
5.根据权利要求1或2所述的方法,所述接收客户端发送的数据报文,包括:
在所述第一网关设备的内核态接收客户端发送的数据报文,并通过预设的传输接口将所述数据报文传输到所述第一网关设备的用户态;
其中,所述对所述数据报文添加多链路报头,包括:
在所述第一网关设备的用户态,对所述数据报文添加多链路报头。
6.根据权利要求1或2所述的方法,在对所述数据报文添加多链路报头之前,所述方法还包括:
对所述数据报文进行协议解析,以得到所述数据报文对应的传输协议;
根据所述传输协议,对所述数据报文进行协议栈处理。
7.一种数据传输方法,应用于第二网关设备,所述第二网关设备与第一网关设备之间建立有多条传输链路,所述传输链路的通信类型不同,所述方法包括:
通过所述多条传输链路接收所述第一网关设备发送的数据报文,所述数据报文由所述第一网关设备对客户端的数据报文添加多链路报头得到;
对所述数据报文中的多链路报头进行解封装,以得到不带有所述多链路报头的数据报文;
将所述数据报文传输给服务端。
8.根据权利要求7所述的方法,所述多链路报头中至少包含:协议标识,所述协议标识表征所述数据报文对应的传输协议;
其中,在将所述数据报文传输给服务端之前,所述方法还包括:
根据所述协议标识所表征的传输协议,对所述数据报文进行协议栈处理。
9.一种电子设备,作为第一网关设备,所述第一网关设备与第二网关设备之间建立有多条传输链路,所述传输链路的通信类型不同,所述第一网关设备包括:
存储器,用于存储计算机程序以及所述计算机程序运行所产生的数据;
处理器,用于执行所述计算机程序,以实现:接收客户端发送的数据报文;在所述数据报文满足多链路传输条件的情况下,对所述第一数据报文添加多链路报头;将所述数据报文通过所述多条传输链路传输到所述第二网关设备,以使得所述第二网关设备将所述数据报文传输给服务端。
10.一种电子设备,作为第二网关设备,所述第二网关设备与第一网关设备之间建立有多条传输链路,所述传输链路的通信类型不同,所述第二网关设备包括:
存储器,用于存储计算机程序以及所述计算机程序运行所产生的数据;
处理器,用于执行所述计算机程序,以实现:通过所述多条传输链路接收所述第一网关设备发送的数据报文,所述数据报文由所述第一网关设备对客户端的数据报文添加多链路报头得到;对所述数据报文中的多链路报头进行解封装,以得到不带有所述多链路报头的数据报文;将所述数据报文传输给服务端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211136072.XA CN115514828A (zh) | 2022-09-19 | 2022-09-19 | 数据传输方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211136072.XA CN115514828A (zh) | 2022-09-19 | 2022-09-19 | 数据传输方法及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115514828A true CN115514828A (zh) | 2022-12-23 |
Family
ID=84503037
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211136072.XA Pending CN115514828A (zh) | 2022-09-19 | 2022-09-19 | 数据传输方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115514828A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117527973A (zh) * | 2024-01-04 | 2024-02-06 | 深圳鼎信通达股份有限公司 | 基于xdp的高速数据转发方法、装置、语音网关及介质 |
-
2022
- 2022-09-19 CN CN202211136072.XA patent/CN115514828A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117527973A (zh) * | 2024-01-04 | 2024-02-06 | 深圳鼎信通达股份有限公司 | 基于xdp的高速数据转发方法、装置、语音网关及介质 |
CN117527973B (zh) * | 2024-01-04 | 2024-04-09 | 深圳鼎信通达股份有限公司 | 基于xdp的高速数据转发方法、装置、语音网关及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10757231B2 (en) | Providing network efficiencies in forwarding packets among provider networks and applying segment routing policies | |
US11799686B2 (en) | Methods and systems for transmitting information packets through tunnel groups at a network node | |
CN109889443B (zh) | 云计算系统和在云计算系统中实现演进分组核心(epc)的控制平面的方法 | |
US7653075B2 (en) | Processing communication flows in asymmetrically routed networks | |
CN112368980B (zh) | 用于将一个或多个在网业务添加到mpls网络中的方法 | |
CN109644190B (zh) | 两个终端之间的多路径udp通信方法 | |
CN110266578B (zh) | 用于传输和接收包的方法和系统 | |
US9923835B1 (en) | Computing path maximum transmission unit size | |
US20070283429A1 (en) | Sequence number based TCP session proxy | |
JP2001244957A (ja) | Tcp終端機能付きipルータ装置および媒体 | |
CN112583718B (zh) | 一种SRoU场景下SRv6报文传递方法、系统、设备及介质 | |
CN108282391B (zh) | 一种vxlan报文分片方法和装置 | |
CN111788812B (zh) | 用于分组数据转换的技术 | |
US9819730B2 (en) | System and method for network access based on application layer data | |
CN115514828A (zh) | 数据传输方法及电子设备 | |
US20110113145A1 (en) | Stateless Transmission Control Protocol Rendezvous Solution For Border Gateway Function | |
CN112005533A (zh) | 代理多路径协议连接的方法和设备 | |
CN113055268A (zh) | 隧道流量负载均衡的方法、装置、设备及介质 | |
WO2024041064A1 (zh) | Quic报文的传输方法及相关设备 | |
CN114424599B (zh) | 用于传输基于会话的包的方法和系统 | |
WO2022179454A1 (zh) | 一种数据处理方法、装置及芯片 | |
WO2020048622A1 (en) | A method, apparatus & computer program | |
CN116418854A (zh) | 自适应修改最大分段大小的方法、装置、设备及存储介质 | |
CN117376233A (zh) | 数据处理方法、装置及系统 | |
EP3525413A1 (en) | Connectionless protocol with bandwidth and congestion control |
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 |