more docs updates
This commit is contained in:
parent
72c9683cdf
commit
d4c9210a4e
|
@ -37,8 +37,8 @@ L1 is the mailbox channel (queued store-and-forward messages that always go
|
|||
to the mailbox server, and then are forwarded to other clients subscribed to
|
||||
the same mailbox). Both clients remain connected to the mailbox server until
|
||||
the Wormhole is closed. They send DILATE-n messages to each other to manage
|
||||
the dilation process, including records like `please-dilate`,
|
||||
`start-dilation`, `ok-dilation`, and `connection-hints`
|
||||
the dilation process, including records like `please`, `connection-hints`,
|
||||
`reconnect`, and `reconnecting`.
|
||||
|
||||
L2 is the set of competing connection attempts for a given generation of
|
||||
connection. Each time the Leader decides to establish a new connection, a new
|
||||
|
@ -155,16 +155,17 @@ attempts and terminate any existing connections (even if they appear viable).
|
|||
Listening sockets may be retained, but any previous connection made through
|
||||
them must be dropped.
|
||||
|
||||
Once all connections have stopped, the Follower should send an `ok` message,
|
||||
then start the connection process for the next generation, which will send
|
||||
new `connection-hint` messages for all listening sockets).
|
||||
Once all connections have stopped, the Follower should send an `reconnecting`
|
||||
message, then start the connection process for the next generation, which
|
||||
will send new `connection-hint` messages for all listening sockets).
|
||||
|
||||
Generations are non-overlapping. The Leader will drop all connections from
|
||||
generation 1 before sending the `reconnect` for generation 2, and will not
|
||||
initiate any gen-2 connections until it receives the matching `ok` from the
|
||||
Follower. The Follower must drop all gen-1 connections before it sends the
|
||||
`ok` response (even if it thinks they are still functioning: if the Leader
|
||||
thought the gen-1 connection still worked, it wouldn't have started gen-2).
|
||||
initiate any gen-2 connections until it receives the matching `reconnecting`
|
||||
from the Follower. The Follower must drop all gen-1 connections before it
|
||||
sends the `reconnecting` response (even if it thinks they are still
|
||||
functioning: if the Leader thought the gen-1 connection still worked, it
|
||||
wouldn't have started gen-2).
|
||||
|
||||
(TODO: what about a follower->leader connection that was started before
|
||||
start-dilation is received, and gets established on the Leader side after
|
||||
|
@ -181,19 +182,18 @@ connection attempts and having an established connection) starting with the
|
|||
receipt of a `please-dilate` message and a local `w.dilate()` call. The
|
||||
Leader remains in that state until it abandons the connection and sends a
|
||||
`reconnect` message, at which point it remains in the "flushing" state until
|
||||
the Follower's `ok` message is received. The Follower remains in "connecting"
|
||||
until it receives `reconnect`, then it stays in "dropping" until it finishes
|
||||
halting all outstanding connections, after which it sends `ok` and switches
|
||||
back to "connecting".
|
||||
the Follower's `reconnecting` message is received. The Follower remains in
|
||||
"connecting" until it receives `reconnect`, then it stays in "dropping" until
|
||||
it finishes halting all outstanding connections, after which it sends
|
||||
`reconnecting` and switches back to "connecting".
|
||||
|
||||
"Connection hints" are type/address/port records that tell the other side of
|
||||
likely targets for L2 connections. Both sides will try to determine their
|
||||
external IP addresses, listen on a TCP port, and advertise `(tcp,
|
||||
external-IP, port)` as a connection hint. The Transit Relay is also used as a
|
||||
(lower-priority) hint. These are sent in `connection-hint` records, which can
|
||||
be sent by the Leader any time after the `start-dilation` record, and by the
|
||||
Follower after the `ok-dilation` record. Each side will initiate connections
|
||||
upon receipt of the hints.
|
||||
be sent any time after both sending and receiving a `please` record. Each
|
||||
side will initiate connections upon receipt of the hints.
|
||||
|
||||
```
|
||||
{ "type": "connection-hints",
|
||||
|
|
Loading…
Reference in New Issue
Block a user