                       Computer Science 826
                           Assignment 4
                         (Due November 25)

For this assignment, you may continue to work in two person teams.
Please be particularly careful to submit your reports in
BOTH latex and ps formats.

File nov11.dmp in class/826 contains tcp monitor data collected
by me using a monitor which stores records in <host> byte order
in the following structure:

    22 typedef struct tcpletype
    23 {
    24    struct timeval tod;
    25    unsigned int   seq;
    26    unsigned int   ack;
    27    unsigned int   saddr;
    28    unsigned int   daddr;
    29    unsigned short sport;
    30    unsigned short dport;
    31    unsigned short tcp_flags;
    32    unsigned short resvd;
    33 } TCP_LOG_ENT;
    34

Only packets which carry SYN or FIN are captured. Your missions are to

(1):

Create a data reduction program which will read nov11.dmp and
will produce an output file which contains ONE RECORD for each
TCP connection for which SYNs and FINs were Tx'ed and Rx'ed.
Note that some sessions may be missing SYNs or FINs if their
start or end occured outside the interval in which logging was
taking place.  The output file should look something like this
where the session records are sorted by Remote IP address.

Sess ID  Tx Bytes  Rx Bytes   Ltncy   Length      Tx Thpt      Rx Thpt Remote IP
 750        522        356    0.037    0.674      774.621      528.286 63.175.146.25
 746        522        353    0.036    0.657      794.373      537.191 63.175.146.25
 829        553       2085    0.046    0.115     4799.928    18097.379 63.240.110.224
 828        573       3706    0.046    0.101     5692.203    36815.538 63.240.110.224
 827        573       4105    0.046    0.118     4865.831    34859.052 63.240.110.224
 826        562        654    0.048    0.115     4902.986     5705.610 63.240.110.224
 825        560        869    0.046    0.104     5407.283     8390.945 63.240.110.224
 824        578      10945    0.046    0.151     3831.722    72557.441 63.240.110.224
 823        560        386    0.046    0.098     5705.205     3932.517 63.240.110.224
 822        559        509    0.046    0.098     5716.916     5205.564 63.240.110.224


Where:

Sess ID is based upon the order in which the FIRST SYN that was
associated with the session was sent or received

Tx/Rx Bytes is the total number of bytes that were Tx'd/Rx'd in
the session. You may assume that no session Tx'd or Rx'd more
than 2^32 bytes.

Ltncy is the delay between the SYN's in seconds

Length is the length of the session in seconds (time between the
first SYN and last FIN).

Rx/Tx thpt is (Tx/Rx bytes / Length)

Remote IP is the IP address of the remote session partner

-------------------------------------------------------------------
Use the data obtained by your program to prepare a report characterizing
the network load generated by the web surfer and the performance he
obtained.  Issues to be addressed should include:

1 - Overall rate at which TCP sessions were created
2 - Overall loads in Tx Bytes/Second  and Rx Bytes/Second that
    the user experienced

Now consider remote IP addresses in groups identified by 24 bit
prefixes and report upon:

1 - Mean and standard deviations of latencies obtained for each prefix.
2 - Mean and standard deviations of Rx throughput for sessions in which
    at least 1000 bytes were received.





