gnunet-svn
[Top][All Lists]
Advanced

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

[lsd0004] branch master updated: minor edits and clarifications


From: gnunet
Subject: [lsd0004] branch master updated: minor edits and clarifications
Date: Sun, 20 Aug 2023 16:41:38 +0200

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

grothoff pushed a commit to branch master
in repository lsd0004.

The following commit(s) were added to refs/heads/master by this push:
     new 3a4a6dc  minor edits and clarifications
3a4a6dc is described below

commit 3a4a6dc27419141f2d59a00c2566e93976488d54
Author: Christian Grothoff <grothoff@gnunet.org>
AuthorDate: Sun Aug 20 16:41:28 2023 +0200

    minor edits and clarifications
---
 draft-schanzen-r5n.xml | 56 +++++++++++++++++++++++++++++---------------------
 1 file changed, 33 insertions(+), 23 deletions(-)

diff --git a/draft-schanzen-r5n.xml b/draft-schanzen-r5n.xml
index e9ef930..158ec90 100644
--- a/draft-schanzen-r5n.xml
+++ b/draft-schanzen-r5n.xml
@@ -529,7 +529,9 @@ Connectivity | |Underlay|  |Underlay|  | Underlay | ...
           This call tells the underlay to drop the connection to a
           peer <tt>P</tt>.  This call is only there for symmetry and
          used during the peer's shutdown to release all of the remaining
-         HOLDs.  As R<sup>5</sup>N always prefers the longest-lived
+         <tt>HOLDs</tt>.
+         <!-- FIXME: are we supposed to call DROP if a peer disconnects!?? -->
+         As R<sup>5</sup>N always prefers the longest-lived
          connections, it would never drop an active connection that it
          has called <tt>HOLD()</tt> on before. Nevertheless, underlay 
implementations
          should not rely on this always being true.  A call to <tt>DROP()</tt> 
also
@@ -624,21 +626,26 @@ Connectivity | |Underlay|  |Underlay|  | Underlay | ...
       <t>
         To enable routing, any R<sup>5</sup>N implementation must keep
        information about its current set of neighbors.
-        Upon receiving a connection notification from the Underlay through
-        <tt>PEER_CONNECTED</tt>, information on the new neighbor
-        <bcp14>MUST</bcp14> be added to the routing table.
+        Upon receiving a connection notification from the
+       <em>underlay interface</em> through a
+        <tt>PEER_CONNECTED</tt> signal, information on the new neighbor
+        <bcp14>MUST</bcp14> be added to the routing table, except if the
+       respective bucket in the routing table is full or if meta-data
+       is present that indicates that the peer does not wish to participate
+       in routing.
         Peers added to the routing table <tt>SHOULD</tt> be signalled to the
-        Underlay as important connections using <tt>HOLD</tt>.
-        Similarly when a disconnect is indicated by the Underlay through
-        <tt>PEER_DISCONNECTED</tt> messages for all addresses of the peer it
+        underlay as important connections using a <tt>HOLD</tt> call.
+        Similarly when a disconnect is indicated by the underlay through
+        a <tt>PEER_DISCONNECTED</tt> signal, the peer 
         <bcp14>MUST</bcp14> be removed from the routing table.
+         <!-- FIXME: are we supposed to call DROP if we called HOLD if a peer 
disconnects!?? -->
       </t>
       <t>
-        In order to achieve logarithmically bounded routing performance,
+        To achieve logarithmically bounded routing performance,
         the data structure for managing neighbors and their
         metadata <bcp14>MUST</bcp14> be implemented using the k-buckets 
concept of
         <xref target="Kademlia"/>  as defined in <xref 
target="routing_table"/>.
-        Maintenance of the routing table (after bootstrapping) is
+        Maintenance of the routing table (after <em>bootstrapping</em>) is
         described in <xref target="find_peer"/>.
       </t>
       <t>
@@ -651,7 +658,8 @@ Connectivity | |Underlay|  |Underlay|  | Underlay | ...
         In order to select peers which are suitable destinations for
         routing messages, R<sup>5</sup>N uses a hybrid approach:
         Given an estimated network size <tt>L2NSE</tt> retrieved using 
<tt>ESTIMATE_NETWORK_SIZE ()</tt>,
-        the peer selection for the first N hops is random. After the initial N 
hops, peer selection
+        the peer selection for the first <tt>L2NSE</tt> hops is random. After 
the initial
+       <tt>L2NSE</tt> hops, peer selection
         follows an XOR-based peer distance calculation.
         <xref target="routing_functions"/>
         describes the corresponding routing functions.
@@ -659,37 +667,39 @@ Connectivity | |Underlay|  |Underlay|  | Underlay | ...
       <section anchor="routing_table">
         <name>Routing Table</name>
         <t>
-          Whenever a <tt>PEER_CONNECTED</tt> signal is received from the 
Underlay,
+          Whenever a <tt>PEER_CONNECTED</tt> signal is received from the 
underlay,
           the respective peer is considered for insertion into the routing 
table.
-          The routing table consists of an array of k-buckets. Each
-          k-bucket contains a list of neighbors.
-          The i-th k-bucket stores neighbors whose peer IDs are between 
distance 2<sup>i</sup> and 2<sup>i+1</sup> from the local peer.
+          The routing table consists of an array of <tt>k</tt>-buckets. Each
+          <tt>k</tt>-bucket contains a list of <em>neighbors</em>.
+          The i-th <tt>k</tt>-bucket stores neighbors whose peer IDs are
+         between distance 2<sup>i</sup> and 2<sup>i+1</sup> from the local 
peer.
           System constraints will typically force an implementation to impose 
some
-          upper limit on the number of neighbors kept per k-bucket.
+          upper limit on the number of <em>neighbors</em> kept per 
<tt>k</tt>-bucket.
           Upon insertion, the implementation <bcp14>MUST</bcp14> call
-          <tt>HOLD</tt> on the respective connection.
+          <tt>HOLD</tt> on the respective <em>neighor</em>.
         </t>
         <t>
           Implementations <bcp14>SHOULD</bcp14> try to keep at least
-          5 entries per k-bucket.  Embedded systems that cannot manage
+          5 entries per <tt>k</tt>-bucket.  Embedded systems that cannot manage
           this number of connections <bcp14>MAY</bcp14> use connection-level
           signalling to indicate that they are merely a client utilizing a
           DHT and not able to participate in routing.  DHT peers receiving
           such connections <bcp14>MUST NOT</bcp14> include connections to
-          such restricted systems in their k-buckets, thereby effectively
+          such restricted systems in their <tt>k</tt>-buckets, thereby 
effectively
          excluding them when making routing decisions.
         </t>
         <t>
           If a system hits constraints with respect to
           the number of active connections, an implementation
-          <bcp14>MUST</bcp14> evict peers from those k-buckets with the
+          <bcp14>MUST</bcp14> evict <em>neighbours</em> from those 
<tt>k</tt>-buckets with the
           largest number of neighbors. The eviction strategy 
<bcp14>MUST</bcp14> be
-          to drop the shortest-lived connections first.
+          to drop the shortest-lived connection per <tt>k</tt>-bucket first.
         </t>
         <t>
-          The implementation <bcp14>MAY</bcp14> cache valid HELLOs of 
disconnected
-          peers outside of the routing table and sporadically or periodically 
try to (re-)establish connection
-          to the peer by issuing <tt>TRY_CONNECT</tt> requests on the Underlay.
+          The implementation <bcp14>MAY</bcp14> cache valid <em>addresses</em> 
of disconnected
+          <em>peers</em> outside of the routing table and sporadically or 
periodically try to (re-)establish connection
+          to the <em>peer</em> by making <tt>TRY_CONNECT</tt> calls to the 
<em>underlay interface</em>
+         if the respective <tt>k</tt>-bucket has empty slots.
         </t>
       </section>
       <section anchor="find_peer">

-- 
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]