Merge branch 'master' of https://gitlab.inria.fr/qdufour/donar
This commit is contained in:
commit
a4ad88ad47
6 changed files with 258 additions and 40 deletions
16
README.md
16
README.md
|
@ -253,6 +253,22 @@ gst-launch-1.0 \
|
||||||
opusdec plc=true use-inband-fec=false ! \
|
opusdec plc=true use-inband-fec=false ! \
|
||||||
pulsesink
|
pulsesink
|
||||||
|
|
||||||
|
# both sides
|
||||||
|
export TARGET=192.168.1.1
|
||||||
|
gst-launch-1.0 \
|
||||||
|
autoaudiosrc ! \
|
||||||
|
queue ! \
|
||||||
|
audioresample ! \
|
||||||
|
opusenc audio-type=voice inband-fec=FALSE frame-size=20 bitrate=64000 dtx=TRUE ! \
|
||||||
|
rtpopuspay ! \
|
||||||
|
udpsink host=$TARGET port=5000 async=FALSE \
|
||||||
|
udpsrc port=5000 caps="application/x-rtp" ! \
|
||||||
|
rtpjitterbuffer do-lost=TRUE do-retransmission=FALSE latency=10 ! \
|
||||||
|
rtpopusdepay ! \
|
||||||
|
opusdec plc=TRUE use-inband-fec=FALSE ! \
|
||||||
|
audioresample ! \
|
||||||
|
autoaudiosink
|
||||||
|
|
||||||
# both sides with echo cancellation
|
# both sides with echo cancellation
|
||||||
export TARGET=192.168.1.1
|
export TARGET=192.168.1.1
|
||||||
gst-launch-1.0 \
|
gst-launch-1.0 \
|
||||||
|
|
201
r/config_light.R
201
r/config_light.R
|
@ -46,7 +46,7 @@ f$strat <- revalue(f$strat, c("1"="T", "0"="D"))
|
||||||
f$fast_count <- as.factor(f$fast_count)
|
f$fast_count <- as.factor(f$fast_count)
|
||||||
f$percentile <-factor(f$percentile,levels=c("MAX", "P99.9", "P99", "P75", "P50", "P25", "P1", "P0.1", "MIN"))
|
f$percentile <-factor(f$percentile,levels=c("MAX", "P99.9", "P99", "P75", "P50", "P25", "P1", "P0.1", "MIN"))
|
||||||
f <- f %>% mutate (lat = latency / 1000)
|
f <- f %>% mutate (lat = latency / 1000)
|
||||||
gf <- ggplot(sqldf("select * from f where percentile != 'MAX' and percentile != 'D1' and percentile != 'D0.1'") %>% arrange(percentile), aes(x=strat:fast_count,y=lat,group=percentile,fill=percentile)) +
|
gf <- ggplot(sqldf("select * from f where percentile != 'MAX' and percentile != 'P1' and percentile != 'P0.1'") %>% arrange(percentile), aes(x=strat:fast_count,y=lat,group=percentile,fill=percentile)) +
|
||||||
geom_bar(stat='identity', position='identity') +
|
geom_bar(stat='identity', position='identity') +
|
||||||
scale_fill_grey() +
|
scale_fill_grey() +
|
||||||
geom_hline(yintercept = 200) +
|
geom_hline(yintercept = 200) +
|
||||||
|
@ -57,7 +57,7 @@ gf <- ggplot(sqldf("select * from f where percentile != 'MAX' and percentile !=
|
||||||
labs(fill="Percentile") +
|
labs(fill="Percentile") +
|
||||||
theme_classic()
|
theme_classic()
|
||||||
|
|
||||||
plot_grid(gd, ge, gf, ncol=1) + ggsave("light_config.png", dpi=300, dev='png', height=17, width=15, units="cm")
|
plot_grid(gd, ge, gf, ncol=1) + ggsave("light_config.pdf", dpi=300, dev='pdf', height=17, width=15, units="cm")
|
||||||
|
|
||||||
g <- read.csv("../../donar-res/tmp_light/guards.csv")
|
g <- read.csv("../../donar-res/tmp_light/guards.csv")
|
||||||
g$strat <- as.factor(g$strat)
|
g$strat <- as.factor(g$strat)
|
||||||
|
@ -75,7 +75,204 @@ gg <- ggplot(sqldf("select * from g where percentile != 'MAX' and percentile !=
|
||||||
coord_cartesian(ylim=c(0,600)) +
|
coord_cartesian(ylim=c(0,600)) +
|
||||||
ylab("Latency (ms)") +
|
ylab("Latency (ms)") +
|
||||||
xlab("Strategy:Guards") +
|
xlab("Strategy:Guards") +
|
||||||
|
labs(fill="Percentile") +
|
||||||
theme_classic()
|
theme_classic()
|
||||||
|
|
||||||
gg + ggsave("light_guards.png", dpi=300, dev='png', height=7, width=15, units="cm")
|
gg + ggsave("light_guards.png", dpi=300, dev='png', height=7, width=15, units="cm")
|
||||||
|
|
||||||
|
h <- read.csv("../../donar-res/tmp_light/complem.csv")
|
||||||
|
h$strat <- revalue(h$strat, c("ticktock"="T", "duplicate"="D"))
|
||||||
|
h$percentile <-factor(h$percentile,levels=c("MAX", "P99.9", "P99", "P75", "P50", "P25", "P1", "P0.1", "MIN"))
|
||||||
|
h$mode <- factor(h$mode, levels=c("no_redundancy", "no_scheduler", "donar"))
|
||||||
|
h$mode <- revalue(h$mode, c("no_redundancy" = "scheduler", "no_scheduler" = "padding", "donar"="both"))
|
||||||
|
h <- h %>% mutate (lat = latency / 1000)
|
||||||
|
gh <- ggplot(sqldf("select * from h where percentile != 'MAX' and percentile != 'P1' and percentile != 'P0.1' ") %>% arrange(percentile), aes(x=strat:mode,y=lat,group=percentile,fill=percentile)) +
|
||||||
|
geom_bar(stat='identity', position='identity') +
|
||||||
|
scale_fill_grey() +
|
||||||
|
geom_hline(yintercept = 200) +
|
||||||
|
geom_hline(yintercept = 400) +
|
||||||
|
coord_cartesian(ylim=c(0,500)) +
|
||||||
|
ylab("Latency (ms)") +
|
||||||
|
xlab("Strategy:Feature") +
|
||||||
|
labs(fill="Percentile") +
|
||||||
|
theme_classic()
|
||||||
|
gh + ggsave("light_complementary.png", dpi=300, dev='png', height=7, width=15, units="cm")
|
||||||
|
|
||||||
|
i <- read.csv("../../donar-res/tmp_light/battle.csv")
|
||||||
|
i$percentile <- revalue(i$percentile, c("MAX" = "100%", "P99.9"="99.9%", "P99"="99%", "P75" = "75%", "P50"="50%","P25"="25%","P1"="1%","P0.1"="0.1%","MIN"="0%"))
|
||||||
|
i$percentile <-factor(i$percentile,levels=c("100%", "99.9%", "99%", "75%", "50%", "25%", "1%", "0.1%", "0%"))
|
||||||
|
i <- i %>% mutate (lat = latency / 1000)
|
||||||
|
i$secmode <- factor(i$secmode, levels=c("hardened", "default", "light"))
|
||||||
|
i$algo <- factor(i$algo, levels=c("simple", "dup2", "lightning-ticktock", "lightning-dup"))
|
||||||
|
i$algo <- revalue(i$algo, c("dup2"="torfone", "simple"="simple", "lightning-ticktock"="donar-ticktock", "lightning-dup"="donar-dup"))
|
||||||
|
gi <- ggplot(sqldf("select * from i where percentile != '100%' and percentile != '1%' and percentile != '0.1%' and secmode = 'default' ") %>% arrange(percentile), aes(x=algo,y=lat,group=percentile,fill=percentile)) +
|
||||||
|
geom_bar(stat='identity', position='identity',width=1) +
|
||||||
|
#scale_fill_grey() +
|
||||||
|
scale_y_continuous(expand = c(0, 0)) +
|
||||||
|
scale_x_discrete(expand = c(0, 0)) +
|
||||||
|
scale_fill_viridis_d() +
|
||||||
|
geom_hline(yintercept = 200) +
|
||||||
|
geom_hline(yintercept = 400) +
|
||||||
|
coord_cartesian(ylim=c(0,600)) +
|
||||||
|
ylab("Latency (ms)") +
|
||||||
|
xlab("Algorithm") +
|
||||||
|
labs(fill="Distribution") +#, title="linear scale, zoomed") +
|
||||||
|
theme_classic() +
|
||||||
|
theme(axis.text.x = element_text(angle = 10, hjust=1), plot.margin = unit(c(0.3,0.2,0.2,1), "cm"))
|
||||||
|
gibis <- ggplot(sqldf("select * from i where percentile != 'MAX' and percentile != 'P1' and percentile != 'P0.1' ") %>% arrange(percentile), aes(x=algo:secmode,y=lat,group=percentile,fill=percentile)) +
|
||||||
|
geom_bar(stat='identity', position='identity') +
|
||||||
|
scale_fill_grey() +
|
||||||
|
scale_y_log10() +
|
||||||
|
#geom_hline(yintercept = 200) +
|
||||||
|
#geom_hline(yintercept = 400) +
|
||||||
|
coord_cartesian(ylim=c(100,250000)) +
|
||||||
|
ylab("Latency (ms)") +
|
||||||
|
xlab("Algorithm:Security Profile") +
|
||||||
|
labs(fill="Percentile", title="log scale, full") +
|
||||||
|
theme_classic() +
|
||||||
|
theme(axis.text.x = element_text(angle = 20, hjust=1), plot.margin = unit(c(0.2,0.2,0.2,1), "cm"))
|
||||||
|
|
||||||
|
plot_grid(gibis, gi, ncol=1) + ggsave("light_battle.png", dpi=300, dev='png', height=12, width=15, units="cm")
|
||||||
|
|
||||||
|
gi + ggsave("battle_color.pdf", dpi=300, dev='pdf', height=7, width=12, units='cm')
|
||||||
|
|
||||||
|
fastprobe = read.csv(text=
|
||||||
|
"
|
||||||
|
group,pad,count,strat
|
||||||
|
fast,orig,0.47348781884198304,ticktock
|
||||||
|
fast,pad,0.2629428441715532,ticktock
|
||||||
|
probe,orig,0.23705662669600178,ticktock
|
||||||
|
probe,pad,0.026512710290461965,ticktock
|
||||||
|
probe,orig,0.1154165656941915,duplicate
|
||||||
|
probe,pad,0.015345347029610245,duplicate
|
||||||
|
fast,orig,0.7349205324574037,duplicate
|
||||||
|
fast,pad,0.13431755481879454,duplicate
|
||||||
|
")
|
||||||
|
gj <- ggplot(fastprobe, aes(x=group:pad, y=count, fill=strat)) +
|
||||||
|
geom_bar(stat='identity', position='dodge') +
|
||||||
|
scale_fill_grey() +
|
||||||
|
ylab("Count") +
|
||||||
|
xlab("Group:Padding") +
|
||||||
|
labs(fill="Strategy") +
|
||||||
|
scale_y_continuous(labels = scales::percent) +
|
||||||
|
theme_classic() +
|
||||||
|
theme(axis.text.x = element_text(angle = 20, hjust=1))
|
||||||
|
gj + ggsave("light_fastprobe.png", dpi=300, dev='png', height=7, width=15, units="cm")
|
||||||
|
|
||||||
|
fastlinks = read.csv(text=
|
||||||
|
"
|
||||||
|
link_count,occ_count,strat
|
||||||
|
5,0,ticktock
|
||||||
|
9,0.20634920634920634,ticktock
|
||||||
|
8,0.25396825396825395,ticktock
|
||||||
|
7,0.1111111111111111,ticktock
|
||||||
|
6,0.1746031746031746,ticktock
|
||||||
|
10,0.1746031746031746,ticktock
|
||||||
|
11,0.07936507936507936,ticktock
|
||||||
|
12,0,ticktock
|
||||||
|
9,0.19047619047619047,duplicate
|
||||||
|
8,0.14285714285714285,duplicate
|
||||||
|
10,0.20634920634920634,duplicate
|
||||||
|
7,0.09523809523809523,duplicate
|
||||||
|
6,0.09523809523809523,duplicate
|
||||||
|
11,0.14285714285714285,duplicate
|
||||||
|
5,0.015873015873015872,duplicate
|
||||||
|
12,0.1111111111111111,duplicate
|
||||||
|
")
|
||||||
|
gk <- ggplot(fastlinks, aes(x=link_count, y=occ_count, fill=strat)) +
|
||||||
|
geom_bar(stat='identity', position='dodge') +
|
||||||
|
scale_fill_grey() +
|
||||||
|
ylab("Runs") +
|
||||||
|
xlab("Links fast at least once") +
|
||||||
|
labs(fill="Strategy") +
|
||||||
|
scale_y_continuous(labels = scales::percent) +
|
||||||
|
theme_classic()
|
||||||
|
#theme(axis.text.x = element_text(angle = 20, hjust=1))
|
||||||
|
gk + ggsave("light_fastlinks.png", dpi=300, dev='png', height=7, width=15, units="cm")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
l <- read.csv("../../donar-res/tmp_light/basic.csv")
|
||||||
|
l <- l %>% mutate (lat = latency / 1000)
|
||||||
|
gl <- ggplot(sqldf("select * from l where way='client'"), aes(x=packet_id,y=lat)) +
|
||||||
|
coord_cartesian(ylim=c(0,500)) +
|
||||||
|
geom_hline(yintercept = 200) +
|
||||||
|
geom_hline(yintercept = 400) +
|
||||||
|
xlab("Packet Identifier") +
|
||||||
|
ylab("Latency (ms)") +
|
||||||
|
labs(linetype="Way") +
|
||||||
|
geom_point() +
|
||||||
|
theme_classic()
|
||||||
|
gl + ggsave("light_single.png", dpi=300, dev='png', height=7, width=15, units="cm")
|
||||||
|
|
||||||
|
m <- read.csv("../../donar-res/tmp_light/fp.csv")
|
||||||
|
m <- m %>% mutate (lat = latency / 1000)
|
||||||
|
gm <- ggplot(sqldf("select * from m where `way`='client'"), aes(x=packet_id,y=lat,color=group)) +
|
||||||
|
scale_color_grey() +
|
||||||
|
coord_cartesian(ylim=c(0,500)) +
|
||||||
|
geom_hline(yintercept = 200) +
|
||||||
|
geom_hline(yintercept = 400) +
|
||||||
|
xlab("Packet Identifier") +
|
||||||
|
ylab("Latency (ms)") +
|
||||||
|
labs(color="Group") +
|
||||||
|
labs(linetype="Way") +
|
||||||
|
geom_point() +
|
||||||
|
theme_classic()
|
||||||
|
|
||||||
|
n <- read.csv("../../donar-res/tmp_light/linkgroup.csv")
|
||||||
|
n$group <- revalue(n$group, c("fast" = "fast link", "probe" = "other link"))
|
||||||
|
gn <- ggplot(n, aes(x=packet_id, y=link_id, color=group)) +
|
||||||
|
scale_color_grey() +
|
||||||
|
#scale_color_viridis_d() +
|
||||||
|
xlab("Packet Identifier") +
|
||||||
|
ylab("Link Identifier") +
|
||||||
|
labs(color="Group") +
|
||||||
|
geom_point() +
|
||||||
|
theme_classic()
|
||||||
|
|
||||||
|
plot_grid(gl, gm, gn, ncol=1) + ggsave("light_single.png", dpi=300, dev='png', height=17, width=15, units="cm")
|
||||||
|
|
||||||
|
gn+ggsave("links_group.pdf", dpi=300, dev='pdf', height=7, width=15, units="cm")
|
||||||
|
|
||||||
|
o <- read.csv("../../donar-res/tmp_light/torrate.csv")
|
||||||
|
o <- o %>% mutate (latency = latency / 1000)
|
||||||
|
o <- o %>% mutate (rate = round(rate, 0))
|
||||||
|
|
||||||
|
q1coefs <- coef(lm(latency ~ rate, data = sqldf("select rate, latency from o where percentile= 'P25'")))
|
||||||
|
mcoefs <- coef(lm(latency ~ rate, data = sqldf("select rate, latency from o where percentile= 'P50'")))
|
||||||
|
q3coefs <- coef(lm(latency ~ rate, data = sqldf("select rate, latency from o where percentile= 'P75'")))
|
||||||
|
|
||||||
|
o$percentile <- revalue(o$percentile, c("MAX"="100%", "MIN" = "0%", "P99.9" = "99.9%", "P99" = "99%", "P75" = "75%", "P50" = "50%", "P25" = "25%"))
|
||||||
|
o$percentile <-factor(o$percentile,levels=c("100%", "99.9%", "99%", "75%", "50%", "25%", "1%", "0.1%", "0%"))
|
||||||
|
o$rate <- factor(o$rate)
|
||||||
|
|
||||||
|
go <- ggplot(sqldf("select * from o where percentile != 'MAX' and percentile != 'P1' and percentile != 'P0.1'") %>% arrange(percentile), aes(x=rate,y=latency,group=percentile,fill=percentile)) +
|
||||||
|
geom_bar(stat='identity', position='identity', width=1) +
|
||||||
|
#scale_fill_grey() +
|
||||||
|
scale_fill_viridis_d(expand = c(0, 0)) +
|
||||||
|
scale_y_continuous(expand = c(0, 0)) +
|
||||||
|
scale_x_discrete(expand = c(0, 0)) +
|
||||||
|
ylab("Latency (ms)") +
|
||||||
|
xlab("Packets / second") +
|
||||||
|
labs(fill="Distribution") +#, title="low values") +
|
||||||
|
coord_cartesian(ylim=c(0,500)) +
|
||||||
|
geom_hline(yintercept = 200) +
|
||||||
|
geom_hline(yintercept = 400) +
|
||||||
|
#geom_abline(intercept = q1coefs[1], slope = q1coefs[2], linetype='dashed') +
|
||||||
|
#geom_abline(intercept = mcoefs[1], slope = mcoefs[2], linetype='dashed') +
|
||||||
|
#geom_abline(intercept = q3coefs[1], slope = q3coefs[2], linetype='dashed') +
|
||||||
|
theme_classic()
|
||||||
|
gp <- ggplot(sqldf("select * from o where percentile != 'MAX' and percentile != 'P1' and percentile != 'P0.1'") %>% arrange(percentile), aes(x=rate,y=latency,group=percentile,fill=percentile)) +
|
||||||
|
geom_bar(stat='identity', position='identity') +
|
||||||
|
scale_fill_grey() +
|
||||||
|
scale_y_log10() +
|
||||||
|
ylab("Latency (ms)") +
|
||||||
|
xlab("Packets / second") +
|
||||||
|
labs(fill="Percentile", title="high values (log scale)") +
|
||||||
|
coord_cartesian(ylim=c(100,100000)) +
|
||||||
|
geom_hline(yintercept = 200) +
|
||||||
|
geom_hline(yintercept = 400) +
|
||||||
|
theme_classic()
|
||||||
|
plot_grid(gp, go, align = "v", axis = "l", ncol=1) + ggsave("torrate.pdf", dpi=300, dev='pdf', height=12, width=15, units="cm")
|
||||||
|
|
||||||
|
go + ggsave("torrate_scale.pdf", dpi=300, dev='pdf', height=6, width=12, units='cm')
|
||||||
|
|
|
@ -281,25 +281,25 @@ tor_lat_stack <- tor_multi_lat %>%
|
||||||
dplyr::group_by(run,conf) %>%
|
dplyr::group_by(run,conf) %>%
|
||||||
dplyr::summarise(
|
dplyr::summarise(
|
||||||
id = paste(first(run),first(conf)),
|
id = paste(first(run),first(conf)),
|
||||||
min = min(latency),
|
P0 = min(latency),
|
||||||
q25 = quantile(latency,0.25) - min(latency),
|
P25 = quantile(latency,0.25) - min(latency),
|
||||||
median = median(latency) - quantile(latency,0.25),
|
P50 = median(latency) - quantile(latency,0.25),
|
||||||
q75 = quantile(latency,0.75) - median(latency),
|
P75 = quantile(latency,0.75) - median(latency),
|
||||||
q95 = quantile(latency,0.95) - quantile(latency,0.75),
|
P95 = quantile(latency,0.95) - quantile(latency,0.75),
|
||||||
q99 = quantile(latency,0.99) - quantile(latency,0.95),
|
P99 = quantile(latency,0.99) - quantile(latency,0.95),
|
||||||
max = max(latency) - quantile(latency,0.99),
|
P100 = max(latency) - quantile(latency,0.99),
|
||||||
max_sort = max(latency),
|
max_sort = max(latency),
|
||||||
median_sort = median(latency)
|
median_sort = median(latency)
|
||||||
)
|
)
|
||||||
|
|
||||||
tor_lat_stack <- gather(tor_lat_stack, 'min', 'max', 'q25', 'median', 'q75', 'q95', 'q99', key="quantile_name", value="quantile_value")
|
tor_lat_stack <- gather(tor_lat_stack, 'P0', 'P100', 'P25', 'P50', 'P75', 'P95', 'P99', key="quantile_name", value="quantile_value")
|
||||||
v13 <- ggplot(tor_lat_stack, aes(
|
v13 <- ggplot(tor_lat_stack, aes(
|
||||||
x=reorder(id,median_sort),
|
x=reorder(id,median_sort),
|
||||||
y=quantile_value,
|
y=quantile_value,
|
||||||
fill=factor(quantile_name, levels=c('max','q99','q95','q75', 'median', 'q25', 'min')))
|
fill=factor(quantile_name, levels=c('P100','P99','P95','P75', 'P50', 'P25', 'P0')))
|
||||||
) +
|
) +
|
||||||
coord_cartesian(ylim = c(0,1500)) +
|
coord_cartesian(ylim = c(0,1500)) +
|
||||||
labs(fill="quantile")+
|
labs(fill="Percentile")+
|
||||||
xlab("Tor circuits") +
|
xlab("Tor circuits") +
|
||||||
ylab("RTT (ms)") +
|
ylab("RTT (ms)") +
|
||||||
geom_bar(stat="identity", position="stack",width=1) +
|
geom_bar(stat="identity", position="stack",width=1) +
|
||||||
|
@ -310,10 +310,10 @@ v13 <- ggplot(tor_lat_stack, aes(
|
||||||
v14 <- ggplot(tor_lat_stack, aes(
|
v14 <- ggplot(tor_lat_stack, aes(
|
||||||
x=reorder(id,median_sort),
|
x=reorder(id,median_sort),
|
||||||
y=quantile_value,
|
y=quantile_value,
|
||||||
fill=factor(quantile_name, levels=c('max','q99','q95','q75', 'median', 'q25', 'min')))
|
fill=factor(quantile_name, levels=c('P100','P99','P95','P75', 'P50', 'P25', 'P0')))
|
||||||
) +
|
) +
|
||||||
#coord_cartesian(ylim = c(0,1500)) +
|
#coord_cartesian(ylim = c(0,1500)) +
|
||||||
labs(fill="quantile")+
|
labs(fill="Percentile")+
|
||||||
xlab("Tor circuits") +
|
xlab("Tor circuits") +
|
||||||
ylab("RTT (ms)") +
|
ylab("RTT (ms)") +
|
||||||
geom_bar(stat="identity", position="stack",width=1) +
|
geom_bar(stat="identity", position="stack",width=1) +
|
||||||
|
@ -324,10 +324,10 @@ v14 <- ggplot(tor_lat_stack, aes(
|
||||||
v15 <- ggplot(tor_lat_stack, aes(
|
v15 <- ggplot(tor_lat_stack, aes(
|
||||||
x=reorder(id,max_sort),
|
x=reorder(id,max_sort),
|
||||||
y=quantile_value,
|
y=quantile_value,
|
||||||
fill=factor(quantile_name, levels=c('max','q99','q95','q75', 'median', 'q25', 'min')))
|
fill=factor(quantile_name, levels=c('P100','P99','P95','P75', 'P50', 'P25', 'P0')))
|
||||||
) +
|
) +
|
||||||
coord_cartesian(ylim = c(0,1500)) +
|
coord_cartesian(ylim = c(0,1500)) +
|
||||||
labs(fill="quantile")+
|
labs(fill="Percentile")+
|
||||||
xlab("Tor circuits") +
|
xlab("Tor circuits") +
|
||||||
ylab("RTT (ms)") +
|
ylab("RTT (ms)") +
|
||||||
geom_bar(stat="identity", position="stack",width=1) +
|
geom_bar(stat="identity", position="stack",width=1) +
|
||||||
|
@ -338,10 +338,10 @@ v15 <- ggplot(tor_lat_stack, aes(
|
||||||
v16 <- ggplot(tor_lat_stack, aes(
|
v16 <- ggplot(tor_lat_stack, aes(
|
||||||
x=reorder(id,max_sort),
|
x=reorder(id,max_sort),
|
||||||
y=quantile_value,
|
y=quantile_value,
|
||||||
fill=factor(quantile_name, levels=c('max','q99','q95','q75', 'median', 'q25', 'min')))
|
fill=factor(quantile_name, levels=c('P100','P99','P95','P75', 'P50', 'P25', 'P0')))
|
||||||
) +
|
) +
|
||||||
#coord_cartesian(ylim = c(0,1500)) +
|
#coord_cartesian(ylim = c(0,1500)) +
|
||||||
labs(fill="quantile")+
|
labs(fill="Percentile")+
|
||||||
xlab("Tor circuits") +
|
xlab("Tor circuits") +
|
||||||
ylab("RTT (ms)") +
|
ylab("RTT (ms)") +
|
||||||
geom_bar(stat="identity", position="stack",width=1) +
|
geom_bar(stat="identity", position="stack",width=1) +
|
||||||
|
@ -349,8 +349,8 @@ v16 <- ggplot(tor_lat_stack, aes(
|
||||||
theme_classic() +
|
theme_classic() +
|
||||||
theme(axis.text.x=element_blank(), axis.ticks.x = element_blank(), legend.key.size = unit(0.2, "cm"),plot.tag.position='bottom')
|
theme(axis.text.x=element_blank(), axis.ticks.x = element_blank(), legend.key.size = unit(0.2, "cm"),plot.tag.position='bottom')
|
||||||
|
|
||||||
t4 <- plot_grid(v16, v15, v14, v13, labels = c('A', 'B', 'C', 'D'), ncol=1)
|
t4 <- plot_grid(v16, v15, v14, v13, align = "v", axis = "l", labels = c('A', 'B', 'C', 'D'), ncol=1)
|
||||||
t4 + ggsave("tor_30ms.png", dpi=300, dev='png', height=20, width=15, units="cm")
|
t4 + ggsave("tor_30ms.pdf", dpi=150, dev='pdf', height=15, width=12, units="cm")
|
||||||
|
|
||||||
|
|
||||||
tor_lat_stack_100 <- tor_multi_lat_100 %>%
|
tor_lat_stack_100 <- tor_multi_lat_100 %>%
|
||||||
|
|
|
@ -289,30 +289,30 @@ battle:
|
||||||
dup2-client 7500 40 172 2, \
|
dup2-client 7500 40 172 2, \
|
||||||
dup2-client 7500 40 172 2, \
|
dup2-client 7500 40 172 2, \
|
||||||
dup2-client 7500 40 172 2, \
|
dup2-client 7500 40 172 2, \
|
||||||
lightning-client 7500 40 172 16 disable_scheduler=1!fast_count=8!tick_tock=1!measlat=1!window=300000, \
|
lightning-client 7500 40 172 12 disable_scheduler=1!fast_count=8!tick_tock=1!measlat=1!window=300000, \
|
||||||
lightning-client 7500 40 172 16 disable_scheduler=1!fast_count=8!tick_tock=1!measlat=1!window=300000, \
|
lightning-client 7500 40 172 12 disable_scheduler=1!fast_count=8!tick_tock=1!measlat=1!window=300000, \
|
||||||
lightning-client 7500 40 172 16 disable_scheduler=1!fast_count=8!tick_tock=1!measlat=1!window=300000, \
|
lightning-client 7500 40 172 12 disable_scheduler=1!fast_count=8!tick_tock=1!measlat=1!window=300000, \
|
||||||
lightning-client 7500 40 172 16 fast_count=4!tick_tock=1!measlat=1!window=2000, \
|
lightning-client 7500 40 172 12 fast_count=3!tick_tock=1!measlat=1!window=2000, \
|
||||||
lightning-client 7500 40 172 16 fast_count=4!tick_tock=1!measlat=1!window=2000, \
|
lightning-client 7500 40 172 12 fast_count=3!tick_tock=1!measlat=1!window=2000, \
|
||||||
lightning-client 7500 40 172 16 fast_count=4!tick_tock=1!measlat=1!window=2000, \
|
lightning-client 7500 40 172 12 fast_count=3!tick_tock=1!measlat=1!window=2000, \
|
||||||
lightning-client 7500 40 172 16 fast_count=4!tick_tock=0!measlat=1!window=2000, \
|
lightning-client 7500 40 172 12 fast_count=3!tick_tock=0!measlat=1!window=2000, \
|
||||||
lightning-client 7500 40 172 16 fast_count=4!tick_tock=0!measlat=1!window=2000, \
|
lightning-client 7500 40 172 12 fast_count=3!tick_tock=0!measlat=1!window=2000, \
|
||||||
lightning-client 7500 40 172 16 fast_count=4!tick_tock=0!measlat=1!window=2000. \
|
lightning-client 7500 40 172 12 fast_count=3!tick_tock=0!measlat=1!window=2000. \
|
||||||
orig-server-single 7500 40 172, \
|
orig-server-single 7500 40 172, \
|
||||||
orig-server 7500 40 172, \
|
orig-server 7500 40 172, \
|
||||||
orig-server 7500 40 172, \
|
orig-server 7500 40 172, \
|
||||||
dup2-server-single 7500 40 172 2, \
|
dup2-server-single 7500 40 172 2, \
|
||||||
dup2-server 7500 40 172 2, \
|
dup2-server 7500 40 172 2, \
|
||||||
dup2-server 7500 40 172 2, \
|
dup2-server 7500 40 172 2, \
|
||||||
lightning-server-single 7500 40 172 16 disable_scheduler=1!fast_count=8!tick_tock=1!measlat=1!window=300000, \
|
lightning-server-single 7500 40 172 12 disable_scheduler=1!fast_count=8!tick_tock=1!measlat=1!window=300000, \
|
||||||
lightning-server 7500 40 172 16 disable_scheduler=1!fast_count=8!tick_tock=1!measlat=1!window=300000, \
|
lightning-server 7500 40 172 12 disable_scheduler=1!fast_count=8!tick_tock=1!measlat=1!window=300000, \
|
||||||
lightning-server 7500 40 172 16 disable_scheduler=1!fast_count=8!tick_tock=1!measlat=1!window=300000, \
|
lightning-server 7500 40 172 12 disable_scheduler=1!fast_count=8!tick_tock=1!measlat=1!window=300000, \
|
||||||
lightning-server-single 7500 40 172 16 fast_count=4!tick_tock=1!measlat=1!window=2000, \
|
lightning-server-single 7500 40 172 12 fast_count=3!tick_tock=1!measlat=1!window=2000, \
|
||||||
lightning-server 7500 40 172 16 fast_count=4!tick_tock=1!measlat=1!window=2000, \
|
lightning-server 7500 40 172 12 fast_count=3!tick_tock=1!measlat=1!window=2000, \
|
||||||
lightning-server 7500 40 172 16 fast_count=4!tick_tock=1!measlat=1!window=2000, \
|
lightning-server 7500 40 172 12 fast_count=3!tick_tock=1!measlat=1!window=2000, \
|
||||||
lightning-server-single 7500 40 172 16 fast_count=4!tick_tock=0!measlat=1!window=2000, \
|
lightning-server-single 7500 40 172 12 fast_count=3!tick_tock=0!measlat=1!window=2000, \
|
||||||
lightning-server 7500 40 172 16 fast_count=4!tick_tock=0!measlat=1!window=2000, \
|
lightning-server 7500 40 172 12 fast_count=3!tick_tock=0!measlat=1!window=2000, \
|
||||||
lightning-server 7500 40 172 16 fast_count=4!tick_tock=0!measlat=1!window=2000. \
|
lightning-server 7500 40 172 12 fast_count=3!tick_tock=0!measlat=1!window=2000. \
|
||||||
tor2 -f /etc/torrc_guard_16, \
|
tor2 -f /etc/torrc_guard_16, \
|
||||||
tor2 -f /etc/torrc_guard_16, \
|
tor2 -f /etc/torrc_guard_16, \
|
||||||
tor3 -f /etc/torrc_guard_2, \
|
tor3 -f /etc/torrc_guard_2, \
|
||||||
|
|
|
@ -1,4 +1,9 @@
|
||||||
ControlPort 9051
|
ControlPort 9051
|
||||||
|
|
||||||
UseEntryGuards 0
|
UseEntryGuards 0
|
||||||
|
|
||||||
SafeLogging 0
|
SafeLogging 0
|
||||||
|
|
||||||
|
IsolateDestPort 1
|
||||||
|
|
||||||
#Log INFO stdout
|
#Log INFO stdout
|
||||||
|
|
Loading…
Reference in a new issue