from rprint import print ## configuration parameters router_queue_size = 0 # 0 means unlimited simulation_time = 2 # give the network sufficient time to transfer all packets before quitting if __name__ == '__main__': object_L = [] # keeps track of objects, so we can kill their threads # create network nodes client = network.Host(1) object_L.append(client) server = network.Host(2) object_L.append(server) router_a = network.Router(name='A', intf_count=1, max_queue_size=router_queue_size) object_L.append(router_a) # create a Link Layer to keep track of links between network nodes link_layer = link.LinkLayer() object_L.append(link_layer) # add all the links # link parameters: from_node, from_intf_num, to_node, to_intf_num, mtu link_layer.add_link(link.Link(client, 0, router_a, 0, 50)) link_layer.add_link(link.Link(router_a, 0, server, 0, 50)) # start all the objects thread_L = [ threading.Thread(name=object.__str__(), target=object.run)
simulation_time = 20 #give the network sufficient time to transfer all packets before quitting if __name__ == '__main__': object_L = [] #keeps track of objects, so we can kill their threads #create network hosts client = network.Host(1) object_L.append(client) server = network.Host(2) object_L.append(server) #create routers and routing tables for connected clients (subnets) router_a_rt_tbl_D = {1: {0: 1}} # packet to host 1 through interface 0 for cost 1 router_a = network.Router(name='A', intf_cost_L=[1,1], intf_capacity_L=[500,500], rt_tbl_D = router_a_rt_tbl_D, max_queue_size=router_queue_size) object_L.append(router_a) router_b_rt_tbl_D = {2: {1: 3}} # packet to host 2 through interface 1 for cost 3 router_b = network.Router(name='B', intf_cost_L=[1,3], intf_capacity_L=[500,100], rt_tbl_D = router_b_rt_tbl_D, max_queue_size=router_queue_size) object_L.append(router_b) #create a Link Layer to keep track of links between network nodes link_layer = link.LinkLayer() object_L.append(link_layer)
simulation_time = 1.5 # give the network sufficient time to execute transfers if __name__ == '__main__': object_L = [ ] # keeps track of objects, so we can kill their threads at the end # create network hosts host_1 = network.Host('H1') object_L.append(host_1) host_2 = network.Host('H2') object_L.append(host_2) # create routers and cost tables for reaching neighbors cost_D = {'H1': {0: 1}, 'RB': {1: 1}} # {neighbor: {interface: cost}} router_a = network.Router(name='RA', cost_D=cost_D, max_queue_size=router_queue_size) object_L.append(router_a) cost_D = {'H2': {1: 3}, 'RA': {0: 1}} # {neighbor: {interface: cost}} router_b = network.Router(name='RB', cost_D=cost_D, max_queue_size=router_queue_size) object_L.append(router_b) # create a Link Layer to keep track of links between network nodes link_layer = link.LinkLayer() object_L.append(link_layer) # add all the links - need to reflect the connectivity in cost_D tables above link_layer.add_link(link.Link(host_1, 0, router_a, 0))
object_L = [] # keeps track of objects, so we can kill their threads # create network hosts client = network_1.Host(1) object_L.append(client) server = network_1.Host(2) object_L.append(server) # create routers and routing tables for connected clients (subnets) router_a_rt_tbl_D = { 1: { 0: 1 } } # packet to host 1 through interface 0 for cost 1 router_a = network_1.Router(name='A', intf_cost_L=[1, 1], rt_tbl_D=router_a_rt_tbl_D, max_queue_size=router_queue_size) object_L.append(router_a) router_b_rt_tbl_D = { 2: { 1: 3 } } # packet to host 2 through interface 1 for cost 3 router_b = network_1.Router(name='B', intf_cost_L=[1, 3], rt_tbl_D=router_b_rt_tbl_D, max_queue_size=router_queue_size) object_L.append(router_b) # create a link_1 Layer to keep track of links between network_1 nodes link_layer = link_1.LinkLayer()