Auteur:


Date:
3/06/2010

Catégories:
Open-source
Reseau

Tags:






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 à:

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 !

  • popolof

    Je connaissais NPtcp, mais le traçage avec GNUplot est bien sympatique.

    J’ai fait de même sur un cluster avec réseau Gigabit sur un switch HP pro. Je pensais pas que l’impact de la taille du paquet serait si importante, j’ai mis le graphe ici: http://img4.glowfoto.com/images/2010/06/03-0252468380L.png

    Bel article!

  • Philippe

    Hum…
    Tout ce que ça m’inspire comme résultat c’est qu’en dessous de 46 octets tu respectes la RFC 894 et ta différence de débit c’est un rapport du nombre d’octets utiles par rapport au minimum requis et qu’au dessus tu commutes exactement le même nombre de paquets. Donc tu testes plus vraisemblablement les limites de ta carte réseau que celle de ton réseau proprement dit. Un outil peut-être plus utile sur des liaisons WAN … à voir.

    Bisous