Por lo general, en lo que respecta a setsockopt (2), generalmente se establecería:
- SO_REUSEADDR (man setsockopt): permite reutilizar sockets cerrados ya asignados, lo que aumenta de manera efectiva el límite de conexión simultánea
- TCP_NODELAY (man tcp): deshabilita el algoritmo de Nagle
- TCP_CORK (Linux) / TCP_NOPUSH (BSD) (man tcp) – ver abajo
Esa última opción es buena para cuando tiene un protocolo transaccional, por ejemplo, HTTP, porque guarda todo lo que está en el núcleo para enviarlo en la menor cantidad de paquetes posible. Sin embargo, si está buscando la latencia más baja (por ejemplo, SSH), no querrá establecer esa opción.
Para los sockets del servidor, también desea aumentar el número de SYN TCP pendientes permitidos al pasar un valor entero “backlog” entero más grande a la llamada listen (2). Por lo general, 1024 es común, pero dependiendo de cuántos intentos de conexión entrante espere y cuánto tiempo lleve reparar esas conexiones, es posible que desee ajustar eso en consecuencia. He visto a muchas personas y bibliotecas usar ‘5’, que es demasiado bajo para el uso de producción en mi experiencia.
- ¿Cómo es posible servir más de 65535 conexiones simultáneamente, cuando el número de puerto TCP es un número de 16 bits?
- ¿La dirección IP de mi red y punto de acceso están conectados a los otros dispositivos al mismo tiempo?
- ¿Cuántos tipos de modelos de red hay en total, como dos son los modelos TCP / IP, OSI?
- ¿Qué tan roto está SIP y por qué?
- ¿Cómo se diferencian las dos partes de una dirección IP por dispositivos en la red como una PC?