Este artigo foi traduzido por máquina. Para visualizar o arquivo em inglês, marque a caixa de seleção Inglês. Você também pode exibir o texto Em inglês em uma janela pop-up, movendo o ponteiro do mouse sobre o texto.
Tradução
Inglês

Nagle Algorithm

.NET Compact Framework 1.0
Windows Mobile SupportedWindows Embedded CE Supported
9/8/2008

Windows Embedded CE TCP/IP implementa o algoritmo Nagle descrito em RFC 896. O objetivo desse algoritmo é reduzir o número de segmentos muito pequenos enviados, especialmente em links High-Delay (remoto). O algoritmo Nagle permite que segmentos pequenos para ser enviado apenas se o conexão TCP tem não confirmados e pendente dados. Se mais segmentos pequenos são gerados enquanto está aguardando o ACK para o primeiro e, em seguida, esses segmentos estão coalesced em um maior segmento. Qualquer segmento em tamanho normal sempre é transmitido imediatamente, supondo que há um suficientes receber janela disponível. O algoritmo Nagle é eficaz em reduzir o número de pacotes enviados por interativo aplicativos, como Telnet, especialmente em links lentos.

O algoritmo Nagle pode ser observado no seguinte rastrear capturado por Microsoft Network Monitor. A rastrear foi capturado usando PPP para discagem até um provedor serviço Internet em 9600 BPS. Foi estabelecida uma sessão Telnet (modo caractere) e, em seguida, a chave Y foi pressionada sobre o dispositivo. Em todas as vezes, um segmento foi enviado, e ainda mais caracteres Y foram mantidos pela pilha até que uma confirmação de recebimento foi recebida para o segmento anterior. Neste exemplo, três a quatro caracteres Y foram armazenada em buffer cada tempo e enviados juntos em um segmento. O algoritmo Nagle resultou em uma enorme economia no número de pacotes enviados — o número de pacotes foi reduzido por um fator de cerca de três.

Time  Source IP     Dest IP       Prot   Description
0.644 204.182.66.83 199.181.164.4 TELNET To Server Port = 1901
0.144 199.181.164.4 204.182.66.83 TELNET To Client Port = 1901
0.000 204.182.66.83 199.181.164.4 TELNET To Server Port = 1901
0.145 199.181.164.4 204.182.66.83 TELNET To Client Port = 1901
0.000 204.182.66.83 199.181.164.4 TELNET To Server Port = 1901
0.144 199.181.164.4 204.182.66.83 TELNET To Client Port = 1901
. . .

Cada segmento continha vários caracteres de Y. O primeiro segmento é mostrado mais totalmente analisado abaixo, e o parte de dados é apontado fora no hexadecimal valor no inferior.

***********************************************************************
Time  Source IP      Dest IP        Prot    Description
0.644 204.182.66.83  199.181.164.4  TELNET  To Server Port = 1901
+ FRAME: Base frame properties
+ ETHERNET: ETYPE = 0x0800 : Protocol = IP: DOD Internet Protocol
+ IP: ID = 0xEA83; Proto = TCP; Len: 43
+ TCP: .AP..., len: 3, seq:1032660278, ack: 353339017, win: 7766, src: 1901 dst: 23 (TELNET) 
 TELNET: To Server From Port = 1901
   TELNET: Telnet Data
D2 41 53 48 00 00 52 41 53 48 00 00 08 00 45 00  .ASH..RASH....E.
00 2B EA 83 40 00 20 06 F5 85 CC B6 42 53 C7 B5  .+..@. .....BS..
A4 04 07 6D 00 17 3D 8D 25 36 15 0F 86 89 50 18  ...m..=.%6....P.
1E 56 1E 56 00 00 79 79 79                       .V.V..yyy    
                                                       ^^^
                                                       data

Aplicativos Soquetes do Windows podem desativar o algoritmo Nagle para suas conexões pela configuração de opção Soquete TCP_NODELAY. No entanto, essa prática deve ser usado organizadamente e somente quando necessário porque essa prática aumenta tráfego de rede. Normalmente, aplicativos que precisam para desativar o algoritmo Nagle são aplicativos que precisam enviar pacotes pequenos e requerem que o aplicativo ponto recebê-los imediatamente. Alguns aplicativos rede não podem executar bem se seu design não leva em conta os efeitos de transmitir um grande número de pacotes pequenos e o algoritmo Nagle.

Contribuições da comunidade

ADICIONAR
Mostrar: