A Unit Capacity Data Link (UCDL) is basicly a communication line that can store at most one outstanding packet at a time. Basicly a UCDL implements the well-known stop-and-wait protocol that guarantees ordered eventual delivery without duplicates or reordering. A UCDL can be used to construct reliable communication protocols in wide-area networks.
The term UCDL was coined by George Varghese, but the actual protocol has been presented in a number of different flavours. This implementation follows the lines of the paper ``Self-stabilization over unreliable communication media'' by Yehuda Afek and Geoffrey M. Brown.
The applet consists of a sender (left hand side) and a receiver (right hand side) which are connected by two unidirectional communication wires. The task at hand is to send the sequence of data items to the receiver and having the receiver deliver data items to it's application layer. (Delivered items appear next to the receiver as a text string.) Items must be delivered in the correct order without duplicating or loosing an item.
[This Applet will only show if you have a
Browser for JDK1.1 (e.g. Hotjava, Netscape 4 and IE4.0).
If you still use Netscape 3.0 try this page.]
You can also browse the source code of the applet: