Homework 3 Due Thursday, June 5 Directions for submission: Make directories ProblemI and ProblemII, and put the relevant files in each: Problem I: C source code and makefile; .tex and .eps (from gnuplot) files for writeup of best backoff probability Problem II: C source code and makefile Make a README file which gives the names of all people in your homework group. Use tar to combine README, ProblemI and ProblemII. Then gzip and uuencode, and e-mail the result to the TA. I. Modify the simulation in the handout, "Some Utilization Analyses for ALOHA and CSMA Protocols," so as to provide the following additional information: * The average number of active nodes. * The utilization of the channel. * The average number of nodes involved in a collision. (You can print to stdout if you wish, in order to use the file as input to gnuplot. By the way, please use the value 1000000 for NSLOTS.) Also, for NewMsgProb = 0.02 and NNodes = 16, experiment with different values of P to see the effects on utilization and mean delay, setting up two gnuplot graphs. Explain the behavior you observe. To help check your work, here is what I got for P = 0.1: long-run average delay = 14.3 mean number of active nodes = 3.6 utilization = 0.25 mean number of nodes in a collision = 2.1 II. Write a program to input the Ethernet records in ~matloff/Pub/N*/E*/PktTrc01.dat The program will output the following: average received length of all Ethernet frames the number of ftp control frames (destination port 21, TCP) IP addresses (xxx.xxx.xxx.xxx format) and host names (use gethostbyaddr() for the latter) for source and destination in the first TCP frame, plus source and destination Ethernet board numbers (in hex) for that frame (note to yourself which machines we are talking about!) The relevant header formats are shown on pages 123, 221 and 291. Note that the Type code in an Ethernet frame for IP is 0x0800. Read the README file accompanying the data before starting. Make sure to browse through the data file (using od) "by hand" a bit first to get a feeling for the layout of the data, checking to see, for example, that there is always an 0x0800 code where it ought to be in the first two or three frames.