Related work + Design
authorTudorCazangiu <tudor.cazangiu@gmail.com>
Wed, 6 Jun 2012 00:20:23 +0000 (03:20 +0300)
committerTudorCazangiu <tudor.cazangiu@gmail.com>
Wed, 6 Jun 2012 00:20:23 +0000 (03:20 +0300)
doc/paper.bib
doc/src/design.tex
doc/src/related.tex

index 63e6f47..bfa0227 100644 (file)
@@ -3,3 +3,92 @@
        note = "http://www.redhat.com/products/software/ecommerce/tux"
 }
 
+@inproceedings{planetLab,
+  added-at = {2011-08-15T00:00:00.000+0200},
+  author = {Wang, Haiyang and Liu, Jiangchuan and Xu, Ke},
+  biburl = {http://www.bibsonomy.org/bibtex/2ad5b0b63f2996824cea06e295264704c/dblp},
+  booktitle = {IWQoS},
+  ee = {http://dx.doi.org/10.1109/IWQoS.2010.5542713},
+  interhash = {9ff06150c22a98e0497ab0b2e42c5f04},
+  intrahash = {ad5b0b63f2996824cea06e295264704c},
+  isbn = {978-1-4244-5987-2},
+  keywords = {dblp},
+  pages = {1-2},
+  publisher = {IEEE},
+  timestamp = {2011-08-15T00:00:00.000+0200},
+  title = {Exploring BitTorrent peer distribution via hybrid PlanetLab-Internet measurement.},
+  url = {http://dblp.uni-trier.de/db/conf/iwqos/iwqos2010.html#WangLX10},
+  year = 2010
+}
+
+@techreport{pouwelse,
+  added-at = {2006-06-19T05:21:36.000+0200},
+  author = {Pouwelse, J.A. and Garbacki, P. and Epema, D.H.J. and Sips, H.J.},
+  biburl = {http://www.bibsonomy.org/bibtex/2d30a4d1718729e84a12360b33aad0b3b/root},
+  description = {P2P Bittorrent Tribler},
+  institution = {Delft University of Technology},
+  interhash = {98f0ae5ade6995c3ec1397bc8c4e27fe},
+  intrahash = {d30a4d1718729e84a12360b33aad0b3b},
+  keywords = {P2P},
+  month = Apr,
+  number = {PDS-2004-003},
+  series = {PDS technical report},
+  timestamp = {2006-06-19T05:21:36.000+0200},
+  title = {A Measurement Study of the BitTorrent Peer-to-Peer File-Sharing System},
+  url = {http://www.pds.ewi.tudelft.nl/reports/2004/PDS-2004-003},
+  year = 2004
+}
+
+@inproceedings{guo,
+  added-at = {2007-07-11T00:38:33.000+0200},
+  address = {Berkeley, CA, USA},
+  author = {Guo, Lei and Chen, Songqing and Xiao, Zhen and Tan, Enhua and Ding, Xiaoning and Zhang, Xiaodong},
+  biburl = {http://www.bibsonomy.org/bibtex/2836853ae91b04fbf42c5cd05effa86b5/camrdale},
+  booktitle = {Proc. Internet Measurement Conference},
+  interhash = {c70e586999a8561e33256138bb2eff20},
+  intrahash = {836853ae91b04fbf42c5cd05effa86b5},
+  keywords = {bittorrent imported-10-07-2007},
+  month = {October},
+  timestamp = {2007-07-11T00:38:33.000+0200},
+  title = {Measurements, Analysis, and Modeling of {BitTorrent}-like Systems},
+  year = 2005
+}
+
+@inproceedings{bharambe,
+  added-at = {2007-07-18T00:00:00.000+0200},
+  author = {Bharambe, Ashwin R. and Herley, Cormac and Padmanabhan, Venkata N.},
+  biburl = {http://www.bibsonomy.org/bibtex/246e32be2a3aa0c1f7d3b6cb84f801bcb/dblp},
+  booktitle = {INFOCOM},
+  date = {2007-07-18},
+  description = {dblp},
+  ee = {http://dx.doi.org/10.1109/INFOCOM.2006.328},
+  interhash = {df159881e5ee5b50bea7b3d8b34bf257},
+  intrahash = {46e32be2a3aa0c1f7d3b6cb84f801bcb},
+  keywords = {dblp},
+  publisher = {IEEE},
+  timestamp = {2007-07-18T00:00:00.000+0200},
+  title = {Analyzing and Improving a BitTorrent Networks Performance Mechanisms.},
+  url = {http://dblp.uni-trier.de/db/conf/infocom/infocom2006.html#BharambeHP06},
+  year = 2006
+}
+
+@inproceedings{garbacki,
+  added-at = {2007-01-09T00:00:00.000+0100},
+  author = {Garbacki, Pawel and Iosup, Alexandru and Epema, Dick H. J. and van Steen, Maarten},
+  biburl = {http://www.bibsonomy.org/bibtex/2b45513c8079454488900220f6b76f36b/dblp},
+  booktitle = {Peer-to-Peer Computing},
+  date = {2007-01-09},
+  description = {dblp},
+  editor = {Montresor, Alberto and Wierzbicki, Adam and Shahmehri, Nahid},
+  ee = {http://doi.ieeecomputersociety.org/10.1109/P2P.2006.1},
+  interhash = {a3289512ca0096a0bb2cbc001839ee1a},
+  intrahash = {b45513c8079454488900220f6b76f36b},
+  isbn = {0-7695-2679-9},
+  keywords = {dblp},
+  pages = {23-30},
+  publisher = {IEEE Computer Society},
+  timestamp = {2007-01-09T00:00:00.000+0100},
+  title = {2Fast : Collaborative Downloads in P2P Networks.},
+  url = {http://dblp.uni-trier.de/db/conf/p2p/p2p2006.html#GarbackiIES06},
+  year = 2006
+}
index 186fa80..b374935 100644 (file)
@@ -1,12 +1,40 @@
 \section{Design}
 \label{sec:design}
 
-How this implementation is seen in the userspace.
+Nowadays all the peer to peer protocols run in user space. One of the
+most important delay appear when file transfers occurs. For every open,
+read or write operation which is made on a file or a socket, a
+system call is made. This generate a context switch, which waste a
+lot of time, mainly because of the translation lookaside
+buffer(TLB) flush.
+
+In our design we try to remove this waste time, by doing all the
+operation which generate a system call in kernel space. This mean,
+from the sender perspective opening the file, reading from the
+file and writing data into the socket and from the receiver
+perspective, opening the file, reading data from socket and
+writing data into the file in kernel space. The approach eliminate
+almost all the system calls. The only informations which must be
+sent from user space into kernel space, are in the sender case,
+the name of the file which must be transferred and the address of
+the receiver or receivers. In the case of the receiver a system
+call can be used to get informations about the transfer, like the
+files which are transferred and the status of the operations.
+
+In our implementation we use datagram to send and receive information. The UDP protocol is simple and the overhead is very small, but the protocol is not connection oriented which can lead to loss of informations. In the next subsections I will give more information about the our sender and receiver kernel modules design.
 
 \subsection{P2PKP Sender}
 \label{subsec:sender}
-How files are sent.
+
+The sender module use a socket, to communicate from user space to kernel space, The system calls used are connect and write. When a user want to transfer a file to one or more peers the name of the file, and the ip address of the receivers must be provided. The connect system call is used to specify a destination, for a file. Multiple destinations can be specified by using multiple connect operations. After all the destinations are sent from user space to kernel space, a write operation must be used, to send the name of the file, which must be transferred to the peers. The name of the file, represent the absolute path of the file which will be transferred to the peers. After this operations are sent from user space to kernel space, all the transfer will occur in kernel space, so no additional system calls will be made.
+For each connect system call the kernel module create a new socket for the communication with the specified peer. After the write system call the kernel module, try to open the file. If the operation succeed, the module start reading data from the file, and writing into all the sockets created after connect operations. After all the content of the file is read and write to each socket, the file and the sockets are closed. 
+
+Every socket created in the user space is designed to transfer one or more files to multiple destinations. The total number of system calls used to transfer multiple files to multiple recipients is equal with the number of files plus the number of recipients.
 
 \subsection{P2PKP Received}
 \label{subsec:receiver}
-How files are received.
+
+The receiver module is implemented with a kernel module. The communication with user space is realised using a socket. Bind system call is used to set the port on which the module will listen for incoming data. The read operation is used to specify the file in which the incoming informations are stored. The file is specified using a global path name. At this moment we store all the data in the same file. We only try to view if the transfer time is good enough. 
+
+After the bind operation, the module start listening and when informations are received, they are stored in the file specified with read system call. At this time the total number of system calls used to receive files is only two.
index 77d2879..11a5ea7 100644 (file)
@@ -1,7 +1,13 @@
 \section{Related Work}
 \label{sec:related}
-Perhaps here we can talk a bit about the Swift protocol, or other
-implementations of application layer protocols that are implemented in kernel
-\cite{tux}.
 
+Measurements and improvements in Peer-to-Peer systems have been the focus of commercial and scientific players alike. Thorough analysis, a diversity of approaches, different interests have sparked a plethora of novel mechanisms, architectures, updates and extensions to existing applications as well as new and improved implementations to both old and new problems. Recent years have shown particular interest in the streaming capabilities of Peer-to-Peer solutions, resulting in a surge of updates, extensions and trials. Novel protocols such as swift are proof to the continuous birth of new protocols in the ever evolving Internet.
+
+Most measurements and evaluations involving the BitTorrent protocol and applications are either concerned with the behavior of a real-world swarm or with the internal design of the protocol. There has been little focus on creating a self-sustained swarm management environment capable of deploying hundreds of controlled peers, and subsequently gathering results and interpreting them.
+
+The PlanetLab infrastructure provides a realistic testbed for Peer-to-Peer experiments. PlanetLab nodes are connected to the Internet and experiments have a more realistic testbed where delays, bandwidth and other are subject to change. Tools are also available to aid in conducting experiments and data collection \cite{planetLab}.
+
+Pouwelse et al. \cite{pouwelse} have done extensive analysis on the BitTorrent protocol using large real-world swarms focusing on the overall performance and user satisfaction. Guo et al. \cite{guo} have modeled the BitTorrent protocol and provided a formal approach to its functionality. Bharambe et al. \cite{bharambe} have done extensive studies on improving BitTorrent’s network performance.
+
+Garbacki et al. \cite{garbacki} have created a simulator for testing 2Fast, a collaborative download protocol. The simulator is useful only for small swarms that require control. Real-world experiments involved using real systems communicating with real BitTorrent clients in the swarm.