def run(self): # parameters Sim.scheduler.reset() Sim.set_debug('AppHandler') Sim.set_debug('TCP') # Sim.set_debug('Link') # setup application a = AppHandler(self.filename, self.out_directory) # setup network net = Network('../networks/setup.txt') net.loss(self.loss) # setup routes n1 = net.get_node('n1') n2 = net.get_node('n2') n1.add_forwarding_entry(address=n2.get_address('n1'), link=n1.links[0]) n2.add_forwarding_entry(address=n1.get_address('n2'), link=n2.links[0]) # setup transport t1 = Transport(n1) t2 = Transport(n2) # setup connection c1 = TCP(t1, n1.get_address('n2'), 1, n2.get_address('n1'), 1, a, window=self.window) c2 = TCP(t2, n2.get_address('n1'), 1, n1.get_address('n2'), 1, a, window=self.window) # send a file with open(self.in_directory + '/' + self.filename, 'r') as f: while True: data = f.read(10000) if not data: break Sim.scheduler.add(delay=0, event=data, handler=c1.send) # run the simulation Sim.scheduler.run()
def run(self): # parameters Sim.scheduler.reset() Sim.set_debug('AppHandler') Sim.set_debug('TCP') # Sim.set_debug('Link') # setup application a1 = AppHandler(self.filename + str(1), self.out_directory) a2 = AppHandler(self.filename + str(2), self.out_directory) a3 = AppHandler(self.filename + str(3), self.out_directory) a4 = AppHandler(self.filename + str(4), self.out_directory) a5 = AppHandler(self.filename + str(5), self.out_directory) # setup network net = Network('../networks/setup.txt') net.loss(self.loss) # setup routes n1 = net.get_node('n1') n2 = net.get_node('n2') n1.add_forwarding_entry(address=n2.get_address('n1'), link=n1.links[0]) n2.add_forwarding_entry(address=n1.get_address('n2'), link=n2.links[0]) # setup transport t1 = Transport(n1) t2 = Transport(n2) # setup connection c1 = TCP(t1, n1.get_address('n2'), 1, n2.get_address('n1'), 1, a1, window=self.window) c2 = TCP(t2, n2.get_address('n1'), 1, n1.get_address('n2'), 1, a1, window=self.window) # setup connection c3 = TCP(t1, n1.get_address('n2'), 2, n2.get_address('n1'), 2, a2, window=self.window) c4 = TCP(t2, n2.get_address('n1'), 2, n1.get_address('n2'), 2, a2, window=self.window) # setup connection c5 = TCP(t1, n1.get_address('n2'), 3, n2.get_address('n1'), 3, a3, window=self.window) c6 = TCP(t2, n2.get_address('n1'), 3, n1.get_address('n2'), 3, a3, window=self.window) # setup connection c7 = TCP(t1, n1.get_address('n2'), 4, n2.get_address('n1'), 4, a4, window=self.window) c8 = TCP(t2, n2.get_address('n1'), 4, n1.get_address('n2'), 4, a4, window=self.window) # setup connection c9 = TCP(t1, n1.get_address('n2'), 5, n2.get_address('n1'), 5, a5, window=self.window) c0 = TCP(t2, n2.get_address('n1'), 5, n1.get_address('n2'), 5, a5, window=self.window) # send a file with open(self.in_directory + '/' + self.filename, 'r') as f: while True: data = f.read(10000) if not data: break Sim.scheduler.add(delay=0.0, event=data, handler=c1.send) Sim.scheduler.add(delay=0.1, event=data, handler=c3.send) Sim.scheduler.add(delay=0.2, event=data, handler=c5.send) Sim.scheduler.add(delay=0.3, event=data, handler=c7.send) Sim.scheduler.add(delay=0.4, event=data, handler=c9.send) # run the simulation Sim.scheduler.run()