WO2020083269A1 - 一种建立多路径连接的子流的方法、装置和系统 - Google Patents

一种建立多路径连接的子流的方法、装置和系统 Download PDF

Info

Publication number
WO2020083269A1
WO2020083269A1 PCT/CN2019/112460 CN2019112460W WO2020083269A1 WO 2020083269 A1 WO2020083269 A1 WO 2020083269A1 CN 2019112460 W CN2019112460 W CN 2019112460W WO 2020083269 A1 WO2020083269 A1 WO 2020083269A1
Authority
WO
WIPO (PCT)
Prior art keywords
operator
address
network interface
interface card
addresses
Prior art date
Application number
PCT/CN2019/112460
Other languages
English (en)
French (fr)
Inventor
祝建建
李锋
宋秋斌
贺剑
李继青
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to EP19875193.5A priority Critical patent/EP3780885A4/en
Publication of WO2020083269A1 publication Critical patent/WO2020083269A1/zh
Priority to US17/126,799 priority patent/US11419171B2/en
Priority to US17/860,951 priority patent/US11800587B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • H04W76/15Setup of multiple wireless link connections
    • H04W76/16Involving different core network technologies, e.g. a packet-switched [PS] bearer in combination with a circuit-switched [CS] bearer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/14Multichannel or multilink protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • H04W76/15Setup of multiple wireless link connections
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • H04W76/11Allocation or use of connection identifiers

Definitions

  • the present invention relates to the field of communications, and in particular, to a method, device, and system for establishing sub-streams of multi-path connections.
  • Computer applications often involve the interaction of information. These applications can be described using a software system architecture such as client / server (C / S, Client / Server).
  • the client and the server refer to the application in this architecture, specifically, as the client (Client) application request service, as the server (Server) application for the client (Client) application service .
  • the client and server run on different devices. For example, if the application runs on the terminal, the application is the client, and the application runs on the server, then the application is the server.
  • information needs to be exchanged between the client and the server.
  • the information can use multi-path transmission technology.
  • Multi-path transmission technology transmits data in parallel through multiple subflows between the client and the server, and each subflow corresponds to a path.
  • the multi-path transmission control protocol (MPTCP, Multiple Path Transmission Control Protocol) is based on the transmission control protocol (TCP, Transmission Control Protocol).
  • the multi-path transmission technology may be collectively referred to as the MP technology, and a connection including multiple sub-streams is referred to as a multi-path connection, that is, an MP connection.
  • each of the multiple sub-streams corresponds to a different link between the client and the server, and the multiple sub-streams are called a multi-path connection.
  • multi-path transmission technology helps to increase data throughput, so it is suitable for online video playback and downloading data; multi-path transmission technology also helps reduce latency and improve the reliability of data transmission Sex and therefore suitable for games.
  • the above multiple sub-streams may transmit data based on at least one of a Wi-Fi network and a cellular network, where the cellular network may be a 5G network, a 4G network, such as Long Term Evolution (LTE, Long Term Evolution), or a 3G network , Such as CDMA (Code Division Multiple Access) network, or 2G network, etc.
  • LTE Long Term Evolution
  • 3G network such as CDMA (Code Division Multiple Access) network, or 2G network, etc.
  • the transmission performance (such as throughput or delay) of the multi-path connection cannot be achieved as theoretically compared to a single path
  • the improvement of transmission, sometimes even the transmission performance is not as good as using only a part of the substream.
  • the present application provides a sub-stream method and device for establishing a multi-path connection, which considers the impact of multiple operators supported by the multi-path connection on the transmission performance of the multi-path connection.
  • Flow so that the network accessed by the two end nodes of each sub-stream belongs to the same operator, so that the transmission performance of the multi-path connection can be better guaranteed, and it can play better than the single-path connection.
  • the present application describes a method for establishing a sub-stream, the method comprising: a first device determining an identifier of an operator to which each of a plurality of network interface cards of the first device is connected; the first device determining a second device Multiple Internet protocol IP addresses and the identification of the operator corresponding to each of the multiple IP addresses of the second device; the first device is based on the identification of the operator to which each of the multiple network interface cards accesses and the second device.
  • the identifiers of the operators corresponding to the multiple IP addresses of each establish multiple first sub-streams, the multiple first sub-streams are sub-streams of a multi-path connection between the first device and the second device, the In multiple first substreams, the operator connected to the network interface card of the first device used by each first substream corresponds to the operator corresponding to the IP address of the second device used by each first substream the same.
  • the first device based on the identifier of the operator to which each of the multiple network interface cards accesses and the identifier of the operator corresponding to each of the multiple IP addresses of the second device, the first device preferably establishes multiple first Stream, try not to establish sub-streams across operators.
  • the cross-operator sub-stream refers to a sub-stream where the operator connected to the network interface card of the first device and the operator corresponding to the IP address of the second device used by each first sub-stream are different.
  • the first device based on the identifier of the operator to which each of the plurality of network interface cards accesses and the identifier of the operator corresponding to each of the multiple IP addresses of the second device, the first device only establishes multiple first Substreams do not establish substreams across operators.
  • the first device determines the identifiers of the operators corresponding to the multiple network cards at the local end, and the first device determines the multiple IP addresses of the opposite end and the operator identifiers corresponding to the multiple IP addresses, which can be performed simultaneously or any step first carried out.
  • the first device may determine the identification of the operator corresponding to each of the multiple network cards at the local end, and the first device may determine the multiple IP addresses of the opposite end and the identifications of the operators corresponding to the multiple IP addresses.
  • the process of establishing multiple first substreams For example, the first device first determines the identification of the operator corresponding to each of the multiple network cards and an IP address of the second device.
  • the IP address corresponds to the same default carrier of the first device among the multiple network cards.
  • the first device uses this pair of IP addresses and network card to establish the main sub-stream, and then through the main sub-stream, receives the other IP addresses from the second device and the corresponding carrier identifiers of these other IP addresses, and then matches the first device
  • the identifiers of the operators corresponding to each of the multiple network cards and the identifiers of the operators corresponding to the multiple IP addresses of the second device establish other sub-streams that do not cross the operator.
  • the first device determines the other IP addresses of the second device and the corresponding carrier identifiers of these other IP addresses locally, and then performs matching.
  • the method described in the second aspect can be considered as a specific implementation of the method described in the first aspect.
  • the first device is the local device
  • the second device is the peer device.
  • a client runs on the first device
  • a server runs on the second device, or a server runs on the first device
  • a client runs on the second device.
  • the client and the server are the same application.
  • a multi-path connection between the first device and the second device is a multi-path connection between the client and the server.
  • Both the first device and the first device may be terminal devices or cloud devices, or server agents in the network, multi-path transmission gateways, and other devices that support multi-path transmission protocols.
  • the network interface card can be a physical network card or a virtual network card.
  • the identifier of the operator connected to the network interface card of the first device refers to the identifier of the operator of the network accessed when the network interface card is currently executing the method. Therefore, the network interface card preferentially used by the first device, that is, the network interface card used by the first device to access the currently preferentially accessed network.
  • the identifier of the operator corresponding to the IP address of the second device refers to the identifier of the operator of the network that the second device accesses through the IP address. For example, the identifier of the operator to which the IP address of the second device belongs.
  • the identifier of the operator connected to the network card and the identifier of the operator corresponding to the IP address of the second device may be different types of identifiers, as long as they can indicate the operator, so different operator identifiers may indicate the same operator .
  • the first device determines the operator to which each of the multiple network cards at the local end accesses, and the operator corresponding to each of the multiple IP addresses at the opposite end.
  • the NIC and the peer IP address establish a subflow, considering the impact of multiple operators supported by the multipath connection on the established subflow.
  • the two end nodes of each subflow The access network belongs to the same operator, so that the transmission performance of the multi-path connection can be better guaranteed, and the advantages of the transmission performance of the multi-path connection can be better exerted compared to the single-path connection.
  • the first device may locally obtain multiple IP addresses of the second device, and the identifiers of the operators corresponding to the multiple IP addresses of the second device.
  • Local refers to the first device, that is, there is no need to obtain this information from other devices.
  • the multi-path protocol stack of the first device is obtained from the client of the first device, or the client of the first device actively delivers to the multi-path protocol stack of the first device.
  • the multi-path protocol stack of the first device is obtained from a configuration module at the application layer or the transport layer of the first device, or the configuration module actively delivers to the multi-path protocol stack of the first device.
  • the configuration module is used to obtain multiple IP addresses of the second device from the client and the identifiers of the operators corresponding to the multiple IP addresses of the second device.
  • the first device receives from the second device the multiple IP addresses of the second device and the identification of the operator corresponding to each of the multiple IP addresses of the second device. That is, the second device sends the information to the first device. For example, this information can be carried in the address announcement signaling after the extended field.
  • the first device establishes multiple first sub-streams based on the identifier of the operator to which each of the multiple network interface cards accesses and the identifier of the operator corresponding to each of the multiple IP addresses of the second device.
  • the identifier of the operator to which each of the multiple network interface cards accesses and the identifier of the operator corresponding to each of the multiple IP addresses of the second device.
  • each of the multiple network interface cards of the first device corresponds to the IP address of the first device.
  • the first device determines a plurality of IP address pairs by matching the operator identification of each of the plurality of network interface cards and the plurality of IP addresses of the second device, and the plurality of IP address pairs The operator connected to the network interface card corresponding to the IP address of the first device in each IP address pair is the same as the operator corresponding to the IP address of the second device included in each IP address pair;
  • the first device only establishes or preferentially establishes multiple first substreams corresponding to the multiple IP addresses in one-to-one correspondence.
  • the first device determines the plurality of network interface cards by matching the operator IDs of the multiple network interface cards and the operator IDs of the multiple IP addresses of the second device.
  • the IP address of the second device corresponding to each of the multiple network interface cards, the operator corresponding to the IP address of the second device corresponding to each network interface card is the same as the operator accessed by each network interface card;
  • the first device only sends a message to the IP addresses of the second devices corresponding to the plurality of network interface cards to establish the plurality of first substreams.
  • the first device first determines the correspondence between the local network card and the peer IP address.
  • a local network card uses only the IP address of the corresponding peer to communicate to ensure that the established sub-stream does not cross the operator.
  • the first device obtains multiple combinations, and each combination of the multiple combinations indicates a combination of one of the multiple network interface cards and one of the multiple IP addresses; For each combination of multiple combinations, if the operator accessed by the network interface card indicated by each combination is the same as the operator corresponding to the IP address indicated by each combination, the combination indicated by each combination is used.
  • the combination of the network interface card and the IP address establishes a first substream; if the operator connected to the network interface card indicated by each combination is different from the operator corresponding to the IP address indicated by each combination, then It is forbidden to use the combination of the network interface card and IP address indicated by the combination to establish a subflow.
  • the first device establishes multiple substreams based on the multiple network interface cards and the multiple IP addresses of the second device, and the multiple substreams include multiple first substreams; the first device By matching the identifiers of the operators to which the plurality of network interface cards are respectively connected and the identifiers of the operators corresponding to the plurality of IP addresses of the second device, to remove all the second sub-streams in the plurality of sub-streams, the second The operator accessed by the network interface card of the first device used by the substream is different from the operator corresponding to the IP address of the second device used by the second substream.
  • the sub-flow is established without distinguishing operators, and then established according to the identifiers of the operators that the multiple network interface cards access and the identifiers of the operators corresponding to the multiple IP addresses of the second device.
  • substreams substreams across operators are removed.
  • the present application describes a method for establishing a substream, which is characterized in that the method is used for a first device, the first device includes a first network interface card and at least one second network interface card, wherein the first The network interface card is a network interface card currently preferentially used by the first device, and the method includes: the first device determines the identification of the operator to which each of the at least one second network interface card is connected; the first device passes the first network An interface card, sending a message to the first Internet protocol IP address of the second device to establish a main substream of a multi-path connection between the first device and the second device, wherein the first network interface card access operation
  • the operator is the same as the operator corresponding to the first IP address; the first device receives from the main substream at least one second IP address from the second device, and the operator corresponding to each of the at least one second IP address , Where the at least one second IP address is an IP address of the second device other than the first IP address to which it belongs; the first device is based
  • the multi-path protocol stack of the first device can obtain the first IP address of the second device from the client of the first device.
  • the method described in the second aspect can be considered as an implementation of the method described in the first aspect, so for the most explanations, implementations, and descriptions of the beneficial effects of the second aspect, please refer to the relevant description in the first aspect .
  • the second aspect describes that in addition to the main substream, there is at least a pair of matching local network cards and peer IP addresses to establish substreams. Of course, besides the main substream, there is no matching local end network card and peer IP address, then the multipath connection can be transmitted only by the main substream.
  • the first device determines the operator to which each local at least one second network card accesses, and the operator corresponding to each of the at least one IP address of the peer.
  • the operator's network card and the peer IP address establish a subflow, considering the impact of multiple operators supported by the multipath connection on the established subflow. For each subflow established, two of each subflow are created.
  • the network accessed by the end node belongs to the same operator, so that the transmission performance of the multi-path connection can be better guaranteed, and the advantages of the transmission performance of the multi-path connection can be better exerted compared to the single-path connection.
  • the network interface card currently preferentially used by the first device refers to a network card that is preferentially used or currently used by default when the first device is currently executing the method, or it may also be the only one currently connected to the network by the first device Network card. That is to say, the network interface card preferentially used by the first device can vary with settings, actual network conditions, time, etc.
  • the first device establishes at least one other subflow of the multipath connection based on the identifier of the operator to which each of the at least one second network interface card is connected and the identifier of the operator corresponding to each of the at least one second IP address.
  • the first device establishes at least one other subflow of the multipath connection based on the identifier of the operator to which each of the at least one second network interface card is connected and the identifier of the operator corresponding to each of the at least one second IP address.
  • each of the at least one second network interface card corresponds to the IP address of the first device, and the first device matches the identification of the operator that the at least one second network interface card accesses
  • the identifier of the operator corresponding to each of the at least one second IP address determines at least one IP address pair, and in the at least one IP address pair, the second network corresponding to the IP address of the first device in each IP address pair
  • the operator connected to the interface card is the same as the operator corresponding to the second IP address in each IP address pair; the first device only establishes the at least one other child that corresponds to the at least one IP address pair flow.
  • the first device establishes the multi-path connection by matching an identifier of an operator to which each of the at least one second network interface card accesses and an identifier of the operator corresponding to each of the at least one second IP address At least one other sub-stream, including: the first device determines the at least one by matching an identifier of an operator to which the at least one second network interface card is respectively accessed and an identifier of the operator corresponding to the at least one second IP address A second IP address respectively accessed by the second network interface card, and in the at least one second network interface card, the operator corresponding to the second IP address corresponding to each second network interface card is associated with each second network interface card The access operator is the same; the first device only sends packets to the second IP address corresponding to the at least one second network interface card through the at least one second network interface card to establish the at least one other subflow .
  • the first device obtains at least one combination, and each combination in the combination indicates a combination of one of the at least one second network interface card and one of the at least one second IP address; For each combination of the plurality of combination pairs, if the operator accessed by the second network interface card indicated by each combination and the operator corresponding to the second IP address indicated by each combination are the same, use The combination of the indicated second network interface card and the second IP address in each combination establishes an additional substream of the multipath connection; in the combination, the operator of the second network interface card access indicated in each combination and the each If the operator corresponding to the second IP address indicated by the combination is different, it is prohibited to use the combination of the second network interface card and the second IP address indicated by each combination to establish the sub-stream of the multi-path connection.
  • the first device establishes at least one subflow based on the at least one network interface card and the at least one second IP address, and the at least one subflow includes at least one other subflow; the first device passes Matching the identifier of the operator to which each of the at least one second network interface card is connected and the identifier of the operator corresponding to each of the at least one second IP address, and removing the sub-flow that does not meet the requirements among the at least one sub-flow, which is not The operator accessed by the second network interface card used by the required subflow is different from the operator corresponding to the second IP address used by the subflow that does not meet the requirements.
  • this application describes a method that is implemented on a second device.
  • the method includes: the second device sends the IP address of the second device to the first device through the first substream, and the identifier of the operator corresponding to the IP address.
  • the first substream is the first device and A sub-stream of a multi-path connection between the second devices; the second device communicates with the first device through the IP address to establish a second sub-stream of the multi-path connection, where the second The operator that the substream accesses from the first device is the same as the operator corresponding to the IP address.
  • the operator that the first substream accesses on the first device is the same as the operator that the first substream accesses on the second device.
  • the second device may encapsulate the IP address of the second device and the identifier of the operator corresponding to the IP address in address announcement signaling and send it to the first device, where the identifier of the operator corresponding to the IP address is carried in the address announcement Signaling extension field.
  • the third aspect is the method implemented on the second device side in the first aspect or the second aspect, so please refer to the relevant paragraphs of the first aspect for the explanation of this aspect and the description of the beneficial effects.
  • an apparatus for establishing a subflow is provided.
  • the apparatus is located in a first device, and includes one or more modules for performing the method of the first aspect.
  • the name and connection mode of these modules are not limited in this application. .
  • Examples include configuration modules and multi-path protocol stacks.
  • the two determining actions in the first aspect may be performed by a configuration module, and the action of establishing a sub-stream may be performed by a multi-path transmission protocol stack.
  • all actions of the method of the first aspect may be performed by a multi-path transmission protocol stack, where the identification of the operator to which each of the plurality of network interface cards of the first device is accessed may be multi-path transmission
  • the protocol stack is determined from the protocol stack configuration module below the transport layer. For determining multiple Internet protocol IP addresses of the second device and the identification of the operator corresponding to each of the multiple IP addresses of the second device, it may be multi-path
  • the transmission protocol stack is determined from the client of the first device or receiving information from the second device.
  • an apparatus for establishing a subflow is provided.
  • the apparatus is located in a first device and includes one or more modules for performing the method of the second aspect.
  • the name and connection mode of these modules are not limited in this application.
  • the determining action of the first aspect may be performed by the configuration module, and the actions of establishing the substream and receiving may be performed by the multi-path transmission protocol stack.
  • all actions of the method of the second aspect may be performed by a multi-path transmission protocol stack, where the identification of the operator to which each of the at least one network interface card of the first device is accessed may be multi-path transmission
  • the protocol stack is determined from the configuration module. For receiving multiple Internet protocol IP addresses of the second device and the identifiers of the operators corresponding to the multiple IP addresses of the second device, the multi-path transmission protocol stack may be used.
  • an apparatus for establishing a substream is provided.
  • the apparatus is located in a second device, and includes one or more modules for performing the method of the third aspect.
  • the name and connection mode of these modules are not limited in this application. .
  • it may be done by the transceiver module and the multi-path transmission protocol stack in the second device.
  • a device for establishing a substream.
  • the device includes: a processing circuit, a communication interface, and a storage medium, and the storage medium stores instructions, and the communication interface is used to process the processing circuit.
  • the issued instruction performs information interaction with other devices, and the processing circuit is used to execute the instruction in the storage medium, to implement the method described in the first aspect and the various implementation manners of the first aspect, or to implement the first The method described in the second aspect and various implementation manners of the second aspect, or the method described in the third aspect and various implementation manners of the third aspect.
  • the seventh aspect is a device corresponding to any of the first aspect to the third aspect, and various specific implementation manners, descriptions, and technical effects thereof are not described in detail.
  • a computer program product stores program code for storing a method that can implement any one of various implementation manners of any one of the first aspect or the third aspect, or It is used to store program code that can implement the method in any of the various implementation manners of the second aspect.
  • a computer-readable storage medium including instructions, which when executed on a computer, causes the computer to perform the method of any one of the various implementation manners in the first aspect, or the second aspect The method in any one of the various implementations in the third aspect, or the method in any one of the various implementations in the third aspect.
  • FIG. 1 is a schematic flowchart of an existing method for establishing a subflow
  • FIG. 2 is a schematic diagram of a multi-substream communication between a terminal and a server described in this application;
  • FIG. 3 is a software and hardware architecture diagram of the devices involved in this application.
  • FIG. 5a is a schematic diagram of a method for establishing a subflow described in this application.
  • 5b is a schematic diagram of a method for establishing a sub-stream described in this application.
  • FIG. 6 is a schematic diagram of the format of address announcement signaling described in this application.
  • FIG. 8 is yet another interactive schematic diagram of the method for establishing a subflow described in this application.
  • FIG. 9 is a schematic structural diagram of an apparatus for establishing a substream provided by this application.
  • FIG. 10 is a schematic structural diagram of a device for establishing a substream provided by this application.
  • the actual networking environment is more complicated, and multi-path transmission scenarios with more than two substreams are becoming more and more popular. It may be that in a wide area network, there are multiple operators in an area, which results in the area supporting more than two substreams for TCP data transmission. For example, in a data center, Equal-Cost MultiPath routing can also be used. , ECMP) routing technology to support multi-path TCP data transmission for three or more sub-streams. In fact, for an MP connection, using all substreams to transmit data may not necessarily achieve the best transmission performance.
  • the common method for establishing multipath subflows is to configure the kernel's fullmesh option so that the device supports one connection corresponding to multiple paths, so that all active Internet Protocol (IP) addresses and pairs on the local end can be Between all active (active) IP addresses, subflows are established separately.
  • IP Internet Protocol
  • IP1, IPa are the IP addresses at both ends of the substream belonging to China Telecom
  • IP2, IPb are the IP addresses at both ends of the substream belonging to China Mobile.
  • the fullmesh mechanism uses Wi-Fi to transmit data by default.
  • the client uses the network interface card used by the current default route, the corresponding IP address is IP1, and establishes a main subflow with the server's IP address IPa, that is, subflow 1.
  • the device where the client is located will have a current default network interface card, or called the currently preferred network interface card, and the client uses the current default network interface card to establish a single path connection .
  • the network interface card used by the device where the client is located by default when establishing the multipath connection shown in Figure 1, that is to say, for a device, due to configuration or network environment, the network interface used by default The card is not always the same.
  • the device (such as a terminal) establishes a subflow with the server through the current default IP address.
  • the IP address of the server belongs to the same operator as the IP address used by default.
  • the client Before establishing a sub-stream, the client can inform the server of the default operator for communication through the default network card.
  • the server returns an IP address of the client.
  • the operator to which the IP address belongs and the device where the client is located default The operator of the network card access is the same. Therefore, when the client establishes the main substream, the IP address of the server is known, and the established main substream does not cross the operator.
  • the client and the server announce all other available IP addresses to the peer on the established main substream, that is, the client announces the IP address IP2 to the server, and the server announces the IP address IPb to the client.
  • These two actions of advertising each other's IP address can occur simultaneously or either first.
  • the client initiates a sub-flow establishment process on all available IP addresses announced by the server on all available network interface cards, that is, the client and the server use the IP addresses for IP1 and IPb, IP2 and IPa, and IP2 and IPb , Establish substream 2, substream 3 and substream 4 respectively.
  • the order in which the three sub-streams are established For example, the three sub-streams may be established in parallel.
  • FIG. 1 is only a schematic illustration and is not intended to limit the order of steps.
  • FIG. 2 schematically illustrates the network topology of multiple sub-streams described in FIG. 1.
  • the client is located at the terminal, the terminal has two IP addresses, and the server is located at the server.
  • the server belongs to the cloud.
  • the server also has two IP addresses.
  • Figure 2 also illustrates the base station in the cellular network and the router in the Wi-Fi network.
  • sub-stream 1 and sub-stream 4 are sub-stream connections between the same operator's IP address
  • sub-stream 2 and sub-stream 3 are sub-stream connections between the cross-operator's IP addresses.
  • the access node specifically refers to the access node of the wireless network, specifically, it can be an access point (Access Point, AP) of a wireless Wi-Fi network, a router, or an access point of a Winmax network or a wireless cellular mobile network
  • the base station and the like do not limit the type of wireless network and the specific form of the access node of the wireless network.
  • the same type of wireless network refers to access nodes that belong to a wireless Wi-Fi network, or belong to a Winmax network, or belong to an access node that belongs to a wireless cellular network, such as a 2G network, a 3G network, a 4G network, or a 5G network Wait.
  • the data transmission delay on sub-stream 1 and sub-stream 4, sub-stream 2, and sub-stream 3 is relatively high, and there is a high probability of packet loss. Furthermore, in the scenario of multi-path parallel transmission to improve throughput performance, the introduction of sub-stream 2 and sub-stream 3 has a high probability of bringing negative benefits; and in the case of multi-path supplementary packet transmission to increase delay and reliability performance, sub-stream 2 , Substream 3 has no obvious improvement, but will cause more bandwidth traffic overhead for the client and server.
  • the server when the server is a server, in actual scenarios, the server has to provide services to hundreds of clients, and due to the complexity of the actual networking, the IP address corresponding to a server is often more than Two, the number of sub-streams that do not significantly improve the transmission performance is also hundreds, which is a heavy burden on the server and a waste of network resources.
  • the method for establishing substreams proposed in this application is how to selectively establish substreams in the process of establishing multiple substreams in an MP connection to ensure transmission performance.
  • a and / or B A and B, or A or B.
  • Multi-path connection Multiple sub-streams that can communicate between two hosts through an application.
  • the host is an end node of a multi-path connection
  • an application is running in the host, and there is a one-to-one mapping between the multi-path connection and the interface (socket) of the application.
  • a link that can communicate between two hosts (over) through an application is also called a connection, except that the MP connection includes multi-paths, and the general connection has only one path. Two hosts often run on two physical machines.
  • applications can be deployed in network devices (such as servers, gateways, proxy servers, etc.), or they can also be deployed in terminals.
  • network devices such as servers, gateways, proxy servers, etc.
  • the path is the link between the sender and the receiver.
  • the path can be identified by a 4-tuple or 5-tuple.
  • the quintuple includes the source IP address, source port number, destination IP address, destination port number, and transport layer protocol name. Multiple paths between a pair of receiving end and sending end can share one or more routers.
  • Subflow A flow that runs on a single path.
  • the substream is part of a multipath connection.
  • the sub-stream can use a variety of common single-stream transmission protocols, such as TCP (Transmission Control Protocol, Path Control, Protocol), UDP (User Datagram Protocol, User Datagram Protocol), SCTP (flow control Transmission protocol, Stream Control Transmission Protocol or QUIC (Quick UDP Network Connections, Quick UDP Internet Connections) and so on.
  • TCP Transmission Control Protocol, Path Control, Protocol
  • UDP User Datagram Protocol
  • SCTP flow control Transmission protocol
  • Stream Control Transmission Protocol or QUIC Quadick UDP Network Connections, Quick UDP Internet Connections
  • the sub-stream that does not cross the operator refers to the network accessed at both ends of the sub-stream, that is, the network accessed by the client and the network accessed by the server are networks provided by the same operator. It should be noted that if a sub-stream is accessed by the operator A located in the A place and the network provided by the server is provided by the operator A located in the B place, the sub-stream is considered not to cross Operator. If there is a substream, the network accessed by the client is the A network provided by the operator A (such as LTE) in the A place, and the network provided by the server is the B network provided by the operator A in the B place (such as 3G or Wi -Fi), it also thinks that the substream does not cross operators. Conversely, if the networks accessed at both ends of the substream are networks provided by different operators, the substream crosses the operators.
  • the A network provided by the operator A such as LTE
  • the network provided by the server is the B network provided by the operator A in the B place (such as 3
  • the network interface card may also be called a network interface card controller, or a network interface controller, or network card for short.
  • the network card mentioned in this article is a physical network card or a virtual network card virtualized by the physical network card.
  • a physical network card is a piece of hardware designed to allow physical machines or other devices to access a certain network and communicate with other network elements.
  • a physical node on the connection uses a network card to access the network, then the correspondence between the network card of the physical node and the provider of the network accessed by the physical node, that is, the operator of the network is determined, Further, in the connection, if the physical node knows the network card used to access the network, the physical node may also determine the IP address used by the physical node in the connection.
  • the operator corresponding to the network card refers to the operator to which the network accessed using the network card belongs, so it is also referred to as the operator for network card access.
  • the device where the client is located is referred to as the local device, referred to as the local terminal; the device where the server is located is referred to as the peer device, referred to as the peer.
  • Figure 2 shows a common scenario where the local end is a terminal and the opposite end is a server.
  • the technical solutions described in this application can also be applied to cloud-to-cloud communication scenarios and end-to-end communication scenarios.
  • Multi-path transmission technology can be used in a variety of networking systems. Generally, if information is to be transmitted through multi-path transmission technology, at least one link between the sender and receiver of the information should support multi-path transmission technology.
  • the networking system may be terminal-to-terminal communication, cloud-to-cloud communication or cloud-to-terminal communication.
  • the method described in this application may be performed by an end node connected by multipath transmission.
  • the end node may be an end device that supports multi-path transmission technology. If the end device at one end does not support multi-path transmission, if you want to use multi-path transmission technology to transfer messages, you will inevitably use a proxy device that supports multi-path transmission technology. Then, the technical solution of the present application is used on a proxy device supporting multi-path transmission.
  • cloud devices that support multi-path transmission protocols, such as servers; terminals that support multi-path transmission protocols, such as desktops, laptops, tablets, cellular phones, smart watches, smartphones, or PDAs; and so on.
  • Network elements of path transmission protocols such as gateways, access routers, core routers, front-end routers, or load balancers.
  • FIG. 3 is a schematic diagram of the architecture of a device.
  • the hardware of the device includes various hardware devices or devices, such as a memory, a processor, and a network card used for network interconnection, etc., where the network card may be one or more, if it is For one network card, multiple network cards are virtualized through the virtual network card technology to support multiple networks. If there are multiple network cards, each network card can support one network, or at least one of them can use the virtual network card technology. For example, in the terminal, there are different network cards used to connect the cellular network and Wi-Fi.
  • one terminal supports two mobile communication numbers, for example, two SIM cards can be installed at the same time, and the two cellular networks can be used for multi-path transmission, then the two mobile communication numbers use different network cards.
  • the software of the device includes an operating system and applications running in the user mode of the operating system (such as application A, application B, and application C), where the operating system can be divided into a kernel mode and a user mode.
  • the figure schematically illustrates some single-stream user mode protocols and kernel mode protocols. These protocols can be used to control the sub-streams of multi-path connections. Different protocols have slightly different locations.
  • UDP or Stream Control Transmission Protocol are kernel-mode protocols, while Quick UDP Internet Connection (QUIC) protocol, And some private protocols belong to user mode protocol, while TCP protocol crosses kernel mode and user mode. From the perspective of the operating system, the protocols corresponding to multi-path transmission are distributed in the kernel mode and the user mode.
  • STCP Stream Control Transmission Protocol
  • QUIC Quick UDP Internet Connection
  • the method described in this application may be stored in the memory of FIG. 3 in code form, and implemented in software through the call of the processor, such as the network layer, the transport layer, and the application layer in the protocol stack.
  • the protocol stack may include: a physical layer, a data link layer, a network layer, a transport layer, and an application layer, which are used to implement protocols at various layers.
  • 4 illustrates the relative positions of various protocols involved in this application from the perspective of a protocol stack.
  • Figure 4 includes the network layer, transport layer and application layer.
  • the multi-path transmission protocol layer can be considered to be located at the transmission layer, so it is also called the multi-path transmission layer, and replaces the more common transport layer protocol at present.
  • the multi-path transmission protocol layer includes an MP layer for controlling the entire multi-path connection and a sub-stream layer for controlling sub-streams. Each sub-stream layer may use the aforementioned various protocols.
  • the multi-path transmission protocol can be distributed in the kernel state or the user state as a whole, or in both the kernel state and the user state.
  • the network layer includes the IP protocol, also known as the IP layer.
  • the IP address described in this application may be obtained from the network layer, and the operator identification described in this application may be obtained from the network layer or lower layers.
  • the APP layer runs various applications, corresponding to the user mode in FIG. 3. It can be seen that FIG. 4 is described from the perspective of the Internet protocol stack, and the upper three layers that are more related to the method described in this application are drawn, but the data link layer and the physical layer are not drawn.
  • the hardware in Figure 3 can be considered to correspond to the physical layer.
  • FIG. 4 illustrates three implementations of the multi-path transmission layer. Each implementation includes an MP layer and a sub-stream layer. The MP layer runs a multi-path transmission protocol, and the sub-stream layer schematically depicts two sub-streams. The device in FIG. 3 may include any one of the three multipath transmission layers, and since the three implementation manners of the application layer and the IP layer are similar, they are not depicted separately.
  • the left side indicates the kernel state multipath transmission layer, and its substream uses the TCP / SCTP protocol; the middle indicates the user state MP layer, its substream uses the QUIC protocol and the kernel state uses UDP protocol; and the right side indicates the user state multiple
  • the path transport layer uses TCP / SCTP for its substreams.
  • this application describes a method for establishing substreams.
  • the following uses a client as an example to establish a sub-stream, for example, the client runs on the terminal.
  • the local protocol stack obtains the operator identification corresponding to the local network interface card and the identification of the operator to which the IP address of the peer device to establish a connection belongs to, which is selected by matching the operator identification The appropriate IP address pair establishes the subflow.
  • the protocol stack is a protocol stack located in the kernel.
  • the operator's logo is used to distinguish different operators, and this application does not limit the specific representation form.
  • the operator's logo is hereinafter referred to as the operator's logo.
  • the operator identification can be the name of the operator, such as China Telecom, or the number, or the mark, or the name of the network provided by the operator, such as LTE, or other parameters that can distinguish the operator, Or other data structures that can distinguish between operators.
  • the identifier of the operator connected to a network interface card may be referred to as the operator identifier corresponding to the network card, or the operator identifier of the network card.
  • IP address and its corresponding operator the essence of this correspondence is which operator provides the network accessed through the IP address.
  • the operator corresponding to the IP address in one implementation, is the operator to which the IP address belongs, but it can also be in a similar relationship. This application does not limit it.
  • some IP addresses are only private
  • the IP address of the network, or a temporary IP address the IP address may not belong to an operator, then the operator ID corresponding to the IP address, or the operator ID of the IP address, is interpreted as the network card corresponding to the IP address
  • the identity of the access operator is the same.
  • the identifier of the operator to which an IP address belongs may be referred to as the operator identifier corresponding to the IP address or the operator identifier of the IP address hereinafter.
  • the devices at both ends can use different forms of operator identification to indicate the same operator.
  • the device where the client is located uses the number to represent the operator
  • the device where the server is located uses the name of the operator to represent the operator.
  • the network card identifier (that is, the identifier of the network interface card) mentioned below does not limit the specific representation form, as long as it can distinguish different network cards on the device where the client is located.
  • the network card can be a virtual network card or a physical network card.
  • SIM Subscriber Identity Module
  • the application identification mentioned below is used to identify an application, and the service identification is used to distinguish a service, and it can also be the name, number, etc.
  • the application identification can be the identification of the enterprise or company corresponding to the application.
  • the specific form of the business logo is not limited.
  • an operator may provide multiple networks at the same time.
  • the method described in this application does not limit that substreams must be established in the same network provided by the same operator.
  • the IP addresses at both ends belong to the same operator but belong to different types of networks in the established sub-stream.
  • the rules for establishing subflows are stricter, and subflows are only established between IP address pairs of the same network belonging to the same operator.
  • the following describes a method for establishing a substream, which is implemented between two connected end devices.
  • the method includes:
  • S501 The protocol stack of the local device obtains local information and peer information.
  • the local information includes the operator identifications corresponding to the multiple network interface cards of the local device, and the peer information includes multiple IP addresses of the peer device and the identification of the operator to which each of the multiple IP addresses belongs.
  • the local information includes the identification of the network card that is preferentially used, the identification of other cards other than the network card preferentially used by the local device, and the identification of the operator corresponding to the other network card
  • the information of the opposite terminal includes the The IP address corresponding to the preferentially used network card, an IP address other than the IP address corresponding to the preferentially used network card, and the identification of the operator to which each other IP address belongs.
  • Each IP address belongs to a different operator. In this way, the operator identification corresponding to the main substream is not required.
  • the local device first obtains the local information, and also can obtain the remote information first, without sequence restrictions.
  • the protocol stack of the transmission layer of the local device obtains the local information and the peer information, and the protocol stack can save the local information and the peer information obtained above.
  • the protocol stack of the local device obtains the network card identification and the carrier identification of the local device from the network layer of the local device.
  • the module at the network layer detects which operator's network the multiple network interface cards at the local end are used to access, and reports the network interface card identifier (referred to as the network card for short) to the transport layer. ID) and the operator ID, or the protocol stack at the transport layer may actively acquire the corresponding relationship between the ID of the network interface card and the ID of the operator from the bottom.
  • the multiple network interface cards include at least one of virtual interface cards and physical interface cards.
  • the protocol stack can be determined by the correspondence between the network card ID and the operator ID, and the operator to which the multiple IP addresses of the local device belong is determined first; then the multiple IP addresses of the corresponding operator based on the local end are known and the peer end is known For multiple IP addresses of an operator, a subflow is established between the client IP address and the server IP address belonging to the same operator.
  • the sub-stream to be established may also be directly determined based on the correspondence between the local network card ID and the operator ID, and the correspondence between the peer IP address and the operator ID.
  • the terminal can determine the correspondence between the IP address and the operator ID by querying the correspondence between the parameter and the IP address stored in the terminal Correspondence.
  • the protocol stack of the local device obtains multiple IP addresses of the peer device and the operator to which each of the multiple IP addresses belongs, which may specifically be a mapping relationship between the IP address and the identifier of the operator.
  • the mapping between the IP address used by the main substream and its corresponding operator ID, and the IP address of the other peer device and the operator ID can be sent by the peer device to the local end in advance
  • the protocol stack of the local device is obtained from the client of the local device.
  • the configuration module 1 located at the application layer may obtain multiple pairs of IP addresses from the client and the carrier ID
  • the multi-path protocol stack is obtained from the configuration module 1 or the configuration module 1 is then delivered to the multi-path protocol stack.
  • the main substream and other substreams belonging to the same operator are established.
  • Figure 5a illustrates such an implementation.
  • the multi-path protocol stack obtains the correspondence between the identifier of the local network interface card and the identifier of the operator from the configuration module 2.
  • the configuration module 2 is located below the transport layer. Both configuration module 1 and configuration module 2 are software modules.
  • the client synchronously establishes the main subflow with the server, and in S503, establishes subflows other than the main subflow, that is, the multipath protocol stack learns the IP used to establish the main subflow After the addresses are paired, the main substream is established first, and then other information is collected.
  • the establishment time of the main substream is relatively flexible.
  • the IP address used by the main substream is sent by the peer device to the local device in advance.
  • the peer device After the local device establishes the main substream, the peer device sends the remaining IP address to the local device mapping relationship through the main substream to the local device.
  • S501 also includes a process of establishing a main substream, and in S503, other substreams other than the main substream are established.
  • Figure 5b illustrates one of these implementations.
  • the multipath protocol stack of the local device obtains the mapping relationship between the remaining IP addresses from the peer device and the operator ID. Since the IP address corresponding to the main substream has been sent to the local device in advance, the local device ’s The client delivers the main substream IP address to the multi-path protocol stack.
  • the multi-path protocol stack of the local device obtains the corresponding relationship between the local network interface card ID and the operator ID from the configuration module. After that, in S503, other substreams belonging to the same operator other than the main substream are established.
  • FIG. 5b does not illustrate the process of establishing the main sub-stream also included in S501.
  • the configuration module is located below the transport layer.
  • the client may also directly issue the multi-path protocol stack, and this application will not be illustrated with pictures.
  • the peer device sends the mapping relationship between the remaining IP address and the operator ID to the local device, which can be achieved by using the address announcement signaling shown in FIG. 6.
  • the IP address field of the address announcement signaling carries IP addresses other than the IP address of the main substream, and uses a customized operator information field to carry the identification of the operator to which it belongs. In this way, there is no need to customize new commands, and the changes to the existing communication protocol are relatively small.
  • Figure 8 shows general address announcement signaling. The first line is only used to indicate the length of 4 octets, not including In address announcement signaling.
  • the fields included in the address announcement signaling start from the kind field in FIG. 8 and end at the operation information field. Among them, the length of the operation information field may be greater than 2 octets, and FIG. 6 merely illustrates the location thereof.
  • octet represents the length of 8 bits, that is, a group of 8-bit data, similar to bits (byte).
  • the operator information field is optional. Different IP protocols have different lengths of corresponding IP addresses. In the existing address announcement signaling, this field is empty, or carries other information, and does not carry the operator identification.
  • S503 The local device establishes a subflow between pairs of IP addresses belonging to the same operator.
  • the local device matches the operator corresponding to multiple network interface cards of the local device and the operator to which multiple IP addresses of the peer device belong.
  • the operator corresponding to multiple network interface cards at the local end is the operator to which multiple IP addresses of the local end equipment belong.
  • the local device matches the local device's network card except the main substream's network card to the corresponding carrier and peer device's IP address, except the main substream's IP address. Attribution operator.
  • the protocol stack of the local device establishes at least one subflow based on the operators corresponding to the multiple IPs of the local and peer. Or, the protocol stack establishes at least one subflow based on the operator corresponding to the local network card identifier and the peer IP.
  • the process may be that the terminal first establishes all sub-streams and then terminates the sub-streams whose IP addresses belong to different operators at both ends.
  • the process may be to first determine IP address pairs that are allowed to establish subflows, and only establish subflows corresponding to these address pairs.
  • the local end can save some matching rules, for example, only create a subflow between the IP addresses of the client and server belonging to the network provided by the same operator, but not between the IP addresses of the same operator. Establish subflows, for example, terminate subflows where the IP addresses of both ends belong to different operators, and so on.
  • This matching and flow-building logic that only establishes sub-flows between pairs of IP addresses belonging to the same operator can be considered as a new module implemented in the multi-path transmission protocol stack.
  • the essence of this module is in the multi-path protocol stack A new section of code has been added, and this module can be called a path management module.
  • the multi-path transmission protocol stack can eliminate sub-flows between IP address pairs that do not belong to the same operator when establishing sub-flows, thereby ensuring transmission performance.
  • the path management module is not shown in Figures 5a and 5b.
  • the local end obtains the peer end from the peer end.
  • it may also include a process of establishing a main substream, that is, the local end obtains the local end.
  • the process of establishing the main substream is included in S503.
  • the main substream is a substream where the local device uses the local default network interface card and the peer IP address of the same operator corresponding to the default network interface card.
  • sub-flows are established by matching the operator's identification to select a suitable IP address pair to avoid the negative impact on the transmission performance of a multi-path connection due to the communication of certain sub-flows across operators, and to better play multi-path
  • the advantages of connection over the transmission performance of a single-path connection compared to the establishment of sub-flows between all possible IP address pairs, reduces the number of sub-flows maintained by the local end and the peer end, and reduces the equipment and network. burden.
  • the following describes the peer device information obtained by the local device in S501, that is, multiple IP addresses of the peer device and the operator to which each of the multiple IP addresses belongs.
  • the local end can obtain all available IP addresses of the peer device and the identification of the operator to which these IP addresses belong, that is, the server does not distinguish the IP addresses corresponding to the respective applications on the server, but instead assigns all the IP addresses and their corresponding The operator's logo is sent to the terminal.
  • the local end can only obtain the IP address corresponding to the application that needs to establish the substream and the corresponding operator identification in the peer device.
  • the server may send the mapping relationship between the application, the server's IP address, and the operator's identification, for example, the mapping relationship between the application identification, the IP address, and the operator's identification. Of course, the mapping relationship can also be more complicated and changeable.
  • the service can be a service ID, a mapping relationship between an application ID, an IP address, and an operator ID.
  • the service is a service to be carried by the substream to be established.
  • This application does not limit the specific form of the information sent by the peer end to the local end, and may be a mapping relationship between more parameters, but the mapping relationship includes the mapping between the IP address and the operator ID.
  • the application at the local end can process it.
  • the protocol stack at the local end obtains at least a mapping between the IP address and the operator ID.
  • Table 1 illustrates the content included in the mapping relationship obtained by the protocol stack in an implementation manner, where the name of the application is game 1.
  • IP address Game 1 China Mobile IPa A China Unicom IPb A China Telecom IPc A China Railcom IPd A Other operators IPe
  • FIG. 7 and FIG. 8 describe the implementation of the foregoing method for establishing a subflow in two specific scenarios with reference to FIGS. 7 and 8.
  • the implementation methods of FIG. 7 and FIG. 8 are modified on the basis of the existing fullmesh mechanism to implement the foregoing method of establishing a subflow.
  • an A application is running on a terminal, and the terminal needs to establish a multi-path connection with a server corresponding to the A application, the A application on the terminal is a client, and a server is running on the server.
  • the IP address of the terminal is IP1 attributable to China Mobile and IP2 attributable to China Telecom
  • the IP address of the corresponding application A on the server is IPa belonging to China Mobile and IPb belonging to China Telecom.
  • the transmission layer of the terminal before establishing the main substream, obtains the correspondence between the IP addresses of multiple pairs of peers and the identifier of the operator from the application layer at the local end.
  • the network card currently used by the terminal by default is the network card used to access China Mobile.
  • S701 The terminal obtains the correspondence between multiple pairs of local network card identifiers and operator identifiers, and obtains the correspondence between multiple pairs of peer IP addresses and operator identifiers. Among them, the opposite end is the server corresponding to the A application.
  • the application layer of the terminal delivers the correspondence between the IP addresses of multiple pairs of peers and the identifier of the operator to the multipath protocol stack.
  • the correspondence between the IP addresses of multiple pairs of peers and the operator ID has been saved in the A application. It may be delivered by the A application, or it may be a configuration module of the application layer obtained from the A application and delivered to the multi-path protocol stack.
  • the peer IP addresses include IPa belonging to China Mobile and IPb belonging to China Telecom.
  • the network layer of the terminal reports multiple network card identifiers of the terminal to the multipath protocol stack, and the operator ID to which each of the multiple network card identifiers belongs.
  • the format is as follows:
  • Wi-Fi network interface card name operator identification to which the Wi-Fi network belongs
  • LTE network interface card name operator identification to which the LTE network belongs
  • the name of the SIM card can also be used as the name of the network interface card of the mobile cellular network.
  • the terminal has two network cards, which belong to China Mobile and China Telecom. Among them, China Mobile provides cellular mobile networks, which can be expressed as:
  • Wi-Fi network card identification Telecom
  • the operator logo is represented by the name of the operator.
  • the transport layer protocol stack of the terminal may store the obtained corresponding relationship of the local end.
  • the terminal's default network card that is, the currently preferred network card
  • the terminal selects the corresponding destination IP address based on the operator corresponding to the SIM card, which also belongs to China Mobile's IPa.
  • the IP address corresponding to the SIM card of the terminal is IP1.
  • S702 The terminal and the server use IP1 and IPa to establish a substream.
  • the sub-flow established using IP1 and IPa may be referred to as the main sub-flow.
  • S703 The terminal notifies the server of another IP address of the local end, namely IP2, through the main substream.
  • S703 can be implemented using the message in the fullmesh mechanism described above.
  • the message carries the address announcement signaling as shown in FIG. 6, but the operator identification to which IP2 belongs may not be carried in the extension field.
  • S704 The terminal determines sub-streams other than the main sub-stream to be established according to the correspondence obtained in S701.
  • the protocol stack at the transport layer of the terminal stores matching logic, determines the IP address pair belonging to the same operator, and establishes the sub-flow between the IP address pairs belonging to the same operator.
  • it may be a path management module in the multi-path protocol stack of the transport layer to perform this step.
  • S705 The substream determined in S704 is established between the terminal and the server.
  • IP1 and IPb, IP2 and IPa belong to different operators, and neither of the two pairs of IPs establishes subflows; IP2 and IPb belong to the same operator, and use this pair of IPs to establish subflows.
  • a B application is running on the terminal, and the terminal needs to establish a multi-path connection with a server corresponding to the B application, the B application on the terminal is a client, and a server is running on the server.
  • the IP address of the terminal is IP3 attributable to China Unicom and IP4 attributable to other operators
  • the IP address of the corresponding application B on the server is IPc attributable to China Unicom and IPd attributable to other operators.
  • the server sends the IP address corresponding to the B application on the server to the terminal through the main substream, and the operator ID to which these IP addresses belong.
  • the network interface card currently used by the terminal by default is the network card used to access China Unicom.
  • S801 The terminal obtains the correspondence between multiple pairs of local network card identifiers and operator identifiers.
  • the multi-path protocol stack of the terminal transmission layer obtains the network card identifier from a lower layer (such as the network layer or the driver layer), and the operator identifier to which each of the multiple network card identifiers belongs.
  • a lower layer such as the network layer or the driver layer
  • the operator identifier to which each of the multiple network card identifiers belongs For the format, please refer to the corresponding paragraph in S601.
  • the terminal uses the IP address IP3 corresponding to the default network card of the terminal and the IP address IPc of the peer that belongs to the same operator as IP3 to establish a subflow.
  • the peer IP address IPc may be obtained by the terminal transport layer from the B application, and the B application is obtained from the server side. This process can take place before S801. For specific explanation, please refer to the corresponding paragraph above.
  • the substream between IP3 and IPc is called the main substream.
  • the terminal knows the operator to which the server's IP address IP3 belongs, that is, the operator ID corresponding to the known IP3.
  • S802 and S803 can be changed.
  • S803 The terminal sends the client an IP address other than IP3, that is, IP4, to the server through the substream between IP3 and IPc.
  • S603 and S803 are steps in the existing process of establishing a sub-stream.
  • S803 can use standard address announcement signaling, and the format can be seen in FIG. 6, that is, the extension field does not carry the operator identification to which IP3 belongs.
  • S804 The server sends to the terminal an IP address corresponding to the B application other than IPc, that is, IPd, and the operator ID to which the IPd belongs, through the substream between IP3 and IPc.
  • the IPd included in S804 and the operator identification to which the IPd belongs use the improved address announcement signaling bearer.
  • the address announcement signaling is existing signaling, which is used to announce the local end's IP address to the peer, but the existing address announcement signaling does not carry the operator ID to which the IP address belongs.
  • the operator identification is recorded in the extension field of the standard address announcement signaling format.
  • the address announcement signaling format can refer to FIG. 6, and the operator identification is recorded in the field after the port field.
  • the protocol layer of the terminal can save the correspondence between the IP address obtained in the previous step and the operator identification.
  • S805 The terminal determines sub-streams other than the main sub-stream to be established according to the known operators corresponding to multiple local network cards and the operators to which multiple known peer IP addresses belong.
  • S805 is similar to S605. It may be that the protocol stack of the terminal transport layer stores matching logic to determine the IP address pair belonging to the same operator. For example, the path management module in the multi-path protocol stack of the transport layer performs the determination action.
  • S806 The substream determined by 805 is established between the terminal and the server.
  • IP3 and IPd, IP4 and IPc belong to different operators, and the protocol stack prohibits the establishment of subflows; IP4 and IPd belong to the same operator, and the protocol stack allows the establishment of subflows.
  • the terminal collects multiple IP addresses of the local end and the opposite end and the operator ID to which these IP addresses belong before establishing the subflow, and only establishes the subflow between the IP addresses belonging to the same operator. It avoids the impact of the sub-flows established between different IP addresses on the transmission performance of multipath, and makes better use of the transmission performance advantages of multipath connections compared to single path connections, compared to all possible IP addresses Establishing sub-flows between pairs reduces the number of sub-flows maintained by the local and peer ends, and reduces the burden on the device and the network.
  • FIG. 9 describes a schematic structural diagram of an apparatus provided by the present application.
  • the apparatus 900 is located at a local device, that is, the first device mentioned above, and the local device includes multiple network interface cards.
  • the device 900 includes a configuration module 901 and a multi-path transmission protocol stack 902.
  • the device 900 may perform various methods for establishing a substream at the local end.
  • the configuration module 901 is used to determine the identity of the operator that each of the multiple network interface cards of the first device accesses; wherein, the configuration module 901 can obtain these from the protocol stack below the transport layer of the first device information.
  • the configuration module 901 is also used to determine multiple Internet protocol IP addresses of the second device and the identification of the operator corresponding to each of the multiple IP addresses of the second device.
  • the configuration module 901 can obtain the information from the client of the local device.
  • the configuration module 901 is used to determine the identification of the operator to which each of the plurality of network interface cards of the first device is connected; wherein, the configuration module 901 may obtain the information from the protocol stack below the transport layer of the first device.
  • the multi-path transmission protocol stack 902 is used to determine multiple Internet protocol IP addresses of the second device and the identification of the operator corresponding to each of the multiple IP addresses of the second device. The multi-path transmission protocol stack 902 can receive these information from the second device.
  • the multi-path transmission protocol stack 902 is also used to establish a plurality of first sub-nodes based on the identifiers of the operators to which each of the plurality of network interface cards accesses and the identifiers of the operators corresponding to each of the plurality of IP addresses of the second device Stream, the plurality of first sub-streams is a multi-path connected sub-stream between the first device and the second device, and each of the plurality of first sub-streams is used by the first sub-stream
  • the operator connected to the network interface card of the first device is the same as the operator corresponding to the IP address of the second device used by each first substream.
  • each of the plurality of network interface cards of the first device corresponds to the IP address of the first device
  • the multi-path transmission protocol stack 902 is specifically used to match the respective access operators of the plurality of network interface cards An identifier and an operator identifier corresponding to each of the plurality of IP addresses of the second device, to determine a plurality of IP address pairs, and among the plurality of IP address pairs, the IP address of the first device in each IP address pair
  • the corresponding network interface card access operator is the same as the operator corresponding to the IP address of the second device included in each IP address pair; establish a one-to-one correspondence with the multiple IP address pairs Multiple first substreams.
  • the multi-path transmission protocol stack 902 is specifically used to determine the multiple by matching the operator IDs of the multiple network interface cards and the corresponding operator IDs of the multiple IP addresses of the second device.
  • Each network interface card corresponding to the IP address of the second device, and among the plurality of network interface cards, the operator corresponding to the IP address of the second device corresponding to each network interface card is associated with each network interface card The access operators are the same; through the multiple network interface cards, a message is sent to the IP addresses of the second devices corresponding to the multiple network interface cards to establish the multiple first substreams.
  • the multi-path transmission protocol stack 902 is specifically used to obtain multiple combinations, and each combination of the multiple combinations indicates a combination of one of the plurality of network interface cards and one of the plurality of IP addresses Combination; for each combination of the plurality of combinations, if the operator of the network interface card access indicated by each combination and the operator corresponding to the IP address indicated by each combination are the same, then Use the combination of the network interface card and IP address indicated by each combination to establish a first substream; the operator connected to the network interface card indicated by each combination and the IP address indicated by each combination If the corresponding operators are different, it is prohibited to use the combination of the network interface card and the IP address indicated by the combination to establish a subflow.
  • the multipath transmission protocol stack 902 is specifically configured to establish multiple substreams based on the multiple network interface cards and multiple IP addresses of the second device, and the multiple substreams include multiple first substreams; Remove all the second sub-streams of the plurality of sub-streams by matching the identifiers of the operators that the multiple network interface cards access to and the identifiers of the operators corresponding to the multiple IP addresses of the second device, The operator accessed by the network interface card of the first device used by the second substream is different from the operator corresponding to the IP address of the second device used by the second substream.
  • the first device includes a first network interface card and at least one second network interface card, where the first network interface card is a network interface card that the first device currently preferentially uses.
  • the configuration module 901 is used to determine the identification of the operator to which each of the at least one second network interface card is connected; the multi-path transmission protocol stack 902 is used to pass the first network interface card to the first Internet protocol of the second device Sending a message by an IP address to establish a main substream of a multi-path connection between the first device and the second device, wherein the operator accessed by the first network interface card corresponds to the first IP address Operators are the same; the multi-path transmission protocol stack 902 is also used to receive at least one second IP address from the second device from the main substream, and the operator corresponding to each of the at least one second IP address , Where the at least one second IP address is an IP address of the second device other than the first IP address to which it belongs; and based on the identifier and The identifier of the operator corresponding to each
  • At least one other subflow of the multipath connection is established based on the identifier of the operator that the at least one second network interface card accesses and the identifier of the operator corresponding to the at least one second IP address.
  • this application describes another apparatus for establishing a substream, which is used for a second device, that is, the peer device described above.
  • the apparatus includes a sending module for sending the IP address of the second device and the identifier of the operator corresponding to the IP address to the first device through the first substream, the first substream is the Multi-path connected sub-stream between the first device and the second device; the device further includes a receiving module, the receiving module is used to cooperate with the sending module to communicate with the first device through the IP address, To establish a second sub-stream of the multi-path connection, wherein the operator that the second sub-stream accesses from the first device is the same as the operator corresponding to the IP address.
  • FIG. 10 depicts the device 1000 provided by the present application.
  • the device described in FIG. 10 may be a terminal, a cloud server, a cloud proxy server, a load balancer, or a hybrid access gateway and other devices that support multi-path transmission protocols, that is, FIG. 10 may be the terminal in FIG. 2 or may be in FIG. 2 Server.
  • the device 1000 includes at least one processing circuit 1001, a communication interface 1004, and the communication interface 1004 includes a plurality of network cards, which may be physical network cards or virtual network cards. Not shown in the figure, the storage medium 1005 and at least one communication bus 1002.
  • the communication bus 1002 is used to implement connection communication between these components. That is to say, the device described in FIG. 3 including the processor, memory, and network card is a specific implementation of FIG. 10.
  • the storage circuit may store the client or server of the application, the protocol stack program, and instructions for performing any of the foregoing methods for establishing a substream, that is, the software architecture described in FIG. 4 may be stored in a storage medium 1005.
  • the device described in FIG. 10 can execute the code in the storage medium 1005 through the processing circuit 1001, and cooperate with the communication interface 1004 to perform the various sub-stream creation methods described above, the part executed by one device, of course, if there are two If the described device communicates, the interaction process described above can be performed.
  • instructions having the format shown in FIG. 6 may be used during the execution of these transmission control methods. Specific implementation methods, implementation details and beneficial effects will not be repeated here.
  • the processing circuit 1001 executes the code in the storage medium 1005 and cooperates with the communication interface 1003 to implement the device corresponding to FIG. 9.
  • the configuration module 901 and the multi-path transmission protocol stack 902 in the device 900 may be implemented by the processing circuit 1001 executing instructions in the storage medium 1005 and driven by the communication interface 1004, which may be specifically implemented by different processes running on the processing circuit 1001 Or the thread executes the instruction and is implemented by the called communication interface.
  • the device 1000 may be a terminal device.
  • a terminal device it may optionally include a user interface, including a display (for example, a touch screen, LCD, CRT, holographic imaging, or projection). Etc.), keyboard or pointing device (eg mouse, trackball, touch pad or touch screen, etc.).
  • the terminal device is often used as an initiator for establishing a substream, that is, the first device or the local device described above, an operating system is installed in the terminal device, and a client needs to establish a substream.
  • the storage medium 1005 may include a read-only memory and a random access memory, and provide instructions and data to the processing circuit 1001. A portion of the storage medium 1005 may also include non-volatile random access memory (NVRAM).
  • NVRAM non-volatile random access memory
  • the storage medium 1005 stores the following elements, executable modules or data structures, or their subsets, or their extended set: operating system, including various systems Programs, such as the framework layer, core library layer, driver layer, etc., are used to implement various basic services and handle hardware-based tasks; applications, including various applications, such as desktop (launcher), media player (Media Player) , Browser (Browser), etc., used to implement various application services.
  • operating system including various systems
  • Programs such as the framework layer, core library layer, driver layer, etc., are used to implement various basic services and handle hardware-based tasks
  • applications including various applications, such as desktop (launcher), media player (Media Player) , Browser (Browser), etc., used to implement various application services.
  • the client and server described above are an application.
  • the storage medium 1005 may only store the program code required for performing the method described above.
  • the processing circuit 1001 may be implemented by one or more processors, and the processing circuit 1001 may be a central processing unit (English: central processing unit, abbreviation: CPU).
  • the processing circuit 1001 may also be other general-purpose processors, digital signal processors (English: digital signal processing, abbreviation: DSP), application specific integrated circuits (English: application specific integrated circuit, abbreviation: ASIC), field programmable gate array (English) : Field-programmable gate array, abbreviation: FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc.
  • the general-purpose processor may be a microprocessor or the processor may be any conventional processor or the like.
  • the system bus 1002 may include a data bus, a power bus, a control bus, a signal status bus, and so on. In this embodiment, for clear explanation, various buses are illustrated as the system bus 1002 in FIG. 10.
  • the interface circuit 1003 may specifically be a communication interface on a physical machine.
  • the communication interface may be a wireless communication interface.
  • the wireless communication interface may be a wireless module or a network card of a physical machine.
  • the processing circuit 1001 transmits and receives data with other devices, such as other physical machines, through the interface circuit 1003.
  • the storage medium 1005 may include volatile memory (English: volatile memory), for example, random access memory (English: random-access memory, abbreviation: RAM); the storage medium 1004 may also include non-volatile memory (English: non-memory). volatile memory), such as read-only memory (English: read-only memory, abbreviation: ROM), flash memory (English: flash memory), hard disk (English: hard disk drive, abbreviation: HDD) or solid-state hard disk (English: solid -state drive, abbreviation: SSD); the storage medium 1005 may also include a combination of the above types of memories.
  • volatile memory English: volatile memory
  • RAM random access memory
  • RAM random-access memory
  • non-volatile memory English: non-memory
  • volatile memory such as read-only memory (English: read-only memory, abbreviation: ROM), flash memory (English: flash memory), hard disk (English: hard disk drive, abbreviation: HDD) or solid-state hard disk (English: solid -state drive, abbrevi
  • the storage medium 1005 may include an underlying storage medium and a memory.
  • the underlying storage medium may be, for example, a storage medium in a network card.
  • the memory is coupled to the underlying storage medium and is used as a cache of the underlying storage medium.
  • the present application also provides a computer-readable storage medium.
  • the readable storage medium includes a computer-executable instruction.
  • the processor of the physical machine executes the computer-executed instruction, so that the physical machine executes the embodiment of the present invention. Either way.
  • the readable storage medium in this embodiment may be the storage medium 1003 shown in FIG. 10 described above.
  • the present application also describes a computer program product, the computer program product comprising instructions, which when executed on a computer, causes the computer to perform any of the methods described in this application.
  • the disclosed devices, devices, and methods may be implemented in other ways.
  • the device embodiments described above are only schematic.
  • the module division is only a logical function division.
  • there may be another division manner for example, multiple units or components may be combined or may Integration into another system, or some features can be ignored, or not implemented.
  • the sending module and the receiving module may be one module, such as a transceiver module or a transceiver.
  • the displayed or discussed mutual coupling or direct coupling or communication connection may be through some interfaces, such as the interface functions mentioned above, and the indirect coupling or communication connection of the device or unit may be electrical, mechanical or Other forms.
  • the computer program product includes one or more computer instructions.
  • the computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices.
  • the computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium, for example, the computer instructions may be from a website site, computer, server or data center Transmit to another website, computer, server or data center by wired (such as coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (such as infrared, wireless, microwave, etc.).
  • the computer-readable storage medium may be any available medium that can be accessed by a computer or a data storage device including a server, a data center, and the like integrated with one or more available media.
  • the usable medium may be a magnetic medium (for example, a floppy disk, a hard disk, or a magnetic tape), an optical medium (for example, a DVD), or a semiconductor medium (for example, Solid State Disk (SSD), phase change memory), or the like.
  • a magnetic medium for example, a floppy disk, a hard disk, or a magnetic tape
  • an optical medium for example, a DVD
  • a semiconductor medium for example, Solid State Disk (SSD), phase change memory

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 Path Transmission Control Protocol)就是一种基于传输控制协议(TCP,Transmission Control Protocol)的。多路径传输技术可以统称为MP技术,其包括多条子流的连接称为多路径连接,即MP连接。其中,多条子流中每一条子流对应客户端与服务端之间不同的一条链路,该多条子流称作一个多路径连接。理论上,相比于单路径传输,多路径传输技术有助于提升数据的吞吐量,因此适用于在线视频播放和下载数据;多路径传输技术还有助于降低时延和提高数据传输的可靠性,因此适用于游戏。上述的多条子流可以基于Wi-Fi网络和蜂窝网络中的至少一种传输数据,其中,该蜂窝网络可以是5G网络,4G网络,如长期演进网络(LTE,Long Term Evolution)、或者3G网络,如码分多址(CDMA,Code Division Multiple Access)网络,或者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)的互联网协议(Internet Protocol,IP)地址和对端所有活动(active)的IP地址之间,分别建立子流。这种方式可以简称为fullmesh机制。在这种机制下,在所有可用的IP地址对之间建立子流,例如本端与对端之间只使用两种网络(例如LTE和Wi-Fi),也会建立起2*2=4条子流。
在两个端设备都具有归属于不同的运营商的网络接口卡的情况下,使用现有的fullmesh机制建立子流会导致无法达到预期的性能收益。在当前网络环境下,终端的多个网络接口卡很可能会归属于不同运营商,例如,用于接入Wi-Fi的网络接口卡连接至中国电信网络(China Telecom),用于接入LTE的网络接口卡连接到中国移动网络(China Mobile Communication,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网络的接入点(Access Point,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 Identity Module,SIM)卡的名称或者编号,也可以作为网卡标识。下文提及的应用标识用于标识一个应用,业务标识用于区分一个业务,同样也可以是名称,编号等等,例如应用标识可以是应用对应的企业或者公司的标识,本申请对应用标识和业务标识的具体形式不做限定。
需说明的是,一个运营商可能同时提供多种网络,在一些实现方式中,本申请描述的方法并不限定子流必须在同一运营商的提供的同一种网络中建立。也就是说,使用本申请描述的方法,建立的子流中,有可能存在两端的IP地址属于同一运营商但属于不同种网络的情况。当然,在另一些实现方式中,建立子流的规则更加严格,只在属于同一运营商的同一种网络的IP地址对之间建立子流。
下面描述建立子流的方法,该方法在一个连接的两个端设备间施行。该方法包括:
S501:本端设备的协议栈得到本端信息和对端信息。
本端信息包括本端设备的该多个网络接口卡各自对应的运营商标识,以及对端信息包括对端设备的多个IP地址以及该多个IP地址各自归属的运营商的标识。
或者本端信息包括优先使用的网卡的标识,本端设备除优先使用的网卡之外的其他卡的标识,以及该其他网卡各自对应的运营商的标识,以及对端信息包括对端设备中该优先使用的网卡对应的IP地址,与该优先使用的网卡对应的IP地址之外的其他IP地址,以及该其他IP地址各自归属的运营商的标识。该其他IP地址可以是一个或多个,该其他网卡也可以是一个或多个。这是由于主子流的IP地址对可用现有技术确定,因此本方法的流程在建立多子流的过程中,只需得到其他可用于建立子流的IP地址对,而很多场景下,一个设备的每个IP地址都归属不同的运营商。这样也就无需主子流对应的运营商标识。
本端设备先得到本端信息,也可先得到对端信息,无顺序限制。
具体是本端设备的传输层的协议栈,得到本端信息和对端信息,协议栈可将上述得到的本端信息和对端信息保存。
本端设备的协议栈从本端设备的网络层得到本端设备的网卡标识和运营商标识。具体可以是网络层的模块(例如位于网络层的配置模块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、图5a和图5b。并且,本申请并不限定用于执行前述的各种建立子流的装置的实现方式,例如,可以包括一个或者多个模块,也不限定这些模块的名称,其连接关系由这些模块执行的步骤或具备的功能之前的逻辑关系决定。
图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存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:操作系统,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;应用程序,包含各种应用程序,例如桌面(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 (19)

  1. 一种建立子流的方法,其特征在于,所述方法包括:
    第一设备确定所述第一设备的多个网络接口卡各自接入的运营商的标识;
    所述第一设备确定第二设备的多个互联网协议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地址对应的运营商相同。
  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地址对应的运营商相同。
  15. 一种设备,所述设备用于建立子流,其特征在于,所述设备包括:处理电路、通信接口和存储介质,所述存储介质中存储有指令,所述通信接口用于根据所述处理电路下发的所述指令与其他设备进行信息交互,所述处理电路用于运行所述存储介质中的所述指令,实现如权利要求1到7任一项所述的方法。
  16. 一种设备,所述设备用于建立子流,其特征在于,所述设备包括:处理电路、通信接口和存储介质,所述存储介质中存储有指令,所述通信接口用于根据所述处理电路下发的所述指令与其他设备进行信息交互,所述处理电路用于运行所述存储介质中的所述指令,实现如权利要求8到12任一项所述的方法。
  17. 一种设备,所述设备用于建立子流,其特征在于,所述设备包括:处理电路、通信接口和存储介质,所述存储介质中存储有指令,所述通信接口用于根据所述处理电路下发的所述指令与其他设备进行信息交互,所述处理电路用于运行所述存储介质中的所述指令,实现如权利要求13所述的方法。
  18. 一种计算机可读存储介质,包括指令,当所述指令在计算机上运行时,使得所述计算机执行如权利要求1至7或者权利要求8到12,或者权利要求13中任一项所述的方法。
  19. 一种计算机程序产品,包括指令,当所述指令在计算机上运行时,使得所述计算机执行如权利要求1至7或者权利要求8到12,或者权利要求13中任一项所述的方法。
PCT/CN2019/112460 2018-10-26 2019-10-22 一种建立多路径连接的子流的方法、装置和系统 WO2020083269A1 (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
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 (2)

Application Number Priority Date Filing Date Title
CN201811260980.3 2018-10-26
CN201811260980.3A CN111107672B (zh) 2018-10-26 2018-10-26 一种建立多路径连接的子流的方法、装置和系统

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/126,799 Continuation US11419171B2 (en) 2018-10-26 2020-12-18 Method for establishing subflow of multipath connection, apparatus, and system

Publications (1)

Publication Number Publication Date
WO2020083269A1 true WO2020083269A1 (zh) 2020-04-30

Family

ID=70331278

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/112460 WO2020083269A1 (zh) 2018-10-26 2019-10-22 一种建立多路径连接的子流的方法、装置和系统

Country Status (4)

Country Link
US (2) US11419171B2 (zh)
EP (1) EP3780885A4 (zh)
CN (1) CN111107672B (zh)
WO (1) WO2020083269A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112866116A (zh) * 2020-12-31 2021-05-28 平安科技(深圳)有限公司 网络访问探测方法、装置、设备及存储介质

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113014681A (zh) * 2019-12-20 2021-06-22 北京金山云科技有限公司 多网卡服务器的网卡绑定方法、装置、电子设备及存储介质
CN113347681B (zh) * 2021-05-31 2023-07-14 浙江大华技术股份有限公司 数据传输方法、装置、存储介质及电子装置
CN114301964A (zh) * 2021-12-25 2022-04-08 深圳市元征科技股份有限公司 终端设备及其网络连接方法、通信系统及存储介质
CN115277560B (zh) * 2022-09-28 2023-01-17 鹏城实验室 基于mptcp和mpquic的异构网络融合传输方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130064198A1 (en) * 2011-09-14 2013-03-14 Qualcomm Incorporated Multipath transport tunnel over multiple air interfaces connecting wireless stations
CN103004167A (zh) * 2010-04-06 2013-03-27 高通股份有限公司 使用多径传输的协作式带宽聚合
CN106100986A (zh) * 2016-07-25 2016-11-09 乐视控股(北京)有限公司 通信链路控制方法及装置
CN108366104A (zh) * 2018-01-29 2018-08-03 北京奇艺世纪科技有限公司 一种数据下载控制方法和装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
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
US20120331160A1 (en) * 2011-06-22 2012-12-27 Telefonaktiebolaget L M Ericsson (Publ) Multi-path transmission control protocol proxy service
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
US9456464B2 (en) * 2013-06-06 2016-09-27 Apple Inc. Multipath TCP subflow establishment and control
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
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
CN112995050A (zh) * 2016-11-17 2021-06-18 华为技术有限公司 一种多路径数据传输方法及设备
US11304075B2 (en) * 2019-01-28 2022-04-12 Nokia Solutions And Networks Oy Network path reliability

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103004167A (zh) * 2010-04-06 2013-03-27 高通股份有限公司 使用多径传输的协作式带宽聚合
US20130064198A1 (en) * 2011-09-14 2013-03-14 Qualcomm Incorporated Multipath transport tunnel over multiple air interfaces connecting wireless stations
CN106100986A (zh) * 2016-07-25 2016-11-09 乐视控股(北京)有限公司 通信链路控制方法及装置
CN108366104A (zh) * 2018-01-29 2018-08-03 北京奇艺世纪科技有限公司 一种数据下载控制方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ZTE WISTRON: "MPTCP Deployment Scenarios in Today Network", SA WG2 MEETING #128BIS S2-187756, 24 August 2018 (2018-08-24), XP051536719, DOI: 20191206161104A *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112866116A (zh) * 2020-12-31 2021-05-28 平安科技(深圳)有限公司 网络访问探测方法、装置、设备及存储介质

Also Published As

Publication number Publication date
EP3780885A4 (en) 2021-08-04
US11419171B2 (en) 2022-08-16
CN111107672B (zh) 2023-04-18
EP3780885A1 (en) 2021-02-17
US11800587B2 (en) 2023-10-24
US20210105845A1 (en) 2021-04-08
US20220346168A1 (en) 2022-10-27
CN111107672A (zh) 2020-05-05

Similar Documents

Publication Publication Date Title
US11277313B2 (en) Data transmission method and corresponding device
US10694005B2 (en) Hardware-based packet forwarding for the transport layer
WO2020083269A1 (zh) 一种建立多路径连接的子流的方法、装置和系统
US10574763B2 (en) Session-identifer based TWAMP data session provisioning in computer networks
US20130194963A1 (en) Method and apparatus for end-host based mobility, multi-homing and multipath protocols
US10855491B2 (en) Method for implementing GRE tunnel, access point and gateway
WO2021008591A1 (zh) 数据传输方法、装置及系统
WO2021254001A1 (zh) 会话建立方法、装置、系统及计算机存储介质
WO2021169291A1 (zh) 发布路由的方法、网元、系统及设备
JP6480452B2 (ja) パケット処理方法および装置
CN110708229B (zh) 一种收发消息的方法、装置和系统
WO2014063501A1 (zh) 报文传输方法及装置
WO2023035836A1 (zh) 一种报文处理方法及相关装置
JP5840575B2 (ja) マルチホーム通信方法およびシステム
US20240039762A1 (en) Combined pfcp session model for network access by residential gateways
US11902052B1 (en) Separate PFCP session model for network access by residential gateways
EP4373051A1 (en) Apparatuses, methods and non-transitory computer-readable storage mediums for network access to residential gateways
WO2023274087A1 (zh) 报文转发的方法、装置及系统
WO2023231438A1 (zh) 报文发送的方法、网络设备及系统
US20240039763A1 (en) Separate pfcp session model for network access by residential gateways
JP2024072265A (ja) レジデンシャルゲートウェイへのネットワークアクセスのための装置、方法、および非一時的コンピュータ可読記憶媒体
CN114205301A (zh) Mptcp负载均衡方法、介质及设备
JP5464360B2 (ja) 移動体通信における改良された端末情報管理方式及び通信方式を実現するメッシュ型ネットワーク及び基地局
WO2017079901A1 (zh) 一种路由方法及路由装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19875193

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2019875193

Country of ref document: EP

Effective date: 20201104

NENP Non-entry into the national phase

Ref country code: DE