Exemple #1
0
simulation_time = 2  #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_2.Host('H1')
    object_L.append(host_1)
    host_2 = network_2.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_2.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_2.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_2.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_2.Link(host_1, 0, router_a, 0))
#J. Beckett Sweeney

##configuration parameters
router_queue_size = 0  # 0 means unlimited
simulation_time = 3  # 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, 10))

    # start all the objects
    thread_L = []
    thread_L.append(threading.Thread(name=client.__str__(), target=client.run))
 
 #create network hosts
 host1 = network_2.Host(1)
 object_L.append(host1)
 host2 = network_2.Host(2)
 object_L.append(host2)
 host3 = network_2.Host(3)
 object_L.append(host3)
 
 #create forwarding table for routers
 forwarding_table = [[['A', 2], ['B', 1], ['D', 2]], [['D', 1], ['C', 0], ['A', 0]]]
 #create routers and routing tables for connected clients (subnets)
 router_a_rt_tbl_D = {1: {0: 1}, 2: {1: 9}}
 router_a = network_2.Router(name='A', 
                           intf_cost_L=[1,9,1,2], 
                           rt_tbl_D = router_a_rt_tbl_D, 
                           max_queue_size=router_queue_size,
                           forwarding_table = forwarding_table)
 object_L.append(router_a)
 router_b_rt_tbl_D = {1: {0: 2}, 3: {1: 5}}
 router_b = network_2.Router(name='B', 
                           intf_cost_L=[1,2], 
                           rt_tbl_D = router_b_rt_tbl_D, 
                           max_queue_size=router_queue_size,
                           forwarding_table = forwarding_table)
 object_L.append(router_b)
 router_c_rt_tbl_D = {1: {0: 3}, 3: {1: 4}}
 router_c = network_2.Router(name='C', 
                           intf_cost_L=[2,1], 
                           rt_tbl_D = router_c_rt_tbl_D, 
                           max_queue_size=router_queue_size,
Exemple #4
0
    #create network hosts
    client1 = network.Host(1)
    object_L.append(client1)
    client2 = network.Host(2)
    object_L.append(client2)
    server = network.Host(3)
    object_L.append(server)

    #create routers and routing tables for connected clients (subnets)
    router_a = network.Router(name='A',
                              intf_cost_L=[1, 1, 1, 1],
                              intf_capacity_L=[500, 500, 500, 500],
                              rt_tbl_D={
                                  0: {
                                      3: ('0', 2)
                                  },
                                  1: {
                                      3: ('1', 3)
                                  }
                              },
                              fwd_tbl_D={},
                              max_queue_size=router_queue_size)
    object_L.append(router_a)
    router_b = network.Router(name='B',
                              intf_cost_L=[1, 1],
                              intf_capacity_L=[500, 500],
                              rt_tbl_D={},
                              fwd_tbl_D={'0': ('2', 1)},
                              max_queue_size=router_queue_size)
    object_L.append(router_b)
    router_c = network.Router(name='C',
Exemple #5
0
	object_L = [] #keeps track of objects, so we can kill their threads

	#create network hosts
	h1 = network.Host(1)
	object_L.append(h1)
	h2 = network.Host(2)
	object_L.append(h2)
	h3 = network.Host(3)
	object_L.append(h3)


	#create routers and routing tables for connected clients (subnets)
	# router_a_rt_tbl_D = {1: {0: 1}, 2: {1: 1}, 3: {2:2}} # packet to host 1 through interface 0 for cost 1
	router_a_rt_tbl_D = {1:{0:1},2:{1:1},3:{2:4, 3:5}}
	router_a = network.Router(name='A',
							  intf_cost_L=[1,1,2,2],
							  rt_tbl_D = router_a_rt_tbl_D,
							  max_queue_size=router_queue_size)
	object_L.append(router_a)

	# router_b_rt_tbl_D = {3: {1: 1}, 1:{0:1}} # packet to host 2 through interface 1 for cost 3
	router_b_rt_tbl_D = {1:{0:3},2:{0:3},3:{1:2}}
	router_b = network.Router(name='B',
							  intf_cost_L=[2,1],
							  rt_tbl_D = router_b_rt_tbl_D,
							  max_queue_size=router_queue_size)
	object_L.append(router_b)

	# router_c_rt_tbl_D = {3: {1: 1}} # packet to host 1 through interface 0 for cost 1
	router_c_rt_tbl_D = {1:{0:4},2:{0:4},3:{1:2}}
	router_c = network.Router(name='C',
							  intf_cost_L=[3,1],
Exemple #6
0
    #Labels we made:
    # A = 10
    # B = 11
    # C = 12
    # D = 13
    #format: in_label, in_intf, out_label, out_intf

    forwarding_table_a = [['-', '0', '11', '2'], ['-', '1', '12', '3']]
    forwarding_table_b = ['10', '0', '13', '1']
    forwarding_table_c = ['10', '0', '13', '1']
    forwarding_table_d = [['11', '0', '-', '2'], ['12', '1', '-', '2']]

    router_a_rt_tbl_D = {1: {0: 1}, 2: {1: 9}}
    router_a = network_2.Router(name='A', 
                              intf_cost_L=[1,9,1,2],
                              intf_capacity_L=[500,500,500,500],
                              rt_tbl_D = router_a_rt_tbl_D, 
                              max_queue_size=router_queue_size,
                              forwarding_table = forwarding_table_a)
    object_L.append(router_a)
    router_b_rt_tbl_D = {1: {0: 2}, 3: {1: 5}}
    router_b = network_2.Router(name='B', 
                              intf_cost_L=[1,2], 
                              intf_capacity_L=[500,100],
                              rt_tbl_D = router_b_rt_tbl_D, 
                              max_queue_size=router_queue_size,
                              forwarding_table = forwarding_table_b)
    object_L.append(router_b)
    router_c_rt_tbl_D = {1: {0: 3}, 3: {1: 4}}
    router_c = network_2.Router(name='C', 
                              intf_cost_L=[2,1], 
                              intf_capacity_L=[500,500], #I made this up
from time import sleep

##configuration parameters
router_queue_size = 0  #0 means unlimited
simulation_time = 1  #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_2.Host(1)
    object_L.append(client)
    server = network_2.Host(2)
    object_L.append(server)
    router_a = network_2.Router(name='A',
                                intf_count=1,
                                max_queue_size=router_queue_size,
                                outgoing_l_mtu=30)
    object_L.append(router_a)

    #create a Link Layer to keep track of links between network nodes
    link_layer = link_2.LinkLayer()
    object_L.append(link_layer)

    #add all the links
    link_layer.add_link(link_2.Link(client, 0, router_a, 0, 50))
    link_layer.add_link(link_2.Link(router_a, 0, server, 0, 30))

    #start all the objects
    thread_L = []
    thread_L.append(threading.Thread(name=client.__str__(), target=client.run))
    thread_L.append(threading.Thread(name=server.__str__(), target=server.run))