Skip to content

Commit

Permalink
Small Modifcation for Test Cases
Browse files Browse the repository at this point in the history
  • Loading branch information
jeb16157 committed Mar 23, 2021
1 parent b0d11b9 commit d341abb
Show file tree
Hide file tree
Showing 6 changed files with 142 additions and 114 deletions.
30 changes: 17 additions & 13 deletions Python/attacker.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ def processPackets(self):
def sendPackets(self): # Puts packets onto the connection
if((self.sendingPacket[1] - self.curTime) < 1):
if(self.sendingPacket[0].dstIP == self.serverIP):
print(self.sendingPacket[0].dstIP)
#print(self.sendingPacket[0].dstIP)
self.packetsSent += 1 # increment counter
self.connectionToServer.transferPacketOut(self.sendingPacket[0]) # place packet on connection
self.sendingPacket = None
Expand All @@ -82,9 +82,10 @@ def generateSYN(self):
packetType, random.randint(0, 10000), 0,
self.packetIDPrefix + str(self.packetsGenerated),
self.packetSize, self.ipAddress) # return the packet
self.fileGen.addToLog(npacket.packetID, "Generated at Attacker",
npacket.sequenceNumber, npacket.ackNumber,
npacket.packetType, self.curTime)
if(self.fileGen is not None):
self.fileGen.addToLog(npacket.packetID, "Generated at Attacker",
npacket.sequenceNumber, npacket.ackNumber,
npacket.packetType, self.curTime)
return npacket
else:
if(self.openPort is None):
Expand All @@ -93,28 +94,31 @@ def generateSYN(self):
"PING", random.randint(0, 10000), 0,
self.packetIDPrefix + str(self.packetsGenerated),
self.packetSize, self.ipAddress)
self.fileGen.addToLog(npacket.packetID, "Generated at Attacker",
npacket.sequenceNumber, npacket.ackNumber,
npacket.packetType, self.curTime)
if(self.fileGen is not None):
self.fileGen.addToLog(npacket.packetID, "Generated at Attacker",
npacket.sequenceNumber, npacket.ackNumber,
npacket.packetType, self.curTime)
return npacket
elif(self.checkOpenPorts >= 10):
npacket = packet.packet(self.ipAddress, 20, "2.0.0.0", self.openPort,
"PING", random.randint(0, 10000), 0,
self.packetIDPrefix + str(self.packetsGenerated),
self.packetSize, self.ipAddress)
self.fileGen.addToLog(npacket.packetID, "Generated at Attacker",
npacket.sequenceNumber, npacket.ackNumber,
npacket.packetType, self.curTime)
if(self.fileGen is not None):
self.fileGen.addToLog(npacket.packetID, "Generated at Attacker",
npacket.sequenceNumber, npacket.ackNumber,
npacket.packetType, self.curTime)
self.checkOpenPorts = 0
return npacket
else:
npacket = packet.packet(sourceIP, 20, destinationIP, self.openPort,
packetType, random.randint(0, 10000), 0,
self.packetIDPrefix + str(self.packetsGenerated),
self.packetSize, self.ipAddress) # return the packet
self.fileGen.addToLog(npacket.packetID, "Generated at Attacker",
npacket.sequenceNumber, npacket.ackNumber,
npacket.packetType, self.curTime)
if(self.fileGen is not None):
self.fileGen.addToLog(npacket.packetID, "Generated at Attacker",
npacket.sequenceNumber, npacket.ackNumber,
npacket.packetType, self.curTime)
self.checkOpenPorts += 1
return npacket

Expand Down
42 changes: 24 additions & 18 deletions Python/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -73,9 +73,10 @@ def sendPackets(self):
# Places new packets into the receive buffer
def receivePacket(self, packet):
self.receiveBuffer.append(packet)
self.fileGen.addToLog(packet.packetID, "Received at Client",
packet.sequenceNumber, packet.ackNumber,
packet.packetType, self.curTime)
if(self.fileGen is not None):
self.fileGen.addToLog(packet.packetID, "Received at Client",
packet.sequenceNumber, packet.ackNumber,
packet.packetType, self.curTime)
self.packetsInReceiveBuffer += 1
self.packetsReceived += 1

Expand All @@ -91,9 +92,10 @@ def createResponses(self):
"ACK", 0, curPacket.sequenceNumber + 1,
self.packetIDPrefix + str(self.packetsGenerated),
self.packetSize, self.clientIP)
self.fileGen.addToLog(responsePacket.packetID, "Generated at Client",
responsePacket.sequenceNumber, responsePacket.ackNumber,
responsePacket.packetType, self.curTime)
if(self.fileGen is not None):
self.fileGen.addToLog(responsePacket.packetID, "Generated at Client",
responsePacket.sequenceNumber, responsePacket.ackNumber,
responsePacket.packetType, self.curTime)
self.currentQueueLoad += responsePacket.packetSize
if(self.currentQueueLoad <= self.queueLimit):
self.queue.append(responsePacket)
Expand All @@ -107,9 +109,10 @@ def createResponses(self):
"RST", 0, curPacket.sequenceNumber + 1,
self.packetIDPrefix + str(self.packetsGenerated),
self.packetSize, self.clientIP)
self.fileGen.addToLog(responsePacket.packetID, "Generated at Client",
responsePacket.sequenceNumber, responsePacket.ackNumber,
responsePacket.packetType, self.curTime)
if(self.fileGen is not None):
self.fileGen.addToLog(responsePacket.packetID, "Generated at Client",
responsePacket.sequenceNumber, responsePacket.ackNumber,
responsePacket.packetType, self.curTime)
self.currentQueueLoad += responsePacket.packetSize
if(self.currentQueueLoad <= self.queueLimit):
self.queue.append(responsePacket)
Expand All @@ -118,9 +121,10 @@ def createResponses(self):
# Drop Packet
self.receiveBuffer.pop(i) # remove the packet from the queue
self.packetsInReceiveBuffer -= 1
self.fileGen.addToLog(curPacket.packetID, "Responded to by Client",
curPacket.sequenceNumber, curPacket.ackNumber,
curPacket.packetType, self.curTime)
if(self.fileGen is not None):
self.fileGen.addToLog(curPacket.packetID, "Responded to by Client",
curPacket.sequenceNumber, curPacket.ackNumber,
curPacket.packetType, self.curTime)

# Simulates normal traffic by sending periodic syn requests to a normal server
def createNormalTraffic(self):
Expand All @@ -133,9 +137,10 @@ def createNormalTraffic(self):
random.randint(0, 10000), 0,
self.packetIDPrefix + str(self.packetsGenerated),
self.packetSize, self.clientIP)
self.fileGen.addToLog(normalPacket.packetID, "Generated at Client",
normalPacket.sequenceNumber, normalPacket.ackNumber,
normalPacket.packetType, self.curTime)
if(self.fileGen is not None):
self.fileGen.addToLog(normalPacket.packetID, "Generated at Client",
normalPacket.sequenceNumber, normalPacket.ackNumber,
normalPacket.packetType, self.curTime)
self.currentQueueLoad += normalPacket.packetSize
if(self.currentQueueLoad <= self.queueLimit):
self.queue.append(normalPacket)
Expand All @@ -159,9 +164,10 @@ def createNormalTraffic(self):
random.randint(0, 10000), 0,
self.packetIDPrefix + str(self.packetsGenerated),
self.packetSize, self.clientIP)
self.fileGen.addToLog(normalPacket.packetID, "Generated at Client",
normalPacket.sequenceNumber, normalPacket.ackNumber,
normalPacket.packetType, self.curTime)
if(self.fileGen is not None):
self.fileGen.addToLog(normalPacket.packetID, "Generated at Client",
normalPacket.sequenceNumber, normalPacket.ackNumber,
normalPacket.packetType, self.curTime)
self.currentQueueLoad += normalPacket.packetSize
if(self.currentQueueLoad <= self.queueLimit):
self.queue.append(normalPacket)
Expand Down
17 changes: 9 additions & 8 deletions Python/connectionObject.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,15 @@ def transferPacketOut(self, packet):
self.packetsInTransit.append((packet, self.curTime + self.propagationTime))
self.numberOfPacketsInTransit += 1
self.packetsAccepted += 1
self.fileGen.animateTransit(self.device1.packetIDPrefix[0],
self.device2.packetIDPrefix[0],
packet.packetType, packet.sequenceNumber,
packet.ackNumber, packet.dstPortNumber,
self.propagationTime)
self.fileGen.addToLog(packet.packetID,
"In transit between " + str(self.device1IP) + " and " + str(self.device2IP),
packet.sequenceNumber, packet.ackNumber, packet.packetType, self.curTime)
if(self.fileGen is not None): #Testing purposes
self.fileGen.animateTransit(self.device1.packetIDPrefix[0],
self.device2.packetIDPrefix[0],
packet.packetType, packet.sequenceNumber,
packet.ackNumber, packet.dstPortNumber,
self.propagationTime)
self.fileGen.addToLog(packet.packetID,
"In transit between " + str(self.device1IP) + " and " + str(self.device2IP),
packet.sequenceNumber, packet.ackNumber, packet.packetType, self.curTime)

def deliverPackets(self):
i = 0 # loop over the list of packets and decide where to send them
Expand Down
57 changes: 31 additions & 26 deletions Python/nat.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,21 +41,24 @@ def receivePacket(self, packet):
if(len(self.receiveBuffer) < self.queueSize):
self.receiveBuffer.append(packet)
self.packetsReceived += 1
self.fileGen.addToLog(packet.packetID, "Received at NAT Device",
packet.sequenceNumber, packet.ackNumber,
packet.packetType, self.curTime)
if(self.fileGen is not None):
self.fileGen.addToLog(packet.packetID, "Received at NAT Device",
packet.sequenceNumber, packet.ackNumber,
packet.packetType, self.curTime)
else:
print("Packet is getting Dropped")
self.fileGen.animateDrop(curPacket.packetID[0],
curPacket.packetType,
curPacket.sequenceNumber,
curPacket.ackNumber,
curPacket.dstPortNumber)
#print("Packet is getting Dropped")
if(self.fileGen is not None):
self.fileGen.animateDrop(curPacket.packetID[0],
curPacket.packetType,
curPacket.sequenceNumber,
curPacket.ackNumber,
curPacket.dstPortNumber)
self.packetsDropped += 1
self.fileGen.addToLog(packet.packetID,
"Dropped at Router: No space in receiveBuffer",
packet.sequenceNumber, packet.ackNumber,
packet.packetType, self.curTime)
if(self.fileGen is not None):
self.fileGen.addToLog(packet.packetID,
"Dropped at Router: No space in receiveBuffer",
packet.sequenceNumber, packet.ackNumber,
packet.packetType, self.curTime)

def addtoQueues(self):
for i in self.receiveBuffer:
Expand All @@ -74,39 +77,41 @@ def addtoQueues(self):
else:
self.currentQueueLoadRouter -= i.packetSize
# Drop Packet
self.fileGen.animateDrop(i.packetID[0], i.packetType,
i.sequenceNumber, i.ackNumber,
i.dstPortNumber)
if(self.fileGen is not None):
self.fileGen.animateDrop(i.packetID[0], i.packetType,
i.sequenceNumber, i.ackNumber,
i.dstPortNumber)
self.receiveBuffer.remove(i)

def mapPacket(self, packet, dst):
if(dst == "CLIENT"):
print("Client packet getting mapped")
print(packet)
#print("Client packet getting mapped")
#print(packet)
internalInfo = self.openConnections.get((packet.dstIP, packet.dstPortNumber))
if(internalInfo is not None):
self.openConnections.pop((packet.dstIP, packet.dstPortNumber))
packet.dstIP = internalInfo[0]
packet.dstPortNumber = internalInfo[1]
print(packet)
#print(packet)
return True
else:
# Drop Packet
print("Mapping not found")
self.fileGen.animateDrop(packet.packetID[0], packet.packetType,
packet.sequenceNumber, packet.ackNumber,
packet.dstPortNumber)
#print("Mapping not found")
if(self.fileGen is not None):
self.fileGen.animateDrop(packet.packetID[0], packet.packetType,
packet.sequenceNumber, packet.ackNumber,
packet.dstPortNumber)
return False
else:
print("Router packet getting mapped")
#print("Router packet getting mapped")
portNumber = random.randint(0, 64000)
print(packet)
#print(packet)
while(self.openConnections.get((self.ipAddress, portNumber)) is not None):
portNumber = random.randint(0, 64000)
self.openConnections[(self.ipAddress, portNumber)] = (packet.srcIP, packet.srcPortNumber)
packet.srcIP = self.ipAddress
packet.srcPortNumber = portNumber
print(packet)
#print(packet)
return True

# Add send packets function and mapping function
Expand Down
Loading

0 comments on commit d341abb

Please sign in to comment.