{ "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": [], "source": [ "fichier_1 = open(\"liglab2.log\").readlines()\n", "fichier_1 = [l for l in fichier_1 if 'time' in l]\n", "raw_data = [l.split(' ') for l in fichier_1]\n", "data = [ [d[0][1:-1], int(d[1]), d[4], d[5][1:-2], float(d[8].split('=')[1])] for d in raw_data]\n", "data = pd.DataFrame(data, columns=['date', 'taille', 'cible', 'IP', 'temps'])\n", "data['date'] = pd.to_datetime(data['date'], unit='s')\n", "sorted_data = data.set_index('date').sort_index()\n", "#sorted_data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Nous vérfions que toutes les données proviennents de la même machine cible. Ici pas de problème." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "lig-publig.imag.fr 44036\n", "Name: cible, dtype: int64" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sorted_data['cible'].value_counts()" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "129.88.11.7 44036\n", "Name: IP, dtype: int64" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sorted_data['IP'].value_counts()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1 ) Temps de transmission au cours du temps" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Nous regardons ici le temps de temps transmission. (Le notebook plante lorsque trop de données sont affichées en même temps dans les graphiques)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0,0.5,'Temps de transmission (ms)')" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "sorted_data['temps'].iloc[100:400].plot()\n", "plt.ylabel(\"Temps de transmission (ms)\")\n", "plt.figure()\n", "sorted_data['temps'].iloc[10000:10500].plot()\n", "plt.ylabel(\"Temps de transmission (ms)\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "On observe des pics du temps de transmission qui ne correspondent pas à un phénomène àléatoire utilisé pour définir la tailles des messages envoyés. La taille des messages n'explique donc pas à elle seule le temps de transmission." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2) Temps de transmission en fonction de la tailles des messages" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Nous regardons maintenant le temps de transmission en fonction de la taille des messages" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0,0.5,'Temps de transmission (ms)')" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(sorted_data['taille'].iloc[:10000], sorted_data['temps'].iloc[:10000], '+')\n", "plt.xlabel(\"taille message (bytes)\")\n", "plt.ylabel(\"Temps de transmission (ms)\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Nous changons l'échelle de l'axe des ordonnées." ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(0, 3)" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(sorted_data['taille'].iloc[10000:11000], sorted_data['temps'].iloc[10000:11000], '+')\n", "plt.xlabel(\"taille message (bytes)\")\n", "plt.ylabel(\"Temps de transmission (ms)\")\n", "plt.ylim([0,3])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Nous remarquons une rupture dans le temps de transmission à appartir de 1500 bytes. Nous étudierons séparément les messages de plus de 1500 bytes et ceux de moins de 1500 bytes." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "limite = 1500" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 3) Estimation de L et C" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Estimons maintenant L et C sur les deux groupes de messages à l'aide d'une régression linéaire.\n", "Nous commençons par les messages de moins de 1500 bytes." ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [], "source": [ "from sklearn import linear_model\n", "model = linear_model.LinearRegression()\n", "X = sorted_data[sorted_data['taille']]" ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(X[:100],y[:100],'+')\n", "x = np.linspace(0,limite, 100)\n", "plt.plot(x, L_m_limite + x/C_m_limite)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Même excercice avec les messages de plus de 1500 bytes" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "L = 4.920748136138777\n", "C = 359.78126382483623\n" ] }, { "data": { "text/plain": [ "[]" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from sklearn import linear_model\n", "model = linear_model.LinearRegression()\n", "X = sorted_data[sorted_data['taille']>limite].taille.iloc[:].values.reshape(-1, 1)\n", "y = sorted_data[sorted_data['taille']>limite].temps.iloc[:].values.reshape(-1, 1)\n", "results = model.fit(X, y)\n", "L_p_limite = float(results.intercept_)\n", "C_p_limite = float(1/ results.coef_)\n", "print(\"L = \", L_p_limite)\n", "print(\"C = \", C_p_limite)\n", "plt.plot(X[:100],y[:100],'+')\n", "x = np.linspace(limite,2000, 100)\n", "plt.plot(x, L_p_limite + x/C_p_limite)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Conclusion" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "plt.plot(sorted_data['taille'].iloc[10000:15000], sorted_data['temps'].iloc[10000:15000], '+')\n", "x = np.linspace(0,limite, 100)\n", "plt.plot(x, L_m_limite + x/C_m_limite)\n", "x = np.linspace(limite,2000, 100)\n", "plt.plot(x, L_p_limite + x/C_p_limite)\n", "plt.xlabel(\"taille message (bytes)\")\n", "plt.ylabel(\"Temps de transmission (ms)\")\n", "plt.ylim([0,20])" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.4" } }, "nbformat": 4, "nbformat_minor": 2 }