Beispiel #1
0
    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, 30))

    # start all the objects
    thread_L = [
        threading.Thread(name=object.__str__(), target=object.run)
        for object in object_L
    ]
    for t in thread_L:
        t.start()

    try:
        ##                client.udt_send(2, "DATA")
        ##                sleep(0.25)
        client.udt_send(
            2,
Beispiel #2
0
            N.append(item.name)
            R.append(item.name)


    for item in object_L:
        if isinstance(item, network.Router):
            item.update_network_nodes(N,R)
            item.initialize_routing_table()


    #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))
    link_layer.add_link(link.Link(router_a, 1, router_b, 0))
    link_layer.add_link(link.Link(router_b, 1, host_2, 0))
    
    #link_layer.add_link(link.Link(host_2, 0, router_b, 1))
    #link_layer.add_link(link.Link(router_b, 0, router_a, 1))
    #link_layer.add_link(link.Link(router_a, 0, host_1, 0))
    
    #start all the objects
    thread_L = []
    for obj in object_L:
        thread_L.append(threading.Thread(name=obj.__str__(), target=obj.run)) 
    
    for t in thread_L:
        t.start()
    
Beispiel #3
0
        'i_out': 0
    }]
    router_d = network.Router(name='D',
                              intf_cost_L=[1, 1, 1],
                              intf_capacity_L=[500, 300, 20],
                              rt_tbl_D=router_d_rt_tbl_D,
                              max_queue_size=router_queue_size,
                              mpls_tbl_L=router_d_mpls_tbl_L)
    object_L.append(router_d)

    #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_layer.add_link(link.Link(h1, 0, router_a, 0))
    link_layer.add_link(link.Link(h2, 0, router_a, 1))

    link_layer.add_link(link.Link(router_a, 2, router_b, 0))
    link_layer.add_link(link.Link(router_a, 3, router_c, 0))

    link_layer.add_link(link.Link(router_b, 1, router_d, 0))

    link_layer.add_link(link.Link(router_c, 1, router_d, 1))

    link_layer.add_link(link.Link(router_d, 2, h3, 0))

    # link_layer.add_link(link.Link(h1, 0, router_a, 0))
    # link_layer.add_link(link.Link(h2, 0, router_a, 1))
    # link_layer.add_link(link.Link(router_a, 1, router_b, 0))
    # link_layer.add_link(link.Link(router_b, 1, h2, 0))
Beispiel #4
0
            1: INF,
            2: INF
        }
    }  # packet to host 2 through interface 0 for cost 3
    router_d = network.Router(name='D',
                              intf_cost_L=[1, 1, 2],
                              rt_tbl_D=router_d_rt_tbl_D,
                              max_queue_size=router_queue_size)
    object_L.append(router_d)
    #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
    #host_1
    link_layer.add_link(link.Link(host_1, 0, router_a, 0))

    #host_2
    link_layer.add_link(link.Link(host_2, 0, router_a, 1))

    #host3
    link_layer.add_link(link.Link(host_3, 0, router_d, 0))

    #router_a
    link_layer.add_link(link.Link(router_a, 2, router_b, 0))
    link_layer.add_link(link.Link(router_a, 3, router_c, 0))

    #router_b
    link_layer.add_link(link.Link(router_b, 1, router_d, 1))

    #router_c
Beispiel #5
0
                                rt_tbl_D=router_c_rt_tbl_D,
                                max_queue_size=router_queue_size)
    object_L.append(router_c)
    router_d_rt_tcl_D = {3: {2: 1}}
    router_d = network_2.Router(name='D',
                                intf_cost_L=[3, 1, 1],
                                rt_tbl_D=router_d_rt_tcl_D,
                                max_queue_size=router_queue_size)
    object_L.append(router_d)

    # 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))
    link_layer.add_link(link_2.Link(lazyguy, 0, router_a, 1))
    link_layer.add_link(link_2.Link(router_a, 2, router_b, 0))
    link_layer.add_link(link_2.Link(router_a, 3, router_c, 0))
    link_layer.add_link(link_2.Link(router_b, 1, router_d, 0))
    link_layer.add_link(link_2.Link(router_c, 1, router_d, 1))
    link_layer.add_link(link_2.Link(router_d, 2, server, 0))

    # start all the objects
    thread_L = []
    for obj in object_L:
        thread_L.append(threading.Thread(name=obj.__str__(), target=obj.run))

    for t in thread_L:
        t.start()
Beispiel #6
0
    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)
    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 parameters: from_node, from_intf_num, to_node, to_intf_num, mtu/mtu_length

    # Link between client and a router
    link_layer.add_link(link_2.Link(client, 0, router_a, 0, mtu_length))

    # Link between router and a client
    link_layer.add_link(link_2.Link(router_a, 0, server, 0, mtu_length_2))

    #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))
    thread_L.append(
        threading.Thread(name=router_a.__str__(), target=router_a.run))

    thread_L.append(threading.Thread(name="Network", target=link_layer.run))

    for t in thread_L:
        t.start()
                              forwarding_table = forwarding_table)
    object_L.append(router_c)
    router_d_rt_tbl_D = {3: {2: 3}}
    router_d = network_2.Router(name='D', 
                              intf_cost_L=[2,1,3], 
                              rt_tbl_D = router_d_rt_tbl_D, 
                              max_queue_size=router_queue_size,
                              forwarding_table = forwarding_table)
    object_L.append(router_d)
    
    #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(host1, 0, router_a, 0))
    link_layer.add_link(link_2.Link(host2, 0, router_a, 1))
    link_layer.add_link(link_2.Link(router_a, 2, router_b, 0))
    link_layer.add_link(link_2.Link(router_b, 1, router_d, 0))
    link_layer.add_link(link_2.Link(router_d, 2, host3, 0))
    
    link_layer.add_link(link_2.Link(host3, 0, router_d, 2))
    link_layer.add_link(link_2.Link(router_d, 1, router_c, 1))
    link_layer.add_link(link_2.Link(router_c, 0, router_a, 3))
    link_layer.add_link(link_2.Link(router_a, 0, host1, 0))

    #start all the objects
    thread_L = []
    for obj in object_L:
        thread_L.append(threading.Thread(name=obj.__str__(), target=obj.run)) 
    
Beispiel #8
0
                              intf_cost_L=[1, 1, 1],
                              intf_capacity_L=[500, 500, 500],
                              rt_tbl_D={},
                              fwd_tbl_D={
                                  '2': (None, 2),
                                  '3': (None, 2),
                              },
                              max_queue_size=router_queue_size)
    object_L.append(router_d)

    #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_layer.add_link(link.Link(client1, 0, router_a, 0))
    link_layer.add_link(link.Link(client2, 0, router_a, 1))
    link_layer.add_link(link.Link(router_a, 2, router_b, 0))
    link_layer.add_link(link.Link(router_a, 3, router_c, 0))
    link_layer.add_link(link.Link(router_b, 1, router_d, 0))
    link_layer.add_link(link.Link(router_c, 1, router_d, 1))
    link_layer.add_link(link.Link(router_d, 2, server, 0))

    #start all the objects
    thread_L = []
    for obj in object_L:
        thread_L.append(threading.Thread(name=obj.__str__(), target=obj.run))

    for t in thread_L:
        t.start()
Beispiel #9
0
    client = network_2_2.Host(1)
    object_L.append(client)
    server = network_2_2.Host(2)
    object_L.append(server)
    router_a = network_2_2.Router(name='A',
                                  intf_count=1,
                                  max_queue_size=router_queue_size)
    object_L.append(router_a)
    # object_L = an object list

    #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, 40))
    link_layer.add_link(link_2.Link(router_a, 0, server, 0, 40))

    #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))
    thread_L.append(
        threading.Thread(name=router_a.__str__(), target=router_a.run))

    thread_L.append(threading.Thread(name="Network", target=link_layer.run))

    for t in thread_L:
        t.start()

    #create some send events
Beispiel #10
0
 #create network nodes
 #part 3, add hosts, etc. (and make sure to start the threads)
 client = network_2.Host(1)    #client has address 1
 object_L.append(client)
 server = network_2.Host(2)    #server has address 2
 object_L.append(server)
 router_a = network_2.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_2.LinkLayer()
 object_L.append(link_layer)
 
 #add all the links
 #client is output, router_a is input, 50 is largest size a packet can be to be transferred over a link
 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, mtu))   #for part 2, change mtu to 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))
 thread_L.append(threading.Thread(name=router_a.__str__(), target=router_a.run))
 
 thread_L.append(threading.Thread(name="Network", target=link_layer.run))
 
 for t in thread_L:
     t.start()
 
 
 object_L = [] #keeps track of objects, so we can kill their threads
 
 #create network nodes    These are changed to correspond with the files for part 2 of the assignment
 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)
 object_L.append(router_a)
 
 #create a Link Layer to keep track of links between network nodes   Changed to correspond with part 2 of the assignment
 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))        #MTU change to 30 for part 2 of the assignment
 
 
 #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))
 thread_L.append(threading.Thread(name=router_a.__str__(), target=router_a.run))
 
 thread_L.append(threading.Thread(name="Network", target=link_layer.run))
 
 for t in thread_L:
     t.start()