Add research2 draft
[swifty.git] / doc / research2 / src / intro.tex
1 %\section{\fontfamily{phv}\selectfont{\large{\bfseries{INTRODUCTION}}}}
2
3 The \emph{swift} protocol is a generic multiparty transport protocol. Its mission is to disseminate content among a 
4 swarm of peers. Basically, it answers one and only one request: \emph{'Here is a hash! Give me data for it!'}. Such
5 entities as storage, servers and connections are abstracted and are virtually invisible at the API layer. Given a hash,
6 the data is received from whatever source available and data integrity is checked cryptographically with Merkle hash
7 trees.
8
9 If you need some data it is somewhat faster and/or cheaper downloading it from a nearby well-provisioned replica, but 
10 on the other hand, this process requires that multiple parties (e.g. consumers, the data sources, CDN
11 sites\cite{cdnwiki} , mirrors, peers) have to be coordinate. As the Internet content  is in a continuous increasing
12 nowadays, the overhead of peer/replica coordination becomes higher then the mass of the download itself. Thus, the niche
13 for multiparty transfers expands. Still, current, relevant technologies are tightly coupled to a single use case or even
14 infrastructure of a particular corporation. These are the reasons of the \emph{swift} protocol appearance with its
15 primary goal to act as a generic content-centric multiparty transport protocol that allows seamless, effortless data
16 dissemination on the big cloud represented by the Internet.
17
18 // TODO - swift description paragraph
19
20 \textbf{Contribution}. // TODO
21
22 \begin{comment}
23 Our main objective is to integrate \emph{swift} as a transport protocol in the Linux kernel
24 networking stack. This will provide notable performance improvement regarding data transfer. We intend to do this with
25 minimal intrusion effect in the Linux kernel and also to change as little as possible the current \emph{swift}
26 implementation. Another goal is to provide a transparent API between the kernel and the user space. A developer will use
27 a socket-like interface when building an application on top of the \emph{swift} protocol.
28 \end{comment}
29
30 \textbf{Outline}. The rest of the paper is organized as follows. In section \ref{sec:preliminarywork} we discuss some
31 previous approaches in designing the system with their sthrengths and weaknesess. In section \ref{sec:arch}
32  presents our current approach to integrate the \emph{swift} protocol as a transport layer protocol into the Linux
33 kernel. Section \ref{sec:rawsock} presents a preliminary implementation using raw socktes that prepares the ground for
34 the final stage of the project.  We describe our testing scenariou in detail in section \ref{sec:testing}. Section
35 \ref{sec:summary} concludes the article and refers to future work.