diff options
| author | Kumar Damani <kumar.damani@mail.utoronto.ca> | 2018-11-23 23:44:18 +0000 |
|---|---|---|
| committer | Kumar Damani <kumar.damani@mail.utoronto.ca> | 2018-11-23 23:44:18 +0000 |
| commit | b23dbb35f1e66664ee06e8be14bea2571fcc6a45 (patch) | |
| tree | 1a05f05fdc9ae4e80f8e406699e00f426c11d77f /code/rtt | |
| parent | 8e5d09a1719045d2d8b39f089e06718df7b2960a (diff) | |
est code
Diffstat (limited to 'code/rtt')
| -rw-r--r-- | code/rtt/rttests.py | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/code/rtt/rttests.py b/code/rtt/rttests.py new file mode 100644 index 0000000..b1e25c4 --- /dev/null +++ b/code/rtt/rttests.py @@ -0,0 +1,61 @@ +import sys +import csv +import numpy + +numpak_r1_rtts_path = "../../data/rtt/numpak/r1.csv" +numpak_r1_estrtts_path = "../../data/rtt/numpak/r1est.csv" + +def readsamepleRTTs(datapath): + sampleRTT = [] + with open(datapath, mode='r') as csv_file: + csv_reader = csv.DictReader(csv_file) + for row in csv_reader: + # apply a sane filter + if (row['tcp.analysis.ack_rtt'] != ""): + sampleRTT.append( (int(row['frame.number']), float(row['tcp.analysis.ack_rtt'])) ) + csv_file.close() + return sampleRTT + +def writeestRTTs(datapath, samples, estimates): + with open(datapath, mode='w') as csv_file: + csv_writer = csv.writer(csv_file, delimiter=",") + for i, sample in enumerate(samples): + csv_writer.writerow([ sample[0], sample[1], estimates[i] ]) + csv_file.close() + return 0 + +def calcEST(samples): + ests = [] + K = 4 + G = 0.1 # =100 msec + alpha = 1/8.0 + beta = 1/4.0 + + # (2.1) of rtc6298 + RTO = 1.0 + counter = 1 + for sample in samples: + R = sample[1] + # (2.2) of rtc6298 + if counter == 1: + SRTT = R + RTTVAR = R / 2.0 + # (2.3) of rtc6298 + else: + RTTVAR = (1.0 - beta) * RTTVAR + beta * abs(SRTT - R) + SRTT = (1.0 - alpha) * SRTT + alpha * R + + RTO = SRTT + max(G, K * RTTVAR) + # (2.4) of rtc6298 + RTO = max(1.0, RTO) + ests.append(SRTT) + counter += 1 + return ests + +# get the csv data into array +numpak_r1_rtts = readsamepleRTTs(numpak_r1_rtts_path) +# calcuate estimates +numpak_r1_ets = calcEST(numpak_r1_rtts) +# write everything to csv +writeestRTTs(numpak_r1_estrtts_path, numpak_r1_rtts, numpak_r1_ets) +print("done") |
