TRON: A General Purpose Protocol Stack

Cornell University, Summer 1999

Contents


General Overview

The Tron library is designed to be a general purpose protocol stack. In its current form, it provides a sockets-based network layer, a network simulation layer, a simple debugging layer, and a probabilistic broadcast layer based on pbcast (See the Papers section of Links). A protocl stack provides a simple way of putting together simple network protocols to provide a powerful network layer, all the while maintaining the simple interface of the protocol stack. For example, an application can use a protocol stack with a network layer and pbcast layer. It can then add a "compression layer" at a later point and all packets would be "compressed" without having to change a thing. The application sends through the top of the protocol stack and receives in a "Deliver" callback. The protocol stack provides a convenient interface and the layers provide services.

The Tron library is a programming tool. Although the layers it currently provides can be used to solve many networking and reliability problems, the framework that it provides is far more useful. It is quite simple to make new layers and stack them together to solve almost any problem. The tron distribution contains the entire tron library, as well as three example programs. The bcast program can be used to test whether directed broadcast is working on a network, but it is also an example of using the protocol stack with only the network layer. The trontest application is another example of using the protocol stack and uses the pbcast and debug layers as well. Finally, the tronsim application uses the simulation layer instead of the network layer, and shows that to an application that makes correct use of the protocol stack interface, whether or not data is sent on a simulated or actual network does not matter.

Tron was created as an M.Eng project. Its name is from the tron command (tron, troff), or perhaps a certain Disney movie that inspired many to become computer science students. The name really has nothing to do with protocol stacks or building reliable network applications.

Useful Links

Distribution

Papers