181 lines
6.3 KiB
HTML
181 lines
6.3 KiB
HTML
{% extends "_layout_de.html" %}
|
|
{% block title %}I2NP{% endblock %}
|
|
{% block content %}
|
|
<p>Die Webseite wird gerade überholt und dieses Dokument kann alte Informationen enthalten</p>
|
|
<h2>I2P Netzwerk Protokoll (I2NP)</h2>
|
|
<p>
|
|
Das I2P Netzwerk Protokoll (I2NP),
|
|
welches zwischen I2CP und den verschiedenen I2P Transport Protokollen ist, verwaltet
|
|
neben dem Routen und Mischen der Nachrichten zwischen den Routern auch die Auswahl
|
|
des Transportes bei der Kommunikation zu anderen Routern, falls mehrere zur Auswahl
|
|
stehen.
|
|
</p>
|
|
|
|
<p>Während I2NP seit seiner Einführung im August 2003 recht stabil
|
|
geblieben ist, hat es dennoch gelegentlich kleinere Modifikationen erfahren.
|
|
Hier ist die
|
|
<a href="/_static/pdf/I2NP_spec.pdf">I2NP Protokol Spezifikation Version 0.9</a>
|
|
(pdf), datiert auf den 28. August 2003.
|
|
Dieses Dokument referenziert auch auf die
|
|
<a href="/_static/pdf/datastructures.pdf">Allgemeine Daten Struktur Spezifikation Version 0.9</a>.
|
|
Achtung - durch einen flüchtigen Blick auf den Quelltext zeigt sich,
|
|
das es bedeutende Unterschiede zwischen der derzeitigen Implementierung und
|
|
der Spezifikation von 2003 gibt.
|
|
</p>
|
|
|
|
<h3>I2NP Definition</h3>
|
|
<p>
|
|
<i>Hinweis</i> - Die folgenden Informationen sind aus dem derzeitigem
|
|
Quelltext extrahiert und können nicht komplett oder fehlerhaft sein.
|
|
Kontrolliere zur Sicherheit den Quelltext.
|
|
<p>
|
|
I2NP (I2P Netzwerk Protokoll) Nachrichten können für Ein-Hop,
|
|
Router-zu-Router oder Punkt-zu-Punkt Nachrichten benutzt werden.
|
|
Durch das verschlüsseln und Einpacken in anderen Nachrichten
|
|
können sie auf einem sicheren Weg über mehrere Hops bis zum
|
|
endgültigen Ziel transportiert werden.
|
|
Prioritäten werden nur lokal am Ursprung benutzt, z.B. beim
|
|
Puffern der Ausgehenden Daten.
|
|
<p>
|
|
Sowohl die NTCP als auch die UDP Transporte haben Übertragungen mit
|
|
Prioritäten implementiert, jedoch in recht unterschiedlichen Arten.
|
|
UDP hat komplexen Code mit Puffern für jede Priorität, doch
|
|
behandelt es z.B. Nachrichten mit der Priorität 400-499 ident.
|
|
(Die Nachrichten Prioritäten sind 100,200,300,400,500 und 1000)
|
|
Dieses sind globale Puffer für alle Knoten.
|
|
NTCP hat eine triviale lineare Suche nach der höchsten Priorität
|
|
in einem Puffer für einen bestimmten Knoten.
|
|
Dieses ist bedeutend weniger effektiv.
|
|
<p>
|
|
Es ist nicht klar, ob das derzeitige Schema der Prioritäten im
|
|
Ganzem effektiv ist und ob die Prioritäten der einzelnen Nachrichten
|
|
weiter angepasst werden sollten.
|
|
Dieses ist ein weiteres Feld an Nachforschungen, Analysen und Testen.
|
|
|
|
|
|
<h3>Nachrichten Format</h3>
|
|
<p>
|
|
|
|
<table border=1>
|
|
<tr><td>Feld<td>Bytes
|
|
<tr><td>Eindeutige ID<td>4
|
|
<tr><td>Lebensdauer<td>8
|
|
<tr><td>Nutzdaten Länge<td>2
|
|
<tr><td>Checksumme<td>1
|
|
<tr><td>Nutzdaten<td>0 - 64K
|
|
</table>
|
|
|
|
<p>
|
|
Arten von Nachrichten:
|
|
Das folgende wurde vom Quelltext übernommen, nicht alle
|
|
dieser Nachrichten müssen aktiv genutzt werden.
|
|
Eine höhere Nummer bedeutet eine höhere Priorität.
|
|
Die meiste Anzahl des Traffics sind TunnelDataMessages (Priorität 400),
|
|
somit ist alles über 400 wirklich hohe Priorität und alles
|
|
darunter niedrige Priorität.
|
|
Zu beachten ist auch, dass viele dieser Nachrichten normalerweise
|
|
durch die Erkundungstunnel geleitet werden und nicht durch die
|
|
Kliententunnel un dsomit nicht in der selben Queue sein müssen,
|
|
es sei denn, der erste Hop ist auf dem selben Knoten.
|
|
<p>
|
|
Auch werden nicht alle Nachrichtenarten unverschlüsselt versendet.
|
|
Zum Beispiel packt ein Router zum Testen eines Tunnels eine
|
|
DeliveryStatusMessage ein, die in einer GarlicMessage eingepackt ist,
|
|
welche wiederrum in einer DataMessage eingepackt ist.
|
|
<p>
|
|
|
|
|
|
<table border=1>
|
|
<tr><td>Nachricht<td>Typus<td>Nutzdatenlänge<td>Priorität<td>Kommentare
|
|
<tr><td>
|
|
DatabaseLookupMessage
|
|
<td align=right>2
|
|
<td>Typ. 71
|
|
<td align=right>100/400
|
|
<td>400 normal; 100 wenn vom HarvesterJob und direkt gesendet;
|
|
400 zum Nachschlagen eines Routers
|
|
<tr><td>
|
|
DatabaseSearchReplyMessage
|
|
<td align=right>3
|
|
<td align=right>Typ. 161
|
|
<td align=right>300
|
|
<td>Grösse ist 65 + 32*(Anzahl der Hashes) üblicherweise, die Hashes zu
|
|
drei Floodfillrrouter werden zurückgesendet.
|
|
<tr><td>
|
|
DatabaseStoreMessage
|
|
<td align=right>1
|
|
<td align=right>Varies
|
|
<td align=right>100/400
|
|
<td>Normalerweise 100 (warum?)
|
|
Länge ist 898 Bytes für ein typisches 2-lease leaseSet.
|
|
RouterInfo Strukturen sind gepackt und die Länge variert. In
|
|
einer andauernden Arbeit bis zum Release 1.0 wird versucht, die
|
|
in einer RouterInfo veröffentlichen Daten zu verringern.
|
|
<tr><td>
|
|
DataMessage
|
|
<td align=right>20
|
|
<td align=right>4 - 65540
|
|
<td align=right>400
|
|
<tr><td>
|
|
DeliveryStatusMessage
|
|
<td align=right>10
|
|
<td align=right>12
|
|
<td>
|
|
<td>Zu Nachrichtenantworten und zum Tunneltesten genutzt - normalerweise
|
|
in einer GarlicMessage eingepackt
|
|
<tr><td>
|
|
<a href="techintro.html#op.garlic">GarlicMessage</a>
|
|
<td align=right>11
|
|
<td>
|
|
<td>
|
|
<td>Üblicherweise in einer DataMessage eingepackt- jedoch falls
|
|
nicht eingepackt mit einer Priorität von 100 vom weiterreichendem
|
|
Router versehen
|
|
<tr><td>
|
|
<a href="tunnel-alt-creation.html#tunnelCreate.requestRecord">TunnelBuildMessage</a>
|
|
<td align=right>21
|
|
<td align=right>4224
|
|
<td align=right>300/500
|
|
<td>Normalerweise 500 (warum?)
|
|
<tr><td>
|
|
<a href="tunnel-alt-creation.html#tunnelCreate.replyRecord">TunnelBuildReplyMessage</a>
|
|
<td align=right>22
|
|
<td align=right>4224
|
|
<td align=right>300
|
|
<tr><td>
|
|
TunnelDataMessage
|
|
<td align=right>18
|
|
<td align=right>1028
|
|
<td align=right>400
|
|
<td>Die am meisten genutzte Nachricht. Priorität für Tunnelteilnehmer,
|
|
ausgehende Endpunkte und eingehende Gateways ist seit Version 0.6.1.33 200.
|
|
Ausgehende Gatewaynachrichten (z.B. die vom lokalem Knoten ausgehenden)
|
|
haben eine Priorität von 400.
|
|
<tr><td>
|
|
TunnelGatewayMessage
|
|
<td align=right>19
|
|
<td>
|
|
<td align=right>300/400
|
|
<tr><td>
|
|
VariableTunnelBuildMessage
|
|
<td align=right>23
|
|
<td align=right>1057 - 4225
|
|
<td align=right>300/500
|
|
<td>Shorter TunnelBuildMessage as of 0.7.12
|
|
<tr><td>
|
|
VariableTunnelBuildReplyMessage
|
|
<td align=right>24
|
|
<td align=right>1057 - 4225
|
|
<td align=right>300
|
|
<td>Shorter TunnelBuildReplyMessage as of 0.7.12
|
|
<tr><td>
|
|
Weitere sind in den
|
|
<a href="/_static/pdf/I2NP_spec.pdf">2003 Spec</a> aufgelistet.
|
|
<td>0,4-9,12
|
|
<td>
|
|
<td>
|
|
<td>Unbenutzt
|
|
</table>
|
|
|
|
{% endblock %}
|