Lista de Discuss�o Rede Wan - http://www.networkdesigners.com.br

 
    Oi Julio

    realmente falei besteira... agora estava pesquisando, e percebi isso. Ele falou de fragmentação e MTU, então pensei logo no IP. Como você disse, o Nagle diz respeito ao TCP.
    O Nagle é uma heurística de prevenção para a Síndrome da Janela Desnecessaria, ou Silly Window Sindrome (SWS) no TCP. Para que o receptor não fique retornando confirmações com um tamanho de janela disponivel de apenas um byte, eles atrasam um pouco ate que tenham um tamanho de janela suficiente, e vao ajuntando no buffer. Existe formas de prevenção tanto no receptor como no transmissor. É feito esse atraso para encher o buffer mesmo em operacoes PUSH. Mas acho que ele não quebra aqueles 10 bytes do Jorge, ou se quebra, só o libera para a aplicação superior em conjunto.
    Até onde eu entendi, o Nagle, funciona no transmissor, e não em roteadores no meio do caminho, certo? Ou existem implementações dele assim?

    Uma boa fonte de pesquisa para mim é o livro do Douglas Comer, Internetworkin with TCP/IP.
 
    Agora voltando ao assunto original:
    O Nagle funciona por causa de um problema no TCP.
    O VoIP funciona com o UDP.
    Ou seja... para o VoIP, Nagle não quer dizer nada.
 
    Obrigado pela dica.
    um abraço.

Julio Arruda wrote:

Lista de Discussão Rede Wan - http://www.networkdesigners.com.brDenys,O Jorge nao esta falando de fragmentacao no IP e sim no nivel "tcp" (sim, concordo que nao é fragmentacao, o termo fica meio "esquisito", mas o conceito da para entender).O segmento TCP que sai de um lado, via um "write" nao necessariamente é lido em um unico read do outro lado (falando de end-point para end-point).Em aplicacoes que tomem um certo cuidado, isto nao deve dar xabu.[], <O_O>
-----Original Message-----
From: Denys Sene dos Santos [mailto:[EMAIL PROTECTED]]
Sent: Monday, January 22, 2001 7:30 PM
To: Lista de Discusso Rede Wan
Subject: Re: RES: [redewan] VoIP - fragmentar datagramas...
 
Lista de Discussão Rede Wan - http://www.networkdesigners.com.br
 

    Não é exatamente assim. A fragmentação dos datagramas acontece por que ele é maior que o MTU de uma rede que ele tem que passar. Então o roteador quebra ele em pedaços copiando grande parte do header para todos os fragmentos, que serão pacotes IP menores, com o header quase igual, com a diferenç no campo FLAGS que é setado alguns bits, o campo OFFSET  DE FRGAMENTO, usado para saber a posição daquele dado dentro do pacote IP original que foi fragmentado.
    Um pacote pequeno não é um pacote fragmentado. Existe um MTU mínino permitido, sendo que dessa forma existirão datagramas que nunca serão fragmentados, como datagramas de controle e etc. Originalmente, quem remonta esses datagramas fragmentados é o host destino. Com o nagle, segundo me consta (essa parte eu não tenho total certeza), um roteador no caminho, que vai jogar para uma rede com MTU maior que o que está chegando, pega todos os pacotes que foram fragmentados (só os que foram fragmentados) e remonta-os antes de repassar para a próxima rede, afim de melhorar a performance, o que exige um roteador bem robusto. Porém, hoje em dia, acredito que o mais comun seja o path MTU discovery, que faz com que as duas pontas que conversam, descubram o MTU minimo usado no caminho e utilizem este para melhorar a performance. Porque?
    Porque quando o destino começa a receber os fragmentos ele inicia um contador, e se esse contador esgota antes de chegar todos os fragmentos, ele infelizmente descarta o pacote que está sendo remontado inteirinho (mesmo que ele já tenha recebido grande parte deste), e aí o grande problema da fragmentação que causa impacto na performance. A remontagem dos pacotes também geram uma perda significativa de performance. Essa é a motivação na procura de algoritimos para cuidar das fragmentações, de onde vieram o Nagle e o path MTU discovery.
 

"Silveira, Jorge" wrote:

Lista de Discussão Rede Wan - http://www.networkdesigners.com.brJulio,     Não sei se te entendi. O que quis dizer é que, como o exemplo:     Possuo, por exemplo, um pacote de "keep-alive" de 10 bytes e este não pode ser segmentado. Se eu habilitar o nagle, o equipamento armazena os dados até o tamanho máximo da MTU, para melhor aproveitamento da rede!!??? Agora, imagine que no buffer já está armazenado 1495bytes e o buffer recebe o keep alive ==>1495+5=1500bytes(1º pacote enviado) e depois, os outros 5bytes do keepalive serão armazenados no buffer para a próxima transmissão. No outro end-point, a aplicação recebe o keep-alive fragmentado e minha aplicação está programada para discartar keep-alives fragmentados. Dependendo dos parâmetros da programação, a aplicação poderá "derrubar" a conexão!! Espero ter sido claro, agora. Se vi isto acontecer, inclusive usando analisador.

--
--------------------------------------------------------------
Denys Sene dos Santos - [EMAIL PROTECTED]
Diretor Técnico - System and Network Administrator
Onlinet - Afiliado do Universo Online - O Melhor da Internet
http://www.onlinet.com.br/
 


To unsubscribe, write to [EMAIL PROTECTED]

Responder a