Tester le débit de votre liaison réseau en fonction de la taille des paquets

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 !

Vus : 423
Publié par Nicolargo : 402