#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)
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,
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)
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))
#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,
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,
#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)
##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))
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',
#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,
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)
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,
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)
# 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)
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