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

%
% Header
%

\newcommand{\header}[0]{
\pagestyle{fancy}
\lhead{\it UROP Proposal: Fall 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 September 15, 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.75in}

\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.  Once
a powerful search framework has been designed and developed, it will
be possible to implement a file sharing application on top of it.

\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 the problem of
finding pieces of data in the network that meet some search criterion
is drastically more difficult.  Our search framework will enable this
type of functionality.

On top of this search framework, we will build a file sharing
application that will leverage the searching capabilities to find
files by their meta-data (such as file names).  Furthermore, the
underlying DHT will allow us to achieve availability hitherto unseen
in file sharing applications by using various types of caching to
actively store both popular and difficult-to-find files across the
network where they can be accessed even if the original source is
rarely online or lacks the resources to meet the demand for files.

\section*{Upcoming term}

This UROP is a continuation of a project started during summer 2004.
During the summer, we considered many designs and algorithms and wrote
some simple proof-of-concept test programs.  This term we are aiming
to submit a paper to the upcoming IPTPS conference on our design and
implement the complete system.

\end{document}
