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 :author: eyedeekay, orignal, zlatinb, zzz
:created: 2021-09-12 :created: 2021-09-12
:thread: http://zzz.i2p/topics/2612 :thread: http://zzz.i2p/topics/2612
:lastupdated: 2022-06-05 :lastupdated: 2022-06-06
:status: Open :status: Open
:target: 0.9.56 :target: 0.9.56
@@ -4584,7 +4584,7 @@ Unencrypted data (Poly1305 authentication tag not shown):
Payload Payload
``````` ```````
- DateTime block - DateTime block
- Address block - Address block (required for messages 6 and 7, see note below)
- Peer Test block - Peer Test block
- Padding block (optional) - Padding block (optional)
@@ -4608,6 +4608,12 @@ The Source Connection ID is the inverse of the Destination Connection ID,
i.e. ~((nonce << 32) | nonce). i.e. ~((nonce << 32) | nonce).
For messages sent from Alice to Charlie, swap the two connection IDs. 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 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. to indicate support for IPv4 and/or IPv6.
This is the same as the current practice for recent SSU 1 addresses. 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 Unpublished SSU2 Address

View File

@@ -3,8 +3,8 @@ SSU Protocol Specification
========================== ==========================
.. meta:: .. meta::
:category: Transports :category: Transports
:lastupdated: 2021-10 :lastupdated: 2022-06
:accuratefor: 0.9.52 :accuratefor: 0.9.54
.. contents:: .. contents::
@@ -994,7 +994,9 @@ Note: IPv6 peer testing is supported as of release 0.9.27.
==================== ========================================================== ==================== ==========================================================
**Peer:** Any **Peer:** Any
**Data:** * 4 byte nonce **Data:** See notes section below for details
* 4 byte nonce
* 1 byte IP address size (may be zero) * 1 byte IP address size (may be zero)
* that many byte representation of Alice's IP address, if * that many byte representation of Alice's IP address, if
size > 0 size > 0
@@ -1086,6 +1088,10 @@ Notes
* When sent by Bob or Charlie, IP and port are present, and IP address is * 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. 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 * 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 Alice-Bob and Alice-Charlie communication must be via IPv4. Bob-Charlie
communication, however, may be via IPv4 or IPv6. Alice's address, when communication, however, may be via IPv4 or IPv6. Alice's address, when