From 370224b3cbb79d11a570d67337d68fa0f395e8e9 Mon Sep 17 00:00:00 2001 From: Martin Schanzenbach Date: Sun, 25 Dec 2022 20:28:47 +0900 Subject: Various connection changes --- draft-schanzen-r5n.xml | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/draft-schanzen-r5n.xml b/draft-schanzen-r5n.xml index fe62993..e5f72b2 100644 --- a/draft-schanzen-r5n.xml +++ b/draft-schanzen-r5n.xml @@ -436,7 +436,6 @@ Connectivity | |Underlay| |Underlay| API:
-
TRY_CONNECT(N, A)
@@ -564,9 +563,13 @@ Connectivity | |Underlay| |Underlay| information about its current set of neighbors. Upon receiving a connection notification from the Underlay through PEER_CONNECTED, information on the new neighbor - MUST be added, and similarly when - a disconnect is indicated by the Underlay through - PEER_DISCONNECTED the peer MUST be removed. + MUST be added. + Similarly when a disconnect is indicated by the Underlay through + PEER_DISCONNECTED messages for all addresses of the peer it + MUST be removed. + The implementation MAY try to re-establish connection + to the peer by issuing TRY_CONNECT requests on the Underlay + using valid HELLO caches. In order to achieve O(log n) routing performance, @@ -596,7 +599,8 @@ Connectivity | |Underlay| |Underlay| Initially, the implementation depends upon either the Underlay providing at least one initial connection to a peer (signalled through PEER_CONNECTED), or the application/end-user providing at - least one working HELLO to the DHT for bootstrapping. + least one working HELLO which is then in turn used to call TRY_CONNECT + on the Underlay. While details on how the first connection is established MAY depend on the specific implementation, this SHOULD usually be done by an out-of-band exchange of the information from a HELLO block. @@ -638,14 +642,20 @@ Connectivity | |Underlay| |Underlay| HELLOs of peers that are useful somewhere in the routing table. + To facilitate peer discovery, each peer MUST broadcast its own HELLO message to all peers in the routing table periodically. The specific frequency MAY depend on available bandwidth but SHOULD be a fraction of the expiration period. - Whenever a peer receives such a HELLO message from another peer, - it must cache it as long as that peer is in its routing table + Whenever a peer receives such a HELLO message from another peer that is + already in the routing table, it must cache it as long as that peer is in its routing table (or until the HELLO expires) and serve it in response to - Peer Discovery requests. Details about the format of the + + Peer Discovery requests. + Details about the format of the HELLO message are given in . -- cgit v1.2.3