forked from I2P_Developers/i2p.www
formatting cleanups
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
{% extends "global/layout.html" %}
|
||||
{% block title %}SSU Protocol Specification{% endblock %}
|
||||
{% block lastupdated %}December 2013{% endblock %}
|
||||
{% block accuratefor %}0.9.9{% endblock %}
|
||||
{% block lastupdated %}January 2014{% endblock %}
|
||||
{% block accuratefor %}0.9.10{% endblock %}
|
||||
{% block content %}
|
||||
|
||||
<p>
|
||||
@@ -99,10 +99,13 @@ the following bitfields:</p>
|
||||
Bit order: 76543210 (bit 7 is MSB)
|
||||
|
||||
bits 7-4: payload type
|
||||
bit 3: rekey?
|
||||
bit 2: extended options included
|
||||
bits 1-0: reserved
|
||||
bit 3: rekey, always 0, unimplemented
|
||||
bit 2: extended options included, always 0, unimplemented
|
||||
bits 1-0: reserved, set to 0 for compatibility with future uses
|
||||
{% endhighlight %}
|
||||
|
||||
<p>The header format is:</p>
|
||||
|
||||
{% highlight lang='dataspec' %}
|
||||
Header: 37+ bytes
|
||||
Encryption starts with the flag byte.
|
||||
@@ -127,8 +130,15 @@ the following bitfields:</p>
|
||||
+----+----+----+----+----+----+ +
|
||||
| #opt extended option bytes (optional) |
|
||||
~ ~
|
||||
~ ~
|
||||
+----+----+----+----+----+----+----+----+
|
||||
{% endhighlight %}
|
||||
|
||||
<p>
|
||||
Note that rekeying and extended options are unimplemented, so the
|
||||
current header size is exactly 37 bytes.
|
||||
</p>
|
||||
|
||||
|
||||
<h3 id="rekey">Rekeying</h3>
|
||||
<p>If the rekey flag is set, 64 bytes of keying material follow the
|
||||
@@ -239,6 +249,8 @@ This is the first message sent to establish a session.
|
||||
<td>introKey</td></tr>
|
||||
</table>
|
||||
|
||||
<p>Message format:</p>
|
||||
|
||||
{% highlight lang='dataspec' %}
|
||||
+----+----+----+----+----+----+----+----+
|
||||
| X, as calculated from DH |
|
||||
@@ -257,6 +269,7 @@ This is the first message sent to establish a session.
|
||||
|
||||
<p>
|
||||
Typical size including header, in current implementation: 304 (IPv4) or 320 (IPv6) bytes
|
||||
(before non-mod-16 padding)
|
||||
</p>
|
||||
|
||||
<h4>Notes</h4>
|
||||
@@ -299,6 +312,8 @@ This is the response to a Session Request.
|
||||
signature and the following 8 bytes padding.</td></tr>
|
||||
</table>
|
||||
|
||||
<p>Message format:</p>
|
||||
|
||||
{% highlight lang='dataspec' %}
|
||||
+----+----+----+----+----+----+----+----+
|
||||
| Y, as calculated from DH |
|
||||
@@ -333,6 +348,7 @@ This is the response to a Session Request.
|
||||
|
||||
<p>
|
||||
Typical size including header, in current implementation: 368 bytes (IPv4 or IPv6)
|
||||
(before non-mod-16 padding)
|
||||
</p>
|
||||
|
||||
<h4>Notes</h4>
|
||||
@@ -390,7 +406,10 @@ bits 3-0: total identity fragments (F) 1-15</pre></li>
|
||||
<td>sessionKey</td></tr>
|
||||
</table>
|
||||
|
||||
<b>Fragment 0 through F-2 (if F > 1):</b>
|
||||
<p>
|
||||
<b>Fragment 0 through F-2</b>
|
||||
(only if F > 1; currently unused, see notes below) :
|
||||
</p>
|
||||
{% highlight lang='dataspec' %}
|
||||
+----+----+----+----+----+----+----+----+
|
||||
|info| cursize | |
|
||||
@@ -405,7 +424,9 @@ bits 3-0: total identity fragments (F) 1-15</pre></li>
|
||||
+----+----+----+----+----+----+----+----+
|
||||
{% endhighlight %}
|
||||
|
||||
<p>
|
||||
<b>Fragment F-1 (last or only fragment):</b>
|
||||
</p>
|
||||
{% highlight lang='dataspec' %}
|
||||
+----+----+----+----+----+----+----+----+
|
||||
|info| cursize | |
|
||||
@@ -436,6 +457,7 @@ bits 3-0: total identity fragments (F) 1-15</pre></li>
|
||||
|
||||
<p>
|
||||
Typical size including header, in current implementation: 480 bytes
|
||||
(before non-mod-16 padding)
|
||||
</p>
|
||||
|
||||
<h4>Notes</h4>
|
||||
@@ -479,14 +501,11 @@ and is sent as of release 0.8.9.
|
||||
<td>sessionKey or introKey</td></tr>
|
||||
</table>
|
||||
|
||||
{% highlight lang='dataspec' %}
|
||||
+----+----+----+----+----+----+----+----+
|
||||
| no data |
|
||||
+----+----+----+----+----+----+----+----+
|
||||
{% endhighlight %}
|
||||
|
||||
<p>
|
||||
This message does not contain any data.
|
||||
Typical size including header, in current implementation: 48 bytes
|
||||
(before non-mod-16 padding)
|
||||
</p>
|
||||
|
||||
<h3 id="relayRequest">RelayRequest (type 3)</h3>
|
||||
@@ -513,6 +532,8 @@ This is the first message sent from Alice to Bob to request an introduction to C
|
||||
<td>introKey (or sessionKey, if Alice/Bob is established)</td></tr>
|
||||
</table>
|
||||
|
||||
<p>Message format:</p>
|
||||
|
||||
{% highlight lang='dataspec' %}
|
||||
+----+----+----+----+----+----+----+----+
|
||||
| relay tag |size| Alice IP addr
|
||||
@@ -537,6 +558,7 @@ This is the first message sent from Alice to Bob to request an introduction to C
|
||||
|
||||
<p>
|
||||
Typical size including header, in current implementation: 96 bytes (no Alice IP included) or 112 bytes (4-byte Alice IP included)
|
||||
(before non-mod-16 padding)
|
||||
</p>
|
||||
|
||||
<h4>Notes</h4>
|
||||
@@ -579,6 +601,8 @@ This is the response to a Relay Request and is sent from Bob to Alice.
|
||||
<td>introKey (or sessionKey, if Alice/Bob is established)</td></tr>
|
||||
</table>
|
||||
|
||||
<p>Message format:</p>
|
||||
|
||||
{% highlight lang='dataspec' %}
|
||||
+----+----+----+----+----+----+----+----+
|
||||
|size| Charlie IP | Port (C)|size|
|
||||
@@ -593,6 +617,7 @@ This is the response to a Relay Request and is sent from Bob to Alice.
|
||||
|
||||
<p>
|
||||
Typical size including header, in current implementation: 64 (Alice IPv4) or 80 (Alice IPv6) bytes
|
||||
(before non-mod-16 padding)
|
||||
</p>
|
||||
|
||||
<h4>Notes</h4>
|
||||
@@ -632,6 +657,8 @@ This is the introduction for Alice, which is sent from Bob to Charlie.
|
||||
<td>sessionKey</td></tr>
|
||||
</table>
|
||||
|
||||
<p>Message format:</p>
|
||||
|
||||
{% highlight lang='dataspec' %}
|
||||
+----+----+----+----+----+----+----+----+
|
||||
|size| Alice IP | Port (A)|size|
|
||||
@@ -646,6 +673,7 @@ This is the introduction for Alice, which is sent from Bob to Charlie.
|
||||
|
||||
<p>
|
||||
Typical size including header, in current implementation: 48 bytes
|
||||
(before non-mod-16 padding)
|
||||
</p>
|
||||
|
||||
<h4>Notes</h4>
|
||||
@@ -736,6 +764,8 @@ byte 1
|
||||
<td>sessionKey</td></tr>
|
||||
</table>
|
||||
|
||||
<p>Message format:</p>
|
||||
|
||||
{% highlight lang='dataspec' %}
|
||||
+----+----+----+----+----+----+----+----+
|
||||
|flag| (additional headers, determined |
|
||||
@@ -835,6 +865,8 @@ See <a href="{{ site_url('docs/transport/ssu') }}#peerTesting">the SSU overview
|
||||
<td>introKey (or sessionKey if the connection has already been established)</td></tr>
|
||||
</table>
|
||||
|
||||
<p>Message format:</p>
|
||||
|
||||
{% highlight lang='dataspec' %}
|
||||
+----+----+----+----+----+----+----+----+
|
||||
| test nonce |size| Alice IP addr
|
||||
@@ -855,6 +887,7 @@ See <a href="{{ site_url('docs/transport/ssu') }}#peerTesting">the SSU overview
|
||||
|
||||
<p>
|
||||
Typical size including header, in current implementation: 80 bytes
|
||||
(before non-mod-16 padding)
|
||||
</p>
|
||||
|
||||
<h4>Notes</h4>
|
||||
|
@@ -139,6 +139,7 @@ Currently set in the inital SYN packet, otherwise the ackThrough field is always
|
||||
Note that this does not save any space, the ackThrough field is before the flags
|
||||
and is always present.
|
||||
<tr><td>11-15<td>unused<td><td><td>
|
||||
Set to zero for compatibility with future uses.
|
||||
</table>
|
||||
|
||||
<h4>Variable Length Signature Notes</h4>
|
||||
|
Reference in New Issue
Block a user