CN111107672B - 一种建立多路径连接的子流的方法、装置和系统 - Google Patents
一种建立多路径连接的子流的方法、装置和系统 Download PDFInfo
- Publication number
- CN111107672B CN111107672B CN201811260980.3A CN201811260980A CN111107672B CN 111107672 B CN111107672 B CN 111107672B CN 201811260980 A CN201811260980 A CN 201811260980A CN 111107672 B CN111107672 B CN 111107672B
- Authority
- CN
- China
- Prior art keywords
- operator
- sub
- address
- network interface
- addresses
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/19—Flow control; Congestion control at layers above the network layer
- H04L47/193—Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W76/00—Connection management
- H04W76/10—Connection setup
- H04W76/15—Setup of multiple wireless link connections
- H04W76/16—Involving different core network technologies, e.g. a packet-switched [PS] bearer in combination with a circuit-switched [CS] bearer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5007—Internet protocol [IP] addresses
-
- 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
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W76/00—Connection management
- H04W76/10—Connection setup
- H04W76/15—Setup of multiple wireless link connections
-
- 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
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W76/00—Connection management
- H04W76/10—Connection setup
- H04W76/11—Allocation or use of connection identifiers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请记载一种建立子流的方法。本端设备得到该本端的网络接口卡当前接入的运营商的标识,以及本端设备得到对端设备的多个IP地址,以及该多个IP地址所归属的运营商的标识,通过匹配本端设备的对应的多个运营商和对端设备的所对应的多个运营商,在归属于同一运营商的IP地址对之间建立子流。典型的场景为本端设备是终端,对端设备是服务器。这样,尽量使建立的子流不跨运营商,减小了因某些子流跨运营商通信而对一多路径连接的传输性能的负面影响,更好地发挥多路径连接相比于单路径连接的传输性能的优势。
Description
技术领域
本发明涉及通信领域,尤其涉及一种建立多路径连接的子流的方法、装置和系统。
背景技术
计算机的应用之间常常涉及信息的交互。这些应用可以采用户端/服务器端(C/S,Client/Server)这种软件系统体系结构架构进行描述。其中,客户端和服务器端在这种架构上指的就是应用,具体的,作为客户端(Client)的应用请求服务,作为服务器端(Server)的应用为作为客户端(Client)的应用提供服务。一些场景下,客户端和服务端运行在不同的设备上。例如,应用运行在终端,则该应用为客户端,应用运行在服务器,则该应用为服务端。显然,客户端和服务端之间需要交互信息,例如,该信息可使用多路径传输技术。
多路径传输技术通过在客户端与服务端之间的多条子流(subflow)来并行传输数据,每条子流对应一条路径(path)。例如,多路径传输控制协议(MPTCP,Multiple PathTransmission Control Protocol)就是一种基于传输控制协议(TCP,TransmissionControl Protocol)的。多路径传输技术可以统称为MP技术,其包括多条子流的连接称为多路径连接,即MP连接。其中,多条子流中每一条子流对应客户端与服务端之间不同的一条链路,该多条子流称作一个多路径连接。理论上,相比于单路径传输,多路径传输技术有助于提升数据的吞吐量,因此适用于在线视频播放和下载数据;多路径传输技术还有助于降低时延和提高数据传输的可靠性,因此适用于游戏。上述的多条子流可以基于Wi-Fi网络和蜂窝网络中的至少一种传输数据,其中,该蜂窝网络可以是5G网络,4G网络,如长期演进网络(LTE,Long Term Evolution)、或者3G网络,如码分多址(CDMA,Code Division MultipleAccess)网络,或者2G网络等等。
然而使用现有的方法在较为复杂网络环境中建立起一多路径连接多条子流后,该多路径连接的传输性能(例如吞吐量或者时延)并不能达到如理论上的相比于单路径传输的提升,有时甚至传输性能还不如仅使用其中的一部分子流。
发明内容
有鉴于此,本申请提供了一种建立多路径连接的子流方法和装置,考虑了多路径连接所支持的多个运营商对该多路径连接的传输性能的影响,对建立的每一条子流,使得该每一条子流的两个端节点接入的网络归属相同的运营商,从而能更好地保障该多路径连接的传输性能,也能相比于单路径连接更好地发挥多路径连接的传输性能的优势。
第一方面,本申请描述一种建立子流的方法,该方法包括:第一设备确定该第一设备的多个网络接口卡各自接入的运营商的标识;该第一设备确定第二设备的多个互联网协议IP地址,以及该第二设备的多个IP地址各自对应的运营商的标识;该第一设备基于该多个网络接口卡各自接入的运营商的标识和该第二设备的多个IP地址各自对应的运营商的标识,建立多条第一子流,该多条第一子流是该第一设备与该第二设备之间的一个多路径连接的子流,该多条第一子流中,每一条第一子流使用的该第一设备的网络接口卡接入的运营商都和该每一条第一子流使用的该第二设备的IP地址对应的运营商相同。
一种实现方式下,该第一设备基于该多个网络接口卡各自接入的运营商的标识和该第二设备的多个IP地址各自对应的运营商的标识,优先建立多条第一子流,尽量不建立跨运营商的子流。跨运营商的子流是指该第一设备的网络接口卡接入的运营商都和该每一条第一子流使用的该第二设备的IP地址对应的运营商不同的子流。
另一种实现方式下,该第一设备基于该多个网络接口卡各自接入的运营商的标识和该第二设备的多个IP地址各自对应的运营商的标识,只建立多条第一子流,不建立跨运营商的子流。
上述方法的几个步骤之间没有严格的时序,因此有多种实现方式。例如,第一设备确定本端多个网卡各自对应的运营商的标识,以及第一设备确定对端的多个IP地址及多个IP地址各自对应的运营商标识,可以同时进行或者任意一个步骤先执行。再例如,可以在第一设备确定本端多个网卡各自对应的运营商的标识,以及第一设备确定对端的多个IP地址及多个IP地址各自对应的运营商标识的过程中,穿插执行建立多个第一子流的过程。例如,第一设备先确定多个网卡各自对应的运营商的标识以及第二设备的一个IP地址,该IP地址与该多个网卡中,第一设备当前默认的网卡对应同一运营商。第一设备先使用这一对IP地址和网卡,建立主子流,再通过该主子流,接收来自第二设备的其他IP地址和这些其他IP地址各自对应的运营商标识,再经过匹配第一设备的多个网卡各自对应的运营商的标识和第二设备的多个IP地址各自对应的运营商标识,建立其他的不跨运营商的子流。或者建立主子流后,第一设备从本地确定第二设备的其他IP地址和这些其他IP地址各自对应的运营商标识,然后再进行匹配。第二方面描述的方法可以认为是第一方面描述的方法的一种具体的实现方式。
其中,第一设备也就是本端设备,第二设备也就是对端设备。第一设备上运行有客户端,第二设备上运行有服务端,或者第一设备上运行有服务端,第二设备上运行有客户端。该客户端和该服务端是同一种应用。第一设备和第二设备之间的一个多路径连接,就是客户端与服务端之间的多路径连接。第一设备和第一设备都可以是终端设备或者云端设备,或者网络中的服务器代理,多路径传输网关等支持多路径传输协议的设备。
网络接口卡可以是物理网卡也可以是虚拟网卡。网络接口卡有多种产品,有些网卡,例如SIM卡,本身就有对应的运营商;而另一些网卡如果不通电是不对应运营商的,那么这种网卡对应的运营商,就是指该网卡工作时接入的网络的运营商。该第一设备的网络接口卡接入的运营商的标识是指该网络接口卡当前执行该方法时,接入的网络的运营商的标识。因此,第一设备优先使用的网络接口卡,也就是第一设备接入当前优先接入的网络所使用的网络接口卡。
该第二设备的IP地址对应的运营商的标识,是指该第二设备通过该IP地址接入的网络的运营商的标识。例如是该第二设备的IP地址归属的运营商的标识。
网卡接入的运营商的标识和第二设备的IP地址对应的运营商的标识,可以是不同形式的标识,只要能指示运营商即可,故,不同的运营商标识可能指示相同的运营商。
这样,第一方面描述的方法,第一设备确定了本端的多个网卡各自接入的运营商,以及对端的多个IP地址各自对应的运营商,通过匹配,优先或者只在对应相同运营商的网卡和对端IP地址建立子流,考虑了多路径连接所支持的多个运营商对建立的子流的影响,对建立的每一条子流,使得该每一条子流的两个端节点接入的网络归属相同的运营商,从而能更好地保障该多路径连接的传输性能,也能相比于单路径连接更好地发挥多路径连接的传输性能的优势。
其中,第一设备可以从本地获得第二设备的多个IP地址,以及所述第二设备的多个IP地址各自对应的运营商的标识。本地是指第一设备,即无需从其他设备得到这些信息。具体可以是第一设备的多路径协议栈从第一设备的客户端获得,或者第一设备的客户端主动向第一设备的多路径协议栈下发。也可以是第一设备的多路径协议栈从第一设备中位于应用层或者传输层的一个配置模块获得,或者该配置模块主动向第一设备的多路径协议栈下发。该配置模块用于从客户端获取第二设备的多个IP地址,以及所述第二设备的多个IP地址各自对应的运营商的标识。
还可以是第一设备接收来自第二设备的,所述第二设备的多个IP地址,以及所述第二设备的多个IP地址各自对应的运营商的标识。也就是第二设备向第一设备发送这些信息。例如,这些信息可以承载在扩展了字段后的地址通告信令中。
其中,该第一设备基于该多个网络接口卡各自接入的运营商的标识和该第二设备的多个IP地址各自对应的运营商的标识,建立多条第一子流,可以有多种实现方式。以下说明其中的几种。
一种实现方式下,第一设备的多个网络接口卡中的每一个都对应该第一设备的IP地址。该第一设备通过匹配该多个网络接口卡各自接入的运营商标识和该第二设备的多个IP地址各自对应的运营商标识,确定多个IP地址对,该多个IP地址对中,每一个IP地址对中的该第一设备的IP地址对应的网络接口卡接入的运营商,都和该每一个IP地址对中包括的该第二设备的IP地址对应的运营商相同;该第一设备只建立或者优先建立与该多个IP地址对一一对应的多条第一子流。
也就是说,先基于本端网卡和对端IP地址各自对应的运营商,找到匹配的多个IP地址对,再建立子流。
又一种实现方式下,该第一设备通过匹配该多个网络接口卡各自接入的运营商标识和该第二设备的多个IP地址各自对应的运营商标识,确定该多个网络接口卡各自对应的该第二设备的IP地址,该多个网络接口卡中,每一个网络接口卡对应的第二设备的IP地址对应的运营商都与该每一个网络接口卡接入的运营商相同;该第一设备通过该多个网络接口卡,只向该多个网络接口卡各自对应的该第二设备的IP地址发送报文,以建立该多条第一子流。
也就是说第一设备先确定本端网卡和对端IP地址之间的对应关系,本端的一个网卡只使用该网卡对应的对端的IP地址通信,以确保建立的子流不跨运营商。
又一种实现方式下,该第一设备得到多个组合,该多个组合中的每一个组合指示该多个网络接口卡中的一个和该多个IP地址中的一个组成的组合;对该多个组合中的每一个组合,在该每一个组合指示的网络接口卡接入的运营商和该每一个组合指示的IP地址对应的运营商相同的情况下,则使用该每一个组合指示的网络接口卡和IP地址的组合,建立一条第一子流;在该每一个组合指示的网络接口卡接入的运营商和该每一个组合指示的IP地址对应的运营商不同的情况下,则禁止使用该组合指示的网络接口卡和IP地址的组合建立子流。
也就是说,先组合出本端多个网卡和多个对端的IP地址之间的各种组合,再对每个组合进行验证,看该组合中的网卡和IP地址是否对应同一运营商,对应同一运营商的建立子流,不对应的则不建立子流。
又一种实现方式下,该第一设备基于该多个网络接口卡和该第二设备的多个IP地址,建立多条子流,该多条子流包括多条第一子流;该第一设备通过匹配该多个网络接口卡各自接入的运营商的标识和该第二设备的多个IP地址各自对应的运营商的标识,拆除该多条子流中的所有第二子流,该第二子流使用的该第一设备的网络接口卡接入的运营商和该第二子流使用的该第二设备的IP地址对应的运营商不同。
也就是说,先不区分运营商地建立子流,再根据该多个网络接口卡各自接入的运营商的标识和该第二设备的多个IP地址各自对应的运营商的标识,把建立的子流中,跨运营商的子流拆除。
可见,本申请描述的建立子流的方法,可有多种实现方式。
第二方面,本申请记载一种建立子流的方法,其特征在于,该方法用于第一设备,该第一设备包括第一网络接口卡和至少一个第二网络接口卡,其中该第一网络接口卡是该第一设备当前优先使用的网络接口卡,该方法包括:第一设备确定该至少一个第二网络接口卡各自接入的运营商的标识;该第一设备通过该第一网络接口卡,向第二设备的第一互联网协议IP地址发送报文,以建立该第一设备与该第二设备的一个多路径连接的主子流,其中,该第一网络接口卡接入的运营商和该第一IP地址对应的运营商相同;该第一设备从该主子流上,接收来自该第二设备的至少一个第二IP地址,以及该至少一个第二IP地址各自对应的运营商的标识,其中该至少一个第二IP地址是该第二设备除所属第一IP地址之外的IP地址;该第一设备基于该至少一个第二网络接口卡各自接入的运营商的标识和该至少一个第二IP地址各自对应的运营商的标识,建立该多路径连接的至少一条其他子流,该至少一条其他子流中,每一条其他子流使用的第二网络接口卡接入的运营商都和该每一条其他子流使用的第二IP地址对应的运营商相同。
其中,该第一设备的多路径协议栈可从第一设备的客户端得到该第二设备的第一IP地址。
第二方面描述的方法可以认为是第一方面描述的方法的一种实现方式,故关于第二方面的大部分的解释说明,实现方式和对有益效果的描述,请参照第一方面的相关描述。第二方面描述的是除了主子流外,至少还有一对匹配的本端的网卡和对端的IP地址建立子流的情况。当然,也可以除主子流外,没有匹配的本端的网卡和对端的IP地址,那么该多路径连接就可以只用主子流传输。
这样,第二方面描述的方法,第一设备确定了本端的至少一个第二网卡各自接入的运营商,以及对端的至少一个IP地址各自对应的运营商,通过匹配,优先或者只在对应相同运营商的网卡和对端IP地址建立子流,考虑了多路径连接所支持的多个运营商对建立的子流的影响,对建立的每一条子流,使得该每一条子流的两个端节点接入的网络归属相同的运营商,从而能更好地保障该多路径连接的传输性能,也能相比于单路径连接更好地发挥多路径连接的传输性能的优势。
其中,该第一设备当前优先使用的网络接口卡,是指该第一设备当前执行该方法时,优先使用或者当前默认使用的网卡,或者也可以是该第一设备当前唯一接入网络的一张网卡。也就是说,该第一设备优先使用的网络接口卡是可以随着设置,实际网络情况,时间等变化的。
第一设备基于该至少一个第二网络接口卡各自接入的运营商的标识和该至少一个第二IP地址各自对应的运营商的标识,建立该多路径连接的至少一条其他子流,有多种实现方式。
一种实现方式下,该至少一个第二网络接口卡中的每一个都对应该第一设备的IP地址,该第一设备通过匹配该至少一个第二网络接口卡各自接入的运营商的标识和该至少一个第二IP地址各自对应的运营商的标识,确定至少一个IP地址对,该至少一个IP地址对中,每一个IP地址对中的该第一设备的IP地址对应的第二网络接口卡所接入的运营商都和该每一个IP地址对中的第二IP地址所对应的运营商相同;该第一设备只建立与该至少一个IP地址对一一对应的该至少一条其他子流。
一种实现方式下,该第一设备通过匹配该至少一个第二网络接口卡各自接入的运营商的标识和该至少一个第二IP地址各自对应的运营商的标识,建立该多路径连接的至少一条其他子流,包括:该第一设备通过匹配该至少一个第二网络接口卡各自接入的运营商的标识和该至少一个第二IP地址各自对应的运营商的标识,确定该至少一个第二网络接口卡各自接入的第二IP地址,该至少一个第二网络接口卡中,每个第二网络接口卡对应的第二IP地址对应的运营商都与该每个第二网络接口卡接入的运营商相同;该第一设备通过该至少一个第二网络接口卡,只向该至少一个第二网络接口卡各自对应的第二IP地址发送报文,以建立该至少一条其他子流。
一种实现方式下,该第一设备得到至少一个组合,该组合中的每一个组合指示该至少一个第二网络接口卡中的一个和该至少一个第二IP地址中的一个组成的组合;对该多个组合对中的每一个组合,在该每一个组合指示的第二网络接口卡接入的运营商和该每一个组合指示的第二IP地址对应的运营商相同的情况下,则使用该每一个组合指示的第二网络接口卡和第二IP地址的组合,建立该多路径连接的一条其他子流;在该组合每一个指示的第二网络接口卡接入的运营商和该每一个组合指示的第二IP地址对应的运营商不同的情况下,则禁止使用该每一个组合指示的第二网络接口卡和第二IP地址的组合,建立该多路径连接的子流。
一种实现方式下,该第一设备基于该至少一个网络接口卡和该至少一个第二IP地址,建立至少一条子流,该至少一条子流中包括至少一条其他子流;该第一设备通过匹配该至少一个第二网络接口卡各自接入的运营商的标识和该至少一个第二IP地址各自对应的运营商的标识,拆除该至少一条子流中不满足要求的子流,该不满足要求的子流使用的第二网络接口卡接入的运营商和该不满足要求的子流使用的第二IP地址对应的运营商不同。
第三方面,本申请描述一种方法,该方法在第二设备实现。该方法包括:第二设备通过第一子流向第一设备发送所述第二设备的IP地址,以及所述IP地址对应的运营商的标识,所述第一子流为所述第一设备与所述第二设备之间的多路径连接的子流;第二设备通过所述IP地址与所述第一设备通信,以建立所述多路径连接的第二子流,其中,所述第二子流从所述第一设备接入的运营商,与所述IP地址对应的运营商相同。
其中该所述第一子流在所述第一设备接入的运营商与所述第一子流在所述第二设备接入的运营商相同。
第二设备可以将第二设备的IP地址,以及该IP地址对应的运营商的标识封装在地址通告信令中发送给第一设备,其中,该IP地址对应的运营商的标识承载在地址通告信令的扩展字段。
第三方面是第一方面或者第二方面中,第二设备侧实施的方法,故有关此方面的解释和有益效果的描述请参见第一方面相关段落。
第四方面,提供一种建立子流的装置,该装置位于第一设备,其中包括用于执行第一方面的方法的一个或者多个模块,本申请对这些模块的名称和连接方式不做限定。例如包括配置模块和多路径协议栈。例如,第一方面的两个确定动作可以是配置模块做的,建立子流的动作可以是多路径传输协议栈做的。或者,第一方面的方法的所有动作都可以是多路径传输协议栈做的,其中,对于确定所述第一设备的多个网络接口卡各自接入的运营商的标识,可以是多路径传输协议栈从传输层以下的协议栈配置模块确定的,对于确定第二设备的多个互联网协议IP地址,以及所述第二设备的多个IP地址各自对应的运营商的标识,可以是多路径传输协议栈从第一设备的客户端或者接收来自第二设备的信息确定的。
有关第四方面的各种实现方式和名词解释,请参考第一方面相关的段落。
第五方面,提供一种建立子流的装置,该装置位于第一设备,其中包括用于执行第二方面的方法的一个或者多个模块,本申请对这些模块的名称和连接方式不做限定。例如,第一方面的确定动作可以是配置模块做的,建立子流和接收的动作可以是多路径传输协议栈做的。或者,第二方面的方法的所有动作都可以是多路径传输协议栈做的,其中,对于确定所述第一设备的至少一个网络接口卡各自接入的运营商的标识,可以是多路径传输协议栈从配置模块确定的,对于接收第二设备的多个互联网协议IP地址,以及所述第二设备的多个IP地址各自对应的运营商的标识,可以是多路径传输协议栈做的。
有关第五方面的各种实现方式和名词解释,请参考第二方面相关的段落。
第六方面,提供一种建立子流的装置,该装置位于第二设备,其中包括用于执行第三方面的方法的一个或者多个模块,本申请对这些模块的名称和连接方式不做限定。例如可以是第二设备中的收发模块和多路径传输协议栈做的。
第七方面,提供一种设备,该设备用于建立子流,该设备包括:处理电路、通信接口和存储介质,所述存储介质中存储有指令,所述通信接口用于根据所述处理电路下发的所述指令与其他设备进行信息交互,所述处理电路用于运行所述存储介质中的所述指令,实现权第一方面及第一方面各种实现方式描述的方法,或者实现第二方面及第二方面各种实现方式描述的方法,或者第三方面及第三方面各种实现方式描述的方法。
应理解,第七方面是第一方面到第三方面任一方面对应的设备,其各种具体的实现方式、说明以及技术效果不再赘述。
第八方面,提供一种计算机程序产品,所述计算机程序产品中存储有用于存储可以实现第一方面或者第三方面中任一方面的各种实现方式中任意一种的方法的程序代码,或者用于存储可以实现第二方面中各种实现方式中任意一种的方法的程序代码。
第九方面,提供一种计算机可读存储介质,包括指令,当所述指令在计算机上运行时,使得所述计算机执行第一方面中各种实现方式中任意一种的方法,或者第二方面中各种实现方式中任意一种的方法,或者第三方面中各种实现方式中任意一种的方法。
附图说明
为了更清楚地说明本申请中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一种现有的建立子流的方法的流程示意图;
图2为本申请描述的一种终端与服务器多子流通信的示意图;
图3为本申请涉及的设备的一种软硬件架构图;
图4为本申请涉及的设备的软件部分的一种架构图;
图5a为本申请描述的建立子流的方法的一种示意;
图5b为本申请描述的建立子流的方法的一种示意图;
图6为本申请描述的地址通告信令的格式示意图;
图7为本申请描述的建立子流的方法的一种交互示意图;
图8为本申请描述的建立子流的方法的又一种交互示意图;
图9为本申请提供的一种用于建立子流的装置的结构示意图;
图10为本申请提供的一种用于建立子流的设备的结构示意图。
具体实施方式
本申请提供了一种基于建立子流的方法、装置和系统,下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应理解,本申请中的各种名词解释是多个实施例可通用的,本申请中对方法实施例的解释和说明,对其他类型的实施例,例如装置,设备或者计算机程序产品等,都是通用的。
实际的组网环境比较复杂,多于两条子流的多路径传输场景也越来越普及。可以是在广域网中,某个区域有多个运营商,导致该区域支持多于两条子流进行TCP数据传输,再例如,一个数据中心中,也可以通过等价多路径(Equal-Cost MultiPath routing,ECMP)路由技术实现支持三条及以上子流进行多路径的TCP数据传输,。事实上,对于一个MP连接,使用所有的子流传输数据,未必就能达到最好的传输性能。
目前常见的多路径子流建立方法是配置内核的fullmesh选项,使得设备支持一个连接对应多条路径,这样,就可以在本端所有活动(active)的互联网协议(InternetProtocol,IP)地址和对端所有活动(active)的IP地址之间,分别建立子流。这种方式可以简称为fullmesh机制。在这种机制下,在所有可用的IP地址对之间建立子流,例如本端与对端之间只使用两种网络(例如LTE和Wi-Fi),也会建立起2*2=4条子流。
在两个端设备都具有归属于不同的运营商的网络接口卡的情况下,使用现有的fullmesh机制建立子流会导致无法达到预期的性能收益。在当前网络环境下,终端的多个网络接口卡很可能会归属于不同运营商,例如,用于接入Wi-Fi的网络接口卡连接至中国电信网络(China Telecom),用于接入LTE的网络接口卡连接到中国移动网络(China MobileCommunication,CMCC)。按照现有国内互联网服务提供商的通用做法,在服务器侧会为连接于不同运营商的移动终端提供不同的IP地址,也就是说,对一台同时支持WI-FI和LTE的终端,也会分配不同的IP地址。配置了fullmesh机制后,子流的建立流程如图1所示。其中,(IP1,IPa)为归属于中国电信的子流两端的IP地址,(IP2,IPb)为归属于中国移动子流的两端的IP地址。在这一对设备上,fullmesh机制默认使用Wi-Fi传输数据。
即,首先,客户端使用当前默认路由使用的网络接口卡,对应的IP地址为IP1,与服务器的IP地址IPa建立主子流,即子流1。也就是说,多路径传输技术中,客户端所在的设备会有一个当前默认的网络接口卡,或者称为当前优先使用的网络接口卡,客户端使用该当前默认的网络接口卡建立单路径连接。当前是指建立图1所示的多路径连接时,客户端所在设备默认使用的网络接口卡,也就是说,对一个设备,由于配置或者所处的网络环境的原因,其默认使用的网络接口卡并不是始终不变的。由于网卡与本端的IP地址有明确的对应关系,也就是说客户端有当前默认使用(或者称为优先使用)的本端的IP地址。该设备(如终端)通过该当前默认的IP地址,与服务端建立子流,该子流中,服务端的IP地址是与该默认使用的IP地址属于同一个运营商的。
这是由于,本申请描述的建立子流的过程中的子流用于传输数据,而在这之前,客户端和服务端也是可以通信的。在建立子流前,客户端可以通过默认的网卡向服务端告知客户端默认用于通信的运营商,服务端返回客户端的一个IP地址,这个IP地址所归属的运营商与客户端所在设备默认的网卡接入的运营商相同。因此,客户端在建立主子流时,已知服务端的IP地址,且建立的主子流不会跨运营商。
接着,客户端与服务端在已经建立的主子流上,向对端通告自己所有其他可用的IP地址,即客户端向服务端通告IP地址IP2,服务端向客户端通告IP地址IPb。这两个相互通告IP地址的动作可同时发生或任一先发生。接下来,客户端在本地所有可用网络接口卡上向服务端通告的所有IP地址发起子流建立流程,即客户端与服务端,使用IP地址对IP1和IPb,IP2和IPa,以及IP2和IPb,分别建立子流2,子流3和子流4。其中,不限定三条子流的建立顺序,例如,这三条子流可以是并行建立的。图1只是示意性说明,并不作为步骤先后顺序的限定。
图2示意的是图1描述的多条子流的网络拓扑。客户端位于终端,该终端有两个IP地址,服务端位于服务器上,服务器属于云该服务器同样有两个IP地址,通过Wi-Fi和蜂窝网络,建立了四条子流。图2中还示意出了蜂窝网络中的基站以及Wi-Fi网络中的路由器。
其中子流1,子流4为同运营商的IP地址之间的子流连接,子流2,子流3为跨运营商的IP地址之间的子流连接。
图2中示出了不同网络的接入节点。其中,接入节点专指无线网络的接入节点,具体的,可以是无线Wi-Fi网络的接入点(AccessPoint,AP)、路由器、或者Winmax网络的接入点或者无线蜂窝移动网络的基站等等,本发明不限定无线网络的种类以及无线网络的接入节点具体的形式。并且,同一类型的无线网络是指同属于无线Wi-Fi网络的接入节点,或者同属于Winmax网络,或者同属于无线蜂窝网络的接入节点如2G网络、3G网络或者4G网络或者5G网络等等。
在图2示意的网络拓扑中,相对于子流1以及子流4,子流2,子流3上的数据传输时延会比较高,而且还比较高概率出现丢包。进而在多路径并行传输提高吞吐性能场景,引入子流2,子流3很大概率上会带来负面的收益;而在多路径补包传输提高时延,可靠性性能场景,引入子流2,子流3无明显改善,但是会导致客户端以及服务端更多的带宽流量开销。另一方面,在服务端是服务器时,在实际场景中,服务器要给数以百计千计的客户端提供服务,且由于实际组网的复杂性,一个服务器所对应的IP地址往往也不止2个,对传输性能没有明显改善的子流数目也是数以百计千计,对服务器是很重的负担,也浪费了网络资源。
可见,虽然客户端与服务端之间建立了4条子流,但传输性能并没有比有选择地建立两条子流好很多,甚至在某些性能指标上反而不如只使用子流1和子流4。
本申请提出的建立子流的方法,就是在一个MP连接建立多条子流的过程中,如何有选择地建立子流,以保障传输性能。
下面解释本申请出现的一些名词。
A和/或B:表示A和B,或者A或B。
多路径连接:通过(over)一个应用,在两个主机(host)间的可以通信的多条子流。其中,主机(host)是一个多路径连接的端节点,主机中运行有应用,该多路径连接和应用的接口(socket)之间有一一映射。其中,通过(over)一个应用,在两个主机(host)间可以通信的链路也称为连接,只是MP连接包括多路径,而一般的连接只有一个路径。两个主机往往运行在两个物理机上。
本申请中,应用可以部署在网络设备(如服务器,网关,代理服务器等)中,也可以部署在终端。
路径(path):路径是发端(sender)与收端(reciever)之间的链路(link)。路径可以用四元组或者五元组来标识。例如,五元组包括源IP地址,源端口号,目的IP地址,目的端口号以及传输层协议名称。一对收端和发端之间的多条路径可以共享一个或者多个路由器(router)。
子流(subflow):在单个路径(path)上运行的流。对子流是一多路径连接的一部分。在多路径传输技术中,子流可以使用常见的多种单流的传输协议,例如TCP(传输控制协议,Path Transmission Control Protocol)、UDP(User Datagram Protocol,用户数据报协议)、
SCTP(流控制传输协议,Stream Control Transmission Protocol)或者QUIC(快速UDP网络连线,Quick UDP Internet Connections)等等。单条子流使用该子流对应的传输协议控制。
本申请中,不跨运营商的子流是指子流的两端接入的网络,即客户端接入的网络和服务端接入的网络为同一运营商提供的网络。需说明的是,如果一个子流,客户端接入的网络是位于A地的运营商A提供的,服务端提供的网络是位于B地的运营商A提供的,则认为该子流不跨运营商。如果一个子流,客户端接入的网络是位于A地的运营商A提供的A网络(如LTE),服务端提供的网络是位于B地的运营商A提供的B网络(如3G或Wi-Fi),则也认为该子流不跨运营商。反之,子流的两端接入的网络为不同运营商提供的网络,则该子流跨运营商。
网络接口卡(Network Interface Card,NIC),也可以称为网络接口卡控制器,或者网络界面控制器,简称网卡。本文提及的网卡是物理网卡也可以是由物理网卡虚拟出的虚拟网卡。物理网卡是一块被设计用来允许物理机或者其他设备接入某一个网络与其他网元进行通讯的硬件。对于一个连接,该连接上的某个物理节点使用网卡接入网络,则该物理节点的网卡与该物理节点接入的网络的提供商,即网络的运营商之间的对应关系是确定的,进一步的,在该连接中,该物理节点若已知接入网络的使用的网卡,则该物理节点也可确定该物理节点在该连接中使用的IP地址。本申请中,网卡对应的运营商,是指使用该网卡接入的网络所属的运营商,所以也称为网卡接入的运营商。
关于主机(host)、路径(path)、链路(link)、子流(subflow)的相关内容,可以参考IETF标准组织的文件RFC.6824。
本申请中,称客户端所在的设备为本端设备,简称本端;称服务端所在的设备为对端设备,简称对端。图2中示出了一种常见的场景,本端为终端,对端为服务器。本申请记载的技术方案也可应用在云到云通信场景和端到端通信的场景。
多路径传输技术可以用在多种组网系统中,通常,若要通过多路径传输技术传递信息,信息的发送端和接收端之间应至少有一段链路支持多路径传输技术,该多种组网系统可以是终端与终端通信,云端与云端通信或者云端与终端通信。本申请的描述的方法可以由多路径传输连接的端节点执行。该端节点可以是在支持多路径传输技术的端设备上,如果一端的端设备不支持多路径传输,要使用多路径传输技术传递报文,则必然会使用支持多路径传输技术的代理设备,则本申请的技术方案就用在支持多路径传输的代理设备上。具体就是用在支持多路径传输协议的云端设备,例如服务器;支持多路径传输协议的终端,例如台式机、笔记本电脑、平板电脑、蜂窝电话、智能手表、智能手机或PDA等等;以及支持多路径传输协议的网元,例如网关、接入路由器、核心路由器、前端路由器或者负载均衡器。
图3是一种设备的架构示意图,该设备的硬件包括各种硬件器件或装置,如存储器,处理器以及用于网络互连的网卡等,其中,网卡可以是一张或多张,如果是一张网卡,则通过虚拟网卡技术虚拟出多张网卡以支持多种网络,如果是多张网卡,则可以是每一张网卡支持一种网络,或其中的至少一张可以使用虚拟网卡技术。例如,终端中,有不同的网卡分别用于连接蜂窝网和Wi-Fi。再例如一个终端支持两个移动通信号码,例如可同时装2张SIM卡,且可使用这两种蜂窝网来进行多路径传输,那么这两个移动通信号码各自使用不同的网卡。该设备的软件包括操作系统和运行于操作系统用户态中的应用(如应用A,应用B,应用C),其中,操作系统可分为内核态和用户态。图中示意性举例了一些单流的用户态协议和内核态协议,这些协议可用于控制多路径连接的子流。不同的协议,协议所处位置也略有不同,例如,UDP或者流控制传输协议(Stream Control Transmission Protocol,STCP)等为内核态协议,而快速UDP网络连接(Quick UDP Internet Connection,QUIC)协议,以及一些私有协议属于用户态协议,而TCP协议则跨内核态和用户态。从操作系统角度,多路径传输对应的协议在内核态和用户态均有分布。
本申请描述的方法可以代码形式存储在图3的存储器中,通过处理器的调用在软件中实现,例如协议栈中的网络层、传输层和应用层。
协议栈可以包括:物理层、数据链路层、网络层、传输层和应用层,用于实现各个层的协议。图4从协议栈角度描述了本申请涉及的各种协议的相对位置。图4中包括网络层、传输层和应用层。多路径传输协议层可以认为位于传输层,故也称多路径传输层,替代的是目前较常见的传输层协议。其中多路径传输协议层包括用于控制整个多路径连接的MP层和控制子流的子流层,各子流层可使用前述的各种协议。多路径传输协议可以整体分布在内核态或者用户态,也可以在内核态和用户态均有分布。网络层(Network Layer)包括IP协议,也被称为IP层。本申请描述的IP地址,可以是网络层获得的,而本申请描述的运营商标识,则可能从网络层或者更低的层获得。APP层运行有各种应用,对应于图3中的用户态。可见,图4是从因特网协议栈的角度来描述的,画出了与本申请描述的方法关联度更高的上三层,而未绘出数据链路层和物理层。图3中的硬件可认为对应物理层。应用层与传输层之间通过标准Socket接口(satandard Socket API)通信。图4举例了三种多路径传输层的实现方式,每种实现方式中包括了MP层和子流层,其中MP层运行有多路径传输协议,子流层示意性画出了2个子流。图3的设备中可以包括该三种多路径传输层任一种,且由于应用层和IP层三种实现方式类似,没有分别描绘。其中,左侧示意内核态的多路径传输层,其子流使用TCP/SCTP协议;中间示意用户态的MP层,其子流使用QUIC协议且内核态使用UDP协议;以及右侧示意用户态多路径传输层,其子流使用TCP/SCTP协议。
基于上述场景和问题,本申请描述一种建立子流的方法。下面以建立子流的一端是客户端为例进行说明,例如该客户端运行在终端上。该方法中,本端的协议栈得到该本端的网络接口卡所对应的运营商标识,以及得到要建立连接的对端设备的IP地址所归属的运营商的标识,通过匹配运营商的标识来选取合适的IP地址对建立子流。一种实现方式下,该协议栈是位于内核的协议栈。
其中,运营商的标识用于区分不同的运营商,本申请不限定具体的表示形式。为描述方便,运营商的标识下文称呼为运营商标识。例如,该运营商标识可以是运营商的名称,如中国电信,或者是编号,或者是标记位,或者是该运营商提供的网络的名称,如LTE,或者是其他可以区分运营商的参数,或者是其他可以区分运营商的数据结构。
一个网络接口卡接入的运营商的标识,下文可称为网卡对应的运营商标识,或网卡的运营商标识。
IP地址与其对应的运营商,这个对应关系的实质是通过该IP地址接入的网络是哪个运营商提供的。也就是说,IP地址对应的运营商,一种实现方式下,就是该IP地址归属的运营商,但是,也可以是其他类似的关系,本申请不做限制,例如,有些IP地址只是一个私有网络的IP地址,或者临时的IP地址,可能该IP地址并不归属一个运营商,那么这种IP地址对应的运营商标识,或IP地址的运营商标识就解释为与该IP地址对应的网卡接入的运营商的标识相同。一个IP地址归属的运营商的标识,下文可简称为IP地址对应的运营商标识,或IP地址的运营商标识。
还需说明的是,对于一个子流,两端设备可以使用不同表达形式的运营商标识表示同一运营商。例如,对一个子流,客户端所在设备使用编号表示运营商,服务端所在设备使用运营商名称表示运营商。
类似的,下文提及网卡标识(即网络接口卡的标识)也不限定具体的表示形式,只要可以客户端所在设备上区分不同的网卡即可,该网卡可以是虚拟网卡或者物理网卡,可参考对运营商标识的描述。例如手机上的用户身份识别模块(Subscriber IdentityModule,SIM)卡的名称或者编号,也可以作为网卡标识。下文提及的应用标识用于标识一个应用,业务标识用于区分一个业务,同样也可以是名称,编号等等,例如应用标识可以是应用对应的企业或者公司的标识,本申请对应用标识和业务标识的具体形式不做限定。
需说明的是,一个运营商可能同时提供多种网络,在一些实现方式中,本申请描述的方法并不限定子流必须在同一运营商的提供的同一种网络中建立。也就是说,使用本申请描述的方法,建立的子流中,有可能存在两端的IP地址属于同一运营商但属于不同种网络的情况。当然,在另一些实现方式中,建立子流的规则更加严格,只在属于同一运营商的同一种网络的IP地址对之间建立子流。
下面描述建立子流的方法,该方法在一个连接的两个端设备间施行。该方法包括:
S501:本端设备的协议栈得到本端信息和对端信息。
本端信息包括本端设备的该多个网络接口卡各自对应的运营商标识,以及对端信息包括对端设备的多个IP地址以及该多个IP地址各自归属的运营商的标识。
或者本端信息包括优先使用的网卡的标识,本端设备除优先使用的网卡之外的其他卡的标识,以及该其他网卡各自对应的运营商的标识,以及对端信息包括对端设备中该优先使用的网卡对应的IP地址,与该优先使用的网卡对应的IP地址之外的其他IP地址,以及该其他IP地址各自归属的运营商的标识。该其他IP地址可以是一个或多个,该其他网卡也可以是一个或多个。这是由于主子流的IP地址对可用现有技术确定,因此本方法的流程在建立多子流的过程中,只需得到其他可用于建立子流的IP地址对,而很多场景下,一个设备的每个I P地址都归属不同的运营商。这样也就无需主子流对应的运营商标识。
本端设备先得到本端信息,也可先得到对端信息,无顺序限制。
具体是本端设备的传输层的协议栈,得到本端信息和对端信息,协议栈可将上述得到的本端信息和对端信息保存。
本端设备的协议栈从本端设备的网络层得到本端设备的网卡标识和运营商标识。具体可以是网络层的模块(例如位于网络层的配置模块2)探测到本端的多个网络接口卡各自用于接入哪个运营商的网络后,向传输层上报网络接口卡的标识(简称网卡标识)与运营商标识的对应关系,也可以是传输层的协议栈主动从底层获取网络接口卡的标识与运营商标识的对应关系。其中,该多个网络接口卡包括虚拟接口卡和物理接口卡中的至少一种。
协议栈可由网卡标识与运营商标识的对应关系,先确定出本端设备的多个IP地址各自归属的运营商;再从基于本端已知对应运营商的多个IP地址和对端已知运营商的多个IP地址,在属于相同的运营商的客户端IP地址和服务端IP地址之间建立子流。也可以直接基于本端的网卡标识与运营商标识的对应关系,和对端的IP地址和运营商标识的对应关系,确定要建立的子流。
这是由于网络接口卡与IP地址间有明确的映射关系,且本端设备通过网络接口卡收发报文。因此,对客户端所在设备。也可以得到运营商标识与其他能确定出IP地址的参数之间的对应关系,该终端可以通过查询终端中存储的该参数与IP地址的对应关系,确定出IP地址于运营商标识之间的对应关系。
本端设备的协议栈得到对端设备的多个IP地址以及该多个IP地址各自归属的运营商,具体可以是IP地址和运营商标识之间的映射关系。
一种实现方式下,主子流所使用的IP地址及其对应的运营商标识,以及其他的对端设备的IP地址和运营商标识之间的映射关系可以都事先由对端设备发送给本端设备的客户端,开始执行S501时,本端设备的协议栈从本端设备的客户端得到,例如,可以是位于应用层的配置模块1从客户端获取多对IP地址和运营商标识之间的映射关系后,多路径协议栈再从该配置模块1获取或者该配置模块1再下发给多路径协议栈。之后,再在S503中建立主子流和其他归属同一运营商的子流。图5a示意的就是这样一种实现方式。图5a中的还指示了S501中,多路径协议栈从配置模块2得到本端的网络接口卡的标识与运营商标识的对应关系。配置模块2位于传输层以下。配置模块1和配置模块2都是软件模块。另一种情况,可以在执行S501过程中,客户端同步与服务端建立主子流,而在S503中建立除主子流之外的子流,也就是多路径协议栈获知用于建立主子流的IP地址对后,先建立主子流,再收集其他信息。主子流的建立时间是比较灵活的。
或者,主子流所使用的IP地址事先由对端设备发送给本端设备。本端设备的建立主子流后,对端设备通过主子流向本端设备发送其余的IP地址与运营商标识之间的映射关系。这种实现方式下,S501中还包括建立主子流的过程,而S503中建立出主子流之外的其他子流。图5b示意的就是其中一种实现方式。S501中,本端设备的多路径协议栈得到来自对端设备的其余的IP地址与运营商标识之间的映射关系,由于主子流对应的IP地址事先已发送到本端设备,本端设备的客户端向多路径协议栈下发主子流IP地址,本端设备的多路径协议栈从配置模块得到本端得到本端的网络接口卡的标识与运营商标识的对应关系。之后,再在S503中建立除主子流之外的其他归属同一运营商的子流。图5b没有示意出S501中还包括的建立主子流过程。配置模块位于传输层以下。
当然,对于上述的应用层和多路径协议栈之间的信息交互,也可以是客户端直接下发给多路径协议栈,本申请不再配图说明。
对端设备向本端设备发送其余的IP地址与运营商标识之间的映射关系,可借助图6所示的地址通告信令实现。地址通告信令的IP地址字段携带除主子流的IP地址之外的IP地址,利用自定义的操作信息(operator information)字段携带其归属的运营商标识。这样,就无需自定义新的指令,对现有的通信协议改动比较小,图8示意的是通用的地址通告信令,第一行只用于表示4个8位组的长度,并不包括在地址通告信令中。地址通告信令包括的字段,在图8中从种类(kind)字段开始,截止于操作信息字段。其中,操作信息字段的长度可以大于2个8位组,图6只是示意其位置。
现有的full mesh机制中,通信双方互相告知对方IP地址就是用该信令实现的。其中,8位组(octet)表示8bit的长度,即一组8位的数据,类似比特(byte)。操作信息(operator information)字段是可选字段。不同的IP协议,对应的IP地址长度不同。现有的地址通告信令中该字段为空,或者携带其他信息,并不会携带运营商标识。
S503:本端设备在属于相同运营商的IP地址对间建立子流。
一种实现方式下,S503前可包括S502a:本端设备匹配本端设备的多个网络接口卡对应的运营商和对端设备的多个IP地址归属的运营商。当然,本端的多个网络接口卡对应的运营商,就是本端设备的多个IP地址归属的运营商。另一种实现方式下,S503前可包括S502b:本端设备匹配本端设备的除主子流的网卡之外其他网卡对应的运营商和对端设备除主子流的IP地址之外,其他IP地址归属的运营商。
本端设备的协议栈基于本端和对端多个IP各自对应的运营商,建立至少一条子流。或者,协议栈基于本端的网卡标识和对端的IP各自对应的运营商,建立至少一条子流。一种实现方式下,该过程可以是终端先建立所有的子流,再终止两端IP地址归属不同运营商的子流。另一种实现方式下,该过程可以是先确定出允许建立子流的IP地址对,只建立这些地址对对应的子流。本端可以保存一些匹配规则,例如,只在归属于相同的运营商提供的网络的客户端和服务端的IP地址之间,建立子流,而不归属于相同运营商的IP地址之间则不建立子流,再例如,终止两端IP地址归属不同运营商的子流,等等。
这个匹配以及只在属于相同运营商的IP地址对间建立子流的建流逻辑,可以认为是多路径传输协议栈中新增的一个模块实现的,该模块的实质就是在多路径协议栈中新增了一段代码,该模块可称为路径管理模块。通过该路径管理模块,多路径传输协议栈在建立子流时,可以杜绝不属于同一运营商的IP地址对之间的子流,从而保障传输性能。图5a和图5b中并没有画出该路径管理模块。
本端从对端获取对端,在S501的实现中,还可以包括建立主子流的过程,即本端获得本端。本端从应用层获取多个对端IP地址的实现方式中,可认为建立主子流的过程包括在S503中。建立主子流的过程可参考前文的描述或者现有的多路径传输技术中的方案。主子流是本端设备使用本端默认网络接口卡以及与该默认网络接口卡对应同一运营商的对端IP地址的子流。
这样,通过匹配运营商的标识来选取合适的IP地址对来建立子流,避免了因某些子流跨运营商通信而对一多路径连接的传输性能的负面影响,更好地发挥多路径连接相比于单路径连接的传输性能的优势,相比于在所有可能的IP地址对之间建立子流,减小了本端和对端维护的子流的数目,降低了设备和网络的负担。
下面再描述一下S501中,本端设备得到的对端设备信息,即对端设备的多个IP地址以及该多个IP地址各自归属的运营商。
一个服务器上可以运行有多种应用的数据。一些大的公司旗下有多个应用,例如,google旗下有google地图,google搜索等多个应用,腾讯(Tencent)旗下有各种游戏应用,还有腾讯视频,微信(wechat)、QQ音乐等,同一公司旗下的应用可共用服务器。云平台云服务的出现,也可能一台服务器上运行有多个属于不同公司的应用。也就是说,一个服务器可以作为多种应用的服务端,某些应用可能共用一些IP地址。另一方面,一个应用可以包括用于实现不同业务的模块,而不同的模块可以对应不同的IP地址。故,一个应用可以对应多个对端的IP地址,一个对端的IP地址也可以被多个应用复用。
本端可以得到对端设备的所有可用的IP地址以及这些IP地址各自归属的运营商的标识,即,服务器不区分该服务器上各个应用各自对应的IP地址,而是把所有IP地址及其对应的运营商的标识都发送给终端。本端可以只得到对端设备中,需要建立子流的应用对应的IP地址及其对应的运营商的标识。服务器发送的可以是应用,服务器的IP地址以及运营商的标识三者的映射关系,例如应用标识、IP地址和运营商标识之间的映射关系。当然,映射关系还可以更加复杂和多变,例如可以是业务标识,应用标识、IP地址和运营商标识之间的映射关系,业务是要建立的子流将承载的业务。本申请不限制对端发送给本端的信息的具体形式,可以是更多个参数之间的映射关系,但该映射关系中,包括IP地址和运营商标识的映射。本端的应用接收到这些信息后,可进行处理,最终,本端的协议栈至少得到IP地址和运营商标识的映射。表1示意了一种实现方式下,协议栈得到的映射关系中所包括的内容,其中,应用的名称为游戏1。
表1
应用名称 | 运营商名称 | IP地址 |
游戏1 | 中国移动 | IPa |
中国联通 | IPb | |
中国电信 | IPc | |
中国铁通 | IPd | |
其他运营商 | IPe |
下面结合图7和图8,描述两种具体场景下,前述建立子流的方法的实施。图7和图8的实现方式是在现有的fullmesh机制的基础上做修改来实现前述的建立子流的方法的。
图7对应的场景中,终端上运行有A应用,该终端需与该A应用对应的服务器建立多路径连接,该终端上的A应用为客户端,服务器上运行有服务端。其中,终端的IP地址为归属于中国移动的IP1和归属于中国电信的IP2,服务器上对应应用A的IP地址为属于中国移动的IPa和属于中国电信的IPb。图7对应的流程中,终端的传输层在建立主子流之前,从本端的应用层获取多对对端的IP地址和运营商的标识的对应关系。图7对应的实施例中,终端当前默认使用的网卡是用于接入中国移动的网卡。
S701:终端得到多对本端的网卡标识和运营商标识的对应关系,以及得到多对对端的IP地址和运营商标识的对应关系。其中,对端是A应用对应的服务器。
具体的,终端的应用层向多路径协议栈下发多对对端的IP地址和运营商标识的对应关系。其中,A应用中已保存有多对对端的IP地址和运营商标识的对应关系。可以是A应用下发,也可以是应用层的一个配置模块从A应用获取后,向多路径协议栈下发。例如,对端的IP地址包括属于中国移动的IPa和属于中国电信的IPb。
终端的网络层向多路径协议栈上报终端的多个网卡标识,以及该多个网卡标识各自归属的运营商标识。其格式如下:
{
Wi-Fi网络接口卡名称:Wi-Fi网络归属的运营商标识
LTE网络接口卡名称:LTE网络归属的运营商标识
}
在终端上安装有SIM卡的情况下,该SIM卡的名称也可以作为移动蜂窝网络的网络接口卡的名称。例如,终端有两张网卡,分别属于中国移动和中国电信。其中,中国移动提供蜂窝移动网络,则可表示为:
{
SIM卡编号:CMCC
Wi-Fi网卡标识:Telecom
}
上述例子中运营商标识用运营商的名称表示。
终端的传输层协议栈可将得到的上述本端的对应关系存储起来。其中,终端默认网卡(即当前优先使用的网卡)是中国移动的SIM卡,终端基于SIM卡所对应的运营商选择对应的目的IP地址,即同样属于中国移动的IPa。终端的SIM卡对应的IP地址为IP1。
S702:终端与服务器使用IP1与IPa建立子流。
其中,使用IP1与IPa建立的子流可称为主子流。
S703:终端通过主子流,向服务器通告本端的其他IP地址,即IP2。
S703可以使用前文描述的fullmesh机制中的报文实现。例如,该报文中承载有如图6所示的地址通告信令,但可以不在扩展字段中携带IP2所属的运营商标识。
S704:终端根据S701得到的对应关系,确定需建立的除主子流之外的子流。
具体的,可以是终端传输层的协议栈中保存有匹配逻辑,确定出归属于相同运营商的IP地址对,以及在归属于相同运营商的IP地址对之间建立子流。例如,可以是传输层的多路径协议栈中的路径管理模块来执行该步骤。
S705:终端和服务器之间建立S704确定出的子流。
也就是说,IP1与IPb,IP2与IPa归属于不同运营商,这两对IP都不建立子流;IP2与IPb归属于相同运营商,使用这对IP建立子流。
图8对应的场景中,终端上运行有B应用,该终端需与该B应用对应的服务器建立多路径连接,该终端上的B应用为客户端,服务器上运行有服务端。其中,终端的IP地址为归属于中国联通的IP3和归属于其他运营商的IP4,服务器上对应应用B的IP地址为归属于中国联通的IPc和归属于其他运营商的IPd。图8对应的方法中,服务器通过主子流向终端发送B应用在该服务器上对应的IP地址,以及这些IP地址归属的运营商标识。其中,终端当前默认使用的网络接口卡是接入中国联通所使用的网卡。
S801:终端得到多对本端的网卡标识和运营商标识的对应关系。
终端传输层的多路径协议栈从较低层(如网络层或者驱动层)获取该网卡标识,以及该多个网卡标识各自归属的运营商标识。其格式可参见S601中相应的段落。
S802:终端使用该终端默认的网卡对应的IP地址IP3,以及与IP3属于同一运营商的对端的IP地址IPc,建立子流。
其中,对端IP地址IPc,可以是终端传输层从B应用得到的,而B应用则是从服务器侧得到的。该过程可发生在S801之前,具体解释可参考前文相应段落。IP3和IPc之间的子流称为主子流。另外,S802中,终端已知服务器的IP地址IP3归属的运营商,即已知IP3对应的运营商标识。
S802和S803的顺序可调换。
S803:终端通过IP3和IPc之间的子流,向服务器发送客户端除IP3之外的其他IP地址,即IP4。
S603和S803是现有的建立子流过程中的步骤。
S803可使用标准的地址通告信令,其格式可参见图6,即扩展字段不携带IP3所属的运营商标识。
S804:服务器通过IP3和IPc之间的子流,向终端发送B应用对应的除IPc之外的其他IP地址,即IPd,以及IPd所属的运营商标识。
其中,S804中包括的IPd和IPd所属的运营商标识使用改进后的地址通告信令承载。其中,地址通告信令是现有的信令,用于向对端通告本端的IP地址,但现有地址通告信令中,并不会携带IP地址所属的运营商标识。具体的,将运营商标识记载在标准的地址通告信令格式的扩充字段中。地址通告信令格式可参考图6,运营商标识记载在端口字段之后的字段中。
终端的协议层可将前述步骤中获得的IP地址与运营商标识之间的对应关系保存下来。
S805:终端根据已知的多个本端的网卡对应的运营商,以及多个已知的对端IP地址归属的运营商,确定需建立的除主子流之外的子流。
具体的,S805的实现类似S605。可以是终端传输层的协议栈中保存有匹配逻辑,确定出归属于相同运营商的IP地址对。例如,传输层的多路径协议栈中的路径管理模块来执行确定动作。
S806:终端和服务器之间建立805确定出的子流。
也就是说,IP3与IPd,IP4与IPc归属于不同运营商,协议栈禁止建立子流;IP4与IPd归属于相同运营商,协议栈允许建立子流。
图7和图8对应的实施例描述了两种具体的实现方式,其中涉及到的各种名词和各个步骤,可对照前文相应的段落进一步理解。终端作为多路径连接的一端,在建立子流之前,收集本端和对端的多个IP地址以及这些IP地址所属的运营商标识,只在归属相同运营商的IP地址之间建立子流,从而避免了在不同的IP地址之间建立的子流对多路径的传输性能的影响,更好地发挥多路径连接相比于单路径连接的传输性能的优势,相比于在所有可能的IP地址对之间建立子流,减小了本端和对端维护的子流的数目,降低了设备和网络的负担。
下面描述一些实现方式下,用于执行前述的各种建立子流的装置。关于装置实现的方法以及对该方法的各种解释说明,请参考前文的相应段落此处不再重复。事实上,本申请前文已经描述出了这些装置的一些实现方式,例如图4和图5。并且,本申请并不限定用于执行前述的各种建立子流的装置的实现方式,例如,可以包括一个或者多个模块,也不限定这些模块的名称,其连接关系由这些模块执行的步骤或具备的功能之前的逻辑关系决定。
图9描述了本申请提供的装置的结构示意图,该装置900位于本端设备,也就是前文提及的第一设备,该本端设备包括多个网络接口卡。该装置900包括配置模块901以及多路径传输协议栈902。装置900可以执行本端的各种建立子流的方法。一些实现方式下,配置模块901用于确定所述第一设备的多个网络接口卡各自接入的运营商的标识;其中,配置模块901可以从第一设备的传输层以下的协议栈得到这些信息。配置模块901还用于确定第二设备的多个互联网协议IP地址,以及所述第二设备的多个IP地址各自对应的运营商的标识。其中,配置模块901可以从本端设备的客户端得到这些信息。
或者,配置模块901用于确定所述第一设备的多个网络接口卡各自接入的运营商的标识;其中,配置模块901可以从第一设备的传输层以下的协议栈得到这些信息。多路径传输协议栈902用于确定第二设备的多个互联网协议IP地址,以及所述第二设备的多个IP地址各自对应的运营商的标识。其中,多路径传输协议栈902可以接收来自第二设备的这些信息。
多路径传输协议栈902还用于基于所述多个网络接口卡各自接入的运营商的标识和所述第二设备的多个IP地址各自对应的运营商的标识,建立多条第一子流,所述多条第一子流是所述第一设备与所述第二设备之间的一个多路径连接的子流,所述多条第一子流中,每一条第一子流使用的所述第一设备的网络接口卡接入的运营商都和所述每一条第一子流使用的所述第二设备的IP地址对应的运营商相同。
关于基于所述多个网络接口卡各自接入的运营商的标识和所述第二设备的多个IP地址各自对应的运营商的标识,建立多条第一子流,多路径传输协议栈902可以有多种实现。
例如,第一设备的多个网络接口卡中的每一个都对应所述第一设备的IP地址,多路径传输协议栈902具体用于通过匹配所述多个网络接口卡各自接入的运营商标识和所述第二设备的多个IP地址各自对应的运营商标识,确定多个IP地址对,所述多个IP地址对中,每一个IP地址对中的所述第一设备的IP地址对应的网络接口卡接入的运营商,都和所述每一个IP地址对中包括的所述第二设备的IP地址对应的运营商相同;建立与所述多个IP地址对一一对应的多条第一子流。
再例如,多路径传输协议栈902具体用于通过匹配所述多个网络接口卡各自接入的运营商标识和所述第二设备的多个IP地址各自对应的运营商标识,确定所述多个网络接口卡各自对应的所述第二设备的IP地址,所述多个网络接口卡中,每一个网络接口卡对应的第二设备的IP地址对应的运营商都与所述每一个网络接口卡接入的运营商相同;通过所述多个网络接口卡,向所述多个网络接口卡各自对应的所述第二设备的IP地址发送报文,以建立所述多条第一子流。
再例如,多路径传输协议栈902具体用于得到多个组合,所述多个组合中的每一个组合指示所述多个网络接口卡中的一个和所述多个IP地址中的一个组成的组合;对所述多个组合中的每一个组合,在所述每一个组合指示的网络接口卡接入的运营商和所述每一个组合指示的IP地址对应的运营商相同的情况下,则使用所述每一个组合指示的网络接口卡和IP地址的组合,建立一条第一子流;在所述每一个组合指示的网络接口卡接入的运营商和所述每一个组合指示的IP地址对应的运营商不同的情况下,则禁止使用所述组合指示的网络接口卡和IP地址的组合建立子流。
再例如,多路径传输协议栈902具体用于基于所述多个网络接口卡和所述第二设备的多个IP地址,建立多条子流,所述多条子流包括多条第一子流;通过匹配所述多个网络接口卡各自接入的运营商的标识和所述第二设备的多个IP地址各自对应的运营商的标识,拆除所述多条子流中的所有第二子流,所述第二子流使用的所述第一设备的网络接口卡接入的运营商和所述第二子流使用的所述第二设备的IP地址对应的运营商不同。
又一些实现方式下,所述第一设备包括第一网络接口卡和至少一个第二网络接口卡,其中所述第一网络接口卡是所述第一设备当前优先使用的网络接口卡。配置模块901用于确定所述至少一个第二网络接口卡各自接入的运营商的标识;多路径传输协议栈902用于通过所述第一网络接口卡,向第二设备的第一互联网协议IP地址发送报文,以建立所述第一设备与所述第二设备的一个多路径连接的主子流,其中,所述第一网络接口卡接入的运营商和所述第一IP地址对应的运营商相同;多路径传输协议栈902还用于从所述主子流上,接收来自所述第二设备的至少一个第二IP地址,以及所述至少一个第二IP地址各自对应的运营商的标识,其中所述至少一个第二IP地址是所述第二设备除所属第一IP地址之外的IP地址;以及基于所述至少一个第二网络接口卡各自接入的运营商的标识和所述至少一个第二IP地址各自对应的运营商的标识,建立所述多路径连接的至少一条其他子流,所述至少一条其他子流中,每一条其他子流使用的第二网络接口卡接入的运营商都和所述每一条其他子流使用的第二IP地址对应的运营商相同。
其中,对基于所述至少一个第二网络接口卡各自接入的运营商的标识和所述至少一个第二IP地址各自对应的运营商的标识,建立所述多路径连接的至少一条其他子流,也有多种实现,可以参考前文的例子。
另一方面,本申请描述另一种建立子流的装置,该装置用于第二设备,也就是前文描述的对端设备。具体的实现细节可以参考前文。该装置包括发送模块,该发送模块用于通过第一子流向第一设备发送所述第二设备的IP地址,以及所述IP地址对应的运营商的标识,所述第一子流为所述第一设备与所述第二设备之间的多路径连接的子流;该装置还包括接收模块,该接收模块用于与该发送模块配合,通过所述IP地址与所述第一设备通信,以建立所述多路径连接的第二子流,其中,所述第二子流从所述第一设备接入的运营商,与所述IP地址对应的运营商相同。
图10描述了本申请提供的设备1000。图10描述的设备可以是终端,云服务器、云端代理服务器、负载均衡器或者混合接入网关等支持多路径传输协议的设备,即图10可以是图2中的终端,也可以是图2中的服务器。该设备1000包括:至少一个处理电路1001,通信接口1004,通信接口1004包括多个网卡,该多个网卡可以是物理网卡也可以是虚拟网卡。图中未标出,存储介质1005,至少一个通信总线1002。通信总线1002用于实现这些组件之间的连接通信。也就是说图3描述的包括处理器,存储器和网卡的设备,是图10的一种具体实现方式。存储电路可以中存储有应用的客户端或者服务端,以及协议栈程序,以及用于执行前述任意一种建立子流的方法的指令,也就是说,图4描述的软件架构可存储在存储介质1005中。图10描述的设备,可以通过处理电路1001执行存储介质1005中的代码,配合通信接口1004,执行前文描述的各种建立子流方法中,一个设备执行的部分,当然,如果有两台图10描述的设备进行通信,则可执行前文描述的交互流程。例如图5a,图5b,图7以及图8对应的段落所描述的例子,在执行这些传输控制方法的过程中,可使用具有例如图6所示的格式的指令。具体的实现方式,实施细节和有益效果,此处都不再赘述。
另外,处理电路1001执行存储介质1005中的代码,配合通信接口1003,可以实现图9对应的装置。例如,装置900中的配置模块901和多路径传输协议栈902,可以是处理电路1001执行存储介质1005中的指令,驱动通信接口1004实现的,具体可以是由运行在处理电路1001的不同的进程或者线程执行指令,以调用的通信接口实现。
一种实现方式下,该设备1000可以是终端设备,在是终端设备的情况下,可选的包含用户接口,包括显示器(例如,触摸屏、LCD、CRT、全息成像(Holographic)或者投影(Projector)等),键盘或者点击设备(例如,鼠标,轨迹球(trackball),触感板或者触摸屏等)。且,终端设备往往作为建立子流的发起方,也就是前文描述的第一设备或者本端设备,终端设备中安装有操作系统,以及需要建立子流的客户端。存储介质1005可以包括只读存储器和随机存取存储器,并向处理电路1001提供指令和数据。存储介质1005的一部分还可以包括非易失性随机存取存储器(NVRAM)。
该设备为终端或者云服务器或云端代理服务器的情况下,存储介质1005存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:操作系统10051,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;应用程序10052,包含各种应用程序,例如桌面(launcher)、媒体播放器(Media Player)、浏览器(Browser)等,用于实现各种应用业务。前文描述的客户端以及服务端,就是一种应用程序。而在该设备为网关的情况下,该存储介质1005可以只存储用于执行上文所述的方法所需要的程序代码。
处理电路1001可以通过一个或多个处理器实现,处理电路1001可以为中央处理器(英文:central processing unit,缩写:CPU)。处理电路1001还可以为其他通用处理器、数字信号处理器(英文:digital signal processing,缩写:DSP)、专用集成电路(英文:application specific integrated circuit,缩写:ASIC)、现场可编程门阵列(英文:field-programmable gate array,缩写:FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
系统总线1002可以包括数据总线、电源总线、控制总线和信号状态总线等。本实施例中为了清楚说明,在图10中将各种总线都示意为系统总线1002。
接口电路1003具体可以是物理机上的通信接口。该通信接口可以为无线通信接口。例如,无线通信接口可以是物理机的无线模块或者网卡等。处理电路1001通过接口电路1003与其他设备,例如其他物理机之间进行数据的收发。
存储介质1005可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:RAM);存储介质1004也可以包括非易失性存储器(英文:non-volatile memory),例如只读存储器(英文:read-only memory,缩写:ROM),快闪存储器(英文:flash memory),硬盘(英文:hard disk drive,缩写:HDD)或固态硬盘(英文:solid-state drive,缩写:SSD);存储介质1005还可以包括上述种类的存储器的组合。
存储介质1005可以包括底层存储介质和内存。底层存储介质例如可以是例如网卡中的存储介质等。其中,内存耦合至底层存储介质,用于作为底层存储介质的缓存。
本申请还提供一种计算机可读存储介质,该可读存储介质包括计算机执行指令,当物理机运行时,物理机的处理器执行该计算机执行指令,以使物理机执行本发明实施例提供的任一种方法。
可选的,本实施例中的可读存储介质可以为上述如图10所示的存储介质1003。
本申请还描述一种计算机程序产品,所述计算机程序产品包括指令,当所述指令在计算机上运行时,使得所述计算机执行本申请描述的任一种方法。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露的设备,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。比如,发送模块和接收模块可以是一个模块,如收发模块或者收发器。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,如前文提到的接口函数,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
在上述实施例使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD),相变存储器)等。
以上为本申请所提供的方法和装置,以上实施例的说明只是用于帮助理解本申请记载的方法;同时,对于本领域的一般技术人员,依据本申请已记载的内容,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本申请的限制。
Claims (18)
1.一种建立子流的方法,其特征在于,所述方法包括:
第一设备确定所述第一设备的多个网络接口卡各自接入的运营商的标识;
所述第一设备确定第二设备的多个互联网协议IP地址,以及所述第二设备的多个IP地址各自对应的运营商的标识;
所述第一设备基于所述多个网络接口卡各自接入的运营商的标识和所述第二设备的多个IP地址各自对应的运营商的标识,建立多条第一子流,所述多条第一子流是所述第一设备与所述第二设备之间的一个多路径连接的子流,所述多条第一子流中,每一条第一子流使用的所述第一设备的网络接口卡接入的运营商都和所述每一条第一子流使用的所述第二设备的IP地址对应的运营商相同;所述多路径连接的子流不包括:跨运营商的子流,所述跨运营商的子流使用的所述第一设备的网络接口卡接入的运营商和所述跨运营商的子流使用的所述第二设备的IP地址对应的运营商不同。
2.根据权利要求1所述的方法,其特征在于,所述第一设备的多个网络接口卡中的每一个都对应所述第一设备的IP地址,所述第一设备基于所述多个网络接口卡各自接入的运营商的标识和所述第二设备的多个IP地址各自对应的运营商的标识,建立多条第一子流,包括:
所述第一设备通过匹配所述多个网络接口卡各自接入的运营商标识和所述第二设备的多个IP地址各自对应的运营商标识,确定多个IP地址对,所述多个IP地址对中,每一个IP地址对中的所述第一设备的IP地址对应的网络接口卡接入的运营商,都和所述每一个IP地址对中包括的所述第二设备的IP地址对应的运营商相同;
所述第一设备建立与所述多个IP地址对一一对应的多条第一子流。
3.根据权利要求1所述的方法,其特征在于,所述第一设备基于所述多个网络接口卡各自接入的运营商的标识和所述第二设备的多个IP地址各自对应的运营商的标识,建立多条第一子流,包括:
所述第一设备通过匹配所述多个网络接口卡各自接入的运营商标识和所述第二设备的多个IP地址各自对应的运营商标识,确定所述多个网络接口卡各自对应的所述第二设备的IP地址,所述多个网络接口卡中,每一个网络接口卡对应的第二设备的IP地址对应的运营商都与所述每一个网络接口卡接入的运营商相同;
所述第一设备通过所述多个网络接口卡,向所述多个网络接口卡各自对应的所述第二设备的IP地址发送报文,以建立所述多条第一子流。
4.根据权利要求1所述的方法,其特征在于,所述第一设备基于所述多个网络接口卡各自接入的运营商的标识和所述第二设备的多个IP地址各自对应的运营商的标识,建立多条第一子流,包括:
所述第一设备得到多个组合,所述多个组合中的每一个组合指示所述多个网络接口卡中的一个和所述多个IP地址中的一个组成的组合;
对所述多个组合中的每一个组合,在所述每一个组合指示的网络接口卡接入的运营商和所述每一个组合指示的IP地址对应的运营商相同的情况下,则使用所述每一个组合指示的网络接口卡和IP地址的组合,建立一条第一子流;在所述每一个组合指示的网络接口卡接入的运营商和所述每一个组合指示的IP地址对应的运营商不同的情况下,则禁止使用所述组合指示的网络接口卡和IP地址的组合建立子流。
5.根据权利要求1所述的方法,其特征在于,所述第一设备基于所述多个网络接口卡各自接入的运营商的标识和所述第二设备的多个IP地址各自对应的运营商的标识,建立多条第一子流,包括:
所述第一设备基于所述多个网络接口卡和所述第二设备的多个IP地址,建立多条子流,所述多条子流包括多条第一子流;
所述第一设备通过匹配所述多个网络接口卡各自接入的运营商的标识和所述第二设备的多个IP地址各自对应的运营商的标识,拆除所述多条子流中的所有第二子流,所述第二子流使用的所述第一设备的网络接口卡接入的运营商和所述第二子流使用的所述第二设备的IP地址对应的运营商不同。
6.根据权利要求1到5任一所述的方法,其特征在于,所述第一设备确定第二设备的多个IP地址,以及所述第二设备的多个IP地址各自对应的运营商的标识,包括:
所述第一设备的多路径协议栈从本地得到第二设备的多个IP地址,以及所述第二设备的多个IP地址各自对应的运营商的标识。
7.根据权利要求1到5任一所述的方法,其特征在于,所述第一设备确定第二设备的多个IP地址,以及所述第二设备的多个IP地址各自对应的运营商的标识,包括:
所述第一设备接收来自第二设备的,所述第二设备的多个IP地址,以及所述第二设备的多个IP地址各自对应的运营商的标识。
8.一种建立子流的方法,其特征在于,所述方法用于第一设备,所述第一设备包括第一网络接口卡和至少一个第二网络接口卡,其中所述第一网络接口卡是所述第一设备当前优先使用的网络接口卡,所述方法包括:
第一设备确定所述至少一个第二网络接口卡各自接入的运营商的标识;
所述第一设备通过所述第一网络接口卡,向第二设备的第一IP地址发送报文,以建立所述第一设备与所述第二设备的一个多路径连接的主子流,其中,所述第一网络接口卡接入的运营商和所述第一IP地址对应的运营商相同;
所述第一设备从所述主子流上,接收来自所述第二设备的至少一个第二IP地址,以及所述至少一个第二IP地址各自对应的运营商的标识,其中所述至少一个第二IP地址是所述第二设备除所属第一IP地址之外的IP地址;
所述第一设备基于所述至少一个第二网络接口卡各自接入的运营商的标识和所述至少一个第二IP地址各自对应的运营商的标识,建立所述多路径连接的至少一条其他子流,所述至少一条其他子流中,每一条其他子流使用的第二网络接口卡接入的运营商都和所述每一条其他子流使用的第二IP地址对应的运营商相同;所述多路径连接的子流不包括:跨运营商的子流,所述跨运营商的子流使用的所述第一设备的网络接口卡接入的运营商和所述跨运营商的子流使用的所述第二设备的IP地址对应的运营商不同。
9.根据权利要求8所述的方法,其特征在于,所述至少一个第二网络接口卡中的每一个都对应所述第一设备的IP地址,所述第一设备基于所述至少一个第二网络接口卡各自接入的运营商的标识和所述至少一个第二IP地址各自对应的运营商的标识,建立所述多路径连接的至少一条其他子流,包括:
所述第一设备通过匹配所述至少一个第二网络接口卡各自接入的运营商的标识和所述至少一个第二IP地址各自对应的运营商的标识,确定至少一个IP地址对,所述至少一个IP地址对中,每一个IP地址对中的所述第一设备的IP地址对应的第二网络接口卡所接入的运营商都和所述每一个IP地址对中的第二IP地址所对应的运营商相同;
所述第一设备建立与所述至少一个IP地址对一一对应的所述至少一条其他子流。
10.根据权利要求8所述的方法,其特征在于,所述第一设备通过匹配所述至少一个第二网络接口卡各自接入的运营商的标识和所述至少一个第二IP地址各自对应的运营商的标识,建立所述多路径连接的至少一条其他子流,包括:
所述第一设备通过匹配所述至少一个第二网络接口卡各自接入的运营商的标识和所述至少一个第二IP地址各自对应的运营商的标识,确定所述至少一个第二网络接口卡各自接入的第二IP地址,所述至少一个第二网络接口卡中,每个第二网络接口卡对应的第二IP地址对应的运营商都与所述每个第二网络接口卡接入的运营商相同;
所述第一设备通过所述至少一个第二网络接口卡,向所述至少一个第二网络接口卡各自对应的第二IP地址发送报文,以建立所述至少一条其他子流。
11.根据权利要求8所述的方法,其特征在于,所述第一设备通过匹配所述至少一个第二网络接口卡各自接入的运营商的标识和所述至少一个第二IP地址各自对应的运营商的标识,建立所述多路径连接的至少一条其他子流,包括:
所述第一设备得到至少一个组合,所述组合中的每一个组合指示所述至少一个第二网络接口卡中的一个和所述至少一个第二IP地址中的一个组成的组合;
对所述至少一个组合对中的每一个组合,在所述每一个组合指示的第二网络接口卡接入的运营商和所述每一个组合指示的第二IP地址对应的运营商相同的情况下,则使用所述每一个组合指示的第二网络接口卡和第二IP地址的组合,建立所述多路径连接的一条其他子流;在所述组合每一个指示的第二网络接口卡接入的运营商和所述每一个组合指示的第二IP地址对应的运营商不同的情况下,则禁止使用所述每一个组合指示的第二网络接口卡和第二IP地址的组合,建立所述多路径连接的子流。
12.根据权利要求8所述的方法,其特征在于,所述第一设备通过匹配所述至少一个第二网络接口卡各自接入的运营商的标识和所述至少一个第二IP地址各自对应的运营商的标识,建立所述多路径连接的至少一条其他子流,包括:
所述第一设备基于所述至少一个网络接口卡和所述至少一个第二IP地址,建立至少一条子流,所述至少一条子流中包括至少一条其他子流;
所述第一设备通过匹配所述至少一个第二网络接口卡各自接入的运营商的标识和所述至少一个第二IP地址各自对应的运营商的标识,拆除所述至少一条子流中不满足要求的子流,所述不满足要求的子流使用的第二网络接口卡接入的运营商和所述不满足要求的子流使用的第二IP地址对应的运营商不同。
13.根据权利要求8到12任一所述的方法,其特征在于,所述方法还包括:
所述第一设备的多路径协议栈从所述第一设备的应用层得到所述第二设备的第一IP地址。
14.一种建立子流的方法,其特征在于,所述方法包括:
第二设备通过第一子流向第一设备发送所述第二设备的IP地址,以及所述IP地址对应的运营商的标识,所述第一子流为所述第一设备与所述第二设备之间的多路径连接的子流;
所述第二设备通过所述IP地址与所述第一设备通信,以建立所述多路径连接的第二子流,其中,所述第二子流从所述第一设备接入的运营商,与所述IP地址对应的运营商相同;所述多路径连接的子流不包括:跨运营商的子流,所述跨运营商的子流使用的所述第一设备的网络接口卡接入的运营商和所述跨运营商的子流使用的所述第二设备的IP地址对应的运营商不同。
15.一种设备,所述设备用于建立子流,其特征在于,所述设备包括:处理电路、通信接口和存储介质,所述存储介质中存储有指令,所述通信接口用于根据所述处理电路下发的所述指令与其他设备进行信息交互,所述处理电路用于运行所述存储介质中的所述指令,实现如权利要求1到7任一项所述的方法。
16.一种设备,所述设备用于建立子流,其特征在于,所述设备包括:处理电路、通信接口和存储介质,所述存储介质中存储有指令,所述通信接口用于根据所述处理电路下发的所述指令与其他设备进行信息交互,所述处理电路用于运行所述存储介质中的所述指令,实现如权利要求8到13任一项所述的方法。
17.一种设备,所述设备用于建立子流,其特征在于,所述设备包括:处理电路、通信接口和存储介质,所述存储介质中存储有指令,所述通信接口用于根据所述处理电路下发的所述指令与其他设备进行信息交互,所述处理电路用于运行所述存储介质中的所述指令,实现如权利要求14所述的方法。
18.一种计算机可读存储介质,包括指令,当所述指令在计算机上运行时,使得所述计算机执行如权利要求1至7或者权利要求8到13,或者权利要求14中任一项所述的方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811260980.3A CN111107672B (zh) | 2018-10-26 | 2018-10-26 | 一种建立多路径连接的子流的方法、装置和系统 |
PCT/CN2019/112460 WO2020083269A1 (zh) | 2018-10-26 | 2019-10-22 | 一种建立多路径连接的子流的方法、装置和系统 |
EP19875193.5A EP3780885A4 (en) | 2018-10-26 | 2019-10-22 | METHOD, DEVICE AND SYSTEM FOR DETERMINING SUBFLOWS OF A MULTI-PATH CONNECTION |
US17/126,799 US11419171B2 (en) | 2018-10-26 | 2020-12-18 | Method for establishing subflow of multipath connection, apparatus, and system |
US17/860,951 US11800587B2 (en) | 2018-10-26 | 2022-07-08 | Method for establishing subflow of multipath connection, apparatus, and system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811260980.3A CN111107672B (zh) | 2018-10-26 | 2018-10-26 | 一种建立多路径连接的子流的方法、装置和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111107672A CN111107672A (zh) | 2020-05-05 |
CN111107672B true CN111107672B (zh) | 2023-04-18 |
Family
ID=70331278
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811260980.3A Active CN111107672B (zh) | 2018-10-26 | 2018-10-26 | 一种建立多路径连接的子流的方法、装置和系统 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11419171B2 (zh) |
EP (1) | EP3780885A4 (zh) |
CN (1) | CN111107672B (zh) |
WO (1) | WO2020083269A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113014681A (zh) * | 2019-12-20 | 2021-06-22 | 北京金山云科技有限公司 | 多网卡服务器的网卡绑定方法、装置、电子设备及存储介质 |
CN112866116B (zh) * | 2020-12-31 | 2023-06-20 | 平安科技(深圳)有限公司 | 网络访问探测方法、装置、设备及存储介质 |
CN113347681B (zh) * | 2021-05-31 | 2023-07-14 | 浙江大华技术股份有限公司 | 数据传输方法、装置、存储介质及电子装置 |
CN114301964B (zh) * | 2021-12-25 | 2024-09-10 | 深圳市元征科技股份有限公司 | 终端设备及其网络连接方法、通信系统及存储介质 |
CN115277560B (zh) * | 2022-09-28 | 2023-01-17 | 鹏城实验室 | 基于mptcp和mpquic的异构网络融合传输方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104243443A (zh) * | 2013-06-06 | 2014-12-24 | 苹果公司 | 多路径tcp子流的建立与控制系统和方法 |
WO2015118020A1 (en) * | 2014-02-04 | 2015-08-13 | Nec Europe Ltd. | Method and system for controlling carrier allocation in a multi-connectivity radio access environment |
CN106100986A (zh) * | 2016-07-25 | 2016-11-09 | 乐视控股(北京)有限公司 | 通信链路控制方法及装置 |
CN108075987A (zh) * | 2016-11-17 | 2018-05-25 | 华为技术有限公司 | 一种多路径数据传输方法及设备 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7269406B2 (en) * | 2005-05-26 | 2007-09-11 | Intel Corporation | Methods and apparatus for providing information indicative of traffic delay of a wireless link |
US9455897B2 (en) * | 2010-04-06 | 2016-09-27 | Qualcomm Incorporated | Cooperative bandwidth aggregation using multipath transport |
US20120331160A1 (en) * | 2011-06-22 | 2012-12-27 | Telefonaktiebolaget L M Ericsson (Publ) | Multi-path transmission control protocol proxy service |
US20130064198A1 (en) * | 2011-09-14 | 2013-03-14 | Qualcomm Incorporated | Multipath transport tunnel over multiple air interfaces connecting wireless stations |
US10541926B2 (en) * | 2012-06-06 | 2020-01-21 | The Trustees Of Columbia University In The City Of New York | Unified networking system and device for heterogeneous mobile environments |
FR3035291A1 (fr) * | 2015-04-17 | 2016-10-21 | Orange | Procede d' emulation dune connexion a chemins multiples |
US20170339219A1 (en) * | 2016-05-17 | 2017-11-23 | International Business Machines Corporation | Transparent wide-area service migration with mptcp |
CN108366104B (zh) * | 2018-01-29 | 2020-11-13 | 北京奇艺世纪科技有限公司 | 一种数据下载控制方法和装置 |
US11304075B2 (en) * | 2019-01-28 | 2022-04-12 | Nokia Solutions And Networks Oy | Network path reliability |
-
2018
- 2018-10-26 CN CN201811260980.3A patent/CN111107672B/zh active Active
-
2019
- 2019-10-22 EP EP19875193.5A patent/EP3780885A4/en active Pending
- 2019-10-22 WO PCT/CN2019/112460 patent/WO2020083269A1/zh unknown
-
2020
- 2020-12-18 US US17/126,799 patent/US11419171B2/en active Active
-
2022
- 2022-07-08 US US17/860,951 patent/US11800587B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104243443A (zh) * | 2013-06-06 | 2014-12-24 | 苹果公司 | 多路径tcp子流的建立与控制系统和方法 |
WO2015118020A1 (en) * | 2014-02-04 | 2015-08-13 | Nec Europe Ltd. | Method and system for controlling carrier allocation in a multi-connectivity radio access environment |
CN106100986A (zh) * | 2016-07-25 | 2016-11-09 | 乐视控股(北京)有限公司 | 通信链路控制方法及装置 |
CN108075987A (zh) * | 2016-11-17 | 2018-05-25 | 华为技术有限公司 | 一种多路径数据传输方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111107672A (zh) | 2020-05-05 |
EP3780885A1 (en) | 2021-02-17 |
US11800587B2 (en) | 2023-10-24 |
US11419171B2 (en) | 2022-08-16 |
EP3780885A4 (en) | 2021-08-04 |
US20220346168A1 (en) | 2022-10-27 |
WO2020083269A1 (zh) | 2020-04-30 |
US20210105845A1 (en) | 2021-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111107672B (zh) | 一种建立多路径连接的子流的方法、装置和系统 | |
US11277313B2 (en) | Data transmission method and corresponding device | |
US10079803B2 (en) | Peer-to-peer connection establishment using TURN | |
WO2023000935A1 (zh) | 一种数据处理方法、网元设备以及可读存储介质 | |
US11665263B2 (en) | Network multi-path proxy selection to route data packets | |
WO2021008591A1 (zh) | 数据传输方法、装置及系统 | |
WO2021254001A1 (zh) | 会话建立方法、装置、系统及计算机存储介质 | |
JP2018511275A (ja) | Tcpトンネル及びネイティブtcp情報に基づくバンドリングシナリオにおけるパケットのスケジューリングのための方法及びシステム | |
WO2019071995A1 (zh) | 内容分发方法、设备及系统 | |
WO2021169291A1 (zh) | 发布路由的方法、网元、系统及设备 | |
CN114980243A (zh) | 一种数据转发方法、装置及存储介质 | |
CN113285877B (zh) | 一种报文转发的控制方法及相关装置 | |
WO2023274087A1 (zh) | 报文转发的方法、装置及系统 | |
EP4383674A1 (en) | Message processing method and related apparatus | |
CN117097818A (zh) | 一种报文处理的方法及相关设备 | |
JP2014022969A (ja) | マルチホーム通信方法およびシステム | |
EP4312405A1 (en) | Combined pfcp session model for network access by residential gateways | |
CN107360104B (zh) | 一种隧道端点网络的实现方法和装置 | |
WO2023134489A1 (zh) | 一种信息上报方法、信息处理方法及装置 | |
JP2024072265A (ja) | レジデンシャルゲートウェイへのネットワークアクセスのための装置、方法、および非一時的コンピュータ可読記憶媒体 | |
CN114205301A (zh) | Mptcp负载均衡方法、介质及设备 | |
CN117460085A (zh) | 用于住宅网关进行网络接入的单独pfcp会话模型 | |
CN117834588A (zh) | 虚拟机元数据获取方法、装置、设备及存储介质 | |
CN117459965A (zh) | 用于通过住宅网关进行的网络接入的单独pfcp会话模型 | |
CN114793367A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |