StreamSocketListenerControl.NoDelay Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Um valor que indica se o algoritmo Nagle é usado em um objeto StreamSocket criado quando uma conexão é recebida pelo objeto StreamSocketListener .
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 da propriedade
bool
Um valor que indica se o algoritmo Nagle é usado na conexão TCP de um objeto StreamSocket criado.
Comentários
A propriedade NoDelay controla se o algoritmo de Nagle está habilitado ou desabilitado em um objeto StreamSocket criado. O valor padrão para a propriedade NoDelay em um StreamSocket é true.
O algoritmo de Nagle é uma técnica para melhorar a eficiência das redes TCP/IP, reduzindo o número de pacotes que precisam ser enviados pela rede. O algoritmo tenta lidar com problemas causados por um aplicativo que emite dados repetidamente em pequenas partes. Um pacote TCP tem um cabeçalho de 40 bytes (20 bytes para IP e 20 bytes para TCP). Portanto, se um aplicativo enviar apenas 4 bytes em um pacote, a sobrecarga nos dados do pacote será muito grande. Isso pode ocorrer para um protocolo de acesso remoto (telnet ou shell seguro, por exemplo), em que a maioria das pressionamentos de teclas pode gerar apenas um ou dois bytes de dados transmitidos imediatamente. Por um link lento, muitos desses pacotes podem estar em trânsito pela rede ao mesmo tempo. O algoritmo de Nagle funciona combinando várias pequenas mensagens de saída e enviando todas de uma só vez. Quando há um pacote enviado para o qual o remetente não recebeu nenhuma confirmação, o remetente mantém a saída de buffer até que ele tenha um pacote completo de saída. Isso permite que a saída seja enviada de uma só vez. O impacto da aplicação do algoritmo de Nagle é aumentar a largura de banda em detrimento da latência. Um aplicativo bem escrito que os buffers enviam internamente não deve precisar usar o algoritmo de Nagle.
Quando essa propriedade for true, o StreamSocket desabilitará o algoritmo de Nagle na conexão TCP. Essa configuração reduz os possíveis atrasos ao enviar mensagens pequenas. Quando um StreamSocket é criado, o valor padrão dessa propriedade é true.
Quando essa propriedade for falsa, o StreamSocket habilitará o algoritmo de Nagle na conexão TCP. Essa configuração pode aumentar a largura de banda em detrimento da latência, mas só deve ser usada com cuidado. Há alguns efeitos colaterais adversos possíveis quando o algoritmo de Nagle está habilitado e determinadas outras otimizações de TCP também são usadas.
Essa propriedade pode ser definida antes que StreamSocketListener comece a escutar conexões de entrada. Depois que StreamSocketListener começar a escutar conexões de entrada, definir a propriedade resultará em um erro.
Essa propriedade define o valor da opção de soquete TCP_NODELAY no soquete TCP usado pelo StreamSocket.