Si su objetivo es el procesamiento casi en tiempo real, no debe usar TCP. Utilice UDP en su lugar, especialmente si está dentro de alguna red privada. Entonces, el riesgo de que los paquetes se pierdan por un pedido incorrecto es muy pequeño. Pero hay razones por las que es posible que desee utilizar TCP, incluida la conveniencia del desarrollador, la falta de soporte para UDP en algunas redes (detrás de firewalls, por ejemplo), entrega garantizada, etc.
Suponiendo que necesita usar TCP, debe comprender que, de hecho, hay dos lados en esta pregunta: el transmisor y el receptor. El hecho de que pueda forzar al transmisor a enviar el paquete inmediatamente no significa que la pila TCP en el receptor hará lo mismo. Eso es algo que la mayoría de la gente olvida tener en cuenta.
Otro problema es que el búfer TCP tiene sorprendentemente poco efecto en este escenario. Los buffers se utilizan para otros fines en TCP, y para lograr lo que desea, debe comprender mejor el efecto de los indicadores TCP.
- ¿Qué hace cambiar la dirección IP de mi computadora?
- ¿Cómo explicaría el Protocolo de transmisión en tiempo real (RTSP) de una manera no complicada? ¿Por qué es mejor para la transmisión de video vigilancia?
- Respuesta de : Host de destino inalcanzable, ¿es esta IP la puerta de enlace predeterminada desde mi PC al primer enrutador?
- Cómo prepararse para los perfiles de ingeniero de redes en Google, Facebook, Amazon y Microsoft
- Acabo de recibir DOS desde una IP de Rumania usando TCP y UDP. ¿Qué tengo que hacer? ¿Cómo puedo verificar si se trata de una VPN? ¿Cuáles son las acciones legales que debo tomar en este momento?
Entonces, en su caso, existen dos técnicas principales para obtener un mejor rendimiento de una conexión TCP. El primero es configurar el indicador TCP_NODELAY, que se ocupa del lado de la transmisión, desactivando el algoritmo de Nagle.
Para lidiar con el segundo problema (asegurarse de que el paquete se entregue a la aplicación de inmediato), existe el indicador PSH. Hay una buena lectura en el blog de Packetlife (Banderas TCP: PSH y URG).
Dicho esto, TCP es mejor dejarlo en sus valores predeterminados. Pero si necesita hacer algo diferente, debe estudiar mucho. En algunos casos, realmente necesita leer la implementación para comprender lo que está sucediendo. Para una comprensión más simple, el rastreo de paquetes de aplicaciones similares es una buena manera de aprender también.