Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Added Nat Functionality
  • Loading branch information
jeb16157 committed Feb 24, 2021
1 parent 77794df commit b828205
Showing 1 changed file with 81 additions and 39 deletions.
120 changes: 81 additions & 39 deletions Python/main.py
Expand Up @@ -8,6 +8,7 @@ from . import dddController
from . import dddPortMapping
from . import router
from . import filegenerator
from . import nat

# skipsim and ouputFile aren't being used right now
# Replaced outputFile with sumOut, logOut booleans.
Expand Down Expand Up @@ -43,11 +44,24 @@ def runSimulation(dddState, skipsim, sumOut,

debug_mode = False

connectionClientRouter = connectionObject.connectionObject(clienttoRouter,
PropDelay, None,
"1.0.0.0", None,
"2.0.0.0", fileGen,
"C-R")
#connectionClientRouter = connectionObject.connectionObject(clienttoRouter,
# PropDelay, None,
# "1.0.0.0", None,
# "2.0.0.0", fileGen,
# "C-R")

connectionClientNat = connectionObject.connectionObject(clienttoRouter, PropDelay,
None, "1.0.0.0", None,
"10.0.0.0", fileGen, "C-T") # Addition for Nat
connectionNatClient = connectionObject.connectionObject(routertoClient, PropDelay,
None, "10.0.0.0", None,
"1.0.0.0", fileGen, "T-C") # Addition for Nat
connectionRouterNat = connectionObject.connectionObject(routertoClient, PropDelay,
None, "2.0.0.0", None,
"10.0.0.0", fileGen, "R-T") # Addition for Nat
connectionNatRouter = connectionObject.connectionObject(clienttoRouter, PropDelay, None,
"10.0.0.0", None, "2.0.0.0",
fileGen, "T-R") # Addition for Nat
connectionRouterMServer = connectionObject.connectionObject(routertoReflector,
PropDelay, None,
"2.0.0.0", None,
Expand All @@ -58,11 +72,11 @@ def runSimulation(dddState, skipsim, sumOut,
"2.0.0.0", None,
"4.0.0.0", fileGen,
"R-N")
connectionRouterClient = connectionObject.connectionObject(routertoClient,
PropDelay, None,
"2.0.0.0", None,
"1.0.0.0", fileGen,
"R-C")
#connectionRouterClient = connectionObject.connectionObject(routertoClient,
# PropDelay, None,
# "2.0.0.0", None,
# "1.0.0.0", fileGen,
# "R-C")
connectionMServerRouter = connectionObject.connectionObject(reflectortoRouter,
PropDelay, None,
"3.0.0.0", None,
Expand All @@ -89,15 +103,15 @@ def runSimulation(dddState, skipsim, sumOut,
"5.0.0.0", fileGen,
"R-A")

simClient = client.client(connectionClientRouter, "1.0.0.0",
simClient = client.client(connectionClientNat, "1.0.0.0",
"4.0.0.0", "3.0.0.0", "5.0.0.0", 2,
fileGen, packetSize, NumbDDDPortsOpen,
queueLimit, clienttoRouter, "C-")
simDddController = dddController.dddController(timeUntilNextDDDChange,
overlapTime, NumbDDDPortsOpen,
fileGen)
simRouter = router.router(1000, dddState, "2.0.0.0", 0,
DDDMappingDelay, connectionRouterClient,
DDDMappingDelay, connectionRouterNat,
connectionRouterNServer,
connectionRouterMServer,
connectionRouterAttacker, simDddController,
Expand All @@ -116,27 +130,40 @@ def runSimulation(dddState, skipsim, sumOut,
if(amplification == 1):
simAttacker = attacker.attacker(connectionAttackerMServer,
connectionAttackerRouter,
"1.0.0.0", "3.0.0.0", fileGen,
"10.0.0.0", "3.0.0.0", fileGen,
packetSize, attackertoReflector,
"5.0.0.0", "A-", attackerType, 1)
else:
simAttacker = attacker.attacker(connectionAttackerMServer,
connectionAttackerRouter,
"1.0.0.0", "3.0.0.0", fileGen,
"10.0.0.0", "3.0.0.0", fileGen,
packetSize, attackertoReflector,
"5.0.0.0", "A-", attackerType, 0)
simNat = nat.nat(connectionNatRouter, connectionNatClient,
1000, fileGen, queueLimit, clienttoRouter, routertoClient) # Addition for Nat

# connectionClientRouter.device1 = simClient
# connectionClientRouter.device2 = simRouter
connectionClientNat.device1 = simClient # Addition for Nat
connectionClientNat.device2 = simNat # Addition for Nat

connectionNatClient.device1 = simNat # Addition for Nat
connectionNatClient.device2 = simClient # Addition for Nat

connectionRouterNat.device1 = simRouter # Addition for Nat
connectionRouterNat.device2 = simNat # Addition for Nat

connectionClientRouter.device1 = simClient
connectionClientRouter.device2 = simRouter
connectionNatRouter.device1 = simNat # Addition for Nat
connectionNatRouter.device2 = simRouter # Addition for Nat

connectionRouterMServer.device1 = simRouter
connectionRouterMServer.device2 = simMServer

connectionRouterNServer.device1 = simRouter
connectionRouterNServer.device2 = simNServer

connectionRouterClient.device1 = simRouter
connectionRouterClient.device2 = simClient
# connectionRouterClient.device1 = simRouter
# connectionRouterClient.device2 = simClient

connectionMServerRouter.device1 = simMServer
connectionMServerRouter.device2 = simRouter
Expand All @@ -161,17 +188,23 @@ def runSimulation(dddState, skipsim, sumOut,
simMServer.updateTime()
simAttacker.updateTime()
simDddController.updateTime()
simNat.updateTime() # Addition for nat

connectionClientRouter.updateTime()
connectionRouterMServer.updateTime()
#connectionClientRouter.updateTime()
connectionRouterMServer.updateTime()
connectionRouterNServer.updateTime()
connectionRouterClient.updateTime()
connectionNatClient.updateTime() # Addition for nat
connectionClientNat.updateTime() # Addition for nat
connectionNatRouter.updateTime() # Addition for nat
connectionRouterNat.updateTime() # Addition for nat
#connectionRouterClient.updateTime()
connectionNServerRouter.updateTime()
connectionMServerRouter.updateTime()
connectionAttackerMServer.updateTime()
connectionAttackerRouter.updateTime()
connectionRouterAttacker.updateTime()


# Five lists for the animateData function(one per each device).
animationDataClient = ['0'] * 7
animationDataMServer = ['0'] * 7
Expand Down Expand Up @@ -208,34 +241,30 @@ def runSimulation(dddState, skipsim, sumOut,
animationDataNServer[4] = str(simNServer.packetsSent)
animationDataRouter[4] = str(simRouter.packetsSent)
animationDataAttacker[4] = str(simAttacker.packetsSent)

# Index 5 is the string of the device
animationDataClient[5] = 'client'
animationDataMServer[5] = 'mserver'
animationDataNServer[5] = 'nserver'
animationDataRouter[5] = 'router'
animationDataAttacker[5] = 'attacker'

# Index 6 is the number of outbound packets that get dropped due to the bandwidth
animationDataClient[6] = str(simClient.packetsDroppedOnConnection)
animationDataMServer[6] = str(simMServer.packetsDroppedOnConnection)
animationDataNServer[6] = str(simNServer.packetsDroppedOnConnection)
animationDataRouter[6] = str(simRouter.packetsDroppedOnConnection)
animationDataAttacker[6] = str(simAttacker.packetsDroppedOnConnection)

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.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)

if debug_mode:
print(i)
Expand Down Expand Up @@ -265,15 +294,28 @@ def runSimulation(dddState, skipsim, sumOut,
print("-----------------------------------------")
print("ATTACKER, Sending Packet")
print(simAttacker.sendingPacket)
print("NAT Device, Queue, Send Client, Send Router")
print(simNat.queueRouter)
print(simNat.queueClient)
print(simNat.sendClient)
print(simNat.sendRouter)
print("CONNECTIONS")
print("Connection: connectionAttackerMServer"
+ str(connectionAttackerMServer.packetsInTransit))
print("Connection: connectionRouterMServer"
+ str(connectionRouterMServer.packetsInTransit))
print("Connection: connectionRouterNServer"
+ str(connectionRouterNServer.packetsInTransit))
print("Connection: connectionClientRouter"
+ str(connectionClientRouter.packetsInTransit))
print("Connection: connectionNatRouter"
+ str(connectionNatRouter.packetsInTransit))
print("Connection: connectionRouterNat"
+ str(connectionRouterNat.packetsInTransit))
print("Connection: connectionClientNat"
+ str(connectionClientNat.packetsInTransit))
print("Connection: connectionNatClient"
+ str(connectionNatClient.packetsInTransit))
#print("Connection: connectionClientRouter"
# + str(connectionClientRouter.packetsInTransit))
print("Ports that are open to Map: "
+ str(simDddController.currentUsablePorts))
print("Old ports: " + str(simDddController.oldPorts))
Expand Down

0 comments on commit b828205

Please sign in to comment.