Exemplo n.º 1
0
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)
Exemplo n.º 2
0
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)
    
Exemplo n.º 3
0
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))
Exemplo n.º 4
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()