Tester le débit de votre liaison réseau en fonction de la taille des paquets
Date: 3/06/2010 | Catégories: Open-source,Reseau | Tags: débit,paquet,performance,taille,tcp,udp
Vous le savez (ou pas) mais la performance de vos applications réseau ne dépends pas seulement du débit et du délais de transit de votre liaison. Un des paramètre à prendre en compte est la taille des paquets générés par vos applications. C'est sur ce postulat que le logiciel Netpipe-TCP a été developpé.
NPtcp (disponible dans le package Netpipe-TCP sous Ubuntu) est un petit utilitaire bien pratique, en ligne de commande, permettant de tester le débit maximal d'une liaison en fonction de la taille des paquets.
Installation de NPtcp
Il faut installer le logiciel sur les deux machines (ou plus) entre lesquelles vous voulez tester votre réseau TCP/IP.
Sous Ubuntu:
sudo aptitude install netpipe-tcp
Utilisation de NPtcp en mode TCP
Sur la machine A ayant comme adresse IP 192.168.0.100 (d'un coté du réseau):
NPtcp
Sur la machine B (de l'autre coté du réseau à tester):
NPtcp -h 192.168.0.100
Il est important de noter que NPTcp va faire un test bi-directionnel (c'est à dire que les flux seront envoyé simultanément de A vers B et de B vers A). Pour tester seulement de B vers A, on peut utiliser l'option -s (à ajouter sur les deux lignes de commande).
Le résultat devrait ressembler à:
Send and receive buffers are 16384 and 87380 bytes (A bug in Linux doubles the requested buffer sizes) Now starting the main loop 0: 1 bytes 648 times --> 0.05 Mbps in 142.98 usec 1: 2 bytes 699 times --> 0.11 Mbps in 144.26 usec 2: 3 bytes 693 times --> 0.16 Mbps in 145.62 usec 3: 4 bytes 457 times --> 0.21 Mbps in 145.54 usec 4: 6 bytes 515 times --> 0.31 Mbps in 145.94 usec 5: 8 bytes 342 times --> 0.42 Mbps in 144.11 usec 6: 12 bytes 433 times --> 0.63 Mbps in 146.39 usec 7: 13 bytes 284 times --> 0.67 Mbps in 147.55 usec 8: 16 bytes 312 times --> 0.83 Mbps in 147.73 usec 9: 19 bytes 380 times --> 0.98 Mbps in 148.04 usec 10: 21 bytes 426 times --> 1.07 Mbps in 150.25 usec ...
Comment lire les résultats ?
On obtient donc un débit de 0.63 Mbps pour des tailles de paquets TCP de 12 octets, 1 Mbps pour 21 octets...
Et si l'on veut générer un beau graphe
Et oui, les chefs, les tableaux et les résultats en mode texte ils n'aiment pas ça... Donc pour assurer votre prochaine augmentation, nous allons, avec l'aide de gplot, compulser les chiffres générés par NPTcp dans un "beau" graphe...
On commence par ajouter l'option "-o fichier":
Sur la machine B (de l'autre coté du réseau à tester):
NPtcp -h 192.168.0.100 -o nptcp.out
Puis on trace le graphe:
echo "reset; set terminal png; \
set logscale x;
set xlabel 'Taille des paquets (octets)'; \
set ylabel 'Debits (Mbps)'; \
plot 'nptcp.out' using 1:2 with linespoints;" | gnuplot > nptcp.png
Et on a le résultat suivant (sur une liaison LAN):
Quelques options en bonus...
Pour simuler un flux unidirectionnel de B vers A (streaming):
A# NPtcp -s
B# NPtcp -h 192.168.0.100 -s -o nptcp.out
Pour limiter le test a une taille maximale de paquet de 256 Ko:
NPtcp -h 192.168.0.100 -u 256000 -o nptcp.out
Pour fixer une taille minimale à 16 Ko:
NPtcp -h 192.168.0.100 -u 256000 -l 16000 -o nptcp.out
Conclusion
Un bon outil de plus à ajouter a son couteau suisse des applications open-source pour l'administration et le test de son réseau !