---
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)