Method and system for managing multipath communications

CN117223274BActive Publication Date: 2026-09-18SAMSUNG ELECTRONICS CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202280031958.X
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2021-04-29
Filing Date
2022-04-26
Publication Date
2026-09-18
Estimated Expiration
2042-04-26

Smart Images

  • Figure CN117223274B_ABST
    Figure CN117223274B_ABST
Patent Text Reader

Abstract

A method of managing multipath communications includes obtaining a plurality of network addresses respectively corresponding to a plurality of servers associated with a domain; sending a data request to at least one of the plurality of servers based on the obtained plurality of network addresses; receiving a first data packet communicated from a first server of the plurality of servers in response to the data request, the first data packet being received first in order from a plurality of data packets received from the plurality of servers in response to the data request; accepting the first data packet; and rejecting data packets communicated from each server of the plurality of servers other than the first server.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to the field of multipath communication, and more particularly to managing multipath communication by utilizing the availability of multiple servers. Background Technology

[0002] Multipath communication enables a user equipment (UE) to use one or more network interfaces in parallel or one at a time for a single flow to a server. Examples of multipath communication include, but are not limited to, Multipath Transmission Control Protocol (MPTCP) communication, Multipath User Datagram Protocol (MPUDP) communication, Multipath-QUIC (MPQUIC) communication, etc. Examples of network interfaces include, but are not limited to, Long Term Evolution (LTE) networks, New Radio / 5G networks, Wi-Fi, etc. The flow corresponds to one or more activities performed by the UE, such as, but not limited to, downloading data, uploading data, streaming audio and / or video sessions, etc. Each flow may include sub-flows, which indicate the network interface used by the UE for a single flow to the server. Summary of the Invention

[0003] [Technical Solution]

[0004] The primary objective of the embodiments herein is to disclose methods and systems for managing multipath communication by utilizing the availability of multiple servers.

[0005] Another objective of the embodiments herein is to disclose a method and system for enabling a user equipment (UE) to receive from a Domain Name System (DNS) server a plurality of Internet Protocol (IP) addresses corresponding to a plurality of servers associated with at least one domain, and simultaneously send at least one data request to the plurality of servers corresponding to the received plurality of IP addresses.

[0006] Another objective of the embodiments herein is to disclose methods and systems for enabling a UE to receive data packets from multiple servers in response to at least one data request, accept data packets received first from the server, and reject data packets received from other servers.

[0007] The embodiments disclosed herein provide methods and systems for managing multipath communication.

[0008] According to certain embodiments of this disclosure, a method for managing multipath communication via a user equipment (UE) is provided. The method includes: acquiring a plurality of network addresses respectively corresponding to a plurality of servers associated with a domain; sending a data request to at least one of the plurality of servers based on the acquired plurality of network addresses; receiving a first data packet transmitted from a first server of the plurality of servers in response to the data request, the first data packet being received first in sequence from a plurality of data packets received from the plurality of servers in response to the data request; accepting the first data packet; and rejecting data packets transmitted from each of the plurality of servers other than the first server.

[0009] According to certain embodiments of this disclosure, a user equipment (UE) for managing multipath communication is provided. The UE includes at least one communication interface, at least one memory storing a plurality of instructions, and processing circuitry configured to execute the plurality of instructions to: acquire a plurality of network addresses respectively corresponding to a plurality of servers associated with a domain; send a data request to at least one of the plurality of servers based on the acquired network addresses; receive a first data packet transmitted from a first server among the plurality of servers in response to the data request, the first data packet being received first in sequence among a plurality of data packets received from the plurality of servers in response to the data request; accept the first data packet; and reject data packets transmitted from each of the plurality of servers other than the first server.

[0010] According to certain embodiments of the present invention, a non-transitory computer-readable recording medium is provided. The recording medium has instructions recorded on it that are executable by at least one processor to: acquire a plurality of network addresses corresponding to a plurality of servers associated with a domain; send a data request to at least one of the plurality of servers based on the acquired plurality of network addresses; receive a first data packet transmitted from a first server of the plurality of servers in response to the data request, the first data packet being received first in sequence among a plurality of data packets received from the plurality of servers in response to the data request; accept the first data packet; and reject data packets transmitted from each of the plurality of servers other than the first server. Attached Figure Description

[0011] The embodiments herein are illustrated in the accompanying drawings, throughout which the same reference numerals indicate corresponding portions in the various figures. The embodiments herein will be better understood from the following description with reference to the accompanying drawings, wherein:

[0012] Figure 1A It describes the Multipath Transmission Control Protocol (MPTCP) sub-stream;

[0013] Figure 1B ,1C The 1D diagram illustrates the redundancy mode of MPTCP operation in the example mode;

[0014] Figure 2A , 2B Sections 2C and 2C describe a communication system according to embodiments disclosed herein;

[0015] Figure 3 This is an example block diagram depicting various components of a user equipment (UE) that manages multipath communication by utilizing the availability of multiple servers according to embodiments disclosed herein;

[0016] Figure 4 A multipath communication manager, which can be executed on a UE to manage multipath communication according to embodiments disclosed herein, is described;

[0017] Figure 5 This is an example sequence diagram illustrating a method for managing multipath communication based on proxy addresses according to embodiments disclosed herein;

[0018] Figure 6 This is an example sequence diagram illustrating a method for managing multipath communication using DNS caching according to embodiments disclosed herein;

[0019] Figure 7 This is an example flowchart describing a method for managing multipath communication using sockets according to embodiments disclosed herein;

[0020] Figure 8 These are example diagrams depicting a method for managing multipath communication according to embodiments disclosed herein; and

[0021] Figure 9 This is an example diagram depicting the application of the Transmission Control Protocol (TCP) and multipath TCP to socket mapping. Detailed Implementation

[0022] These and other aspects of the exemplary embodiments herein will be better appreciated and understood when considered in conjunction with the following description and accompanying drawings. However, it should be understood that while the following description indicates exemplary embodiments and their numerous specific details, these descriptions are given in an illustrative rather than limiting manner. Many changes and modifications can be made within the scope of the exemplary embodiments herein without departing from their spirit, and the exemplary embodiments herein encompass all such modifications.

[0023] [Invention Method]

[0024] The exemplary embodiments illustrated in the accompanying drawings and detailed in the following description are explained more fully with reference to them. Descriptions of well-known components and processing techniques have been omitted to avoid unnecessarily obscuring the embodiments herein. The descriptions herein are provided merely to facilitate understanding of how the exemplary embodiments herein can be practiced, and further to enable those skilled in the art to practice the exemplary embodiments herein. Therefore, this disclosure should not be construed as limiting the scope of the exemplary embodiments herein.

[0025] The embodiments herein disclose methods and systems for managing multipath communication by utilizing the availability of multiple servers. Referring now to the accompanying drawings, more specifically... Figures 2A to 9 Throughout the accompanying drawings, similar reference numerals consistently denote corresponding features, illustrating exemplary embodiments.

[0026] The embodiments herein may be used interchangeably with the terms “multipath communication,” “multipath solution,” “multipath protocol,” “multipath communication link,” etc., to refer to a communication protocol that enables at least one user equipment (UE) to utilize multiple network interfaces in parallel for a stream to a server.

[0027] The embodiments herein may use interchangeably terms such as “stream,” “activity,” “service,” and “session” to refer to an action performed by at least one UE. Examples of actions may include, but are not limited to, downloading data, uploading data, streaming audio and / or video sessions, etc.

[0028] The embodiments herein may use interchangeably the terms “sub-stream” or “sub-stream”, “network interface”, “communication interface”, “radio interface”, etc., to refer to the radio access technology (RAT) used by at least one UE to perform the stream.

[0029] The embodiments herein may use interchangeably the terms “domain,” “domain name,” “Uniform Resource Locator (URL),” “hostname,” etc., to refer to a label that can be assigned to a server and can be used to identify the server in various forms of electronic communication.

[0030] The embodiments herein may use interchangeably the terms "data," "data packet," "data service," etc., to refer to data related to one or more applications. Data may include at least one of media (audio, video, images, etc.), text, files, etc.

[0031] Figure 1A An example MPTCP sub-stream is depicted. As an example of multipath communication, MPTCP communication allows multiple sub-streams between UE 206 and server (e.g., MPTCP server) 202. The MPTCP connection begins with an initial / first sub-stream similar to that of a regular Transmission Control Protocol (TCP) connection. Figure 1A As described, once the first substream is established, additional substreams can be added to the established connection. Data between the UE and the MPTCP server can flow on any active and capable substream.

[0032] For example, considering that UE 206 supports two network interfaces, LTE and Wi-Fi, such as Figure 1A As depicted, each of the two network interfaces is bound to its own Internet Protocol (IP) address, where each of the two network interfaces can have the same IP address if MPTCP server 202 is a single-destination server. In this scenario, MPTCP communication enables the UE to communicate with MPTCP server 202 using both LTE and Wi-Fi interfaces, regardless of the application and corresponding features.

[0033] In some approaches, components such as a path manager (PM) and a scheduler can be used to manage MPTCP communication / multipath communication between UE 206 and MPTCP server 202. The PM manages the establishment of substreams between UE 206 and MPTCP server 202. The scheduler manages the data exchange between UE 206 and MPTCP server 202 within substreams. The scheduler can be modular and operate in different modes:

[0034] Default: In default mode, the scheduler first sends data on the substream with the shortest round-trip time (RTT) until their congestion windows are full. Then, the scheduler begins sending data on the next substream with a higher RTT.

[0035] Round-robin scheduling: In round-robin scheduling mode, the scheduler transmits data in a cyclical manner. However, the scheduler's performance may be reduced in round-robin mode.

[0036] Redundancy: In redundancy mode, the scheduler transmits data on available substreams in a redundant manner.

[0037] Consider as Figure 1B The described example scenario involves multiple servers 202a to 202g in a CDN (Content Delivery Network) located in various geographical locations, and UE 206 supports both LTE and Wi-Fi interfaces. In this scenario, UE 206 can use MP_CAPABLE on Wi-Fi and MP_JOIN on the LTE interface to connect to server 202a among the multiple servers 202a to 202g. However, in these methods, multipath communication / MPTCP communication restricts UE 206 to connecting to / using the same server 202a for data purposes, i.e., the server 202a to which both Wi-Fi and LTE are connected. This increases latency.

[0038] Furthermore, UE 206 may only be able to connect to server 202a among multiple servers 202a to 202g, because Transmission Control Protocol (TCP) sequence number synchronization is required for MPTCP communication / multipath communication. Since different servers are configured on different hardware, synchronization of all servers at Layer 4 may be impossible. However, for redundant Layer 4 operations, each server can access independent nodes (i.e., independent TCP / MPTCP sequencing).

[0039] Consider example scenarios, such as Figure 1C As depicted, the five servers 202a to 202e are located in various geographical locations. However, in these configurations, even if all five servers 202a to 202e are available, MPTCP communication / multipath communication allows the UE 206 to connect to only one of the five servers 202a to 202e, server 202a. Figure 1D As depicted, UE 206 can connect to only one server 202a.

[0040] Therefore, these methods may increase end-to-end latency because UE 206 is restricted to connecting to only one server 202a, regardless of the availability of multiple servers 202a to 202e.

[0041] Figure 2A , 2B 2C describes a communication system 200 according to embodiments disclosed herein. The communication system 200 referred to herein provides a multipath-enabled controlled environment for enabling / deploying multipath communication in at least one user equipment (UE). Examples of multipath communication may be, but are not limited to, multipath transmission control protocol (MPTCP) communication, multipath user datagram protocol (MPUDP) communication, multipath fast UDP Internet connection (MPQUIC) communication, etc. Multipath communication enables at least one UE to use one or more of multiple network interfaces in parallel or one at a time for a single stream to a server. The stream may correspond to an activity performed by at least one UE. Examples of activities may be, but are not limited to, downloading data, uploading data, streaming audio and / or video sessions, etc. Each stream may include multiple sub-streams, where each sub-stream corresponds to each network interface used for that stream. Multipath communication increases network capacity and reliability and provides seamless fault recovery by facilitating multipath operation at the transport layer.

[0042] The communication system 200 includes multiple servers 202a to 202g, a Domain Name System (DNS) server 204, and at least one User Equipment (UE) 206. The multiple servers 202a to 202g, the DNS server 204, and the UE 206 can communicate with each other using one or more network interfaces. Examples of network interfaces may include, but are not limited to, 3GPP, LTE / 4G, LTE-A (LTE-Advanced), Wi-Fi (IEEE 802.11), Evolved UMTS Terrestrial Radio Access (E-UTRA), 5G-based wireless communication systems, 4G-based wireless communication systems, 5G unlicensed, 5G licensed, Wi-Fi Direct, and so on.

[0043] The multiple servers 202a to 202g referred to herein can be configured to enable UE 206 to perform the streaming. The multiple servers 202a to 202g may include at least one of a web server, a content delivery network (CDN), etc. Examples of the multiple servers 202a to 202g may be, but are not limited to, application servers, database / data servers, media servers, web servers, enterprise servers, game servers, etc. In one example, if UE 206 is downloading data (an example of streaming), the multiple servers 202a to 202g may include at least one of a data server, a web server, or any other type of server containing data. In another example, if UE 206 is streaming video (an example of streaming), the multiple servers 202a to 202g may include a media / video server belonging to a video provider or any other type of server.

[0044] Multiple servers 202a through 202g can be associated with a domain name / hostname. A domain name / hostname is a label assigned to each of the multiple servers 202a through 202g, which can be used to identify the multiple servers 202 in various forms of electronic communication. In one example, the multiple servers 202a through 202g can be associated with the same domain. In another example, the multiple servers 202a through 202g can be associated with different domains.

[0045] The DNS server 204 referred to herein may include a database storing the Internet Protocol (IP) addresses of multiple servers 202a to 202g and their associated domains / hostnames. Alternatively, the database may store the proxy addresses of proxy servers. In the case of a proxy model, the DNS server 204 may be configured to receive IP addresses from the proxy client module 404 (see [link to proxy client module]). Figure 4 The DNS server 204 responds to the proxy client module 404 by providing the proxy server's proxy address. Figure 4The query for the proxy client module returned a 404 error (see [link]). Figure 4 The proxy address of the storage proxy server / service proxy.

[0046] DNS server 204 can be configured to provide UE 206 with the IP addresses of multiple servers 202a to 202g corresponding to one or more domains based on requests received from UE 206 for IP addresses associated with one or more domains. The requests for IP addresses sent by UE 206 to DNS server 204 can be defined according to RFC 1034, Domain Names – Concepts and Facilities.

[0047] The UE 206 referred to herein can be a device that uses multipath communication to perform one or more streams with multiple servers 202a to 202g. Examples of UE 206 can be, but are not limited to, mobile phones, smartphones, tablet computers, phablets, personal digital assistants (PDAs), laptop computers, computers, wearable computing devices, vehicle infotainment devices, Internet of Things (IoT) devices, medical devices, processing devices connected to wireless modems, or any other device that supports multipath communication.

[0048] UE 206 supports multiple network interfaces, such as, but not limited to, 3GPP, LTE / 4G, LTE-A, Wi-Fi (IEEE 802.11), Evolved UMTS Terrestrial Radio Access (E-UTRA), 5G-based wireless communication systems, 4G-based wireless communication systems, 5G unlicensed, 5G licensed, Wi-Fi Direct, etc., for using multipath communication to perform one or more flows with multiple servers 202a to 202g.

[0049] UE 206 includes one or more applications that enable UE 206 to perform one or more streams with multiple servers 202a to 202g using multipath communication. Examples of one or more applications may include, but are not limited to, streaming applications, gaming applications, file download applications, voice call applications, media-related applications, autonomous driving-related applications, etc.

[0050] In an embodiment, UE 206 can be configured to operate in an asynchronous redundant multipath mode for managing multipath communication with multiple servers 202a to 202g for one or more flows. The asynchronous redundant multipath mode enables UE 206 to manage multipath communication by utilizing the availability of the multiple servers 202a to 202g.

[0051] UE 206 can enable asynchronous redundant multipath mode based on at least one of the following: global mode / method, socket options, control-driven method, automatic detection method, and neural network method.

[0052] In global mode / method, UE 206 checks the proc filesystem (procfs) including the sysfs variable to enable asynchronous redundancy multipath mode. In the example, if multipath communication includes MPTCP communication, the sysfs variable includes " / proc / sys / net / mptcp / mptcp arm". If the sysfs variable is set to '1' for one or more applications, UE 206 enables asynchronous redundancy multipath mode for the corresponding applications. If the sysfs variable is set to '0' for one or more applications, UE 206 disables asynchronous redundancy multipath mode for the corresponding applications.

[0053] To enable asynchronous redundancy multipath mode, UE 206 checks whether socket options (e.g., setsockopt(fd, SOL TCP, MPTCP ARM ENABLED, &enable, size of(enable)) are enabled / set. If socket options are enabled / set for one or more applications, UE 206 enables asynchronous redundancy multipath mode for the corresponding applications.

[0054] In the control-driven method, UE 206 checks the list of applications whitelisted by the proxy or server 202. UE 206 receives the application list from server 202. UE 206 populates the list of applications that must be allowed or whitelisted. UE 206 adds the application user identifier (UID) of the whitelisted applications to the allowed list. UE 206 may maintain a UID corresponding to each application, which uniquely identifies the corresponding application. UE 206 uses the UID to distinguish applications. Then, UE 206 enables asynchronous redundant multipath mode for the whitelisted applications.

[0055] In the automatic detection method, UE 206 enables asynchronous redundant multipath mode for one or more applications that have characteristics such as, but not limited to, a smaller MSS value compared to the maximum segment size (MSS) of other applications and an interval arrival time closer to the retransmission (RTO) time.

[0056] In the neural network approach, UE 206 trains the neural network to determine the application's behavior based on at least one of the following, but not limited to: global patterns, socket options, control-driven methods, automatic detection methods, etc. UE 206 enables an asynchronous redundant multipath mode for the application based on the determined application behavior. Examples of neural networks can be, but are not limited to, machine learning (ML), convolutional neural networks (CNN), deep neural networks (DNN), recurrent neural networks (RNN), restricted Boltzmann machines (RBM), deep belief networks (DBN), bidirectional recurrent deep neural networks (BRDNN), generative adversarial networks (GAN), deep Q-networks, artificial intelligence (AI) models, regression-based neural networks, etc. The neural network comprises multiple nodes, which can be arranged in layers. Examples of these layers can be, but are not limited to, convolutional layers, activation layers, average pooling layers, max pooling layers, cascaded layers, decoupled layers, fully connected layers, SoftMax layers, etc. The topology of these layers can vary depending on the type of neural network. In the example, the neural network may include an input layer, an output layer, and hidden layers. The input layer receives input (e.g., information related to enabling / disabling an asynchronous redundancy mode based on at least one of global modes, socket options, control-driven methods, automatic detection methods, etc.) and forwards the received input to the hidden layers. The hidden layers transform the input received from the input layers into a representation that can be used to generate output in the output layer. The hidden layers extract useful / low-level features from the input, introduce non-linearity into the network, and reduce the feature dimensionality so that the features are equivariant to scaling and translation. Nodes in these layers can be fully connected to nodes in adjacent layers via edges. Input received at nodes in the input layers can be propagated to nodes in the output layers via activation functions that compute the state of nodes in each consecutive layer of the network based on coefficients / weights associated with each edge connecting the layers.

[0057] The embodiments described here enable UE 206 to be based on dynamic updates and DNS caching 408 (see Figure 4 It manages multipath communication and operates in asynchronous redundant multipath mode.

[0058] To manage multipath communication, UE 206 identifies triggers initiated by one or more applications included in UE 206 to execute one or more flows with servers among multiple servers 202a to 202g. The trigger may indicate the domain used to execute the one or more flows. Upon identifying a trigger initiated by one or more applications, UE 206 sends a request to DNS server 204 for multiple IP addresses corresponding to that domain (indicated by the trigger from one or more applications).

[0059] In response to the sent request, UE 206 receives from DNS server 204 multiple IP addresses of multiple servers 202a to 202g associated with the requested domain. UE 206 stores the received IP addresses of multiple servers 202a to 202g with respect to the domain or one or more applications in DNS cache 408.

[0060] When one or more applications enable UE 206 to perform a flow with server 202 regarding a domain, UE 206 obtains multiple IP addresses of servers 202a to 202g stored in the DNS cache of that domain. For example... Figure 2B As depicted, UE 206 sends data requests in parallel / simultaneously to multiple servers 202a to 202g corresponding to multiple IP addresses (obtained from the DNS cache). In the example, the data request may be a multipath capability (MP_CAPABLE) request, which indicates that UE 206 supports multipath communication.

[0061] In one embodiment, UE 206 sends a data request to multiple servers 202a to 202g by sending a single data request to at least one server indicating multiple IP addresses of multiple servers 202a to 202g. In another embodiment, UE 206 sends a data request to multiple servers 202a to 202g by sending multiple data requests to multiple servers 202a to 202g simultaneously. For example, UE 206 sends a data request to multiple servers 202a to 202g by sending multiple data requests to each of the multiple servers 202a to 202g simultaneously.

[0062] UE 206 can use a single network interface to send data requests (i.e., homogeneous data requests) to multiple servers 202a to 202g simultaneously. Alternatively, UE 206 can use multiple network interfaces to send data requests (i.e., heterogeneous data requests) to multiple servers 202a to 202g simultaneously.

[0063] Based on sending data requests to multiple servers 202a to 202g, UE 206 receives data or data packets from multiple servers 202a to 202g, such as... Figure 2C As depicted, UE 206 may or may not receive data or data packets from all of the multiple servers 202a to 202g that have sent data requests. Data or data packets received from the multiple servers 202a to 202g may be associated with one or more applications. The multiple servers 202a to 202g from which UE 206 receives data packets are available servers. Figure 2CAs described, based on receiving data packets from multiple servers 202a to 202g, UE 206 accepts the first data packet received from server 202a. UE 206 rejects / drops data packets received from other servers 202 (202b to 202g). Thus, UE 206 manages multipath communication with multiple servers 202a to 202g by utilizing the availability of multiple servers 202a to 202g.

[0064] Consider the example scenario where UE 206 recognizes a trigger initiated by an application to resolve example domain A (e.g., www.abc.com), and UE 206 supports network interfaces such as LTE and Wi-Fi. In this scenario, UE 206 sends a request to DNS server 204 for the IP addresses of multiple servers 202 associated with domain A. UE 206 receives five IP addresses from DNS server 204 for the five servers 202 associated with domain A. UE 206 stores the IP addresses of the five servers for domain A and / or the application in DNS cache 408.

[0065] When an application wants to perform a flow about domain A with one or more servers 202, UE 206 obtains the IP addresses of five servers 202 associated with domain A and simultaneously sends data requests to these five servers. In this example, UE 206 can send data requests to the five servers 202 via an LTE network. In another example, UE 206 can send data requests to the five servers 202 via both an LTE network and Wi-Fi. In response to the sent data requests, UE 206 receives data packets from the five servers. In this example, consider that UE 206 accepts the data packet received first from the second of the five servers. UE 206 rejects / drops data packets received from the first, third, fourth, and fifth servers. Therefore, end-to-end latency is reduced.

[0066] The embodiments described here enable UE 206 to manage multipath communication based on those proxy-based addresses, while operating in asynchronous redundant multipath mode.

[0067] UE 206 prefetches a list of proxy addresses from the enabling server for one or more applications. The list of proxy addresses may include IP addresses corresponding to proxy servers supported by multiple servers 202a to 202g. Proxy servers may be nodes or entities that enable multipath communication. The enabling server determines whether a specific UE can be granted access to a proxy server. UE 206 may send a request for the proxy address of a proxy server to the enabling server, and the enabling server may respond to UE 206's request by providing the proxy address of the proxy server. UE 206 stores the received IP addresses.

[0068] When UE 206 wants to perform a stream with multiple servers 202a to 202g using one or more applications, UE 206 obtains a stored proxy address. UE 206 sends a data request to the proxy server corresponding to the received proxy address. This data request can be an MP_CAPABLE request. Based on sending data requests to multiple servers 202a to 202g, UE 206 receives data packets from the proxy servers. The data packets received from the proxy servers can be associated with one or more applications. UE 206 can receive data packets from all proxy servers that sent the data request, or it can choose not to receive them. UE 206 accepts the first data packets received from a proxy server. UE 206 rejects data packets received from other proxy servers.

[0069] The embodiments described here enable UE 206 to use socket 410 to manage multipath communication while operating in asynchronous redundant multipath mode.

[0070] In response to sending a request to DNS server 204 for IP addresses associated with a domain, UE 206 receives from DNS server 204 multiple IP addresses corresponding to multiple servers 202a to 202g of the domain. UE 206 uses socket 410 (see [link to socket]) for one or more applications that want to execute the flow. Figure 4 Select one or more IP addresses from the received multiple IP addresses. Socket 410 (see...) Figure 4 The socket can be a software module within the network node of UE 206, serving as an endpoint for sending and receiving data requests via the network interface. In one embodiment, the socket can be overridden with a new connection system call (armconnect) for one or more applications. An example prototype of the new connection system call (armconnect) can be represented as follows:

[0071] int armconnect(int sockfd, const struct sockaddr[]*addrs, uintaddrcount, socklen t[]addrlen)

[0072] Where "sockfd" represents the file descriptor referenced by the socket, "addrs[]" represents the list of IP addresses, "addrcount" represents the count of the addresses to be connected to, and "addrlen[]" represents the length of each address.

[0073] like Figure 2BAs depicted, UE 206 sends a data request to one or more servers 202 corresponding to one or more selected IP addresses. Based on sending the data request to one or more servers 202, UE 206 receives data / data packets from one or more servers 202, such as... Figure 2C As depicted. Data / data packets received from one or more servers may be associated with one or more applications. Based on the data packets received from one or more servers, UE 206 accepts the first data packet received from server 202. UE 206 rejects data packets received from other servers 202.

[0074] Figure 2A , 2B Figures 2C illustrate exemplary blocks of the communication system 200, but it should be understood that other embodiments are not limited thereto. In other embodiments, the communication system 200 may include fewer or more blocks. Furthermore, the labels or names of the blocks are for illustrative purposes only and do not limit the scope of the embodiments herein. In the communication system 200, one or more blocks may be combined together to perform the same or substantially similar functions.

[0075] Figure 3 This is an example block diagram depicting various components of a UE 206 that manages multipath communication by utilizing the availability of multiple servers 202, according to embodiments disclosed herein.

[0076] UE 206 includes memory 302, communication interface 304, and processing circuitry 306. UE 206 may also include transceiver, signal processing circuitry, input / output modules, display, etc. (not shown).

[0077] Memory 302 may include at least one of the following types of storage media: flash memory, hard disk storage, multimedia card micro storage, card-type memory (e.g., SD or XD memory), random access memory (RAM), static RAM (SRAM), read-only memory (ROM), electrically erasable programmable ROM (EEPROM), programmable ROM (PROM), magnetic storage, magnetic disk, or optical disk. Memory 302 may store at least one of the following: one or more applications, multiple IP addresses of multiple servers 202 corresponding to a domain, data requests, data packets, etc.

[0078] The memory 302 may also store a multipath communication manager 400, which can be executed by the processing circuitry 306 to manage multipath communication with the multiple servers 202 by taking advantage of the availability of the multiple servers 202.

[0079] Memory 302 may also store a neural network that can be trained and processed by processing circuitry 306 to determine the behavior of an application that can be used to enable asynchronous redundant multipath mode. The neural network may include multiple layers. Each layer has multiple weight values ​​and performs layer operations through computation of the previous layer and operations on the multiple weights / coefficients. The neural network can be trained using at least one learning method to determine the behavior of one or more applications. Examples of learning methods may include, but are not limited to, supervised learning, unsupervised learning, semi-supervised learning, reinforcement learning, regression-based learning, etc. Functionality associated with the learning method can be performed via non-volatile memory, volatile memory, and processing circuitry 306. Processing circuitry 306 enables asynchronous redundant multipath mode based on the behavior of one or more applications, which is determined according to predefined operating rules of the neural network stored in non-volatile memory and volatile memory. Here, providing through learning means producing predefined operating rules or AI models of desired characteristics by applying the learning method to a training dataset (e.g., the behavior of one or more applications determined based on global patterns, socket options, control patterns, automatic drive patterns, etc.). The behavior of one or more applications can be determined within the UE 206 itself, which performs learning according to the embodiment, and / or can be implemented by a separate external entity.

[0080] The communication interface 304 can be configured to use one or more network interfaces to enable the UE 206 to communicate with at least one of the DNS server 204, one or more servers 202, etc.

[0081] The processing circuit 306 can be, but is not limited to, at least one of a single processor, multiple processors, multiple homogeneous cores, multiple heterogeneous cores, or multiple central processing units (CPUs) of different types. One or more processors can be general-purpose processors, such as central processing units (CPUs), application processors (APs), graphics-specific processing units, such as graphics processing units (GPUs) and vision processing units (VPUs), and / or artificial intelligence (AI)-specific processors, such as neural processing units (NPUs).

[0082] Processing circuitry 306 can be configured to enable asynchronous redundant multipath mode in UE 206 for managing multipath communication with one or more servers 202. Processing circuitry 306 may use at least one of, but not limited to, global modes / methods, socket options, control methods, automatic driving methods, neural networks, etc., to enable asynchronous redundant multipath mode in UE 206.

[0083] The processing circuitry 306 can also be configured to manage multipath communication with one or more servers 202 by leveraging the availability of multiple servers 202, based on an asynchronous redundant multipath mode. The processing circuitry 306 can execute a multipath communication manager 400 to manage multipath communication with one or more servers 202.

[0084] like Figure 4 As depicted, the multipath communication manager 400 in UE 206 includes an application module 402 coupled with a standard socket application programming interface (API) (at the application layer), a proxy client module 404 (at the application layer), a LIBC module 406 (at the socket layer), a DNS cache / DNS cache module 408 (at the socket layer), a socket / socket module 410 (at the socket layer), an asynchronous redundant multipath manager (ARM) path manager module / scheduler module 412 (at the transport layer), and a meta-socket module 414 (at the transport layer).

[0085] Application module 402 includes one or more applications that can be used by UE 206 to execute streams with one or more servers 202. One or more applications can initiate triggers to resolve one or more domains in order to execute one or more streams with one or more servers 202.

[0086] The proxy client module 404 can be configured to receive and store a list of proxy addresses received from the enabling server.

[0087] LIBC module 406 can be configured to send a request for IP addresses associated with one or more domains to DNS server 204 when one or more applications initiate the resolution of one or more domains. LIBC module 406 can also be configured to receive from DNS server 204 multiple IP addresses of multiple servers 202 corresponding to the requested one or more domains. LIBC module 406 stores the received multiple IP addresses of multiple servers 202 corresponding to one or more domains in DNS cache 408.

[0088] Socket 410 can be configured to select one or more IP addresses from a plurality of IP addresses received by LIBC module 406, and one or more applications can use the one or more IP addresses to make asynchronous connections.

[0089] The ARM path manager / scheduler module 412 can be configured to manage multipath communication with one or more servers 202. The ARM path manager module 412 detects events initiated by various modules such as the application module 402, the proxy client module 404, the LIBC module 406, the DNS cache 408, and the socket 410. In the example here, an event may indicate at least one of the following, but not limited to: a trigger initiated by one or more applications to resolve one or more domains; the proxy client module 404 obtaining a proxy address associated with a proxy address associated with one or more domains; the LIBC module 406 obtaining the IP address of the server 202 associated with one or more domains; the socket 410 selecting multiple IP addresses of multiple servers 202 that one or more applications want to connect to, etc.

[0090] Based on the detected event initiated by the module, the ARM path manager module 412 creates a separate master socket. Master sockets can be created for multiple servers 202 corresponding to multiple IP addresses of the domain the application wants to connect to. Each master socket can be a primary socket, corresponding to the first sub-stream in multipath communication between the UE 206 and the multiple servers 202. Each master socket can include Transmission Control Protocol (TCP) sub-streams and multipath-specific variables. Based on the creation of the master sockets, the ARM path manager module 412 can create additional slave sockets in a kernel module (not shown). These additional slave sockets can correspond to multiple sub-streams.

[0091] Based on the creation of the master socket, the ARM path manager module 412 can receive a request to execute the stream from at least one of the agent client module 404, the LIBC module 406, and the socket 410. The request may include multiple IP addresses corresponding to multiple servers 202 of the domain. Based on the received request, the ARM path manager module 412 can trigger, create, or modify a data request. The data request may include an MP_CAPABLE request. The ARM path manager module 412 sends the data request to the multiple servers 202, each independently corresponding to the received multiple IP addresses, via the meta-socket module 414. In response to the sent data request, the ARM path manager module 412 receives data packets from the multiple servers 202. The ARM path manager module 412 provides the data packets to the meta-socket module 414.

[0092] The meta-socket module 414 can be a socket structure configured to accept data packets initially received from server 202 and process the received data packets for further purposes. The meta-socket module 414 rejects / discards data packets received from other servers 202. The meta-socket module 414 also reorders input data / data packets at the connection level and schedules output data / data packets to substreams. For example, in the case of receiving the same data / data packets from multiple master sockets, the meta-socket module 414 reorders the input data packets and provides the reordered data packets to the application.

[0093] Therefore, end-to-end latency can be reduced by leveraging the availability of multiple servers 202 to manage multipath communication.

[0094] In one embodiment, the delay or round-trip time (RTT) can be calculated as:

[0095]

[0096] Where "TP" represents throughput or bandwidth, and "ρ" represents the probability of packet loss. From the equation above, it can be understood that RTT / latency is inversely proportional to packet loss. If "N" different servers are connected, the expected RTT / latency can be calculated as:

[0097]

[0098] As can be understood from the equations above, the embodiments described here provide reduced latency for any duration during multipath communication between UE 206 and server 202.

[0099] Figure 3 and Figure 4 Exemplary blocks of UE 206 are shown, but it should be understood that other embodiments are not limited thereto. In other embodiments, UE 206 may include fewer or more blocks. Furthermore, the labels or names of blocks are for illustrative purposes only and do not limit the scope of the embodiments herein. One or more blocks may be combined together to perform the same or substantially similar functions in UE 206.

[0100] Figure 5 This is an example sequence diagram illustrating a method for managing multipath communication based on proxy addresses according to embodiments disclosed herein.

[0101] In step 501, UE 206 sends a request to the enabling server to resolve the domain name (i.e., the proxy address / IP address of the receiving domain).

[0102] In step 502, in response to the sent request, UE 206 receives a proxy address list from the enabling server. In this example, the proxy address list may include three proxy / IP addresses: proxy address 1 corresponding to proxy server 1 202a, proxy address 2 corresponding to proxy server 2 202b, and proxy address 3 corresponding to proxy server 3 202c. In step 503, UE 206 stores the proxy address list in the proxy client module 404.

[0103] In step 504, UE 206 identifies a request to access / connect to one or more proxy servers triggered by application 402. In step 505, UE 206 obtains three stored proxy addresses and simultaneously sends data requests to the three proxy servers 202a to 202c corresponding to the obtained three proxy addresses.

[0104] In response to a request to send, UE 206 can receive data / data packets from three proxy servers 202a to 202c. UE 206 accepts the first data packet received from a proxy server. UE 206 discards data packets received from other proxy servers. For example, UE 206 can first receive a data packet containing data (or information) from proxy server 1 202a. UE 206 can then receive data packets containing the same data (or data containing the same information) from proxy servers 2202b and 3 202c. UE 206 can accept the first data packet received from proxy server 1 202a. UE 206 can provide the data included in the data packet to the application. UE 206 can discard data packets received from proxy servers 2202b and 3 202c.

[0105] Figure 6 This is an example sequence diagram illustrating a method for managing multipath communication using DNS caching according to embodiments disclosed herein.

[0106] In step 601, UE 206 identifies the triggering of domain / domain name resolution initiated by application 402. In step 602, UE 206 sends a request to DNS server 204 to resolve the domain (i.e., requests the IP address of server 202 associated with the requested domain). In step 603, DNS server 204 identifies multiple IP addresses of multiple servers 202a to 202c corresponding to the requested domain from its database. DNS server 204 transmits the identified multiple IP addresses of multiple servers 202a to 202c corresponding to the requested domain to UE 206. In this example, DNS server 204 may send three IP addresses of three servers 202a to 202c associated with the requested domain. In step 604, UE 206 stores the received three IP addresses in DNS cache 408.

[0107] In step 605, UE 206 identifies that application 402 is attempting to connect to a server associated with a specific domain of the flow. In step 606, UE 206 obtains three IP addresses for the same domain stored in DNS cache 408. In step 607, UE 206 simultaneously sends a data request to three servers 202a to 202c corresponding to the three obtained IP addresses. In response to the sent request, UE 206 can receive data / data packets from the three servers 202a to 202c. UE 206 accepts the first data packet received from server 202. UE 206 discards data packets received from other servers 202. For example, UE 206 may first receive a data packet containing data (or information) from server 1 202a. UE 206 can then receive data packets containing the same data (or data containing the same information) from servers 2 202b and 3 202c. UE 206 may accept the first data packet received from server 1 202a. UE 206 can provide applications with data included in data packets. UE 206 can discard data packets received from server 2 202b and server 3 202c.

[0108] Figure 7 This is an example flowchart 700 depicting a method for managing multipath communication using sockets, based on the embodiments disclosed herein.

[0109] In step 701, UE 206 uses a socket to select one or more IP addresses from a stored list of IP addresses. The one or more IP addresses may be the IP addresses that the application wants to connect to for that flow.

[0110] In step 702, UE 206 sends a data request to one or more servers 202 corresponding to one or more selected IP addresses. In response to the sent request, UE 206 may receive data / data packets from one or more servers 202. UE 206 accepts the first data packet received from server 202. UE 206 discards data packets received from other servers 202.

[0111] Figure 8 This is an example diagram depicting a method for managing multipath communication according to embodiments disclosed herein.

[0112] The embodiments described here enable UE 206 to send data requests to multiple servers 202 simultaneously to execute the stream, such as Figure 8 What is depicted.

[0113] like Figure 8 As depicted, in step 802, the method includes the UE 206 sending a request to the DNS server 204 for at least one IP address corresponding to a domain. In step 804, the method includes the UE 206 receiving from the DNS server 204 multiple IP addresses corresponding to multiple servers 202 associated with the requested domain.

[0114] In step 806, the method includes the UE 206 simultaneously sending data requests to multiple servers 202 corresponding to multiple received IP addresses. Sending data requests to multiple servers 202 includes sending a data request to each of the multiple servers 202 simultaneously, or sending a data request to at least one server indicating the multiple IP addresses of the multiple servers 202. In another example, sending data requests to multiple servers 202 includes sending multiple data requests to each of the multiple servers 202, or sending a single data request to at least one server indicating the multiple IP addresses of the multiple servers 202. The UE 206 may use a single network interface to send data requests to multiple servers 202. Alternatively, the UE 206 may use multiple network interfaces to send data requests to multiple servers 202. The data request includes an MP_CAPABLE request, which indicates that the UE 206 supports multipath communication.

[0115] The embodiments described here enable UE 206 to receive data packets from multiple servers 202 in response to a sent request, and to manage the received data packets, such as... Figure 8 What is depicted.

[0116] like Figure 8 As depicted, in step 808, the method includes the UE 206, in response to a data request, first receiving a data packet containing data from one of a plurality of servers 202.

[0117] In step 810, the method includes UE 206 accepting a data packet first received from one of the plurality of servers 202. In step 812, the method includes UE 206 rejecting a data packet containing data received from the other servers of the plurality of servers 202. The various actions in methods 800a and 800b can be performed in the order presented, in different orders, or simultaneously. Furthermore, in some embodiments, [the following steps may be omitted]. Figure 8 Some of the actions listed in the document.

[0118] The embodiments described here enable a user equipment (UE) to manage multipath communication with one or more servers in an asynchronous redundant multipath mode. In asynchronous redundant multipath mode, the UE manages multipath communication by utilizing the availability of multiple servers. This provides the UE with ultra-low latency.

[0119] In asynchronous redundant multipath mode, the UE sends data requests (MP_CAPABLE requests) to multiple servers asynchronously. Data requests can be homogeneous (i.e., a single network interface can be used to send a data request to multiple servers). Alternatively, data requests can be heterogeneous (i.e., a data request can be sent to multiple servers using multiple network interfaces).

[0120] The embodiments described here enable the UE to receive data from multiple servers in response to a data request. Data received from one server / in one path can be completely independent of another. Thus, of the data received from multiple servers, the data that was first received is accepted by the UE, while other data is discarded by the UE.

[0121] The embodiments described here enable the UE to asynchronously create multiple sub-streams in multipath communication for a better user experience and network utilization.

[0122] The embodiments described here enable the UE to manage multipath communication in asynchronous redundant multipath mode for the following types of applications:

[0123] Flexible Applications: UEs can include one or more latency-sensitive applications. These applications do not require higher bandwidth but demand the lowest possible latency (e.g., Session Initiation Protocol (SIP) control messages). Consider an example scenario where multiple SIP servers exist in the communication system. In this scenario, the UE can send SIP requests to multiple SIP servers and receive a response from the SIP server with the lowest load.

[0124] Real-time applications: Online gaming applications maintain data delivery in small bytes. However, high latency can significantly impact game performance. Therefore, for online gaming applications, a trade-off between data rate and latency is necessary for a better user experience.

[0125] Autonomous driving applications: Autonomous driving applications require the lowest possible latency. Therefore, the embodiments described here enable the UE to manage multipath communication in asynchronous redundant multipath mode for ultra-reliable low-latency communication (uRLLC) applications.

[0126] The embodiments described here enable the UE to automatically classify applications into one or more types and enable asynchronous redundant multipath mode only for those applications that are sensitive to latency.

[0127] Figure 9 This is an example diagram depicting the application of socket mapping in Transmission Control Protocol 910 and Multipath TCP 920. This disclosure may be application-agnostic (e.g., Figure 9 (As depicted). MP CAPABLE is transmitted independently across various available servers, and data is shared with the META SOCKET layer. The first arriving packets are processed by the META SOCKET, and other packets are discarded. The application is unaware of the lower-layer sockets and can connect to the master socket. In this disclosure, the meta socket and slave socket can be responsible for managing and reassembling data traffic. Thus, the UE can download any application and can initiate / start the application without any modifications.

[0128] The embodiments disclosed herein can be implemented by at least one software program that runs on at least one hardware device and performs network management functions to control the elements. Figure 2A-4 The element shown can be at least one of a hardware device or a combination of a hardware device and a software module.

[0129] The embodiments disclosed herein describe methods and systems for managing multipath communication. Therefore, it should be understood that the scope of protection extends to programs containing program code means, in addition to computer-readable means containing messages, for implementing one or more steps of the method when the program is run on a server, mobile device, or any suitable programmable device. In preferred embodiments, the method is implemented by a software program written in, for example, the Very High Speed ​​Integrated Circuit Hardware Description Language (VHDL) or another programming language, or by one or more VHDL or software modules executed on at least one hardware device, or by both. The hardware device can be any kind of portable device that can be programmed. The device may also include means that can be, for example, a hardware device such as an ASIC, or a combination of hardware and software means such as an ASIC and an FPGA, or at least one microprocessor and at least one memory containing software modules. The method embodiments described herein can be implemented partly in hardware and partly in software. Alternatively, the invention can be implemented on different hardware devices, for example, using multiple CPUs.

[0130] The foregoing description of the specific embodiments will so fully reveal the general nature of the embodiments herein that others, by applying present knowledge, can readily modify and / or adapt such specific embodiments for various applications without departing from the general concept. Therefore, such adjustments and modifications should and are intended to be understood within the meaning and scope of equivalents of the disclosed embodiments. It should be understood that the wording or terminology used herein is for descriptive purposes and not for limitation. Thus, although the embodiments herein have been described with reference to examples, those skilled in the art will recognize that the embodiments herein can be practiced with modifications within the spirit and scope of the embodiments described herein.

Claims

1. A method for managing multipath communication via a user equipment (UE), the method comprising: Retrieve multiple network addresses that correspond to multiple servers associated with a domain; Asynchronous redundant multipath mode is enabled based on application behavior determined using a neural network, which is trained based on at least one of a global mode, socket options, a control-driven method, and an automatic detection method. In the asynchronous redundant multipath mode, the multipath communication is used to simultaneously send data requests to the multiple servers based on the acquired multiple network addresses, wherein the data request includes a multipath capability request instructing the UE to support the multipath communication. Receive a first data packet transmitted from a first server among the plurality of servers in response to the data request, the first data packet being received first in sequence among a plurality of data packets received from the plurality of servers in response to the data request; Receive the first data packet from the first server; and Reject data packets transmitted from each of the plurality of servers other than the first server. The global mode includes checking the proc filesystem, which includes sysfs variables, and enabling the asynchronous redundant multipath mode based on the value of the sysfs variables. Specifically, for applications that enable the socket option, the asynchronous redundant multipath mode is enabled. The control-driven method includes checking a list of applications whitelisted by the agent and enabling the asynchronous redundant multipath mode for the whitelisted applications. The automatic detection method includes enabling the asynchronous redundant multipath mode for applications with the largest segment size and an interval arrival time closer to the retransmission time.

2. The method according to claim 1, wherein, The data request is sent using at least one of the following via a multipath communication link: Multipath Transmission Control Protocol (MPTCP) communication, Multipath User Datagram Protocol (MPUDP) communication, and Multipath Fast UDP Internet Connection (MPQUIC) communication.

3. The method according to claim 1, wherein, The multiple network addresses are obtained in the following ways: Send a request to the address lookup server for multiple network addresses corresponding to the domain; Receive the plurality of network addresses from the address lookup server; as well as Stores multiple network addresses received.

4. The method according to claim 1, wherein, The data request indicates the acquisition of multiple network addresses.

5. A user equipment (UE) for managing multipath communication, comprising: At least one communication interface; At least one memory that stores multiple instructions; and The processing circuitry is configured to execute the plurality of instructions to: Retrieve multiple network addresses that correspond to multiple servers associated with a domain; Asynchronous redundant multipath mode is enabled based on application behavior determined using a neural network, which is trained based on at least one of a global mode, socket options, a control-driven method, and an automatic detection method. In the asynchronous redundant multipath mode, the multipath communication is used to simultaneously send data requests to the multiple servers based on the acquired multiple network addresses, wherein the data request includes a multipath capability request instructing the UE to support the multipath communication. Receive a first data packet transmitted from a first server among the plurality of servers in response to the data request, the first data packet being received first in sequence among a plurality of data packets received from the plurality of servers in response to the data request; Receive the first data packet from the first server; and Reject data packets transmitted from each of the plurality of servers other than the first server. The global mode includes checking the proc filesystem, which includes sysfs variables, and enabling the asynchronous redundant multipath mode based on the value of the sysfs variables. Specifically, for applications that enable the socket option, the asynchronous redundant multipath mode is enabled. The control-driven method includes checking a list of applications whitelisted by the agent and enabling the asynchronous redundant multipath mode for the whitelisted applications. The automatic detection method includes enabling the asynchronous redundant multipath mode for applications with the largest segment size and an interval arrival time closer to the retransmission time.

6. The UE according to claim 5, wherein, The processing circuitry is also configured to send the data request using at least one of the following via a multipath communication link: Multipath Transmission Control Protocol (MPTCP) communication, Multipath User Datagram Protocol (MPUDP) communication, and Multipath Fast UDP Internet Connection (MPQUIC) communication.

7. The UE according to claim 5, wherein, The UE obtains the multiple network addresses in the following ways: The request for multiple network addresses corresponding to the domain is sent to the address lookup server through the at least one communication interface; Receive the plurality of network addresses from the address lookup server; as well as The received network addresses are stored in the at least one memory.

8. The UE according to claim 5, wherein, The data request indicates the acquisition of multiple network addresses.

Citation Information

Patent Citations

  • Optimizing authentication service availability and responsiveness via client-side routing

    US20040123140A1

  • Using DNS to communicate MP-TCP capability of server devices

    US20200396200A1