¿Cuál es el número máximo de conexiones TCP simultáneas logradas a una dirección IP y puerto?

En la práctica, el número de conexiones TCP / IP actualmente está limitado solo por la implementación del sistema operativo y las capacidades del hardware de la computadora.

El estándar TCP / IP establece identificadores de conexión únicos como la tupla de la dirección IP local, el número de puerto TCP local, la dirección IP remota y el número de puerto TCP remoto. En su ejemplo, los números locales son fijos, lo que deja aproximadamente [math] 2 ^ {32} [/ math] direcciones IP remotas (versión 4) y [math] 2 ^ {16} [/ math] números de puerto TCP , o una conexión TCP simultánea potencial total aproximada de 281,474,976,710,656 ([matemática] 2 ^ {48} [/ matemática], o 2.81 * [matemática] 10 ^ {14} [/ matemática], o 281 billones).

Las probabilidades son buenas si se queda sin RAM para las estructuras de datos de estado TCP, o la RAM del búfer para los datos que se mueven antes de alcanzar ese límite.

En la práctica, depende de

  • cuánto rendimiento de hardware tiene (potencia de procesamiento y RAM),
  • cómo su sistema operativo procesa las conexiones, es decir, cuál es la sobrecarga en las estructuras de datos del sistema operativo (por ejemplo, para UNIX, descriptores de archivos, mbufs, estructuras de estado de conexión TCP) y el procesamiento para realizar un seguimiento y mover datos a través de conexiones TCP; y
  • sean cuales sean los requisitos de RAM / procesamiento de su aplicación de red real.

Todo depende en gran medida del sistema operativo y las aplicaciones, y no me queda claro cómo los ejemplos de cualquier combinación de aplicación / sistema operativo / hardware que alguien pueda citar pueden informarle razonablemente sobre su propia aplicación en particular.

Consulte también ¿Existe un límite en la cantidad de solicitudes abiertas que un cliente HTTP (digamos un navegador) puede realizar en el mismo sitio web? ¿Qué es? ¿El descriptor de archivo es uno de ellos? ¿Qué más?

El número máximo de sesiones TCP que puede hacer una sola IP de origen en una sola IP de destino y puerto es 65.535. Esto supone que se utilizan todos los puertos de origen disponibles en el rango de puertos de origen de 16 bits (excluyendo 0) de la IP de origen.

En la práctica, la mayoría de los sistemas operativos solo crean puertos de origen antiguos, el tipo de puerto que usan los clientes, comenzando en el puerto 32768 (el número más bajo en la segunda mitad del rango 0-65535), lo que significa que puede hacer hasta 32,768 conexiones a un solo destino IP y puerto de escucha. Obviamente, otras limitaciones de recursos pueden evitar esto, pero ese es el máximo teórico.

Si su cliente tiene varias direcciones IP desde las que puede obtener conexiones, multiplique por el número de IP de origen disponibles.

¿Cómo optimizar?