From: Oana Baron Date: Wed, 8 Jun 2011 07:17:23 +0000 (+0300) Subject: research2: Draft architecture + figures X-Git-Url: http://p2p-next.cs.pub.ro/gitweb/?a=commitdiff_plain;h=01842ae2dab5b873e246d61cfb9ed37debe48d03;hp=875d343c0d4b39ab781d553db244e3ae86ef67a8;p=swifty.git research2: Draft architecture + figures --- diff --git a/doc/research2/img/AppFinal.pdf b/doc/research2/img/AppFinal.pdf deleted file mode 100644 index eba161b..0000000 Binary files a/doc/research2/img/AppFinal.pdf and /dev/null differ diff --git a/doc/research2/img/arch-overview2.dia b/doc/research2/img/archov.dia similarity index 100% rename from doc/research2/img/arch-overview2.dia rename to doc/research2/img/archov.dia diff --git a/doc/research2/img/archov.png b/doc/research2/img/archov.png new file mode 100644 index 0000000..8bd52b0 Binary files /dev/null and b/doc/research2/img/archov.png differ diff --git a/doc/research2/img/kernel.dia b/doc/research2/img/kernel.dia new file mode 100644 index 0000000..396c9ec --- /dev/null +++ b/doc/research2/img/kernel.dia @@ -0,0 +1,834 @@ + + + + + + + + + + + + + #Letter# + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #Sender (Seeder) / Receiver (Leecher)# + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #socket API# + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #user space# + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #kernel space# + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #raw socket implementation# + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #Linux kernel implementation# + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #piece (binmap) +management# + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #piece (binmap) +management# + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #file +management# + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #hash +management# + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #peer discovery# + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/research2/img/kernel.dia.autosave b/doc/research2/img/kernel.dia.autosave new file mode 100644 index 0000000..cb443f9 --- /dev/null +++ b/doc/research2/img/kernel.dia.autosave @@ -0,0 +1,986 @@ + + + + + + + + + + + + + #Letter# + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #Sender (Seeder) / Receiver (Leecher)# + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #??LEDBAT??# + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #socket API# + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #user space# + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #kernel space# + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #raw socket implementation# + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #transport protocol# + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #Linux kernel implementation# + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #piece (binmap) +management# + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #piece (binmap) +management# + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #file +management# + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #hash +management# + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #peer discovery# + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/research2/img/kernel.png b/doc/research2/img/kernel.png new file mode 100644 index 0000000..3a6eb55 Binary files /dev/null and b/doc/research2/img/kernel.png differ diff --git a/doc/research2/img/net.dia b/doc/research2/img/net.dia new file mode 100644 index 0000000..0c5a57f Binary files /dev/null and b/doc/research2/img/net.dia differ diff --git a/doc/research2/img/net.png b/doc/research2/img/net.png new file mode 100644 index 0000000..f178ffd Binary files /dev/null and b/doc/research2/img/net.png differ diff --git a/doc/research2/src/arch.tex b/doc/research2/src/arch.tex index e69de29..1e16e6e 100644 --- a/doc/research2/src/arch.tex +++ b/doc/research2/src/arch.tex @@ -0,0 +1,42 @@ + + +In this section we present our current architectural design along with the motivation of choices. We are also going to +detail our protocol and the packet structure used. + +In figure \labelindexref{Figure}{img:archov} we see the main conceptual modules: Application module, +wrapper library, peer discovery overlay and the swift transport protocol layer. + +\image[scale=0.4]{img/archov.png}{img:archov}{Overview architecture} + +The Application module represents the remaining part of the old swift implementation. This is the part that remains in +user space and contains the file management and hash management features. + +The wrapper library module defines a socket-like API for the user space applications. An regular program will use those +calls instead of the normal socket ones to use the multiparty sockets. For the moment those calls are simulated system +calls that initially are resolved with the socket raw implementation (still in user space) . +In the future this wrapper library will represent entry points into the kernel. + +The peer discovery overlay will remain unchanged. It is still going to work based on UDP sockets and link the same +levels in the swift implementation as before. + +The multiparty protocol is implemented for now by a user level socket raw layer. This has the advantage of simulating the +real design modularization but also permit an easier debugging and testing procedure of the integration. In the next step +this part will be represented by a kernel patch that will communicate through custom made system calls with the wrapper +library. + +\image[scale=0.5]{img/kernel.png}{img:kernel}{Detail architecture} + +\begin{comment} +In this picture we try to define more which elements are in US and which are in KS. +In the first implementation we will make an US implementation for our protocol with raw socket to validate our architecture +and to make easier our kernel implementation that will communicate with this implementation. + +Raw socket implementation will support all syscalls and it will be a copy of our kernel implementation. +This implementation will have the same API and behavior with kernel implementation. The peer discover will be in +Application implementation and it will be developer problems how to implement and how to manage it. +When you make a syscall you need to pass the ips where the protocol can find the specify hash + +In the first implementation a swift socket will be available for only one operation transmit data or receive data. +In the last implementation the swift protocol will be develop in kernel space, and it will be accessible with a datagram +socket that will support all socket syscalls. It will intend to support both operations (receive/ send) data over only one socket. +\end{comment} \ No newline at end of file diff --git a/doc/research2/src/rawsock.tex b/doc/research2/src/rawsock.tex index e69de29..fd40910 100644 --- a/doc/research2/src/rawsock.tex +++ b/doc/research2/src/rawsock.tex @@ -0,0 +1,4 @@ + + + +