|
|
background.c | sends background traffic on-off at a nominal rate |
coder.c | MPEG coder that adapts its rate to the currently
available rate (needs pp.c as transprt layer) |
controlled_rate.c | sends on-off traffic and also does call setup |
dec.c | obeys DECbit flow control |
ecn_error.c | template for error control assignment |
ecn_flow.c | template for flow control assignment |
ecn_master.c | simulates shared channel for CSMA/CD (Ethernet) |
ecn_receiver.c | generic receiver for assignment 3 |
ecn_router.c | really tiny router, but it works |
ecn_sender.c | sources to test the router |
ecn_simple.c | template for simple source assignment |
ecn_slave.c | simulates Ethernet card for CSMA/CD |
ftp_vegas.c | untested code for FTP with TCP vegas flow control |
generic.c | generic transport layer with windowing, timeouts, acks |
jk_reno.c | implements flow control scheme of 4.3BSD-Reno |
jk_tahoe.c | implements flow control in 4.3BSD Tahoe |
mmpp.c | something like a markov modulated poisson source |
mpeg.c | uncontrolled mpeg coder (reads values from file) |
onoff.c | ON OFF source |
onoff_closed.c | ON OFF source, off time starts when all packets generated during on time have been acked |
onoff_closed_gbn.c | same as above, but does go-back-n retransmission |
playout.c | plays out MPEG video, complains if frame misses its end-to-end delay bound |
poisson.c | poisson source |
pp.c | packet pair flow control |
random_rate.c | sends data at random intervals, but conforms to peak/ave description |
send.c | implements packet transmission functions |
sink.c | universal receiver function |
telnet.c | flow controlled poisson source (with windowing) |
trace.c | reads a trace from a file and sends packets according to that description |
There is finally a GUI for REAL. It was written
in Java by Hani Jamjoom at Cornell University. The GUI is meant to be used
in conjunction with a simulator server, currently real.cs.cornell.edu.
The idea is that users can create a simulation scenario using the GUI,
then send it to the simulation server. The server connects to the GUI over
a socket and sends simulation results in the form of plot files, that are
displayed dynamically as the simulation proceeds. For more information,
go the the RealEdit
home page.
For users who do not want to use a GUI, the
simulator continues to support an ASCII input file format. The only change
is that the plot files are all lumped together into a single file called
"plot". The file sim/kernel/demux demultiplexes this file into a bunch
of plot files. This also makes the simulator much more efficient, since
the number of disk writes is dramatically reduced. If you want to continue
using the old style of simulation, then you should do
4. Simulation Engine
The simulation engine in Real 4.0 was essentially the one I got from NEST 2.5 from Columbia. I have rewritten the code to make it less general, cleaner, and faster. I also added lots of comments, so that the code is finally somewhat understandable (I never fully understood it till now !).
5.Ports
I have ported the simulator to Solaris and Digital Unix (OSF). Elan Amir ported it to FreeBSD, and I have added his changes to my distribution, though I have not tested it. A Linux port was done by Cheryl Pope, and I have added the changes she made, though, again, this hasn't been tested. I am looking for volunteers to port to Windows NT/95. The Installation Manual has a full list of supported architectures.
6. Things to add
I'm porting the FreeBSD2.2.2 TCP kernel code,
and will release it when I'm done. I would like help in adding multicast
to the simulator and in porting it to Windows NT. Any volunteers?