Skip to content

Commit

Permalink
Moneropedia: update NTCP/SSU/Transports entries
Browse files Browse the repository at this point in the history
Also:
 - Add more 'terms' in other entries
 - Separate @Kovri/@i2p (currently, @i2p is implied)

Referencing:
 - monero-project/kovri#256
 - monero-project#155
  • Loading branch information
anonimal committed Oct 15, 2016
1 parent 92b8462 commit 313b069
Show file tree
Hide file tree
Showing 9 changed files with 46 additions and 22 deletions.
2 changes: 1 addition & 1 deletion knowledge-base/moneropedia/base32-address.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
layout: moneropedia
entry: "Base32 address"
tags: ["kovri"]
terms: ["base32-address"]
terms: ["base32-address", "base32-addresses"]
summary: "Base32 encoded hash of a Base64 address"
---

Expand Down
2 changes: 1 addition & 1 deletion knowledge-base/moneropedia/base64-address.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
layout: moneropedia
entry: "Base64 address"
tags: ["kovri"]
terms: ["base64-address"]
terms: ["base64-address", "base64-addresses"]
summary: "Base64 encoded I2P destination"
---

Expand Down
4 changes: 2 additions & 2 deletions knowledge-base/moneropedia/clearnet.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,6 @@ These technologies protect you from clearnet by building an anonymous network **

Here is an accurate, [interactive diagram](https://www.eff.org/pages/tor-and-https) provided by the [EFF](https://www.eff.org/) which describes *clearnet* as it relates to **Tor**. The concept also (somewhat) applies to @Kovri and @I2P in terms of anonymity with the exception that:

- @Kovri/@I2P does not use exit nodes when connecting to an @eepsite
- @Kovri does not use exit nodes when connecting to an @eepsite
- Your traffic ever need to leave the @I2P network.
- You do not need HTTPS to use @Kovri/@I2P (with the exception of @reseed)
- You do not need HTTPS to use @Kovri (with the exception of @reseed)
2 changes: 1 addition & 1 deletion knowledge-base/moneropedia/destination.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,6 @@ TODO(anonimal): finish

### In-depth Information

An @I2P destination can be encoded into a @base32-address or @base64-address. Most users will only care about @base32-address or a `.i2p` hostname while, internally, @Kovri/@I2P will use the @base64-address.
An @I2P destination can be encoded into a @base32-address or @base64-address. Most users will only care about @base32-address or a `.i2p` hostname while, internally, @Kovri uses @base64-addresses.

TODO(anonimal): finish
2 changes: 1 addition & 1 deletion knowledge-base/moneropedia/garlic-routing.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ layout: moneropedia
entry: "Garlic Routing"
tags: ["kovri"]
terms: ["garlic-routing"]
summary: "Routing technology as implemented in Kovri/I2P"
summary: "Routing technology as implemented in Kovri"
---

### The Basics
Expand Down
2 changes: 1 addition & 1 deletion knowledge-base/moneropedia/java-i2p.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ layout: moneropedia
entry: "Java I2P"
tags: ["kovri"]
terms: ["Java-I2P"]
summary: "The original implementation of I2P; written in Java"
summary: "The original implementation of I2P - written in Java"
---

### The Basics
Expand Down
25 changes: 22 additions & 3 deletions knowledge-base/moneropedia/ntcp.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,32 @@ layout: moneropedia
entry: "NTCP"
tags: ["kovri"]
terms: ["NTCP"]
summary: "TODO(anonimal): finish"
summary: "NIO-Based TCP (Non-blocking I/O based TCP): one of two Kovri transports"
---

### The Basics

TODO(anonimal): finish
*NIO-Based TCP (Non-blocking I/O based TCP)* is one of two encrypted @transports for @Kovri.

Similar to @SSU, @NTCP's *primary* purpose is to securely transmit @in-net @I2NP messages through @tunnels but, unlike @SSU, @NTCP functions solely over encrypted [TCP](https://en.wikipedia.org/wiki/Transmission_Control_Protocol).

### In-depth information

TODO(anonimal): finish
- Passes along individual @I2NP messages (both Standard and Time Sync) after:
- TCP has been established
- Establishment Sequence has been completed
- Uses the following @encryption:
- 2048-bit [Diffie-Hellman](https://en.wikipedia.org/wiki/Diffie-hellman)
- [AES-256](https://en.wikipedia.org/wiki/Advanced_Encryption_Standard)/[CBC](https://en.wikipedia.org/wiki/Block_cipher_modes_of_operation)
- Establishment Sequence has the following *states*:
- Pre-establishment
- Establishment
- Post-establishment or "Established"
- Uses the following from the @network-database:
- Transport name: NTCP
- Host: IP (IPv4 or IPv6) or host name (shortened IPv6 address (with "::") is allowed)
- Port: 1024 - 65535

### Notes

For further details, read @Java-I2P's [NTCP](https://geti2p.net/en/docs/transport/ntcp)
19 changes: 9 additions & 10 deletions knowledge-base/moneropedia/ssu.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,24 +3,23 @@ layout: moneropedia
entry: "SSU"
tags: ["kovri"]
terms: ["SSU"]
summary: "I2P's Secure Semi-reliable UDP layer"
summary: "Secure Semi-reliable UDP: one of two Kovri transports"
---

### The Basics

*Secure Semi-reliable UDP* (SSU) is one of two encrypted @transport layers for @Kovri/@I2P.
*Secure Semi-reliable UDP* is one of two encrypted @transports for @Kovri.

SSU's *primary* purpose is to securely transmit @in-net @I2NP messages through @tunnels over encrypted [UDP](https://en.wikipedia.org/wiki/User_Datagram_Protocol).
Similar to @NTCP, @SSU's *primary* purpose is to securely transmit @in-net @I2NP messages through @tunnels but, unlike @NTCP, @SSU functions solely over encrypted [UDP](https://en.wikipedia.org/wiki/User_Datagram_Protocol).

### In-depth information

- Much like its @NTCP counterpart, SSU is a connection-oriented, point-to-point data transport
- Termed *semi-reliable* because SSU will repeatedly retransmit *unacknowledged* messages (up to maximum number then dropped)
- SSU also provides several unique services (in addition to its function as a @transport layer):
- IP detection (local inspection + peer testing)
- NAT traversal (using introducers)
- Firewall status
- If implemented, SSU can notify NTCP if the external address or firewall status changes
- Like @NTCP, @SSU is a connection-oriented, point-to-point data transport
- Termed *semi-reliable* because @SSU will repeatedly retransmit *unacknowledged* messages (up to maximum number then dropped)
- @SSU also provides several unique services (in addition to its function as a @transport layer):
- IP detection (local inspection or with [peer testing](https://geti2p.net/en/docs/transport/ssu#peerTesting))
- [NAT](https://en.wikipedia.org/wiki/Network_address_translation) traversal (using [introducers](https://geti2p.net/en/docs/transport/ssu#introduction))
- [Firewall](https://en.wikipedia.org/wiki/Firewall_%28computing%29) status and, if implemented, @SSU can notify @NTCP if the external address or firewall status changes

### Notes

Expand Down
10 changes: 8 additions & 2 deletions knowledge-base/moneropedia/transports.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,19 @@ layout: moneropedia
entry: "Transports"
tags: ["kovri"]
terms: ["transports", "transport"]
summary: "TODO(anonimal): finish"
summary: "The two encrypted transport layers for Kovri"
---

### The Basics

TODO(anonimal): finish
@Kovri comes with two encrypted [transport layer](https://en.wikipedia.org/wiki/Transport_layer) technologies that allow @Kovri to send @messages across the @I2P network. These *@transports* are @SSU and @NTCP.

@SSU is encrypted [UDP](https://en.wikipedia.org/wiki/User_Datagram_Protocol) and @NTCP is encrypted [TCP](https://en.wikipedia.org/wiki/Transmission_Control_Protocol). They both allow you to securely use @I2P over [TCP/IP](https://en.wikipedia.org/wiki/Tcp/ip) connections.

### In-depth information

TODO(anonimal): finish

### Notes

Read about the transport layer in the [OSI model](https://en.wikipedia.org/wiki/OSI_model)

0 comments on commit 313b069

Please sign in to comment.