The demand for appropriate handling of multimedia data transmission on the Internet has spawned several attempts at multimedia-specific protocols. The most promising of them, the eXpress Transport Protocol (XTP) will be examined here to provide impetus for later decisions regarding protocol implementation issues.
XTP is an amazingly complex communications protocol, capable of providing many of the much-needed services for which network programmers have been crying out. The system-level details of its necessarily massive implementation are covered in Alfred C. Weaver's Xpress Transport Protocol Version 4[45]. From the opening statement:
The Xpress Transport Protocol (XTP) has been designed to support a variety of applications ranging from real-time embedded systems to multimedia distribution to applications distributed over a wide area network. In a single protocol it provides all the classic functionality of TCP, UDP, and TP4 [TP4 is the OSI standard transport protocol] , plus new services such as transport multicast, multicast group management, transport layer priorities, traffic descriptions for quality-of-service negotiation, rate and burst control, and selectable error and flow control mechanisms. XTP has the same interconnectivity as TCP/UDP/TP4 because it operates over any network layer (IP, CLNP), any data-link layer (LLC, MAC), or directly on top of the AAL of ATM. In general, XTP avoids coupling policy with mechanism; XTP offers services but the user's application defines what communications paradigm is most appropriate for its particular environment. XTP is a high performance protocol, and can sustain high throughput (92Mbits/s over FDDI between a pair of IBM RS/6000 model 370s) and low latency ( to move 100 bytes from user memory to user memory on two 50 MHz PCs connected by FDDI). Since XTP can run in parallel with all other transport protocols, and can run over whatever network layer (if any) is provided, it represents a low-risk way to exploit the increased functionality required for distributed applications without sacrificing connectness or interoperability.[45, p.1,]
A detailed investigation into XTP is outside the scope of this report, briefly, XUDP provides the following interesting features:
The only implementation that I was able to locate was developed at Sandia Labs (SandiaXTP). It was packaged with something called the Meta Transport Library which it required for operation, and both were written using the object-oriented paradigm of C++. It is worth keeping in mind that Dave Clark stated in RFC817[7], submitted back in 1982, that layering and modularity may be excellent visualization techniques for protocols, but are far from desirable in the actual implementation. This affected my initial reaction to the protocol, but further simple testing against TCP's reliable stream proved that it handled the task adequately.