# [ee122] update to Project 2

vern at cs.berkeley.edu vern at cs.berkeley.edu
Thu Nov 29 23:22:49 PST 2007

We've updated the Project 2 writeup with a fairly minor change, namely a
new version of MNL that supports controlling the random-number generator's
seed (to allow reproducible behavior when debugging).  See the Announcements
page for links to it and MNL 0.1b.  I've appended diffs between this version
of the writeup and the previous one.

Vern

Index: Project2.tex
===================================================================
--- Project2.tex	(revision 255)
+++ Project2.tex	(revision 265)
@@ -34,7 +34,7 @@
}{\end{enumerate}}

\title{ \Large EE122: Introduction to Computer Networks --- Fall 2007 \\[0.2in]
-\bf { Project 2: Design a Reliable Transfer Protocol\footnote{Version 3: Tue Nov 20 -- Porting Project \#1 client/server is now optional for extra credit.  This changes the specifics of what programs you turn in for the main credit (they are now simple file transfer programs.)  Version 2: Fri Nov 2 -- Clarified abstracted system calls.} }\\[0.15in]
+\bf { Project 2: Design a Reliable Transfer Protocol\footnote{Version 4:  Mon Nov 26 -- Updated MNL to version 0.1b, which now provide for either non-deterministic or deterministic random numbers.  Version 3: Tue Nov 20 -- Porting Project \#1 client/server is now optional for extra credit.  This changes the specifics of what programs you turn in for the main credit (they are now simple file transfer programs.)  Version 2: Fri Nov 2 -- Clarified abstracted system calls.} }\\[0.15in]
\normalsize{ Phase 1 --- Due Tue Nov 13, 2007 11PM\\
Phase 2 --- Due Sat Dec ~8, 2007 11PM }\\[0.1in]
}
@@ -308,6 +308,10 @@
which is provided by the kernel via {\tt sys/socket.h}
system calls.  Each layer has its own notion of the above
system calls.  Take care to know which you are using!
+
+		Note that the MNLEmulator can only affect outgoing
+		packets, so you will have to support MNL on both your
+		sending and receiving applications.

\item For the extra credit, you do not have to worry
@@ -544,13 +548,16 @@
for traces from the sender's perspective and the receiver's perspective,
respectively, where {\tt x} indicates the number of the corresponding
config file and transfer file.\footnote{
-	{\it E.g.,} you will pair {\tt mnl\_conf\_3.txt} with
-	{\tt file3.txt} by running {\tt MNLDaemon mnl\_conf\_3.txt}
+	{\it E.g.,} you will use {\tt mnl\_conf\_3s.txt} (sender) and
+	{\tt file3.txt} by running {\tt MNLDaemon mnl\_conf\_3s.txt}
+	which is running {\tt MNLDaemon mnl\_conf\_3r.txt}.
You will capture the packets exchanged using either {\tt tshark} or
-	{\tt tcpdump}.  You will then parse the results, and populate
-	and name the sample files {\tt cc\_send\_3.csv} and
-	{\tt cc\_recv\_3.csv} .
+	{\tt tcpdump} running on the same system as your sender, and then
+	your client as appropriate.  You will then parse the results, and populate
+	and name the sample files {\tt cc\_send\_3.csv} (traced on the
+	sender's host) and {\tt cc\_recv\_3.csv} (traced on the receiver's host).
}
You will find the particular MNL configuration files
and the files that you must transfer between the sender and receiver at
@@ -591,9 +598,9 @@

the course webpage at\\
-\url{http://inst.eecs.berkeley.edu/~ee122/fa07/projects/MNL_0_1a.tar.gz}\\
+\url{http://inst.eecs.berkeley.edu/~ee122/fa07/projects/MNL_0_1b.tar.gz}\\
Untar/Unzip it into the directory containing your source code.

\subsection{Example Programs}
@@ -729,7 +736,14 @@

\end{packed_enum}

-Some sample configuration files are given in the {\tt MyNetworkLayer/samplecfg}
+The optional fourth line can specify a value to be used as a deterministic
+seed to the random number generator used by MNLDaemon.  If you use
+specify a number here, you will be able to repeat the same probabilistic
+drops every time you use that config file.  If you do not specify a
+number, the drops will be random and non-deterministic between
+each execution.
+
+Some sample configuration files are given in the {\tt samplecfg}
subdirectory.

\subsection{Non-Solaris Platforms}