This  directory  contains  the  source  code  for the MPEG1 video
stream network traffic simulator.


The binaries are at /usr/dirt/bin.


Also read /usr/dirt/bin/mpeg_README.


The source code files are at /usr/dirt/src/mpeg.


The above directory also contains the file README.


Also the input  files  to  the  server  for  the  movies  ET  and
Crocodile  Dundee are at /usr/dirt/src/mpeg. The files are et.frm
and croc-dundee.frm respectively


The system is arranged as a client server with the file  mtraff.c
containing  the code for the server and mclient.c containing code
for the client. The video stream is played out over  the  network
by  the  server using UDP. The server expects an input file which
specifies the following on each line:


<Frame Type> <Frame size in bytes>.


It is assumed that the input file specifies the type and size  of
frames  in  play order. The server simply generates frames at the
specified frame rate. Note that the frames traverse  the  network
in  play order. The receiver reassembles frames and gives them to
a dummy Mpeg1 video decoder that simulates the working of a  real
mpeg  decoder.   The receiver generates statistics at regular in-
tervals of time. More about this a little later.




The server expects the following command line options:


o -sp : The port to be used by the server


o -c : The client ip address - which may be  in  DNS  or  numeric
format.


o -cp : The port to be used by the client.


o  -f : The name of the input file containing frame stream speci-
fications.


o -fr : Frame rate at which frames are sent into the network.


All five options are compulsory and must be specified.  The  fol-
lowing option is required in the special case as explained:


o  -nondefault  :  This switch is required if both the sender and
receiver are on the same machine. In that case it is assumed that
the machine has more than one ip address and packets are sent out
thru one interface and are received at the other after traversing
a  network. This switch should be followed by the ip address (nu-
meric format only) chosen at the sender.


For example, consider a machine talley  with  2  ip  addresses  -
152.2.135.48  and 152.2.136.48. If you want a setup where packets
go out of 152.2.136.48 and traverse a network and are received at
152.2.135.48. Then the sender may be specified as :


mtraff -c 152.2.135.48 -sp 6100 -cp 6200 -f croc.frm -fr 30 -non-
default 152.2.136.48


Basically this forces the sender port to bind to  the  136.48  ip
address.  Also note that since both processes are on the same ma-
chine the sender port and receiver port must  be  different  from
each  other.  Also  see the description for the nondefault option
for the client.




The receiver expects the following command line options :


o -cp : The port to be used by the client


 o -s : The server ip address - which may be  in  DNS  or  numeric
format.  Note  that if  a specific ip address was specified using
the -nondefault switch at the sender , then that same numeric  ip
address must be specified here at the client.


o -sp : The server port


o  -i  :  The resolution interval - over which the statistics are
gathered.


   Statistics are printed at the end of the interval.


o -d : debug log file . Implicitly begins debug mode.  The  debug
file contains a printout of the successive
       frame  types  and frame numbers of frames successfully de-
coded. Any out of sequence frames are also reported.


o -l : output file for packet number vs network latency plot. Im-
plicitly turns on latency report mode. An xplot file
       is generated featuring network latency on y axis and pack-
et number on x axis. The report of latency assumes that the
       sender and receiver have a synchronized clock.


 The former 4 options are compulsory whereas the latter 2 may  or
may  not  be specified. The following option must be specified at
the client in the case that both the sender and the receiver  are
on the same machine.


-nondefault  :  This is complementary to the nondefault option as
explained for the sender. Use this option to specify which ip ad-
dress  the client must use when both client and server are on the
same machine, which is assumed to have more than  one  interface.
For example, in keeping with the sender specification for the ma-
chine talley, the client, also on  talley  may  be  specified  as
mclient  -s  152.2.136.48 -sp 6100 -cp 6200 -i 5.00 -d debug.file
-l latency.xpl -nondefault 152.2.135.48




The receiver generates a one line report containing the following
statistics at the end of every resolution interval :


T - absolute time


PFR - Playable frame rate


TFR - Total Received Frame Rate


ATFR - Average Total Received Frame Rate. A  running  average  of
TFR


Thruput - Thruput over the last interval in bytes/sec


AL - average latency - a weighted average of the latency of pack-
ets received in the current interval


PLR - Packet Loss Rate (Packets Lost Per Second) over the current
interval


PRR - Packets received per second in the current interval


The  systems  features an MTU size of 1470 and handles packetiza-
tion and reassembly as a special layer  above  the  sockets.   No
fragmentation by UDP occurs.


If you seek further clarifications on the tool, send email to :


o ramkumar@cs.unc.edu


o dirt@cs.unc.edu
Hope this helps.