Measure netneutrality
Un outil modulaire d'extraction et de rapport automatisé de mesures de la neutralité du net
Framartin
3 février 2014
Sommaire
- Présentation de la Quadrature du Net
- Définition rapide et enjeux de la neutralité du net
-
MeasureNetNeutrality un projet ambitieux
d'extraction et de rapport de la neutralité du net - Démonstration du fonctionnement du logiciel
- Présentation des résultats obtenus
- Futures évolutions du projet
La quadrature du net
présentaTION
Association de défense des droits et libertés
des citoyens sur Internet
des citoyens sur Internet
Domaines d'intervention :
- liberté d'expression
- droit d'auteur
- régulation du secteur des télécommunications
- respect de la vie privée
La neutralité du net
Définition
Quatre principes fondateurs
Transmission des données :
-
sans en examiner le contenu
-
sans prise en compte de la source
ou de la destination
-
sans privilégier un protocole de communication
-
sans en altérer le contenu
Benjamin Bayard
La neutralité exclut donc toute discrimination par le réseau en fonction de la source, de la destination ou du contenu des données transmises.
Exemple d'atteintes à la neutralité du net
-
blocage/censure
-
traffic shaping
-
prioritarisation de trafic
-
modification à la volée
-
etc.
Menaces
-
économiques
distordre la concurrence, innovation
-
politiques
liberté d'expression (anonymat)
- techniques
qualité de service
Measure net neutrality
Point de départ
Projet personnel
Non transparence des FAI
+
Complexité d'identification
=
Besoin de mesure des atteintes à la neutralité du net
+
Complexité d'identification
=
Besoin de mesure des atteintes à la neutralité du net
Objectifs
Inclusion dans le projet respectmynet.eu
Nouvelle approche :
-
quantitative (vs. qualitative)
- utilisateur final
Multiplier les sources de données pour être le plus exhaustif
Utilisation possible pour les rapports de LQDN
Sources des données
Plateforme du MeasurementLab
- diversité des mesures
- données accessibles ( CC0 – domaine public)
- popularité (296 millions de tests pour 856 To)
- infrastructure mondiale
Description rapide
- extraire, stocker, rendre accessible les données
pour analyses statistiques et visualisations -
exécution automatique (1 fois/semaine grâce à cron)
- modulaire
- facile à déployer
- fiable
- licence GPL : code ouvert et public (github)
Difficultés
- données brutes
développement de l'extraction des données fastidieux - post-traitement des données
localisation IP, association FAI, etc. - automatisation complète du processus
génération de logs, autonomie, sauvegarde - multiplicité des données
indépendance de chaque composante - quantité de données
4, 37 To à traiter (1 428 592 tests) -
qualité des données
Shaperprobe
-
multi-plateforme
- « active probing method »
- données mondiales...
- ...mais très peu utilisées
- chez l'utilisateur final
Procédure de test :
- connexion au serveur disponible le plus proche
- estimation de la vitesse upload et download
-
2,5 minutes d'envoi et de réception de paquets
de taille constante
Séries temporelles de la vitesse des « trains » - détection d'une baisse durable (traffic shaping)
détection du traffic shaping
variables collectées
- adresse IP
- date et heure du test
- détection de traffic shapping en up et en down
- « burstsize » (nombre d’octets avant la baisse de vitesse)
- vitesse après bridage (si traffic shaping)
- vitesse moyenne (si pas de traffic shaping)
- capacité de la connexion (up et down)
- autres (sleeptime, serveur, etc.)
Fonctionnement
Technologies
1157 lignes de code en Bash et SQL
Script en Bash interfaçant de nombreux outils :
- Outils GNU de Bash :
wget, grep, sed, man, sort, comm, find, etc. - MySQL
- R
- expressions régulières
- ssh
- git (github)
- GNU netcat
traitement des données
- lister les archives de logs disponibles
- télécharger celles non-traitées
- les traiter une par une pour générer un csv propre
- importation des nouvelles données dans MySQL
- qualification des données
- localisation du pays (de la ville et de la région)
- association avec le FAI
- calcul de l'heure locale du test
- calcul et export de statistiques basiques
Base de données
MySQL
Extensible à de nouvelles mesures :
Base de données commune indépendante
(initialisation, mise à jour, tables de post-traitement séparées)
Qualification
Justifiée par une analyse statistique descriptive
et par des considérations techniques
4 catégories :
- non-qualifié (par défaut)
- bon (plus de 3 tests par IP)
- douteux
- mauvais/faux
Localisation
Non renseignée par Shaperprobe
Associer les plages d'adresses IP aux pays/villes/régions
grâce aux bases de données Geolite
Localisations des IP stockées et utilisables
pour toutes les mesures
pour toutes les mesures
Association du FAI
Nécessite connaissances sur le fonctionnement
des réseaux (Coursera)
des réseaux (Coursera)
Associer à chaque IP le nom de son FAI
2 étapes :
- récupérer nom et n° de l'Autonomous System
(service WhoIs de Team Cymru avec GNU netcat) - lier nom AS au nom du FAI
(base de données à jour non-existante donc créée pendant le stage)
Calcul de l'heure locale
Heure UTC reportée par Shaperprobe
Conversion de l'heure UTC dans le fuseau horaire
du pays du test
Résultats
Répartition des résultats des tests
calcul des résultats
Moyennes pondérées (requêtes SQL complexes)
Résultats par pays
Pays | upShape | dShape | shape | upSpeed | dSpeed | nbIP | nbTests |
---|---|---|---|---|---|---|---|
France | 0.078 | 0.072 | 0.142 | 0.351 | 0.389 | 27645 | 36992 |
USA | 0.314 | 0.387 | 0.492 | 0.459 | 0.369 | 181967 | 318313 |
- upShape (dShape) : taux de traffic shaping en upload (download)
- shape : taux de traffic shaping en upload ou en download
- upSpeed (dSpeed) : taux de réduction de la vitesse en upload (download)
- nbIP (nbTest) : nombre d’adresses IP (tests) pour calculer ces moyennes
carte mondiale du traffic shaping
Résultats par FAI
FAI | upShape | dShape | shape | upSpeed | dSpeed | nbIP | nbTests |
---|---|---|---|---|---|---|---|
Bouygues | 0.079 | 0.063 | 0.063 | 0.350 | 0.393 | 1458 | 2190 |
Free | 0.075 | 0.074 | 0.143 | 0.411 | 0.369 | 6781 | 10051 |
Numericable | 0.030 | 0.100 | 0.125 | 0.420 | 0.432 | 3081 | 4569 |
Orange | 0.097 | 0.067 | 0.155 | 0.304 | 0.378 | 9221 | 10988 |
Comcast | 0.578 | 0.619 | 0.762 | 0.467 | 0.340 | 73360 | 152967 |
Erreurs dans les données
- utilisateur final = environnement non contrôlé
- plusieurs utilisateurs : fluctuations de la vitesse du réseau→ faux positifs
Présence d'erreurs confirmée par des tests personnels
Nécessité d'un seuil pour déterminer si un FAI fait du traffic shaping
Première approche du taux d'erreur
242 adresses IP ont fait plus de 50 tests
Proportion d'erreurs de 12,17 %
Intervalle de confiance à 95% : 0,1038 ; 0,1395
Capacité et traffic shaping
Lien entre présence de traffic shaping
et capacité de la connexion ?
et capacité de la connexion ?
Le traffic shaping aide t'il à bien gérer le réseau ?
Moyenne en Kbps | Traffic shaping détecté | Traffic shaping non-détécté |
---|---|---|
Vitesse upload | 4702.833 | 4167.454 |
Vitesse download | 23124.09 | 17867.03 |
— | — | — |
Médiane en Kbps | Traffic shaping détecté | Traffic shaping non-détécté |
Vitesse upload | 3917.38 | 945.08 |
Vitesse download | 22572 | 9344 |
Comparaison de moyennes : rejet des tests de Student et de Wilcoxon (p-valeurs <1%)
La différence de capacité de connexion entre
présence/absence de traffic shaping est significative
présence/absence de traffic shaping est significative
Cependant, ne pas en conclure que le traffic shaping conduit à de meilleurs débits : il y a simultanéité
- le TS participe à fluidifier le réseau
- le TS est mis en place sur de grosses connexions
Capacité de connexion
Les vitesses de connexion en upload et en download
ont un coefficient de corrélation de 0,5656
ont un coefficient de corrélation de 0,5656
Modèle logit par fai
Sur les plus gros FAI (plus de 1000 tests)
Call: glm(formula = binomalresponse ~ upcapacityIP + downcapacityIP + client_versionIP + sleeptimeIP + IP, family = binomial) Coefficients: Estimate Std. Error z value Pr(>|z|) (Intercept) -2.259e+00 4.139e-02 -54.586 < 2e-16 *** upcapacityIP -1.636e-05 1.044e-06 -15.674 < 2e-16 *** downcapacityIP -6.706e-06 2.866e-07 -23.404 < 2e-16 *** client_versionIP 2.150e-02 5.433e-03 3.956 7.61e-05 *** sleeptimeIP 4.676e-01 1.245e-02 37.553 < 2e-16 ***
[...]
Bouygues Telecom -3.339e-02 8.477e-02 -0.394 0.693680
Comcast Cable 2.744e+00 3.591e-02 76.407 < 2e-16 ***
Free 1.799e-03 5.162e-02 0.035 0.972200
Orange 9.846e-02 5.069e-02 1.942 0.052114 .
Numericable -3.489e-03 7.226e-02 -0.048 0.961482
Futures évolutions
Prolongements du stage
Projet encore en développement
- visualisation dans respectmynet (T. Bouchet)
- optimisation de la localisation des addresses IP (en cours)
-
génération automatique de rapport statistique et de visualisation (en cours)avec paquet « KnitR » de R
-
ajout d'autres logiciels de mesureréseau mobile, traffic shaping selon protocole, bandwidth throttling, etc.
- analyse statistique du lien entre heure locale et traffic shaping
Merci de votre écoute !
Presentation of Measure Net Neutrality
By framartin
Presentation of Measure Net Neutrality
- 1,058