[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.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [lsd0003] branch master updated: Added statemaschine digs and some more text,
gnunet <=