# Communication Transport Protocol Strategies for Rail Applications
## 1 Introduction
This is not the case required by the rail operators and it is not manageable by them, as they need technology redundancy rather than path redundancy over the same physical interface. Moreover, MPTCP also incurs performance degradation when the number of lost packets increases (i.e., the well-known problem of Transport Control Protocol, TCP) [6], instead of using a dedicated tunnel manager as proposed in this work. Other works tried to solve the rail application connectivity by efficiently characterizing the radio channels in railway environments, as in [7]. In [8], some experimentations have been presented supporting the use of cellular systems for providing rail applications in train-to-network communication. Differently from these works, we propose to overcome the necessity of dedicated radio network deployment or using public networks to provide connectivity for rail applications by managing connections at the IP level and trying to take advantage of the available radio bearers along the rail line, thus selecting the most appropriate and suitable bearer(s) based on the application requirements. One of the contributions of this work is the analysis of user and system requirements related to the ACS designed to meet the growing needs of railway operators interested in communication for different types of critical services, where one of the most important aspects is noise resilience and the ability to manage redundancy provided by multiple bearers. The connectivity requirements particular to the ACS model have been translated into the domain of IP networks to find a reasonable abstraction and an effective and efficient implementation for some concepts, such as the representation of the redundant bearers, but using standard solutions and protocols, even if recombined in a novel way. One of the requirements of ACS is to ensure the transmission of user data traffic on specific bearers, based on some configuration criteria such as Quality of Service (QoS). The proposed ACS model along with its implementation is based on the concept multi-bearer gateways, which allow User Agents, both users and producers of communication services, to communicate by establishing pseudo-virtual circuits by identifying each communication endpoint via an IP-address associated with a logical interface. Since there is no guarantee to ensure that IP datagrams follow precise paths, as IP forwarding is simply based on the destination address, we solved this problem by binding the agents to such logical interfaces (which are based on Linux IP Virtual Local Area Network, IPVLAN) and implementing an extension of Session Initiating Protocol (SIP) to signalling a circuit, which implies that both gateways and hosts dynamically update forwarding tables during the signaling process. So, we still rely on standard IP routing but force datagrams, on a service-basis, to follow specific protected tunnels between gateways. The third important contribution of this work is the way we manage the tunnels' protection, which is based on multi-path transport protocols and data duplication, in addition to retransmission mechanisms given by Transmission Control Protocol (TCP). The software we developed can combine different transport protocols with multiple protection criteria, but any complexity is hidden to the application layer which ignores how the gateway will forward the data across the bearers. Since we use standard IP protocols and technologies, the implementation is also efficient and cost-effective. For this work, we implemented a testbed based on an emulator developed to evaluate the ACS performance. Part of the emulator has been developed in [9], where simpler use cases (e.g., tunnel protocol only based on Generic Routing Encapsulation, GRE) and metrics (e.g., latencies through Internet Control Message Protocol, ICMP) were considered. In this paper, we propose a new version of Tunnel Manager, which can set hybrid transport protocols (e.g., TCP and User Datagram Protocol (UDP), simultaneously).