Skip to content

Instantly share code, notes, and snippets.

@ankurs
Created April 28, 2010 22:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ankurs/382838 to your computer and use it in GitHub Desktop.
Save ankurs/382838 to your computer and use it in GitHub Desktop.
\documentclass[11pt]{book}
\usepackage{graphicx}
\usepackage[empty]{fullpage}
\author{Ankur Shrivastava}
\begin{document}
\frontmatter
\begin{center}
\textbf{\LARGE RING}\\
\vspace{40ex}
A mini project report submitted to\\
\vspace{5ex}
\textbf{\large Manipal University} \\
\vspace{5ex}
Bachelor of Engineering\\
\vspace{5ex}
in\\
\vspace{5ex}
Information Technology\\
\vspace{40ex}
\textbf{By$:-$}\\
Ankur Shrivastava $(070911104)$\\
Raja T Dass $(070911008)$\\
Utsav Kumar Singhania $(070911003)$
\end{center}
\newpage
\begin{center}
\chapter{Declaration}
\end{center}
\vspace{5ex}
I hereby declare that this project work entitled RING is original and has been carried out by us in the Department of Information and Communication Technology of Manipal Institute of Technology, Manipal, under the guidance of Mrs. Girija V. Attigeri, Department of Information and Communication Technology, M. I. T., Manipal. No part of this work has been submitted for the award of a degree or diploma either to this University or to any other Universities.\\
\begin{flushleft}
Place : Manipal\\Date : 29 - 04 - 2010\\
\end{flushleft}
\begin{flushright}
Ankur Shrivastava $(070911104)$\\
Raja T Dass $(070911008)$\\
Utsav Kumar Singhania $(070911003)$
\end{flushright}
\newpage
\begin{center}
\chapter{Certificate}
\end{center}
This is to certify that this project entitled RING is a bonafide project work done by Ankur Srivastava, Raja T Dass, Utsav Singhania at Manipal Institute of Technology, Manipal, independently under my guidance and supervision for the award of the Degree of Bachelor of Engineering in Information Technology.\\
\begin{flushleft}
Mrs. Girija . V . Attigeri - Lecturer, Department of I \& CT \\
Dr. Radhika M. Pai - Professor \& Head of Department of I \& CT\\
\end{flushleft}
\newpage
\chapter{Abstract}
\hrule
\vspace{2ex}Ring aims at bringing the best in P2P world to the users allowing them to share content with virtually any one on the internet / local network. Ring tries to make as many simultaenous connections to different peer's as possible thus increasing the reliability and overall speed of download. Ring uses a variety of host discovery methods like network broadcast for local peer discovery and web peer caches for host discovery online.\\
Comparing with the traditional model of content delivery that contains a single server serving the file, Ring uses distributed model of content delivery as transfer of data takes place from multiple servers $($peers$)$. As for content discovery Ring use a distributed query model, where by a query request is sent to all the peers, upon reception of query peers reply with hit or miss, there by the model does not rely on a central server for content discovery.\\
\newpage
\tableofcontents
\newpage
\mainmatter
\chapter{Introduction}
\section{Introduction}
\hrule
\vspace{2ex}Ring aims at bringing the best in P2P world to the users allowing them to share content with virtually any one on the internet / local network. Ring tries to make as many simultaenous connections to different peer's as possible thus increasing the reliability and overall speed of download. Ring uses a variety of host discovery methods like network broadcast for local peer discovery and web peer caches for host discovery online.\\
Comparing with the traditional model of content delivery that contains a single server serving the file, Ring uses distributed model of content delivery as transfer of data takes place from multiple servers $($peers$)$. As for content discovery Ring use a distributed query model, where by a query request is sent to all the peers, upon reception of query peers reply with hit or miss, there by the model does not rely on a central server for content discovery.\\
\newpage
\section{Features}
\hrule
\vspace{2ex}
\begin{itemize}
\item Any peer can join the network.
\item No restriction on hosted data.
\item Distributed discovery.
\item No Bandwidth constraint $($Distributed delivery$)$.
\item Open Source.
\item Operating System Independent.
\end{itemize}
\vspace{4ex}
\section{Platform}
\vspace{1ex}
\hrule
\vspace{2ex}
\begin{itemize}
\item Client written in C++ using QT.
\item Peer Cache written in Erlang.
\item Runs on Linux, Windows and Mac OS X.
\end{itemize}
\vspace{4ex}
\section{Requirements}
\vspace{1ex}
\hrule
\vspace{2ex}
\begin{itemize}
\item Network connection required.
\item Firewall policy.
\end{itemize}
\newpage
\section{Functional Approach}
\hrule\vspace{2ex}
\begin{description}
\subsection{Peer Discovery}
\item[Peer Discovery] As peers can join / leave the P2P network randomly, there is a need to discover all active peers in the network, its done in the following manner
\begin{itemize}
\item Local peer discovery
\begin{itemize}
\item User starts the application.
\item Application sends a broadcast UDP packet on the network.
\item On reception of reply peer list in application is updated.
\end{itemize}
\item Internet peer discovery
\begin{itemize}
\item User starts the application.
\item Application requests the peer cache for active peer list.
\item On reception of reply by peer cache, entries sent by the peer cache are added to the peer list.
\end{itemize}
\end{itemize}
\subsection{Content Discovery}
\item[Content Discovery] To locate the peers with specific content, query messages are used
\begin{itemize}
\item[--] User enters the search query.
\item[--] Query messages are sent to all the peers in the peer list.
\item[--] Peers execute the query.
\item[--] If files are found at the peer, a query hit with content information is returned.
\item[--] If files are not found at the peer, a query miss is returned.
\end{itemize}
\subsection{Content Delivery}
\item[Content Delivery] As content is distributed among peers, transfer of content is done in following manner
\begin{itemize}
\item[--] Application sends request to peer, requesting a part of file.
\item[--] If peer accepts the request, file transfer begins.
\item[--] If peer rejects, request is send to another peer.
\end{itemize}
\end{description}
\newpage
\label{List Of Figures}
\listoffigures
\newpage
\newpage
\chapter{Figures}
\section{Use Case Diagrams}
\subsection{Content Discovery}
\begin{figure}[!hpt]
\begin{center}
\includegraphics[width=0.9\textwidth]{usecase/content_disc.png}
\end{center}
\caption{Content Discovery}
\label{fig:1}
\end{figure}
\begin{figure}[!hpt]
\subsection{Data Discovery}
\begin{center}
\includegraphics[width=0.9\textwidth]{usecase/data.png}
\end{center}
\caption{Data Discovery}
\label{fig:2}
\end{figure}
\begin{figure}[!hpt]
\subsection{Peer Discovery}
\begin{center}
\includegraphics[width=0.9\textwidth]{usecase/peer_discovery.png}
\end{center}
\caption{Peer Discovery}
\label{fig:3}
\end{figure}
\newpage
\section{Sequence Diagrams}
\subsection{Content Discovery}
\begin{figure}[!hpt]
\begin{center}
\includegraphics[width=0.9\textwidth]{sequence/content.png}
\end{center}
\caption{Content Discovery}
\label{fig:4}
\end{figure}
\begin{figure}[!hpt]
\subsection{Data Discovery}
\begin{center}
\includegraphics[width=0.9\textwidth]{sequence/data.png}
\end{center}
\caption{Data Discovery}
\label{fig:5}
\end{figure}
\begin{figure}[!hpt]
\subsection{Peer Discovery}
\begin{center}
\includegraphics[width=0.9\textwidth]{sequence/peer.png}
\end{center}
\caption{Peer Discovery}
\label{fig:6}
\end{figure}
\newpage
\section{Collaboration Diagrams}
\subsection{Content Discovery}
\begin{figure}[!hpt]
\begin{center}
\includegraphics[width=0.9\textwidth]{collaboration/content.png}
\end{center}
\caption{Content Discovery}
\label{fig:7}
\end{figure}
\begin{figure}[!hpt]
\subsection{Data Discovery}
\begin{center}
\includegraphics[width=0.9\textwidth]{collaboration/data.png}
\end{center}
\caption{Data Discovery}
\label{fig:8}
\end{figure}
\begin{figure}[!hpt]
\subsection{Peer Discovery}
\begin{center}
\includegraphics[width=0.9\textwidth]{collaboration/peer.png}
\end{center}
\caption{Peer Discovery}
\label{fig:9}
\end{figure}
\newpage
\section{Activity Diagrams}
\subsection{Content Discovery}
\begin{figure}[!hpt]
\begin{center}
\includegraphics[width=0.9\textwidth]{activity/content.png}
\end{center}
\caption{Content Discovery}
\label{fig:10}
\end{figure}
\begin{figure}[!hpt]
\subsection{Data Discovery}
\begin{center}
\includegraphics[width=0.9\textwidth]{activity/data.png}
\end{center}
\caption{Data Discovery}
\label{fig:11}
\end{figure}
\begin{figure}[!hpt]
\subsection{Peer Discovery}
\begin{center}
\includegraphics[width=0.9\textwidth]{activity/peer.png}
\end{center}
\caption{Peer Discovery}
\label{fig:12}
\end{figure}
\newpage
\section{System State Diagram}
\subsection{System State Diagram}
\begin{figure}[!hpt]
\begin{center}
\includegraphics[width=0.9\textwidth]{activity/content.png}
\end{center}
\caption{System State Diagram}
\label{fig:13}
\end{figure}
\newpage
\section{Componenet Diagram}
\subsection{Component Diagram}
\begin{figure}[!hpt]
\begin{center}
\includegraphics[width=0.9\textwidth]{component/comp.png}
\end{center}
\caption{Component Diagram}
\label{fig:14}
\end{figure}
\newpage
\section{Class Diagram}
\subsection{Class Diagram}
\begin{figure}[!hpt]
\begin{center}
\includegraphics[width=0.9\textwidth]{class/class.png}
\end{center}
\caption{Class Diagram}
\label{fig:15}
\end{figure}
%TODO
\newpage
\end{document}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment