[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