Measure netneutrality

Un outil modulaire d'extraction et de rapport automatisé de mesures de la neutralité du net

Martin Gubri

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


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

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 :

    1. connexion au serveur disponible le plus proche
    2. estimation de la vitesse upload et download
    3. 2,5 minutes d'envoi et de réception de paquets
      de taille constante
      Séries temporelles de la vitesse des « trains »
    4. 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


    1. lister les archives de logs disponibles
    2. télécharger celles non-traitées
    3. les traiter une par une pour générer un csv propre
    4. importation des nouvelles données dans MySQL
    5. qualification des données
    6. localisation du pays (de la ville et de la région)
    7. association avec le FAI
    8. calcul de l'heure locale du test
    9. 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

    Association du FAI


    Nécessite connaissances sur le fonctionnement
    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 ?

    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


    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

    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 mesure
      réseau mobile, traffic shaping selon protocole, bandwidth throttling, etc.
    • analyse statistique du lien entre heure locale et traffic shaping




    Merci de votre écoute !

    deck

    By framartin

    deck

    • 859