--- title: "MOOC Recherche reproductible - Latence et de la capacité d’une connexion" author: "Clément Bienvenu" date: "23/02/2022" output: word_document: toc: true --- ```{r setup, include=FALSE} knitr::opts_chunk$set(echo = TRUE , warning = FALSE , fig.height = 3 ) library(stringr) library(dplyr) library(ggplot2) ``` ```{r , eval = FALSE , echo = FALSE} setwd("D:/Cesure/MOOC/RR") # Téléchargement des données temp <- tempfile(pattern = "liglab2" , tmpdir = "D:\\Cesure\\MOOC\\RR") download.file("http://mescal.imag.fr/membres/arnaud.legrand/teaching/2014/RICM4_EP_ping/liglab2.log.gz" , temp) courte <- read.table(gzfile(temp) , header = T , sep = " " , dec = "." , fill = T) unlink(temp) temp <- tempfile(pattern = "liglab2" , tmpdir = "D:\\Cesure\\MOOC\\RR") download.file("http://mescal.imag.fr/membres/arnaud.legrand/teaching/2014/RICM4_EP_ping/liglab2.log.gz" , temp) longue <- read.table(gzfile(temp) , header = T , sep = " " , dec = "." , fill = T) unlink(temp) # On enlève les colonnes inutiles courte <- courte[,-c(3:8,10)] longue <- longue[,-c(3:8,10)] # On renomme les colonne avec des noms explicites names(courte) <- c("date","taille","temps") names(longue) <- c("date","taille","temps") # On transforme tout en chiffres courte$date <- str_sub(courte$date , start = 2 , end = -2) longue$date <- str_sub(longue$date , start = 2 , end = -2) courte$temps <- str_sub(courte$temps, start = 6) longue$temps <- str_sub(longue$temps, start = 6) courte$date <- as.numeric(courte$date) courte$taille <- as.numeric(courte$taille) courte$temps <- as.numeric(courte$temps) longue$date <- as.numeric(longue$date) longue$taille <- as.numeric(longue$taille) longue$temps <- as.numeric(longue$temps) # On enlève les NAs courte <- courte %>% na.omit() longue <- longue %>% na.omit() # Vérification des données summary(courte) summary(longue) # sauvegarde d'une copie locale write.table(courte , "connexion_courte.csv" , dec = "." , sep = ",") write.table(longue , "connexion_longue.csv" , dec = "." , sep = ",") ``` ```{r , echo=FALSE} setwd("D:/Cesure/MOOC/RR") ``` \newpage Les données ont été récupérées aux adresses suivantes : \ Connexion courte : http://mescal.imag.fr/membres/arnaud.legrand/teaching/2014/RICM4_EP_ping/liglab2.log.gz \ Connexion longue : http://mescal.imag.fr/membres/arnaud.legrand/teaching/2014/RICM4_EP_ping/liglab2.log.gz # Travail sur la connexion courte ```{r} courte <- read.table("connexion_courte.csv" , sep = "," , dec = "." , header = T) ``` ## graphiques On commence par représenter l'évolution de temps de transmission au cours du temps et l'évolution de la taille des messages au cours du temps. ```{r} ggplot(data = courte , mapping = aes(x = date , y = temps)) + geom_point() + labs(title = "temps de transmissions en fonction de la date") ggplot(data = courte , mapping = aes(x = date , y = taille)) + geom_point() + labs(title = "taille du message en fonction de la date") ``` Il est difficile de voir si le temps de transmission est liée à la taille du message avec ces graphs. ```{r} ggplot(data = courte , mapping = aes(x = taille , y = temps)) + geom_point() + labs(title = "temps de transmissions en fonction de la taille du message") ``` on voit une rupture vers 1480 bytes. En dessous de cette rupture : ```{r} ggplot(data = subset(courte , taille < 1480) , mapping = aes(x = taille , y = temps)) + geom_point() + labs(title = "temps de transmissions en fonction de la taille du message") ``` Au dessus de cette rupture : ```{r} ggplot(data = subset(courte , taille >= 1480) , mapping = aes(x = taille , y = temps)) + geom_point() + labs(title = "temps de transmissions en fonction de la taille du message") ``` ## Régression On fait donc deux régressions : une avec les messages en dessouss de 1480 bytes et une avec les messages au dessus. ```{r} dessous <- lm(temps~taille , data = subset(courte , taille < 1480)) dessus <- lm(temps~taille , data = subset(courte , taille >= 1480)) ``` En dessous de 1480 bytes : \ On estime L à `r dessous$coefficient[1]`, et C à `r 1/dessous$coefficient[2]` ```{r} ggplot(data = subset(courte , taille < 1480) , mapping = aes(x = taille , y = temps)) + geom_point() + labs(title = "temps de transmissions en fonction de la taille du message") + geom_smooth(method = "lm" , col = "red") ``` Au dessus : \ On estime L à `r dessus$coefficient[1]`, et C à `r 1/dessus$coefficient[2]` ```{r} ggplot(data = subset(courte , taille >= 1480) , mapping = aes(x = taille , y = temps)) + geom_point() + labs(title = "temps de transmissions en fonction de la taille du message") + geom_smooth(method = "lm" , col = "red") ``` Expliquer le temps d'envoi avec la taille du message ne semble pas être pertinent pour la connexion courte. \ \ # Travail sur la connexion longue ```{r} longue <- read.table("connexion_longue.csv" , sep = "," , dec = "." , header = T) ``` ## graphiques On commence par représenter l'évolution de temps de transmission au cours du temps et l'évolution de la taille des messages au cours du temps. ```{r} ggplot(data = longue , mapping = aes(x = date , y = temps)) + geom_point() + labs(title = "temps de transmissions en fonction de la date") ggplot(data = longue , mapping = aes(x = date , y = taille)) + geom_point() + labs(title = "taille du message en fonction de la date") ``` Il est difficile de voir si le temps de transmission est liée à la taille du message avec ces graphs. ```{r} ggplot(data = longue , mapping = aes(x = taille , y = temps)) + geom_point() + labs(title = "temps de transmissions en fonction de la taille du message") ``` on voit une rupture vers 1480 bytes. En dessous de cette rupture : ```{r} ggplot(data = subset(longue , taille < 1480) , mapping = aes(x = taille , y = temps)) + geom_point() + labs(title = "temps de transmissions en fonction de la taille du message") ``` Au dessus de cette rupture : ```{r} ggplot(data = subset(longue , taille >= 1480) , mapping = aes(x = taille , y = temps)) + geom_point() + labs(title = "temps de transmissions en fonction de la taille du message") ``` ## Régression On fait donc deux régressions : une avec les messages en dessouss de 1480 bytes et une avec les messages au dessus. ```{r} dessous <- lm(temps~taille , data = subset(longue , taille < 1480)) dessus <- lm(temps~taille , data = subset(longue , taille >= 1480)) ``` En dessous de 1480 bytes : \ On estime L à `r dessous$coefficient[1]`, et C à `r 1/dessous$coefficient[2]` ```{r} ggplot(data = subset(longue , taille < 1480) , mapping = aes(x = taille , y = temps)) + geom_point() + labs(title = "temps de transmissions en fonction de la taille du message") + geom_smooth(method = "lm" , col = "red") ``` Au dessus : \ On estime L à `r dessus$coefficient[1]`, et C à `r 1/dessus$coefficient[2]` ```{r} ggplot(data = subset(longue , taille >= 1480) , mapping = aes(x = taille , y = temps)) + geom_point() + labs(title = "temps de transmissions en fonction de la taille du message") + geom_smooth(method = "lm" , col = "red") ``` Expliquer le temps d'envoi avec la taille du message ne semble pas être pertinent pour la connexion longue.