--- /dev/null
+
+% Draft 1
+
+\vfil
+
+\centerline{\Large Part II Computer Science Project Proposal}
+\vspace{0.4in}
+\centerline{\Large Simulation of Data Link Layer Protocols }
+\vspace{0.4in}
+\centerline{\large R.~J.~Whitehouse, Homerton College}
+\vspace{0.3in}
+\centerline{\large Originator: M.~Scott}
+\vspace{0.3in}
+\centerline{\large 14 October 2010}
+
+\vfil
+
+\subsection*{Special Resources Required}
+The use of my own desktop workstation (2.6 GHz Intel Core 2 Q6600, 2 GB RAM and 3 TB Disk). \\
+File space on PWF -- 500 Mbytes\\
+File space on my own server -- 500 Mbytes\\
+The use of my laptop (2.13 GHz Intel Core 2 Duo, 2 GB RAM and 128 GB Disk).
+\vspace{0.2in}
+
+\noindent
+{\bf Project Supervisor:} M.~Scott
+\vspace{0.2in}
+
+\noindent
+{\bf Director of Studies:} Dr~R.~K.~Harle
+\vspace{0.2in}
+\noindent
+
+\noindent
+{\bf Project Overseers:} Dr~A.~Blackwell \& Dr~C.~Mascolo
+
+\vfil
+\pagebreak
+
+% Main document
+
+\section*{Introduction}
+
+In local area networks, Ethernet is the dominant data link layer protocol. Many attempts have been made to improve on its perceived weaknesses in terms of large amount of broadcast traffic, large forwarding tables required and poor routing.
+
+My aim is to compare one of these proposals, MOOSE (Multi-level Origin-Organised Scalable Ethernet) with Ethernet in a simulation in order to examine the advantages and disadvantages of such a replacement.
+
+My work will be focussed on providing an implementation of MOOSE in a commonly used network simulator - ns2, preparing a number of simulation scenarios and then generating data in order to allow a comparative analysis. The final stage of my project will be to evaluate the data produce in order to provide a useful comparison between the protocols.
+
+ns2 is a heavily used network simulator used in research. It is available under the GNU General Public License and is written in C++ and Tcl.
+
+The data gathered for comparative analysis will aim to show the differences and similarities between MOOSE and Ethernet. This will consist of, among other metrics, the size of the forwarding tables in the switches in the network, the number of messages sent across all switches and a representation of how many of these are control messages.
+
+The simulation will be done on a mixture of generated data, and anonymized data traces which is publicly available. This is to attempt to ensure that valid metrics are obtained for a variety of different network configurations. Alongside the anonymized data traces, the generated data will be designed to conform to publicly available statistics of network data.
+
+\section*{Work that has to be done}
+
+The project breaks down into the following main sections:-
+
+\begin{enumerate}
+
+\item The exploration of the implementation of Ethernet on ns2 - confirming it passes various tests and analysis of the implementation.
+
+\item The implementation of MOOSE on ns2.
+
+This will involve modifying the Ethernet protocol provided by ns2 to incorporate MOOSE semantics. This should include switches that are able to accept hosts being attached to them, rewrite packets with Ethernet addresses into ones with MOOSE addresses and vice versa, and participate in a network - including being able to transmit and receive packets from other hosts.
+
+As an extension, various different routing protocols should be implemented to allow their characteristics with MOOSE to be varied.
+
+\item The design of a number of simulations designed to show the differences between Ethernet and MOOSE.
+
+MOOSE is designed to perform better on large networks, while Ethernet was originally designed for networks with fewer than a thousand hosts. Several different network topologies should be experimented with in order to show the differences between the protocols. Realistic networks should be used to show the practical applications of both, while extreme network topologies should be designed to test the limits of the design.
+
+\item The comparative analysis of MOOSE and Ethernet using data gathered by simulation.
+
+A variety of metrics should be gathered - ideally showing all the differences between MOOSE and Ethernet. These should be analysed to see how they would affect real world performance and how relevant the simulation is to potential real world implementations.
+
+This will also involve using data provided from elsewhere which should be modified into a form acceptable by the simulator. Additional data will also need to be generated and effort should be taken to ensure that this data is realistic.
+
+\end{enumerate}
+
+\section*{Evaluating the success of the project}
+
+The success of this project will be measured against a number of criteria. These are:
+
+\begin{enumerate}
+
+\item The correct implementation of simulated MOOSE switch which performs addressing rewriting and performs correctly in a network involving both other MOOSE switches and other Ethernet switches. This will be tested by simulating the switch inside ns2 and then using a number of unit tests to ensure it is performing correctly.
+
+\item The formation of a number of network topologies which seek to show the difference between Ethernet and MOOSE. This will be evaluated under simulation by showing the difference in a number of metrics.
+
+\item The collection of a number of metrics showing the difference between the protocols, including the following:
+
+\begin{itemize}
+
+\item The size of the state data held by the switch and change in performance characteristics as this reaches a predefined limit.
+
+\item The amount of overhead in terms of control messages relative to the amount of data transfered.
+
+\item The efficiency of the routes used by the protocol.
+
+\end{itemize}
+
+\end{enumerate}
+
+\section*{Difficulties to Overcome}
+
+The following main learning tasks will have to be undertaken before
+the project can be started:
+
+\begin{itemize}
+
+\item To learn how to implement a protocol in ns2.
+
+\item To learn how to program in Tcl.
+
+\item To improve the use of git to allow version control of the project.
+
+\end{itemize}
+
+\section*{Starting Point}
+
+I have knowledge of how Ethernet works from Digital Communications 1 and I am adept in writing C++ code. I have experience in compiling and building programs in a Linux architecture.
+
+ns2 includes a implementation of Ethernet which I will use as a basis for creating the MOOSE protocol implementation. It also includes several implementations of different routing algorithms.
+
+\section*{Resources}
+
+In this project, I will be writing a fair amount of code in order to allow ns2 to simulate MOOSE. This code will be version controlled and backed up in order to ensure it is safe from any form of data loss. In order to achieve this I will be using a Ubuntu Linux desktop machine using git. This will allow the code to be version controlled. In order to back it up, I will push my changes in git onto both the PWF servers provided by the University Computing Service, and a separate Ubuntu Linux box that I own away from Cambridge.
+
+The project will also require a dissertation to be written. This will be done on my laptop, which will again be backed up to the PWF and my server, and a external hard drive.
+
+\section*{Work Plan}
+
+The planned start date is 25th October 2010. Up until this point, I will do preparatory work such as arranging materials, and doing background research. The work will be divided up into fortnightly segments.
+
+\begin{itemize}
+
+\item {\bf 25th October 2010 - 14th November 2010} This time will be spent doing preparatory work such as learning how to use the ns2 simulator and learning Tcl which will be used in the project.
+
+\item {\bf 15th Novemer 2010 - 28th November 2010} I will start the implementation of the MOOSE protocol for ns2. In this week I shall explore the current Ethernet implementation and work out what code needs replacing. I shal start implementing the address rewriting.
+
+\item {\bf 29th November 2010 - 12th December 2010} I will complete the address rewriting for the switches and begin work on the reworking the forwarding table.
+
+\item {\bf 13th December 2010 - 26th December 2010} By the end of this period, I will have completed the work on the forwarding table and shall have a working MOOSE switch.
+
+\item {\bf 27th December 2010 - 9th January 2011} During this time, I shall work on implementing extensions identified in MOOSE such as improving the routing protocol and implementing auto-configuration.
+
+\item {\bf 10th January 2011 - 23rd January 2011} At this point, I will have a working MOOSE switch in ns2. At this point I shall start work on using the switch for simulation. I shall spend this week preparing the publicly available data for testing and designing network topologies.
+
+\item {\bf 24th Janary 2011 - 6th February 2011} During this fortnight I shall write the progress report and start work on testing the infrastructure to collect metrics. I shall then start inputting data for the simulation.
+
+\item {\bf 7th February 2011 - 20th February 2011} By the end of this fortnight, I aim to have a complete set of simulation data. This will involve completing the network tests and compiling the metrics gathered.
+
+\item {\bf 21st February 2011 - 6th March 2011} At this point I will begin the dissertation write up. By the end of this period I aim to have the introduction and preparation chapters complete.
+
+\item {\bf 7th March 2011 - 20th March 2011} I will continue the dissertation write up. By the end of this period I aim to have the implementation and evaluation chapters complete.
+
+\item {\bf 21st March 2011 - 3rd April 2011} By the end of this period I will have completed the dissertation write up. This will involve completing the conclusion chapter and ensuring that it is a coherent document.
+
+\item {\bf 4th April 2011 - 17th April 2011} I shall use this time for making any changes to the dissertation necessary.
+
+\item {\bf 18th April 2011 - 1st May 2011} I have left this time empty to allow any catchup necessary and to do final finishing touches.
+
+\item {\bf 2nd May 2011 - 16th May 2011} Final changes made to dissertation. Print and bind report ready to hand in. Remind supervisor to complete report form ready for the deadline.
+
+\end{itemize}
+