Advances in fiber-optic and VLSI technology have led to the emergence of very high-speed networks based on Asynchronous Transfer Mode (ATM) [1]. The Electrical and Computer Engineering Department of the University of California, Santa Barbara, in conjunction with Rockwell International Science Center, is currently building a 40 gigabit per second ATM switch as part of its Thunder and Lightning network project [2].
With the rapid increase in network bandwidth come new challenges for protocol development. Consider, for example, the situation in Figure 1 in which a user wishes to transmit data from San Diego, California to Boston, Massachusetts. In a typical ATM network, the user makes a request to reserve bandwidth from San Diego to Boston. The user's request traverses the network from San Diego to Boston, reserving bandwidth, and then returns to San Diego, informing the user of the capacity reserved, at which point the user can begin transmission. Due to the finite speed of light, this process takes approximately 40 milliseconds during which time 200 megabytes of data could have been transmitted into the Thunder and Lightning network if adequate capacity had been available.
Similarly, an ATM cell which is lost due to buffer overflow imposes a minimum delay of 40 ms before the retransmitted cell can be received at the destination. During this time, the sender could have transmitted another 200 megabytes of data into the network. To insert the retransmitted cell into the data stream properly (ATM guarantees in-order delivery of cells), the receiver must buffer this 200 megabytes of data while it waits for retransmission of the one lost cell. The sender faces similar buffering requirements as it must be able to retransmit a cell it sent at least 40 ms in the past (or 200 megabytes prior in the data stream). This is not a problem if the data source is a stable storage device, but may become a problem if, for example, the source of the data is a real-time measuring instrument.
As part of the Thunder and Lightning project, we are developing protocols [7,8,13,14] that allow a sender to begin transmission without the lengthy reservation delay and yet provide lossless transmission. A network simulator [6] developed specifically for Thunder and Lightning provides a testbed for the rapid prototyping, development, debugging and demonstration of these protocols.
To aid the protocol developer further, we have developed a graphical interface application which provides a view into the simulated environment. The display allows the user to manipulate the simulation in progress by inserting new events and altering existing events. Detailed protocol state information is also made available for debugging the protocol. This paper describes the design and development of this display program, emphasizing the use of Tcl/Tk. In addition to describing how Tcl/Tk has been an invaluable tool in rapidly developing this interface, we outline the mechanisms we developed to overcome the absence of certain features in the language.