From 3d310c7630d241688172f915151cee58646ff399 Mon Sep 17 00:00:00 2001 From: Arthur Pavlov Date: Thu, 22 Nov 2018 12:38:41 -0500 Subject: inter arrival time data --- code/perflow/parser.py | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 code/perflow/parser.py (limited to 'code/perflow') diff --git a/code/perflow/parser.py b/code/perflow/parser.py new file mode 100644 index 0000000..dae0efe --- /dev/null +++ b/code/perflow/parser.py @@ -0,0 +1,83 @@ +import csv + +flowsAll = [] + +with open('tcpdata.csv', mode='r') as csv_file: + csv_reader = csv.DictReader(csv_file) + for row in csv_reader: + flowsAll.append(float(row["Duration"]) / float(row["Packets"])) + +with open('udpdata.csv', mode='r') as csv_file: + csv_reader = csv.DictReader(csv_file) + for row in csv_reader: + flowsAll.append(float(row["Duration"]) / float(row["Packets"])) + + +with open('all_arrivel_time.csv', mode='w', newline='') as allArrival: + fieldnames = ['time'] + writer = csv.DictWriter(allArrival, fieldnames=fieldnames) + writer.writeheader() + for flow in flowsAll: + writer.writerow({'time': flow}) + +with open('packetdata.csv', mode='r') as csv_file: + csv_reader = csv.DictReader(csv_file) + flowsTCP = [] + flowsUDP = [] + for row in csv_reader: + if row["Protocol"] == 'TCP': + tcpFlowExists = False + src = row["Source"] + dest = row["Destination"] + timeElapsed = float(row["Time delta from previous captured frame"]) + srcPort = row["Info"].split(' > ')[0].split(' ')[0] + destPort = row["Info"].split(' > ')[1].split(' ')[1] + for flow in flowsTCP: + if src in flow and dest in flow and srcPort in flow and destPort in flow: + tcpFlowExists = True + flow[4] += timeElapsed + flow[5] += 1 + break + if not tcpFlowExists: + flowsTCP.append([src, dest, srcPort, destPort, timeElapsed, 1]) + if row["Protocol"] == 'UDP': + udpFlowExists = False + src = row["Source"] + dest = row["Destination"] + timeElapsed = float(row["Time delta from previous captured frame"]) + srcPort = row["Info"].split(' > ')[0].split(' ')[0] + destPort = row["Info"].split(' > ')[1].split(' ')[1] + for flow in flowsUDP: + if src in flow and dest in flow and srcPort in flow and destPort in flow: + udpFlowExists = True + flow[4] += timeElapsed + flow[5] += 1 + break + if not udpFlowExists: + flowsUDP.append([src, dest, srcPort, destPort, timeElapsed, 1]) + + flowsTCPTimeAverages = [] + flowsUDPTimeAverages = [] + + for flow in flowsTCP: + flowsTCPTimeAverages.append(flow[4] / flow[5]) + for flow in flowsUDP: + flowsUDPTimeAverages.append(flow[4] / flow[5]) + + + with open('tcp_arrivel_time.csv', mode='w', newline='') as tcpArrival: + fieldnames = ['time'] + writer = csv.DictWriter(tcpArrival, fieldnames=fieldnames) + writer.writeheader() + for flow in flowsTCPTimeAverages: + writer.writerow({'time': flow}) + + with open('udp_arrivel_time.csv', mode='w', newline='') as udpArrival: + fieldnames = ['time'] + writer = csv.DictWriter(udpArrival, fieldnames=fieldnames) + writer.writeheader() + for flow in flowsUDPTimeAverages: + writer.writerow({'time': flow}) + + print(len(flowsTCPTimeAverages)) + print(len(flowsUDPTimeAverages)) -- cgit v1.2.3