next up previous contents
Next: F. Theoretical Rate Calculation Up: Warrens Ph.D Thesis Previous: D. Complexity of RBCC   Contents

Subsections


E. REAL NetLanguage Files for Simulated Scenarios

Here are the most relevant parts of the REAL input files for the network scenarios described in Chapter 9. I have removed some mandatory lines that control the underlying NEST simulator on which REAL is based. In each file given, the keywords SRC, DST and ROUTER must be replaced with appropriate function names. The triplets required are given below:

TRUMP/RBCC:
trump, trsink, rbcc_router, respectively.
TCP Tahoe:
jk_tahoe, sink, router, respectively.
TCP Reno:
jk_reno, sink, router, respectively.
TCP Vegas:
vegas, sink, router, respectively.

All scenarios use the following global parameters:

real_params {
        scale_factor = 1.0;                     # Scale time to seconds
        ack_size = 40;                          # ACK size in octets
        random_seed = 23;                       # Seed to random()
        buffer_size = 15000;                    # Output iface buf size (bytes)
        ftp_pkt_size = 1500;                    # Data packet size
        ftp_window = 600;                       # Max window size in pkts
        selack_size= 1;                         # Size of selective ack bitmap
        decongestion_mechanism = 1;             # Drop Tail
        sch_policy = 1;                         # First Come, First Served
        util_time= 2.0;                         # Measure link util every 2sec
}

Also note that the `thresh 5 0.75' parameter to the router is ignored by the existing REAL router code, and is only used by the RBCC router code.

1 Scenario 1

nodes{ 
        default{
                function = SRC;                 # Source
                start_time = 0,1000;            # Start at 1 millisecond
                plot = true;                    # Plot this node
                num_pkts = 1000;                # Num packets to send
                }

        node 1 { function = ROUTER; params= 'thresh 5 0.75';  }
        node 2 { function = ROUTER; params= 'thresh 5 0.75';  }
        node 3 { function = ROUTER; params= 'thresh 5 0.75';  }
        node 4 { function = DST; }
        node 5 { dest = 4; }
}

# Bandwidth in bps, latency in microseconds
edges{
        default { bandwidth = 10000000; latency = 1; }
        { 1 -> 2; }
        { 2 -> 3; bandwidth = 1000000; latency = 30; }
        { 4 -> 3; }
        { 5 -> 1; }
}

2 Scenario 2

nodes{ 
        default{
                function = SRC;                 # Source
                start_time = 0,100;             # Start at 0 + 100 microseconds
                plot = true;                    # Plot this node
                num_pkts = 1000;                # Num packets to send
                }

        node 1 { function = ROUTER; params= 'thresh 5 0.75'; }
        node 2 { function = ROUTER; params= 'thresh 5 0.75'; }
        node 3 { function = ROUTER; params= 'thresh 5 0.75'; }
        node 4 { function = ROUTER; params= 'thresh 5 0.75'; }
        node 9 { function = DST; }
        node 10 { function = DST; }
        node 11 { function = DST; }
        node 12 { function = DST; }

        node 5 { dest = 10; }
        node 6 { start_time = 140,0; dest = 11; num_pkts= 100; }
        node 7 { start_time = 12,0; dest = 12;}
        node 8 { start_time = 18,0; dest = 9;}
}

# Bandwidth in bps, latency in microseconds
edges{
        default{ bandwidth = 10000000; latency = 1; }
        { 1 -> 2; }
        { 2 -> 3; bandwidth = 64000; latency = 1000000;}
        { 3 -> 4; }
        { 5 -> 1; }
        { 6 -> 1; }
        { 7 -> 1; }
        { 8 -> 3; }
        { 9 -> 2; }
        { 10 -> 3; }
        { 11 -> 4; }
        { 12 -> 4; }
}

Scenario 2a is the same as Scenario 2, but sources 6 and 7 have finite desired bandwidths of 18kbps and 32kbps, respectively; these are set in the corresponding node lines with the options peak = 18000.0; and peak = 32000.0;.

3 Scenario 3

nodes{ 
        default{
                function = SRC;
                start_time = 0,100;             # Start at 0 + 100 microseconds
                plot = true;                    # Plot this node
                num_pkts = 1000;                # Num packets to send
                }

        node 1 { function = ROUTER; params= 'thresh 5 0.75';  }
        node 2 { function = ROUTER; params= 'thresh 5 0.75';  }
        node 3 { function = ROUTER; params= 'thresh 5 0.75';  }
        node 4 { function = ROUTER; params= 'thresh 5 0.75';  }
        node 5 { function = ROUTER; params= 'thresh 5 0.75';  }

        node 10 { function = DST; }
        node 11 { function = DST; }
        node 12 { function = DST; }
        node 13 { function = DST; }

        node 6 { dest = 11; }
        node 9 { start_time = 5,0;  dest = 10; }
        node 7 { start_time = 10,0; dest = 12; num_pkts= 100; }
        node 8 { start_time = 15,0; dest = 13; num_pkts= 100; }
}

# Bandwidth in bps, latency in microseconds
edges{
        default{ bandwidth = 10000000; latency = 1; }
        { 1 -> 2; }
        { 2 -> 3; bandwidth = 512000; latency = 1000000;}
        { 3 -> 4; bandwidth = 128000; latency = 1000000;}
        { 4 -> 5; bandwidth = 64000;  latency = 1000000;}

        { 6 -> 1; }
        { 7 -> 3; }
        { 8 -> 4; }
        { 9 -> 4; }

        { 10 -> 2; }
        { 11 -> 5; }
        { 12 -> 5; }
        { 13 -> 5; }
}

4 Scenario 4

nodes{ 
        default{
                function = SRC;
                plot = false;                   # Don't plot this node
                num_pkts = 1000;                # Num packets to send
                }

        node 1 { start_time= 1,0; dest = 9; plot=true; }
        node 2 { start_time= 2,0; dest = 10; plot=true; }
        node 3 { start_time= 3,0; dest = 11; plot=true; }
        node 4 { start_time= 4,0; dest = 12; plot=true; }
        node 5 { start_time= 5,0; dest = 13; plot=true; }
        node 6 { start_time= 6,0; dest = 14; plot=true; }
        node 7 { start_time= 7,0; dest = 15; plot=true; }
        node 8 { start_time= 8,0; dest = 16; plot=true; }
        node 9 { function = DST;  plot=true; }
        node 10 { function = DST; plot=true; }
        node 11 { function = DST; plot=true; }
        node 12 { function = DST; plot=true; }
        node 13 { function = DST; plot=true; }
        node 14 { function = DST; plot=true; }
        node 15 { function = DST; plot=true; }
        node 16 { function = DST; plot=true; }

        node 17 { function = ROUTER; params= 'thresh 5 0.75';  }
        node 18 { function = ROUTER; params= 'thresh 5 0.75';  }
        node 19 { function = ROUTER; params= 'thresh 5 0.75';  }
        node 20 { function = ROUTER; params= 'thresh 5 0.75';  }
        node 21 { function = ROUTER; plot=true; params= 'thresh 5 0.75';  }
        node 22 { function = ROUTER; plot=true; params= 'thresh 5 0.75';  }
        node 23 { function = ROUTER; plot=true; params= 'thresh 5 0.75';  }
        node 24 { function = ROUTER; plot=true; params= 'thresh 5 0.75';  }
        node 25 { function = ROUTER; params= 'thresh 5 0.75';  }
        node 26 { function = ROUTER; params= 'thresh 5 0.75';  }
        node 27 { function = ROUTER; params= 'thresh 5 0.75';  }
        node 28 { function = ROUTER; params= 'thresh 5 0.75';  }
        node 29 { function = ROUTER; params= 'thresh 5 0.75';  }
        node 30 { function = ROUTER; params= 'thresh 5 0.75';  }
}

# Bandwidth in bps, latency in microseconds
edges{
        default{ bandwidth = 10000000; latency = 1; }
        { 1 -> 17; }
        { 2 -> 17; }
        { 3 -> 18; }
        { 4 -> 18; }
        { 5 -> 19; }
        { 6 -> 19; }
        { 7 -> 20; }
        { 8 -> 20; }
        { 17 -> 21; }
        { 18 -> 21; }
        { 19 -> 22; }
        { 20 -> 22; }
        { 21 -> 23; }
        { 22 -> 23; }
        { 23 -> 24; bandwidth= 64000; latency= 1000000; }
        { 24 -> 25; }
        { 24 -> 26; }
        { 25 -> 27; }
        { 25 -> 28; }
        { 26 -> 29; }
        { 26 -> 30; }
        { 9 -> 27; }
        { 10 -> 27; }
        { 13 -> 28; }
        { 14 -> 28; }
        { 11 -> 29; }
        { 12 -> 29; }
        { 15 -> 30; }
        { 16 -> 30; }
}


5 Scenario 5

nodes{ 
        default{
                function = SRC;
                plot = true;
                num_pkts = 1000;                # Num packets to send
                }

        node 6 { start_time= 0,0;   dest = 18; }
        node 7 { start_time= 20,0;  dest = 24; }
        node 8 { start_time= 50,0;  dest = 21; num_pkts = 100; }
        node 9 { start_time= 60,0;  dest = 25; }
        node 10 { start_time= 61,0; dest = 23; }
        node 11 { start_time= 1,0;  dest = 16; }
        node 12 { start_time= 21,0; dest = 19; num_pkts = 100; }
        node 13 { start_time= 40,0; dest = 20; }
        node 14 { start_time= 41,0; dest = 22; num_pkts = 100; }
        node 15 { start_time= 49,0; dest = 17; }

        node 16 { function = DST; }
        node 17 { function = DST; }
        node 18 { function = DST; }
        node 19 { function = DST; }
        node 20 { function = DST; }
        node 21 { function = DST; }
        node 22 { function = DST; }
        node 23 { function = DST; }
        node 24 { function = DST; }
        node 25 { function = DST; }

        node 1 { function = ROUTER; plot=false; params= 'thresh 5 0.75';  }
        node 2 { function = ROUTER; params= 'thresh 5 0.75';  }
        node 3 { function = ROUTER; params= 'thresh 5 0.75';  }
        node 4 { function = ROUTER; params= 'thresh 5 0.75';  }
        node 5 { function = ROUTER; plot=false; params= 'thresh 5 0.75';  }
}

# Bandwidth in bps, latency in microseconds
edges{
        default { bandwidth = 10000000; latency = 10; }
        { 6 -> 1; }
        { 7 -> 1; }
        { 16 -> 1; }
        { 17 -> 1; }
        { 8 -> 2; }
        { 9 -> 2; }
        { 18 -> 2; }
        { 19 -> 2; }
        { 10 -> 3; }
        { 11 -> 3; }
        { 20 -> 3; }
        { 21 -> 3; }
        { 12 -> 4; }
        { 13 -> 4; }
        { 22 -> 4; }
        { 23 -> 4; }
        { 14 -> 5; }
        { 15 -> 5; }
        { 24 -> 5; }
        { 25 -> 5; }

        { 1 -> 2; bandwidth= 1000000; latency= 5000; }
        { 2 -> 3; bandwidth= 100000; latency= 8000; }
        { 3 -> 4; bandwidth= 64000; latency= 800000; }
        { 4 -> 5; bandwidth= 1000000; latency= 10000; }
}


6 Scenario 6

nodes{ 
        default{
                function = SRC;
                start_time = 0,100;             # Start at 0 + 100 microseconds
                plot = true;                    # Plot this node
                num_pkts = 200;                 # Num packets to send
                }

        node 1 { function = ROUTER; plot=false; params= 'thresh 5 0.75'; }
        node 2 { function = ROUTER; params= 'thresh 5 0.75'; }
        node 3 { function = ROUTER; params= 'thresh 5 0.75'; }
        node 4 { function = ROUTER; params= 'thresh 5 0.75'; }
        node 5 { function = ROUTER; plot=false; params= 'thresh 5 0.75'; }

        node 8 { function = DST;  }
        node 10 { function = DST; }
        node 12 { function = DST; }
        node 14 { function = DST; }
        node 15 { function = DST; }

        node 6 { dest = 15; num_pkts = 1000; }
        node 7 { start_time =    1,0; dest =  8; }
        node 9 { start_time =   75,0; dest = 10; }
        node 11 { start_time = 110,0; dest = 12; }
        node 13 { start_time = 145,0; dest = 14; }
}

# Bandwidth in bps, latency in microseconds
edges{
        default{ bandwidth = 10000000; latency = 1; }
        { 1 -> 2; bandwidth = 64000; latency = 1000000;}
        { 2 -> 3; bandwidth = 64000; latency = 1000000;}
        { 3 -> 4; bandwidth = 64000; latency = 1000000;}
        { 4 -> 5; bandwidth = 64000; latency = 1000000;}
        { 6 -> 1; }
        { 7 -> 1; }
        { 8 -> 2; }
        { 9 -> 2; }
        { 10 -> 3; }
        { 11 -> 3; }
        { 12 -> 4; }
        { 13 -> 4; }
        { 14 -> 5; }
        { 15 -> 5; }
}


7 Scenario 7

nodes{ 
        default{
                function = SRC;                 # Source
                start_time = 0,100;             # Start at 0 + 100 microseconds
                plot = true;                    # Plot this node
                num_pkts = 1000;                # Num packets to send
                }

        node 1 { function = ROUTER; params= 'thresh 5 0.75'; }
        node 2 { function = ROUTER; params= 'thresh 5 0.75'; }
        node 3 { function = ROUTER; params= 'thresh 5 0.75'; }
        node 4 { function = ROUTER; params= 'thresh 5 0.75'; }
        node 9 { function = DST; }
        node 10 { function = DST; }
        node 11 { function = DST; }
        node 12 { function = DST; }

        node 5 { dest = 10; params= 'pktsize 70 1500'; }
        node 6 { start_time = 140,0; dest = 11;
                num_pkts= 100; params= 'pktsize 400 900'; }
        node 7 { start_time = 12,0; dest = 12; params= 'pktsize 700 1500'; }
        node 8 { start_time = 18,0; dest = 9; params= 'pktsize 900 1500';}
}

# Bandwidth in bps, latency in microseconds
edges{
        default{ bandwidth = 10000000; latency = 1; }
        { 1 -> 2; }
        { 2 -> 3; bandwidth = 64000; latency = 1000000;}
        { 3 -> 4; }
        { 5 -> 1; }
        { 6 -> 1; }
        { 7 -> 1; }
        { 8 -> 3; }
        { 9 -> 2; }
        { 10 -> 3; }
        { 11 -> 4; }
        { 12 -> 4; }
}


8 Scenario 8

nodes{ 
        default{
                function = SRC;                 # Source
                start_time = 0,100;             # Start at 0 + 100 microseconds
                plot = true;                    # Plot this node
                num_pkts = 1000;                # Num packets to send
                }

        node 1 { function = ROUTER;
                params='thresh 5 0.75 route 10 via 13 at 100.0'; }
        node 2 { function = ROUTER; params='thresh 5 0.75'; }
        node 3 { function = ROUTER;
                params='thresh 5 0.75  route 5 via 13 at 100.0'; }
        node 4 { function = ROUTER; plot=false; params='thresh 5 0.75'; }
        node 13 { function = ROUTER; params='thresh 5 0.75'; }
        node 9 { function = DST;  }
        node 10 { function = DST; }
        node 11 { function = DST; }
        node 12 { function = DST; }

        node 5 { dest = 10; }
        node 6 { start_time = 140,0; dest = 11; num_pkts= 100; }
        node 7 { start_time = 12,0; dest = 12;}
        node 8 { start_time = 18,0; dest = 9;}
}

# Bandwidth in bps, latency in microseconds
edges{
        default{ bandwidth = 10000000; latency = 1; }
        { 1 -> 2; }
        { 2 -> 3; bandwidth = 64000; latency = 1000000;}
        { 3 -> 4; }
        { 5 -> 1; }
        { 6 -> 1; }
        { 7 -> 1; }
        { 8 -> 3; }
        { 9 -> 2; }
        { 10 -> 3; }
        { 11 -> 4; }
        { 12 -> 4; }
        { 1 -> 13; bandwidth = 512000; latency = 10000;}
        { 3 -> 13; bandwidth = 512000; latency = 10000;}
}


next up previous contents
Next: F. Theoretical Rate Calculation Up: Warrens Ph.D Thesis Previous: D. Complexity of RBCC   Contents
Warren Toomey 2011-12-04