CN112838983A - 数据传输方法、系统、设备、代理服务器及存储介质 - Google Patents
数据传输方法、系统、设备、代理服务器及存储介质 Download PDFInfo
- Publication number
- CN112838983A CN112838983A CN201911158732.2A CN201911158732A CN112838983A CN 112838983 A CN112838983 A CN 112838983A CN 201911158732 A CN201911158732 A CN 201911158732A CN 112838983 A CN112838983 A CN 112838983A
- Authority
- CN
- China
- Prior art keywords
- address
- network interface
- physical network
- packet header
- data packet
- 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
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/24—Multipath
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
-
- 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/22—Alternate routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
公开了一种数据传输方法、数据传输系统、设备、代理服务器及非暂时性机器可读存储介质。第一设备具有一个虚拟网络接口和多个物理网络接口,第一设备获取来自虚拟网络接口的第一数据包,第一数据包包括第一包头,第一包头包括第一源地址和第一目的地址,第一源地址为虚拟网络接口的地址,第一目的地址为第二设备的地址;为第一数据包添加第二包头,第二包头包括第二源地址和第二目的地址,第二源地址为选择的物理网络接口的地址,第二目的地址为代理服务器的地址;以及基于选择的物理网络接口发送第一数据包。由此,可以使得上层业务的数据流不再依赖于传输层的连接,并且通信双方间的数据传输通道不会因为真实的传输路径的变化而变化。
Description
技术领域
本公开涉及通信领域,特别是涉及一种数据传输方法、数据传输系统、设备、代理服务器及非暂时性机器可读存储介质。
背景技术
TCP连接时,一直以来都是只能绑定一个IP地址,但是随着多网卡主机越来越多,从一个主机到另一个主机往往都会有多条链路可以到达,这种情况下,如何充分利用这多条链路进行并行的传输或者作为链路备份,就变得十分有意义。
发明内容
本公开的一个目的在于提供一种能够实现多路径传输的数据传输方案。
根据本公开的第一个方面,提出了一种数据传输方法,适用于第一设备执行,其中,第一设备具有一个虚拟网络接口和多个物理网络接口,方法包括:获取来自虚拟网络接口的第一数据包,第一数据包包括第一包头,第一包头包括第一源地址和第一目的地址,第一源地址为虚拟网络接口的地址,第一目的地址为第二设备的地址;为第一数据包添加第二包头,第二包头包括第二源地址和第二目的地址,第二源地址为选择的物理网络接口的地址,第二目的地址为代理服务器的地址;以及基于选择的物理网络接口发送第一数据包。
可选地,该方法还包括:通过一个或多个物理网络接口向代理服务器发送接入请求;接收代理服务器发送的配置信息;以及基于配置信息,创建虚拟网络接口。
可选地,接入请求包括第一设备的身份信息,并且/或者配置信息包括代理服务器为第一设备分配的虚拟网络接口的地址信息。
可选地,该方法还包括:响应于物理网络接口接收到第二数据包,将第二数据包中的第四包头剥离,并将剥离第四包头后的第二数据包转发给虚拟网络接口,以由虚拟网络接口将剥离第二包头后的第二数据包发送给上层应用协议进行处理,其中,第二数据包包括第三包头和第四包头,第三包头包括第三源地址和第三目的地址,第三源地址为第二设备的地址,第三目的地址为第一设备的虚拟网络接口的地址,第四包头包括第四源地址和第四目标地址,第四源地址为代理服务器的地址,第四目标地址为第一设备的物理网络接口的地址。
可选地,该方法还包括:从多个物理网络接口中选择一个或多个物理网络接口。
可选地,从多个物理网络接口中选择一个或多个物理网络接口的步骤包括:根据以下至少一种因素从多个物理网络接口中选择一个或多个物理网络接口:网络类型、网络状态、网络带宽、网络延时、业务类型、应用类型。
可选地,从多个物理网络接口中选择一个或多个物理网络接口的步骤包括:根据物理网络接口对应的网络的网络类型及其网络状态,计算不同物理网络接口的权重,根据权重从多个物理网络接口中选择一个或多个物理网络接口,其中,每种网络类型对应预定的权重系数;并且/或者根据当前传输数据的业务类型、物理网络接口对应的网络的网络类型、以及网络状态,计算不同物理网络接口的权重,根据权重从多个物理网络接口中选择一个或多个物理网络接口,其中,每种业务类型在不同网络类型下具有对应的权重系数;并且/或者根据物理网络接口对应的网络的可用带宽,计算不同物理网络接口的权重,根据权重从多个物理网络接口中选择一个或多个物理网络接口,其中权重与可用带宽正相关;并且/或者根据物理网络接口对应的网络的可用带宽和网络延时,计算不同物理网络接口所负责的数据流量,根据计算结果,选择相应的物理网络接口进行数据发送;并且/或者根据业务类型的流量计费方式,从多个物理网络接口中选择一个或多个物理网络接口。
可选地,该方法还包括:响应于选择的物理网络接口对应的网络不可用,重新选择物理网络接口,并重新为第一数据包添加第二包头。
可选地,该方法还包括:为第一设备上的一个或多个应用程序设置权限,权限用于表征是否允许应用程序使用数据传输方法传输数据;并且/或者响应于第一设备上的应用程序的数据传输请求,判断该应用程序是否具有使用数据传输方法的使用权限,在判定该应用程序具有数据传输方法的使用权限的情况下,利用数据传输方法传输数据。
根据本公开的第二个方面,还提供了一种数据传输方法,适用于代理服务器执行,方法包括:接收第一设备发送的第一数据包,第一数据包包括第一包头和第二包头,第一包头包括第一源地址和第一目的地址,第一源地址为第一设备中虚拟网络接口的地址,第一目的地址为第二设备的地址,第二包头包括第二源地址和第二目的地址,第二源地址为选择的第一设备的物理网络接口的地址,第二目的地址为代理服务器的地址;将第一数据包中的第二包头剥离;以及将剥离第二包头后的第一数据包发送给第二设备。
可选地,该方法还包括:接收第二设备针对第一数据包发送的第二数据包,第二数据包包括第三包头,第三包头包括第三源地址和第三目的地址,第三源地址为第二设备的地址,第三目的地址为第一设备的虚拟网络接口的地址;为第二数据包添加第四包头,第四包头包括第四源地址和第四目标地址,第四源地址为代理服务器的地址,第四目标地址为第一设备的物理网络接口的地址;向第一设备发送第二数据包。
可选地,该方法还包括:接收第一设备通过一个或多个物理网络接口发送的接入请求;基于接入请求,向第一设备发送配置信息。
可选地,接入请求包括第一设备的身份信息,并且/或者配置信息包括代理服务器为第一设备分配的虚拟网络接口的地址信息。
可选地,该方法还包括:关联地保存第一设备的物理网络接口的地址信息和虚拟网络接口的地址信息。
根据本公开的第三个方面,还提供了一种数据传输方法,适用于第二设备执行,方法包括:接收代理服务器发送的第一数据包,第一数据包包括第一包头,第一包头包括第一源地址和第一目的地址,第一源地址为虚拟网络接口的地址,第一目的地址为第二设备的地址;向代理服务器发送第二数据包,第二数据包包括第三包头,第三包头包括第三源地址和第三目的地址,第三源地址为第二设备的地址,第三目的地址为第一设备的虚拟网络接口的地址。
根据本公开的第四个方面,还提供了一种数据传输方法,包括:为来自第一设备中的虚拟网络接口的第一数据包包添加第二包头,第一数据包包括第一包头和第二包头,第一包头包括第一源地址和第一目的地址,第一源地址为虚拟网络接口的地址,第一目的地址为第二设备的地址,第二包头包括第二源地址和第二目的地址,第二源地址为选择的物理网络接口的地址,第二目的地址为代理服务器的地址;基于选择的物理网络接口发送第一数据包;代理服务器响应于接收到第一数据包,将第一数据包中的第二包头剥离,并将剥离第二包头后的第一数据包发送给第二设备。
可选地,该方法还包括:第一设备通过一个或多个物理网络接口向代理服务器发送接入请求;第一设备接收代理服务器发送的配置信息;以及第一设备基于配置信息,创建虚拟网络接口。
根据本公开的第五个方面,还提供了一种第一设备,第一设备具有一个虚拟网络接口和多个物理网络接口,第一设备包括:获取模块,用于获取来自虚拟网络接口的第一数据包,第一数据包包括第一包头,第一包头包括第一源地址和第一目的地址,第一源地址为虚拟网络接口的地址,第一目的地址为第二设备的地址;添加模块,用于为第一数据包添加第二包头,第二包头包括第二源地址和第二目的地址,第二源地址为选择的物理网络接口的地址,第二目的地址为代理服务器的地址;以及发送模块,用于基于选择的物理网络接口发送第一数据包。
根据本公开的第六个方面,还提供了一种代理服务器,包括:接收模块,用于接收第一设备发送的第一数据包,第一数据包包括第一包头和第二包头,第一包头包括第一源地址和第一目的地址,第一源地址为第一设备中虚拟网络接口的地址,第一目的地址为第二设备的地址,第二包头包括第二源地址和第二目的地址,第二源地址为选择的第一设备的物理网络接口的地址,第二目的地址为代理服务器的地址;剥离模块,用于将第一数据包中的第二包头剥离;以及发送模块,用于将剥离第二包头后的第一数据包发送给第二设备。
根据本公开的第七个方面,还提供了一种第二设备,包括:接收模块,用于接收代理服务器发送的第一数据包,第一数据包包括第一包头,第一包头包括第一源地址和第一目的地址,第一源地址为虚拟网络接口的地址,第一目的地址为第二设备的地址;发送模块,用于向代理服务器发送第二数据包,第二数据包包括第三包头,第三包头包括第三源地址和第三目的地址,第三源地址为第二设备的地址,第三目的地址为第一设备的虚拟网络接口的地址。
根据本公开的第八个方面,还提供了一种数据传输系统,包括:第一设备、代理服务器以及第二设备,第一设备具有一个虚拟网络接口和多个物理网络接口,第一设备获取来自虚拟网络接口的第一数据包,第一数据包包括第一包头,第一包头包括第一源地址和第一目的地址,第一源地址为虚拟网络接口的地址,第一目的地址为第二设备的地址,为第一数据包添加第二包头,第二包头包括第二源地址和第二目的地址,第二源地址为选择的物理网络接口的地址,第二目的地址为代理服务器的地址,并基于选择的物理网络接口发送第一数据包,代理服务器接收第一数据包,将第一数据包中的第二包头剥离,并将剥离第二包头后的第一数据包发送给第二设备。
根据本公开的第九个方面,还提供了一种计算设备,包括:处理器;以及存储器,其上存储有可执行代码,当可执行代码被处理器执行时,使处理器执行如本公开第一个方面至第四个方面中任一方面述及的方法。
根据本公开的第十个方面,还提供了一种非暂时性机器可读存储介质,其上存储有可执行代码,当可执行代码被电子设备的处理器执行时,使处理器执行如本公开第一个方面至第四个方面中任一方面述及的方法。
在本公开中,虚拟网络接口成为连接设备上层应用和物理网络接口的桥梁,因此可以屏蔽物理网络接口的类型以及状态的变化,使得上层业务的数据流不再依赖于传输层的连接。
并且基于虚拟网络接口和代理服务器的设置,可以在第一设备和第二设备之间建立了一个虚拟通道,虚拟通道的一端是虚拟网络接口,另一端是第二设备。对于第一设备、第二设备而言,该虚拟通道不会因为真实的传输路径的变化而变化。当第一设备上的应用需要使用多路径并发或备份的传输特性时,只需要将数据传输绑定在建立好的虚拟网络接口上即可。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了根据本公开一个实施例的数据传输系统的结构示意图。
图2示出了根据本公开一个实施例的为数据包添加外层包头的示意图。
图3示出了根据本公开一个实施例的外层包头可以具有的数据结构示意图。
图4示出了根据本公开一个实施例的第一设备与代理服务器交互以创建虚拟网络接口的流程图。
图5示出了根据本公开的数据传输方案的系统实现流程图。
图6示出了根据本公开一个实施例的选路控制流程图。
图7示出了根据本公开一个实施例的第一设备的结构的示意性方框图。
图8示出了根据本公开一个实施例的代理服务器的结构的示意性方框图。
图9示出了根据本公开一个实施例的第二设备的结构的示意性方框图。
图10示出了根据本公开一个实施例的计算设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
以WEB访问业务为例,应用层产生的HTTP请求需要经过网络7层协议到达接收端,此时客户端和服务端通过双方的IP地址和端口号来标识连接,对于应用层HTTP协议则绑定在这个连接之上。当底层连接发生改变时,上层的会话上下文无法恢复,使得在应用层重建连接恢复业务的成本增加。因此,如何实现上层业务的数据流不再依赖于传输层的连接,成为解决多路径传输问题的关键。
为了使得上层业务的数据流不再依赖于传输层的连接,本公开提出了一种基于虚拟网络接口和代理服务器实现多路径传输的数据传输方案。
本公开是在具有多个物理网络接口的设备内创建一个虚拟网络接口,并利用该虚拟网络接口发送数据包。虚拟网络接口发出的数据包被添加一个外层包头,以由真实的物理网络接口通过对应的网络传送数据包。网络出口连接的是一个代理服务器,因此外层包头中的目的地址指向该代理服务器。代理服务器将接收到的数据包中的外层包头剥离,剥离了外层包头的数据包就恢复了其真实面貌。最后可以由代理服务器将剥离了外层包头的数据包转发给目标设备。
在本公开中,虚拟网络接口成为连接设备上层应用和物理网络接口的桥梁,因此可以屏蔽物理网络接口的类型以及状态的变化,使得上层业务的数据流不再依赖于传输层的连接。
并且由于本公开是网络层的方案,使得本公开对上层协议没有限制,不需要通信双方协商采用相同的网络协议,也不需要对现有的上层协议进行改造。
进一步地,本公开通过虚拟网络接口和代理服务器的设置,在数据发送方(例如下文述及的第一设备)和数据接收方(例如下文述及的第二设备)之间建立了一个虚拟通道,虚拟通道的一端是数据发送方的虚拟网络接口,另一端是数据接收方。对于数据发送方、数据接收方而言,该虚拟通道不会因为真实的传输路径的变化而变化。当数据发送方需要使用多路径并发或备份的传输特性时,只需要将数据传输绑定在建立好的虚拟网络接口上即可。
下面就本公开的数据传输方案涉及的各方面做进一步说明。
图1示出了根据本公开一个实施例的数据传输系统的结构示意图。
如图1所示,数据传输系统包括第一设备100、代理服务器200以及第二设备300。
第一设备100是指支持多种网络接入方式的设备,也即具有多个物理网络接口120的设备,其中每个物理网络接口对应一种网络接入类型。例如,第一设备100可以包括但不限于Wi-Fi接口、3G/4G/5G接口、以太网接口、蓝牙接口等多种类型的物理网络接口。
第一设备100还包括虚拟网络接口110。虚拟网络接口110是指能够被第一设备100(例如第一设备100中的上层应用)识别为实际网络接口的虚拟计算机部件。虚拟网络接口110可以与第一设备100中真实存在的物理网络接口120一样,具有IP网络地址、硬件地址(如MAC地址)等等。
虚拟网络接口110可以视为第一设备100默认使用的网络接口。换言之,第一设备100中需要向外发送的网络请求都可以首先通过虚拟网络接口110,然后再由选用的物理网络接口进行发送。由此,虚拟网络接口成为了连接第一设备100的上层应用和物理网络接口120的桥梁,从而可以屏蔽物理网络接口120的类型以及状态的变化,使得上层业务的数据流不再依赖于传输层的连接。
第二设备300是指第一设备100期望访问的目标设备,第一设备100可以通过网络与第二设备300进行交互,将数据发送到第二设备300,并可以从第二设备300获取数据。例如第一设备100可以是指移动设备,第二设备300可以是指内容服务器,第一设备可以通过向第二设备发送网络请求,从第二设备获取相应的数据。
第一设备100和第二设备300之间的数据流经由代理服务器200转发。代理服务器200可以实现为一个或多个代理服务器节点,通过部署少量的代理服务器节点就可以实现对现有网络系统的全面支持。
代理服务器200还可以用于为第一设备100提供用于创建虚拟网络接口110的配置信息。关于虚拟网络接口110的创建过程将在下文描述,此处暂不赘述。
1、上行数据的封装及发送
上行数据是指从第一设备100发往第二设备300的数据。
如上文所述,虚拟网络接口110可以视为连接第一设备100的上层应用和物理网络接口120的桥梁。第一设备100的上层应用可以默认使用虚拟网络接口发送数据包。为了便于区分,此处述及的数据包可以称为第一数据包。第一数据包可以是上层应用生成的网络请求。
第一数据包可以是按照预定的数据封装协议封装而成的数据包。例如,第一数据包可以是按照IP协议封装而成的数据包。第一数据包包括第一包头,第一包头包括第一源地址和第一目的地址,第一源地址为虚拟网络接口110的地址,第一目的地址为第二设备300的地址。如图2中左半部分所示,第一数据包可以包括第一包头(如IP Header)和有效载荷(如IP Payload)。关于第一包头的具体结构、有效载荷的具体数据内容,本公开不再赘述。
可以对虚拟网络接口110进行监听,以获取来自虚拟网络接口110的第一数据包。在获取到第一数据包后,可以为第一数据包添加一个第二包头。第二包头包括第二源地址和第二目的地址,第二源地址为选择的物理网络接口的地址,第二目的地址为代理服务器的地址。其中,第二源地址对应的物理网络接口可以是使用预设的选路策略从多个物理网络接口120中选择的物理网络接口。关于具体的选路策略将在下文详细描述,此处暂不赘述。
如图2所示,第二包头可以位于第一包头的外层。也即第二包头可以视为一个外层包头。在添加第二包头时,可以将第一包头和有效载荷作为一个整体,并为该整体添加第二包头,或者也可以忽略第一包头,为第一数据包中的有效载荷添加第二包头。
在实际应用中,可以按照预定的数据封装协议添加第二包头。
如图3所示,以数据封装协议为IP协议为例,所添加的第二包头可以包括但不限于版本(Version)、报头长度(IHL)、服务类型(Type of Service)、总长度字段(TotalLength)、标识(Identification)、标志位(Flag)、分片偏移(Fragment Offset)、生存期(TTL)、协议字段(Protocol)、校验和字段(Checksum)、源地址(Source Address)、目的地址(Destination Address)。其中源地址指代的是选择的物理网络接口的地址,目的地址指代的是代理服务器的地址。
在为第一数据包添加第二包头后,就可以基于选择的物理网络接口发送第一数据包。第二包头是作为外层包头添加到第一数据包中的,因此在发送第一数据包时,根据网络传输协议,网络会根据第二包头中的目标地址,将第一数据包发送至代理服务器。在本公开中,可以通过与选择的物理网络接口对应的网络,将第一数据包发送至代理服务器。例如,可以通过IP隧道(即IP Tunnel)将第一数据包发送至代理服务器。
2、上行数据的解封及转发
第一设备在向第二设备请求数据前,首先可以通过一个或多个物理网络接口向代理服务器发送接入请求,接入请求中可以包括第一设备的身份信息。代理服务器可以根据第一设备发来的接入请求验证用户身份,并为合法用户分配系统资源以及用于配置虚拟网络接口的IP地址。并且代理服务器在接收到第一设备通过其物理网络接口发送的接入请求后,可以认为与该物理网络接口建立了连接。
代理服务器在接收到第一数据包后,可以对第一数据包进行验证,根据验证结果来确定是否继续转发该数据包。其中,代理服务器可以根据第一数据包中的第二包头来确定是否继续转发该数据包,并且/或者还可以根据第一数据包中的第一包头来确定是否继续转发该数据包。
举例来说,代理服务器可以根据第二包头中的源地址,判断源地址对应的物理网络接口是否合法,即该物理网络接口是否与代理服务器预先建立连接。如果合法,则可以继续转发该数据包,否则不转发该数据包。
再例如,代理服务器可以判断第一包头中的源地址是否其配置的虚拟网络接口的地址,如果是其配置的虚拟网络接口的地址,则可以继续转发该数据包,否则不转发该数据包。
代理服务器在转发第一数据包前,先将第一数据包中的第二包头剥离,以将第一数据包恢复至最初的报文形态。然后将剥离了第二包头的第一数据包转发至对应的第二设备。
3、下行数据的封装及发送
下行数据是指第二设备300响应于接收到来自第一设备100的数据,而向第一设备100发送的数据。
下行数据的封装和发送与上行数据类似。
第二设备300将针对第一数据包生成的数据包(为了便于区分,可以称为第二数据包)发送给代理服务器200。第二数据包可以是按照预定的数据封装协议封装的数据包,其可以包括包头和有效载荷。为了便于区分,此处述及的包头可以称为第三包头。第三包头包括第三源地址和第三目的地址,第三源地址为第二设备300的地址,第三目的地址为第一设备100的虚拟网络接口110的地址。
代理服务器200在接收到第二数据包后,可以根据第二数据包中的第三包头中的第三目的地址,找到与该第三目的地址对应的物理网络接口的地址,并为第二数据包添加第四包头。第四包头包括第四源地址和第四目标地址,第四源地址为代理服务器的地址,第四目标地址为物理网络接口的地址。
代理服务器200在接收到第二数据包后,还可以基于预定的选路策略选择要使用的网络接入类型。第四包头中的第四目的地址即为与使用的网络接入类型一致的物理网络接口的地址。
然后向第一设备100发送第二数据包。
4、下行数据的接收及处理
可以对第一设备100的物理网络接口120进行监听,在监听到物理网络接口120接收到第二数据包的情况下,可以将第二数据包中的第四包头(也即外层包头)剥离,并将剥离第四包头后的第二数据包转发给虚拟网络接口110,以由虚拟网络接口100将剥离第二包头后的第二数据包发送给上层应用协议进行处理。
至此结合图1至图3就数据传输流程做了详细说明。
根据上文描述可知,本公开一方面通过在具有多个物理网络接口120的第一设备100中创建虚拟网络接口110,使得虚拟网络接口110成为连接上层应用和物理网络接口之间的桥梁,从而可以屏蔽物理网络接口120的类型以及状态的变化,使得上层业务的数据流不再依赖于传输层的连接。
另一方面是在网络传输路径中添加了一个代理服务器节点,使得第一设备100(例如移动主机)和第二设备300(例如内容服务器)之间的数据流经由此代理服务器200转发。
通过上述两方面的设置,本公开相当于在第一设备和第二设备之间建立了一个虚拟通道,虚拟通道的一端是虚拟网络接口110,另一端是第二设备300。对于第一设备、第二设备而言,该虚拟通道不会因为真实的传输路径的变化而变化。当第一设备上的应用需要使用多路径并发或备份的传输特性时,只需要将数据传输绑定在建立好的虚拟网络接口上即可。
并且在整个数据传输过程中,本公开是通过为数据包添加外层包头这种数据封装形式来实现的,数据包到达代理服务器之后,通过剥离外层包头的方式将数据包恢复如初,并将恢复如初的数据包转发给目标设备。由此,对于第二设备,接收到的数据包就如同是从第一设备发送的一样,对于第一设备,不需要对来自虚拟网络接口的数据包进行解析,而是直接按照现有数据封装协议为其添加外层包头,实现起来简单快捷。
本公开的数据传输方案适用于具有多种网络接入方式的设备,可以使用多种网络接入方式对应的路径并行传输数据,也可以使其互相备份。
例如,在监听到来自虚拟网络接口的多个数据包的情况下,可以选用多个物理网络接口,并根据这多个物理网络接口的地址,为这多个数据包添加不同的外层包头,以使得这多个数据包可以经由这多个物理网络接口对应的多条传输路径发送给代理服务器,从而实现多路径并行传输,提高传输效率。
再例如,在发现选择的物理网络接口对应的网络不可用时,可以重新选择物理网络接口,并重新为数据包添加外层包头,以由新选择的物理网络接口发送数据包。由此在切换网络传输数据时,无需在应用层重建连接。
作为示例,在监听到来自虚拟网络接口110的数据包后,除了根据选用的物理网络接口为数据包添加相应的外层包头,然后交由相应的物理网络接口发送给代理服务器之外,还可以选用一个或多个备选物理网络接口,根据备选物理网络接口,为数据包添加相应的外层包头,在数据包发送过程中发现之前选用的物理网络接口不可用时,可以及时通过备选物理网络接口发送数据包。
虚拟网络接口的创建
如上文所述,可以由代理服务器向第一设备下发虚拟网络接口的配置信息,以便第一设备根据该配置信息在其上创建虚拟网络接口。
图4示出了根据本公开一个实施例的第一设备与代理服务器交互以创建虚拟网络接口的流程图。
如图4所示,在步骤S110,第一设备100可以通过一个或多个物理网络接口向代理服务器200发送接入请求。
所发送的接入请求可以实现两个目的,一是请求代理服务器200向第一设备100发送用于创建虚拟网络接口的配置信息;二是可以用于建立第一设备100和代理服务器200之间的传输通道,也即建立第一设备100的物理网络接口与代理服务器之间的传输通道。
在步骤S210,身份认证。
接入请求可以包括第一设备的身份信息。
代理服务器在接收到接入请求后,可以对第一设备的身份的合法性进行验证。
在验证第一设备的身份合法的情况下,代理服务器可以执行步骤S220,生成配置信息。配置信息可以包括创建虚拟网络接口所需要的信息。作为示例,配置信息可以包括代理服务器为第一设备分配的虚拟网络接口的地址信息(如IP地址)。
配置信息还可以包括代理服务器为第一设备分配的系统资源。代理服务器可以利用该系统资源记录第一设备发送接入请求所使用的物理网络接口的信息,如可以关联地保存第一设备的物理网络接口的地址信息和虚拟网络接口的地址信息。
在步骤S230,将配置信息发送给第一设备。
第一设备100在接收到配置信息后,可以执行步骤S120,根据配置信息,创建虚拟网络接口。
如上文所述,虚拟网络接口是指能够被第一设备100(例如第一设备100中的上层应用)识别为实际网络接口的虚拟计算机部件。虚拟网络接口可以与第一设备100中真实存在的物理网络接口一样,具有IP网络地址、硬件地址(如MAC地址)等等。关于虚拟网络接口的具体创建过程,本公开不再赘述。
在步骤S130,第一设备100还可以通过其他物理网络接口向代理服务器200发送多路接入请求。其中多路接入请求可以是一个空请求。
在步骤S240,代理服务器在接收到多路接入请求后,可以更新配置。这里述及的更新配置是指,代理服务器可以更新第一设备100端的物理网络接口的信息。
在步骤S250,代理服务器还可以向第一设备100发送多路接入响应。多路接入响应可以用于表明代理服务器已经接收到多路接入请求。
第一设备100通过一个或多个物理网络接口向代理服务器200发送接入请求,就可以实现在一个或多个路径(即物理网络接口对应的网络通道)上建立与代理服务器200之间的传输通道(如IP隧道)。另外,第一设备100还可以向代理服务器200发送销毁一条或多条传输通道的请求。
代理服务器200在将来自第二设备的数据包转发给第一设备100时,可以基于预定的选路策略,从多个已经建立的路径中选择一个路径将该数据包发送给第一设备100。
如图5所示,本公开的数据传输方案可以分为控制平面(图中虚线以上部分)和数据平面(图中虚线以下部分)。
控制平面负责通过真实的物理网络接口与代理服务器完成身份识别和认证,以及向代理服务器发起传输通道的建立和销毁,并且将数据平面所需的配置信息下发至数据平面。
例如,可以由第一设备中的多路控制系统模块选择一个或多个物理网络接口向代理服务器发送接入请求,以在第一设备和代理服务器之间建立一个或多个传输通道。并且可以接收代理服务器返回的配置信息,将配置信息发送至数据平面,以实现虚拟网络接口的建立。并且还可以将建立传输通道所对应的物理网络接口的信息发送至数据平面中的选路模块,以便选路模块可以从多个可用的物理网络接口中选择一个或多个物理网络接口。
数据平面则负责第一设备与第二设备之间的网络数据的发送和接收。关于网络数据发送和接收过程,可以参见上文相关描述,此处不再赘述。
选路策略
选路策略是指根据预定选路规则,从多个物理网络接口中选择一个或多个物理网络接口。例如可以根据以下至少一种因素从多个物理网络接口中选择一个或多个物理网络接口:网络类型、网络状态、网络带宽、网络延时、业务类型、应用类型。
下面列举一下适合多路传输的选路策略和相应的权重定义计算公式。
1)网络类型优先级
通常网络传输数据的成本会有差异,例如宽带传输的成本较移动网络的成本低,因此可以优先选择WiFi网络类型,在WiFi网络不可用的时候选择移动网络。
因此,在考虑网络类型优先级的情况下,可以根据物理网络接口对应的网络的网络类型及其网络状态,计算不同物理网络接口的权重,然后根据权重从多个物理网络接口中选择一个或多个物理网络接口,其中,每种网络类型对应预定的权重系数。例如网络类型t对应的选路权重W可以表示为:Weight(n)=Cn*Sn。其中C表示预先为网络类型n定义的权重常量,S表示网络类型n对应的网络状态,S={0/1,无网络连接/网络连接正常}。
2)服务类型策略
为了保证网络QOS(Quality of Service,服务质量),需要根据服务类型选择指定的网络,如为实时语音业务选择网络质量较好的移动网络。
因此在考虑服务类型策略的情况下,可以根据当前传输数据的业务类型、物理网络接口对应的网络的网络类型、以及网络状态,计算不同物理网络接口的权重,根据权重从多个物理网络接口中选择一个或多个物理网络接口,其中,每种业务类型在不同网络类型下具有对应的权重系数。
例如此时选路权重W可以定义如下:Weight(n,t)=M(n,t)*Sn,其中M(n,t)为服务类型t在网络类型n中的权重。
3)负载均衡策略
该策略在终端使用较少,是指当存在多条可用的传输路径时,根据当前各个路径上的带宽使用情况来合理分配路径上的流量。
作为示例,可以根据物理网络接口对应的网络的可用带宽,计算不同物理网络接口的权重,根据权重从多个物理网络接口中选择一个或多个物理网络接口,其中权重与可用带宽正相关。
例如权重可以定义如下:Weight(n)=(Width(n)-Traffic(n))/Width(n)*Sn,其中,Traffic(n)表示使用带宽,Width(n)表示总带宽。
4)最小延时策略
适用于多条路径并行传输一个业务流的情况,需要根据每条路径上的网络带宽和延时情况,计算分配给该路径上的流量大小和顺序,保证在合并自流时获得最小的恢复等待延时。
作为示例,可以根据物理网络接口对应的网络的可用带宽和网络延时,计算不同物理网络接口所负责的数据流量,根据计算结果,选择相应的物理网络接口进行数据发送。
5)用户自定义策略
在实际的产品运营中,存在按业务类型分担计费的方式。例如,产品日常运营的流量属于运营成本,不计算在用户使用的流量中,因此需要根据不同的应用类型和业务类型选择不同的传送路径。也即可以根据业务类型的流量计费方式,从多个物理网络接口中选择一个或多个物理网络接口。
选路的过程如图6所示,首先可以通过系统设置来设置选路策略。应用首先可以将数据发送给虚拟网络接口,然后可以根据选路逻辑模块所选择的物理网络接口,将虚拟网络接口的数据转发给所选择的物理网络接口(如图中的Wi-Fi接口),最后进入对应的通道A,将数据发送给代理服务器。
在WiFi网络连接发生变化时,WiFi接口将自己的状态上报给选路逻辑模块,当有新的数据请求从APP经虚拟网络接口请求发送给代理服务器时,选路逻辑模块根据当前网络的状态,将原本优先级更高的WiFi网络切换至2G/3G/4G/5G移动网络。
本发明还可以为第一设备上的应用程序设置是否允许应用程序使用本公开的数据传输方法传输数据的权限。例如,本公开的数据传输方法可以实现为一种插件安装在第一设备上,第一设备上的应用程序还可以向该插件申请权限,以使用本公开的数据传输方法传输数据。
由此,响应于第一设备上的应用程序的数据传输请求,可以判断该应用程序是否具有使用数据传输方法的使用权限,在判定该应用程序具有数据传输方法的使用权限的情况下,利用本公开的数据传输方法传输应用程序期望传输的数据。
图7示出了根据本公开一个实施例的第一设备的结构的示意性方框图。其中,第一设备的功能模块可以由实现本发明原理的硬件、软件或硬件和软件的结合来实现。本领域技术人员可以理解的是,图7所描述的功能模块可以组合起来或者划分成子模块,从而实现上述发明的原理。因此,本文的描述可以支持对本文描述的功能模块的任何可能的组合、或者划分、或者更进一步的限定。
下面就第一设备可以具有的功能模块以及各功能模块可以执行的操作做简要说明,对于其中涉及的细节部分可以参见上文相关描述,这里不再赘述。
参见图7,第一设备700包括获取模块710、添加模块720以及发送模块730。其中,第一设备700是指具有一个虚拟网络接口和多个物理网络接口的设备。
获取模块710用于获取来自虚拟网络接口的第一数据包,第一数据包包括第一包头,第一包头包括第一源地址和第一目的地址,第一源地址为虚拟网络接口的地址,第一目的地址为第二设备的地址。其中,获取模块610可以通过对虚拟网络接口进行监听的方式,来获取来自虚拟网络接口的第一数据包。
添加模块720用于为第一数据包添加第二包头,第二包头包括第二源地址和第二目的地址,第二源地址为选择的物理网络接口的地址,第二目的地址为代理服务器的地址。
发送模块730用于基于选择的物理网络接口发送第一数据包。
作为示例,第一设备700还可以包括接收模块和创建模块(图中未示出)。发送模块730还可以通过一个或多个所述物理网络接口向所述代理服务器发送接入请求。接收模块可以用于接收代理服务器发送的配置信息。创建模块可以用于基于配置信息,创建虚拟网络接口。
作为示例,第一设备700还可以包括剥离模块。剥离模块可以用于响应于物理网络接口接收到第二数据包,将第二数据包中的第四包头剥离,并将剥离第四包头后的第二数据包转发给虚拟网络接口,以由虚拟网络接口将剥离第二包头后的第二数据包发送给上层应用协议进行处理。
作为示例,第一设备700还可以包括选择模块,用于从多个物理网络接口中选择一个或多个物理网络接口。
选择模块可以根据以下至少一种因素从所述多个物理网络接口中选择一个或多个物理网络接口:网络类型、网络状态、网络带宽、网络延时、业务类型、应用类型。关于具体的选路策略可以参见上文相关描述,此处不再赘述。
响应于选择的物理网络接口对应的网络不可用,选择模块可以重新选择物理网络接口,添加模块可以重新为所述第一数据包添加第二包头。
第一设备700还可以包括设置模块,用于为第一设备700上的应用程序设置是否允许应用程序使用本公开的数据传输方法传输数据的权限。例如,设置模块可以是能够执行本公开的数据传输方法的插件,该插件安装在第一设备上,第一设备上的应用程序还可以向该插件申请权限,以使用本公开的数据传输方法传输数据。
第一设备700还可以包括判断模块。响应于第一设备上的应用程序的数据传输请求,判断模块可以判断该应用程序是否具有使用数据传输方法的使用权限,在判定该应用程序具有数据传输方法的使用权限的情况下,利用本公开的数据传输方法传输应用程序期望传输的数据。
图8示出了根据本公开一个实施例的代理服务器的结构的示意性方框图。其中,代理服务器的功能模块可以由实现本发明原理的硬件、软件或硬件和软件的结合来实现。本领域技术人员可以理解的是,图8所描述的功能模块可以组合起来或者划分成子模块,从而实现上述发明的原理。因此,本文的描述可以支持对本文描述的功能模块的任何可能的组合、或者划分、或者更进一步的限定。
下面就代理服务器可以具有的功能模块以及各功能模块可以执行的操作做简要说明,对于其中涉及的细节部分可以参见上文相关描述,这里不再赘述。
参见图8,代理服务器800包括接收模块810、剥离模块820和发送模块830。
接收模块810用于接收第一设备发送的第一数据包,第一数据包包括第一包头和第二包头,第一包头包括第一源地址和第一目的地址,第一源地址为第一设备中虚拟网络接口的地址,第一目的地址为第二设备的地址,第二包头包括第二源地址和第二目的地址,第二源地址为选择的第一设备的物理网络接口的地址,第二目的地址为代理服务器的地址。
剥离模块820用于将第一数据包中的第二包头剥离。
发送模块830用于将剥离第二包头后的第一数据包发送给第二设备。
作为本公开的一个示例,代理服务器800还可以包括添加模块。接收模块810还可以用于接收所述第二设备针对所述第一数据包发送的第二数据包,所述第二数据包包括第三包头,所述第三包头包括第三源地址和第三目的地址,所述第三源地址为所述第二设备的地址,所述第三目的地址为所述第一设备的虚拟网络接口的地址。可以由添加模块为所述第二数据包添加第四包头,所述第四包头包括第四源地址和第四目标地址,所述第四源地址为所述代理服务器的地址,所述第四目标地址为所述第一设备的物理网络接口的地址。最后由发送模块向所述第一设备发送所述第二数据包。
作为本公开的一个示例,代理服务器800还可以包括配置模块。接收模块810还可以用于接收第一设备通过一个或多个物理网络接口发送的接入请求。配置模块可以基于接入请求向第一设备发送配置信息。
可选地,代理服务器800还可以包括保存模块,用于关联地保存第一设备的物理网络接口的地址信息和虚拟网络接口的地址信息。
图9示出了根据本公开一个实施例的第二设备的结构的示意性方框图。其中,第二设备的功能模块可以由实现本发明原理的硬件、软件或硬件和软件的结合来实现。本领域技术人员可以理解的是,图9所描述的功能模块可以组合起来或者划分成子模块,从而实现上述发明的原理。因此,本文的描述可以支持对本文描述的功能模块的任何可能的组合、或者划分、或者更进一步的限定。
下面就第二设备可以具有的功能模块以及各功能模块可以执行的操作做简要说明,对于其中涉及的细节部分可以参见上文相关描述,这里不再赘述。
参见图9,第二设备900包括接收模块910和发送模块920。
接收模块910用于接收代理服务器发送的第一数据包,第一数据包包括第一包头,第一包头包括第一源地址和第一目的地址,第一源地址为虚拟网络接口的地址,第一目的地址为第二设备的地址。
发送模块920用于向代理服务器发送第二数据包,第二数据包包括第三包头,第三包头包括第三源地址和第三目的地址,第三源地址为第二设备的地址,第三目的地址为第一设备的虚拟网络接口的地址。
图10示出了根据本发明一实施例可用于实现上述数据传输方法的计算设备的结构示意图。
参见图10,计算设备1000包括存储器1010和处理器1020。
处理器1020可以是一个多核的处理器,也可以包含多个处理器。在一些实施例中,处理器1020可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如图形处理器(GPU)、数字信号处理器(DSP)等等。在一些实施例中,处理器1020可以使用定制的电路实现,例如特定用途集成电路(ASIC,Application Specific Integrated Circuit)或者现场可编程逻辑门阵列(FPGA,Field Programmable Gate Arrays)。
存储器1010可以包括各种类型的存储单元,例如系统内存、只读存储器(ROM),和永久存储装置。其中,ROM可以存储处理器1020或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器1010可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(DRAM,SRAM,SDRAM,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器1010可以包括可读和/或写的可移除的存储设备,例如激光唱片(CD)、只读数字多功能光盘(例如DVD-ROM,双层DVD-ROM)、只读蓝光光盘、超密度光盘、闪存卡(例如SD卡、min SD卡、Micro-SD卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。
存储器1010上存储有可执行代码,当可执行代码被处理器1020处理时,可以使处理器1020执行上文述及的数据传输方法。
上文中已经参考附图详细描述了根据本发明的数据传输方法、数据传输系统、第一设备、第二设备、代理服务器以及计算设备。
此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。
或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (23)
1.一种数据传输方法,适用于第一设备执行,其中,所述第一设备具有一个虚拟网络接口和多个物理网络接口,所述方法包括:
获取来自所述虚拟网络接口的第一数据包,所述第一数据包包括第一包头,所述第一包头包括第一源地址和第一目的地址,所述第一源地址为所述虚拟网络接口的地址,所述第一目的地址为第二设备的地址;
为所述第一数据包添加第二包头,所述第二包头包括第二源地址和第二目的地址,所述第二源地址为选择的物理网络接口的地址,所述第二目的地址为代理服务器的地址;以及
基于选择的物理网络接口发送所述第一数据包。
2.根据权利要求1所述的数据传输方法,还包括:
通过一个或多个所述物理网络接口向所述代理服务器发送接入请求;
接收所述代理服务器发送的配置信息;以及
基于所述配置信息,创建所述虚拟网络接口。
3.根据权利要求2所述的数据传输方法,其中,
所述接入请求包括所述第一设备的身份信息,并且/或者
所述配置信息包括所述代理服务器为所述第一设备分配的虚拟网络接口的地址信息。
4.根据权利要求1所述的数据传输方法,还包括:
响应于所述物理网络接口接收到第二数据包,将所述第二数据包中的第四包头剥离,并将剥离第四包头后的第二数据包转发给所述虚拟网络接口,以由所述虚拟网络接口将剥离第二包头后的第二数据包发送给上层应用协议进行处理,
其中,所述第二数据包包括第三包头和所述第四包头,所述第三包头包括第三源地址和第三目的地址,所述第三源地址为所述第二设备的地址,所述第三目的地址为所述第一设备的虚拟网络接口的地址,所述第四包头包括第四源地址和第四目标地址,所述第四源地址为所述代理服务器的地址,所述第四目标地址为所述第一设备的物理网络接口的地址。
5.根据权利要求1所述的数据传输方法,还包括:
从所述多个物理网络接口中选择一个或多个物理网络接口。
6.根据权利要求5所述的数据传输方法,其中,所述从所述多个物理网络接口中选择一个或多个物理网络接口的步骤包括:
根据以下至少一种因素从所述多个物理网络接口中选择一个或多个物理网络接口:网络类型、网络状态、网络带宽、网络延时、业务类型、应用类型。
7.根据权利要求5所述的数据传输方法,其中,所述从所述多个物理网络接口中选择一个或多个物理网络接口的步骤包括:
根据物理网络接口对应的网络的网络类型及其网络状态,计算不同所述物理网络接口的权重,根据所述权重从所述多个物理网络接口中选择一个或多个物理网络接口,其中,每种网络类型对应预定的权重系数;并且/或者
根据当前传输数据的业务类型、物理网络接口对应的网络的网络类型、以及网络状态,计算不同所述物理网络接口的权重,根据所述权重从所述多个物理网络接口中选择一个或多个物理网络接口,其中,每种业务类型在不同网络类型下具有对应的权重系数;并且/或者
根据物理网络接口对应的网络的可用带宽,计算不同所述物理网络接口的权重,根据所述权重从所述多个物理网络接口中选择一个或多个物理网络接口,其中所述权重与所述可用带宽正相关;并且/或者
根据物理网络接口对应的网络的可用带宽和网络延时,计算不同物理网络接口所负责的数据流量,根据计算结果,选择相应的物理网络接口进行数据发送;并且/或者
根据业务类型的流量计费方式,从所述多个物理网络接口中选择一个或多个物理网络接口。
8.根据权利要求1所述的数据传输方法,还包括:
响应于选择的物理网络接口对应的网络不可用,重新选择物理网络接口,并重新为所述第一数据包添加第二包头。
9.根据权利要求1所述的数据传输方法,还包括:
为所述第一设备上的一个或多个应用程序设置权限,所述权限用于表征是否允许所述应用程序使用所述数据传输方法传输数据;并且/或者
响应于所述第一设备上的应用程序的数据传输请求,判断该应用程序是否具有使用所述数据传输方法的使用权限,在判定该应用程序具有所述数据传输方法的使用权限的情况下,利用所述数据传输方法传输数据。
10.一种数据传输方法,适用于代理服务器执行,所述方法包括:
接收第一设备发送的第一数据包,所述第一数据包包括第一包头和第二包头,所述第一包头包括第一源地址和第一目的地址,所述第一源地址为所述第一设备中虚拟网络接口的地址,所述第一目的地址为第二设备的地址,所述第二包头包括第二源地址和第二目的地址,所述第二源地址为选择的所述第一设备的物理网络接口的地址,所述第二目的地址为所述代理服务器的地址;
将所述第一数据包中的第二包头剥离;以及
将剥离所述第二包头后的第一数据包发送给所述第二设备。
11.根据权利要求10所述的数据传输方法,还包括:
接收所述第二设备针对所述第一数据包发送的第二数据包,所述第二数据包包括第三包头,所述第三包头包括第三源地址和第三目的地址,所述第三源地址为所述第二设备的地址,所述第三目的地址为所述第一设备的虚拟网络接口的地址;
为所述第二数据包添加第四包头,所述第四包头包括第四源地址和第四目标地址,所述第四源地址为所述代理服务器的地址,所述第四目标地址为所述第一设备的物理网络接口的地址;
向所述第一设备发送所述第二数据包。
12.根据权利要求10所述的数据传输方法,还包括:
接收第一设备通过一个或多个物理网络接口发送的接入请求;
基于所述接入请求,向所述第一设备发送配置信息。
13.根据权利要求12所述的数据传输方法,其中,
所述接入请求包括所述第一设备的身份信息,并且/或者
所述配置信息包括所述代理服务器为所述第一设备分配的虚拟网络接口的地址信息。
14.根据权利要求12所述的数据传输方法,还包括:
关联地保存所述第一设备的物理网络接口的地址信息和虚拟网络接口的地址信息。
15.一种数据传输方法,适用于第二设备执行,所述方法包括:
接收代理服务器发送的第一数据包,所述第一数据包包括第一包头,所述第一包头包括第一源地址和第一目的地址,所述第一源地址为所述虚拟网络接口的地址,所述第一目的地址为所述第二设备的地址;
向所述代理服务器发送第二数据包,所述第二数据包包括第三包头,所述第三包头包括第三源地址和第三目的地址,所述第三源地址为所述第二设备的地址,所述第三目的地址为所述第一设备的虚拟网络接口的地址。
16.一种数据传输方法,包括:
为来自第一设备中的虚拟网络接口的第一数据包包添加第二包头,所述第一数据包包括第一包头和所述第二包头,所述第一包头包括第一源地址和第一目的地址,所述第一源地址为所述虚拟网络接口的地址,所述第一目的地址为第二设备的地址,所述第二包头包括第二源地址和第二目的地址,所述第二源地址为选择的物理网络接口的地址,所述第二目的地址为代理服务器的地址;
基于选择的物理网络接口发送所述第一数据包;
所述代理服务器响应于接收到所述第一数据包,将所述第一数据包中的第二包头剥离,并将剥离所述第二包头后的第一数据包发送给所述第二设备。
17.根据权利要求16所述的数据传输方法,还包括:
所述第一设备通过一个或多个所述物理网络接口向所述代理服务器发送接入请求;
所述第一设备接收所述代理服务器发送的配置信息;以及
所述第一设备基于所述配置信息,创建所述虚拟网络接口。
18.一种第一设备,所述第一设备具有一个虚拟网络接口和多个物理网络接口,所述第一设备包括:
获取模块,用于获取来自所述虚拟网络接口的第一数据包,所述第一数据包包括第一包头,所述第一包头包括第一源地址和第一目的地址,所述第一源地址为所述虚拟网络接口的地址,所述第一目的地址为第二设备的地址;
添加模块,用于为所述第一数据包添加第二包头,所述第二包头包括第二源地址和第二目的地址,所述第二源地址为选择的物理网络接口的地址,所述第二目的地址为代理服务器的地址;以及
发送模块,用于基于选择的物理网络接口发送所述第一数据包。
19.一种代理服务器,包括:
接收模块,用于接收第一设备发送的第一数据包,所述第一数据包包括第一包头和第二包头,所述第一包头包括第一源地址和第一目的地址,所述第一源地址为所述第一设备中虚拟网络接口的地址,所述第一目的地址为第二设备的地址,所述第二包头包括第二源地址和第二目的地址,所述第二源地址为选择的所述第一设备的物理网络接口的地址,所述第二目的地址为所述代理服务器的地址;
剥离模块,用于将所述第一数据包中的第二包头剥离;以及
发送模块,用于将剥离所述第二包头后的第一数据包发送给所述第二设备。
20.一种第二设备,包括:
接收模块,用于接收代理服务器发送的第一数据包,所述第一数据包包括第一包头,所述第一包头包括第一源地址和第一目的地址,所述第一源地址为所述虚拟网络接口的地址,所述第一目的地址为所述第二设备的地址;
发送模块,用于向所述代理服务器发送第二数据包,所述第二数据包包括第三包头,所述第三包头包括第三源地址和第三目的地址,所述第三源地址为所述第二设备的地址,所述第三目的地址为所述第一设备的虚拟网络接口的地址。
21.一种数据传输系统,包括:第一设备、代理服务器以及第二设备,
所述第一设备具有一个虚拟网络接口和多个物理网络接口,所述第一设备获取来自所述虚拟网络接口的第一数据包,所述第一数据包包括第一包头,所述第一包头包括第一源地址和第一目的地址,所述第一源地址为所述虚拟网络接口的地址,所述第一目的地址为第二设备的地址,为所述第一数据包添加第二包头,所述第二包头包括第二源地址和第二目的地址,所述第二源地址为选择的物理网络接口的地址,所述第二目的地址为代理服务器的地址,并基于选择的物理网络接口发送所述第一数据包,
所述代理服务器接收所述第一数据包,将所述第一数据包中的第二包头剥离,并将剥离所述第二包头后的第一数据包发送给所述第二设备。
22.一种计算设备,包括:
处理器;以及
存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1至17中任何一项所述的方法。
23.一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1至17中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911158732.2A CN112838983B (zh) | 2019-11-22 | 2019-11-22 | 数据传输方法、系统、设备、代理服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911158732.2A CN112838983B (zh) | 2019-11-22 | 2019-11-22 | 数据传输方法、系统、设备、代理服务器及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112838983A true CN112838983A (zh) | 2021-05-25 |
CN112838983B CN112838983B (zh) | 2023-09-12 |
Family
ID=75922630
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911158732.2A Active CN112838983B (zh) | 2019-11-22 | 2019-11-22 | 数据传输方法、系统、设备、代理服务器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112838983B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115134395A (zh) * | 2022-05-31 | 2022-09-30 | 阿里巴巴(中国)有限公司 | 数据处理方法以及装置 |
CN116188180A (zh) * | 2023-04-25 | 2023-05-30 | 浩然加中医疗科技(山东)有限公司 | 一种基于gre网络的医保报销结算方法、系统及设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101986666A (zh) * | 2010-11-05 | 2011-03-16 | 清华大学 | 基于虚拟网络接口和反向地址转换的网络数据传输方法 |
CN103179642A (zh) * | 2013-03-05 | 2013-06-26 | 北京邮电大学 | 具有网络接口自治选择功能的多接口终端及其工作方法 |
CN105656747A (zh) * | 2015-11-11 | 2016-06-08 | 乐卡汽车智能科技(北京)有限公司 | 一种多链路数据传输的方法及设备 |
CN109587749A (zh) * | 2018-12-24 | 2019-04-05 | 深圳市闻耀电子科技有限公司 | 数据发送方法和系统 |
CN109600422A (zh) * | 2018-11-19 | 2019-04-09 | 斑马网络技术有限公司 | 数据包处理方法、网关设备、车载行动热点和代理服务器 |
US20190132322A1 (en) * | 2016-04-29 | 2019-05-02 | New H3C Technologies Co., Ltd. | Network access control |
-
2019
- 2019-11-22 CN CN201911158732.2A patent/CN112838983B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101986666A (zh) * | 2010-11-05 | 2011-03-16 | 清华大学 | 基于虚拟网络接口和反向地址转换的网络数据传输方法 |
CN103179642A (zh) * | 2013-03-05 | 2013-06-26 | 北京邮电大学 | 具有网络接口自治选择功能的多接口终端及其工作方法 |
CN105656747A (zh) * | 2015-11-11 | 2016-06-08 | 乐卡汽车智能科技(北京)有限公司 | 一种多链路数据传输的方法及设备 |
US20190132322A1 (en) * | 2016-04-29 | 2019-05-02 | New H3C Technologies Co., Ltd. | Network access control |
CN109600422A (zh) * | 2018-11-19 | 2019-04-09 | 斑马网络技术有限公司 | 数据包处理方法、网关设备、车载行动热点和代理服务器 |
CN109587749A (zh) * | 2018-12-24 | 2019-04-05 | 深圳市闻耀电子科技有限公司 | 数据发送方法和系统 |
Non-Patent Citations (1)
Title |
---|
谢国亮;徐明伟;吕继萍;吴茜;: "基于虚接口的移动IPv6协议的设计与实现", 小型微型计算机系统, no. 04 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115134395A (zh) * | 2022-05-31 | 2022-09-30 | 阿里巴巴(中国)有限公司 | 数据处理方法以及装置 |
CN115134395B (zh) * | 2022-05-31 | 2024-05-17 | 阿里巴巴(中国)有限公司 | 数据处理方法以及装置 |
CN116188180A (zh) * | 2023-04-25 | 2023-05-30 | 浩然加中医疗科技(山东)有限公司 | 一种基于gre网络的医保报销结算方法、系统及设备 |
CN116188180B (zh) * | 2023-04-25 | 2023-07-07 | 浩然加中医疗科技(山东)有限公司 | 一种基于gre网络的医保报销结算方法、系统及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112838983B (zh) | 2023-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20170302724A1 (en) | Virtual Channel Joining | |
US9253015B2 (en) | Transparent proxy architecture for multi-path data connections | |
US9173244B2 (en) | Methods for establishing and using public path, M2M communication method, and systems thereof | |
US20150237525A1 (en) | Traffic Shaping and Steering for a Multipath Transmission Control Protocol Connection | |
WO2019076306A1 (zh) | 数据传输通道的处理方法、装置和系统 | |
US10924518B2 (en) | UPF programming over enhanced N9 interface | |
US10505846B2 (en) | Resilient segment routing service hunting with TCP session stickiness | |
CN110191066B (zh) | 一种确定最大传输单元pmtu的方法、设备及系统 | |
EP1383281A1 (en) | Method for calculating a transmission window size | |
US11736407B2 (en) | Method and apparatus for load balancing and packet re-sequencing on network | |
CN113709901A (zh) | 通信方法和装置 | |
WO2021008591A1 (zh) | 数据传输方法、装置及系统 | |
CN113472646B (zh) | 一种数据传输方法、节点、网络管理器及系统 | |
US20150138986A1 (en) | Load balancing in a link aggregation | |
CN111193756B (zh) | 一种vxlan隧道负载均衡方法及相关设备 | |
CN113676947A (zh) | 通信方法和装置 | |
CN112838983B (zh) | 数据传输方法、系统、设备、代理服务器及存储介质 | |
WO2017012471A1 (zh) | 负载均衡处理方法及装置 | |
CN113965521B (zh) | 数据包的传输方法、服务器及存储介质 | |
KR20190039596A (ko) | Sfc 네트워크에서 토폴로지 정보를 동기화하기 위한 방법, 및 라우팅 네트워크 엘리먼트 | |
CN112291815B (zh) | 一种mptcp连接建立方法及装置 | |
CN113271252B (zh) | 通信建立方法、系统和计算机可读存储介质 | |
CN116195352A (zh) | 接入流量管理 | |
CN112583736A (zh) | 一种信令报文分流方法、装置、设备及介质 | |
US10826831B2 (en) | Dynamic protocol independent multicast load balancing |
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 |