[GTER] TCP e UDP

Ricardo A. Reis ricardo_bsd at yahoo.com.br
Fri Mar 10 15:04:25 -03 2006


          Falando de iperf eu tenho algumas resalvas ao uso dessa  
aplicação, a alguns meses eu precisei validar um link sdh 150 megas e tive  
serios problema de esgotamento de buffer em teste de stream unico com udp,
          Basicamente eu estou falando da send() e a forma como o iperf  
trata essa questão, a implementações dessa função
é inicialmente é BSD porem no Linux foi modificada podemos ver isso em,

man send() - FreeBSD


      [ENOBUFS]          The system was unable to allocate an internal  
buffer.
                         The operation may succeed when buffers become  
avail-
                         able.

      [ENOBUFS]          The output queue for a network interface was full.
                         This generally indicates that the interface has
                         stopped sending, but may be caused by transient  
con-
                         gestion.


man send() - Linux

        [ENOBUFS]          The  output  queue for a network interface was  
full.
                          This generally indicates that the interface has  
stopped sending, but may
                          be caused by transient congestion.  (Normally,  
this does not occur in Linux.
                          Packets are just silently dropped when  a  device  
queue overflows.)



          Como podemos ver no Linux os pacotes normalmente são dropados e  
no free
  o programa é deve ser notificado que é preciso reduzir o fluxo devido a  
congestionamento, nesses casos em que rodamos um iperf como banda uma  
banda teoricamente possivel de se transmitir em sistemas BSD ele exita com  
uma mensagem de erro, td isso pq ele não foi desenvolvido seguindo o  
padrão send() onde é preciso reduzir o fluxo durante um congestionamento  
UDP.
          Iperf é um software muito bom, porem feito pra Linux por  
programadores que acham que OpenSource == Linux, eu aconcelho
vocẽ a usar netperf ou ttcp, sendo esse ultimo largamente usado em  
concursos de Maior Transmissão  em um unico STREAM.



Atenciosamente

Ricardo A. Reis
UNIFESP
Unix and Network Admin









On Thu, 09 Mar 2006 17:36:46 -0300, Everton da Silva Marques  
<EMarques at diveo.net.br> wrote:

Fabio Fonseca escreveu:

Pergunto:

Existe diferença na transferência de pacotes entre TCP e UDP ?

Sim, existe; mas nesse caso mais provavelmetne
experimenta-se uma particularidade do iperf.

Note que o TCP consegue usar aproximadamente a banda
disponível:

[ ID] Interval       Transfer     Bandwidth
[1912]  0.0-10.0 sec  3.77 MBytes  3.16 Mbits/sec

(...)

Enquanto o UDP produz um resultado péssimo:

[ ID] Interval       Transfer     Bandwidth
[1912]  0.0-10.0 sec  1.25 MBytes  1.05 Mbits/sec

Como não há controles de fluxo/congestionamento no UDP,
e o iperf foi invocado sem especificação de banda (opção -b),
ele está assumindo "banda infinita", e presumivelmente
esbarrando em algum gargalo do sistema (talvez descarte
maciço de pacotes em buffers internos da estação),
o que se reflete no resultado ruim.

Experimente especificar alguma banda "diferente de
infinita" na invocação do iperf, quando usar modo UDP.
Por exemplo, no seu caso, acrescentar algo como "-b 4M".
--
gter list    https://eng.registro.br/mailman/listinfo/gter



--
Atenciosamente

Ricardo A. Reis
UNIFESP
Unix and Network Adm



		
_______________________________________________________
Yahoo! Acesso Grátis - Internet rápida e grátis. Instale o discador agora!
http://br.acesso.yahoo.com



More information about the gter mailing list