According to our project proposal, we aim to build a flexible and evolvable transport layer protocol that is capable of satisfying different levels of quality of service (QoS) requirements. Inspired by the design of eXpress Transport Protocol (XTP) which provides a flexible framework to accommodate different control functions e.g. priority control, rate control, selective error control, etc. as well as different delivery modes such as multicast and unicast, a protocol named Evolvable fleXible Transport Protocol (EXTP) is proposed in our work. Our design follows a similar fashion as XTP but new features such as version control will be introduced in EXTP.
The motivations of our design are threefold:
Differentiated QoS Control. TCP and UDP are the most widely used transport layer protocols on the Internet providing two different types of services to the upper layer. TCP is initially designed to provide a fully reliable transmission service combining various control functions such as reliability control, congestion control, error control, etc. but the transmission delay is high. In contrast, UDP provides unreliable transmission service without ACK nor error control but the transmission delay is low. However, with the emergence of new applications, e.g. video conferencing, high resolution online games, virtual reality, etc., different levels of QoS are required. For real-time traffic has higher demand in low latency than error-free while sensor data transmission demands both low latency and high fidelity. Therefore, control functions should be differentiated and scheduled properly to different applications.
Flexible configuration. Despite various control functions TCP provided, they are static and difficult to be adjusted according to the requirements. To achieve a differentiated QoS control service goal, a flexible configuration mechanism is essential. XTP provides a feasible paradigm where different control functions are selectable while orthogonal to each other. Therefore, a similar protocol structure follows the fashion of XTP to achieve high flexibility in control functions configuration.
Evolvable. One disadvantage of XTP that all the control functions are predefined in the packet header and can only be from them. We refer to this as lacking evolvability. EXTP takes the evolvability concept into consideration. EXTP enables protocol upgrade via a version control function. The upgrade of protocol mainly focuses on the modification of control functions including modifying control parameters, adding new control algorithms, and extending the control function pool.
Orthogonal functional block design. In EXTP, users are designed to enable certain functional blocks at will. Therefore, avoiding conflicts between different functional blocks is a challenge in the design of this protocol.
Version compatibility. EXTP can enrich its functional blocks through version evolution, so different versions of EXTP may exist at the same time in actual application scenarios. How to make the different versions of the protocol compatible has become a challenge for this project.
We want to deliver a simple prototype finally for this project. In this prototype, we will implement the protocol above the UDP protocol with three functions, namely congestion control function, reliability control function, and version control function. The congestion control function is used to avoid network overload and meet the QoS objective for our protocol design. The reliability control is used to ensure the flexibility of reliable connections among communication peers. The version control aims to provide an in-band protocol upgrading to meet the demand of evolvability.
The prototype will be tested on NS3 with two data flows~(one of them is real-time) in a small network with at least three nodes as an example to show the effectiveness of this protocol. We will also show a case in NS3 about how the protocol can be upgraded in-band to support evolution.