{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "import pandas as pd\n", "import numpy as np" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Estimation de la latence et de la capacité d’une connexion à partir de mesures asymétriques" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Un modèle simple et fréquemment utilisé pour décrire la performance d'une connexion de réseau consiste à supposer que le temps d'envoi T pour un message dépend principalement de sa taille S (nombre d'octets) et de deux grandeurs propres à la connexion : la latence L (en secondes) et la capacité C (en octets/seconde). La relation entre ces quatre quantités est ___T(S) = L + S/C___. Ce modèle néglige un grand nombre de détails. D'une part, L et C dépendent bien sûr du protocole de communication choisi mais aussi dans une certaine mesure de S. D'autre part, la mesure de T(S) comporte en général une forte composante aléatoire. Nous nous intéressons ici au temps moyen qu'il faut pour envoyer un message d'une taille donnée." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Nous allons estimer L et C à partir d'une série d'observations de T pour des valeurs différentes de S. Notre analyse commence avec la lectures des données brutes, disponibles pour deux connexions différentes, qui ont été obtenues avec l'outil ping." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Les deux fichiers contiennent la sortie brute de l'outil ping qui a été exécuté dans une boucle en variant de façon aléatoire la taille du message. Chaque ligne a la forme suivante:\n", "\n", "__[1421761682.052172] 665 bytes from lig-publig.imag.fr (129.88.11.7): icmp_seq=1 ttl=60 time=22.5 ms__\n", "\n", "Au début, entre crochet, nous trouvons la date à laquelle la mesure a été prise, exprimée en secondes depuis le 1er janvier 1970. La taille du message en octets est donnée juste après, suivie par le nom de la machine cible et son adresse IP, qui sont normalement identiques pour toutes les lignes à l'intérieur d'un jeu de données. À la fin de la ligne, nous trouvons le temps d'envoi (aller-retour) en millisecondes. Les autres indications, icmp_seq et ttl, n'ont pas d'importance pour notre analyse" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 1er jeu de données" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Nous commencons par travailler sur le 1er jeu de données qui examine une connexion courte à l'intérieur d'un campus." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Nous lisons le fichiers et récupérons les données intérésantes : la date (convertie de secondes à année-mois-jour), la taille des messages, la machine cible et les adresses IP. Nous gardons aussi le temps de transmission, si celui-ci n'est pas présent la ligne n'est pas gardée. Les données sont ensuite triées en fonction de la date." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", " | taille | \n", "cible | \n", "IP | \n", "temps | \n", "
---|---|---|---|---|
date | \n", "\n", " | \n", " | \n", " | \n", " |
2015-01-20 13:48:02.052172 | \n", "665 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "22.5 | \n", "
2015-01-20 13:48:02.277315 | \n", "1373 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "21.2 | \n", "
2015-01-20 13:48:02.502054 | \n", "262 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "21.2 | \n", "
2015-01-20 13:48:02.729257 | \n", "1107 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "23.3 | \n", "
2015-01-20 13:48:02.934648 | \n", "1128 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "1.41 | \n", "
2015-01-20 13:48:03.160397 | \n", "489 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "21.9 | \n", "
2015-01-20 13:48:03.443055 | \n", "1759 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "78.7 | \n", "
2015-01-20 13:48:03.672157 | \n", "1146 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "25.1 | \n", "
2015-01-20 13:48:03.899933 | \n", "884 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "24.0 | \n", "
2015-01-20 13:48:04.122687 | \n", "1422 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "19.5 | \n", "
2015-01-20 13:48:04.344135 | \n", "1180 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "18.0 | \n", "
2015-01-20 13:48:04.566271 | \n", "999 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "18.8 | \n", "
2015-01-20 13:48:04.998504 | \n", "1020 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "24.3 | \n", "
2015-01-20 13:48:05.205172 | \n", "71 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "3.45 | \n", "
2015-01-20 13:48:05.414106 | \n", "34 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "5.85 | \n", "
2015-01-20 13:48:05.620117 | \n", "1843 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "2.31 | \n", "
2015-01-20 13:48:05.824949 | \n", "407 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "1.14 | \n", "
2015-01-20 13:48:06.029177 | \n", "356 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "1.10 | \n", "
2015-01-20 13:48:06.234464 | \n", "1511 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "2.18 | \n", "
2015-01-20 13:48:06.438772 | \n", "587 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "1.27 | \n", "
2015-01-20 13:48:06.643208 | \n", "809 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "1.33 | \n", "
2015-01-20 13:48:06.848323 | \n", "1364 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "1.51 | \n", "
2015-01-20 13:48:07.053400 | \n", "1153 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "1.44 | \n", "
2015-01-20 13:48:07.257704 | \n", "853 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "1.30 | \n", "
2015-01-20 13:48:07.463275 | \n", "1510 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "2.17 | \n", "
2015-01-20 13:48:07.668423 | \n", "123 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "1.21 | \n", "
2015-01-20 13:48:07.874230 | \n", "1966 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "2.20 | \n", "
2015-01-20 13:48:08.078667 | \n", "933 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "1.34 | \n", "
2015-01-20 13:48:08.283655 | \n", "922 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "1.42 | \n", "
2015-01-20 13:48:08.488688 | \n", "24 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "1.12 | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
2015-01-20 16:26:20.743715 | \n", "1772 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "28.8 | \n", "
2015-01-20 16:26:20.949053 | \n", "41 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "1.14 | \n", "
2015-01-20 16:26:21.155685 | \n", "1944 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "2.32 | \n", "
2015-01-20 16:26:21.362095 | \n", "400 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "1.98 | \n", "
2015-01-20 16:26:21.569409 | \n", "226 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "3.01 | \n", "
2015-01-20 16:26:21.780805 | \n", "466 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "7.45 | \n", "
2015-01-20 16:26:21.998869 | \n", "350 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "13.5 | \n", "
2015-01-20 16:26:22.248969 | \n", "1829 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "45.9 | \n", "
2015-01-20 16:26:22.512386 | \n", "1954 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "58.5 | \n", "
2015-01-20 16:26:22.717961 | \n", "1074 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "1.45 | \n", "
2015-01-20 16:26:22.923292 | \n", "46 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "1.11 | \n", "
2015-01-20 16:26:23.129965 | \n", "1844 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "2.26 | \n", "
2015-01-20 16:26:23.335449 | \n", "645 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "1.24 | \n", "
2015-01-20 16:26:23.540901 | \n", "444 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "1.25 | \n", "
2015-01-20 16:26:23.747983 | \n", "1940 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "2.46 | \n", "
2015-01-20 16:26:23.954099 | \n", "1411 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "1.47 | \n", "
2015-01-20 16:26:24.159879 | \n", "49 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "1.21 | \n", "
2015-01-20 16:26:24.365815 | \n", "420 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "1.55 | \n", "
2015-01-20 16:26:24.571516 | \n", "227 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "1.22 | \n", "
2015-01-20 16:26:24.777325 | \n", "947 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "1.34 | \n", "
2015-01-20 16:26:24.983905 | \n", "1960 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "2.43 | \n", "
2015-01-20 16:26:25.188976 | \n", "531 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "1.19 | \n", "
2015-01-20 16:26:25.394275 | \n", "374 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "1.14 | \n", "
2015-01-20 16:26:25.600745 | \n", "1503 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "2.19 | \n", "
2015-01-20 16:26:25.805877 | \n", "572 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "1.29 | \n", "
2015-01-20 16:26:26.011910 | \n", "1338 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "1.47 | \n", "
2015-01-20 16:26:26.222729 | \n", "1515 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "7.02 | \n", "
2015-01-20 16:26:26.429007 | \n", "1875 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "2.33 | \n", "
2015-01-20 16:26:26.634747 | \n", "1006 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "1.61 | \n", "
2015-01-20 16:26:26.840222 | \n", "1273 | \n", "lig-publig.imag.fr | \n", "129.88.11.7 | \n", "1.35 | \n", "
44036 rows × 4 columns
\n", "