The purpose is to evaluate TCP performance in different network conditions, two tcp variances are choosen: cubic and illinois.
Test result:
case, tcp, bitrate (kbps)
50ms + 3% loss, cubic, 1050
50ms + 3% loss, cubic, 996
50ms + 3% loss, cubic, 1050
50ms + 3% loss, cubic, 1120
50ms + 3% loss, cubic, 1020
50ms + 3% loss, cubic, 1080
50ms + 3% loss, cubic, 1050
50ms + 3% loss, cubic, 1270
50ms + 3% loss, cubic, 1070
50ms + 3% loss, cubic, 1020
50ms + 3% loss, illinois, 4460
50ms + 3% loss, illinois, 1270
50ms + 3% loss, illinois, 1960
50ms + 3% loss, illinois, 1220
50ms + 3% loss, illinois, 2440
50ms + 3% loss, illinois, 3490
50ms + 3% loss, illinois, 1640
50ms + 3% loss, illinois, 1360
50ms + 3% loss, illinois, 1520
50ms + 3% loss, illinois, 1110
50ms + 3% loss, cubic beta 0.85, 1530
50ms + 3% loss, cubic beta 0.85, 1580
50ms + 3% loss, cubic beta 0.85, 1550
50ms + 3% loss, cubic beta 0.85, 1570
50ms + 3% loss, cubic beta 0.85, 1710
50ms + 3% loss, cubic beta 0.85, 1190
50ms + 3% loss, cubic beta 0.85, 1390
50ms + 3% loss, cubic beta 0.85, 2270
50ms + 3% loss, cubic beta 0.85, 2300
50ms + 3% loss, cubic beta 0.85, 1910
50ms + 5% loss, cubic, 807
50ms + 5% loss, cubic, 503
50ms + 5% loss, cubic, 137
50ms + 5% loss, cubic, 757
50ms + 5% loss, cubic, 724
50ms + 5% loss, cubic, 707
50ms + 5% loss, cubic, 965
50ms + 5% loss, cubic, 792
50ms + 5% loss, cubic, 847
50ms + 5% loss, cubic, 749
50ms + 5% loss, illinois, 956
50ms + 5% loss, illinois, 935
50ms + 5% loss, illinois, 913
50ms + 5% loss, illinois, 1040
50ms + 5% loss, illinois, 1190
50ms + 5% loss, illinois, 845
50ms + 5% loss, illinois, 1030
50ms + 5% loss, illinois, 998
50ms + 5% loss, illinois, 1090
50ms + 5% loss, illinois, 1050
50ms + 5% loss, cubic beta 0.85, 1230
50ms + 5% loss, cubic beta 0.85, 1240
50ms + 5% loss, cubic beta 0.85, 973
50ms + 5% loss, cubic beta 0.85, 1030
50ms + 5% loss, cubic beta 0.85, 1070
50ms + 5% loss, cubic beta 0.85, 1130
50ms + 5% loss, cubic beta 0.85, 1270
50ms + 5% loss, cubic beta 0.85, 1180
50ms + 5% loss, cubic beta 0.85, 1170
50ms + 5% loss, cubic beta 0.85, 1020
50ms + 10% loss, cubic, 489
50ms + 10% loss, cubic, 602
50ms + 10% loss, cubic, 490
50ms + 10% loss, cubic, 530
50ms + 10% loss, cubic, 528
50ms + 10% loss, cubic, 604
50ms + 10% loss, cubic, 527
50ms + 10% loss, cubic, 407
50ms + 10% loss, cubic, 472
50ms + 10% loss, cubic, 468
50ms + 10% loss, illinois, 606
50ms + 10% loss, illinois, 565
50ms + 10% loss, illinois, 573
50ms + 10% loss, illinois, 731
50ms + 10% loss, illinois, 640
50ms + 10% loss, illinois, 459
50ms + 10% loss, illinois, 639
50ms + 10% loss, illinois, 565
50ms + 10% loss, illinois, 495
50ms + 10% loss, illinois, 522
50ms + 10% loss, cubic beta 0.85, 762
50ms + 10% loss, cubic beta 0.85, 606
50ms + 10% loss, cubic beta 0.85, 786
50ms + 10% loss, cubic beta 0.85, 639
50ms + 10% loss, cubic beta 0.85, 706
50ms + 10% loss, cubic beta 0.85, 523
50ms + 10% loss, cubic beta 0.85, 620
50ms + 10% loss, cubic beta 0.85, 608
50ms + 10% loss, cubic beta 0.85, 756
50ms + 10% loss, cubic beta 0.85, 759
150ms + 5% loss, cubic, 350
150ms + 5% loss, cubic, 490
150ms + 5% loss, cubic, 346
150ms + 5% loss, cubic, 326
150ms + 5% loss, cubic, 327
150ms + 5% loss, cubic, 453
150ms + 5% loss, cubic, 311
150ms + 5% loss, cubic, 333
150ms + 5% loss, cubic, 361
150ms + 5% loss, cubic, 324
150ms + 5% loss, illinois, 370
150ms + 5% loss, illinois, 397
150ms + 5% loss, illinois, 453
150ms + 5% loss, illinois, 347
150ms + 5% loss, illinois, 378
150ms + 5% loss, illinois, 475
150ms + 5% loss, illinois, 433
150ms + 5% loss, illinois, 430
150ms + 5% loss, illinois, 398
150ms + 5% loss, illinois, 417
150ms + 5% loss, cubic beta 0.85, 903
150ms + 5% loss, cubic beta 0.85, 450
150ms + 5% loss, cubic beta 0.85, 605
150ms + 5% loss, cubic beta 0.85, 462
150ms + 5% loss, cubic beta 0.85, 581
150ms + 5% loss, cubic beta 0.85, 558
150ms + 5% loss, cubic beta 0.85, 511
150ms + 5% loss, cubic beta 0.85, 453
150ms + 5% loss, cubic beta 0.85, 454
150ms + 5% loss, cubic beta 0.85, 492
50ms, cubic, 63200000
50ms, cubic, 63800000
50ms, cubic, 63300000
50ms, cubic, 63100000
50ms, cubic, 9310000
50ms, cubic, 63600000
50ms, cubic, 63800000
50ms, cubic, 63700000
50ms, cubic, 62000000
50ms, cubic, 63700000
50ms, illinois, 33100000
50ms, illinois, 29200000
50ms, illinois, 33900000
50ms, illinois, 40700000
50ms, illinois, 33300000
50ms, illinois, 23800000
50ms, illinois, 23700000
50ms, illinois, 35700000
50ms, illinois, 31300000
50ms, illinois, 26200000
50ms, cubic beta 0.85, 63900000
50ms, cubic beta 0.85, 63700000
50ms, cubic beta 0.85, 64300000
50ms, cubic beta 0.85, 64400000
50ms, cubic beta 0.85, 12800000
50ms, cubic beta 0.85, 63500000
50ms, cubic beta 0.85, 64100000
50ms, cubic beta 0.85, 64100000
50ms, cubic beta 0.85, 64300000
50ms, cubic beta 0.85, 64900000
150ms, cubic, 43700000
150ms, cubic, 39900000
150ms, cubic, 51300000
150ms, cubic, 52000000
150ms, cubic, 46400000
150ms, cubic, 52800000
150ms, cubic, 52800000
150ms, cubic, 46800000
150ms, cubic, 51300000
150ms, cubic, 22500000
150ms, illinois, 14100000
150ms, illinois, 15600000
150ms, illinois, 16000000
150ms, illinois, 13400000
150ms, illinois, 12700000
150ms, illinois, 15400000
150ms, illinois, 14500000
150ms, illinois, 15600000
150ms, illinois, 14600000
150ms, illinois, 13900000
150ms, cubic beta 0.85, 8560000
150ms, cubic beta 0.85, 8380000
150ms, cubic beta 0.85, 8370000
150ms, cubic beta 0.85, 8330000
150ms, cubic beta 0.85, 8520000
150ms, cubic beta 0.85, 8490000
150ms, cubic beta 0.85, 8410000
150ms, cubic beta 0.85, 8500000
150ms, cubic beta 0.85, 8340000
150ms, cubic beta 0.85, 8370000
150ms, cubic, 8640000
150ms, cubic, 8450000
150ms, cubic, 5830000
150ms, cubic, 47300000
150ms, cubic, 46600000
150ms, cubic, 46700000
150ms, cubic, 48000000
150ms, cubic, 44100000
150ms, cubic, 49200000
150ms, cubic, 51800000
150ms, cubic beta 0.85, 19800000
150ms, cubic beta 0.85, 38000000
150ms, cubic beta 0.85, 50900000
150ms, cubic beta 0.85, 55500000
150ms, cubic beta 0.85, 55500000
150ms, cubic beta 0.85, 52600000
150ms, cubic beta 0.85, 56300000
150ms, cubic beta 0.85, 55000000
150ms, cubic beta 0.85, 55500000
150ms, cubic beta 0.85, 56100000
50ms + 8 mbps, cubic, 7880
50ms + 8 mbps, cubic, 7780
50ms + 8 mbps, cubic, 7760
50ms + 8 mbps, cubic, 7760
50ms + 8 mbps, cubic, 7760
50ms + 8 mbps, cubic, 7340
50ms + 8 mbps, cubic, 7850
50ms + 8 mbps, cubic, 7840
50ms + 8 mbps, cubic, 7850
50ms + 8 mbps, cubic, 7840
50ms + 8 mbps, illinois, 8000
50ms + 8 mbps, illinois, 8000
50ms + 8 mbps, illinois, 7940
50ms + 8 mbps, illinois, 7940
50ms + 8 mbps, illinois, 7990
50ms + 8 mbps, illinois, 7800
50ms + 8 mbps, illinois, 7820
50ms + 8 mbps, illinois, 7820
50ms + 8 mbps, illinois, 7870
50ms + 8 mbps, illinois, 7820
50ms + 8 mbps, cubic beta 0.85, 5950
50ms + 8 mbps, cubic beta 0.85, 7960
50ms + 8 mbps, cubic beta 0.85, 7840
50ms + 8 mbps, cubic beta 0.85, 7780
50ms + 8 mbps, cubic beta 0.85, 7840
50ms + 8 mbps, cubic beta 0.85, 7810
50ms + 8 mbps, cubic beta 0.85, 7790
50ms + 8 mbps, cubic beta 0.85, 7800
50ms + 8 mbps, cubic beta 0.85, 7800
50ms + 8 mbps, cubic beta 0.85, 7690
150ms + 8 mbps, cubic, 7360
150ms + 8 mbps, cubic, 7390
150ms + 8 mbps, cubic, 7550
150ms + 8 mbps, cubic, 7620
150ms + 8 mbps, cubic, 7590
150ms + 8 mbps, illinois, 7580
150ms + 8 mbps, illinois, 7460
150ms + 8 mbps, illinois, 7590
150ms + 8 mbps, illinois, 7800
150ms + 8 mbps, illinois, 7750
150ms + 8 mbps, cubic, 4830
150ms + 8 mbps, cubic, 4710
150ms + 8 mbps, cubic, 4650
150ms + 8 mbps, cubic, 4750
150ms + 8 mbps, cubic, 4780
150ms + 8 mbps, cubic, 4830
150ms + 8 mbps, cubic, 4790
150ms + 8 mbps, cubic, 4620
150ms + 8 mbps, cubic, 3470
150ms + 8 mbps, illinois, 6150
150ms + 8 mbps, illinois, 6290
150ms + 8 mbps, illinois, 6160
150ms + 8 mbps, illinois, 6180
150ms + 8 mbps, illinois, 6170
150ms + 8 mbps, illinois, 6130
150ms + 8 mbps, illinois, 6200
150ms + 8 mbps, illinois, 4230
150ms + 8 mbps, illinois, 4330
150ms + 8 mbps, illinois, 4240
150ms + 8 mbps, cubic, 7220
150ms + 8 mbps, cubic, 7570
150ms + 8 mbps, cubic, 7630
150ms + 8 mbps, cubic, 7580
150ms + 8 mbps, cubic, 7630
150ms + 8 mbps, illinois, 7450
150ms + 8 mbps, illinois, 7960
150ms + 8 mbps, illinois, 7340
150ms + 8 mbps, illinois, 6700
150ms + 8 mbps, illinois, 6980
150ms + 8 mbps, cubic beta 0.85, 7530
150ms + 8 mbps, cubic beta 0.85, 7600
150ms + 8 mbps, cubic beta 0.85, 7600
150ms + 8 mbps, cubic beta 0.85, 7640
150ms + 8 mbps, cubic beta 0.85, 7580
150ms + 8 mbps, cubic beta 0.85, 7580
150ms + 8 mbps, cubic beta 0.85, 7600
150ms + 8 mbps, cubic beta 0.85, 7640
150ms + 8 mbps, cubic beta 0.85, 7550
150ms + 8 mbps, cubic beta 0.85, 7540
script for parsing the result:
import matplotlib as mpl
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
import os
mpl.rcParams['figure.figsize'] = (8, 15)
figpath = 'boxplot-tcpperf.png'
cols = 2
df = pd.read_csv('/Users/jianfu/Downloads/tcpvar.csv', sep='\s*,\s*')
cases = set(df.case.unique())
rows = ((len(cases) + cols - 1))/cols
fig, axes = plt.subplots(rows, cols)
row = 0
col = 0
for idx, casename in enumerate(cases):
df_case_fitler = df[df.case == casename]
ax = axes[row, col]
ax.set_title(casename)
ax.yaxis.get_major_formatter().set_scientific(False)
sns.boxplot(x=df_case_fitler['tcp'], y=df_case_fitler['bitrate (kbps)'], hue=df_case_fitler['tcp'], ax=ax)
col += 1
if col == 2:
col = 0
row += 1
plt.tight_layout()
plt.savefig(figpath)
os.system('open "%s"' % figpath)