gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lsd0003] branch master updated: Added statemaschine digs and some more


From: gnunet
Subject: [lsd0003] branch master updated: Added statemaschine digs and some more text
Date: Thu, 03 Dec 2020 16:08:04 +0100

This is an automated email from the git hooks/post-receive script.

elias-summermatter pushed a commit to branch master
in repository lsd0003.

The following commit(s) were added to refs/heads/master by this push:
     new ba17f27  Added statemaschine digs and some more text
ba17f27 is described below

commit ba17f27036edac9416753f41a3c26a09f12f1ada
Author: Elias Summermatter <elias.summermatter@seccom.ch>
AuthorDate: Thu Dec 3 16:07:48 2020 +0100

    Added statemaschine digs and some more text
---
 draft-summermatter-set-union.xml      | 302 ++++++++++++++++++++++++++++++----
 statemaschine/full_diag.jpg           | Bin 0 -> 160098 bytes
 statemaschine/full_state_maschine.xml |   1 +
 3 files changed, 275 insertions(+), 28 deletions(-)

diff --git a/draft-summermatter-set-union.xml b/draft-summermatter-set-union.xml
index bbe1b2c..67aacf6 100644
--- a/draft-summermatter-set-union.xml
+++ b/draft-summermatter-set-union.xml
@@ -187,9 +187,30 @@
 
         <section anchor="modeofoperation" numbered="true" toc="default">
             <name>Mode of operation</name>
+            <t>
+                The set union protocol uses the above discussed topics 
Invertible Bloom Filter and Strata Estimators.
+                Depending on the state of the two sets there are different 
strategies or operation modes how to efficiently
+                determinate missing elements in two sets of two peers.
+            </t>
             <section anchor="modeofoperation_full-sync-client-with-bigger-set" 
numbered="true" toc="default">
                 <name>Full sync mode</name>
-                <t>--- TEXT HERE ---</t>
+                <t>
+                    The simples mode is the full sync mode. The idea is that 
if the difference between the sets of the two
+                    peers exceeds a certain threshold the overhead of 
determinate which elements are different overweight's
+                    the overhead of sending the complete set. In this case its 
more efficient to just exchange the full set.
+                </t>
+                <t>
+                    After the initiating peer (Client) opened a connection to 
the other peer (Server) the Server answers
+                    with a SE(C) of his set and changes to the "Expecting IBF" 
state. When the client receives the SE(C)
+                    from the server and the client set size is smaller or 
equal to the set size of the server the client
+                    changes from the Expect SE State to Full Sending State and 
starts sending Full element requests containing the set
+                    of the client.
+                    If the set size of the client is larger than the servers 
set size the client changes into Full Receiving
+                    (HINT:  EXPECT IBF in code) mode an sends a Request Full 
message to the server.
+                </t>
+                <t>
+                    If the Server receives
+                </t>
             </section>
             <section anchor="modeofoperation_individual-elements" 
numbered="true" toc="default">
                 <name>Individual element sync mode</name>
@@ -412,11 +433,43 @@
                 <section anchor="messages_offer_description" numbered="true" 
toc="default">
                     <name>Description</name>
                     <t>
-                        Some description what this messages does
+                        The offer message tells the other peer which hashes 
match a given IBF key.
+                        This is needed to enable the peer to send a demand for 
a element that is missing
+                        in the set.
+
                     </t>
                 </section>
                 <section anchor="messages_offer_structure" numbered="true" 
toc="default">
                     <name>Structure</name>
+                    <figure anchor="figure_offer">
+                        <artwork name="" type="" align="left" alt=""><![CDATA[
+        0     8     16    24    32    40    48    56
+        +-----+-----+-----+-----+-----+-----+-----+-----+
+        |  MSG SIZE |  MSG TYPE |  GNUNET HASH
+        +-----+-----+-----+-----+
+        /                                               /
+        /                                               /
+                 ]]></artwork>
+                        <!--        <postamble>which is a very simple 
example.</postamble>-->
+                    </figure>
+                    <t>where:</t>
+                    <dl>
+                        <dt>MSG SIZE</dt>
+                        <dd>
+                            is a 16-bit unsigned integer of the GNUNET header 
which describes the size
+                            of the message.
+                        </dd>
+                        <dt>MSG TYPE</dt>
+                        <dd>
+                            is a 16-bit unsigned integer of the GNUNET header 
which contains a message number
+                            in the GNUNET Protocol. For this message the 
number is 562.
+
+                        </dd>
+                        <dt>GNUNET HASH</dt>
+                        <dd>
+                            is a 512-bit GNUNET Hash of the element that is 
requested with a inquiry message.
+                        </dd>
+                    </dl>
                 </section>
             </section>
 
@@ -427,11 +480,41 @@
                 <section anchor="messages_inquiry_description" numbered="true" 
toc="default">
                     <name>Description</name>
                     <t>
-                        Some description what this messages does
+                        The Inquiry message tells the other peer to send an 
offer containing the element hash for the given Key of the IBF.
+                        NOTE: HERE IS AN IMPLEMENTATION BUG UNNECESSARY 32-BIT 
PADDING!
                     </t>
                 </section>
                 <section anchor="messages_inquiry_structure" numbered="true" 
toc="default">
                     <name>Structure</name>
+                    <figure anchor="figure_inquiry">
+                        <artwork name="" type="" align="left" alt=""><![CDATA[
+        0     8     16    24    32    40    48    56
+        +-----+-----+-----+-----+-----+-----+-----+-----+
+        |  MSG SIZE |  MSG TYPE |          SALT         |
+        +-----+-----+-----+-----+-----+-----+-----+-----+
+        |                    IBF KEY                    |
+        +-----+-----+-----+-----+-----+-----+-----+-----+
+                 ]]></artwork>
+                        <!--        <postamble>which is a very simple 
example.</postamble>-->
+                    </figure>
+                    <t>where:</t>
+                    <dl>
+                        <dt>MSG SIZE</dt>
+                        <dd>
+                            is a 16-bit unsigned integer of the GNUNET header 
which describes the size
+                            of the message.
+                        </dd>
+                        <dt>MSG TYPE</dt>
+                        <dd>
+                            is a 16-bit unsigned integer of the GNUNET header 
which contains a message number
+                            in the GNUNET Protocol. For this message the 
number is 561.
+
+                        </dd>
+                        <dt>IBF KEY</dt>
+                        <dd>
+                            is a 64-bit unsigned integer that contains the key 
for which the inquiry is sent.
+                        </dd>
+                    </dl>
                 </section>
             </section>
 
@@ -441,11 +524,40 @@
                 <section anchor="messages_demand_description" numbered="true" 
toc="default">
                     <name>Description</name>
                     <t>
-                        Some description what this messages does
+                        The Demand message requests the whole element for a 
defined Hash from the other peer
                     </t>
                 </section>
                 <section anchor="messages_demand_structure" numbered="true" 
toc="default">
                     <name>Structure</name>
+                    <figure anchor="figure_demand">
+                        <artwork name="" type="" align="left" alt=""><![CDATA[
+        0     8     16    24    32    40    48    56
+        +-----+-----+-----+-----+-----+-----+-----+-----+
+        |  MSG SIZE |  MSG TYPE |  GNUNET HASH
+        +-----+-----+-----+-----+
+        /                                               /
+        /                                               /
+                 ]]></artwork>
+                        <!--        <postamble>which is a very simple 
example.</postamble>-->
+                    </figure>
+                    <t>where:</t>
+                    <dl>
+                        <dt>MSG SIZE</dt>
+                        <dd>
+                            is a 16-bit unsigned integer of the GNUNET header 
which describes the size
+                            of the message.
+                        </dd>
+                        <dt>MSG TYPE</dt>
+                        <dd>
+                            is a 16-bit unsigned integer of the GNUNET header 
which contains a message number
+                            in the GNUNET Protocol. For this message the 
number is 560.
+
+                        </dd>
+                        <dt>GNUNET HASH</dt>
+                        <dd>
+                            is a 512-bit GNUNET Hash of the element that is 
demanded.
+                        </dd>
+                    </dl>
                 </section>
             </section>
 
@@ -455,11 +567,34 @@
                 <section anchor="messages_done_description" numbered="true" 
toc="default">
                     <name>Description</name>
                     <t>
-                        Some description what this messages does
+                        The done message signals to the other peer that set 
operation is done
                     </t>
                 </section>
                 <section anchor="messages_done_structure" numbered="true" 
toc="default">
                     <name>Structure</name>
+                    <figure anchor="figure_done">
+                        <artwork name="" type="" align="left" alt=""><![CDATA[
+        0     8     16    24    32
+        +-----+-----+-----+-----+
+        |  MSG SIZE |  MSG TYPE |
+        +-----+-----+-----+-----+
+                 ]]></artwork>
+                        <!--        <postamble>which is a very simple 
example.</postamble>-->
+                    </figure>
+                    <t>where:</t>
+                    <dl>
+                        <dt>MSG SIZE</dt>
+                        <dd>
+                            is a 16-bit unsigned integer of the GNUNET header 
which describes the size
+                            of the message.
+                        </dd>
+                        <dt>MSG TYPE</dt>
+                        <dd>
+                            is a 16-bit unsigned integer of the GNUNET header 
which contains a message number
+                            in the GNUNET Protocol. For this message the 
number is 568.
+
+                        </dd>
+                    </dl>
                 </section>
             </section>
 
@@ -469,11 +604,34 @@
                 <section anchor="messages_full_done_description" 
numbered="true" toc="default">
                     <name>Description</name>
                     <t>
-                        Some description what this messages does
+                        Signals to the other peer that all elements of the set 
have been sent.
                     </t>
                 </section>
                 <section anchor="messages_full_done_structure" numbered="true" 
toc="default">
                     <name>Structure</name>
+                    <figure anchor="figure_full_done">
+                        <artwork name="" type="" align="left" alt=""><![CDATA[
+        0     8     16    24    32
+        +-----+-----+-----+-----+
+        |  MSG SIZE |  MSG TYPE |
+        +-----+-----+-----+-----+
+                 ]]></artwork>
+                        <!--        <postamble>which is a very simple 
example.</postamble>-->
+                    </figure>
+                    <t>where:</t>
+                    <dl>
+                        <dt>MSG SIZE</dt>
+                        <dd>
+                            is a 16-bit unsigned integer of the GNUNET header 
which describes the size
+                            of the message.
+                        </dd>
+                        <dt>MSG TYPE</dt>
+                        <dd>
+                            is a 16-bit unsigned integer of the GNUNET header 
which contains a message number
+                            in the GNUNET Protocol. For this message the 
number is 570.
+
+                        </dd>
+                    </dl>
                 </section>
             </section>
 
@@ -483,11 +641,34 @@
                 <section anchor="messages_request_full_description" 
numbered="true" toc="default">
                     <name>Description</name>
                     <t>
-                        Some description what this messages does
+                        Initiates a full sync and tells the other peer to send 
all elements.
                     </t>
                 </section>
                 <section anchor="messages_request_full_structure" 
numbered="true" toc="default">
                     <name>Structure</name>
+                    <figure anchor="figure_request_full">
+                        <artwork name="" type="" align="left" alt=""><![CDATA[
+        0     8     16    24    32
+        +-----+-----+-----+-----+
+        |  MSG SIZE |  MSG TYPE |
+        +-----+-----+-----+-----+
+                 ]]></artwork>
+                        <!--        <postamble>which is a very simple 
example.</postamble>-->
+                    </figure>
+                    <t>where:</t>
+                    <dl>
+                        <dt>MSG SIZE</dt>
+                        <dd>
+                            is a 16-bit unsigned integer of the GNUNET header 
which describes the size
+                            of the message.
+                        </dd>
+                        <dt>MSG TYPE</dt>
+                        <dd>
+                            is a 16-bit unsigned integer of the GNUNET header 
which contains a message number
+                            in the GNUNET Protocol. For this message the 
number is 559.
+
+                        </dd>
+                    </dl>
                 </section>
             </section>
 
@@ -497,11 +678,45 @@
                 <section anchor="messages_se_description" numbered="true" 
toc="default">
                     <name>Description</name>
                     <t>
-                        Some description what this messages does
+                        The Strata Estimator message contains the strata 
estimator.
                     </t>
                 </section>
                 <section anchor="messages_se_structure" numbered="true" 
toc="default">
                     <name>Structure</name>
+                    <figure anchor="figure_se">
+                        <artwork name="" type="" align="left" alt=""><![CDATA[
+        0     8     16    24    32    40    48    56
+        +-----+-----+-----+-----+-----+-----+-----+-----+
+        |  MSG SIZE |  MSG TYPE |        SETSIZE
+        +-----+-----+-----+-----+-----+-----+-----+-----+
+              SETSIZE           |          SE-SLICES
+        +-----+-----+-----+-----+
+        /                                               /
+        /                                               /
+                 ]]></artwork>
+                        <!--        <postamble>which is a very simple 
example.</postamble>-->
+                    </figure>
+                    <t>where:</t>
+                    <dl>
+                        <dt>MSG SIZE</dt>
+                        <dd>
+                            is a 16-bit unsigned integer of the GNUNET header 
which describes the size
+                            of the message.
+                        </dd>
+                        <dt>MSG TYPE</dt>
+                        <dd>
+                            is a 16-bit unsigned integer of the GNUNET header 
which contains a message number
+                            in the GNUNET Protocol. For this message the 
number is 564.
+                        </dd>
+                        <dt>SETSIZE</dt>
+                        <dd>
+                            is a 64-bit unsigned integer that is defined by 
the size of the set the SE is
+                        </dd>
+                        <dt>SE-SLICES</dt>
+                        <dd>
+                            is variable in size and contains the same 
structure as the IBF-SLICES field in the IBF message.
+                        </dd>
+                    </dl>
                 </section>
             </section>
 
@@ -511,12 +726,10 @@
                 <section anchor="messages_sec_description" numbered="true" 
toc="default">
                     <name>Description</name>
                     <t>
-                        Some description what this messages does
+                        The Strata Estimator Compressed is the same message as 
the Strata Estimator message but the
+                        field "SE-SLICES" is with gzip compressed and the MSG 
TYPE is 565.
                     </t>
                 </section>
-                <section anchor="messages_sec_structure" numbered="true" 
toc="default">
-                    <name>Structure</name>
-                </section>
             </section>
 
 
@@ -526,26 +739,59 @@
                 <section anchor="messages_full_element_description" 
numbered="true" toc="default">
                     <name>Description</name>
                     <t>
-                        Some description what this messages does
+                        The Full Element message sends a set of elements 
because of a peer full sync operation mode.
                     </t>
                 </section>
                 <section anchor="messages_full_element_structure" 
numbered="true" toc="default">
                     <name>Structure</name>
-                </section>
-            </section>
-
-
-            <section anchor="messages_element_requests" numbered="true" 
toc="default">
-                <name>Element Requests</name>
-
-                <section anchor="messages_element_requests_description" 
numbered="true" toc="default">
-                    <name>Description</name>
-                    <t>
-                        Some description what this messages does
-                    </t>
-                </section>
-                <section anchor="messages_element_requests_structure" 
numbered="true" toc="default">
-                    <name>Structure</name>
+                    <figure anchor="figure_full_element">
+                        <artwork name="" type="" align="left" alt=""><![CDATA[
+        0     8     16    24    32    40    48    56
+        +-----+-----+-----+-----+-----+-----+-----+-----+
+        |  MSG SIZE |  MSG TYPE |   E TYPE  |  PADDING  |
+        +-----+-----+-----+-----+-----+-----+-----+-----+
+        |    SIZE   |   AE TYPE |  DATA
+        +-----+-----+-----+-----+
+        /                                               /
+        /                                               /
+                 ]]></artwork>
+                        <!--        <postamble>which is a very simple 
example.</postamble>-->
+                    </figure>
+                    <t>where:</t>
+                    <dl>
+                        <dt>MSG SIZE</dt>
+                        <dd>
+                            is a 16-bit unsigned integer of the GNUNET header 
which describes the size
+                            of the message.
+                        </dd>
+                        <dt>MSG TYPE</dt>
+                        <dd>
+                            is a 16-bit unsigned integer of the GNUNET header 
which contains a message number
+                            in the GNUNET Protocol. For this message the 
number is 571.
+                        </dd>
+                        <dt>E TYPE</dt>
+                        <dd>
+                            element type is a 16-bit unsigned integer witch 
defines the element type for
+                            the application.
+                        </dd>
+                        <dt>PADDING</dt>
+                        <dd>
+                            is 16-bit always set to zero
+                        </dd>
+                        <dt>E SIZE</dt>
+                        <dd>
+                            element size is 16-bit unsigned integer that 
signals the size of the elements data part.
+                        </dd>
+                        <dt>AE TYPE</dt>
+                        <dd>
+                            application specific element type is a 16-bit 
unsigned integer that is needed to identify
+                            the type of element that is in the data field
+                        </dd>
+                        <dt>DATA</dt>
+                        <dd>
+                            is a field with variable length that contains the 
data of the element.
+                        </dd>
+                    </dl>
                 </section>
             </section>
 
diff --git a/statemaschine/full_diag.jpg b/statemaschine/full_diag.jpg
new file mode 100644
index 0000000..3c89533
Binary files /dev/null and b/statemaschine/full_diag.jpg differ
diff --git a/statemaschine/full_state_maschine.xml 
b/statemaschine/full_state_maschine.xml
new file mode 100644
index 0000000..e850445
--- /dev/null
+++ b/statemaschine/full_state_maschine.xml
@@ -0,0 +1 @@
+<mxfile host="embed.diagrams.net" modified="2020-12-03T15:05:28.830Z" 
agent="5.0 (X11)" etag="UdxWVrhVWdTqgWMnNU7v" version="13.9.9" 
type="embed"><diagram id="C5RBs43oDa-KdzZeNtuy" 
name="Page-1">7V1bc+O2Ff4tffBMmxlzcAf5uGt70203bRqn3eQpw7Voi6kseil5186vL3gBLweQRJGQBDXxw64IQRAFnPOd++EFvXp8+TaPn+bfZbNkcUHQ7OWCXl8QghkW6r9i5LUaCTGvBh7ydFZPagdu09+SehDVo8/pLFn1Jq6zbLFOn/qDd9lymdyte2Nxnmdf+9Pus0X/W5/ih8QYuL2LF+box3S2ntejgrP2jb8m6cNcfzUWUfXOY6xn1z9lNY9n2dfOEL25oFd5lq2rV48vV8mi2D29MR/fv35cfPiv+PZv/
 [...]
\ No newline at end of file

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]