Velocidad en I2P/es

Aus i2pwiki.mk16.de
Zur Navigation springen Zur Suche springen

Introducción[Bearbeiten]

Cuando se utiliza I2P a veces puede uno puede quedar sorprendido por la velocidad, a menudo es cambiante y lenta, y para un novato puede ser un desafío ponerse a la par de los demás...


Las Preguntas[Bearbeiten]

¿Cómo funciona I2P, por qué es lento, y por qué no utiliza todo el ancho de banda? (gracias a echelon por este artículo)


Primer factor: I2P usa una base de datos dinámica[Bearbeiten]

I2P es un red totalmente dinámica. Cada cliente es conocido por otros nodos y prueba los nodos conocidos localmente para comprobar su accesibilidad y su capacidad. Sólo los nodos accesibles y capaces son guardados en la NetDB local (Esto normalmente es sólo una parte de la red, sobre 500-1000). Cuando I2P construye túneles selecciona los mejores recursos de esta fuente. Por ejemplo, sólo unos 20-50 nodos están disponibles para construir túneles. Ya que las pruebas se hacen cada minuto la fuente de los nodos usados cambia cada minuto. Cada nodo I2P conoce una parte de la red total, haciendo que cada ruter tenga una lista diferente de nodos I2P para ser usados como túneles. Incluso si dos ruters tienen la misma subred de nodos conocidos las pruebas de accesibilidad y capacidad mostrarán diferentes resultados, ya que cuando un ruter hace las pruebas otros ruters pueden estar bajo carga, pero estar libre cuando es un segundo ruter el que hace las pruebas.


Segundo factor: La cantidad de nodos por circuito[Bearbeiten]

El texto anterior explica por qué cada nodo I2P usa diferentes nodos para construir sus túneles. Por qué cada nodo I2P tiene una latencia y ancho de banda diferente, los túneles (que se construyen con estos nodos) tienen valores diferentes de latencia y ancho de banda. Y ya que cada nodo I2P tiene diferentes nodos construidos, no hay dos nodos I2P con la misma configuración de túneles.

Un servidor/cliente se conoce como "destinación" y cada destinación tiene al menos un túnel de entrada y otro de salida. Por defecto son 3 saltos por túnel. Estos suman 12 saltos (osea 12 diferentes nodos I2P) para una ida y vuelta completa cliente-servidor-cliente.

Cada paquete de datos es enviado a través de otros 6 nodos I2P hasta que alcanza el servidor:

cliente - hop1 - hop2 - hop3 - hopa1 - hopa2 - hopa3 - servidor

y de vuelta otros 6 nodos diferentes:

servidor - hopb1 - hopb2 - hopb3 - hopc1 - hopc2 - hopc3 - cliente


Tercer factor: Los límites de los túneles[Bearbeiten]

Como la mayoría del tráfico I2P (www, torrent, ...) necesita paquetes ack hasta que la nueva información es enviada, necesita esperar hasta que un paquete ack regrese del servidor. Al final: envía información, espera por ack, envía mas información, espera por ack... Y ya que el RTT (RoundTripTime) añade latencia por cada nodo individual I2P y por cada conexión de esta ida y vuelta, normalmente tarda de 1-3 segundos hasta que un paquete ack regresa al cliente. Además el funcionamiento interno del transporte de TCP y de I2P hacen que un paquete de información tenga un tamaño limitado y no pueda ser tan grande como desearíamos que fuese. Estas condiciones unidas crean un límite de ancho de banda por túnel de 20-50 kbyte/sec. Pero, si un salto del túnel tiene SOLAMENTE 5 kb/sec de ancho de banda para usar, el túnel completo estará limitado a 5 kb/sec, independientemente de las latencia y otras limitaciones.


Cuarto factor: Uso de cifrado y la interrupción de servicio[Bearbeiten]

Debido al cifrado usado y otras configuraciones de I2P (como se construyen los túneles, latencia, ...) se utiliza bastante tiempo de la CPU para crear un túnel. Esto es por lo que una destinación solo tiene permitido un máximo de 6 túneles de entrada y 6 de salida para enviar información. Con un máximo de 50 kb/sec por túnel una destinación podría usar aproximadamente 300 kb/sec (en realidad podría ser más si se utilizan túneles más cortos con poco o ningún anonimato). Los túneles usados son eliminados cada 10 minutos y se crean unos nuevos. Estos cambios en los túneles (y a veces los clientes que apagan de golpe usando "apagar inmediatamente" o por caídas de corriente) a veces rompen los túneles y las conexiones, como se puede ver en las pérdidas de conexiones en el IRC2P (ping timeout) o cuando se está usando eepget.


Quinto factor: El ancho de banda de los otros nodos[Bearbeiten]

Con un número limitado de destinaciones y un número limitado de túneles por destinación, un nodo I2P sólo utiliza un número limitado de túneles a través de otros nodos de I2P. Por ejemplo, si en el ejemplo de arriba un nodo I2P es "hop1", sólo tendríamos 1 túnel participante originado en el cliente. Si sumamos toda la red I2P, sólo un número limitado de túneles participantes pueden ser construidos con una cantidad limitada de ancho de banda. Si uno distribuye todo ese número limitado entre el número de nodos I2P, sólo hay disponible una fracción del ancho de banda/capacidad disponible para el uso.


Sexto factor: Variación permanente de los nodos[Bearbeiten]

Para permanecer anónimos un ruter no debería usarse por toda la red para construir túneles, si un solo ruter funciona como túnel para TODOS los nodos de I2P se convierte en el centro de un problema, así como el punto central para obtener IPs e información de los clientes. Esto no es bueno. I2P intenta repartir la carga a través de muchos nodos I2P justo por esta razón.


Séptimo factor: TCP + UDP[Bearbeiten]

Otro punto a tener en cuenta es la red mesh completa. Cada conexión salto-a-salto utiliza una conexión TCP o UDP en los nodos de I2P. Con 1000 conexiones uno ve 1000 conexiones TCP. Eso es bastante y algunos ruters domésticos o de oficina (DSL, cable...) sólo permiten un cierto número de conexiones (o simplemente se vuelven locos si se usa un número mayor de X conexiones). I2P intenta limitar esas conexiones por debajo de 1500 para UDP y TCP. Esto limita también la cantidad de tráfico enrutado a través de su nodo I2P.


¿Y qué queda al final?[Bearbeiten]

En resumen, I2P es muy complejo y no hay una forma fácil de determinar con precisión por qué su nodo no se utiliza. Si su ruter es accesible y tiene mas de 128 kbyte/sec de ancho de banda compartido y está accesible 24/7, debería ser usado después de algún tiempo de tener tráfico participante. Si no esta activo siempre, las pruebas de otros nodos sobre su nodo I2P les dirá: no está accesible. Esto bloquea su nodo por al menos 24h para los otros nodos. Por lo cual los otros nodos que han testado su nodo cuando estaba caído no utilizaran su nodo para construir túneles durante 24h. Esto es por lo que su tráfico será menor después de un reinicio/apagado por lo menos durante 24h.

Además: otros nodos I2P necesitan conocer su ruter I2P para probar la accesibilidad y capacidad. Toma tiempo que otros nodos lleguen a conocer su nodo. Será más rápido si utiliza I2P y crea más túneles, por ejemplo usando torrents o webs i2p durante algún tiempo.


Consejos[Bearbeiten]

OK, eso está bien pero sigo teniendo un rendimiento horrible, ¿Qué puedo hacer?

  • Asegúrate de que I2P no está bloqueado por el cortafuegos. I2P perderá rendimiento si tiene que usar otras rutas y un salto adicional en el camino hasta tu computadora. Comprueba aquí en la consola del ruter. En la barra izquierda de debería decir: "Red: ok". Si no lo pone, mira en esta página los puertos TCP/UDP - estos tienen que ser los puertos reenviados (forwarded) por tu ruter o permitidos por tu cortafuegos.
  • Intenta mantener encendido I2P por mucho tiempo. Los pares serán reacios a comunicarse con tu ruter si el tiempo encendido varía. Ejecutar I2P en un VPS o en un PC siempre encendido puede ayudar a arreglar estos problemas.
  • Aumenta el ancho de banda. Por defecto el ancho de banda configurado es extremadamente bajo y por debajo de la media. Esto se hace para prevenir sobrecargas en los usuarios al instalar I2P. Puedes configurar esto aquí. Compartir un 70/80% está bien. Esto permitirá a I2P reenviar el tráfico de otros y manejar más conexiones propias. Es una victoria segura. ¿eh?
  • Si es la primera vez que ejecutas I2P, tienes que entender que cuanto más tiempo esté encendido I2P más tiempo tiene para integrarse dentro de la red. Estar encendido mucho tiempo siempre es útil para el ruter, pero mucho más si es la primera vez, ;)
  • Recuerda que esta es una red anónima y el rendimiento no siempre es lo más importante. El rendimiento mejorará cuanto más ruters haya (y cuanto más ancho de banda) ;).


Véase También[Bearbeiten]

Categoría:I2P


Referencias[Bearbeiten]

<references />