SSU 1/2: Clarification of address in peer test messages 5-7

Add note about SSU2 introducer order
This commit is contained in:
zzz
2022-06-06 10:29:31 -04:00
parent 31fd410e90
commit f9369db6be
2 changed files with 22 additions and 5 deletions

View File

@@ -5,7 +5,7 @@ SSU2
:author: eyedeekay, orignal, zlatinb, zzz
:created: 2021-09-12
:thread: http://zzz.i2p/topics/2612
:lastupdated: 2022-06-05
:lastupdated: 2022-06-06
:status: Open
:target: 0.9.56
@@ -4584,7 +4584,7 @@ Unencrypted data (Poly1305 authentication tag not shown):
Payload
```````
- DateTime block
- Address block
- Address block (required for messages 6 and 7, see note below)
- Peer Test block
- Padding block (optional)
@@ -4608,6 +4608,12 @@ The Source Connection ID is the inverse of the Destination Connection ID,
i.e. ~((nonce << 32) | nonce).
For messages sent from Alice to Charlie, swap the two connection IDs.
Address block contents:
- In message 5: Not required.
- In message 6: Charlie's IP and port as selected from Charlie's RI.
- In message 7: Alice's actual IP and port message 6 was received from.
KDF for Retry
@@ -7315,6 +7321,11 @@ A router must publish 4 and/or 6 caps in the address when publishing introducers
to indicate support for IPv4 and/or IPv6.
This is the same as the current practice for recent SSU 1 addresses.
Note: If published as SSU, and there is a mix of SSU 1 and SSU2 introducers,
the SSU 1 introducers should be at the lower indexes and
the SSU2 introducers should be at the higher indexes,
for compatibility with older routers.
Unpublished SSU2 Address

View File

@@ -3,8 +3,8 @@ SSU Protocol Specification
==========================
.. meta::
:category: Transports
:lastupdated: 2021-10
:accuratefor: 0.9.52
:lastupdated: 2022-06
:accuratefor: 0.9.54
.. contents::
@@ -994,7 +994,9 @@ Note: IPv6 peer testing is supported as of release 0.9.27.
==================== ==========================================================
**Peer:** Any
**Data:** * 4 byte nonce
**Data:** See notes section below for details
* 4 byte nonce
* 1 byte IP address size (may be zero)
* that many byte representation of Alice's IP address, if
size > 0
@@ -1086,6 +1088,10 @@ Notes
* When sent by Bob or Charlie, IP and port are present, and IP address is
4 or 16 bytes. IPv6 testing is supported as of release 0.9.27.
* When sent by Charlie to Alice, the IP and port are as follows:
First time (message 5): Alice's requested IP and port as received in message 2.
Second time (message 7): Alice's actual IP and port that message 6 was received from.
* IPv6 Notes: Through release 0.9.26, only testing of IPv4 addresses is supported. Therefore, all
Alice-Bob and Alice-Charlie communication must be via IPv4. Bob-Charlie
communication, however, may be via IPv4 or IPv6. Alice's address, when