New DETCP protocol for hybrid VLC system



    Earlier, we have already studied new information storage technologies. In addition to the importance of saving data, you must also be able to transfer them. The development of technology has made it possible to create many methods of information transfer. And, it would seem, already have everything you need, you can just improve. However, scientists would not be true scientists if they did not seek to invent something new. And so we got technology VLC (visible light communication) - data transmission in visible light. This method has both impressive advantages and disappointing disadvantages. Scientists from the University of Science and Technology of China managed to improve the VLC system thanks to the new TCP protocol developed by them. How does the new system work, what are its pros and cons, and does it have a future? We will try to find answers to these and other questions.

    In short: what is VLC?



    VLC (Visible Light Communicatio) is a visible light transmission technology that is part of OWC (Optical wireless communications). It sounds impressive, futuristic, and even somehow unreal. All homes have lamps that illuminate the rooms. This technology allows you to use this light as data transmission channels. To do this, use a certain range of visible light - from 400 to 800 THz. Depending on the type of the lamp, the data transfer rate also changes: the fluorescent lamp - 10 kbit / s, and the LED - up to 500 Mbps. In order to receive data, the device must have a photodiode that captures optical signals. In some cases, it may be enough for a smartphone camera.

    VLC is a very promising technology. Its most obvious use is daily life. Devices with this technology can be in private homes, apartments, public places, etc. However, there are certain disadvantages that slow down the process of popularization of VLC technology. There is a difficult task - to “force” the VLC system to provide a good uplink (Uplink). Why is it difficult? First, mobile devices are limited in terms of energy consumption and cannot be equipped with energy-intensive light sources. Secondly, for the operation of the VLC system a “clearly” directed beam is necessary. Accordingly, mobile devices that we move and rotate all the time cannot fully use VLC technology.


    Approximate graphical representation of the VLC system in everyday life

    Of course, in recent years, various research groups have proposed using radio frequency, infrared and reflexive transceivers to solve the problem of uplink VLC at the physical level. However, due to the asymmetric model, which is used in the construction of VLC systems using the above approaches, new problems arise, this time with the compatibility of upper-level protocols.

    To eliminate all these shortcomings and problems, the researchers had to create a hybrid VLC / Wi-Fi system: a downlink (downlink) VLC and an uplink Wi-Fi (uplink). This allowed the use of standard TCP. Everything works as it should, but still there is a problem - convenience and simplicity, or rather their absence. Such a hybrid system requires additional equipment, complex routing, not to mention the special reprogramming of sockets. All this, of course, will repel the user who wants to use an effective, but easy to use system.

    Detcp

    The search for solutions to all problems, the researchers decided to carry out the protocols of the transport layer. According to scientists, using the standard TCP protocol is inefficient in a hybrid VLC system. They suggest using DETCP (decoupled shared TCP), which divides TCP bidirectional transmission. That is, one TCP stream can use two connections at the same time: the main connection as a downlink and an additional connection - ascending. Thus, DETCP will allow the user to use VLC with some other communication line to form a hybrid bidirectional system without regard to their asymmetry. And additional programming of sockets and complex routing will sink into oblivion.

    To date, most terminals have several interfaces. The Internet Engineering Task Force (IETF / Internet Engineering Council) proposed a modification for the TCP protocol called MPTCP - multipath TCP (multipath TCP) to solve the multiple addressing problem . It allows one connection to transmit packets in several ways at the same time. Researchers of VLC technology decided to apply this modification to their protocol. The result was the MP-DETCP protocol .

    Basics of the DETCP Protocol Idea

    The most common transport layer protocol is TCP, since it allows stable and reliable data transfer. However, there are limitations - all the advantages of TCP will be fully implemented only if the physical connection allows full use of bi-directional data transfer. In the case of VLC, the system can provide only a downlink, leading to a unidirectional network interface. Thus, TCP cannot fully utilize all data transfer capabilities.

    The DETCP protocol was created specifically to solve this problem, that is, to implement data transfer on a hybrid system consisting of two independent connections, be they unidirectional, bidirectional or mixed connections.

    According to the researchers, the most important goals of the DETCP protocol are:

    • The separation of TCP bidirectional transmission into two unidirectional transmissions carried out on two independent physical connections and in accordance with user settings;
    • make the protocol applicable without having to make changes to existing applications that use the standard TCP protocol.



    Socket connection architecture is used by the standard TCP protocol to identify a pair of endpoints for each host. Thus, the connection is bound to a specific physical connection, indicated by a socket. However, in a unidirectional system such as VLC, the existing structure of a TCP connection cannot provide data transfer in each direction between hosts due to the fact that the unidirectional connection cannot form the exchange / transfer circuit data.

    To solve this problem, DETCP uses a different connection architecture than TCP. This system has two physical connections that are responsible for TCP, and are jointly responsible for the transmission.


    DETCP architecture (right) and TCP (left):

    • SIP (source IP address) - source IP address;
    • OSIP (original source IP address) - primary source IP address;
    • CSIP (complementary source IP address) - an additional source IP address;
    • DIP (destination IP address) - destination IP address;
    • ODIP (original destination IP address) - primary destination IP address;
    • CDIP (complementary destination IP address) - Additional destination IP address.


    At the connection level, data transmission is still bidirectional, but at the channel level there are two separate transmissions directed in different directions.

    Connection Identification

    In the standard TCP protocol, each connection is identified by a 4-dimensional tuple (source address, source port, destination address, and destination port). The essence of this control mechanism is that a TCP connection is created on a single connection. And since DETCP is a combination of two connections, a 6-dimensional tuple is needed (primary source address, additional source address, source port, primary destination address, additional destination address, and destination port).

    So that the system corresponds to the second task, which the researchers set for themselves, the structure of the sockets remained unchanged. Therefore, it was necessary to find another way to include an additional address in the protocol stack. Therefore, it was decided to use the kernel configuration file. The user could specify additional addresses in it, which implemented a 6-dimensional tuple with the main standard pair of sockets and additional addresses. In this way, DETCP guaranteed compatibility with application layer protocols.

    Initiating the opening and closing of the connection

    The initiation and opening processes of the connection DETCP and TCP are very similar. Used the mechanism of "handshake" because it is the most effective. However, two important changes were introduced that distinguish DETCP from TCP:

    • Since the local subaddress is unknown to the remote host before the connection is established, and each host requires full address information to perform a split transfer, the TCP parameter was added to inform the remote host about the additional addresses during the initiation of the connection.
    • The separation characteristic is displayed both at the opening initiation stage and at the connection closure stage. The image below shows the tripartite handshake process coordinated by a 6-dimensional tuple.


    A three-way handshake coordinated by a 6-dimensional tuple at the initiation stage of opening a connection.

    Data transfer

    In order to verify the separation process during data transfer, when the next packet is ready to be sent, the current connection direction must be changed. If this direction is from a remote host to a local host, the sending will be via an additional connection.

    In the process of obtaining data, there is a problem that requires solving. If the kernel uses an address retrieved by parsing from the IP header directly on the demultiplexing incoming packets, they may be tied to the wrong DETCP connection.

    For example, the server sends a packet of data to the client through a downlink, and the client sends a response via an uplink. In such a situation, the addresses obtained from the response are the addresses of the uplink, and for the server the connection is associated with the addresses of the downlink. This mismatch leads to errors in packet transmission. In order to avoid such problems, the researchers added the TCP option.

    DETCP protocol operation

    You must first configure the interface. DETCP allows the user to assign a direction for a specific interface (“Out,” “In,” “Two-Way”) through the configuration file. When the interface associated with a socket is installed as a unidirectional interface, the user needs to assign another interface as an additional interface. The combination of all four interfaces defines the entire connection process.


    The DETCP status diagram (on the left is the use of an additional connection for sending packets, on the right - the main connection for sending packets)

    At the end of the previous paragraph it is said about using a certain TCP option. This option is CPT_ADDR, created specifically to ensure the correct data transfer process.

    Each transmitted packet consists of:

    • SYN (client to server) —additional client IP address;
    • SYN / ACK (server to client) - additional server IP address.


    The principle of separation works at all stages of data transfer (initiation of opening a connection, data transfer and initiation of connection closure).


    Initiation of connection opening:

    • SYN (client to server) - the main connection;
    • SYN / ACK (server to client) - additional connection;
    • ACK (client to server) - the main connection.

    Data transfer:

    • Packages from client to server - the main connection;
    • Packages from the server to the client - an additional connection.


    Connection closure:

    • FIN (client to server) - the main connection;
    • ACK (server to client) - additional connection;
    • FIN (server to client) - additional connection;
    • ACK (client to server) - the main connection.


    Experimental testing and evaluation of the results.


    Exterior view of the implementation of the hybrid system.

    To test the DETCP and MP-DETCP protocols, they were implemented in the Linux kernel. The hybrid system consisted of VLC (as downlink, 20 m) and an Ethernet connection (as uplink, 100 m). The bandwidth of all channels connected to the router and the VLC system was set at 100 Mbps.


    DETCP network topology: at the top - additional uplink, at the bottom - downlink VLC.


    MP-DETCP network topology:
    • Compounds A and D - Downlink VLC;
    • Compounds B and E are additional compounds;
    • Connections C and F - Ethernet substream.


    Availability test

    To begin with, it was necessary to check whether DETCP can effectively use the available band in a hybrid system environment. To test the resilience of DETCP to the poor performance of additional connections, the uplink client was configured to lose some data packets. This is a kind of stress test.



    The graph presented above demonstrates the high performance and efficiency of DETCP in a hybrid system. The bandwidth of the channel was used by 95%, with no packet loss detected. When the percentage of packet loss was from 0.5 to 2.0, the channel utilization rate dropped to 92%. However, the work of DETCP continued to be stable and efficient. Only with an increase in the percentage of packet loss to 5, the performance of DETCP began to decline significantly.

    The conclusion of the test is that the use of DETCP is effective in hybrid systems, and the additional compounds, although affecting the overall picture of performance, are extremely insignificant. With further improvement of the system, these negative effects can be reduced to a minimum.

    Factors affecting performance

    To test the system and DETCP, you must first determine what factors will affect their performance. Using these factors, you can see how the performance will change.

    Factor # 1: Packet Loss

    The interface has been configured to randomly lose from 0% to 4% of data packets.



    As can be seen from the graph above, throughput decreases linearly with an increase in the percentage of lost packets. It was also found that with a large packet loss rate, the degree of divergence of readings increases, and the average transfer rate becomes unstable.

    Factor # 2: data transfer delay

    To check the effect of this factor, the delay was set from 0 to 100 ms.



    The graph above shows the relationship between bandwidth and latency. When the latter is less than 20 ms, the bandwidth remains stable, and the band is fully used. If the delay reaches 50 ms, the average throughput is significantly reduced. With a delay of 100 ms, the throughput drops by as much as 35%, and packet transmission becomes unstable.

    Factor # 3: packet reordering

    The final verification factor is packet reordering: some packets will be sent with a delay, and some, so to speak, in a timely manner.



    The diagram above demonstrates the explicit relationship between bandwidth and packet reordering. All tests showed a significant reduction in throughput. However, with an increase in the delay, the decrease was not linear. So with a delay of 10 ms, and the percentage of reordered packets is 5%, the reduction in bandwidth occurs gradually and slightly. However, at 10% or 20%, the indicators simply collapsed.

    The throughput rates at 5% reordered packets with a 10 ms delay approximately correspond to those at 10% and a delay of 5 ms or 20% and a delay of 2 ms.

    As a conclusion, for a stable and efficient system operation, it needs to control both the number of reordered packets and the delay time.

    If the downlink performance of VLC deteriorates in a system where the uplink is represented as a bidirectional connection, either wholesale or Wi-Fi, you should consider returning to using standard unidirectional TCP running on uplink. This can be an effective way to improve system reliability when VLC downlink performance is severely reduced.

    Performance Comparison

    One of the main tasks of multithreading is to increase bandwidth. In this test, the MP-DETCP and DETCP are tested under the same connection conditions. Results are recorded when the data loss coefficient varies from 0% to 4%.



    The diagram above shows that although VLC performance is inferior to DETCP, MP-DETCP still shows a high band utilization rate. When data is transmitted without packet loss, a rate of 115 Mbps is achieved, which confirms the ability of MP-DETCP to provide an efficient and productive connection. With an increase in packet loss rate, the VLC bandwidth is greatly reduced. At this time, the same rate of an Ethernet connection also drops slightly. However, the overall throughput remained at a fairly high level. This means that if the VLC connection is damaged and blocked, the data transfer will be completed via another connection.

    The findings of researchers

    To solve the problem of data transmission in the VLC system, the researchers suggested using the DETCP protocol to separate the bidirectional transmission. Based on this, it can be said that using MP-DETCP will improve the performance of the hybrid VLC system. The DETCP and MP-DETCP protocols very successfully passed tests for performance and reliability, demonstrating the effectiveness of separation of connections.

    The implementation of the new protocols will serve as the basis for further research on network technologies. Including research in the field of hybridization of various physical compounds to obtain systems with a high degree of performance and throughput.

    You can familiarize yourself with the research details with the help of the report on this link

    Epilogue

    Any technology requires "polishing" before it can be called effective. In the case of the new DETCP and MP-DETCP protocols, there is still a lot of work to do. However, the results of the experiments can already be called impressive. The VLC system is now extremely popular among researchers, but not among users. This order of things may change in the coming years. And then a light bulb will not only mean a lack of lighting, but also the Internet.

    Thank you for staying with us. Do you like our articles? Want to see more interesting materials? Support us by placing an order or recommending to your friends, a 30% discount for Habr's users for a unique analogue of the entry-level servers that we invented for you:The whole truth about VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps from $ 20 or how to share the server? (Options are available with RAID1 and RAID10, up to 24 cores and up to 40GB DDR4).

    Dell R730xd 2 times cheaper? Only we have 2 x Intel Dodeca-Core Xeon E5-2650v4 128GB DDR4 6x480GB SSD 1Gbps 100 TV from $ 249 in the Netherlands and the USA! Read about How to build an infrastructure building. class c using servers Dell R730xd E5-2650 v4 worth 9000 euros for a penny?

    Also popular now: