X-Git-Url: http://p2p-next.cs.pub.ro/gitweb/?a=blobdiff_plain;f=doc%2Fsrc%2Fintroduction.tex;h=1e3b57ef0de46770bf5d5890e244ce2d1ef65095;hb=9a8004aad7630028ccafa207626a0100b06f2736;hp=bac26ceeb796c02f5c61dab88deda61d8258eb50;hpb=a8b0cb2d31f3e36b3c845c1e5c6f86161b3925df;p=p2p-kernel-protocol.git diff --git a/doc/src/introduction.tex b/doc/src/introduction.tex index bac26ce..1e3b57e 100644 --- a/doc/src/introduction.tex +++ b/doc/src/introduction.tex @@ -1,4 +1,39 @@ \section{Introduction} \label{sec:intro} -Paper introduction. + +Peer-to-peer protocols currently form the most heavily used protocol class in +the Internet, along with BitTorrent, the most popular protocol for content +distribution. A high number of studies and investigations have been undertaken +to measure, analyse and improve the inner workings of the BitTorrent protocol. +However, enhancing the protocols used at the network layer is not the only +approach to improving file sharing techniques, but also optimizing the client +implementations (P2P applications). As usually these applications are not CPU +but rather I/O bound, new research opportunities have appeared in the +Operating Systems field. + +This paper aims to improve peer-to-peer technologies by providing a reliable +and performing implementation of the SWIFT\cite{swift} multiparty protocol at +the kernel level. Basically we developed a new UNIX kernel module that +provides the implementation of a completely new protocol, capable of +transferring multiple files between multiple peers using a single system call. +We are very confident that this approach must improve the performance of P2P +file sharing application by reducing the overhead of the kernel context +switches caused by multiple system calls. + +Currently, the most efficient implementation of an file content distribution +application in an UNIX environment is using the \texttt{sendfile} system call. +This implementation uses a zero-copy mechanism that transfers the content of a +file from the hard disk to the network interface without passing any data to +userspace. Considering these qualifications, we have compared our module's +benchmarks with \texttt{sendfile}'s in order to classify the enhancements +brought by this implementation. + +The content of this paper is organized as it follows: in the next section we +will present some related work on the multiparty topics. In Section +\ref{sec:design} we describe how the kernel module was designed to be +used in userspace, followed by the actual implementation in Section +\ref{sec:implementation}. In the next two sections we will present +some performance tests we have conducted along with the results achieved. +Finally, in Section \ref{sec:conclusions} we will draw some conclusions +followed by the some further work that has to be done.