monero-site/resources/moneropedia/ntcp.md
2017-07-04 00:00:32 -06:00

34 lines
1.3 KiB
Markdown

---
layout: moneropedia
entry: "NTCP"
tags: ["kovri"]
terms: ["NTCP"]
summary: "NIO-Based TCP (Non-blocking I/O based TCP): one of two Kovri transports"
---
### The Basics
*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
- 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)