%%% icmp.tex ---
%% Author: prashmohan@gmail.com
%% Version: $Id: icmp.tex,v 0.0 2006/02/25 14:46:19 prash Exp$
\documentclass[12pt,a4paper,oneside]{article}
\usepackage[debugshow,final]{graphics}
\usepackage[left=2cm,top=1cm,right=3cm,nohead,nofoot]{geometry}
\begin{document}
\title {A detailed study of the ICMP -- RFC 792 and C based
implementation of ping and traceroute}
\author {Prashanth Mohan\\20032169 \and Venkateswaran S\\20032219}
\maketitle
\pagestyle{empty}
\section*{Tools Used}
\begin{itemize}
\item NS2 Simulation Software
\item C Compiler (GCC)
\end{itemize}
\section*{Implementation Details}
\subsection*{Practical Implementation}
The \textit{ping} and \textit{traceroute} commands of UNIX will be
implemented in a restricted level in C. This will be a completely
working implementation ready for use on any system.
The executabled will have to be \textit{setuid}ed as root in order to
make use of the ICMP protocol directly.
\subsection*{Simulation}
The other code types of the \textit{ICMP} packet format will be
simulated using \textit{NS2 Simulator}. \textit{Time exceeded, Redirect
message, Source quench} messages will be simulated. \textit{Time Limit
exceeded and echo} messages are used in the practical implementation
of \textit{ping} and \textit{traceroute}.
\section*{\textit{ping} and \textit{traceroute}}
\textit{ping} uses timed \textit{ICMP ECHOREQUEST} and
\textit{ECHOREPLY} packets to probe the "distance" to the target
machine.
\textit{traceroute} works on a similar mechanism sending \textit{ICMP} packets to
invalid ports increasing the TTL count for each packet. A \textit{Time Limit
exceeded} packet is sent back by each router on the way.
\section*{References}
\begin{itemize}
\item \textit{http://ftp.arl.mil/~mike/ping.html}
\item \textit{http://www.freesoft.org/CIE/Topics/54.htm}
\end{itemize}
\end{document}
%%% Local Variables:
%%% mode: latex
%%% TeX-master: t
%%% End: