%%% 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: