StreamSocketListenerControl.NoDelay Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Valor que indica si el algoritmo nagle se usa en un objeto StreamSocket creado cuando el objeto StreamSocketListener recibe una conexión.
public:
property bool NoDelay { bool get(); void set(bool value); };
bool NoDelay();
void NoDelay(bool value);
public bool NoDelay { get; set; }
var boolean = streamSocketListenerControl.noDelay;
streamSocketListenerControl.noDelay = boolean;
Public Property NoDelay As Boolean
Valor de propiedad
bool
Valor que indica si el algoritmo nagle se usa en la conexión TCP de un objeto StreamSocket creado.
Comentarios
La propiedad NoDelay controla si el algoritmo de Nagle está habilitado o deshabilitado en un objeto StreamSocket creado. El valor predeterminado de la propiedad NoDelay en un Objeto StreamSocket es true.
El algoritmo de Nagle es una técnica para mejorar la eficacia de las redes TCP/IP al reducir el número de paquetes necesarios para enviarse a través de la red. El algoritmo intenta tratar los problemas causados por una aplicación que emite datos repetidamente en fragmentos pequeños. Un paquete TCP tiene un encabezado de 40 bytes (20 bytes para IP y 20 bytes para TCP). Por lo tanto, si una aplicación envía solo 4 bytes en un paquete, la sobrecarga en los datos del paquete es muy grande. Esto puede ocurrir para un protocolo de acceso remoto (telnet o shell seguro, por ejemplo), donde la mayoría de las pulsaciones de teclas pueden generar solo un solo byte o dos de datos que se transmiten inmediatamente. A través de un vínculo lento, muchos de estos paquetes pueden estar en tránsito a través de la red al mismo tiempo. El algoritmo de Nagle funciona combinando una serie de mensajes salientes pequeños y enviarlos todos a la vez. Cuando hay un paquete enviado para el que el remitente no ha recibido ninguna confirmación, el remitente mantiene la salida en búfer hasta que tiene el valor de salida de un paquete completo. Esto permite que la salida se envíe a la vez. El impacto de aplicar el algoritmo de Nagle es aumentar el ancho de banda a costa de la latencia. Una aplicación bien escrita que los búferes envían internamente no debe necesitar usar el algoritmo de Nagle.
Cuando esta propiedad es true, StreamSocket deshabilitará el algoritmo de Nagle en la conexión TCP. Esta configuración reduce los posibles retrasos al enviar mensajes pequeños. Cuando se crea un Objeto StreamSocket , el valor predeterminado de esta propiedad es true.
Cuando esta propiedad es false, StreamSocket habilitará el algoritmo de Nagle en la conexión TCP. Esta configuración puede aumentar el ancho de banda a costa de la latencia, pero solo debe usarse con precaución. Hay algunos efectos secundarios adversos posibles cuando el algoritmo de Nagle está habilitado y también se usan otras optimizaciones TCP.
Esta propiedad se puede establecer antes de que StreamSocketListener empiece a escuchar las conexiones entrantes. Después de que StreamSocketListener empiece a escuchar las conexiones entrantes, establecer la propiedad producirá un error.
Esta propiedad establece el valor de la opción de socket TCP_NODELAY en el socket TCP usado por StreamSocket.