Next: References
Up: XUDP: A Real-Time Multimedia
Previous: 8.8 Simulated 20fps Uncompressed
The main goal of this MQP was to develop an improved method for
transporting real-time, multimedia data over the internet. Timed
obsolescence provided a means for achieving our goal, but necessitated
an entirely
new transport layer protocol (XUDP) for a complete implementation.
This task was completed, producing an extension to the User Datagram
Protocol, with flow control mechanisms similar to that found in the
Transmission Control Protocol. As evidenced by the results presented
earlier, XUDP successfully preserves the linear time relationships of
real-time multimedia data under a variety of network conditions.
However, work remains to be done regarding the optimization of XUDP
and the preparation for eventual distribution as a unique contribution
to the growing array of multimedia transport layer protocols. As of
this stage, much of the code comprising XUDP is designed for easy
modification, readability and expansion and is not optimized for
speed. Below are some items that can be cleared up in future project
work:
- Minimize context switches in the main loop. XUDP is
constructed around a series of queues that are searched for
data to process by a number of functions accessed sequentially from a
main program loop. Quite often, the functions are called only to
determine that there is no work to be done, and control is returned to
the loop. If the queues are checked for data to be processed on the
main loop level, costly function calls can be avoided and stack times
will be significantly reduced.
- Making use of hash tables to interface with queues.
Currently in all cases, XUDP uses a linear search through linked-list
nodes to locate information. It may be worthwhile to investigate the
possibility of the creation of dynamic hash tables that would
significantly reduce the amount of searching necessary.
- Less costly RTT statistical calculations. The round
trip time statistics are calculated with floating point arithmetic on
a per-packet basis. Congestion Avoidance and
Control[19] outlines a method of using integer
arithmetic on scaled powers of two, which is cheap and effective on
any platform.
- Theoretically derived RTO and window sizing
algorithms XUDP is using the retransmission timeout with variance
estimation algorithm first developed for 4.3BSD Tahoe TCP.
Worse, the congestion anticipation window sizing algorithm currently
responds too quickly to changes in round trip times. Some time can be
spent determining more suitable solutions to these problems.
- IPC with shared memory. Parcels are being sent from
the user's application to the local XUDP server through UNIX streams.
If shared memory handling functions were added, some protocol stack
delay time could be eliminated.
- Implementation directly on top of IP. XUDP is
dependent on UDP for its transport mechanism. An implementation with
raw sockets built on top of IP would place XUDP at the same layer as
TCP and UDP, further reducing stack times.
Next: References
Up: XUDP: A Real-Time Multimedia
Previous: 8.8 Simulated 20fps Uncompressed
Mike Andrews
Wed Mar 19 16:07:58 EST 1997