summaryrefslogtreecommitdiff
path: root/code/perflow
diff options
context:
space:
mode:
Diffstat (limited to 'code/perflow')
-rw-r--r--code/perflow/parser.py83
1 files changed, 83 insertions, 0 deletions
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))