From 09fa2afa6d16a0da37ce3f63fd660bc151ec3da5 Mon Sep 17 00:00:00 2001 From: Derek Wood Date: Fri, 26 Feb 2021 14:29:45 -0500 Subject: [PATCH] Updated log and summary with new changes --- Python/attacker.py | 1 + Python/filegenerator.py | 291 +++++++++++++++++++++++++++++----------- Python/main.py | 32 +++-- Python/router.py | 6 +- summaryHeader.txt | 38 +++--- 5 files changed, 259 insertions(+), 109 deletions(-) diff --git a/Python/attacker.py b/Python/attacker.py index c8b6a04..e46a2ed 100644 --- a/Python/attacker.py +++ b/Python/attacker.py @@ -119,6 +119,7 @@ class attacker: return npacket def receivePacket(self, packet): + self.packetsReceived += 1 if(packet.packetType == "PONG" and self.openPort is None): self.openPort = packet.srcPortNumber # print("One open port found: "+ str(self.openPort)) diff --git a/Python/filegenerator.py b/Python/filegenerator.py index b616996..7a6a393 100644 --- a/Python/filegenerator.py +++ b/Python/filegenerator.py @@ -66,12 +66,12 @@ class filegenerator: self.packetDictionary = dict() # keys are the packetIDs, values are lists which contain triples denoting the packetID, the time, and the status / location of the packet self.lengthLongestEntry = 0 # used to help create the log in a CSV format. Tracks the packet with the longest log entry to help create an appropriately sized CSV # the file itself isn't written until after the simulation runs, so we don't need to open the file - for x in [' Step', 'Packets Generated (Attacker)', + for x in [' Step', 'Packets Sent (Attacker)', 'Packets Received (Attacker)', 'Packets Dropped (Attacker)', 'Average Number of Packets Received per ms (Attacker)', 'Average Number of Packets Dropped per ms (Attacker)', - 'Packets Generated (Client)', 'Packets Sent (Client)', + 'Packets Sent (Client)', 'Packets Received (Client)', 'Packets Dropped (Client)', 'Average Number of Packets Received per ms (Client)', 'Average Number of Packets Dropped per ms (Client)', @@ -79,35 +79,71 @@ class filegenerator: 'Packets Dropped (Router)', 'Average Number of Packets Received per ms (Router)', 'Average Number of Packets Dropped per ms (Router)', - 'Packets Generated (Malicious Server)', - 'Packets Sent (Malicious Server)', 'Packets Received (Malicious Server)', - 'Packets Dropped (Malicious Server)', - 'Average Number of Packets Received per ms (Malicious Server)', - 'Average Number of Packets Dropped per ms (Malicious Server)', - 'Packets Generated (Normal Server)', 'Packets Sent (Normal Server)', + 'Packets Sent (Reflection Server)', 'Packets Received (Reflection Server)', + 'Packets Dropped (Reflection Server)', + 'Average Number of Packets Received per ms (Reflection Server)', + 'Average Number of Packets Dropped per ms (Reflection Server)', + 'Packets Sent (Normal Server)', 'Packets Received (Normal Server)', 'Packets Dropped (Normal Server)', 'Average Number of Packets Received per ms (Normal Server)', 'Average Number of Packets Dropped per ms (Normal Server)', - 'Packets Accepted (Connection: Attacker-Malicious Server)', - 'Packets Dropped (Connection: Attacker-Malicious Server)', - 'Packets Delivered (Connection: Attacker-Malicious Server)', - 'Average Number of Packets Received per ms (Connection: Attacker-Malicious Server)', - 'Average Number of Packets Dropped per ms (Connection: Attacker-Malicious Server)', - 'Packets Accepted (Connection: Malicious Server-Router)', - 'Packets Dropped (Connection: Malicious Server-Router)', - 'Packets Delivered (Connection: Malicious Server-Router)', - 'Average Number of Packets Received per ms (Connection: Malicious Server-Router)', - 'Average Number of Packets Dropped per ms (Connection: Malicious Server-Router)', + 'Packets Accepted (Connection: Attacker-Reflection Server)', + 'Packets Dropped (Connection: Attacker-Reflection Server)', + 'Packets Delivered (Connection: Attacker-Reflection Server)', + 'Average Number of Packets Received per ms (Connection: Attacker-Reflection Server)', + 'Average Number of Packets Dropped per ms (Connection: Attacker-Reflection Server)', + 'Packets Accepted (Connection: Router-Reflection Server)', + 'Packets Dropped (Connection: Router-Reflection Server)', + 'Packets Delivered (Connection: Router-Reflection Server)', + 'Average Number of Packets Received per ms (Connection: Router-Reflection Server)', + 'Average Number of Packets Dropped per ms (Connection: Router-Reflection Server)', + 'Packets Accepted (Connection: Reflection Server-Router)', + 'Packets Dropped (Connection: Reflection Server-Router)', + 'Packets Delivered (Connection: Reflection Server-Router)', + 'Average Number of Packets Received per ms (Connection: Reflection Server-Router)', + 'Average Number of Packets Dropped per ms (Connection: Reflection Server-Router)', + 'Packets Accepted (Connection: Router-Normal Server)', + 'Packets Dropped (Connection: Router-Normal Server)', + 'Packets Delivered (Connection: Router-Normal Server)', + 'Average Number of Packets Received per ms (Connection: Router-Normal Server)', + 'Average Number of Packets Dropped per ms (Connection: Router-Normal Server)', 'Packets Accepted (Connection: Normal Server-Router)', 'Packets Dropped (Connection: Normal Server-Router)', 'Packets Delivered (Connection: Normal Server-Router)', 'Average Number of Packets Received per ms (Connection: Normal Server-Router)', 'Average Number of Packets Dropped per ms (Connection: Normal Server-Router)', - 'Packets Accepted (Connection: Router-Client)', - 'Packets Dropped (Connection: Router-Client)', - 'Packets Delivered (Connection: Router-Client)', - 'Average Number of Packets Received per ms (Connection: Router-Client)', - 'Average Number of Packets Dropped per ms (Connection: Router-Client)']: # [:32] + 'Packets Accepted (Connection: Client-NAT)', + 'Packets Dropped (Connection: Client-NAT)', + 'Packets Delivered (Connection: Client-NAT)', + 'Average Number of Packets Received per ms (Connection: Client-NAT)', + 'Average Number of Packets Dropped per ms (Connection: Client-NAT)', + 'Packets Accepted (Connection: NAT-Client)', + 'Packets Dropped (Connection: NAT-Client)', + 'Packets Delivered (Connection: NAT-Client)', + 'Average Number of Packets Received per ms (Connection: NAT-Client)', + 'Average Number of Packets Dropped per ms (Connection: NAT-Client)', + 'Packets Accepted (Connection: Attacker-Router)', + 'Packets Dropped (Connection: Attacker-Router)', + 'Packets Delivered (Connection: Attacker-Router)', + 'Average Number of Packets Received per ms (Connection: Attacker-Router)', + 'Average Number of Packets Dropped per ms (Connection: Attacker-Router)', + 'Packets Accepted (Connection: Router-Attacker)', + 'Packets Dropped (Connection: Router-Attacker)', + 'Packets Delivered (Connection: Router-Attacker)', + 'Average Number of Packets Received per ms (Connection: Router-Attacker)', + 'Average Number of Packets Dropped per ms (Connection: Router-Attacker)', + 'Packets Accepted (Connection: NAT-Router)', + 'Packets Dropped (Connection: NAT-Router)', + 'Packets Delivered (Connection: NAT-Router)', + 'Average Number of Packets Received per ms (Connection: NAT-Router)', + 'Average Number of Packets Dropped per ms (Connection: NAT-Router)', + 'Packets Accepted (Connection: Router-NAT)', + 'Packets Dropped (Connection: Router-NAT)', + 'Packets Delivered (Connection: Router-NAT)', + 'Average Number of Packets Received per ms (Connection: Router-NAT)', + 'Average Number of Packets Dropped per ms (Connection: Router-NAT)', + 'Packets Sent (NAT)', 'Packets Received (NAT)','Packets Dropped (NAT)', + 'Average Number of Packets Received per ms (NAT)','Average Number of Packets Dropped per ms (NAT)']: # [:37] self.packetDictionary['S: ' + x] = [] def addToLog(self, packetID, status, @@ -127,22 +163,24 @@ class filegenerator: if (len(self.packetDictionary[packetID]) > self.lengthLongestEntry): # set the new length of the longest entry if needed self.lengthLongestEntry = len(self.packetDictionary[packetID]) - def addSummaryDataToLog(self, client, attacker, - MServer, NServer, router, - connectionClientRouter, - connectionRouterMServer, - connectionRouterNServer, - connectionAttackerMServer): + def addSummaryDataToLog(self, client, attacker, MServer, + NServer, router, NAT, + connectionClientNat, connectionNatClient, + connectionRouterMServer, connectionMServerRouter, + connectionRouterNServer, connectionNServerRouter, + connectionRouterNat, connectionNatRouter, + connectionAttackerMServer, + connectionAttackerRouter, connectionRouterAttacker): if(self.makeLog): self.packetDictionary['S: ' + ' Step'].append(self.curTime) - self.packetDictionary['S: ' + 'Packets Generated (Attacker)'].append(attacker.packetsGenerated) +# #self.packetDictionary['S: ' + 'Packets Generated (Attacker)'].append(attacker.packetsGenerated) self.packetDictionary['S: ' + 'Packets Sent (Attacker)'].append(attacker.packetsSent) self.packetDictionary['S: ' + 'Packets Received (Attacker)'].append(attacker.packetsReceived) self.packetDictionary['S: ' + 'Packets Dropped (Attacker)'].append(attacker.packetsDropped) self.packetDictionary['S: ' + 'Average Number of Packets Received per ms (Attacker)'].append(attacker.packetsReceived/self.curTime) self.packetDictionary['S: ' + 'Average Number of Packets Dropped per ms (Attacker)'].append(attacker.packetsDropped/self.curTime) - self.packetDictionary['S: ' + 'Packets Generated (Client)'].append(client.packetsGenerated) +# #self.packetDictionary['S: ' + 'Packets Generated (Client)'].append(client.packetsGenerated) self.packetDictionary['S: ' + 'Packets Sent (Client)'].append(client.packetsSent) self.packetDictionary['S: ' + 'Packets Received (Client)'].append(client.packetsReceived) self.packetDictionary['S: ' + 'Packets Dropped (Client)'].append(client.packetsDropped) @@ -154,45 +192,93 @@ class filegenerator: self.packetDictionary['S: ' + 'Packets Dropped (Router)'].append(router.packetsDropped) self.packetDictionary['S: ' + 'Average Number of Packets Received per ms (Router)'].append(router.packetsReceived/self.curTime) self.packetDictionary['S: ' + 'Average Number of Packets Dropped per ms (Router)'].append(router.packetsDropped/self.curTime) - - self.packetDictionary['S: ' + 'Packets Generated (Malicious Server)'].append(MServer.packetsGenerated) - self.packetDictionary['S: ' + 'Packets Sent (Malicious Server)'].append(MServer.packetsSent) - self.packetDictionary['S: ' + 'Packets Received (Malicious Server)'].append(MServer.packetsReceived) - self.packetDictionary['S: ' + 'Packets Dropped (Malicious Server)'].append(MServer.packetsDropped) - self.packetDictionary['S: ' + 'Average Number of Packets Received per ms (Malicious Server)'].append(MServer.packetsReceived/self.curTime) - self.packetDictionary['S: ' + 'Average Number of Packets Dropped per ms (Malicious Server)'].append(MServer.packetsDropped/self.curTime) - - self.packetDictionary['S: ' + 'Packets Generated (Normal Server)'].append(NServer.packetsGenerated) +# +# #self.packetDictionary['S: ' + 'Packets Generated (Reflection Server)'].append(MServer.packetsGenerated) + self.packetDictionary['S: ' + 'Packets Sent (Reflection Server)'].append(MServer.packetsSent) + self.packetDictionary['S: ' + 'Packets Received (Reflection Server)'].append(MServer.packetsReceived) + self.packetDictionary['S: ' + 'Packets Dropped (Reflection Server)'].append(MServer.packetsDropped) + self.packetDictionary['S: ' + 'Average Number of Packets Received per ms (Reflection Server)'].append(MServer.packetsReceived/self.curTime) + self.packetDictionary['S: ' + 'Average Number of Packets Dropped per ms (Reflection Server)'].append(MServer.packetsDropped/self.curTime) +# +# #self.packetDictionary['S: ' + 'Packets Generated (Normal Server)'].append(NServer.packetsGenerated) self.packetDictionary['S: ' + 'Packets Sent (Normal Server)'].append(NServer.packetsSent) self.packetDictionary['S: ' + 'Packets Received (Normal Server)'].append(NServer.packetsReceived) self.packetDictionary['S: ' + 'Packets Dropped (Normal Server)'].append(NServer.packetsDropped) self.packetDictionary['S: ' + 'Average Number of Packets Received per ms (Normal Server)'].append(NServer.packetsReceived/self.curTime) self.packetDictionary['S: ' + 'Average Number of Packets Dropped per ms (Normal Server)'].append(NServer.packetsDropped/self.curTime) - - self.packetDictionary['S: ' + 'Packets Accepted (Connection: Attacker-Malicious Server)'].append(connectionAttackerMServer.packetsAccepted) - self.packetDictionary['S: ' + 'Packets Dropped (Connection: Attacker-Malicious Server)'].append(connectionAttackerMServer.packetsDropped) - self.packetDictionary['S: ' + 'Packets Delivered (Connection: Attacker-Malicious Server)'].append(connectionAttackerMServer.packetsDelivered) - self.packetDictionary['S: ' + 'Average Number of Packets Received per ms (Connection: Attacker-Malicious Server)'].append(connectionAttackerMServer.packetsReceived/self.curTime) - self.packetDictionary['S: ' + 'Average Number of Packets Dropped per ms (Connection: Attacker-Malicious Server)'].append(connectionAttackerMServer.packetsDropped/self.curTime) - - self.packetDictionary['S: ' + 'Packets Accepted (Connection: Malicious Server-Router)'].append(connectionRouterMServer.packetsAccepted) - self.packetDictionary['S: ' + 'Packets Dropped (Connection: Malicious Server-Router)'].append(connectionRouterMServer.packetsDropped) - self.packetDictionary['S: ' + 'Packets Delivered (Connection: Malicious Server-Router)'].append(connectionRouterMServer.packetsDelivered) - self.packetDictionary['S: ' + 'Average Number of Packets Received per ms (Connection: Malicious Server-Router)'].append(connectionRouterMServer.packetsReceived/self.curTime) - self.packetDictionary['S: ' + 'Average Number of Packets Dropped per ms (Connection: Malicious Server-Router)'].append(connectionRouterMServer.packetsDropped/self.curTime) - - self.packetDictionary['S: ' + 'Packets Accepted (Connection: Normal Server-Router)'].append(connectionRouterNServer.packetsAccepted) - self.packetDictionary['S: ' + 'Packets Dropped (Connection: Normal Server-Router)'].append(connectionRouterNServer.packetsDropped) - self.packetDictionary['S: ' + 'Packets Delivered (Connection: Normal Server-Router)'].append(connectionRouterNServer.packetsDelivered) - self.packetDictionary['S: ' + 'Average Number of Packets Received per ms (Connection: Normal Server-Router)'].append(connectionRouterNServer.packetsReceived/self.curTime) - self.packetDictionary['S: ' + 'Average Number of Packets Dropped per ms (Connection: Normal Server-Router)'].append(connectionRouterNServer.packetsDropped/self.curTime) - - self.packetDictionary['S: ' + 'Packets Accepted (Connection: Router-Client)'].append(connectionClientRouter.packetsAccepted) - self.packetDictionary['S: ' + 'Packets Dropped (Connection: Router-Client)'].append(connectionClientRouter.packetsDropped) - self.packetDictionary['S: ' + 'Packets Delivered (Connection: Router-Client)'].append(connectionClientRouter.packetsDelivered) - self.packetDictionary['S: ' + 'Average Number of Packets Received per ms (Connection: Router-Client)'].append(connectionClientRouter.packetsReceived/self.curTime) - self.packetDictionary['S: ' + 'Average Number of Packets Dropped per ms (Connection: Router-Client)'].append(connectionClientRouter.packetsDropped/self.curTime) - +# + self.packetDictionary['S: ' + 'Packets Sent (NAT)'].append(NAT.packetsSent) + self.packetDictionary['S: ' + 'Packets Received (NAT)'].append(NAT.packetsReceived) + self.packetDictionary['S: ' + 'Packets Dropped (NAT)'].append(NAT.packetsDropped) + self.packetDictionary['S: ' + 'Average Number of Packets Received per ms (NAT)'].append(NAT.packetsReceived/self.curTime) + self.packetDictionary['S: ' + 'Average Number of Packets Dropped per ms (NAT)'].append(NAT.packetsDropped/self.curTime) +# + self.packetDictionary['S: ' + 'Packets Accepted (Connection: Attacker-Reflection Server)'].append(connectionAttackerMServer.packetsAccepted) + self.packetDictionary['S: ' + 'Packets Dropped (Connection: Attacker-Reflection Server)'].append(connectionAttackerMServer.packetsDropped) + self.packetDictionary['S: ' + 'Packets Delivered (Connection: Attacker-Reflection Server)'].append(connectionAttackerMServer.packetsDelivered) + self.packetDictionary['S: ' + 'Average Number of Packets Received per ms (Connection: Attacker-Reflection Server)'].append(connectionAttackerMServer.packetsReceived/self.curTime) + self.packetDictionary['S: ' + 'Average Number of Packets Dropped per ms (Connection: Attacker-Reflection Server)'].append(connectionAttackerMServer.packetsDropped/self.curTime) +# + self.packetDictionary['S: ' + 'Packets Accepted (Connection: Router-Reflection Server)'].append(connectionRouterMServer.packetsAccepted) + self.packetDictionary['S: ' + 'Packets Dropped (Connection: Router-Reflection Server)'].append(connectionRouterMServer.packetsDropped) + self.packetDictionary['S: ' + 'Packets Delivered (Connection: Router-Reflection Server)'].append(connectionRouterMServer.packetsDelivered) + self.packetDictionary['S: ' + 'Average Number of Packets Received per ms (Connection: Router-Reflection Server)'].append(connectionRouterMServer.packetsReceived/self.curTime) + self.packetDictionary['S: ' + 'Average Number of Packets Dropped per ms (Connection: Router-Reflection Server)'].append(connectionRouterMServer.packetsDropped/self.curTime) +# + self.packetDictionary['S: ' + 'Packets Accepted (Connection: Reflection Server-Router)'].append(connectionMServerRouter.packetsAccepted) + self.packetDictionary['S: ' + 'Packets Dropped (Connection: Reflection Server-Router)'].append(connectionMServerRouter.packetsDropped) + self.packetDictionary['S: ' + 'Packets Delivered (Connection: Reflection Server-Router)'].append(connectionMServerRouter.packetsDelivered) + self.packetDictionary['S: ' + 'Average Number of Packets Received per ms (Connection: Reflection Server-Router)'].append(connectionMServerRouter.packetsReceived/self.curTime) + self.packetDictionary['S: ' + 'Average Number of Packets Dropped per ms (Connection: Reflection Server-Router)'].append(connectionMServerRouter.packetsDropped/self.curTime) +# + self.packetDictionary['S: ' + 'Packets Accepted (Connection: Router-Normal Server)'].append(connectionRouterNServer.packetsAccepted) + self.packetDictionary['S: ' + 'Packets Dropped (Connection: Router-Normal Server)'].append(connectionRouterNServer.packetsDropped) + self.packetDictionary['S: ' + 'Packets Delivered (Connection: Router-Normal Server)'].append(connectionRouterNServer.packetsDelivered) + self.packetDictionary['S: ' + 'Average Number of Packets Received per ms (Connection: Router-Normal Server)'].append(connectionRouterNServer.packetsReceived/self.curTime) + self.packetDictionary['S: ' + 'Average Number of Packets Dropped per ms (Connection: Router-Normal Server)'].append(connectionRouterNServer.packetsDropped/self.curTime) +# + self.packetDictionary['S: ' + 'Packets Accepted (Connection: Normal Server-Router)'].append(connectionNServerRouter.packetsAccepted) + self.packetDictionary['S: ' + 'Packets Dropped (Connection: Normal Server-Router)'].append(connectionNServerRouter.packetsDropped) + self.packetDictionary['S: ' + 'Packets Delivered (Connection: Normal Server-Router)'].append(connectionNServerRouter.packetsDelivered) + self.packetDictionary['S: ' + 'Average Number of Packets Received per ms (Connection: Normal Server-Router)'].append(connectionNServerRouter.packetsReceived/self.curTime) + self.packetDictionary['S: ' + 'Average Number of Packets Dropped per ms (Connection: Normal Server-Router)'].append(connectionNServerRouter.packetsDropped/self.curTime) +# + self.packetDictionary['S: ' + 'Packets Accepted (Connection: Client-NAT)'].append(connectionClientNat.packetsAccepted) + self.packetDictionary['S: ' + 'Packets Dropped (Connection: Client-NAT)'].append(connectionClientNat.packetsDropped) + self.packetDictionary['S: ' + 'Packets Delivered (Connection: Client-NAT)'].append(connectionClientNat.packetsDelivered) + self.packetDictionary['S: ' + 'Average Number of Packets Received per ms (Connection: Client-NAT)'].append(connectionClientNat.packetsReceived/self.curTime) + self.packetDictionary['S: ' + 'Average Number of Packets Dropped per ms (Connection: Client-NAT)'].append(connectionClientNat.packetsDropped/self.curTime) +# + self.packetDictionary['S: ' + 'Packets Accepted (Connection: NAT-Client)'].append(connectionNatClient.packetsAccepted) + self.packetDictionary['S: ' + 'Packets Dropped (Connection: NAT-Client)'].append(connectionNatClient.packetsDropped) + self.packetDictionary['S: ' + 'Packets Delivered (Connection: NAT-Client)'].append(connectionNatClient.packetsDelivered) + self.packetDictionary['S: ' + 'Average Number of Packets Received per ms (Connection: NAT-Client)'].append(connectionNatClient.packetsReceived/self.curTime) + self.packetDictionary['S: ' + 'Average Number of Packets Dropped per ms (Connection: NAT-Client)'].append(connectionNatClient.packetsDropped/self.curTime) +# + self.packetDictionary['S: ' + 'Packets Accepted (Connection: Attacker-Router)'].append(connectionAttackerRouter.packetsAccepted) + self.packetDictionary['S: ' + 'Packets Dropped (Connection: Attacker-Router)'].append(connectionAttackerRouter.packetsDropped) + self.packetDictionary['S: ' + 'Packets Delivered (Connection: Attacker-Router)'].append(connectionAttackerRouter.packetsDelivered) + self.packetDictionary['S: ' + 'Average Number of Packets Received per ms (Connection: Attacker-Router)'].append(connectionAttackerRouter.packetsReceived/self.curTime) + self.packetDictionary['S: ' + 'Average Number of Packets Dropped per ms (Connection: Attacker-Router)'].append(connectionAttackerRouter.packetsDropped/self.curTime) +# + self.packetDictionary['S: ' + 'Packets Accepted (Connection: Router-Attacker)'].append(connectionRouterAttacker.packetsAccepted) + self.packetDictionary['S: ' + 'Packets Dropped (Connection: Router-Attacker)'].append(connectionRouterAttacker.packetsDropped) + self.packetDictionary['S: ' + 'Packets Delivered (Connection: Router-Attacker)'].append(connectionRouterAttacker.packetsDelivered) + self.packetDictionary['S: ' + 'Average Number of Packets Received per ms (Connection: Router-Attacker)'].append(connectionRouterAttacker.packetsReceived/self.curTime) + self.packetDictionary['S: ' + 'Average Number of Packets Dropped per ms (Connection: Router-Attacker)'].append(connectionRouterAttacker.packetsDropped/self.curTime) +# + self.packetDictionary['S: ' + 'Packets Accepted (Connection: NAT-Router)'].append(connectionNatRouter.packetsAccepted) + self.packetDictionary['S: ' + 'Packets Dropped (Connection: NAT-Router)'].append(connectionNatRouter.packetsDropped) + self.packetDictionary['S: ' + 'Packets Delivered (Connection: NAT-Router)'].append(connectionNatRouter.packetsDelivered) + self.packetDictionary['S: ' + 'Average Number of Packets Received per ms (Connection: NAT-Router)'].append(connectionNatRouter.packetsReceived/self.curTime) + self.packetDictionary['S: ' + 'Average Number of Packets Dropped per ms (Connection: NAT-Router)'].append(connectionNatRouter.packetsDropped/self.curTime) +# + self.packetDictionary['S: ' + 'Packets Accepted (Connection: Router-NAT)'].append(connectionRouterNat.packetsAccepted) + self.packetDictionary['S: ' + 'Packets Dropped (Connection: Router-NAT)'].append(connectionRouterNat.packetsDropped) + self.packetDictionary['S: ' + 'Packets Delivered (Connection: Router-NAT)'].append(connectionRouterNat.packetsDelivered) + self.packetDictionary['S: ' + 'Average Number of Packets Received per ms (Connection: Router-NAT)'].append(connectionRouterNat.packetsReceived/self.curTime) + self.packetDictionary['S: ' + 'Average Number of Packets Dropped per ms (Connection: Router-NAT)'].append(connectionRouterNat.packetsDropped/self.curTime) +# if (len(self.packetDictionary['S: ' + ' Step']) > self.lengthLongestEntry): self.lengthLongestEntry = len(self.packetDictionary["S: " + ' Step']) @@ -241,12 +327,14 @@ class filegenerator: instruction = ['data', entity] self.tempInstructions.append(instruction) - def updateSummary(self, client, attacker, - MServer, NServer, router, - connectionClientRouter, - connectionRouterMServer, - connectionRouterNServer, - connectionAttackerMServer): + def updateSummary(self, client, attacker, MServer, + NServer, router, NAT, + connectionClientNat, connectionNatClient, + connectionRouterMServer, connectionMServerRouter, + connectionRouterNServer, connectionNServerRouter, + connectionRouterNat, connectionNatRouter, + connectionAttackerMServer, + connectionAttackerRouter, connectionRouterAttacker): flag = False if(self.makeSummary and flag is False): self.summaryFile.write(str(self.curTime) + ',' @@ -273,26 +361,77 @@ class filegenerator: + ',' + str(NServer.packetsDropped) + ',' + str(NServer.packetsReceived/self.curTime) + ',' + str(NServer.packetsDropped/self.curTime) + + ',' + str(NAT.packetsSent) + + ',' + str(NAT.packetsReceived) + + ',' + str(NAT.packetsDropped) + + ',' + str(NAT.packetsReceived/self.curTime) + + ',' + str(NAT.packetsDropped/self.curTime) + + ',' + str(connectionAttackerMServer.packetsAccepted) + ',' + str(connectionAttackerMServer.packetsDropped) + ',' + str(connectionAttackerMServer.packetsDelivered) + ',' + str(connectionAttackerMServer.packetsReceived/self.curTime) + ',' + str(connectionAttackerMServer.packetsDropped/self.curTime) + + ',' + str(connectionRouterMServer.packetsAccepted) + ',' + str(connectionRouterMServer.packetsDropped) + ',' + str(connectionRouterMServer.packetsDelivered) + ',' + str(connectionRouterMServer.packetsReceived/self.curTime) + ',' + str(connectionRouterMServer.packetsDropped/self.curTime) + + + ',' + str(connectionMServerRouter.packetsAccepted) + + ',' + str(connectionMServerRouter.packetsDropped) + + ',' + str(connectionMServerRouter.packetsDelivered) + + ',' + str(connectionMServerRouter.packetsReceived/self.curTime) + + ',' + str(connectionMServerRouter.packetsDropped/self.curTime) + + ',' + str(connectionRouterNServer.packetsAccepted) + ',' + str(connectionRouterNServer.packetsDropped) + ',' + str(connectionRouterNServer.packetsDelivered) + ',' + str(connectionRouterNServer.packetsReceived/self.curTime) + ',' + str(connectionRouterNServer.packetsDropped/self.curTime) - + ',' + str(connectionClientRouter.packetsAccepted) - + ',' + str(connectionClientRouter.packetsDropped) - + ',' + str(connectionClientRouter.packetsDelivered) - + ',' + str(connectionClientRouter.packetsReceived/self.curTime) - + ',' + str(connectionClientRouter.packetsDropped/self.curTime) + + + ',' + str(connectionNServerRouter.packetsAccepted) + + ',' + str(connectionNServerRouter.packetsDropped) + + ',' + str(connectionNServerRouter.packetsDelivered) + + ',' + str(connectionNServerRouter.packetsReceived/self.curTime) + + ',' + str(connectionNServerRouter.packetsDropped/self.curTime) + + + ',' + str(connectionClientNat.packetsAccepted) + + ',' + str(connectionClientNat.packetsDropped) + + ',' + str(connectionClientNat.packetsDelivered) + + ',' + str(connectionClientNat.packetsReceived/self.curTime) + + ',' + str(connectionClientNat.packetsDropped/self.curTime) + + + ',' + str(connectionNatClient.packetsAccepted) + + ',' + str(connectionNatClient.packetsDropped) + + ',' + str(connectionNatClient.packetsDelivered) + + ',' + str(connectionNatClient.packetsReceived/self.curTime) + + ',' + str(connectionNatClient.packetsDropped/self.curTime) + + + ',' + str(connectionAttackerRouter.packetsAccepted) + + ',' + str(connectionAttackerRouter.packetsDropped) + + ',' + str(connectionAttackerRouter.packetsDelivered) + + ',' + str(connectionAttackerRouter.packetsReceived/self.curTime) + + ',' + str(connectionAttackerRouter.packetsDropped/self.curTime) + + + ',' + str(connectionRouterAttacker.packetsAccepted) + + ',' + str(connectionRouterAttacker.packetsDropped) + + ',' + str(connectionRouterAttacker.packetsDelivered) + + ',' + str(connectionRouterAttacker.packetsReceived/self.curTime) + + ',' + str(connectionRouterAttacker.packetsDropped/self.curTime) + + + ',' + str(connectionNatRouter.packetsAccepted) + + ',' + str(connectionNatRouter.packetsDropped) + + ',' + str(connectionNatRouter.packetsDelivered) + + ',' + str(connectionNatRouter.packetsReceived/self.curTime) + + ',' + str(connectionNatRouter.packetsDropped/self.curTime) + + + ',' + str(connectionRouterNat.packetsAccepted) + + ',' + str(connectionRouterNat.packetsDropped) + + ',' + str(connectionRouterNat.packetsDelivered) + + ',' + str(connectionRouterNat.packetsReceived/self.curTime) + + ',' + str(connectionRouterNat.packetsDropped/self.curTime) + ',' + ' ' + ',' + ' ' + ',' + ' ' + ',' + ' ' + ',' + ' ' + ',' + '\n') elif (self.makeSummary and flag is True): print(".") diff --git a/Python/main.py b/Python/main.py index 762773e..cef63ca 100644 --- a/Python/main.py +++ b/Python/main.py @@ -39,7 +39,7 @@ def runSimulation(dddState, skipsim, sumOut, MaxQueueSize, DDDMappingDelay, PropDelay, NumbDDDPortsOpen, bandwidths, timeUntilNextDDDChange, overlapTime, - numbSynAckResends, attackerType, + numbSynAckResends, attackerType, amplification, sessionGuid) debug_mode = False @@ -191,7 +191,7 @@ def runSimulation(dddState, skipsim, sumOut, simNat.updateTime() # Addition for nat #connectionClientRouter.updateTime() - connectionRouterMServer.updateTime() + connectionRouterMServer.updateTime() connectionRouterNServer.updateTime() connectionNatClient.updateTime() # Addition for nat connectionClientNat.updateTime() # Addition for nat @@ -204,7 +204,7 @@ def runSimulation(dddState, skipsim, sumOut, connectionAttackerRouter.updateTime() connectionRouterAttacker.updateTime() - + # Five lists for the animateData function(one per each device). animationDataClient = ['0'] * 7 animationDataMServer = ['0'] * 7 @@ -256,15 +256,23 @@ def runSimulation(dddState, skipsim, sumOut, #fileGen.animateData(animationDataClient, animationDataMServer, # animationDataNServer, animationDataRouter, # animationDataAttacker) - #fileGen.updateTime() - #fileGen.updateSummary(simClient, simAttacker, simMServer, - # simNServer, simRouter, connectionClientRouter, - # connectionRouterMServer, connectionRouterNServer, - # connectionAttackerMServer) - #fileGen.addSummaryDataToLog(simClient, simAttacker, simMServer, - # simNServer, simRouter, connectionClientRouter, - # connectionRouterMServer, connectionRouterNServer, - # connectionAttackerMServer) + fileGen.updateTime() + fileGen.updateSummary(simClient, simAttacker, simMServer, + simNServer, simRouter, simNat, + connectionClientNat, connectionNatClient, + connectionRouterMServer, connectionMServerRouter, + connectionRouterNServer, connectionNServerRouter, + connectionRouterNat, connectionNatRouter, + connectionAttackerMServer, + connectionAttackerRouter, connectionRouterAttacker) + fileGen.addSummaryDataToLog(simClient, simAttacker, simMServer, + simNServer, simRouter, simNat, + connectionClientNat, connectionNatClient, + connectionRouterMServer, connectionMServerRouter, + connectionRouterNServer, connectionNServerRouter, + connectionRouterNat, connectionNatRouter, + connectionAttackerMServer, + connectionAttackerRouter, connectionRouterAttacker) if debug_mode: print(i) diff --git a/Python/router.py b/Python/router.py index d603d7c..6486ccb 100644 --- a/Python/router.py +++ b/Python/router.py @@ -58,6 +58,7 @@ class router: self.fileGen = fileGen # File management object # These counters are used for logging purposes + self.packetsGenerated = 0 self.packetsSent = 0 self.packetsReceived = 0 self.packetsDropped = 0 @@ -143,10 +144,11 @@ class router: allow = True if(packetT.packetType == "PING" and allow is True): # print("Packet is a PING and found an open port: " + str(packetT.dstPortNumber)) + self.packetsGenerated += 1 npacket = packet.packet(self.ipAddress, packetT.dstPortNumber, packetT.srcIP, packetT.srcPortNumber, "PONG", random.randint(0, 10000), - 0, "R-0", self.packetSize, + 0, "R-" + str(self.packetsGenerated), self.packetSize, self.ipAddress) self.fileGen.addToLog(npacket.packetID, "Generated at Router", npacket.sequenceNumber, npacket.ackNumber, @@ -158,7 +160,7 @@ class router: npacket = packet.packet(self.ipAddress, packetT.dstPortNumber, packetT.srcIP, packetT.srcPortNumber, "PONG-RST", random.randint(0, 10000), - 0, "R-0", self.packetSize, self.ipAddress) + 0, "R-" + str(self.packetsGenerated), self.packetSize, self.ipAddress) self.fileGen.addToLog(npacket.packetID, "Generated at Router", npacket.sequenceNumber, npacket.ackNumber, npacket.packetType, self.curTime) diff --git a/summaryHeader.txt b/summaryHeader.txt index 7499f89..2764d24 100644 --- a/summaryHeader.txt +++ b/summaryHeader.txt @@ -1,19 +1,19 @@ -Version 2.5,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -Date:,$DATE,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -Abhinna,Adhikari,,Attacker:,$AI,,Bandwidths,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -Jesse,Boog,,Attack:,$APOFLD,,,Client,to,Router,,$BWCR,MB/s,,,Packet,Size,$PACS,MB,DDD,,State,$DDDS,,,,,,,,,,,,,,,,,,,,,,, -Nathan,Nguyen,,,,,,Router,to,Client,,$BWRC,MB/s,,Resend,SYN-ACK,Interval,$RSAI,s,DDD,Mapping,Delay,$DDDMD,s,,,,,,,,,,,,,,,,,,,,,, -Yaotian,Tang,,,,,,Router,to,Reflection,Server,$BWRMS,MB/s,,Number,SYN-ACK,Resends,$NSAR,,DDD,Ports,Open,$DDDPO,,,,,,,,,,,,,,,,,,,,,,, -Derek,Wood,,,,,,Router,to,Normal ,Server,$BWRNS,MB/s,,,,,,,DDD,Change,Interval,$DDDCI,s,,,,,,,,,,,,,,,,,,,,,, -Senior,Design,,,,,Normal,Server,to,Router,,$BWNSR,MB/s,,,,,,,DDD,Old Port,Overlap,$DDDOO,s,,,,,,,,,,,,,,,,,,,,,, -2020,2021,,,,,Reflection,Server,to,Router,,$BWMSR,MB/s,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -,,,,,,,Attacker,to,Reflection,Server,$BWAMS,MB/s,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -,,,,,,,Half-Open,Connections,Max Queue,Size,$HOCMQ,MB,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -,,,,,,,,Propagation,,Delay,$PROPD,s,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -DATA:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -,Attacker,,,,,Client,,,,,Router,,,,,Reflection Server,,,,,Normal Server,,,,,Connection,Attacker,Reflection,Server,,Connection,Reflection,Server,Router,,Connection,Normal,Server,Router,,Connection,Router,Client,, -,Packets,Packets,Packets,Avg. Packets,Avg. Packets,Packets,Packets,Packets,Avg. Packets,Avg. Packets,Packets,Packets,Packets,Avg. Packets,Avg. Packets,Packets,Packets,Packets,Avg. Packets,Avg. Packets,Packets,Packets,Packets,Avg. Packets,Avg. Packets,Packets ,Packets,Packets,Avg. Packets,Avg. Packets,Packets ,Packets,Packets,Avg. Packets,Avg. Packets,Packets ,Packets,Packets,Avg. Packets,Avg. Packets,Packets ,Packets,Packets,Avg. Packets,Avg. Packets -Time,Sent,Received,Dropped,Dropped per ms,Received per ms,Sent,Received,Dropped,Dropped per ms,Received per ms,Sent,Received,Dropped,Dropped per ms,Received per ms,Sent,Received,Dropped,Dropped per ms,Received per ms,Sent,Received,Dropped,Dropped per ms,Received per ms,Accepted,Dropped,Delivered,Received,Dropped,Accepted,Dropped,Delivered,Received,Dropped,Accepted,Dropped,Delivered,Received,Dropped,Accepted,Dropped,Delivered,Received,Dropped +Version 2.5,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +Date:,$DATE,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +Abhinna,Adhikari,,Attacker:,$AI,,Bandwidths,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +Jesse,Boog,,Attack:,$APOFLD,,,Client,to,Router,,$BWCR,MB/s,,,Packet,Size,$PACS,MB,DDD,,State,$DDDS,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +Nathan,Nguyen,,,,,,Router,to,Client,,$BWRC,MB/s,,Resend,SYN-ACK,Interval,$RSAI,s,DDD,Mapping,Delay,$DDDMD,s,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +Yaotian,Tang,,,,,,Router,to,Reflection,Server,$BWRMS,MB/s,,Number,SYN-ACK,Resends,$NSAR,,DDD,Ports,Open,$DDDPO,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +Derek,Wood,,,,,,Router,to,Normal ,Server,$BWRNS,MB/s,,,,,,,DDD,Change,Interval,$DDDCI,s,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +Senior,Design,,,,,Normal,Server,to,Router,,$BWNSR,MB/s,,,,,,,DDD,Old Port,Overlap,$DDDOO,s,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +2020,2021,,,,,Reflection,Server,to,Router,,$BWMSR,MB/s,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,Attacker,to,Reflection,Server,$BWAMS,MB/s,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,Half-Open,Connections,Max Queue,Size,$HOCMQ,MB,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,Propagation,,Delay,$PROPD,s,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +DATA:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,Attacker,,,,,Client,,,,,Router,,,,,Reflection Server,,,,,Normal Server,,,,,NAT,,,,,Connection,Attacker,Reflection,Server,,Connection,Router,Reflection,Server,,Connection,Reflection,Server,Router,,Connection,Router,Normal,Server,,Connection,Normal,Server,Router,,Connection,Client,Nat,,,Connection,Nat,Client,,,Connection,Attacker,Router,,,Connection,Router,Attacker,,,Connection,Nat,Router,,,Connection,Router,Nat,, +,Packets,Packets,Packets,Avg. Packets,Avg. Packets,Packets,Packets,Packets,Avg. Packets,Avg. Packets,Packets,Packets,Packets,Avg. Packets,Avg. Packets,Packets,Packets,Packets,Avg. Packets,Avg. Packets,Packets,Packets,Packets,Avg. Packets,Avg. Packets,Packets,Packets,Packets,Avg. Packets,Avg. Packets,Packets ,Packets,Packets,Avg. Packets,Avg. Packets,Packets ,Packets,Packets,Avg. Packets,Avg. Packets,Packets ,Packets,Packets,Avg. Packets,Avg. Packets,Packets ,Packets,Packets,Avg. Packets,Avg. Packets,Packets ,Packets,Packets,Avg. Packets,Avg. Packets,Packets ,Packets,Packets,Avg. Packets,Avg. Packets,Packets ,Packets,Packets,Avg. Packets,Avg. Packets,Packets ,Packets,Packets,Avg. Packets,Avg. Packets,Packets ,Packets,Packets,Avg. Packets,Avg. Packets,Packets ,Packets,Packets,Avg. Packets,Avg. Packets,Packets ,Packets,Packets,Avg. Packets,Avg. Packets +Time,Sent,Received,Dropped,Dropped per ms,Received per ms,Sent,Received,Dropped,Dropped per ms,Received per ms,Sent,Received,Dropped,Dropped per ms,Received per ms,Sent,Received,Dropped,Dropped per ms,Received per ms,Sent,Received,Dropped,Dropped per ms,Received per ms,Sent,Received,Dropped,Dropped per ms,Received per ms,Accepted,Dropped,Delivered,Received,Dropped,Accepted,Dropped,Delivered,Received,Dropped,Accepted,Dropped,Delivered,Received,Dropped,Accepted,Dropped,Delivered,Received,Dropped,Accepted,Dropped,Delivered,Received,Dropped,Accepted,Dropped,Delivered,Received,Dropped,Accepted,Dropped,Delivered,Received,Dropped,Accepted,Dropped,Delivered,Received,Dropped,Accepted,Dropped,Delivered,Received,Dropped,Accepted,Dropped,Delivered,Received,Dropped,Accepted,Dropped,Delivered,Received,Dropped