\documentclass[12pt]{article}
\usepackage{fullpage}
\usepackage{doublespace}
\usepackage{fancyhdr}

%
% Header
%

\newcommand{\header}[0]{
\pagestyle{fancy}
\lhead{\it UROP Proposal: Summer 2004}
\rhead{\it Austin Clements}
\cfoot{\thepage}
\thispagestyle{plain}
\begin{singlespace}
\noindent
\begin{tabular}[t]{c}
  \hbox to 6.4in { UROP Proposal \hfill Austin Clements } \\
  \hbox to 6.4in { Professor Karger \hfill July 22, 2004 } \\
  \hline \\ {\Large Efficient Searching in a Chord-based Peer-to-Peer
    System}
\end{tabular}
\end{singlespace}
}

%
% Set margins to account for header
%

\setlength{\topmargin}{-0.2in}
\setlength{\headheight}{0.2in}
\setlength{\headsep}{0.15in}
\setlength{\textheight}{8.5in}

\begin{document}

\header

\section*{Background}

Peer-to-peer (P2P) networks represent an approach to communications on
the Internet that does not rely on centralized systems, and thus does
not share the drawbacks of centralized designs.  However, there are
many theoretical complications involved in P2P networks that make
constructing effective ones difficult.

Existing first-generation P2P networks such as Gnutella laid the
groundwork for P2P experimentation.  These networks were based on
simplistic approaches that lacked many desirable theoretical
properties, making them highly inefficient and often ineffective.
However, despite these drawbacks, their popularity demonstrated the
importance and utility of P2P networks.  Recent work in this field has
led to the development of distributed hash tables (DHTs) which can be
used to provide mathematical guarantees about the efficiency and
effectiveness of P2P networks.  Because DHT-based networks guarantee
prompt and reliable communications within the network, they are a
prime candidate for the development of second-generation P2P networks
specifically designed to utilize their mathematical guarantees.

One particularly important problem for many P2P networks is that of
searching for data in the network.  Unfortunately, due to their
decentralized nature, it also happens to be a very difficult problem
to solve, and one to which no clear solution has yet been found.

\section*{Project}

To this end, we propose to design and develop a search framework atop
Chord, a DHT developed here at MIT.  Chord provides the primitive of
efficiently looking up a node in the network that is responsible for a
particular numeric identifier.  Thus, it is easy to find a data in the
network whose existence you are already aware of, but it cannot simply
find pieces of data in the network that meet some search criterion.
Our framework will enable this type of functionality.

A good search mechanism is essential in order to support one
particularly common application of P2P networks: file sharing.  Thus,
we will also be developing a P2P file sharing application to utilize
our search framework.  By storing file meta-data (such as file names)
in the P2P network, users will be able to search for and subsequently
retrieve files from the network.

\end{document}
