def run(self): # parameters Sim.scheduler.reset() logging.getLogger('app').setLevel(logging.INFO) logging.getLogger('bene.link.queue').setLevel(logging.DEBUG) logging.getLogger('bene.tcp.sequence').setLevel(logging.DEBUG) logging.getLogger('bene.tcp.cwnd').setLevel(logging.DEBUG) if self.debug: logging.getLogger('bene.tcp').setLevel(logging.DEBUG) logging.getLogger('bene.tcp.sender').setLevel(logging.DEBUG) logging.getLogger('bene.tcp.receiver').setLevel(logging.DEBUG) # setup network net = Network('networks/one-hop.txt') net.loss(self.loss) # setup routes n1 = net.get_node('n1') n2 = net.get_node('n2') n1.add_forwarding_entry(n2.get_address('n1'), n1.links[0]) n2.add_forwarding_entry(n1.get_address('n2'), n2.links[0]) # setup transport t1 = Transport(n1) t2 = Transport(n2) # setup application a = AppHandler(self.filename) window = 1000 # setup connection drop = self.packets2lose c1 = TCP(t1, n1.get_address('n2'), 1, n2.get_address('n1'), 1, a, window=window, drop=drop, reno=self.reno) c2 = TCP(t2, n2.get_address('n1'), 1, n1.get_address('n2'), 1, a, window=window) # send a file with open(self.filename, 'rb') as f: while True: data = f.read(1000) if not data: break Sim.scheduler.add(delay=0, event=data, handler=c1.send) # run the simulation Sim.scheduler.run()
def run(self, size): # parameters Sim.scheduler.reset() logging.getLogger('app').setLevel(logging.INFO) logging.getLogger('bene.link.queue').setLevel(logging.DEBUG) logging.getLogger('bene.tcp.sequence').setLevel(logging.DEBUG) logging.getLogger('bene.tcp.cwnd').setLevel(logging.DEBUG) if self.debug: logging.getLogger('bene.tcp').setLevel(logging.DEBUG) logging.getLogger('bene.tcp.sender').setLevel(logging.DEBUG) logging.getLogger('bene.tcp.receiver').setLevel(logging.DEBUG) # setup network net = Network('networks/one-hop-q10.txt') net.loss(self.loss) # setup routes n1 = net.get_node('n1') n2 = net.get_node('n2') n1.add_forwarding_entry(n2.get_address('n1'), n1.links[0]) n2.add_forwarding_entry(n1.get_address('n2'), n2.links[0]) # setup transport t1 = Transport(n1) t2 = Transport(n2) # setup application a = AppHandler(self.filename) window = size # setup connection drop = [] filen = ("data/queue-%i.csv" % size) fd = open(filen, "w") fd.write("Time_stamp,qDelay\n") c1 = TCP(t1, n1.get_address('n2'), 1, n2.get_address('n1'), 1, a, window=window, drop=drop, retran=self.retran) c2 = TCP(t2, n2.get_address('n1'), 1, n1.get_address('n2'), 1, a, window=window, fd=fd) # send a file time_before = Sim.scheduler.current_time() count = 0 with open(self.filename, 'rb') as f: while True: data = f.read(1000) count += len(data) # print("0",count) if not data: break Sim.scheduler.add(delay=0, event=data, handler=c1.send) Sim.scheduler.run() time_after = Sim.scheduler.current_time() Sim.scheduler.reset() fd.close() return (time_after - time_before), count
def run(self): # parameters Sim.scheduler.reset() logging.getLogger('app').setLevel(logging.INFO) logging.getLogger('bene.link.queue').setLevel(logging.DEBUG) logging.getLogger('bene.tcp.sequence').setLevel(logging.DEBUG) logging.getLogger('bene.tcp.cwnd').setLevel(logging.DEBUG) if self.debug: logging.getLogger('bene.tcp').setLevel(logging.DEBUG) logging.getLogger('bene.tcp.sender').setLevel(logging.DEBUG) logging.getLogger('bene.tcp.receiver').setLevel(logging.DEBUG) # setup network net = Network('networks/one-hop-q10.txt') net.loss(self.loss) # setup routes n1 = net.get_node('n1') n2 = net.get_node('n2') n1.add_forwarding_entry(n2.get_address('n1'), n1.links[0]) n2.add_forwarding_entry(n1.get_address('n2'), n2.links[0]) # setup transport t1 = Transport(n1) t2 = Transport(n2) # setup application a = AppHandler(self.filename) window = self.wsize # setup connection drop = [] c1 = TCP(t1, n1.get_address('n2'), 1, n2.get_address('n1'), 1, a, window=window, drop=drop, retran=self.retran) c2 = TCP(t2, n2.get_address('n1'), 1, n1.get_address('n2'), 1, a, window=window) # send a file strin = "" times = [] for i in range(5): with open(self.filename, 'rb') as f: while True: data = f.read(1000) if not data: break Sim.scheduler.add(delay=0, event=data, handler=c1.send) # break Sim.scheduler.run() times.append(Sim.scheduler.current_time()) Sim.scheduler.reset() times.append(sum(times) / len(times)) with open("report/w10000_TESTING.txt", 'w') as f2: f2.writelines(["%s\n" % item for item in times])