Add research2 draft
authorOana Baron <baronoana@gmail.com>
Mon, 6 Jun 2011 20:58:21 +0000 (23:58 +0300)
committerOana Baron <baronoana@gmail.com>
Mon, 6 Jun 2011 20:58:21 +0000 (23:58 +0300)
22 files changed:
doc/research2/API.txt [new file with mode: 0644]
doc/research2/Makefile [new file with mode: 0644]
doc/research2/img/.gitignore [new file with mode: 0644]
doc/research2/img/AppFinal.pdf [new file with mode: 0644]
doc/research2/img/RD.pdf [new file with mode: 0644]
doc/research2/img/arch-overview2.dia [new file with mode: 0644]
doc/research2/img/header.dia [new file with mode: 0644]
doc/research2/img/tree.png [new file with mode: 0644]
doc/research2/img/untitled folder/AppFinal.png [new file with mode: 0644]
doc/research2/img/untitled folder/AppFinal_bak.png [new file with mode: 0644]
doc/research2/img/untitled folder/App_Fin.svg [new file with mode: 0644]
doc/research2/img/untitled folder/RD.png [new file with mode: 0644]
doc/research2/img/untitled folder/RD_.pdf [new file with mode: 0644]
doc/research2/img/untitled folder/RD_.svg [new file with mode: 0644]
doc/research2/my-report.bib [new file with mode: 0644]
doc/research2/my-report.tex [new file with mode: 0644]
doc/research2/src/arch.tex [new file with mode: 0644]
doc/research2/src/intro.tex [new file with mode: 0644]
doc/research2/src/preliminarywork.tex [new file with mode: 0644]
doc/research2/src/rawsock.tex [new file with mode: 0644]
doc/research2/src/summary.tex [new file with mode: 0644]
doc/research2/src/testing.tex [new file with mode: 0644]

diff --git a/doc/research2/API.txt b/doc/research2/API.txt
new file mode 100644 (file)
index 0000000..d90851c
--- /dev/null
@@ -0,0 +1,48 @@
+This is the swift structures:
+// swift interface
+typedef struct swift {
+       int socketListener, socketData;
+       struct sockaddr_in socketListenerAddr;
+} *Swift;
+
+// swift_addr structure similar with in_addr 
+struct swift_addr {
+       unsigned short N;                       // e.g. number of s_addr
+       unsigned long s_addr[MAX_IPs];          // i.p. ip list
+};
+
+// swift struct similar with sock_addr
+typedef struct sockSwiftaddr {
+    short              sin_family;             // e.g. AF_INET
+    unsigned short     sin_port;               // e.g. htons(3490)
+    struct swift_addr   sin_addr;              // see struct swift_addr, below
+} *SockSwiftaddr;
+
+// list of swift_addr
+struct listsockaddr {
+       unsigned short N;
+       struct sockaddr_in sa[MAX_IPs];
+};
+
+With this new structures we modify the normal socket api and the new api is:
+
+// Function to create a Swift socket
+Swift socketSwift();
+
+// Function to close a Swift socket
+void closeSwift(Swift);
+
+// Function to listen to a port
+int listenfromSwift (Swift s, void *buf, size_t len, int flags,
+                 struct sockSwiftaddr * __restrict__ from, socklen_t *fromlen);
+
+// Function to bind a port for swift socket
+int bindSwift(Swift s, const struct sockSwiftaddr *my_addr, socklen_t addrlen);
+
+// Function to receive a message
+ssize_t recvFromSwift(Swift s, void *buf, size_t len, int flags,
+                 struct sockSwiftaddr *from, socklen_t *fromlen);
+                 
+// Function to send a message
+ssize_t sendToSwift(Swift s, const void *buf, size_t len, int flags, 
+                               const struct sockSwiftaddr *to, socklen_t tolen);
diff --git a/doc/research2/Makefile b/doc/research2/Makefile
new file mode 100644 (file)
index 0000000..5c87740
--- /dev/null
@@ -0,0 +1,29 @@
+BASENAME = my-report
+PDF = $(addsuffix .pdf, $(BASENAME))
+DVI = $(addsuffix .dvi, $(BASENAME))
+TEX = $(addsuffix .tex, $(BASENAME))
+BIB = $(addsuffix .bib, $(BASENAME))
+LATEX = latex
+PDFLATEX = pdflatex
+BIBTEX = bibtex
+
+.PHONY: all clean
+
+all: $(PDF)
+
+$(DVI): $(TEX) $(BIB) src/
+       $(LATEX) $<
+       $(BIBTEX) $(BASENAME)
+       # Twice, so TOC is also updated
+       $(LATEX) $<
+       $(LATEX) $<
+
+$(PDF): $(TEX) $(BIB) src/
+       $(PDFLATEX) $<
+       $(BIBTEX) $(BASENAME)
+       # Twice, so TOC is also updated
+       $(PDFLATEX) $<
+       $(PDFLATEX) $<
+
+clean:
+       -rm -f *~ *.aux *.log *.blg *.bbl *.out *.pdf src/*~ *.backup src/*.backup
diff --git a/doc/research2/img/.gitignore b/doc/research2/img/.gitignore
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/doc/research2/img/AppFinal.pdf b/doc/research2/img/AppFinal.pdf
new file mode 100644 (file)
index 0000000..eba161b
Binary files /dev/null and b/doc/research2/img/AppFinal.pdf differ
diff --git a/doc/research2/img/RD.pdf b/doc/research2/img/RD.pdf
new file mode 100644 (file)
index 0000000..9152371
Binary files /dev/null and b/doc/research2/img/RD.pdf differ
diff --git a/doc/research2/img/arch-overview2.dia b/doc/research2/img/arch-overview2.dia
new file mode 100644 (file)
index 0000000..f4ba392
--- /dev/null
@@ -0,0 +1,952 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<dia:diagram xmlns:dia="http://www.lysator.liu.se/~alla/dia/">
+  <dia:diagramdata>
+    <dia:attribute name="background">
+      <dia:color val="#ffffff"/>
+    </dia:attribute>
+    <dia:attribute name="pagebreak">
+      <dia:color val="#000099"/>
+    </dia:attribute>
+    <dia:attribute name="paper">
+      <dia:composite type="paper">
+        <dia:attribute name="name">
+          <dia:string>#Letter#</dia:string>
+        </dia:attribute>
+        <dia:attribute name="tmargin">
+          <dia:real val="2.5399999618530273"/>
+        </dia:attribute>
+        <dia:attribute name="bmargin">
+          <dia:real val="2.5399999618530273"/>
+        </dia:attribute>
+        <dia:attribute name="lmargin">
+          <dia:real val="2.5399999618530273"/>
+        </dia:attribute>
+        <dia:attribute name="rmargin">
+          <dia:real val="2.5399999618530273"/>
+        </dia:attribute>
+        <dia:attribute name="is_portrait">
+          <dia:boolean val="true"/>
+        </dia:attribute>
+        <dia:attribute name="scaling">
+          <dia:real val="1"/>
+        </dia:attribute>
+        <dia:attribute name="fitto">
+          <dia:boolean val="false"/>
+        </dia:attribute>
+      </dia:composite>
+    </dia:attribute>
+    <dia:attribute name="grid">
+      <dia:composite type="grid">
+        <dia:attribute name="width_x">
+          <dia:real val="1"/>
+        </dia:attribute>
+        <dia:attribute name="width_y">
+          <dia:real val="1"/>
+        </dia:attribute>
+        <dia:attribute name="visible_x">
+          <dia:int val="1"/>
+        </dia:attribute>
+        <dia:attribute name="visible_y">
+          <dia:int val="1"/>
+        </dia:attribute>
+        <dia:composite type="color"/>
+      </dia:composite>
+    </dia:attribute>
+    <dia:attribute name="color">
+      <dia:color val="#d8e5e5"/>
+    </dia:attribute>
+    <dia:attribute name="guides">
+      <dia:composite type="guides">
+        <dia:attribute name="hguides"/>
+        <dia:attribute name="vguides"/>
+      </dia:composite>
+    </dia:attribute>
+  </dia:diagramdata>
+  <dia:layer name="Background" visible="true" active="true">
+    <dia:object type="Standard - Box" version="0" id="O0">
+      <dia:attribute name="obj_pos">
+        <dia:point val="18.7875,10.65"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="18.7375,10.6;53.1875,15"/>
+      </dia:attribute>
+      <dia:attribute name="elem_corner">
+        <dia:point val="18.7875,10.65"/>
+      </dia:attribute>
+      <dia:attribute name="elem_width">
+        <dia:real val="34.349999999999994"/>
+      </dia:attribute>
+      <dia:attribute name="elem_height">
+        <dia:real val="4.2999999999999972"/>
+      </dia:attribute>
+      <dia:attribute name="show_background">
+        <dia:boolean val="true"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Text" version="1" id="O1">
+      <dia:attribute name="obj_pos">
+        <dia:point val="35.9625,12.8"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="31.3513,12.2725;40.5738,13.3275"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>#Application (libswift)#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="0" name="Helvetica"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="1.1288888454437256"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="35.9625,13.1125"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#000000"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="1"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+      <dia:attribute name="valign">
+        <dia:enum val="2"/>
+      </dia:attribute>
+      <dia:connections>
+        <dia:connection handle="0" to="O0" connection="8"/>
+      </dia:connections>
+    </dia:object>
+    <dia:object type="Standard - Box" version="0" id="O2">
+      <dia:attribute name="obj_pos">
+        <dia:point val="18.7875,17.8126"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="18.7375,17.7626;53.1875,22.1626"/>
+      </dia:attribute>
+      <dia:attribute name="elem_corner">
+        <dia:point val="18.7875,17.8126"/>
+      </dia:attribute>
+      <dia:attribute name="elem_width">
+        <dia:real val="34.349999999999994"/>
+      </dia:attribute>
+      <dia:attribute name="elem_height">
+        <dia:real val="4.2999999999999972"/>
+      </dia:attribute>
+      <dia:attribute name="show_background">
+        <dia:boolean val="true"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Box" version="0" id="O3">
+      <dia:attribute name="obj_pos">
+        <dia:point val="18.7375,24.9752"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="18.6875,24.9252;53.1375,29.3252"/>
+      </dia:attribute>
+      <dia:attribute name="elem_corner">
+        <dia:point val="18.7375,24.9752"/>
+      </dia:attribute>
+      <dia:attribute name="elem_width">
+        <dia:real val="34.349999999999994"/>
+      </dia:attribute>
+      <dia:attribute name="elem_height">
+        <dia:real val="4.2999999999999972"/>
+      </dia:attribute>
+      <dia:attribute name="show_background">
+        <dia:boolean val="true"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Box" version="0" id="O4">
+      <dia:attribute name="obj_pos">
+        <dia:point val="57.9,10.65"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="57.85,10.6;64.45,22.15"/>
+      </dia:attribute>
+      <dia:attribute name="elem_corner">
+        <dia:point val="57.9,10.65"/>
+      </dia:attribute>
+      <dia:attribute name="elem_width">
+        <dia:real val="6.5000000000000071"/>
+      </dia:attribute>
+      <dia:attribute name="elem_height">
+        <dia:real val="11.449999999999999"/>
+      </dia:attribute>
+      <dia:attribute name="show_background">
+        <dia:boolean val="true"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Text" version="1" id="O5">
+      <dia:attribute name="obj_pos">
+        <dia:point val="35.9625,19.9626"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="30.4087,19.4351;41.5162,20.4901"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>#wrapper library (swiftlib)#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="0" name="Helvetica"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="1.1288888454437256"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="35.9625,20.2751"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#000000"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="1"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+      <dia:attribute name="valign">
+        <dia:enum val="2"/>
+      </dia:attribute>
+      <dia:connections>
+        <dia:connection handle="0" to="O2" connection="8"/>
+      </dia:connections>
+    </dia:object>
+    <dia:object type="Standard - Text" version="1" id="O6">
+      <dia:attribute name="obj_pos">
+        <dia:point val="35.9125,27.1252"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="20.4225,26.5977;51.4025,27.6527"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>#Multiparty protocol (Tranport Layer) (raw sockets) (state automaton)#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="0" name="Helvetica"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="1.1288888454437256"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="35.9125,27.4377"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#000000"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="1"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+      <dia:attribute name="valign">
+        <dia:enum val="2"/>
+      </dia:attribute>
+      <dia:connections>
+        <dia:connection handle="0" to="O3" connection="8"/>
+      </dia:connections>
+    </dia:object>
+    <dia:object type="Standard - Text" version="1" id="O7">
+      <dia:attribute name="obj_pos">
+        <dia:point val="61.15,16.375"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="58.2275,15.4199;64.0725,17.3301"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>#peer discovery
+overlay#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="0" name="Helvetica"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="0.98777773976325989"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="61.15,16.1549"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#000000"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="1"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+      <dia:attribute name="valign">
+        <dia:enum val="2"/>
+      </dia:attribute>
+      <dia:connections>
+        <dia:connection handle="0" to="O4" connection="8"/>
+      </dia:connections>
+    </dia:object>
+    <dia:object type="Standard - Line" version="0" id="O8">
+      <dia:attribute name="obj_pos">
+        <dia:point val="23.1125,15.0003"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="22.7507,14.9503;23.4743,17.8741"/>
+      </dia:attribute>
+      <dia:attribute name="conn_endpoints">
+        <dia:point val="23.1125,15.0003"/>
+        <dia:point val="23.1125,17.7623"/>
+      </dia:attribute>
+      <dia:attribute name="numcp">
+        <dia:int val="1"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow">
+        <dia:enum val="22"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_length">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_width">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Line" version="0" id="O9">
+      <dia:attribute name="obj_pos">
+        <dia:point val="31.6868,15.01"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="31.325,14.96;32.0486,17.8838"/>
+      </dia:attribute>
+      <dia:attribute name="conn_endpoints">
+        <dia:point val="31.6868,15.01"/>
+        <dia:point val="31.6868,17.772"/>
+      </dia:attribute>
+      <dia:attribute name="numcp">
+        <dia:int val="1"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow">
+        <dia:enum val="22"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_length">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_width">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Line" version="0" id="O10">
+      <dia:attribute name="obj_pos">
+        <dia:point val="40.1118,14.97"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="39.75,14.92;40.4736,17.8438"/>
+      </dia:attribute>
+      <dia:attribute name="conn_endpoints">
+        <dia:point val="40.1118,14.97"/>
+        <dia:point val="40.1118,17.732"/>
+      </dia:attribute>
+      <dia:attribute name="numcp">
+        <dia:int val="1"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow">
+        <dia:enum val="22"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_length">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_width">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Line" version="0" id="O11">
+      <dia:attribute name="obj_pos">
+        <dia:point val="48.0868,14.93"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="47.725,14.88;48.4486,17.8038"/>
+      </dia:attribute>
+      <dia:attribute name="conn_endpoints">
+        <dia:point val="48.0868,14.93"/>
+        <dia:point val="48.0868,17.692"/>
+      </dia:attribute>
+      <dia:attribute name="numcp">
+        <dia:int val="1"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow">
+        <dia:enum val="22"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_length">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_width">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Line" version="0" id="O12">
+      <dia:attribute name="obj_pos">
+        <dia:point val="22.9368,22.1303"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="22.575,22.0803;23.2986,25.0041"/>
+      </dia:attribute>
+      <dia:attribute name="conn_endpoints">
+        <dia:point val="22.9368,22.1303"/>
+        <dia:point val="22.9368,24.8923"/>
+      </dia:attribute>
+      <dia:attribute name="numcp">
+        <dia:int val="1"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow">
+        <dia:enum val="22"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_length">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_width">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Line" version="0" id="O13">
+      <dia:attribute name="obj_pos">
+        <dia:point val="31.5111,22.14"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="31.1493,22.09;31.8729,25.0138"/>
+      </dia:attribute>
+      <dia:attribute name="conn_endpoints">
+        <dia:point val="31.5111,22.14"/>
+        <dia:point val="31.5111,24.902"/>
+      </dia:attribute>
+      <dia:attribute name="numcp">
+        <dia:int val="1"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow">
+        <dia:enum val="22"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_length">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_width">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Line" version="0" id="O14">
+      <dia:attribute name="obj_pos">
+        <dia:point val="39.9361,22.1"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="39.5743,22.05;40.2979,24.9738"/>
+      </dia:attribute>
+      <dia:attribute name="conn_endpoints">
+        <dia:point val="39.9361,22.1"/>
+        <dia:point val="39.9361,24.862"/>
+      </dia:attribute>
+      <dia:attribute name="numcp">
+        <dia:int val="1"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow">
+        <dia:enum val="22"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_length">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_width">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Line" version="0" id="O15">
+      <dia:attribute name="obj_pos">
+        <dia:point val="47.9111,22.11"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="47.5493,22.06;48.2729,24.9838"/>
+      </dia:attribute>
+      <dia:attribute name="conn_endpoints">
+        <dia:point val="47.9111,22.11"/>
+        <dia:point val="47.9111,24.872"/>
+      </dia:attribute>
+      <dia:attribute name="numcp">
+        <dia:int val="1"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow">
+        <dia:enum val="22"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_length">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_width">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Line" version="0" id="O16">
+      <dia:attribute name="obj_pos">
+        <dia:point val="53.1875,12.8"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="53.137,12.3961;57.8505,13.1539"/>
+      </dia:attribute>
+      <dia:attribute name="conn_endpoints">
+        <dia:point val="53.1875,12.8"/>
+        <dia:point val="57.8,12.75"/>
+      </dia:attribute>
+      <dia:attribute name="numcp">
+        <dia:int val="1"/>
+      </dia:attribute>
+      <dia:attribute name="start_arrow">
+        <dia:enum val="22"/>
+      </dia:attribute>
+      <dia:attribute name="start_arrow_length">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:attribute name="start_arrow_width">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow">
+        <dia:enum val="22"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_length">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_width">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:connections>
+        <dia:connection handle="0" to="O0" connection="4"/>
+      </dia:connections>
+    </dia:object>
+    <dia:object type="Standard - Line" version="0" id="O17">
+      <dia:attribute name="obj_pos">
+        <dia:point val="53.1375,19.9626"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="53.0865,19.5185;57.889,20.3093"/>
+      </dia:attribute>
+      <dia:attribute name="conn_endpoints">
+        <dia:point val="53.1375,19.9626"/>
+        <dia:point val="57.838,19.8652"/>
+      </dia:attribute>
+      <dia:attribute name="numcp">
+        <dia:int val="1"/>
+      </dia:attribute>
+      <dia:attribute name="start_arrow">
+        <dia:enum val="22"/>
+      </dia:attribute>
+      <dia:attribute name="start_arrow_length">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:attribute name="start_arrow_width">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow">
+        <dia:enum val="22"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_length">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_width">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:connections>
+        <dia:connection handle="0" to="O2" connection="4"/>
+      </dia:connections>
+    </dia:object>
+    <dia:object type="Standard - Text" version="1" id="O18">
+      <dia:attribute name="obj_pos">
+        <dia:point val="20.95,23.6"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="19.2325,23.2263;22.6675,23.9737"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>#sys_socket#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="0" name="Helvetica"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="0.80000000000000004"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="20.95,23.8212"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#000000"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="1"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+      <dia:attribute name="valign">
+        <dia:enum val="2"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Text" version="1" id="O19">
+      <dia:attribute name="obj_pos">
+        <dia:point val="29.5,23.6"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="28.1187,23.2263;30.8812,23.9737"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>#sys_bind#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="0" name="Helvetica"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="0.80000000000000004"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="29.5,23.8212"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#000000"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="1"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+      <dia:attribute name="valign">
+        <dia:enum val="2"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Text" version="1" id="O20">
+      <dia:attribute name="obj_pos">
+        <dia:point val="37.6,23.55"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="35.4862,23.1763;39.7137,23.9238"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>#sys_recvfrom#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="0" name="Helvetica"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="0.80000000000000004"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="37.6,23.7713"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#000000"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="1"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+      <dia:attribute name="valign">
+        <dia:enum val="2"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Text" version="1" id="O21">
+      <dia:attribute name="obj_pos">
+        <dia:point val="45.5887,23.5838"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="43.815,23.2101;47.3625,23.9576"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>#sys_sendto#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="0" name="Helvetica"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="0.80000000000000004"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="45.5887,23.8051"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#000000"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="1"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+      <dia:attribute name="valign">
+        <dia:enum val="2"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Text" version="1" id="O22">
+      <dia:attribute name="obj_pos">
+        <dia:point val="21.05,16.45"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="19.2288,16.0763;22.8712,16.8238"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>#socketSwift#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="0" name="Helvetica"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="0.80000000000000004"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="21.05,16.6713"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#000000"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="1"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+      <dia:attribute name="valign">
+        <dia:enum val="2"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Text" version="1" id="O23">
+      <dia:attribute name="obj_pos">
+        <dia:point val="29.15,16.35"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="26.7512,15.9763;31.5487,16.7238"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>#listenfromSwift#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="0" name="Helvetica"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="0.80000000000000004"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="29.15,16.5713"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#000000"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="1"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+      <dia:attribute name="valign">
+        <dia:enum val="2"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Text" version="1" id="O24">
+      <dia:attribute name="obj_pos">
+        <dia:point val="37.6,16.4"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="35.3825,16.0263;39.8175,16.7737"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>#recvfromSwift#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="0" name="Helvetica"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="0.80000000000000004"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="37.6,16.6212"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#000000"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="1"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+      <dia:attribute name="valign">
+        <dia:enum val="2"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Text" version="1" id="O25">
+      <dia:attribute name="obj_pos">
+        <dia:point val="46.05,16.45"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="44.1562,16.0763;47.9438,16.8238"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>#sendToSwift#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="0" name="Helvetica"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="0.80000000000000004"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="46.05,16.6713"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#000000"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="1"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+      <dia:attribute name="valign">
+        <dia:enum val="2"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Text" version="1" id="O26">
+      <dia:attribute name="obj_pos">
+        <dia:point val="55.4,12.1"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="54.6325,11.7262;56.1675,12.4737"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>#hash#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="0" name="Helvetica"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="0.80000000000000004"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="55.4,12.3212"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#000000"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="1"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+      <dia:attribute name="valign">
+        <dia:enum val="2"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Text" version="1" id="O27">
+      <dia:attribute name="obj_pos">
+        <dia:point val="55.4175,13.7338"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="54.5212,13.36;56.3137,14.1075"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>#peers#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="0" name="Helvetica"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="0.80000000000000004"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="55.4175,13.955"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#000000"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="1"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+      <dia:attribute name="valign">
+        <dia:enum val="2"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Text" version="1" id="O28">
+      <dia:attribute name="obj_pos">
+        <dia:point val="55.3537,19.0838"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="54.5862,18.7101;56.1212,19.4576"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>#hash#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="0" name="Helvetica"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="0.80000000000000004"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="55.3537,19.3051"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#000000"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="1"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+      <dia:attribute name="valign">
+        <dia:enum val="2"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Text" version="1" id="O29">
+      <dia:attribute name="obj_pos">
+        <dia:point val="55.3713,20.7175"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="54.475,20.3438;56.2675,21.0912"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>#peers#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="0" name="Helvetica"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="0.80000000000000004"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="55.3713,20.9387"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#000000"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="1"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+      <dia:attribute name="valign">
+        <dia:enum val="2"/>
+      </dia:attribute>
+    </dia:object>
+  </dia:layer>
+</dia:diagram>
diff --git a/doc/research2/img/header.dia b/doc/research2/img/header.dia
new file mode 100644 (file)
index 0000000..68a6128
Binary files /dev/null and b/doc/research2/img/header.dia differ
diff --git a/doc/research2/img/tree.png b/doc/research2/img/tree.png
new file mode 100644 (file)
index 0000000..6a34747
Binary files /dev/null and b/doc/research2/img/tree.png differ
diff --git a/doc/research2/img/untitled folder/AppFinal.png b/doc/research2/img/untitled folder/AppFinal.png
new file mode 100644 (file)
index 0000000..7f40b45
Binary files /dev/null and b/doc/research2/img/untitled folder/AppFinal.png differ
diff --git a/doc/research2/img/untitled folder/AppFinal_bak.png b/doc/research2/img/untitled folder/AppFinal_bak.png
new file mode 100644 (file)
index 0000000..1042df3
Binary files /dev/null and b/doc/research2/img/untitled folder/AppFinal_bak.png differ
diff --git a/doc/research2/img/untitled folder/App_Fin.svg b/doc/research2/img/untitled folder/App_Fin.svg
new file mode 100644 (file)
index 0000000..9ac289b
--- /dev/null
@@ -0,0 +1,405 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">\r
+<!-- Generated by Microsoft Visio 11.0, SVG Export, v1.0 App_Fin.svg Page-1 -->\r
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="8.26772in"\r
+               height="11.6929in" viewBox="0 0 595.276 841.89" xml:space="preserve" color-interpolation-filters="sRGB" class="st16">\r
+       <v:documentProperties v:langID="1033" v:viewMarkup="false">\r
+               <v:userDefs>\r
+                       <v:ud v:nameU="msvNoAutoConnect" v:val="VT0(1):26"/>\r
+               </v:userDefs>\r
+       </v:documentProperties>\r
+\r
+       <style type="text/css">\r
+       <![CDATA[\r
+               .st1 {fill:#96afcf;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}\r
+               .st2 {fill:#ff0000;font-family:Arial;font-size:1.00001em}\r
+               .st3 {fill:#dde2cd;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}\r
+               .st4 {fill:#ff0000;font-family:Calibri;font-size:1.00001em}\r
+               .st5 {fill:#ffffff;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}\r
+               .st6 {fill:#000000;font-family:Calibri;font-size:0.666664em}\r
+               .st7 {stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}\r
+               .st8 {font-size:1em}\r
+               .st9 {marker-end:url(#mrkr4-24);marker-start:url(#mrkr10-22);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}\r
+               .st10 {fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1;stroke-width:0.08695652173913}\r
+               .st11 {fill:none;stroke:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.72}\r
+               .st12 {fill:#000000;font-family:Calibri;font-size:1.00001em}\r
+               .st13 {fill:#edcdcb;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}\r
+               .st14 {fill:#000000;font-family:Arial;font-size:0.666664em}\r
+               .st15 {fill:#f1eef4;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}\r
+               .st16 {fill:none;fill-rule:evenodd;font-size:12;overflow:visible;stroke-linecap:square;stroke-miterlimit:3}\r
+       ]]>\r
+       </style>\r
+\r
+       <defs id="Markers">\r
+               <g id="lend10">\r
+                       <path\r
+                                       d="M 0 0.75 C -0.414214 0.75 -0.75 0.414214 -0.75 -0 -0.75 -0.414214 -0.414214 -0.75 -0 -0.75 0.414214 -0.75 0.75 -0.414214 0.75 -0 0.75 0.414214 0.414214 0.75 0 0.75 Z "\r
+                                       style="stroke:none"/>\r
+               </g>\r
+               <marker id="mrkr10-22" class="st10" v:arrowType="10" v:arrowSize="2" v:setback="7.125" refX="7.125" orient="auto"\r
+                               markerUnits="strokeWidth">\r
+                       <use xlink:href="#lend10" transform="scale(11.5) "/>\r
+               </marker>\r
+               <g id="lend4">\r
+                       <path d="M 2 1 L -0 0 L 2 -1 L 2 1 " style="stroke:none"/>\r
+               </g>\r
+               <marker id="mrkr4-24" class="st10" v:arrowType="4" v:arrowSize="2" v:setback="23" refX="-23" orient="auto"\r
+                               markerUnits="strokeWidth">\r
+                       <use xlink:href="#lend4" transform="scale(-11.5,-11.5) "/>\r
+               </marker>\r
+       </defs>\r
+       <g v:mID="0" v:index="1" v:groupContext="foregroundPage">\r
+               <title>Page-1</title>\r
+               <v:pageProperties v:drawingScale="0.0393701" v:pageScale="0.0393701" v:drawingUnits="24" v:shadowOffsetX="8.50394"\r
+                               v:shadowOffsetY="-8.50394"/>\r
+               <v:layer v:name="Annotations" v:index="0"/>\r
+               <g id="shape3-1" v:mID="3" v:groupContext="shape" transform="translate(138.898,-538.583)">\r
+                       <title>Rounded rectangle.3</title>\r
+                       <desc>Kernel Space</desc>\r
+                       <v:userDefs>\r
+                               <v:ud v:nameU="visVersion" v:val="VT0(12):26"/>\r
+                       </v:userDefs>\r
+                       <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/>\r
+                       <v:textRect cx="136.063" cy="778.11" width="272.13" height="127.559"/>\r
+                       <path d="M257.95 841.89 A14.1733 14.1733 -180 0 0 272.13 827.72 L272.13 728.5 A14.1733 14.1733 -180 0 0 257.95 714.33\r
+                                                L14.17 714.33 A14.1733 14.1733 -180 0 0 -0 728.5 L0 827.72 A14.1733 14.1733 -180 0 0 14.17 841.89 L257.95\r
+                                                841.89 Z" class="st1"/>\r
+                       <text x="4" y="781.71" class="st2" v:langID="1033"><v:paragraph/><v:tabList/>Kernel Space</text>                </g>\r
+               <g id="shape2-4" v:mID="2" v:groupContext="shape" transform="translate(141.732,-717.165)">\r
+                       <title>Rounded rectangle</title>\r
+                       <desc>User Space</desc>\r
+                       <v:userDefs>\r
+                               <v:ud v:nameU="visVersion" v:val="VT0(12):26"/>\r
+                       </v:userDefs>\r
+                       <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/>\r
+                       <v:textRect cx="134.646" cy="789.449" width="269.3" height="104.882"/>\r
+                       <path d="M255.12 841.89 A14.1733 14.1733 -180 0 0 269.29 827.72 L269.29 751.18 A14.1733 14.1733 -180 0 0 255.12 737.01\r
+                                                L14.17 737.01 A14.1733 14.1733 -180 0 0 0 751.18 L0 827.72 A14.1733 14.1733 -180 0 0 14.17 841.89 L255.12\r
+                                                841.89 Z" class="st3"/>\r
+                       <text x="4" y="793.05" class="st4" v:langID="1033"><v:paragraph/><v:tabList/>User Space</text>          </g>\r
+               <g id="shape1-7" v:mID="1" v:groupContext="shape" transform="translate(248.031,-425.197)">\r
+                       <title>Cloud</title>\r
+                       <desc>Internet</desc>\r
+                       <v:userDefs>\r
+                               <v:ud v:nameU="visVersion" v:val="VT0(12):26"/>\r
+                       </v:userDefs>\r
+                       <v:textBlock v:margins="rect(1,1,1,1)" v:tabSpace="42.5197"/>\r
+                       <v:textRect cx="49.6063" cy="806.457" width="99.22" height="70.8661"/>\r
+                       <path d="M2.15 806.53 A4.11071 4.37684 0 0 1 3.55 798.49 A5.58712 5.94883 0 0 1 8.84 789.46 A6.41543 6.83077 0 0 1 17.91\r
+                                                781.74 A4.37825 4.6617 0 0 1 25.82 777.73 A4.80773 5.11898 0 0 1 34.27 775.06 A9.49887 10.1138 0 0 1 47.47\r
+                                                773.38 A2.83791 3.02163 0 0 1 53.02 773.47 A3.16289 2.80085 38.87 0 1 58.9 773.36 A2.88433 2.03141 9.83\r
+                                                0 1 63.97 775.06 A5.38682 3.78202 13.74 0 1 74.29 777.75 A3.32082 2.23215 138.75 0 1 77.96 780.35 A5.45372\r
+                                                5.80679 0 0 1 86.69 786.63 A6.04052 4.24731 12.33 0 1 90.22 792.02 A7.71029 5.44445 176.96 0 1 95.43 801\r
+                                                A4.4562 3.14752 0 0 1 96.09 806.53 A2.22409 2.36808 0 1 1 95.73 810.65 A4.78543 5.09524 0 0 1 92.59 819.09\r
+                                                A3.15768 2.6659 177.55 1 1 89.39 823.6 A6.41543 6.83077 0 0 1 80.32 831.33 A5.01636 3.54317 0 0 1 72.42\r
+                                                835.34 A3.98821 4.24641 0 0 1 64.78 837.63 A4.16392 3.38295 7.87 0 1 56.84 839.26 A3.9331 2.77804 0 0 1\r
+                                                49.12 839.71 A5.03056 3.5532 0 0 1 39.54 839.01 A4.596 3.22656 14.33 0 1 31.51 835.56 A3.98256 2.41128 11.15\r
+                                                1 1 24.43 833.04 A4.70418 5.00874 0 0 1 17.81 827.27 A6.42064 6.83632 0 0 1 9.98 827.27 A11.2897 7.95527\r
+                                                8.91 0 1 5.65 819.09 A4.44141 4.72895 0 0 1 1.58 810.93 A4.37974 3.07437 14.02 0 1 2.15 806.53 Z"\r
+                                       class="st5"/>\r
+                       <text x="36.34" y="808.86" class="st6" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>Internet</text>               </g>\r
+               <g id="shape6-10" v:mID="6" v:groupContext="shape" transform="translate(1097.01,107.717) rotate(90)">\r
+                       <title>Data store</title>\r
+                       <desc>Swift Socket (Data transfer)</desc>\r
+                       <v:userDefs>\r
+                               <v:ud v:nameU="visVersion" v:val="VT0(12):26"/>\r
+                       </v:userDefs>\r
+                       <v:textBlock v:margins="rect(1,1,1,1)" v:tabSpace="42.5197"/>\r
+                       <v:textRect cx="41.1024" cy="827.717" width="82.21" height="28.3465"/>\r
+                       <path d="M0 841.89 L82.2 841.89" class="st7"/>\r
+                       <path d="M0 813.54 L82.2 813.54" class="st7"/>\r
+                       <text x="21.24" y="825.32" class="st6" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>Swift Socket<v:newlineChar/><tspan\r
+                                               x="17.22" dy="1.2em" class="st8">(</tspan>Data transfer)</text>         </g>\r
+               <g id="shape10-16" v:mID="10" v:groupContext="shape" transform="translate(481.803,1024.39) rotate(165.379)">\r
+                       <title>Pointer (1-D)</title>\r
+                       <v:userDefs>\r
+                               <v:ud v:nameU="visVersion" v:val="VT0(12):26"/>\r
+                       </v:userDefs>\r
+                       <path d="M1.71 841.89 L2.07 841.89 L28.17 841.89" class="st9"/>\r
+               </g>\r
+               <g id="shape11-25" v:mID="11" v:groupContext="shape" transform="translate(1078.58,238.11) rotate(90)">\r
+                       <title>Pointer (1-D).11</title>\r
+                       <v:userDefs>\r
+                               <v:ud v:nameU="visVersion" v:val="VT0(12):26"/>\r
+                       </v:userDefs>\r
+                       <path d="M1.71 841.89 L2.07 841.89 L2.98 841.89" class="st9"/>\r
+               </g>\r
+               <g id="shape12-32" v:mID="12" v:groupContext="shape" transform="translate(777.133,-350.722) rotate(39.9364)">\r
+                       <title>Pointer (1-D).12</title>\r
+                       <v:userDefs>\r
+                               <v:ud v:nameU="visVersion" v:val="VT0(12):26"/>\r
+                       </v:userDefs>\r
+                       <path d="M1.71 841.89 L2.07 841.89 L73.96 841.89" class="st9"/>\r
+               </g>\r
+               <g id="shape13-39" v:mID="13" v:groupContext="shape" transform="translate(1078.58,266.457) rotate(90)">\r
+                       <title>Pointer (1-D).13</title>\r
+                       <v:userDefs>\r
+                               <v:ud v:nameU="visVersion" v:val="VT0(12):26"/>\r
+                       </v:userDefs>\r
+                       <path d="M1.71 841.89 L2.07 841.89 L2.98 841.89" class="st9"/>\r
+               </g>\r
+               <g id="shape14-46" v:mID="14" v:groupContext="shape" transform="translate(1193.39,107.717) rotate(90)">\r
+                       <title>Data store.14</title>\r
+                       <desc>UDP Socket (Information update)</desc>\r
+                       <v:userDefs>\r
+                               <v:ud v:nameU="visVersion" v:val="VT0(12):26"/>\r
+                       </v:userDefs>\r
+                       <v:textBlock v:margins="rect(1,1,1,1)" v:tabSpace="42.5197"/>\r
+                       <v:textRect cx="41.1024" cy="827.717" width="82.21" height="28.3465"/>\r
+                       <path d="M0 841.89 L82.2 841.89" class="st7"/>\r
+                       <path d="M0 813.54 L82.2 813.54" class="st7"/>\r
+                       <text x="22.32" y="825.32" class="st6" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>UDP Socket<v:newlineChar/><tspan\r
+                                               x="6.81" dy="1.2em" class="st8">(</tspan>Information update)</text>             </g>\r
+               <g id="shape19-52" v:mID="19" v:groupContext="shape" transform="translate(1206.14,209.764) rotate(90)">\r
+                       <title>Pointer (1-D).19</title>\r
+                       <v:userDefs>\r
+                               <v:ud v:nameU="visVersion" v:val="VT0(12):26"/>\r
+                       </v:userDefs>\r
+                       <path d="M1.71 841.89 L2.07 841.89 L2.98 841.89" class="st9"/>\r
+               </g>\r
+               <g id="shape20-59" v:mID="20" v:groupContext="shape" transform="translate(1206.14,238.11) rotate(90)">\r
+                       <title>Pointer (1-D).20</title>\r
+                       <v:userDefs>\r
+                               <v:ud v:nameU="visVersion" v:val="VT0(12):26"/>\r
+                       </v:userDefs>\r
+                       <path d="M1.71 841.89 L2.07 841.89 L2.98 841.89" class="st9"/>\r
+               </g>\r
+               <g id="shape21-66" v:mID="21" v:groupContext="shape" transform="translate(1206.14,266.457) rotate(90)">\r
+                       <title>Pointer (1-D).21</title>\r
+                       <v:userDefs>\r
+                               <v:ud v:nameU="visVersion" v:val="VT0(12):26"/>\r
+                       </v:userDefs>\r
+                       <path d="M1.71 841.89 L2.07 841.89 L2.98 841.89" class="st9"/>\r
+               </g>\r
+               <g id="shape22-73" v:mID="22" v:groupContext="shape" transform="translate(876.186,963.161) rotate(142.549)">\r
+                       <title>Pointer (1-D).22</title>\r
+                       <v:userDefs>\r
+                               <v:ud v:nameU="visVersion" v:val="VT0(12):26"/>\r
+                       </v:userDefs>\r
+                       <path d="M1.71 841.89 L2.07 841.89 L78.39 841.89" class="st9"/>\r
+               </g>\r
+               <g id="shape27-80" v:mID="27" v:groupContext="shape" transform="translate(1145.2,266.457) rotate(90)">\r
+                       <title>Pointer (1-D).27</title>\r
+                       <v:userDefs>\r
+                               <v:ud v:nameU="visVersion" v:val="VT0(12):26"/>\r
+                       </v:userDefs>\r
+                       <path d="M1.71 841.89 L2.07 841.89 L2.98 841.89" class="st9"/>\r
+               </g>\r
+               <g id="shape28-87" v:mID="28" v:groupContext="shape" transform="translate(1143.78,238.11) rotate(90)">\r
+                       <title>Pointer (1-D).28</title>\r
+                       <v:userDefs>\r
+                               <v:ud v:nameU="visVersion" v:val="VT0(12):26"/>\r
+                       </v:userDefs>\r
+                       <path d="M1.71 841.89 L2.07 841.89 L2.98 841.89" class="st9"/>\r
+               </g>\r
+               <g id="shape29-94" v:mID="29" v:groupContext="shape" transform="translate(481.803,-604.863) rotate(14.6209)">\r
+                       <title>Pointer (1-D).29</title>\r
+                       <v:userDefs>\r
+                               <v:ud v:nameU="visVersion" v:val="VT0(12):26"/>\r
+                       </v:userDefs>\r
+                       <path d="M1.71 841.89 L2.07 841.89 L28.17 841.89" class="st9"/>\r
+               </g>\r
+               <g id="shape30-101" v:mID="30" v:groupContext="shape" v:layerMember="0" transform="translate(262.205,-602.362)">\r
+                       <title>12pt. text</title>\r
+                       <desc>…</desc>\r
+                       <v:userDefs>\r
+                               <v:ud v:nameU="AntiScale" v:val="VT0(1):26"/>\r
+                               <v:ud v:nameU="AutoWidth" v:val="VT0(0.19685039370079):24"/>\r
+                               <v:ud v:nameU="WidthIncrement" v:val="VT0(0.098425196850394):24"/>\r
+                               <v:ud v:nameU="visVersion" v:val="VT0(12):26"/>\r
+                       </v:userDefs>\r
+                       <v:textBlock v:margins="rect(0,0,0,0)" v:tabSpace="42.5197"/>\r
+                       <v:textRect cx="7.08661" cy="834.803" width="14.18" height="14.1732"/>\r
+                       <rect x="0" y="827.717" width="14.1732" height="14.1732" class="st11"/>\r
+                       <text x="2.94" y="838.4" class="st12" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>…</text>             </g>\r
+               <g id="shape32-104" v:mID="32" v:groupContext="shape" v:layerMember="0" transform="translate(262.205,-574.016)">\r
+                       <title>12pt. text.32</title>\r
+                       <desc>…</desc>\r
+                       <v:userDefs>\r
+                               <v:ud v:nameU="AntiScale" v:val="VT0(1):26"/>\r
+                               <v:ud v:nameU="AutoWidth" v:val="VT0(0.19685039370079):24"/>\r
+                               <v:ud v:nameU="WidthIncrement" v:val="VT0(0.098425196850394):24"/>\r
+                               <v:ud v:nameU="visVersion" v:val="VT0(12):26"/>\r
+                       </v:userDefs>\r
+                       <v:textBlock v:margins="rect(0,0,0,0)" v:tabSpace="42.5197"/>\r
+                       <v:textRect cx="7.08661" cy="834.803" width="14.18" height="14.1732"/>\r
+                       <rect x="0" y="827.717" width="14.1732" height="14.1732" class="st11"/>\r
+                       <text x="2.94" y="838.4" class="st12" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>…</text>             </g>\r
+               <g id="shape33-107" v:mID="33" v:groupContext="shape" transform="translate(1140.87,364.718) rotate(94.7636)">\r
+                       <title>Pointer (1-D).33</title>\r
+                       <v:userDefs>\r
+                               <v:ud v:nameU="visVersion" v:val="VT0(12):26"/>\r
+                       </v:userDefs>\r
+                       <path d="M1.71 841.89 L2.07 841.89 L45.68 841.89" class="st9"/>\r
+               </g>\r
+               <g id="shape31-114" v:mID="31" v:groupContext="shape" v:layerMember="0" transform="translate(262.205,-545.669)">\r
+                       <title>12pt. text.31</title>\r
+                       <desc>…</desc>\r
+                       <v:userDefs>\r
+                               <v:ud v:nameU="AntiScale" v:val="VT0(1):26"/>\r
+                               <v:ud v:nameU="AutoWidth" v:val="VT0(0.19685039370079):24"/>\r
+                               <v:ud v:nameU="WidthIncrement" v:val="VT0(0.098425196850394):24"/>\r
+                               <v:ud v:nameU="visVersion" v:val="VT0(12):26"/>\r
+                       </v:userDefs>\r
+                       <v:textBlock v:margins="rect(0,0,0,0)" v:tabSpace="42.5197"/>\r
+                       <v:textRect cx="7.08661" cy="834.803" width="14.18" height="14.1732"/>\r
+                       <rect x="0" y="827.717" width="14.1732" height="14.1732" class="st11"/>\r
+                       <text x="2.94" y="838.4" class="st12" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>…</text>             </g>\r
+               <g id="shape34-117" v:mID="34" v:groupContext="shape" transform="translate(218.268,-734.173)">\r
+                       <title>Rounded rectangle.34</title>\r
+                       <desc>Swift Library</desc>\r
+                       <v:userDefs>\r
+                               <v:ud v:nameU="visVersion" v:val="VT0(12):26"/>\r
+                       </v:userDefs>\r
+                       <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/>\r
+                       <v:textRect cx="89.2913" cy="826.299" width="178.59" height="31.1811"/>\r
+                       <path d="M164.41 841.89 A14.1733 14.1733 -180 0 0 178.58 827.72 L178.58 824.88 A14.1733 14.1733 -180 0 0 164.41 810.71\r
+                                                L14.17 810.71 A14.1733 14.1733 -180 0 0 0 824.88 L0 827.72 A14.1733 14.1733 -180 0 0 14.17 841.89 L164.41\r
+                                                841.89 Z" class="st13"/>\r
+                       <text x="67.29" y="828.7" class="st14" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>Swift Library</text>          </g>\r
+               <g id="shape23-120" v:mID="23" v:groupContext="shape" transform="translate(218.268,-779.528)">\r
+                       <title>Rounded rectangle.23</title>\r
+                       <desc>Application which uses SWIFT Library</desc>\r
+                       <v:userDefs>\r
+                               <v:ud v:nameU="visVersion" v:val="VT0(12):26"/>\r
+                       </v:userDefs>\r
+                       <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/>\r
+                       <v:textRect cx="89.2913" cy="826.299" width="178.59" height="31.1811"/>\r
+                       <path d="M164.41 841.89 A14.1733 14.1733 -180 0 0 178.58 827.72 L178.58 824.88 A14.1733 14.1733 -180 0 0 164.41 810.71\r
+                                                L14.17 810.71 A14.1733 14.1733 -180 0 0 0 824.88 L0 827.72 A14.1733 14.1733 -180 0 0 14.17 841.89 L164.41\r
+                                                841.89 Z" class="st15"/>\r
+                       <text x="28.94" y="828.7" class="st6" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>Application which uses SWIFT Library</text>            </g>\r
+               <g id="shape35-123" v:mID="35" v:groupContext="shape" transform="translate(1149.45,62.3622) rotate(90)">\r
+                       <title>Pointer (1-D).35</title>\r
+                       <v:userDefs>\r
+                               <v:ud v:nameU="visVersion" v:val="VT0(12):26"/>\r
+                       </v:userDefs>\r
+                       <path d="M1.71 841.89 L2.07 841.89 L8.65 841.89" class="st9"/>\r
+               </g>\r
+               <g id="shape36-130" v:mID="36" v:groupContext="shape" transform="translate(212.598,-632.126)">\r
+                       <title>Rounded rectangle.36</title>\r
+                       <desc>Swift Transport Layer</desc>\r
+                       <v:userDefs>\r
+                               <v:ud v:nameU="visVersion" v:val="VT0(12):26"/>\r
+                       </v:userDefs>\r
+                       <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/>\r
+                       <v:textRect cx="56.6929" cy="831.969" width="113.39" height="19.8425"/>\r
+                       <path d="M103.46 841.89 A9.92134 9.92134 -180 0 0 113.39 831.97 A9.92134 9.92134 -180 0 0 103.46 822.05 L9.92 822.05\r
+                                                A9.92134 9.92134 -180 0 0 0 831.97 A9.92134 9.92134 -180 0 0 9.92 841.89 L103.46 841.89 Z" class="st15"/>\r
+                       <text x="48.52" y="829.57" class="st6" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>Swift <v:newlineChar/><tspan\r
+                                               x="31.12" dy="1.2em" class="st8">Transport Layer </tspan> </text>               </g>\r
+               <g id="shape37-134" v:mID="37" v:groupContext="shape" transform="translate(212.598,-603.78)">\r
+                       <title>Rounded rectangle.37</title>\r
+                       <desc>IP 1</desc>\r
+                       <v:userDefs>\r
+                               <v:ud v:nameU="visVersion" v:val="VT0(12):26"/>\r
+                       </v:userDefs>\r
+                       <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/>\r
+                       <v:textRect cx="24.0945" cy="831.969" width="48.19" height="19.8425"/>\r
+                       <path d="M38.27 841.89 A9.92134 9.92134 -180 0 0 48.19 831.97 A9.92134 9.92134 -180 0 0 38.27 822.05 L9.92 822.05 A9.92134\r
+                                                9.92134 -180 0 0 0 831.97 A9.92134 9.92134 -180 0 0 9.92 841.89 L38.27 841.89 Z" class="st15"/>\r
+                       <text x="18.09" y="834.37" class="st6" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>IP 1</text>           </g>\r
+               <g id="shape38-137" v:mID="38" v:groupContext="shape" transform="translate(212.598,-547.087)">\r
+                       <title>Rounded rectangle.38</title>\r
+                       <desc>Physical Layer 1</desc>\r
+                       <v:userDefs>\r
+                               <v:ud v:nameU="visVersion" v:val="VT0(12):26"/>\r
+                       </v:userDefs>\r
+                       <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/>\r
+                       <v:textRect cx="24.0945" cy="831.969" width="48.19" height="19.8425"/>\r
+                       <path d="M38.27 841.89 A9.92134 9.92134 -180 0 0 48.19 831.97 A9.92134 9.92134 -180 0 0 38.27 822.05 L9.92 822.05 A9.92134\r
+                                                9.92134 -180 0 0 0 831.97 A9.92134 9.92134 -180 0 0 9.92 841.89 L38.27 841.89 Z" class="st15"/>\r
+                       <text x="11.11" y="829.57" class="st6" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>Physical <tspan\r
+                                               x="12.37" dy="1.2em" class="st8">Layer </tspan>1</text>         </g>\r
+               <g id="shape39-141" v:mID="39" v:groupContext="shape" transform="translate(212.598,-575.433)">\r
+                       <title>Rounded rectangle.39</title>\r
+                       <desc>Data Link 1</desc>\r
+                       <v:userDefs>\r
+                               <v:ud v:nameU="visVersion" v:val="VT0(12):26"/>\r
+                       </v:userDefs>\r
+                       <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/>\r
+                       <v:textRect cx="24.0945" cy="831.969" width="48.19" height="19.8425"/>\r
+                       <path d="M38.27 841.89 A9.92134 9.92134 -180 0 0 48.19 831.97 A9.92134 9.92134 -180 0 0 38.27 822.05 L9.92 822.05 A9.92134\r
+                                                9.92134 -180 0 0 0 831.97 A9.92134 9.92134 -180 0 0 9.92 841.89 L38.27 841.89 Z" class="st15"/>\r
+                       <text x="6.11" y="834.37" class="st6" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>Data Link 1</text>             </g>\r
+               <g id="shape7-144" v:mID="7" v:groupContext="shape" transform="translate(277.795,-575.433)">\r
+                       <title>Rounded rectangle.7</title>\r
+                       <desc>Data Link N</desc>\r
+                       <v:userDefs>\r
+                               <v:ud v:nameU="visVersion" v:val="VT0(12):26"/>\r
+                       </v:userDefs>\r
+                       <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/>\r
+                       <v:textRect cx="24.0945" cy="831.969" width="48.19" height="19.8425"/>\r
+                       <path d="M38.27 841.89 A9.92134 9.92134 -180 0 0 48.19 831.97 A9.92134 9.92134 -180 0 0 38.27 822.05 L9.92 822.05 A9.92134\r
+                                                9.92134 -180 0 0 0 831.97 A9.92134 9.92134 -180 0 0 9.92 841.89 L38.27 841.89 Z" class="st15"/>\r
+                       <text x="5.55" y="834.37" class="st6" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>Data Link N</text>             </g>\r
+               <g id="shape8-147" v:mID="8" v:groupContext="shape" transform="translate(277.795,-603.78)">\r
+                       <title>Rounded rectangle.8</title>\r
+                       <desc>IP N</desc>\r
+                       <v:userDefs>\r
+                               <v:ud v:nameU="visVersion" v:val="VT0(12):26"/>\r
+                       </v:userDefs>\r
+                       <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/>\r
+                       <v:textRect cx="24.0945" cy="831.969" width="48.19" height="19.8425"/>\r
+                       <path d="M38.27 841.89 A9.92134 9.92134 -180 0 0 48.19 831.97 A9.92134 9.92134 -180 0 0 38.27 822.05 L9.92 822.05 A9.92134\r
+                                                9.92134 -180 0 0 0 831.97 A9.92134 9.92134 -180 0 0 9.92 841.89 L38.27 841.89 Z" class="st15"/>\r
+                       <text x="17.53" y="834.37" class="st6" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>IP N</text>           </g>\r
+               <g id="shape9-150" v:mID="9" v:groupContext="shape" transform="translate(277.795,-547.087)">\r
+                       <title>Rounded rectangle.9</title>\r
+                       <desc>Physical Layer 1</desc>\r
+                       <v:userDefs>\r
+                               <v:ud v:nameU="visVersion" v:val="VT0(12):26"/>\r
+                       </v:userDefs>\r
+                       <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/>\r
+                       <v:textRect cx="24.0945" cy="831.969" width="48.19" height="19.8425"/>\r
+                       <path d="M38.27 841.89 A9.92134 9.92134 -180 0 0 48.19 831.97 A9.92134 9.92134 -180 0 0 38.27 822.05 L9.92 822.05 A9.92134\r
+                                                9.92134 -180 0 0 0 831.97 A9.92134 9.92134 -180 0 0 9.92 841.89 L38.27 841.89 Z" class="st15"/>\r
+                       <text x="11.11" y="829.57" class="st6" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>Physical <tspan\r
+                                               x="12.37" dy="1.2em" class="st8">Layer </tspan>1</text>         </g>\r
+               <g id="shape5-154" v:mID="5" v:groupContext="shape" transform="translate(331.654,-632.126)">\r
+                       <title>Rounded rectangle.5</title>\r
+                       <desc>UDP Transport Layer</desc>\r
+                       <v:userDefs>\r
+                               <v:ud v:nameU="visVersion" v:val="VT0(12):26"/>\r
+                       </v:userDefs>\r
+                       <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/>\r
+                       <v:textRect cx="32.5984" cy="831.969" width="65.2" height="19.8425"/>\r
+                       <path d="M55.28 841.89 A9.92134 9.92134 -180 0 0 65.2 831.97 A9.92134 9.92134 -180 0 0 55.28 822.05 L9.92 822.05 A9.92134\r
+                                                9.92134 -180 0 0 0 831.97 A9.92134 9.92134 -180 0 0 9.92 841.89 L55.28 841.89 Z" class="st15"/>\r
+                       <text x="25.5" y="829.57" class="st6" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>UDP <v:newlineChar/><tspan\r
+                                               x="7.03" dy="1.2em" class="st8">Transport Layer </tspan> </text>                </g>\r
+               <g id="shape15-158" v:mID="15" v:groupContext="shape" transform="translate(331.654,-575.433)">\r
+                       <title>Rounded rectangle.15</title>\r
+                       <desc>Data Link</desc>\r
+                       <v:userDefs>\r
+                               <v:ud v:nameU="visVersion" v:val="VT0(12):26"/>\r
+                       </v:userDefs>\r
+                       <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/>\r
+                       <v:textRect cx="32.5984" cy="831.969" width="65.2" height="19.8425"/>\r
+                       <path d="M55.28 841.89 A9.92134 9.92134 -180 0 0 65.2 831.97 A9.92134 9.92134 -180 0 0 55.28 822.05 L9.92 822.05 A9.92134\r
+                                                9.92134 -180 0 0 0 831.97 A9.92134 9.92134 -180 0 0 9.92 841.89 L55.28 841.89 Z" class="st15"/>\r
+                       <text x="17.54" y="834.37" class="st6" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>Data Link</text>              </g>\r
+               <g id="shape24-161" v:mID="24" v:groupContext="shape" transform="translate(331.654,-603.78)">\r
+                       <title>Rounded rectangle.24</title>\r
+                       <desc>IP</desc>\r
+                       <v:userDefs>\r
+                               <v:ud v:nameU="visVersion" v:val="VT0(12):26"/>\r
+                       </v:userDefs>\r
+                       <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/>\r
+                       <v:textRect cx="32.5984" cy="831.969" width="65.2" height="19.8425"/>\r
+                       <path d="M55.28 841.89 A9.92134 9.92134 -180 0 0 65.2 831.97 A9.92134 9.92134 -180 0 0 55.28 822.05 L9.92 822.05 A9.92134\r
+                                                9.92134 -180 0 0 0 831.97 A9.92134 9.92134 -180 0 0 9.92 841.89 L55.28 841.89 Z" class="st15"/>\r
+                       <text x="29.52" y="834.37" class="st6" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>IP</text>             </g>\r
+               <g id="shape16-164" v:mID="16" v:groupContext="shape" transform="translate(331.654,-547.087)">\r
+                       <title>Rounded rectangle.16</title>\r
+                       <desc>Physical Layer</desc>\r
+                       <v:userDefs>\r
+                               <v:ud v:nameU="visVersion" v:val="VT0(12):26"/>\r
+                       </v:userDefs>\r
+                       <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/>\r
+                       <v:textRect cx="32.5984" cy="831.969" width="65.2" height="19.8425"/>\r
+                       <path d="M55.28 841.89 A9.92134 9.92134 -180 0 0 65.2 831.97 A9.92134 9.92134 -180 0 0 55.28 822.05 L9.92 822.05 A9.92134\r
+                                                9.92134 -180 0 0 0 831.97 A9.92134 9.92134 -180 0 0 9.92 841.89 L55.28 841.89 Z" class="st15"/>\r
+                       <text x="9.92" y="834.37" class="st6" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>Physical Layer</text>          </g>\r
+       </g>\r
+</svg>\r
diff --git a/doc/research2/img/untitled folder/RD.png b/doc/research2/img/untitled folder/RD.png
new file mode 100644 (file)
index 0000000..8b7a54c
Binary files /dev/null and b/doc/research2/img/untitled folder/RD.png differ
diff --git a/doc/research2/img/untitled folder/RD_.pdf b/doc/research2/img/untitled folder/RD_.pdf
new file mode 100644 (file)
index 0000000..696d573
Binary files /dev/null and b/doc/research2/img/untitled folder/RD_.pdf differ
diff --git a/doc/research2/img/untitled folder/RD_.svg b/doc/research2/img/untitled folder/RD_.svg
new file mode 100644 (file)
index 0000000..2a076eb
--- /dev/null
@@ -0,0 +1,212 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">\r
+<!-- Generated by Microsoft Visio 11.0, SVG Export, v1.0 RD.svg Page-1 -->\r
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="8.26772in"\r
+               height="11.6929in" viewBox="0 0 595.276 841.89" xml:space="preserve" color-interpolation-filters="sRGB" class="st8">\r
+       <v:documentProperties v:langID="1033" v:viewMarkup="false">\r
+               <v:userDefs>\r
+                       <v:ud v:nameU="msvNoAutoConnect" v:val="VT0(1):26"/>\r
+               </v:userDefs>\r
+       </v:documentProperties>\r
+\r
+       <style type="text/css">\r
+       <![CDATA[\r
+               .st1 {fill:#ffffff;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}\r
+               .st2 {fill:#000000;font-family:Arial;font-size:0.666664em}\r
+               .st3 {font-size:1em}\r
+               .st4 {marker-end:url(#mrkr4-14);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}\r
+               .st5 {fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1;stroke-width:0.08695652173913}\r
+               .st6 {fill:none;stroke:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.72}\r
+               .st7 {fill:#000000;font-family:Arial;font-size:1.00001em}\r
+               .st8 {fill:none;fill-rule:evenodd;font-size:12;overflow:visible;stroke-linecap:square;stroke-miterlimit:3}\r
+       ]]>\r
+       </style>\r
+\r
+       <defs id="Markers">\r
+               <g id="lend4">\r
+                       <path d="M 2 1 L -0 0 L 2 -1 L 2 1 " style="stroke:none"/>\r
+               </g>\r
+               <marker id="mrkr4-14" class="st5" v:arrowType="4" v:arrowSize="2" v:setback="23" refX="-23" orient="auto"\r
+                               markerUnits="strokeWidth">\r
+                       <use xlink:href="#lend4" transform="scale(-11.5,-11.5) "/>\r
+               </marker>\r
+       </defs>\r
+       <g v:mID="0" v:index="1" v:groupContext="foregroundPage">\r
+               <title>Page-1</title>\r
+               <v:pageProperties v:drawingScale="0.0393701" v:pageScale="0.0393701" v:drawingUnits="24" v:shadowOffsetX="8.50394"\r
+                               v:shadowOffsetY="-8.50394"/>\r
+               <v:layer v:name="Annotations" v:index="0"/>\r
+               <g id="shape1-1" v:mID="1" v:groupContext="shape" transform="translate(56.6929,-651.969)">\r
+                       <title>Function / subroutine</title>\r
+                       <desc>Swift Application</desc>\r
+                       <v:userDefs>\r
+                               <v:ud v:nameU="visVersion" v:val="VT0(12):26"/>\r
+                       </v:userDefs>\r
+                       <v:textBlock v:margins="rect(1,1,1,1)" v:tabSpace="42.5197"/>\r
+                       <v:textRect cx="21.2598" cy="820.63" width="42.52" height="42.5197"/>\r
+                       <rect x="0" y="799.37" width="42.5197" height="42.5197" class="st1"/>\r
+                       <text x="12.59" y="818.23" class="st2" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>Swift <tspan x="1.69"\r
+                                               dy="1.2em" class="st3">Application</tspan></text>               </g>\r
+               <g id="shape2-5" v:mID="2" v:groupContext="shape" transform="translate(134.646,-651.969)">\r
+                       <title>Function / subroutine.2</title>\r
+                       <desc>Swift Library</desc>\r
+                       <v:userDefs>\r
+                               <v:ud v:nameU="visVersion" v:val="VT0(12):26"/>\r
+                       </v:userDefs>\r
+                       <v:textBlock v:margins="rect(1,1,1,1)" v:tabSpace="42.5197"/>\r
+                       <v:textRect cx="20.5512" cy="820.63" width="41.11" height="42.5197"/>\r
+                       <rect x="0" y="799.37" width="41.1024" height="42.5197" class="st1"/>\r
+                       <text x="11.88" y="818.23" class="st2" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>Swift <tspan x="8.32"\r
+                                               dy="1.2em" class="st3">Library</tspan></text>           </g>\r
+               <g id="shape3-9" v:mID="3" v:groupContext="shape" transform="translate(99.2126,-683.858)">\r
+                       <title>Invocation</title>\r
+                       <v:userDefs>\r
+                               <v:ud v:nameU="CH" v:val="VT0(5):26"/>\r
+                               <v:ud v:nameU="visVersion" v:val="VT0(12):26"/>\r
+                       </v:userDefs>\r
+                       <path d="M0 841.89 L29.91 841.89" class="st4"/>\r
+               </g>\r
+               <g id="shape4-15" v:mID="4" v:groupContext="shape" transform="translate(134.646,1021.18) rotate(180)">\r
+                       <title>Invocation.4</title>\r
+                       <v:userDefs>\r
+                               <v:ud v:nameU="CH" v:val="VT0(5):26"/>\r
+                               <v:ud v:nameU="visVersion" v:val="VT0(12):26"/>\r
+                       </v:userDefs>\r
+                       <path d="M0 841.89 L29.91 841.89" class="st4"/>\r
+               </g>\r
+               <g id="shape5-20" v:mID="5" v:groupContext="shape" transform="translate(216.142,-651.969)">\r
+                       <title>Function / subroutine.5</title>\r
+                       <desc>Kernel Space</desc>\r
+                       <v:userDefs>\r
+                               <v:ud v:nameU="visVersion" v:val="VT0(12):26"/>\r
+                       </v:userDefs>\r
+                       <v:textBlock v:margins="rect(1,1,1,1)" v:tabSpace="42.5197"/>\r
+                       <v:textRect cx="22.3228" cy="820.63" width="44.65" height="42.5197"/>\r
+                       <rect x="0" y="799.37" width="44.6457" height="42.5197" class="st1"/>\r
+                       <text x="10.76" y="818.23" class="st2" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>Kernel <tspan\r
+                                               x="10.98" dy="1.2em" class="st3">Space</tspan></text>           </g>\r
+               <g id="shape6-24" v:mID="6" v:groupContext="shape" transform="translate(297.638,-694.488)">\r
+                       <title>Function / subroutine.6</title>\r
+                       <desc>Kernel Space 1</desc>\r
+                       <v:userDefs>\r
+                               <v:ud v:nameU="visVersion" v:val="VT0(12):26"/>\r
+                       </v:userDefs>\r
+                       <v:textBlock v:margins="rect(1,1,1,1)" v:tabSpace="42.5197"/>\r
+                       <v:textRect cx="21.2598" cy="820.63" width="42.52" height="42.5197"/>\r
+                       <rect x="0" y="799.37" width="42.5197" height="42.5197" class="st1"/>\r
+                       <text x="9.7" y="818.23" class="st2" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>Kernel <tspan x="6.58"\r
+                                               dy="1.2em" class="st3">Space </tspan>1</text>           </g>\r
+               <g id="shape7-28" v:mID="7" v:groupContext="shape" transform="translate(-375.42,-393.348) rotate(-49.0856)">\r
+                       <title>Invocation.7</title>\r
+                       <v:userDefs>\r
+                               <v:ud v:nameU="CH" v:val="VT0(5):26"/>\r
+                               <v:ud v:nameU="visVersion" v:val="VT0(12):26"/>\r
+                       </v:userDefs>\r
+                       <path d="M0 841.89 L50.75 841.89" class="st4"/>\r
+               </g>\r
+               <g id="shape8-33" v:mID="8" v:groupContext="shape" transform="translate(933.845,677.521) rotate(130.914)">\r
+                       <title>Invocation.8</title>\r
+                       <v:userDefs>\r
+                               <v:ud v:nameU="CH" v:val="VT0(5):26"/>\r
+                               <v:ud v:nameU="visVersion" v:val="VT0(12):26"/>\r
+                       </v:userDefs>\r
+                       <path d="M0 841.89 L50.75 841.89" class="st4"/>\r
+               </g>\r
+               <g id="shape9-38" v:mID="9" v:groupContext="shape" transform="translate(297.638,-623.622)">\r
+                       <title>Function / subroutine.9</title>\r
+                       <desc>Kernel Space N</desc>\r
+                       <v:userDefs>\r
+                               <v:ud v:nameU="visVersion" v:val="VT0(12):26"/>\r
+                       </v:userDefs>\r
+                       <v:textBlock v:margins="rect(1,1,1,1)" v:tabSpace="42.5197"/>\r
+                       <v:textRect cx="21.2598" cy="820.63" width="42.52" height="42.5197"/>\r
+                       <rect x="0" y="799.37" width="42.5197" height="42.5197" class="st1"/>\r
+                       <text x="9.7" y="818.23" class="st2" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>Kernel <tspan x="5.92"\r
+                                               dy="1.2em" class="st3">Space N</tspan></text>           </g>\r
+               <g id="shape13-42" v:mID="13" v:groupContext="shape" transform="translate(774.097,-498.641) rotate(37.5686)">\r
+                       <title>Invocation.13</title>\r
+                       <v:userDefs>\r
+                               <v:ud v:nameU="CH" v:val="VT0(5):26"/>\r
+                               <v:ud v:nameU="visVersion" v:val="VT0(12):26"/>\r
+                       </v:userDefs>\r
+                       <path d="M0 841.89 L40.97 841.89" class="st4"/>\r
+               </g>\r
+               <g id="shape15-47" v:mID="15" v:groupContext="shape" v:layerMember="0" transform="translate(99.2126,-687.402)">\r
+                       <title>12pt. text</title>\r
+                       <desc>Request</desc>\r
+                       <v:userDefs>\r
+                               <v:ud v:nameU="AntiScale" v:val="VT0(1):26"/>\r
+                               <v:ud v:nameU="AutoWidth" v:val="VT0(0.49212598425197):24"/>\r
+                               <v:ud v:nameU="WidthIncrement" v:val="VT0(0.098425196850394):24"/>\r
+                               <v:ud v:nameU="visVersion" v:val="VT0(12):26"/>\r
+                       </v:userDefs>\r
+                       <v:textBlock v:margins="rect(0,0,0,0)" v:tabSpace="42.5197"/>\r
+                       <v:textRect cx="17.7165" cy="834.803" width="35.44" height="14.1732"/>\r
+                       <rect x="0" y="827.717" width="35.4331" height="14.1732" class="st6"/>\r
+                       <text x="2.82" y="837.2" class="st2" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>Request</text>          </g>\r
+               <g id="shape16-50" v:mID="16" v:groupContext="shape" v:layerMember="0" transform="translate(177.165,-687.402)">\r
+                       <title>12pt. text.16</title>\r
+                       <desc>SysCall</desc>\r
+                       <v:userDefs>\r
+                               <v:ud v:nameU="AntiScale" v:val="VT0(1):26"/>\r
+                               <v:ud v:nameU="AutoWidth" v:val="VT0(0.49212598425197):24"/>\r
+                               <v:ud v:nameU="WidthIncrement" v:val="VT0(0.098425196850394):24"/>\r
+                               <v:ud v:nameU="visVersion" v:val="VT0(12):26"/>\r
+                       </v:userDefs>\r
+                       <v:textBlock v:margins="rect(0,0,0,0)" v:tabSpace="42.5197"/>\r
+                       <v:textRect cx="17.7165" cy="834.803" width="35.44" height="14.1732"/>\r
+                       <rect x="0" y="827.717" width="35.4331" height="14.1732" class="st6"/>\r
+                       <text x="4.16" y="837.2" class="st2" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>SysCall</text>          </g>\r
+               <g id="shape17-53" v:mID="17" v:groupContext="shape" v:layerMember="0" transform="translate(291.26,-673.228)">\r
+                       <title>12pt. text.17</title>\r
+                       <desc>………..</desc>\r
+                       <v:userDefs>\r
+                               <v:ud v:nameU="AntiScale" v:val="VT0(1):26"/>\r
+                               <v:ud v:nameU="AutoWidth" v:val="VT0(0.68897637795276):24"/>\r
+                               <v:ud v:nameU="WidthIncrement" v:val="VT0(0.098425196850394):24"/>\r
+                               <v:ud v:nameU="visVersion" v:val="VT0(12):26"/>\r
+                       </v:userDefs>\r
+                       <v:textBlock v:margins="rect(0,0,0,0)" v:tabSpace="42.5197"/>\r
+                       <v:textRect cx="29.0551" cy="834.803" width="58.12" height="14.1732"/>\r
+                       <rect x="0" y="827.717" width="58.1102" height="14.1732" class="st6"/>\r
+                       <text x="7.72" y="838.4" class="st7" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>………..</text>              </g>\r
+               <g id="shape18-56" v:mID="18" v:groupContext="shape" transform="translate(175.748,-683.858)">\r
+                       <title>Invocation.18</title>\r
+                       <v:userDefs>\r
+                               <v:ud v:nameU="CH" v:val="VT0(5):26"/>\r
+                               <v:ud v:nameU="visVersion" v:val="VT0(12):26"/>\r
+                       </v:userDefs>\r
+                       <path d="M0 841.89 L34.87 841.89" class="st4"/>\r
+               </g>\r
+               <g id="shape19-61" v:mID="19" v:groupContext="shape" transform="translate(216.142,1021.18) rotate(180)">\r
+                       <title>Invocation.19</title>\r
+                       <v:userDefs>\r
+                               <v:ud v:nameU="CH" v:val="VT0(5):26"/>\r
+                               <v:ud v:nameU="visVersion" v:val="VT0(12):26"/>\r
+                       </v:userDefs>\r
+                       <path d="M0 841.89 L34.87 841.89" class="st4"/>\r
+               </g>\r
+               <g id="shape20-66" v:mID="20" v:groupContext="shape" v:layerMember="0" transform="translate(240.945,-722.835)">\r
+                       <title>12pt. text.20</title>\r
+                       <desc>Network communication</desc>\r
+                       <v:userDefs>\r
+                               <v:ud v:nameU="AntiScale" v:val="VT0(1):26"/>\r
+                               <v:ud v:nameU="AutoWidth" v:val="VT0(0.78740157480315):24"/>\r
+                               <v:ud v:nameU="WidthIncrement" v:val="VT0(0.098425196850394):24"/>\r
+                               <v:ud v:nameU="visVersion" v:val="VT0(12):26"/>\r
+                       </v:userDefs>\r
+                       <v:textBlock v:margins="rect(0,0,0,0)" v:tabSpace="42.5197"/>\r
+                       <v:textRect cx="28.3465" cy="834.803" width="56.7" height="14.1732"/>\r
+                       <rect x="0" y="827.717" width="56.6929" height="14.1732" class="st6"/>\r
+                       <text x="13.68" y="832.4" class="st2" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>Network <v:newlineChar/><tspan\r
+                                               x="1.45" dy="1.2em" class="st3">communication</tspan></text>            </g>\r
+               <g id="shape10-70" v:mID="10" v:groupContext="shape" transform="translate(-215.671,874.94) rotate(-142.431)">\r
+                       <title>Invocation.10</title>\r
+                       <v:userDefs>\r
+                               <v:ud v:nameU="CH" v:val="VT0(5):26"/>\r
+                               <v:ud v:nameU="visVersion" v:val="VT0(12):26"/>\r
+                       </v:userDefs>\r
+                       <path d="M0 841.89 L40.97 841.89" class="st4"/>\r
+               </g>\r
+       </g>\r
+</svg>\r
diff --git a/doc/research2/my-report.bib b/doc/research2/my-report.bib
new file mode 100644 (file)
index 0000000..728f1ee
--- /dev/null
@@ -0,0 +1,81 @@
+# sample entry
+@inproceedings{large-scale-p2p-sim,
+       author = {Dinh, Tien Tuan Anh and Theodoropoulos, Georgios and Minson, Rob},
+       title = {{Evaluating Large Scale Distributed Simulation of P2P Networks}},
+       booktitle = {DS-RT '08: Proceedings of the 2008 12th IEEE/ACM International Symposium on Distributed Simulation and Real-Time Applications},
+       year = {2008},
+       isbn = {978-0-7695-3425-1},
+       pages = {51--58},
+       doi = {http://dx.doi.org/10.1109/DS-RT.2008.36},
+       publisher = {IEEE Computer Society},
+       address = {Washington, DC, USA},
+}
+
+@misc{binmaps,
+       author = {V. Grishchenko, J. Pouwelse},
+       title = {{Binmaps: hybridizing bitmaps and binary trees}},
+       year = {2009},
+       howpublished = {http://bouillon.math.usu.ru/articles/binmaps-alenex.pdf},
+}
+
+@misc{merkle,
+       author = {R. Merkle},
+       title = {{A Digital Signature Based on a Conventional Encryption Function}},
+       booktitle = {Proceedings CRYPTO'87},
+       year = {1987},
+       pages = {369--378},
+       address = {Santa Barbara, CA, USA},       
+}
+
+@misc{bittorrent,
+       author = {Bram Cohen},
+       title = {{Incentives Build Robustness in BitTorrent}},
+       howpublished = {http://www.bittorrent.org/bittorrentecon.pdf},
+}
+
+@misc{merkle-ext,
+       author = {Arno Bakker},
+       title = {{Merkle hash torrent extension}},
+       booktitle = {BEP 30},
+       howpublished = {http://bittorrent.org/beps/bep\_0030.html},
+}
+
+@misc{ledbat,
+       author = {S. Shalunov},
+       title = {{Low Extra Delay Background Transport (LEDBAT)}},
+       howpublished = {http://www.ietf.org/id/draft-ietf-ledbat-congestion-00.txt},
+       year = {2009},
+}
+
+@misc{ledbat2,
+       author = {S. Shalunov, G. Hazel},
+       title = {{Low Extra Delay Background Transport (LEDBAT)}},
+       howpublished = {http://tools.ietf.org/html/draft-ietf-ledbat-congestion-03},
+       year = {2010},
+}
+
+
+@misc{peer-to-peer,
+       author = {B. Ford, P. Srisuresh, D. Kegel},
+       title = {{Peer-to-Peer Communication Across Network Address Translators}},
+       howpublished = {http://www.brynosaurus.com/pub/net/p2pnat/},
+}
+  
+@misc{cdnwiki,
+       title = {{Wikipedia Content Delivery Network(CDN) page}},
+       howpublished = {http://en.wikipedia.org/wiki/Content_delivery_network},
+}
+
+@misc{kernel,
+       author = {R. Love},
+       title = {{Linux Kernel Development}},
+       booktitle = {{Talking Directly to the Kernel and C Library}},
+       year = {2004},
+}
+
+@misc{socket,
+       author = {R. Stevens},
+       title = {{UNIX Network Programming, Volume 2, Second Edition}},
+       booktitle = {{Interprocess Communications}},
+       year = {1999},
+}
\ No newline at end of file
diff --git a/doc/research2/my-report.tex b/doc/research2/my-report.tex
new file mode 100644 (file)
index 0000000..543d110
--- /dev/null
@@ -0,0 +1,107 @@
+% vim: set tw=78 sts=2 sw=2 ts=8 aw et ai:
+\documentclass[12pt]{article}
+
+\usepackage[paper=a4paper, top=2cm, bottom=3cm, left=2.5cm, right=2.5cm]{geometry}
+
+\usepackage{ucs}
+\usepackage[utf8x]{inputenc}
+\usepackage[english]{babel}
+\usepackage{hyperref}    % use \url{http://$URL} or \href{http://$URL}{Name}
+\usepackage{underscore}          % underscores need not be escaped
+\usepackage{subfigure}
+\usepackage{verbatim}
+\usepackage{float}
+\usepackage{booktabs}
+
+% Support for including graphics
+\usepackage{graphicx}
+\DeclareGraphicsExtensions{.pdf,.png,.jpg}
+
+\usepackage{hyperref}
+
+\hypersetup{%
+       colorlinks=true,
+       linkcolor=blue,
+       anchorcolor=black,
+       citecolor=black,
+       urlcolor=blue,
+       bookmarks=true,
+       bookmarksnumbered=true
+}
+\urlstyle{same}
+
+\newcommand{\labelindexref}[2]{\hyperref[#2]{#1~\ref*{#2}}}
+% command for inserting labeled figures
+\newcommand{\image}[4][]{
+\begin{figure}[htb]
+\begin{center}
+\includegraphics[#1]{#2}
+\caption{#4 \label{#3}}
+\end{center}
+\end{figure}
+}
+
+\setlength{\parindent}{0pt}
+\setlength{\parskip}{2ex}
+
+
+\title{\bfseries{SWIFT in the Linux Kernel\\
+\large{\vspace*{0.4cm}Scientific supervisor: Nicolae Țăpuș\\ Technical supervisor: Răzvan Deaconescu}}}
+
+\author{Oana Baron, Bogdan Druțu\\
+Automatic Control and Computers Faculty\\
+University Politehnica of Bucharest\\
+Splaiul Independenței nr. 313, Bucharest, Romania \\
+\emph{\{oana.baron, bogdan.drutu\}@cti.pub.ro}}
+
+\date{\today}
+
+\begin{document}
+
+\maketitle
+
+%\begin{abstract}
+%\input{src/abstract}
+%\end{abstract}
+
+{\bf \hspace*{0.8cm} \textbf{\emph{Keywords}}  --  bittorrent, multiparty, transport protocol, linux kernel,\\
+\hspace*{0.8cm} Merkle hash trees, binmaps}
+
+\section{Introduction}
+\label{sec:introduction}
+\input{src/intro}
+
+\section{Preliminary Work}
+\label{sec:preliminarywork}
+\input{src/preliminarywork}
+
+%\pagebreak
+
+\section{Architecture}
+\label{sec:arch}
+\input{src/arch}
+
+\section{Raw Sockets}
+\label{sec:rawsock}
+\input{src/rawsock}
+
+\section{Testing and Evaluation}
+\label{sec:testing}
+\input{src/testing}
+
+
+\section{Conclusion and Further Work}
+\label{sec:summary}
+\input{src/summary}
+
+%\section*{Acknowledgment}
+%\label{sec:acknowledgment}
+
+%The authors would like to thank XYZ for their support and dedication.
+
+\pagebreak
+
+\bibliographystyle{abbrv}
+\bibliography{my-report}
+
+\end{document}
diff --git a/doc/research2/src/arch.tex b/doc/research2/src/arch.tex
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/doc/research2/src/intro.tex b/doc/research2/src/intro.tex
new file mode 100644 (file)
index 0000000..e5359e0
--- /dev/null
@@ -0,0 +1,35 @@
+%\section{\fontfamily{phv}\selectfont{\large{\bfseries{INTRODUCTION}}}}
+
+The \emph{swift} protocol is a generic multiparty transport protocol. Its mission is to disseminate content among a 
+swarm of peers. Basically, it answers one and only one request: \emph{'Here is a hash! Give me data for it!'}. Such
+entities as storage, servers and connections are abstracted and are virtually invisible at the API layer. Given a hash,
+the data is received from whatever source available and data integrity is checked cryptographically with Merkle hash
+trees.
+
+If you need some data it is somewhat faster and/or cheaper downloading it from a nearby well-provisioned replica, but 
+on the other hand, this process requires that multiple parties (e.g. consumers, the data sources, CDN
+sites\cite{cdnwiki} , mirrors, peers) have to be coordinate. As the Internet content  is in a continuous increasing
+nowadays, the overhead of peer/replica coordination becomes higher then the mass of the download itself. Thus, the niche
+for multiparty transfers expands. Still, current, relevant technologies are tightly coupled to a single use case or even
+infrastructure of a particular corporation. These are the reasons of the \emph{swift} protocol appearance with its
+primary goal to act as a generic content-centric multiparty transport protocol that allows seamless, effortless data
+dissemination on the big cloud represented by the Internet.
+
+// TODO - swift description paragraph
+
+\textbf{Contribution}. // TODO
+
+\begin{comment}
+Our main objective is to integrate \emph{swift} as a transport protocol in the Linux kernel
+networking stack. This will provide notable performance improvement regarding data transfer. We intend to do this with
+minimal intrusion effect in the Linux kernel and also to change as little as possible the current \emph{swift}
+implementation. Another goal is to provide a transparent API between the kernel and the user space. A developer will use
+a socket-like interface when building an application on top of the \emph{swift} protocol.
+\end{comment}
+
+\textbf{Outline}. The rest of the paper is organized as follows. In section \ref{sec:preliminarywork} we discuss some
+previous approaches in designing the system with their sthrengths and weaknesess. In section \ref{sec:arch}
+ presents our current approach to integrate the \emph{swift} protocol as a transport layer protocol into the Linux
+kernel. Section \ref{sec:rawsock} presents a preliminary implementation using raw socktes that prepares the ground for
+the final stage of the project.  We describe our testing scenariou in detail in section \ref{sec:testing}. Section
+\ref{sec:summary} concludes the article and refers to future work.
diff --git a/doc/research2/src/preliminarywork.tex b/doc/research2/src/preliminarywork.tex
new file mode 100644 (file)
index 0000000..7d2285e
--- /dev/null
@@ -0,0 +1,43 @@
+While designing our system, we have tackled a few different ideas, each with its strengths and weaknesees. We present
+now some of those preliminary ideas that lead to the our current desing choice.
+
+The first approach we thought of was to include all of the swift protocol into the kernel space. This
+approach had the advantage of simplicity and would have implied minimal architectural changes. The current user space 
+implementation could have been ported to a kernel module.
+
+Though simple, this approach could not be implemented because of the restriction of memory size in the kernel.
+For the integrity check the swift protocol relies on Merkle hash tree. Keeping this tree in the kernel space memory is
+not scalable. The Internet content is too large to be stored in kernel. Even if the tree retains only hashes of the data
+disseminated, the space is insufficient.
+
+
+
+The second approach of the swift implementation is represent in the \labelindexref{Figure}{img:tree}.
+
+\image[scale=0.45]{img/tree}{img:tree}{Tree}
+
+The swift transport should have been a new kernel interface allowing the creation of specialized swift sockets. It
+should have implemented the multiparty protocol allowing piece transport to/from other hosts in a peer-to-peer fashion.
+
+That implementation should have had specialized "request queues", metadata queues, to/from user space.  Specialized
+system call API should have allowed user space applications to interact with the above
+mentioned queues and, thus, with the multiparty transport protocol implementation.
+
+Innate differences from a classical one-to-one communication such as UDP or TCP means the system call API shouldn't have
+followed the classical send/receive paradigm. In order to compensate this and to provide a rather "friendly" interface
+to user space applications, a library was designed that to provide a simpler interface. Peer and piece discovery should
+have been the responsibility of the user space application. The SWIFT Library may also provide wrappers over a UDP-based
+channel for discovery. 
+
+Merkle hashes should have stored and computed in user space. This approach couldn't be implemented because of the
+restriction of the library implementations (e.g. a users application design would be more restrictive). Moreover the
+kernel implementation should have been like an UDP which support multicast transfer.  
+
+
+The third approach of the swift implementation was to detach the transport layer from the original swift implementation
+and to manage it. When we started to implement this we found a lot of inconvenience like our code duplicate a lot of
+application code, we cannot implement the discovery protocol, and again our kernel implementation should have been like
+a multicast-UDP.
+
+This approach also couldn't be implemented because of the complexity of the transport layer management, moreover we
+didn't find strengths to confirm that our implementation could be better than original implementation.
\ No newline at end of file
diff --git a/doc/research2/src/rawsock.tex b/doc/research2/src/rawsock.tex
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/doc/research2/src/summary.tex b/doc/research2/src/summary.tex
new file mode 100644 (file)
index 0000000..e8950dd
--- /dev/null
@@ -0,0 +1,21 @@
+%\section{\fontfamily{phv}\selectfont{\large{\bfseries{SUMMARY}}}}
+
+The \emph{swift} protocol is a multiparty content-centric protocol that aims to disseminate content among a swarm of
+peers. This paper proposes an approach for the optimization of the currently \emph{swift} protocol. The integration of
+the communication in the kernel space as a multiparty transport protocol that is solely responsible for getting the
+bits moving improves the over all protocol performance. It ensures maximum efficiency of data transfer by decreasing
+switches between user and kernel space and eliminating some performance penalties due to context switches.
+
+\subsection*{Directions for Future Work}
+
+
+After we complete the implementation and the functional tests, we want to test extensively our new features in a real
+environment. We plan to do stress tests using a cluster. This tests will help us to make an overview about our
+implementation and we could compare with the user-space implementation of the \emph{swift} to determine exactly what
+performance we encountered. If the results are satisfactory, we will continue to optimize our program and we will add
+new features.
+
+It will be very useful to have a real application on top of the \emph{swift} protocol. If not, one solution would be to
+port an application strictly for this task. This would give us the opportunity to extend and refine our implementation,
+and also to extend the library API.
+
diff --git a/doc/research2/src/testing.tex b/doc/research2/src/testing.tex
new file mode 100644 (file)
index 0000000..e69de29