Plateforme de test M-Lab
M-Lab dispose du plus grand nombre de données sur la performance d’Internet accessibles au public. Consortium de partenaires issus du domaine de la recherche, de l’industrie et de porte-parole de l’intérêt public, M-Lab offre un écosystème destiné à la mesure ouverte et vérifiable de la performance du réseau mondial. Toutes les données recueillies sur la plateforme de mesure mondiale de M-Lab sont accessibles au public tout comme le sont les outils de mesure en code source ouvert qui y sont hébergés.
Le test de performance Internet (TPI) .CA est fondé sur des serveurs d’essai, sans liens avec des fournisseurs, situés partout au Canada à différents points d’échange Internet (PEI ou Internet exchange points, IXP, en anglais).Actuellement situés à Toronto, à Montréal et à Calgary, ces serveurs exécutent la plateforme M-Lab, ce qui nous permet de réaliser une vaste gamme de tests pour prendre des mesures allant de la vitesse du réseau au temps d’attente en passant par le blocage et le ralentissement artificiel du trafic.Le TPI est fondé sur le test de diagnostic réseau nommé Network Diagnostic Test (NDT) qui mesure la vitesse et vous permet d’obtenir des renseignements diagnostiques relatifs à la configuration de votre système et à l’infrastructure réseau.
Utilisation des données
Les données recueillies anonymement à l’issue des tests effectués par tous les utilisateurs seront intégrées anonymement à un vaste ensemble de données provenant des quatre coins du pays. Les chercheurs pourront mieux comprendre les capacités de l’infrastructure d’Internet au Canada. Au fur et à mesure que l’infrastructure du rapport s’étoffera, nous pourrons croiser les données démographiques et sociales afin de mieux déterminer qui tire le meilleur parti de cette formidable technologie.Toutes les données issues des tests réalisés au moyen du NDT sur la plateforme M-Lab seront stockées dans la base de données de M-Lab et accessibles au moyen du service BigQuery de Google.
Lorsque les données issues de tests de performance Internet auront été recueillies en quantités suffisantes, CIRA proposera une façon simple de les consulter. Entre-temps, vous pouvez accéder directement à toutes les données recueillies par M-Lab (y compris celles du TPI) et les consulter :
- en format RAW à https://www.measurementlab.net/data/docs/gcs/;
- au moyen d’une interface SQL (consultez https://www.measurementlab.net/data/docs/bq/quickstart/);
- dans Public Data Explorer.
Les résultats du NDT (Network Diagnostic Test)
Dans le cadre du test de diagnostic réseau de M-Lab (NDT), votre ordinateur est connecté à l’un de nos serveurs dans les PEI canadiens. Le test permet d’évaluer la configuration et la performance du réseau.Il communique avec un serveur configuré pour réaliser des diagnostics, puis affiche les résultats à l’intention des utilisateurs du test.Pour obtenir plus de renseignements sur le test de diagnostic NDT, veuillez vous reporter aux liens ci-dessous :
- Pour mieux comprendre le protocole, veuillez consulter Description of the NDT Protocol (en anglais).
- Pour connaître la manière dont l’information relative à la configuration est recueillie ainsi que les renseignements que le NDT peut permettre d’obtenir, veuillez consulter Description of the NDT test methodology (en anglais).
- Si des erreurs se produisent, cliquez sur ce lien pour en connaître la source NDT Common Warnings and Errors (en anglais).
Résultats détaillés
Les valeurs particulières sont séparées par des virgules, sans aucune espace. Les résultats stockés sont les suivants :
Variable | Description |
ClientToServerSpeed | Vitesse de débit mesurée du client au serveur (valeur en Mb/s). |
PacketLoss | Pourcentage de paquets qui ont dû être renvoyés en raison d’une erreur de transmission. |
ServerToClientSpeed | Vitesse de débit mesurée du serveur au client (valeur en Mb/s). |
TCPInfo | Rapport TCPInfo fournit les résultats détaillés provenant du socket netlink TCP_INFO. Ce sont les mêmes valeurs qui sont retournées aux clients à la fin de la mesure de téléchargement (serveur vers client). |
TCPInfo.AdvMSS | Taille maximale des segments (Maximum Segment Size, MSS) annoncée. |
TCPInfo.AppLimited | Drapeau indiquant que les mesures de débit reflètent des congestionnements hors-réseau. À noter que même de très courts blocages de l’application invalident les mesures max_BW. |
TCPInfo.ATO | Temporisation d’accusés de réception. Quantifiée en secondes système. |
TCPInfo.Backoff | Temporisation exponentielle du compteur de délai d’attente. Incrément de l’OTR, remis à zéro lors de mesures du temps aller-retour (Round-Trip Time, RTT) réussies. |
TCPInfo.BusyTime | Laps de temps comprenant des données en suspens (sans accusé). Laps de temps où snd.una n’est pas égal à snd.next. |
TCPInfo.BytesAcked | Nombre d’octets de données pour lesquels des accusés cumulatifs ont été reçus. |
TCPInfo.BytesReceived | Nombre d’octets de données pour lesquels ils ont été reçus. |
TCPInfo.BytesRetrans | Nombre d’octets retransmis. Peut inclure des en-têtes et de nouvelles données transportées avec une retransmission (pour les débits faibles). |
TCPInfo.BytesSent | Nombre d’octets de données utiles envoyés (exclut les en-têtes, inclut les retransmissions). |
TCPInfo.CAState | Mécanisme de reprise après perte. Pour les algorithmes de contrôle de la congestion traditionnels qui se basent sur les pertes, CAState est aussi utilisé pour contrôler l’ajustement des fenêtres. |
TCPInfo.DataSegsIn | Segments saisis transportant des données (len>0). |
TCPInfo.DataSegsOut | Segments transmis transportant des données (len>0) |
TCPInfo.Delivered | Segments de données livrés au destinataire, comprenant les segments retransmis. Tels que rapportés par les accusés de réception, utilisés par ECN. |
TCPInfo.DeliveredCE | Segments de données marqués par le bit ECE livrés au destinataire, comprenant les segments retransmis. Tels que rapportés par les accusés de réception, utilisés par ECN. |
TCPInfo.DeliveryRate | Débit de livraison maximum observé. |
TCPInfo.DSackDups | Segments dupliqués rapportés par DSACK. Non rapportés par certains systèmes d’exploitation. |
TCPInfo.ElapsedTime | Durée de la mesure en millisecondes effectuée par le serveur M-Lab. |
TCPInfo.ElapsedTime | Temps écoulé depuis l’envoi du dernier accusé de réception (non implémenté). Présent dans TCP_INFO, mais pas ailleurs dans le noyau. |
TCPInfo.LastDataRecv | Temps écoulé depuis la réception du dernier segment de données. Quantifié en secondes. |
TCPInfo.LastDataRecv | Temps écoulé depuis l’envoi du dernier segment de données. Quantifié en secondes. |
TCPInfo.Lost | Segments du tableau d’affichage indiqués comme étant perdus par l’heuristique de détection de perte. Prenant en compte l’algorithme Pipe. |
TCPInfo.MaxPacingRate | Circuit de verrouillage paramétrable du débit d’émission. Paramétrer avec setsockopt( ..SO_MAX_PACING_RATE.. ). |
TCPInfo.MinRTT | Temps aller-retour minimum. Pour un algorithme plus ancien, avant l’algorithme de routeur fédérateur. |
TCPInfo.NotsentBytes | Nombre d’octets en attente dans le tampon d’émission qui n’ont pas été envoyés. |
TCPInfo.Options | Options SYN à codage binaire et autres négociations TIMESTAMPS 0x1; SACK 0x2; WSCALE 0x4; ECN 0x8 — A été négocié; ECN_SEEN — Au moins un ECT vu; SYN_DATA — SYN-ACK Données d’accusé de réception dans le SYN envoyées ou reçues. |
TCPInfo.PacingRate | Débit d’émission actuel, mis à jour nominalement par le contrôle de la congestion. |
TCPInfo.PMTU | Unité de transmission de l’IP maximale pour ce chemin. |
TCPInfo.Probes | Vérifications « zero-window » consécutives n’ayant pas reçu de réponse. |
TCPInfo.RcvMSS | Taille des segments maximum observée depuis l’hôte distant. Utilisé pour déclencher les accusés de réception retardés. |
TCPInfo.RcvRTT | Estimation du RTT du côté du destinataire. |
TCPInfo.RcvSpace | Espace réservé pour la file d’attente de réception. Généralement mis à jour par les réglages automatiques du côté du destinataire. |
TCPInfo.RcvSsThresh | Circuit de verrouillage de la fenêtre actuelle. Algorithme de réception pour éviter l’allocation de tampons de réception excessifs. |
TCPInfo.Reordering | Distance de réordonnancement maximale observée. |
TCPInfo.ReordSeen | Accusés de réception reçus qui étaient dans le désordre. Estimations pour le réordonnancement sur le chemin de retour. |
TCPInfo.Retrans | Segments du tableau d’affichage marqués comme étant retransmis. Prenant en compte l’algorithme Pipe. |
TCPInfo.Retransmits | Nombre de temporisations (retransmissions basées sur les ORT) à cette séquence. Remise à zéro s’il y a progression positive. |
TCPInfo.RTO | Temporisation de la retransmission. Quantifiée en secondes système. |
TCPInfo.RTT | Temps aller-retour (RTT) mis en forme. L’implémentation Linux diffère du standard. |
TCPInfo.RTTVar | Variance du RTT. L’implémentation Linux diffère du standard. |
TCPInfo.RWndLimited | Temps passé à attendre la fenêtre du destinataire. |
TCPInfo.RWndLimited | Segment du tableau d’affichage marqué comme SACKED par les blocs sack. Prenant en compte l’algorithme Pipe. |
TCPInfo.SegsIn | Le nombre de segments reçus. Inclut les données et les accusés de réception purs. |
TCPInfo.SegsOut | Nombre de segments transmis. Inclut les données et les accusés de réception purs. |
TCPInfo.SndBufLimited | Temps passé à attendre l’espace de mémoire tampon de l’envoyeur. Cela ne comprend que le laps de temps où les transmissions TCP ne reçoivent pas de données, mais l’application a été arrêtée, car le tampon est plein et ne peut pas être agrandi pour une quelconque raison. |
TCPInfo.SndCwnd | Fenêtre de congestion. Valeur contrôlée par l’algorithme de congestion sélectionné. |
TCPInfo.SndMSS | Taille maximale actuelle des segments. Remarque : Cette dernière peut être inférieure à la taille maximale négociée des segments pour des raisons diverses. |
TCPInfo.SndSsThresh | Seuil de démarrage lent. Valeur contrôlée par l’algorithme de congestion sélectionné. |
TCPInfo.State | État TCP nominalement égal à 1 (établi). Les autres valeurs reflètent des états transitoires ayant des rangées incomplètes. |
TCPInfo.TotalRetrans | Nombre total de segments comprenant des données retransmises. |
TCPInfo.Unacked | Nombre de segments entre snd.nxt et snd.una. Prenant en compte l’algorithme Pipe. |
TCPInfo.WScale | Amalgame erroné de SndWScale et RcvWScale. Voir github.com/m-lab/etl/issues/790 |