SSU: IPv6 Peer Testing updates

This commit is contained in:
zzz
2016-06-29 16:22:35 +00:00
parent 47c572745d
commit 5a80a92526
3 changed files with 33 additions and 8 deletions

View File

@ -1,7 +1,7 @@
{% extends "global/layout.html" %}
{% block title %}{% trans %}Secure Semireliable UDP{% endtrans %} (SSU){% endblock %}
{% block lastupdated %}{% trans %}May 2016{% endtrans %}{% endblock %}
{% block accuratefor %}0.9.26{% endblock %}
{% block lastupdated %}{% trans %}June 2016{% endtrans %}{% endblock %}
{% block accuratefor %}0.9.27{% endblock %}
{% block content %}
<p>{% trans transports=site_url('docs/transport'), ntcp=site_url('docs/transport/ntcp') -%}
@ -489,8 +489,8 @@ any additional information. Alice may go on to establish a session
with either Bob or Charlie, but it is not required.
{%- endtrans %}</p>
<h3>IPv6 Notes</h3>
<p>
IPv6 Notes:
Through release 0.9.26, only testing of IPv4 addresses is supported.
Only testing of IPv4 addresses is supported.
Therefore, all Alice-Bob and Alice-Charlie communication must be via IPv4.
@ -499,6 +499,11 @@ Alice's address, when specified in the PeerTest message, must be 4 bytes.
As of release 0.9.27, testing of IPv6 addresses is supported,
and Alice-Bob and Alice-Charlie communication may be via IPv6.
See <a href="/spec/proposals/126-ipv6-peer-testing">Proposal 126</a> for details.
</p><p>
Alice sends the request to Bob using an existing session over the transport (IPv4 or IPv6) that she wishes to test.
When Bob receives a request from Alice via IPv4, Bob must select a Charlie that advertises an IPv4 address.
When Bob receives a request from Alice via IPv6, Bob must select a Charlie that advertises an IPv6 address.
The actual Bob-Charlie communication may be via IPv4 or IPv6 (i.e., independent of Alice's address type).
</p>

View File

@ -5,7 +5,7 @@ IPv6 Peer Testing
:author: zzz
:created: 2016-05-02
:thread: http://zzz.i2p/topics/2119
:lastupdated: 2016-05-02
:lastupdated: 2016-06-29
:status: Open
.. contents::
@ -40,10 +40,25 @@ and then you won't get any more (after the RI expires in everybody's netdb).
Design
======
Implement Peer Testing for IPv6.
Implement Peer Testing for IPv6,
by removing previous restrictions that peer testing was only allowed for IPv4.
The peer test message already has a field for IP length.
Specification
=============
TBD, but basically, allow IPv6 addresses and connections in the Peer Testing protocol.
In the Peer Testing sections of the SSU overview and SSU specification, make the following changes:
IPv6 Notes:
Through release 0.9.26, only testing of IPv4 addresses is supported.
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 specified in the PeerTest message, must be 4 bytes.
As of release 0.9.27, testing of IPv6 addresses is supported, and Alice-Bob and Alice-Charlie communication may be via IPv6.
Alice sends the request to Bob using an existing session over the transport (IPv4 or IPv6) that she wishes to test.
When Bob receives a request from Alice via IPv4, Bob must select a Charlie that advertises an IPv4 address.
When Bob receives a request from Alice via IPv6, Bob must select a Charlie that advertises an IPv6 address.
The actual Bob-Charlie communication may be via IPv4 or IPv6 (i.e., independent of Alice's address type).

View File

@ -3,8 +3,8 @@ SSU Protocol Specification
==========================
.. meta::
:category: Transports
:lastupdated: May 2016
:accuratefor: 0.9.26
:lastupdated: June 2016
:accuratefor: 0.9.27
.. contents::
@ -1074,6 +1074,11 @@ Notes
and Alice-Bob and Alice-Charlie communication may be via IPv6.
See Proposal 126 for details.
Alice sends the request to Bob using an existing session over the transport (IPv4 or IPv6) that she wishes to test.
When Bob receives a request from Alice via IPv4, Bob must select a Charlie that advertises an IPv4 address.
When Bob receives a request from Alice via IPv6, Bob must select a Charlie that advertises an IPv6 address.
The actual Bob-Charlie communication may be via IPv4 or IPv6 (i.e., independent of Alice's address type).
* A peer must maintain a table of active test states (nonces). On reception of
a PeerTest message, look up the nonce in the table. If found, it's an
existing test and you know your role (Alice, Bob, or Charlie). Otherwise, if