The eXtended User Datagram Protocol provides a unique method of delivering real-time multimedia data in a manner that can minimize both bandwidth utilization and distortion in the timing of sequential data in minimally buffered multimedia stream delivery applications. By enforcing a policy of timed obsolescence, deliberately discarding data that has outlived its usefulness, XUDP saves network bandwidth and presents a timely, variable quality communication channel to the application layer. It shoulders the responsibility of dynamic flow control, simplifying multimedia application development.
The following graph illustrates the functionality of XUDP's timed-obsolescence algorithm on a network suffering from severe load, with the load removed one-third of the way to the end of the test. In a 30 second test of a simulated 20fps, 160x120 uncompressed 6-bit videoconferencing application, XUDP's transmission is finished in just over 32 seconds, while TCP's stream isn't finished until the 42 second mark - a ten second difference. During the period of severe loading, the XUDP transmission is reduced to a minimum one frame per second, while TCP stretches the time-wise pacing of data. An XUDP application could have presented the video stream unbuffered with satisfactory results, while the TCP's unbuffered stream would, on average, get presented 25% slower. The two ``extra'' seconds are equal to the time until obsolescence for all parcels, and could be smoothed by a two second video stream buffer.
Additionally, a variable bit and frame rate internetworked videoconferencing application that used XUDP as it's communication mechanism was developed as part of an undergraduate thesis at WPI. Adding only a simple wrapper in the code to account for the possibility of discarded data through timed obsolescence, the communications handling routines in the application layer were simpler than what was required for an earlier TCP implementation. Performance was acceptable from the user's perspective, and network load was reduced slightly from the equivalent TCP-based version of the application.
XUDP is still under development. The current implementation is written in ANSI C for a UNIX environment and has been tested under Ultrix 4.5, OSF/1 V3.2 and Linux 2.0.28.