Auteur Sujet: Test de débit et de neutralité de l'Internet  (Lu 140340 fois)

0 Membres et 1 Invité sur ce sujet

vivien

  • Administrateur
  • *
  • Messages: 47 254
    • Twitter LaFibre.info
Test de débit et de neutralité de l'Internet
« Réponse #168 le: 05 mars 2016 à 14:03:52 »
Le test fonctionne très bien, mais j'ai noté des pistes d'améliorations secondaire :

1/ Afficher les 3 premiers caractères de l'extension de fichier testé (il y a des espaces qu'il est possible de supprimer pour ne pas prendre plus de place)

2/ Arrondir les données de temps à la ms la plus proche, pour éviter ça :
IPv4 http   554    :     0.91 Mb/s (DNS:1510ms SYN:17.0000000000002ms PUT:16ms Up:7941ms:timeout:900900)
IPv4 http   8080   :     0.89 Mb/s (DNS:1510ms SYN:13.0000000000002ms PUT:16.9999999999998ms Up:7957ms:timeout:884520)

3/ Donner des explications pour les "early timeout" :
IPv4 http   554    : !(early timeout)!    0.00 Mb/s (DNS:0ms SYN:0ms GET:0ms Down:1511ms:timeout:0)
IPv4 https  993    : !(early timeout)!    0.00 Mb/s (DNS:12ms SYN:18ms GET:-30ms Down:1244ms:timeout:0)

4/ Mettre les données après timeout: avec une unité en Mo et afficher cette unité

5/ Mettre une majuscule à "started at"

6/ Le test ne fonctionne qu'avec un fichier distant, il y a un refus avec le même fichier en local

7/ Utiliser le fichier par défaut si rien n'est proposé en option au script

8/ Prévoir une aide intégré au script sur les options possibles

De mon coté, su le fichier https://iperf.fr/neutrality-test/neutrality-test-default.php j'ai rajouté des 'PRINT' pour séparer IPv4/IPv6 et download/upload.
J'ai aussi rajouté un test FTP down et upload.

kgersen

  • Modérateur
  • Abonné Bbox fibre
  • *
  • Messages: 9 092
  • Paris (75)
Test de débit et de neutralité de l'Internet
« Réponse #169 le: 05 mars 2016 à 14:23:48 »
6/ Le test ne fonctionne qu'avec un fichier distant, il y a un refus avec le même fichier en local

7/ Utiliser le fichier par défaut si rien n'est proposé en option au script

le paramètre attendu est un url.
si on ne met pas de paramètre , ca lit stdin donc pour lire un fichier local:

perl neutrality-test.pl [options] < fichierlocalou
cat fichierlocal | perl neutrality-test.pl [options]

kgersen

  • Modérateur
  • Abonné Bbox fibre
  • *
  • Messages: 9 092
  • Paris (75)
Test de débit et de neutralité de l'Internet
« Réponse #170 le: 05 mars 2016 à 14:27:13 »
8/ Prévoir une aide intégré au script sur les options possibles

C'est prévu (option -help) mais ca marche mal. Je ne sais pas bien faire fonctionner pod2usage , c'est un bug (de mon coté je pense) que je trouve pas et je ne vais pas passer de heures la dessus.

kgersen

  • Modérateur
  • Abonné Bbox fibre
  • *
  • Messages: 9 092
  • Paris (75)
Test de débit et de neutralité de l'Internet
« Réponse #171 le: 05 mars 2016 à 14:35:31 »
Le test fonctionne très bien, mais j'ai noté des pistes d'améliorations secondaire :

1/ Afficher les 3 premiers caractères de l'extension de fichier testé (il y a des espaces qu'il est possible de supprimer pour ne pas prendre plus de place)


délicat à  faire. le test ne sait pas a priori le type de fichier que c'est. si l'url termine par ".zip" par exemple on peut extraire les 4 derniers caractères et les afficher mais c'est "de la bidouille" car on peut tres bien faire un test qui renvoi une image sans pour autant que l'url se termine par une extension d'image (.jpg ou autre).
j'ai pas de solution encore a cela. j'y réfléchie encore. afficher la 'chaîne de caractère' apres le dernier "." dans l'url (si y'a un ".") sera la solution par défaut si je trouve rien.

Tout depend si on veut tester le FAI sur "la syntaxe des url"  ou sur le contenu (content-type) quelque soit la syntaxe. Ce sont 2 tests différents a mon avis.

kgersen

  • Modérateur
  • Abonné Bbox fibre
  • *
  • Messages: 9 092
  • Paris (75)
Test de débit et de neutralité de l'Internet
« Réponse #172 le: 05 mars 2016 à 15:00:04 »
2/ Arrondir les données de temps à la ms la plus proche, pour éviter ça :
IPv4 http   554    :     0.91 Mb/s (DNS:1510ms SYN:17.0000000000002ms PUT:16ms Up:7941ms:timeout:900900)
IPv4 http   8080   :     0.89 Mb/s (DNS:1510ms SYN:13.0000000000002ms PUT:16.9999999999998ms Up:7957ms:timeout:884520)
curieux je n'ai jamais constaté ces souci d'arrondis. je vais forcer l'arrondi.

3/ Donner des explications pour les "early timeout" :
IPv4 http   554    : !(early timeout)!    0.00 Mb/s (DNS:0ms SYN:0ms GET:0ms Down:1511ms:timeout:0)
IPv4 https  993    : !(early timeout)!    0.00 Mb/s (DNS:12ms SYN:18ms GET:-30ms Down:1244ms:timeout:0)
Ca veut dire que Curl a atteint le timeout avant de commencer un transfert donc avant de recevoir des données. j'ai changé le message.

4/ Mettre les données après timeout: avec une unité en Mo et afficher cette unité
ok
5/ Mettre une majuscule à "started at"
ok

kgersen

  • Modérateur
  • Abonné Bbox fibre
  • *
  • Messages: 9 092
  • Paris (75)
Test de débit et de neutralité de l'Internet
« Réponse #173 le: 05 mars 2016 à 15:06:26 »
v 1.1.3 dispo:

    - tempo fix for -help
    - rounded some numbers
    - convert final size to human readable format
    - some typos

l'aide en ligne doit marcher (-h ou -help).

vivien

  • Administrateur
  • *
  • Messages: 47 254
    • Twitter LaFibre.info
Test de débit et de neutralité de l'Internet
« Réponse #174 le: 05 mars 2016 à 15:49:28 »
Concernant l’affichage de l'extension des fichiers, ce n'est pas une information pertinente, si tous les fichiers ont la même extension et que l'on teste par exemple différents hébergeurs.

=> Il me semble plus pertinent de prévoir un champ libre qui sera affiché en début de ligne. Il serait bon de pouvoir afficher des espaces dans ce champ sans qu'il considère que l'on passe à l'argument suivant. Selon le fichier on mettra l'extension du fichier ou au contraire les nom des hébergeurs.

Tout depend si on veut tester le FAI sur "la syntaxe des url"  ou sur le contenu (content-type) quelque soit la syntaxe. Ce sont 2 tests différents a mon avis.
Les bridage observés aujourd'hui ne sont pas sur le contenu du fichier (renommer le même fichier et le débit change)
Le content-type change en fonction de l'extension (comportement par défaut des serveurs web) il me semble.

kgersen

  • Modérateur
  • Abonné Bbox fibre
  • *
  • Messages: 9 092
  • Paris (75)
Test de débit et de neutralité de l'Internet
« Réponse #175 le: 05 mars 2016 à 16:04:04 »
Concernant l’affichage de l'extension des fichiers, ce n'est pas une information pertinente, si tous les fichiers ont la même extension et que l'on teste par exemple différents hébergeurs.

=> Il me semble plus pertinent de prévoir un champ libre qui sera affiché en début de ligne. Il serait bon de pouvoir afficher des espaces dans ce champ sans qu'il considère que l'on passe à l'argument suivant. Selon le fichier on mettra l'extension du fichier ou au contraire les nom des hébergeurs.
Les bridage observés aujourd'hui ne sont pas sur le contenu du fichier (renommer le même fichier et le débit change)
Le content-type change en fonction de l'extension (comportement par défaut des serveurs web) il me semble.

oui y'a donc 2 choix:

SOLUTION 1

un champ libre (mettre des " si on veut des espaces dedans) genre:

PRINT Network neutrality test - Server localization: France - Hosting by Bouygues Telecom
TIME 8
PRINT IPv4 download tests
GET binaire 4 http://3.testdebit.info/fichiers/5000Mo/5000Mo.zip
GET image 4 http://3.testdebit.info/fichiers/5000Mo/5000Mo.jpg
GET video 4 http://3.testdebit.info/fichiers/5000Mo/5000Mo.mp4
GET "bla bla" 4 http://3.testdebit.info/fichiers/grostrucsansextension
...
et ce champ libre ira dans ligne du résultat tel quel:

Network neutrality test - Server localization: France - Hosting by Bouygues Telecom
IPv4 download tests
IPv4 http   80     :   919.72 Mb/s (DNS:29ms SYN:3ms GET:4ms Down:7995ms:timeout:919.15 MB) binaire
IPv4 http   80     :   933.26 Mb/s (DNS:12ms SYN:4ms GET:3ms Down:7996ms:timeout:932.80 MB) image
IPv4 http   80     :   934.21 Mb/s (DNS:4ms SYN:4ms GET:3ms Down:7996ms:timeout:933.74 MB) video
IPv4 http   80     :   920.49 Mb/s (DNS:29ms SYN:3ms GET:4ms Down:7995ms:timeout:919.92 MB) bla bla

(a la fin ca évite de casser le formatage du début)

SOLUTION 2:
soit on parse la fin de l'url si ca se termine par un ".quelquechose" et seulement si alors on affiche "quelquechose" dans la ligne de resultat.

Network neutrality test - Server localization: France - Hosting by Bouygues Telecom
IPv4 download tests
IPv4 http   80     :   919.72 Mb/s (DNS:29ms SYN:3ms GET:4ms Down:7995ms:timeout:919.15 MB) zip
IPv4 http   80     :   933.26 Mb/s (DNS:12ms SYN:4ms GET:3ms Down:7996ms:timeout:932.80 MB) jpg
IPv4 http   80     :   934.21 Mb/s (DNS:4ms SYN:4ms GET:3ms Down:7996ms:timeout:933.74 MB) mp4
IPv4 http   80     :   920.49 Mb/s (DNS:29ms SYN:3ms GET:4ms Down:7995ms:timeout:919.92 MB)


tu préfères quelle solution ?

vivien

  • Administrateur
  • *
  • Messages: 47 254
    • Twitter LaFibre.info
Test de débit et de neutralité de l'Internet
« Réponse #176 le: 05 mars 2016 à 16:18:10 »
La solution N°1, qui permet d'afficher d'autres choses que l'extension (en fonction du test réalisé)

Je propose de mettre ce champ texte en début de ligne (coté conception du fichier de test, il faudra faire un champ qui a toujours le même nombre de caractère pour les données soient alignées)

Voici un test avec une connexion SFR (réseau Numericable) à 30 Mb/s down 1 Mb/s up qui est parfaitement neutre :

$ perl neutrality-test.pl https://iperf.fr/neutrality-test/neutrality-test-default.php
Running on linux - 3.13.0-79-generic - x86_64-linux-gnu-thread-multi
Started at: Sat Mar  5 16:04:33 2016
Network neutrality test - Server localization: France - Hosting by Bouygues Telecom
IPv4 download tests
IPv4 http   80     :    28.68 Mb/s (DNS:61ms SYN:9ms GET:16ms Down:7983ms:timeout:28.62 MB)
IPv4 http   80     :    28.00 Mb/s (DNS:61ms SYN:10ms GET:12ms Down:7987ms:timeout:27.96 MB)
IPv4 http   80     :    28.67 Mb/s (DNS:61ms SYN:9ms GET:13ms Down:7985ms:timeout:28.62 MB)
IPv4 http   80     :    28.74 Mb/s (DNS:28ms SYN:9ms GET:11ms Down:7988ms:timeout:28.70 MB)
IPv4 https  443    :    28.59 Mb/s (DNS:60ms SYN:11ms GET:178ms Down:7821ms:timeout:27.95 MB)
IPv4 https  443    :    28.63 Mb/s (DNS:61ms SYN:9ms GET:170ms Down:7829ms:timeout:28.02 MB)
IPv4 http   554    :    28.65 Mb/s (DNS:60ms SYN:10ms GET:17ms Down:7981ms:timeout:28.59 MB)
IPv4 http   554    :    28.64 Mb/s (DNS:61ms SYN:9ms GET:13ms Down:7986ms:timeout:28.59 MB)
IPv4 http   554    :    28.64 Mb/s (DNS:28ms SYN:12ms GET:11ms Down:7988ms:timeout:28.59 MB)
IPv4 https  993    :    28.76 Mb/s (DNS:28ms SYN:11ms GET:166ms Down:7833ms:timeout:28.16 MB)
IPv4 https  993    :    28.63 Mb/s (DNS:60ms SYN:10ms GET:161ms Down:7838ms:timeout:28.05 MB)
IPv4 https  1194   :    28.63 Mb/s (DNS:61ms SYN:10ms GET:158ms Down:7841ms:timeout:28.07 MB)
IPv4 https  1194   :    28.63 Mb/s (DNS:60ms SYN:10ms GET:169ms Down:7829ms:timeout:28.02 MB)
IPv4 http   6881   :    27.94 Mb/s (DNS:60ms SYN:11ms GET:19ms Down:7980ms:timeout:27.87 MB)
IPv4 http   6881   :    28.67 Mb/s (DNS:61ms SYN:9ms GET:16ms Down:7983ms:timeout:28.61 MB)
IPv4 http   8080   :    28.62 Mb/s (DNS:61ms SYN:10ms GET:15ms Down:7983ms:timeout:28.56 MB)
IPv4 http   8080   :    28.63 Mb/s (DNS:28ms SYN:51ms GET:13ms Down:7986ms:timeout:28.58 MB)
IPv4 http   8080   :    28.76 Mb/s (DNS:28ms SYN:15ms GET:10ms Down:7989ms:timeout:28.73 MB)
IPv4 ftp    21     :    28.74 Mb/s (DNS:28ms SYN:14ms GET:129ms Down:7870ms:timeout:28.27 MB)
IPv4 ftp    21     :    27.92 Mb/s (DNS:60ms SYN:10ms GET:983ms Down:7016ms:timeout:24.49 MB)
IPv4 upload tests
IPv4 http   80     :     1.20 Mb/s (DNS:29ms SYN:10ms PUT:15ms Up:7858ms:timeout:1.18 MB)
IPv4 https  443    :     1.11 Mb/s (DNS:509ms SYN:478ms PUT:695ms Up:7288ms:timeout:1.02 MB)
IPv4 http   554    :     1.00 Mb/s (DNS:1510ms SYN:449ms PUT:11ms Up:7762ms:timeout:966.42 KB)
IPv4 https  1194   :     1.04 Mb/s (DNS:509ms SYN:508ms PUT:931ms Up:7037ms:timeout:917.28 KB)
IPv4 http   6881   :     0.99 Mb/s (DNS:509ms SYN:359ms PUT:250ms Up:7696ms:timeout:950.04 KB)
IPv4 http   8080   :     0.93 Mb/s (DNS:509ms SYN:222ms PUT:219ms Up:7757ms:timeout:900.90 KB)
IPv4 ftp    21     :     1.08 Mb/s (DNS:253ms SYN:245ms PUT:1112ms Up:6825ms:timeout:917.50 KB)
Ended at: Sat Mar  5 16:08:09 2016


Il me semble possible de gagner a plusieurs endroits des espaces :
- Le protocole le plus long fait 5 caractères (https), je propose de rajouter un espace puis passer au numéro de port.
- Le numéro de port fait au maximum 5 caractères et je propose de passer au ":" sans espace. Dans la pratique, il y aura toujours au moins un espace sauf si on utilise des ports > 9999
- Après le ":" je propose aussi de passer directement sans espace sur le débit tel qu'il est calculé aujourd'hui, il est donc possible de gagner deux espaces et de toujours gérer les débits jusqu'à 9,9 Gb/s.
- ":timeout:" pourrait être remplacé par " Size:" (dans tous les cas remplacer au moins le : devant timeout par un espace)

Sinon, félicitations, ton script me semple vraiment top.
Il faudrait vérifier ce qu'il se passe avec le FTP sur une Freebox FTTH en ZMD où le FTP semble bloqué.

PS : cela fonctionne bien quand on a compris avec un fichier local :
$ perl neutrality-test.pl < ./neutrality.txt
Running on linux - 3.13.0-79-generic - x86_64-linux-gnu-thread-multi
Started at: Sat Mar  5 16:22:25 2016
Network neutrality test - Server localization: France - Hosting by Bouygues Telecom
IPv4 download tests
IPv4 http   80     :    28.82 Mb/s (DNS:12ms SYN:9ms GET:14ms Down:7985ms:timeout:28.77 MB)
IPv4 http   80     :    28.65 Mb/s (DNS:60ms SYN:11ms GET:14ms Down:7985ms:timeout:28.60 MB)

kgersen

  • Modérateur
  • Abonné Bbox fibre
  • *
  • Messages: 9 092
  • Paris (75)
Test de débit et de neutralité de l'Internet
« Réponse #177 le: 05 mars 2016 à 19:12:00 »
La solution N°1, qui permet d'afficher d'autres choses que l'extension (en fonction du test réalisé)

Je propose de mettre ce champ texte en début de ligne (coté conception du fichier de test, il faudra faire un champ qui a toujours le même nombre de caractère pour les données soient alignées)

ok

Citer
Il me semble possible de gagner a plusieurs endroits des espaces :
- Le protocole le plus long fait 5 caractères (https), je propose de rajouter un espace puis passer au numéro de port.
- Le numéro de port fait au maximum 5 caractères et je propose de passer au ":" sans espace. Dans la pratique, il y aura toujours au moins un espace sauf si on utilise des ports > 9999
- Après le ":" je propose aussi de passer directement sans espace sur le débit tel qu'il est calculé aujourd'hui, il est donc possible de gagner deux espaces et de toujours gérer les débits jusqu'à 9,9 Gb/s.
- ":timeout:" pourrait être remplacé par " Size:" (dans tous les cas remplacer au moins le : devant timeout par un espace)
":timeout:" ca n'est pas vraiment "size", ca indique si y'a eu un timeout ou pas.(ca marque "full" sinon)
on peut coder cet info sur un caractère (T ou F) par exemple.

voila le reformattage :

Running on linux - 3.13.0-79-generic - x86_64-linux-gnu-thread-multi
Started at: Sat Mar  5 18:26:21 2016
Network neutrality test - Server localization: France - Hosting by Bouygues Telecom
IPv4 download tests
label IPv4 http  80   : 816.01 Mb/s (DNS:61ms SYN:4ms GET:3ms Down:996ms 101.59 MB T)
label IPv4 http  80   : 895.71 Mb/s (DNS:29ms SYN:3ms GET:3ms Down:996ms 111.52 MB T)
label IPv4 http  80   : 895.68 Mb/s (DNS:29ms SYN:3ms GET:3ms Down:996ms 111.51 MB T)
label IPv4 http  80   : 896.72 Mb/s (DNS:28ms SYN:3ms GET:4ms Down:995ms 111.53 MB T)
label IPv4 https 443  : 724.09 Mb/s (DNS:28ms SYN:4ms GET:36ms Down:963ms 87.16 MB T)
label IPv4 https 443  : 737.93 Mb/s (DNS:12ms SYN:4ms GET:37ms Down:962ms 88.74 MB T)
label IPv4 http  554  :  44.93 Mb/s (DNS:12ms SYN:3ms GET:4ms Down:996ms 5.59 MB T)
label IPv4 http  554  :  45.27 Mb/s (DNS:4ms SYN:4ms GET:3ms Down:997ms 5.64 MB T)
label IPv4 http  554  :  44.74 Mb/s (DNS:12ms SYN:4ms GET:3ms Down:996ms 5.57 MB T)
label IPv4 https 993  : 601.89 Mb/s (DNS:12ms SYN:4ms GET:38ms Down:961ms 72.30 MB T)

 
je formate le port sur 5 , pour pas tronquer sinon le port 12345 sera affiché 1234 , source d’ambiguïté.

vivien

  • Administrateur
  • *
  • Messages: 47 254
    • Twitter LaFibre.info
Test de débit et de neutralité de l'Internet
« Réponse #178 le: 05 mars 2016 à 19:32:51 »
Cela me semble parfait.

Je met le label où dans le fichier de config ?

kgersen

  • Modérateur
  • Abonné Bbox fibre
  • *
  • Messages: 9 092
  • Paris (75)
Test de débit et de neutralité de l'Internet
« Réponse #179 le: 05 mars 2016 à 19:57:34 »
version 1.1.4 :

    - new optional label for GET & PUT
    - fixes for pretty printing

le label est optionnel et se met entre le GET|PUT et 4|6:

GET "zip" 4 http://3.testdebit.info/fichiers/5000Mo/5000Mo.zip
GET "jpg" 4 http://3.testdebit.info/fichiers/5000Mo/5000Mo.jpg

les " sont obligatoires (plus simple a parser) mais pas affichés.

si y'a pas de label ca marche comme avant.