8 décembre 2010

Iperf


Comment fonctionne Iperf ? [modifier]

Iperf doit être lancé sur deux machines se trouvant de part et d'autre du réseau à tester. La première machine lance Iperf en "mode serveur" (avec l'option -s), la seconde en "mode client" (option -c). Par défaut le test réseau se fait en utilisant le protocole TCP (mais il est également possible d'utiliser le mode UDP avec l'option -u).

Comment l'utiliser [modifier]

Nous allons prendre l'exemple d'un test réseau entre une machine A et une machine B.
Sur la machine A, il faut lancer la commande suivante:
# iperf -s
Ensuite sur la machine B, on lance la commande:
# iperf -c <adresse IP de la machine A>
Le résultat suivant va alors s'afficher:
————————————————————
Client connecting to 192.168.29.1, TCP port 5001
TCP window size: 65.0 KByte (default)
————————————————————
[ 3] local 192.168.29.157 port 50675 connected with 192.168.29.1 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 110 MBytes 92.6 Mbits/sec
On obtient donc le débit TCP réel entre la machine A et la machine B. En utilisant l'option -i on peut fixer le délai entre les rapports de mesure de bande passante.

Il est possible d'évaluer le débit de sa connexion à Internet via un serveur Iperf public, situé sur le réseau Internet :
Iperf.png

Sous linux, voici 3 suggestions de ligne de commande pour le serveur :
  • TCP 5001 : $ iperf -s -m -w 200K -i 3
  • TCP 4662 : $ iperf -s -m -w 200K -i 3 -p 4662
  • UDP 5001 : $ iperf -s -i 5 -u

Sous linux, voici 5 suggestions de ligne de commande pour le client (192.168.1.2 est l'@IP du serveur) :
  • upload uniquement : $ iperf -c 192.168.1.2 -m -w 200K -i 3 -t 30
  • upload + download : $ iperf -c 192.168.1.2 -m -w 200K -i 3 -t 30 -r
  • upload + download simultané : $ iperf -c 192.168.1.2 -m -w 200K -i 3 -t 30 -d -P 2
  • upload sur 15 connexions TCP : $ iperf -c 192.168.1.2 -m -w 200K -i 10 -t 240 -P 15
  • upload + download sur port TCP 4662 : $ iperf -c 192.168.1.2 -m -w 200K -i 3 -t 30 -p 4662 -r
  • upload + download en UDP à 80 Mb/s : $ iperf -c 192.168.1.2 -i 3 -t 30 -r -u -b 80M
Le paramètre -w est très important, il spécifie la taille mémoire du "socket buffer" (respectivement d'émission ou de réception) la valeur par défaut étant trop petite sur certains systèmes. La taille du socket buffer ne pourra de toute façon pas dépasser le maximum autorisé par le système d'exploitation.

Iperf4662.png

IPERF en multicast [modifier]

Iperf peut fonctionner en mode multicast (-B). Il faut le lancer de la manière suivante:
Sur le serveur:
  • $ iperf -s -u -B 225.0.1.2
Sur le client:
  • $ iperf -c 225.0.1.2 -u -b 3M
Cela génère un flux multicast UDP (sur l’adresse 225.0.1.2 de 3 Mb/sec.)