Methods and systems for managing multipath communication
A method managing multipath communication 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 server 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 order among 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 server of the plurality of servers other than the first server.
1 . A method for managing multipath communication by a user equipment (UE), the method comprising:
using an output of a neural network to determine whether to enable an asynchronous redundant multipath mode, wherein the asynchronous redundant multipath mode is a mode that transmits redundant data asynchronously to a plurality of servers, and wherein the neural network is trained to generate an output indicating whether to enable the asynchronous redundant multipath mode based on an input comprising at least one of a file system variable, a socket option, an allowed list of applications, or a maximum segment size of an application, and
based on determining the asynchronous redundant multipath mode is to be enabled:
acquiring a plurality of network addresses respectively corresponding to a plurality of servers associated with a domain;
enabling the asynchronous redundant multipath mode;
creating a plurality of independent master sockets corresponding to the plurality of servers associated with the domain, wherein each of the master sockets includes a transport control protocol (TCP) subflow and multipath specific variables;
based on creating the master sockets, independently and asynchronously sending a data request to the plurality of servers associated with the domain based on the acquired plurality of network addresses in the asynchronous redundant multipath mode, wherein the data request includes a multipath capable (MP_CAPABLE) request, and wherein the multipath capable request indicates the UE supports multipath communication;
receiving a first data packet transmitted from a server of the plurality of servers associated with the domain in response to the data request, the first data packet being received first in order among a plurality of data packets transmitted from the plurality of servers associated with the domain in response to the data request;
accepting the first data packet; and
rejecting data packets, from among the plurality of data packets, transmitted from each server of the plurality of servers associated with the domain other than the server that transmitted the first data packet.
2 . The method of claim 1 , wherein the sending the data request comprises sending the data request over a multipath communication link using at least one of Multipath Transmission Control Protocol (MPTCP) communication, Multipath User Datagram Protocol (MPUDP) communication, and Multipath Quick UDP Internet Connections (MPQUIC) communication.
3 . The method of claim 1 , wherein the acquiring the plurality of network addresses comprises:
sending a request to an address lookup server for at least one network address corresponding to the domain;
receiving the plurality of network addresses from the address lookup server; and
storing the received plurality of network addresses.
4 . The method of claim 1 , wherein the sending the data request comprises sending the data request to each of the plurality of servers associated with the domain substantially simultaneously.
5 . The method of claim 1 , wherein the sending the data request comprises sending the data request to at least one server of the plurality of servers associated with the domain, wherein the data request indicates the acquired plurality of network addresses.
6 . The method of claim 1 , wherein the sending the data request comprises:
selecting at least one network address from the acquired plurality of network addresses using a socket, the at least one network address corresponding to at least one server of the plurality of servers associated with the domain;
preparing the data request to be sent to the at least one server using the socket; and
sending the data request to the at least one server.
7 . A user equipment (UE) for managing multipath communication comprising:
at least one communication interface;
at least one memory storing one or more instructions; and
processing circuitry configured to execute the plurality of instructions to:
use an output of a neural network to determine whether to enable an asynchronous redundant multipath mode, wherein the asynchronous redundant multipath mode is a mode that transmits redundant data asynchronously to a plurality of servers, and wherein the neural network is trained to generate an output indicating whether to enable the asynchronous redundant multipath mode based on an input comprising at least one of a file system variable, a socket option, an allowed list of applications, or a maximum segment size of an application, and
based on determining the asynchronous redundant multipath mode is to be enabled:
acquire a plurality of network addresses respectively corresponding to a plurality of servers associated with a domain,
enable the asynchronous redundant multipath mode,
create a plurality of independent master sockets corresponding to the plurality of servers associated with the domain, wherein each of the master sockets includes a transport control protocol (TCP) subflow and multipath specific variables,
based on creating the master sockets, independently and asynchronously send, through the at least one communication interface, a data request to the plurality of servers associated with the domain based on the acquired plurality of network addresses in the asynchronous redundant multipath mode, wherein the data request includes a multipath capable (MP_CAPABLE) request, and wherein the multipath capable request indicates the UE supports multipath communication,
receive a first data packet transmitted from a server of the plurality of servers associated with the domain in response to the data request, the first data packet being received first in order among a plurality of data packets transmitted from the plurality of servers associated with the domain in response to the data request,
accept the first data packet, and
reject data packets, from among the plurality of data packets, transmitted from each server of the plurality of servers associated with the domain other than the server that transmitted the first data packet.
8 . The UE of claim 7 , wherein the processing circuitry is further configured to execute the one or more instructions to send the data request over a multipath communication link using at least one of Multipath Transmission Control Protocol (MPTCP) communication, Multipath User Datagram Protocol (MPUDP) communication, and Multipath Quick UDP Internet Connections (MPQUIC) communication.
9 . The UE of claim 7 , wherein the processing circuitry is further configured to execute the one or more instructions to cause the UE to acquire the plurality of network addresses by:
sending, through the at least one communication interface, a request to an address lookup server for at least one network address corresponding to the domain;
receiving the plurality of network addresses from the address lookup server; and
storing the received plurality of network addresses in the at least one memory.
10 . The UE of claim 7 , wherein the processing circuitry is further configured to execute the one or more instructions to send the data request to each of the plurality of servers associated with the domain substantially simultaneously.
11 . The UE of claim 7 , wherein the processing circuitry is further configured to execute the one or more instructions to send the data request to at least one server of the plurality of servers associated with the domain, wherein the data request indicates the acquired plurality of network addresses.
12 . A non-transitory computer-readable recording medium having instructions stored therein, which when executed by at least one processor of a user equipment (UE), cause the at least one processor to execute a method of managing multipath communication by the UE, the method comprising:
using an output of a neural network to determine whether to enable an asynchronous redundant multipath mode, wherein the asynchronous redundant multipath mode is a mode that transmits redundant data asynchronously to a plurality of servers, and wherein the neural network is trained to generate an output indicating whether to enable the asynchronous redundant multipath mode based on an input comprising at least one of a file system variable, a socket option, an allowed list of applications, or a maximum segment size of an application, and
based on determining the asynchronous redundant multipath mode is to be enabled:
acquiring a plurality of network addresses respectively corresponding to a plurality of servers associated with a domain;
enabling the asynchronous redundant multipath mode;
creating a plurality of independent master sockets corresponding to the plurality of servers associated with the domain, wherein each of the master sockets includes a transport control protocol (TCP) subflow and multipath specific variables;
based on creating the master sockets, independently and asynchronously sending, by the UE, a data request to the plurality of servers associated with the domain based on the acquired plurality of network addresses in the asynchronous redundant multipath mode, wherein the data request includes a multipath capable (MP_CAPABLE) request, and wherein the multipath capable request indicates the UE supports multipath communication;
receiving a first data packet transmitted from a server of the plurality of servers associated with the domain in response to the data request, the first data packet being received first in order among a plurality of data packets transmitted from the plurality of servers associated with the domain in response to the data request;
accepting the first data packet; and
rejecting data packets, from among the plurality of data packets, transmitted from each server of the plurality of servers associated with the domain other than the server that transmitted the first data packet.
13 . The non-transitory computer-readable recording medium of claim 12 , wherein the sending the data request comprises sending the data request over a multipath communication link using at least one of Multipath Transmission Control Protocol (MPTCP) communication, Multipath User Datagram Protocol (MPUDP) communication, and Multipath Quick UDP Internet Connections (MPQUIC) communication.
14 . The non-transitory computer-readable recording medium of claim 12 , wherein the sending the data request comprises sending the data request to each of the plurality of servers associated with the domain substantially simultaneously.
15 . The non-transitory computer-readable recording medium of claim 12 , wherein the sending the data request comprises sending the data request to at least one server of the plurality of servers associated with the domain, wherein the data request indicates the acquired plurality of network addresses.
16 . The non-transitory computer-readable recording medium of claim 12 , wherein the sending the data request comprises:
selecting at least one network address from the acquired plurality of network addresses using a socket, the at least one network address corresponding to at least one server of the plurality of servers associated with the domain;
preparing the data request to be sent to the at least one server using the socket; and
sending the data request to the at least one server.
17 . The method according to claim 1 , wherein the sending the data request comprises asynchronously sending the multipath capable (MP_CAPABLE) request to the plurality of servers associated with the domain in the asynchronous redundant multipath mode, based on the acquired plurality of network addresses.
18 . The method according to claim 1 , wherein the neural network is trained based on the file system variable, the socket option, the allowed list of applications, and the maximum segment size of an application.