The Transmission Control Protocol (TCP) is one of the main transfer layer protocols. In order to provide reliable delivery of a data stream, a bi-directional path has been assumed. In other words, the two directions have been coupled in a network interface. So it’s nature to design TCP on a bidirectional logical channel. A terminal can send data packets from the logical channel. Meanwhile, acknowledgement of data packets can be received through the same channel. All in all, the traditional TCP and its variants run over a bi-directional network interface.
Nowadays, terminals equipped with multiple network interfaces are becoming commonplace. There are numerous solutions to support concurrent data transfer over multiple interfaces . For example, aggregation skills are implemented at link layer  . Tunneling mechanisms are designed in IP level . In contrast, Multipath TCP can balance a single TCP connection across multiple interfaces at transport layer . Although various ideas introduce different methods for multiple path transfer, a path is assumed as a bi-directional channel.
However, not all emerging communication technologies hold the bidirectional feature. In some circumstance, it is easy to implement a unidirectional channel while bi-directional channel is difficult. For example, visible light communications , massive MIMO millimeter-wave communications, high capacity link from access point to terminal is more practical than the opposite direction. Let’s imagine the possible scenarios in future 5G communication system. There would be traditional 3G/4G bi-directional channel, high rate millimeter-wave downlink channel, short range WiFi bi-directional channel and indoor VLC downlink channel. How to take advantages of all these unidirectional or bidirectional channels? It’s sure that the traditional TCP cannot meet such demand unless link layer aggregating integrate all these interfaces together. In other words, a bidirectional path has to be established. Are there some ways to utilize multiple unidirectional channel at transfer layer? Certainly, TCP decoupling make it possible. The idea behind TCP decoupling lies in that reliable transfer can be realized not only on a bidirectional path, but also on two unidirectional paths with opposite transfer directions.
Decoupling is not a new idea in communication systems. Some related researches can be found in the past literatures. For example, downlink and uplink decoupling at physical layer in cellular network , Decoupling downlink to high frequency band while uplink is limited to low frequency is also under consideration  , decoupling of control and data at link layer . TCP Decoupling is a solution at transport layer. It’s well known that TCP guarantees reliable information transfer through packets switch at two directions. After data packets are transmitted from one node to another, acknowledgements of these packets are transmitted on opposite direction. Decoupling at transport layer means that the path of data packets transfer and the path of acknowledgements transfer can be decoupled.
In other words, TCP decoupling means there are two different unidirectional logical paths between source node and destination node. The end to end path decoupling introduces more flexibility to utilize the communication resources in network, helps overcoming the weakness of asymmetric links, facilitates to aggregate heterogeneous links in network, especially for wireless network. These advantages make it possible to defeat traditional TCP in some scenarios. Potential application scenarios include high rate visible light communication, millimeter-wave communications, deep space communications, etc.
The remainder of this paper is organized as follows. In section II, we emphasize on the difference and relation between link and path, which is important to understand TCP decoupling. Advantages of decoupled TCP are analyzed in section III. The procedure of TCP path decoupling is provided in section IV. In section V, we propose a design of decoupled TCP, experiment and its results are shown also. Open issues and future works are discussed in section VI.
Ii From link decoupling to path decoupling
In telecommunication, a link refers to a set of electronics assemblies, consisting of a transmitter and a receiver (two pieces of data terminal equipment) and the interconnecting data telecommunication circuit. At the same time, A path refers to a set of links, consisting of tandem links. A path can be a single link in the simplest scenario. Commonly, a path includes multiple links which are connected through routers. It is shown in Fig. 1, message flow (A-B) is in the presence of a router (R), while, blue dash flow is effective communication paths, red solid paths are across the actual network links.
There are at least three types of links. The first is simplex communications, most commonly meaning all communications in one direction only. The second is half-duplex communications, meaning communications in both directions, but not both ways simultaneously. The third is duplex communications, communications in both directions simultaneously. But, a path in TCP (Transmission Control Protocol) is usually assumed bidirectional. That is, a path provides data packets transfer in both directions simultaneously.
Ii-a Decoupling of link and path
Ever since the inception of mobile telephony, the downlink and uplink of cellular networks have been coupled, that is, mobile terminals have been constrained to associate with the same base station in both the downlink and uplink directions . New trends in network technologies, emerging novel communication technologies and mobile data usage increase the drawbacks of this constraint. The authors of  suggest to enable link decoupling in 5G (fifth generation) cellular standards. They demonstrate that decoupling can lead to significant gains in network throughput, outage, and power consumption at a much lower cost compared to other solutions that provide comparable or lower gains.
Considering a link is an element in a path, link decoupling introduces the possibility of path decoupling. A path consists of duplex links is shown in Fig. 2 (a), whose two directions are coupled. A path consists of a duplex link and two simplex links is shown in Fig. 2(b), which is called decoupled because the two directions of data transfer are mapped to different paths. A decoupled TCP refers to TCP transfer over decoupled path, similar to scenario in Fig.2(b).
Ii-B What happened after path decoupling
Information transfer from one node to another implies a certain direction. We define this direction as the forward direction (of information transfer), and, the opposite direction is defined as reverse direction. Commonly, message which carries information is sent on the forward direction. If acknowledgement is needed, ACK of this message would be sent on the reverse direction. Under the circumstance of TCP, data packets are sent by source node on the forward direction, at the same time, ACK packets are sent by destination node on the reverse direction. A terminal with single bidirectional network interface distinguishes the two direction by send or receive modules. It is noteworthy that the interface used by TCP provides sending and receiving ability at the same time. The procedure of data packets sending and ACKs receiving is shown in Fig. 3(a). In Fig. 3, the solid line denotes the forward direction, and the dotted line denotes the reverse direction.
Let’s assume that a terminal is equipped with two unidirectional interfaces. The one holds the ability of sending, and the other can only receiving. So the data packets and ACKs would be handled by the two interfaces, respectively, which is shown in Fig. 3(b). Considering that a certain interface is connected to a certain line (or wireless link), a certain interface is mapped to a certain path. Now the forward direction and the reverse direction are mapped to two unidirectional path.
Unfortunately, the topology of a real network is more complex. Each interface of terminals is configured with a default gateway. So a path in a network consists of three parts: the link between source node and the gateway of it, the link between destination node and the gateway of it, the tandem links between two gateways. In most cases, the two parts before are fixed, and, the part between two gateways is not fixed. For example, the possible path between two terminals is shown in Fig. 4, which consists of decoupled and coupled links. The variation is caused by the adjustment of forwarding rules of routers.
Iii The advantages of TCP decoupling
TCP decoupling brings new mechanism to utilize communication resources in forward or reverse directions. Link resources are allocated with coupled manner in traditional TCP. But the resource allocation with decoupled manner provides fine-granularity control. At the same time, unidirectional link can be utilized by decoupled TCP also. This benefits to aggregate heterogeneous links in next generation communication systems. Furthermore, the weakness of link asymmetries may be alleviated if extra unidirectional link is combined to reverse direction of TCP transfer.
Iii-a Decoupling leads to elaborate resource allocation
Let’s begin with a problem of traffic navigation in Fig. 5. In Fig. 5, traffic congestion on a road is indicated by red color, and, green color means smooth traffic.If we drive from A to B, path1 (dot line in Fig. 5) should be chosen. But, when we drive from B to A, path2 (dash dot line in Fig. 5) seems more suitable. That’s the advantage of decoupling!
It’s similar in network topology. Assuming two terminals are equipped with two bidirectional network interfaces, then path 1 and path 2 can be established simultaneously. Obviously, path 1 is suitable for packets transport from A to B. oppositely, path 2 is suitable for packets from B to A. Recalling the transfer procedure of TCP, in which a data packet is sent on one direction and the acknowledgement of it is sent on the opposite direction. Considering the scenario of data transfer for A to B, it seems more attractive to send data packets on path 1 and to send ACK packets on path 2. But, no matter the data packets or the ACK packets, will be sent on the same path in TCP (and all its variants). Why? It is because a bidirectional network interface is mapped to a certain bidirectional path. Although the intermediate nodes such as routers may change the transfer path of packets, it’s impossible for terminals in end point. In another word, the terminals with a default gateway cannot choose different paths for data packets and ACK packets because the next hop of it can only be the default gateway.
Iii-B Decoupling facilitates to aggregate heterogeneous links
Aggregating of heterogeneous links is a challenging task. For example, there are various mechanisms proposed in mobile communication networks. In order to facilitate inter-working of LTE and WLAN, scenarios are discussed in 3GPP TR 22.934 
. New network elements such as ePDG (Evolved Packet Data Gateway), ANDSF (Access network discovery and selection function), TWAG/TWAP (Trusted WLAN Access Gateway/Proxy) are introduced. Furthermore, LWA (LTE-WLAN aggregation), introduced in 3GPP Release 13, is another area where protocols will be enhanced in Release 14. Release 13 supports LTE-WLAN aggregation for the DL. 3GPP Release 14 allows aggregation for the UL as well. Additional information collection and feedback (e.g., better estimation of available WLAN capacity) as well as automatic neighbor relation procedures are to be introduced to improve performance.
In fact, wireless links are half duplex in nature. The downlink and uplink directions are supported at link layer to meet the requirements of upper layer protocols. At the same time, decoupling is not a new idea in mobile communication systems. The inherent absence of duplexing for wireless links brings difficulties in deployment. Ever since the inception of mobile telephony, the downlink and uplink of cellular networks have been coupled, that is, mobile terminals have been constrained to associate with the same base station in both the downlink and uplink directions . Due to the advantages provided by link decoupling, more and more attention are paid to downlink/uplink decoupling mechanisms. For example, decoupling of control link and data link to different frequency bands is proposed in Phantom Cell . Decoupling downlink to high frequency band while uplink is limited to low frequency is also under consideration  .
With the development of different access wireless technologies, heterogeneous links should be taken into account. From the view of access network, downlink and uplink stand for two categories of resource. Some links are easy to deploy in downlink direction, meanwhile, deployment in the opposite direction is very hard. Typical examples include high rate millimeter-wave for access, high rate VLC channel in indoor scenarios, and satellite channel in space communications. Aggregating such variety links at link layer is still challenging. Although the aggregating skills at network layer show enough flexibilities, these schemes need to change network elements, which introduce high cost and low compatibility. From the view of compatibility, end to end aggregating at transport layer seems most attractive.
Iii-C Decoupling helps overcoming the weakness of asymmetric links
The coupled design of downlink and uplink brings the weakness of asymmetric. Asymmetries of links impact the performance of transfer protocol . A typical problem of TCP cause by link asymmetries is data packets transfer rate is limited by the ACK packet transfer rate in opposite direction. Many variants of TCP is proposed to alleviate the drawback cause by ACK. There are selective ACK, block ACK, ACK compression, etc. Another problem is data pendulum, a phenomenon happening when two antiparallel TCP connections share an asymmetric bottleneck link. In these conditions, data and ACK segments alternatively fill only one of the bottleneck link buffer at a time, but almost never both of them. Various solutions have been proposed to handle it . Fortunately, most terminals are now equipped with multiple network interfaces. With the concept of TCP decoupling, data packets and ACK packets can be transferred on two different interfaces. This will change the link asymmetries. If multiple paths can be combined, the weakness of asymmetries may be alleviated to some extent.
Iv How to decouple the two directions of TCP
In traditional networks, interfaces of network nodes are configured as duplex. A bidirectional link can be established between interfaces of source node and destination nodes. Consequently, a TCP connection can be established over concatenated bidirectional links. With coupled design of links on two directions, the two directions of TCP path are coupled also. In fact, a unidirectional interface is easier to design with lower cost in some circumstances. Today, most smart terminals are equipped with multiple interfaces, which are bidirectional or unidirectional. It is possible to create unidirectional or bidirectional links over such interfaces. A path consists of few concatenated links may be unidirectional or bidirectional. In this section, the intrinsic relations between interface, link, path and IP address are discussed in details. Then the principle of TCP decoupling is described through variety scenarios with unidirectional paths.
Iv-a Duplex interface and simplex interface
A terminal connected to network should be equipped at least one network interface. A network interface card (NIC) is a circuit module that is integrated or packaged in the terminal. Traditionally, an interface is duplex, which can send packets and received packets simultaneous or unsimultaneous. Even more, most terminals have only on interface in the past decades. And then, transport layer protocols assume that the link established on a single duplex interface. It’s worth noting that not all interfaces are duplex. For example, the communication interface of a GPS receiver is simplex, which can only receiving. Considering high power electromagnetic radiation is hazardous to human, some communication technologies is not suitable to handled mobile terminals. Although many emerging technologies such as visible light communications, millimeter-wave communications, and ultraviolet communications introduce high rate, emitting at such frequencies on a handled terminal brings risk of health. A more safe and feasible method to utilize these communication technologies on handled terminals is to integrate a simplex interface which can only receiving.
Iv-B Unidirectional or bidirectional links
A link between two interfaces offers the connection between two nodes. A link is bidirectional if the two connected interfaces are duplex. However, a unidirectional link consists of two simplex interfaces, a sending only interface and a receiving only interface. A simplest path consist of only single link between two network nodes. In scenario in Fig. 6(a), the path is established on a bidirectional link over two bidirectional interfaces of source node and destination node. In contrast, the path in Fig. 6(b), is established on two unidirectional link because all the interfaces are unidirectional.
Iv-C Path over unidirectional or bidirectional links
Actually, path between the source node and the destination node can be more variety. Let’s begin with three possible scenarios. The first, in Fig. 7(a), the source node connected to core network through a intermedia node (default gateway of its subnet), meanwhile, the destination nodes is similar. All interfaces on each node are duplex. The second, if the source node is configured with two unidirectional interfaces, two possible unidirectional links are shown in Fig. 7(b). There are slight differences at the destination node. It lies in that the next hop of the destination node is configured with two unidirectional interfaces too. The third, all intermediate nodes in the network are configured with unidirectional interface only in Fig. 7(c).
Iv-D IP addresses configuration of duplex/simplex interfaces
Each interface is bound with a MAC address at link layer. A MAC address is mapped to a certain IP address by ARP protocol. When a node (source) wants to send data to another node (destination), we need to decide source IP address and destination IP address. The source IP address indicates which interface should be used to send or receive packets. Traditional terminal holds only one active network interface which is bidirectional. So there are only one source IP address and one destination IP address, as shown in Fig. 8 (a).
Refer to a terminal with two simplex (unidirectional) interfaces, two addresses are needed. For convenience, we denote the IP address of sending interface at source node as ’original source IP address’, the IP address of receiving interface at source node as ’complementary source IP address’. Meanwhile, we denote the IP address of receiving interface at destination node as ’original destination IP address’, the IP address of sending interface at destination node as ’complementary destination IP address’. These four IP addresses at source node and destination node are shown in Fig. 8 (b). Two unidirectional paths are established, they are from original source IP address to original destination IP address, from complementary destination IP address to complementary source IP address. Use case shown in Fig. 8 (c) can be seen as the degradation of Fig. 8 (b). In this scenario, one of the nodes is configured with two unidirectional interfaces, and, the other is configured with bidirectional interface. There are two unidirectional paths, from original source IP address to destination IP address, from destination IP address to complementary source IP address.
V Implementation of decoupled TCP
In standard TCP protocol, each connection is identified by a four-tuple including source address, source port, destination address, and destination port. The premise behind this control mechanism is that TCP connection is created on a bidirectional logical path. Now that decoupled TCP needs cooperation of two unidirectional paths, a six-tuple (original source address, complementary source address, source port, original destination address, complementary destination address, destination port) is necessary to specify a decoupled TCP connection. Packet transmission of decoupled TCP connection will be indicated by the six-tuple. To satisfy the second goal, the structure of socket remains unchanged, we look for other solutions to pass the complementary address into protocol stack. Kernel configuration file is an obvious and effective way to realize the above function. In the design of our decoupled TCP, users can set the complementary address with configuration file, so that the complete six-tuple is created with the original standard sockets pair and complementary addresses. In this way, decoupled TCP guarantees the compatibility with application layer.
V-a Connection Initiation and Close
The process of initiating and closing of decoupled TCP connection is quite similar to the normal TCP’s. As a maturity and effective method, the handshake mechanism  is remained, but there are two main changes between decoupled TCP and standard TCP in the initiating and closing stage: Because local complementary address is unknown to the remote host before connection establishment, and the complete address information is necessary for each host to execute decoupled transmission, we add a TCP option to inform remote host about complementary address in connection initiation process. The trait of decoupling shows up in both connection initiation stage and connection close stage. It particularly reflects on transmission interface handover according to the interface’s transmission direction set before. For example, Fig. 9 shows the three-way handshake initiation process directed by the six-tuple. Fig. 10 shows the four-way handshake termination process of decoupled TCP.
V-B Data Transfer
In order to ensure the decoupling in data transfer process, when the next packet (data or ACK) is ready to be sent, the current interface’s direction must be checked. If it’s direction is from remote host to local host, the sending work will be accomplished on its complementary link. The procedure is shown in Fig. 11.
In the process of data reception, there is yet another significant problem to be addressed. If kernel uses address parsed from IP header directly to demultiplex arriving packets, the packets may be bound to wrong unidirectional connection. For example, server sends data packet to client with downlink, and the client will echo back ACK with uplink. In this situation, addresses parsed from ACK packet is uplink’s address pair, but for server, connection is bound to downlink’s addresses, and this mismatching leads to misoperation to incoming packet. We add a new TCP option to handle this problem.
V-C States of decoupled TCP
The state diagram of decoupled TCP is shown in Fig. 12. The left half is server’s overall process, and the part of client is shown in the right half of the figure. We annotate decoupled TCP’s major changes on the figure: In the stage of connection initiation, apart from conventional decoupling to transmission, several settings and options help connection to establish correctly; after laying the groundwork, packets will be transferred on appropriate link according to their direction.
V-D Availability Testing
We have implemented a decoupled TCP in Linux kernel. An experiment over VLC hybrid network has been carried out. The decoupled TCP is tested on combinations of VLC downlink and Ethernet uplink. Performance under different packet loss rates have been analyzed also. The results show that the decoupled TCP achieves highly stable and efficient transmission in VLC hybrid system without packet loss. In this scenario, the utilization ratio of the bandwidth reaches 95%. When there are packet losses, the throughput remains stable with packet loss ratios of 0.5%, 1.0% or 2.0% and the utilization ratio of the bandwidth can still reach over 92%. Only when the packet loss ratio reaches over 5%, the performance degrades obviously.
Vi Open Issues
Idea of aggregating is boosting variety skills to utilize multiple communication resources simultaneously. Although many researchers pay their attention to aggregate at link layer  , decoupling of TCP provides a novel method to aggregate bidirectional or unidirectional interfaces at transport layer. Our experiment has proved the availability of decoupled TCP. How to improve the performance of it under heterogeneous networks needs further study.
Today, most smart terminals are equipped with multiple interfaces. To address multi-homing problem, IETF proposed MPTCP  which allows a single connection to transmit packets on multiple paths simultaneously. Some research has shown that MPTCP benefits to aggregate WiFi and 4G . How to combine the idea of decoupling and multipath at transport layer needs further discussion.
-  M. Li, A. Lukyanenko, Z. Ou, A. Y, S. Tarkoma, M. Coudron, and S. Secci, “Multipath transmission for the internet: A survey,” IEEE Communications Survey and Tutorials, vol. 18, no. 4, pp. 2887 – 2925, 2016.
-  M. A. Lema, E. Pardo, O. Galinina, S. Andreev, and M. Dohler, “Flexible dual-connectivity spectrum aggregation for decoupled uplink and downlink access in 5g heterogeneous systems,” IEEE Journal on Selected Areas in Communications, vol. 34, no. 11, pp. 2851–2865, 2016.
-  M. Polese, M. Giordani, M. Mezzavilla, S. Rangan, and M. Zorzi, “Improved handover through dual connectivity in 5g mmwave mobile networks,” IEEE Journal on Selected Areas in Communications, vol. 35, no. 9, pp. 2069–2084, 2017.
-  A. Ford, C. Raiciu, M. Handley, and O. Bonaventure, “Tcp extensions for multipath operation with multiple addresses,” Report 2070-1721, 2013.
-  L. Feng, R. Q. Hu, J. Wang, P. Xu, and Y. Qian, “Applying vlc in 5g networks: Architectures and key technologies,” IEEE Network, 2016.
-  F. Boccardi, J. Andrews, H. Elshaer, M. Dohler, S. Parkvall, P. Popovski, and S. Singh, “Why to decouple the uplink and downlink in cellular networks and how to do it,” IEEE Communications Magazine, vol. 54, no. 3, pp. 110–117, 2016.
-  D. Liu, L. Wang, Y. Chen, M. Elkashlan, K. K. Wong, R. Schober, and L. Hanzo, “User association in 5g networks: A survey and an outlook,” IEEE Communications Surveys and Tutorials, vol. 18, no. 2, pp. 1018–1044, 2016.
-  Y. Kishiyama, A. Benjebbour, T. Nakamura, and H. Ishii, “Future steps of lte-a: evolution toward integration of local area and wide area systems,” IEEE Wireless Communications, vol. 20, no. 1, pp. 12–18, 2013.
-  T. 22.934, “Feasibility study on 3gpp system to wireless local area network (wlan) interworking (release 13),” 3GPP, 2015.
-  H. Balakrishnan and V. N. Padmanabhan, “How network asymmetry affects tcp,” IEEE Communications Magazine, 2001.
-  T. Braud, M. Heusse, and A. Duda, “Dynamics of two antiparallel tcp connections on an asymmetric link,” in 2016 IEEE International Conference on Communications (ICC), pp. 1–6.
-  C. A. Sunshine and Y. K. Datal, “Connection management in transport protocols,” Computer Networks (1976), vol. 2, no. 6, pp. 454–473, 1978.
-  C. Paasch, G. Detal, F. Duchene, C. Raiciu, and O. Bonaventure, “Exploring mobile/wifi handover with multipath tcp,” in Proceedings of the 2012 ACM SIGCOMM workshop on Cellular networks: operations, challenges, and future design, pp. 31–36, ACM.