The present disclosure relates to computer networking and particularly to application-level multi-path transport mechanism.
Today's Internet is full of various types of hosts (e.g. smartphones, PCs, routers, data center servers) equipped with multiple wireless and/or wired network interfaces, making it possible to establish multiple communication paths between two communication endpoints. However, a vast majority of Internet applications is based on TCP (Transport Control Protocol) and UDP (User Datagram Protocol). Designed several decades ago, TCP and UDP applications perform data transport over a single communication path between two endpoints for a given session. In recent years, there has been an effort to extend the regular TCP protocol to use multiple paths for data transport, giving rise to a new IETF standard called Multi-Path TCP (MPTCP) that is an extension of the TCP protocol. Despite being the most promising effort to date for a new mechanism to provide multi-path data transport, the adoption of MPTCP has been painfully slow, largely because it requires support not only from the operating systems on both endpoints, but also from the middleboxes along all the multiple paths between the endpoints. Therefore, developing an application-level multi-path transport mechanism, which not only does not require upgrades of the operating systems at both communication endpoints but also is middlebox-friendly, has become valuable. The present disclosure shows such a mechanism that is easy to deploy where regular TCP or UDP applications are supported.
The current wave of the Internet of Things (IoT) technology calls for many physical devices and objects to be communicatively connected. However, the internet infrastructure has limited resources and faces many challenges in keeping up with growing demands for connectivity. On the other hand, the concept of shared economy is gaining ground because it allows limited resources to be better allocated to people or “things” that need them. Network interfaces are such a type of resources that can be leveraged to provide robust connectivity and boosted bandwidth, which are required by mission critical commercial and consumer applications (e.g. drone delivery, healthcare, media and entertainment) to stay connected all the time or to provide a better user experience.
Many internet applications are designed to use only one network interface for connectivity, thus not taking advantage of all of the available network interfaces that reside on the devices. Those applications that do utilize multiple network interfaces equipped on a device rely on mechanisms that have limitations: (1) some of them rely on MPTCP (Multi-Path Transport Control Protocol), which requires support from the underlying operating system and support in all of the middleboxes along the path; (2) some of them rely on mechanisms such as Virtual Private Network (VPN) or proxy, which either are prohibited by some organizations or countries due to security concerns, or incur additional performance overheads; and (3) some of them map a data session to a given path only in its entirety, contrary to inverse multiplexing, which gives rise to the ability for a data session to ride across multiple paths. As the ability to support inverse multiplexing is key to achieve improved throughput/bandwidth, enhanced load-balancing and reliability, robust connectivity, etc., it has become a major challenge to determine how to leverage multiple equipped network interfaces simultaneously without requiring a rigorous deployment option or other security- or policy-prohibitive techniques.
The present disclosure describes an application-level mechanism for multi-path data transport to circumvent the deployment challenges facing MPTCP (RFC 6824) while offering more flexibility and functionalities than MPTCP.
The MPTP functions are exposed as a set of APIs (Application Programming Interfaces) 16 that can be packaged as a library for distribution. Developers can use these APIs to write MPTP-compliant applications. These APIs 16 are used in the same way other APIs are used to take advantage of MPTP functions. Since MPTP can be implemented in any programming language, it can be made available on, or easily portable to, any platform without needing any operating system upgrade or incurring middlebox complications. Cross-platform interoperability is inherently supported.
Referring to
APIs 16 to implement the multi-path transport service. MPTP functions are exposed to the upper layer in the form of MPTP APIs 16. MPTP APIs 16 hide all the multi-path transport implementation details from the application. MPTP is implemented on top of TCP or UDP. This choice is closely related to the policy set by the application based on the goal it wants to achieve. Supported policies include boosting throughput and bandwidth, maximizing reliability, guaranteeing in-sequence delivery, maintaining connectivity (i.e., failover capability), maximizing data security, and hybrid policies. The MPTP APIs 16 let applications specify “what” they want to do and the API implementation 18 handles “how” to do it. The MPTP APIs 16 perform the functions of path management (create a path, destroy a path, join a connection, leave a connection, etc.), connection management (create a connection and teardown a connection), data transmission (send data and receive data), and miscellaneous APIs (set policy).
A communication path can be direct or indirect in terms of Layer 4 connectivity, as shown in
As shown in
It should be noted that a peer-to-peer application can use MPTP API in a way that each peer acts as both an MPTP client and an MPTP server.
Potential applications for MPTP include:
Mobile or desktop applications that provide boosted bandwidths using multiple network connections enabled by its own equipped network interfaces or by wirelessly connected nearby devices.
Gateway or router products that support cellular (GSM, CDMA, LTE), wireless (Wi-Fi, Wi-Fi Direct, Bluetooth, Zigbee, Z-Wave), and wireline (DSL, Cable, Fiber, Ethernet) connections.
Finer-grained load-balancer (software and hardware based).
Applications running on data center servers (including virtual machines) that support reliability, redundancy, fault-tolerance, and failover capabilities.
Device-to-Device (D2D) based fog computing and resource sharing.
Bandwidth hungry applications such as live streaming video, video surveillance, Augmented Reality and Virtual Reality (ARVR), etc.
Transaction-oriented data transmission.
The features of the present invention which are believed to be novel are set forth below with particularity in the appended claims. However, modifications, variations, and changes to the exemplary embodiments described above will be apparent to those skilled in the art, and the Application-Level Multi-Path Transport Protocol (MPTP) mechanism described herein thus encompasses such modifications, variations, and changes and are not limited to the specific embodiments described herein.
This patent applications claims the benefit of U.S. Provisional Patent Application Ser. No. 62/515,518 filed on Jun. 5, 2017.
Number | Date | Country | |
---|---|---|---|
62515518 | Jun 2017 | US |