Esempio n. 1
0
    #create routers and cost tables for reaching neighbors

    # ROUTER A, neighbors H1, RB, RC
    cost_D = {
        'H1': {
            0: 1
        },
        'RB': {
            1: 1
        },
        'RC': {
            2: 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)

    # ROUTER B, neighbors RA, RD
    cost_D = {'RD': {1: 1}, 'RA': {0: 20}}  # {neighbor: {interface: cost}}
    router_b = network.Router(name='RB',
                              cost_D=cost_D,
                              max_queue_size=router_queue_size)
    object_L.append(router_b)

    # ROUTER C, neighbors RA, RD
    cost_D = {'RD': {1: 1}, 'RA': {0: 1}}  # {neighbor: {interface: cost}}
    router_c = network.Router(name='RC',
                              cost_D=cost_D,
                              max_queue_size=router_queue_size)
Esempio n. 2
0
from rprint import print

## configuration parameters
router_queue_size = 0  # 0 means unlimited
simulation_time = 10  # 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
    client1 = network.Host(1)
    object_L.append(client1)
    client2 = network.Host(2)
    object_L.append(client2)
    router_a = network.Router(name='A',
                              intf_count=2,
                              max_queue_size=router_queue_size,
                              r_table=[[3, 0], [4, 1]])
    object_L.append(router_a)
    router_b = network.Router(name='B',
                              intf_count=1,
                              max_queue_size=router_queue_size,
                              r_table=[[3, 0]])
    object_L.append(router_b)
    router_c = network.Router(name='C',
                              intf_count=1,
                              max_queue_size=router_queue_size,
                              r_table=[[4, 0]])
    object_L.append(router_c)
    router_d = network.Router(name='D',
                              intf_count=2,
                              max_queue_size=router_queue_size,
Esempio n. 3
0
if __name__ == '__main__':
    object_L = []  # keeps track of objects, so we can kill their threads

    # create network nodes

    host_1 = network_3.Host(1)
    object_L.append(host_1)
    host_2 = network_3.Host(2)
    object_L.append(host_2)
    # in router forward {i is the in interface, x is the out interface} what i will determine where to route to
    # created routing tables, pass into the routers
    # 0 (host 1)is the first in interface passes to out interface 0 (Router B)
    # {host to end/or start at: out interface}
    routing_table_a = {3: 0, 4: 1, 0: 0, 1: 1}
    router_a = network_3.Router(routing_table_a, name='A', intf_count=2, max_queue_size=router_queue_size)
    object_L.append(router_a)
    routing_table_b = {3: 0, 4: 0}
    router_b = network_3.Router(routing_table_b, name='B', intf_count=1, max_queue_size=router_queue_size)
    object_L.append(router_b)
    routing_table_c = {3: 0, 4: 0}
    router_c = network_3.Router(routing_table_c, name='C', intf_count=1, max_queue_size=router_queue_size)
    object_L.append(router_c)
    routing_table_d = {3: 0, 4: 1}
    router_d = network_3.Router(routing_table_d, name='D', intf_count=2, max_queue_size=router_queue_size)
    object_L.append(router_d)
    host_3 = network_3.Host(3)
    object_L.append(host_3)
    host_4 = network_3.Host(4)
    object_L.append(host_4)
Esempio n. 4
0

if __name__ == '__main__':
    object_L = []  #keeps track of objects, so we can kill their threads

    #create network nodes
    client1 = network_3.Host(1)
    object_L.append(client1)
    client2 = network_3.Host(2)
    object_L.append(client2)
    client3 = network_3.Host(3)
    object_L.append(client3)
    client4 = network_3.Host(4)
    object_L.append(client4)
    router_a = network_3.Router(name='A',
                                intf_count=2,
                                max_queue_size=router_queue_size,
                                routing_table=routing_table[0])
    object_L.append(router_a)
    router_b = network_3.Router(name='B',
                                intf_count=1,
                                max_queue_size=router_queue_size,
                                routing_table=routing_table[1])
    object_L.append(router_b)
    router_c = network_3.Router(name='C',
                                intf_count=1,
                                max_queue_size=router_queue_size,
                                routing_table=routing_table[2])
    object_L.append(router_c)
    router_d = network_3.Router(name='D',
                                intf_count=2,
                                max_queue_size=router_queue_size,
    #create network nodes    These are changed to correspond with the files for part 2 of the assignment
    #DL: New hosts added with more specific addresses to them for routing tables
    host_1 = network_3.Host(1271)
    host_2 = network_3.Host(1272)
    host_3 = network_3.Host(1291)
    host_4 = network_3.Host(1292)
    #DL: Adding the new hosts to the object list
    object_L.append(host_1)
    object_L.append(host_2)
    object_L.append(host_3)
    object_L.append(host_4)

    #DL: Setting up the 4 router network
    router_a = network_3.Router(name='A',
                                intf_count=2,
                                max_queue_size=router_queue_size)
    router_b = network_3.Router(name='B',
                                intf_count=1,
                                max_queue_size=router_queue_size)
    router_c = network_3.Router(name='C',
                                intf_count=1,
                                max_queue_size=router_queue_size)
    router_d = network_3.Router(name='D',
                                intf_count=2,
                                max_queue_size=router_queue_size)

    #DL: Adding the routing information to tables
    router_a.addToTable((1271, 0))
    router_a.addToTable((1272, 1))
    router_d.addToTable((0, 1291))
Esempio n. 6
0
    #create network nodes
    client1 = network_3.Host(1)
    object_L.append(client1)
    client2 = network_3.Host(2)
    object_L.append(client2)
    server3 = network_3.Host(3)
    object_L.append(server3)
    server4 = network_3.Host(4)
    object_L.append(server4)

    convergingRoutingTable = {'0001': 0, '0002': 1}
    singleRouteRoutingTable = {'0001': 0, '0002': 0}

    router_a = network_3.Router(name='A',
                                intf_count=2,
                                max_queue_size=router_queue_size,
                                routingTable=convergingRoutingTable)
    object_L.append(router_a)
    router_b = network_3.Router(name='B',
                                intf_count=1,
                                max_queue_size=router_queue_size,
                                routingTable=singleRouteRoutingTable)
    object_L.append(router_b)
    router_c = network_3.Router(name='C',
                                intf_count=1,
                                max_queue_size=router_queue_size,
                                routingTable=singleRouteRoutingTable)
    object_L.append(router_c)
    router_d = network_3.Router(name='D',
                                intf_count=2,
                                max_queue_size=router_queue_size,
Esempio n. 7
0
    routing_table_c = {0: 0}

    routing_table_d = {0: 0, 1: 1}

    #create network nodes
    client1 = network.Host(1)
    object_L.append(client1)
    client2 = network.Host(2)
    object_L.append(client2)
    server1 = network.Host(3)
    object_L.append(server1)
    server2 = network.Host(4)
    object_L.append(server2)
    router_a = network.Router(name='A',
                              intf_count=2,
                              max_queue_size=router_queue_size,
                              routing_table=routing_table_a)
    object_L.append(router_a)
    router_b = network.Router(name='B',
                              intf_count=1,
                              max_queue_size=router_queue_size,
                              routing_table=routing_table_b)
    object_L.append(router_b)
    router_c = network.Router(name='C',
                              intf_count=1,
                              max_queue_size=router_queue_size,
                              routing_table=routing_table_c)
    object_L.append(router_c)
    router_d = network.Router(name='D',
                              intf_count=2,
                              max_queue_size=router_queue_size,
Esempio n. 8
0
    #HOSTS

    client_1 = network.Host(1)
    client_2 = network.Host(2)
    client_3 = network.Host(3)
    client_4 = network.Host(4)

    object_L.append(client_1)
    object_L.append(client_2)
    object_L.append(client_3)
    object_L.append(client_4)

    #ROUTERS

    router_a = network.Router(name='A',
                              intf_count=2,
                              max_queue_size=router_queue_size,
                              routing_dictionary=table["A"])
    router_b = network.Router(name='B',
                              intf_count=1,
                              max_queue_size=router_queue_size,
                              routing_dictionary=table["B"])
    router_c = network.Router(name='C',
                              intf_count=1,
                              max_queue_size=router_queue_size,
                              routing_dictionary=table["C"])
    router_d = network.Router(name='D',
                              intf_count=2,
                              max_queue_size=router_queue_size,
                              routing_dictionary=table["D"])

    object_L.append(router_a)
if __name__ == '__main__':
    object_L = []  #keeps track of objects, so we can kill their threads

    #create network nodes
    # create clients and server Host objects and add them to a list of objects
    client1 = network_3.Host(1)
    object_L.append(client1)
    client2 = network_3.Host(2)
    object_L.append(client2)
    server1 = network_3.Host(3)
    object_L.append(server1)
    server2 = network_3.Host(4)
    object_L.append(server2)
    # create the Router objects
    router_a = network_3.Router(name='A',
                                intf_count=2,
                                max_queue_size=router_queue_size,
                                routingTable=routeA)
    router_b = network_3.Router(name='B',
                                intf_count=1,
                                max_queue_size=router_queue_size,
                                routingTable=routeB)
    router_c = network_3.Router(name='C',
                                intf_count=1,
                                max_queue_size=router_queue_size,
                                routingTable=routeC)
    router_d = network_3.Router(name='D',
                                intf_count=2,
                                max_queue_size=router_queue_size,
                                routingTable=routeD)
    object_L.append(router_a)
    object_L.append(router_b)
    # create network nodes
    host_1 = network_3.Host(1)
    object_L.append(host_1)

    host_2 = network_3.Host(2)
    object_L.append(host_2)

    host_3 = network_3.Host(3)
    object_L.append(host_3)

    host_4 = network_3.Host(4)
    object_L.append(host_4)

    router_a = network_3.Router(routing_dict,
                                name='router_a',
                                intf_count=2,
                                max_queue_size=router_queue_size)
    object_L.append(router_a)

    router_b = network_3.Router(routing_dict,
                                name='router_b',
                                intf_count=1,
                                max_queue_size=router_queue_size)
    object_L.append(router_b)

    router_c = network_3.Router(routing_dict,
                                name='router_c',
                                intf_count=1,
                                max_queue_size=router_queue_size)
    object_L.append(router_c)
Esempio n. 11
0
##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_a = network_3.Host(1)
    client_b = network_3.Host(2)
    object_L.append(client_a)
    object_L.append(client_b)
    server = network_3.Host(3)
    object_L.append(server)
    router_a = network_3.Router(name='A', intf_count=2, max_queue_size=router_queue_size, outgoing_l_mtu=50, routing_table={1: 0, 2: 1})
    router_b = network_3.Router(name='B', intf_count=1, max_queue_size=router_queue_size, outgoing_l_mtu=50, routing_table={1: 0, 2: 0})
    router_c = network_3.Router(name='C', intf_count=1, max_queue_size=router_queue_size, outgoing_l_mtu=50, routing_table={1: 0, 2: 0})
    router_d = network_3.Router(name='D', intf_count=2, max_queue_size=router_queue_size, outgoing_l_mtu=50, routing_table={1: 0, 2: 0})
    object_L.append(router_a)
    object_L.append(router_b)
    object_L.append(router_c)
    object_L.append(router_d)
    
    #create a Link Layer to keep track of links between network nodes
    link_layer = link_3.LinkLayer()
    object_L.append(link_layer)
    
    #add all the links
    link_layer.add_link(link_3.Link(client_a, 0, router_a, 0, 50))
    link_layer.add_link(link_3.Link(client_b, 0, router_a, 0, 50))
Esempio n. 12
0
if __name__ == '__main__':
    object_L = []  #keeps track of objects, so we can kill their threads

    #create network nodes
    client1 = network_3.Host(1)  #need to add 4 clients
    object_L.append(client1)
    client2 = network_3.Host(2)  #need to add 4 clients
    object_L.append(client2)
    client3 = network_3.Host(3)  #need to add 4 clients
    object_L.append(client3)
    client4 = network_3.Host(4)  #need to add 4 clients
    object_L.append(client4)
    router_a = network_3.Router(name='A',
                                intf_count=2,
                                max_queue_size=router_queue_size,
                                fTable={
                                    1: 0,
                                    2: 1
                                })
    object_L.append(router_a)
    router_b = network_3.Router(name='B',
                                intf_count=1,
                                max_queue_size=router_queue_size,
                                fTable={1: 0})
    object_L.append(router_b)
    router_c = network_3.Router(name='C',
                                intf_count=1,
                                max_queue_size=router_queue_size,
                                fTable={2: 0})
    object_L.append(router_c)
    router_d = network_3.Router(name='D',
Esempio n. 13
0
 #create routing tables
 table_a = {1: 0, 2: 1}
 table_b = {1: 0}
 table_c = {2: 0}
 table_d = {1: 0, 2: 1}
 #create network nodes
 client_1 = network_3.Host(1)
 object_L.append(client_1)
 client_2 = network_3.Host(2)
 object_L.append(client_2)
 server_1 = network_3.Host(3)
 object_L.append(server_1)
 server_2 = network_3.Host(4)
 object_L.append(server_2)
 router_a = network_3.Router(name='A',
                             table=table_a,
                             intf_count=2,
                             max_queue_size=router_queue_size)
 object_L.append(router_a)
 router_b = network_3.Router(name='B',
                             table=table_b,
                             intf_count=1,
                             max_queue_size=router_queue_size)
 object_L.append(router_b)
 router_c = network_3.Router(name='C',
                             table=table_c,
                             intf_count=1,
                             max_queue_size=router_queue_size)
 object_L.append(router_c)
 router_d = network_3.Router(name='D',
                             table=table_d,
                             intf_count=2,
Esempio n. 14
0
    object_L = [] #keeps track of objects, so we can kill their threads

    #create network nodes
    host_1 = network_3.Host(1) #Host 1
    object_L.append(host_1)

    host_2 = network_3.Host(2) #Host 2
    object_L.append(host_2)

    host_3 = network_3.Host(3) #Host 3
    object_L.append(host_3)

    host_4 = network_3.Host(4) #Host 4
    object_L.append(host_4)

    router_a = network_3.Router(name='A', intf_count=2, max_queue_size=router_queue_size, rtable=routing_table_A) #Router A
    object_L.append(router_a)

    router_b = network_3.Router(name='B', intf_count=1, max_queue_size=router_queue_size, rtable=routing_table_B) #Router B
    object_L.append(router_b)

    router_c = network_3.Router(name='C', intf_count=1, max_queue_size=router_queue_size, rtable=routing_table_C) #Router C
    object_L.append(router_c)

    router_d = network_3.Router(name='D', intf_count=2, max_queue_size=router_queue_size, rtable=routing_table_D) #Router D
    object_L.append(router_d)


    #create a Link Layer to keep track of links between network nodes
    link_layer = link_3.LinkLayer()
    object_L.append(link_layer)
Esempio n. 15
0
    client_1 = network_3.Host(1)
    object_L.append(client_1)
    client_2 = network_3.Host(2)
    object_L.append(client_2)

    server_1 = network_3.Host(3)
    object_L.append(server_1)
    server_2 = network_3.Host(4)
    object_L.append(server_2)

    table_a = [
        (2, 3), (3, 4)
    ]  #first tuple entry is output port, second address to forward to

    router_a = network_3.Router(name='A',
                                intf_count=4,
                                max_queue_size=router_queue_size,
                                forward_t=table_a)
    object_L.append(router_a)

    table_b = [(1, 3)]

    router_b = network_3.Router(name='B',
                                intf_count=2,
                                max_queue_size=router_queue_size,
                                forward_t=table_b)
    object_L.append(router_b)

    table_c = [(1, 4)]

    router_c = network_3.Router(name='C',
                                intf_count=2,
Esempio n. 16
0
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
    host_1 = network_3.Host(1)
    object_L.append(host_1)
    host_2 = network_3.Host(2)
    object_L.append(host_2)
    host_3 = network_3.Host(3)
    object_L.append(host_3)
    host_4 = network_3.Host(4)
    object_L.append(host_4)
    # key-interface value-destination
    router_a = network_3.Router(name='A', intf_count=2,
                                max_queue_size=router_queue_size, routing_table={3:0, 4:1})
    router_b = network_3.Router(name='B', intf_count=1,
                                max_queue_size=router_queue_size, routing_table={3:0, 4:0})
    router_c = network_3.Router(name='C', intf_count=1,
                                max_queue_size=router_queue_size, routing_table={3:0, 4:0})
    router_d = network_3.Router(name='D', intf_count=2,
                                max_queue_size=router_queue_size, routing_table={3:0, 4:1})
    object_L.append(router_a)
    object_L.append(router_b)
    object_L.append(router_c)
    object_L.append(router_d)

    #create a Link Layer to keep track of links between network nodes
    link_layer = link_3.LinkLayer()
    object_L.append(link_layer)
Esempio n. 17
0
    # Host 2
    client2 = network.Host(2)
    object_L.append(client2)

    # Host 3
    server1 = network.Host(3)
    object_L.append(server1)

    # Host 4
    server2 = network.Host(4)
    object_L.append(server2)

    # Router A
    router_a = network.Router(name='A',
                              intf_count=len(table_A),
                              max_queue_size=router_queue_size,
                              routing_table=table_A)
    object_L.append(router_a)

    # Router B
    router_b = network.Router(name='B',
                              intf_count=len(table_B),
                              max_queue_size=router_queue_size,
                              routing_table=table_B)
    object_L.append(router_b)

    # Router C
    router_c = network.Router(name='C',
                              intf_count=len(table_C),
                              max_queue_size=router_queue_size,
                              routing_table=table_C)
Esempio n. 18
0
    client2 = network_3.Host(2)
    server1 = network_3.Host(3)
    server2 = network_3.Host(4)
    #add nodes to list
    object_L.append(client1)
    object_L.append(client2)
    object_L.append(server1)
    object_L.append(server2)
    #create router forwarding tables
    #destination:outInterface
    routeTableA = {3:0, 4:1}
    routeTableB = {3:0}
    routeTableC = {4:0}
    routeTableD = {3:0, 4:1}
    #create routers
    router_a = network_3.Router(routeTableA, name='A', intf_count=2,max_queue_size=router_queue_size)
    router_b = network_3.Router(routeTableB, name='B', intf_count=1,max_queue_size=router_queue_size)
    router_c = network_3.Router(routeTableC, name='C', intf_count=1,max_queue_size=router_queue_size)
    router_d = network_3.Router(routeTableD, name='D', intf_count=2,max_queue_size=router_queue_size)
    #add routers to list
    object_L.append(router_a)
    object_L.append(router_b)
    object_L.append(router_c)
    object_L.append(router_d)


    #create a Link Layer to keep track of links between network nodes
    link_layer = link_3.LinkLayer()
    object_L.append(link_layer)
    print(len(msg_S))
    #add all the links