Abstract:
A simple, fair, good-performance bandwidth allocation algorithm for wireless networks is presented. Using a matrix of interlink interference and a list of links&#39; bandwidth requests, the algorithm can schedule link activities to obtain non-collision transmissions. All bandwidth requests are served fairly and near-optimally based on the heuristic algorithm. Bandwidth granted for each link is prorated based on its requested bandwidth, total requested bandwidth in the network, and network capacity. The algorithm can be used for centralized bandwidth allocation and works with any network topology, including mesh networks.

Description:
BACKGROUND OF THE INVENTION  
       [0001]     1. Technical Field  
         [0002]     The invention relates to bandwidth allocation in wireless networks. More particularly, the invention relates to optimizing bandwidth allocation for a fixed wireless network using a simple centralized algorithm to create a fair and efficient, high-performance bandwidth allocation schedule.  
         [0003]     2. Description of the Prior Art  
         [0004]     The allocation of bandwidth on demand in wireless access networks is important to provide high call-carrying capacity yet prevent degradation in the quality of a link due to interference arising from a number of simultaneous transmissions. The problem of bandwidth allocation is one of allocation of radio resources for the duration of a transmission in both the uplink and downlink directions. The capacity of any cell is reached when the current resource utilization prevents the admission of additional calls, even at the lowest rate.  
         [0005]     Wireless networks are expected to support real-time interactive multimedia traffic and must be able, therefore, to provide their users with Quality-of-Service (QoS) guarantees. Although the QoS provisioning problem arises in wireline networks as well, mobility of hosts and scarcity of bandwidth makes QoS provisioning a challenging task in wireless networks. One problem with optimizing bandwidth allocation in a fixed wireless network concerns that fact that, given the constraints of the interference matrix and a list of bandwidth requests, it is difficult to find a schedule that makes optimal use of total network capacity and fairly satisfies bandwidth requests.  
         [0006]     An equivalent problem is that of finding an optimal schedule that satisfies all requests using the least amount of network resources where, if the average activity concurrency is defined as the average number of concurrent active links of a schedule, then the optimal schedule is the one having the highest average activity concurrency.  
         [0007]     It would be advantageous to provide a method and apparatus for optimizing bandwidth allocation for a fixed wireless network using a simple centralized algorithm to create a fair and efficient, high-performance bandwidth allocation schedule.  
       SUMMARY OF THE INVENTION  
       [0008]     The invention provides a method and apparatus for optimizing bandwidth allocation for a fixed wireless network using a simple centralized algorithm to create a fair and efficient, high-performance bandwidth allocation schedule. A simple, fair, good-performance bandwidth allocation algorithm for wireless networks is presented. Using a matrix of interlink interference and a list of links&#39; bandwidth requests, the algorithm can schedule link activities to obtain non-collision transmissions. All bandwidth requests are served fairly and near-optimally based on the heuristic algorithm. Bandwidth granted for each link is prorated based on its requested bandwidth, total requested bandwidth in the network, and network capacity. The algorithm can be used for centralized bandwidth allocation and works with any network topology, including mesh networks.  
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0009]      FIG. 1  is a tree diagram that shows a network having eleven nodes and twenty directional links;  
         [0010]      FIG. 2  is a block schematic diagram showing a system for bandwidth allocation in a fixed wireless network according to the invention; and  
         [0011]      FIG. 3  is a flow diagram showing an algorithm for bandwidth allocation in a fixed wireless network according to the invention. 
     
    
     DETAILED DESCRIPTION OF THE INVENTION  
       [0012]     The invention provides a method and apparatus for optimizing bandwidth allocation for a fixed wireless network using a simple centralized algorithm to create a fair and efficient, high-performance bandwidth allocation schedule. Bandwidth allocation is typically based upon the requests of each individual link, all of the bandwidth requests in the network, link capacity, and inter-link interference. Thus, knowledge of the whole network, in terms of interference, eligible links, and link bandwidth requests is needed to create a bandwidth allocation schedule.  
         [0013]     In the presently preferred embodiment of the invention, only one entity, referred to herein as a hub, needs this global view to compute the bandwidth allocation schedule. The bandwidth allocation schedule does not contain the actual slot assignment for each node. Rather, each node computes a slot assignment using a deterministic algorithm. Each grant in the bandwidth allocation schedule is a small integer. The bandwidth allocation schedule is not required to be sent periodically. The bandwidth allocation schedule is sent only when it changes. Hence, only a small amount of control traffic is used for dispatching the bandwidth allocation schedule.  
         [heading-0014]     Network Model  
         [0015]     For purposes of the discussion herein, a network is defined as a set of links between nodes. For example, the unidirectional link between Node I and Node J is called I ij .  
         [0016]     Suppose that there are N nodes and M directional links (I ij  and I ji  are considered different links) in a network. The interference between links in the network determines which links in the network can operate simultaneously. In other words, if a link I ij  is active there exists a set of links L ij  which cannot all be active at the same time. The set of all links L ij  in the network constitute the interference matrix of the network.  
         [0017]     For purposes of the discussion herein, the degree of interference α(I ij , L) of a directional link I ij  in a set L of links is defined as the number of links in set L that cannot be active due to interference while link I ij  is active.  
         [0018]     The bandwidth needed by links to carry actual traffic over a specific time period is represented herein as a set of link bandwidth requests. The request may be zero. In that case, no traffic is to be carried over the link. Because link capacities vary depending on various link parameters, bandwidth requests are expressed in unit of credits, not bps (bits/sec). A credit is a unit the resource bandwidth allocation algorithm uses to maintain fair bandwidth distribution between links. It is the result of normalization of requested bandwidth, in terms of bps, with respect to the corresponding link capacity.  
       EXAMPLE 1  
       [0019]      FIG. 1  is a tree diagram that shows a network having eleven nodes and twenty directional links: 
        {I 0,1 , I 1,0 , I 0,2 , I 2,0 , I 1,3 , I 3,1 , I 1,4 , I 4,1 , I 2,5 , I 5,2 , I 2,6 , I 6,2 , I 2,7 , I 7,2 , I 4,8 , I 8,4 , I 5,9 , I 95 , I 6,10 , I 10,6 }         
         [0021]     Suppose that the set of links L 0,1  that gets interference, i.e. that cannot be active while link I 0,1  is active, is: 
        L 0,1 ={I 1,0 , I 0,2 , I 2,0 , I 1,3 , I 3,1 , I 1,4 , I 4,1 , I 5,9 , I 8,4 }       
 
         [0023]     Similarly, suppose there are the following interference sets: 
        L 1,0 ={I 0,1 , I 0,2 , I 2,0 , I 1,3 , I 3,1 , I 1,4 , I 4,1 , I 9,5 , I 4,8 }    L 0,2 ={I 1,0 , I 0,1 , I 2,0 , I 2,5 , I 5,2 , I 2,6 , I 6,2 , I 2,7 , I 7,2 I 6,10 }    L 2,10 ={I 1,0 , I 0,1 , I 0,2 , I 2,5 , I 5,2 , I 2,6 , I 6,2 , I 2,7 , I 7,2 , I 10,6 }    L 1,3 ={I 3,1 , I 1,4 , I 4,1 , I 0,1 , I 1,0 }    L 3,1 ={I 1,3 , I 1,4 , I 4,1 , I 0,1 , I 1,0 }    L 1,4 ={I 4,1 , I 1,3 , I 3,1 , I 1,0 , I 0,1 , I 4,8 , I 8,4 , I 2,5 , I 7,2 }    L 4,1 ={I 1,4 , I 1,3 , I 3,1 , I 1,0 , I 0,1 , I 4,8 , I 8,4 , I 5,2 , I 2,7 }    L 2,5 ={I 5,2 , I 0,2 , I 2,0 , I 2,6 , I 6,2 , I 2,7 , I 7,2 , I 5,9 , I 9,5 , I 1,4 }    L 5,2 ={I 2,5 , I 0,2 , I 2,0 , I 2,6 , I 6,2 , I 2,7 , I 7,2 , I 5,9 , I 9,5 I 4,1 }    L 2,6 ={I 6,2 , I 0,2 , I 2,0 , I 2,5 , I 5,2 , I 2,7 , I 7,2 , I 6,10 , I 10,6 }    L 6,2 ={I 2,6 , I 0,2 , I 2,0 , I 2,5 , I 5,2 , I 2,7 , I 7,2 , I 6,10 , I 10,6 }    L 2,7 ={I 7,2 , I 0,2 , I 2,0 , I 2,5 , I 5,2 , I 2,6 , I 6,2 , I 4,1 }    L 7,2 ={I 2,7 , I 0,2 , I 2,0 , I 2,5 , I 5,2 , I 2,6 , I 6,2 , I 1,4 }    L 4,8 ={I 8,4 , I 1,4 , I 4,1 , I 1,0 }    L 8,4 ={I 4,8 , I 1,4 , I 4,1 , I 0,1 }    L 5,9 ={I 9,5 , I 2,5 , I 5,2 , I 0,1 }    L 9,5 ={I 5,9 , I 2,5 , I 5,2 , I 1,0 }    L 6,10 ={I 10,6 , I 2,6 , I 6,2 , I 0,2 }    L 10,6 ={I 6,10 , I 2,6 , I 6,2 , I 2,0 }       
 
         [0043]     Equivalently, the interference can be expressed using the interference matrix I shown in Table 1 below.  
                                                                                                                                                                                           TABLE 1                           Interference Matrix I                I 0,1     I 1,0     I 0,2     I 2,0     I 1,3     I 3,1     I 1,4     I 4,1     I 2,5     I 5,2     I 2,6     I 6,2     I 2,7     I 7,2     I 4,8     I 8,4     I 5,9     I 9,5     I 6,10     I 10,6                          I 0,1         1   1   1   1   1   1   1                               1   1                   I 1,0     1       1   1   1   1   1   1                           1           1       I 0,2     1   1       1                   1   1   1   1   1   1                   1       I 2,0     1   1   1                       1   1   1   1   1   1                       1       I 1,3     1   1               1   1   1       I 3,1     1   1           1       1   1       I 1,4     1   1           1   1       1   1                   1   1   1       I 4,1     1   1           1   1   1           1           1       1   1       I 2,5             1   1           1           1   1   1   1   1           1   1       I 5,2             1   1               1   1       1   1   1   1           1   1       I 2,6             1   1                   1   1       1   1   1                   1   1       I 6,2             1   1                   1   1   1       1   1                   1   1       I 2,7             1   1               1   1   1   1   1       1       I 7,2             1   1           1       1   1   1   1   1       I 4,8         1                   1   1                               1       I 8,4     1                       1   1                           1       I 5,9     1                               1   1                               1       I 9,5         1                           1   1                           1       I 6,10             1                               1   1                               1       I 10,6                 1                           1   1                           1                  
 
         [0044]     Number 1 in the matrix of Table 1 shows that links in a corresponding row and column cannot be active at the same time. Empty boxes in the matrix represent 0s.  
         [0045]     A link bandwidth request is expressed in terms of the link capacity. Suppose that 64 credits are equivalent to full link capacity. If a link is given 64 credits, that link can be active all the time. If a link is given 32 credits, that link is active 50% of the time.  
         [0046]     Suppose at a particular time, there exist the following bandwidth requests in credits: 
        R 0,2 =35     R 2,5 =20     R 2,6 =15     R 5,9 =10     R 6,10 =10     R 3,1 =10     R 1,0 =10     R 0,1 =5        
 
         [0055]     The set of links requesting bandwidth is: 
        L={I 0,2 , I 2,5 , I 2,6 , I 5,9 , I 6,10 , I 3,1 , I 1,0 , I 0,1 }       
 
         [0057]     Using the interference matrix I, the degree of interference of I 0,2  in this set is computed as follows: 
 
α( I   0,2   , L )= I[I   0,2   ][I   2,5   ]+I[I   0,2   ][I   2,6   ]+I[I   0,2   ][I   5,9   ]+I[I   0,2   ][I   6,10   ]+I[I   0,2   ][I   3,1   ]+I[I   0,2   ][I   1,0   ]+I[I   0,2   ][I   0,1 ]=5 
 
         [0058]     Other degrees of interference can be computed similarly: 
 
α( I   2,5   , L )= I[I   2,5   ][I   0,2   ]+I[I   2,5   ][I   2,6   ]+I[I   2,5   ][I   5,9   ]+I[I   2,5   ][I   6,10   ]+I[I   2,5   ][I   3,1   ]+I[I   2,5   ][I   1,0   ]+I[I   2,5   ][I   0,1 ]=3 
 
α( I   2,6   , L )= I[I   2,6   ][I   0,2   ]+I[I   2,6   ][I   2,5   ]+I[I   2,6   ][I   5,9   ]+I[I   2,6   ][I   6,10   ]+I[I   2,6   ][I   3,1   ]+I[I   2,6   ][I   1,0   ]+I[I   2,6   ][I   0,1 ]=3 
 
α( I   5,9   , L )= I[I   5,9   ][I   0,2   ]⇄I[I   5,9   ][I   2,5   ]+I[I   5,9   ][I   2,6   ]+I[I   5,9   ][I   6,10   ]+I[I   5,9   ][I   3,1   ]+I[I   5,9   ][I   1,0   ]+I[I   5,9   ][I   0,1 ]=2 
 
α( I   6,10   , L )= I[I   6,10   ][I   0,2   ]+I[I   6,10   ][I   2,5   ]+I[I   6,10   ][I   2,6   ]+I[I   6,10   ][I   5,9   ]+I[I   6,10   ][I   3,1   ]+I[I   6,10   ][I   1,0   ]+I[I   6,10   ][I   0,1 ]=2 
 
α( I   3,1   , L )= I[I   3,1   ][I   0,2   ]+I[I   3,1   ][I   2,5   ]+I[I   3,1   ][I   2,6   ]+I[I   3,1   ][I   5,9   ]+I[I   3,1   ][I   6,10   ]+I[I   3,1   ][I   1,0   ]+I[I   3,1   ][I   0,1 ]=1 
 
α( I   1,0   , L )= I[I   1,0   ][I   0,2   ]+I[I   1,0   ][I   2,5   ]+I[I   1,0   ][I   2,6   ]+I[I   1,0   ][I   5,9   ]+I[I   1,0   ][I   6,10   ]+I[I   1,0   ][I   3,1   ]+I[I   1,0   ][I   0,1 ]=3 
 
α( I   0,1   , L )= I[I   0,1   ][I   0,2   ]+I[I   0,1   ][I   2,5   ]+I[I   0,1   ][I   2,6   ]+I[I   0,1   ][I   5,9   ]+I[I   0,1   ][I   6,10   ]+I[I   0,1   ][I   3,1   ]+I[I   0,1   ][I   1,0 ]=4 
 
 Problem Formulation 
 
         [0060]     Assume that time division multiple access (TDMA) techniques are used to multiplex link activities. Given the constraints of the interference matrix and a list of bandwidth requests, attempt to find a schedule to make optimal use of total network capacity and fairly satisfy bandwidth requests.  
         [0061]     An equivalent problem is to find an optimal schedule that satisfies all requests using the least amount of network resources, in this case, credits or time. If the average activity concurrency is defined as the average number of concurrent active links of a schedule, then the optimal schedule is the one having the highest average activity concurrency.  
         [0062]     A schedule specifies when a set of links are active and also specifies the members of the set. Mathematically, a schedule S can be expressed as: 
 
 S ={( L   i   , G )| G   i  is the credits assigned to set of links  L   i , 
 
 L i  is the set of links that can be all active at the same time without interfering with each other}
 
       EXAMPLE 2  
       [0064]     Continuing with Example 1 above, the following is one possible schedule for links requesting bandwidth: 
        S={({I 5,9 , I 6,10 , I 3,1 }, 10), ({I 0,2 }, 35), ({I 2,6 , I 0,1 }5), ({I 2,6 , I 1,0 }10), ({I 2,5 }, 20)}       
 
         [0066]     This schedule uses 10+35+5+10+20=80 credits to satisfy 35+20+15+10+10+10+10+5=115 requested credits. The average activity concurrency is 115/80=1.4375.  
         [0067]     This schedule is not necessarily the best schedule for this example. In fact, using the algorithm described in detail below, one can find a better schedule using less credits while still satisfying all bandwidth requests.  
         [0068]     An optimal schedule must satisfy the following conditions:  
         [0069]     For any link, granted credits equals requested credits 
 
Σ Iijk⊂Li G i =R jk  
 
         [0070]     Minimal total network resource spent 
 
(Σ G   i )&lt;=(Σ G′   i ) for ∀ S′ ={( L′   i   , G′   i )}
 
         [0071]     Because this problem is NP-hard, a heuristic algorithm is disclosed herein for a near optimal solution. For purposes of the discussion herein, a problem is NP-hard if an algorithm for solving it can be translated into one for solving any other NP-problem, i.e. nondeterministic polynomial time problem. NP-hard therefore means “at least as hard as any NP-problem,” although it might, in fact, be harder.  
         [0072]     Simulations show that in many cases this algorithm generates optimal schedules; and in cases that it does not, the schedules are usually close to optimal and are always better than average.  
         [heading-0073]     Bandwidth Allocation Algorithm  
         [0074]     The algorithm disclosed herein is based on the assumption that there exists a centralized node (hub) in the network that coordinates all network activities (see  FIG. 2 ). The hub  24  keeps the following data structures to represent its knowledge of the network: 
        Interference matrix  25  (defined above). It is important to note that interference matrix is symmetrical.     Topology matrix  26 : defines valid links that can transmit/receive data. This is a proper subset of the interference matrix.     A list of credit request tokens  27 . Each token represents a directional link that needs bandwidth.        
 
         [0078]     Assume that each node  20 ,  22  in the network conveys its knowledge of interference, topology, and its bandwidth needs to the hub. The actual mechanism for transporting this information to the hub is within the knowledge of those skilled in the art and is, therefore, not discussed in detail herein. The hub collects this information from individual nodes and constructs the interference matrix, topology matrix, and list of credit tokens to have a complete view of the network.  
         [0079]     The bandwidth allocation algorithm running at hub is described as followed (see  FIG. 3 ): 
        1. Sort credit request tokens in the descending order of the product of requested credits and degree of interference α(I ij , L), where L is the set of links requesting for credits ( 100 ).     2. Pick the first token having a largest product ( 102 ). This is the first candidate of the set of links to be allocated credit for this round. Eliminate all other tokens from this round that cannot be active due to this link&#39;s activity ( 104 ).     3. Walk down the list and pick the next eligible token ( 106 ). This is the second candidate of the set of links to be allocated credits for this round. Eliminate all other tokens from this round that cannot be active due to this link&#39;s activity ( 108 ). Continue this step until the list is exhausted ( 110 ).     4. The result is a set of links that can be active at the same time L 1 ={I 1 , I 2 , . . . , I n } ( 112 ). Let β Ii  be requested credits of link I i . The amount of credits allocated to each element of set L 1  is γ 1 =min{(β I1 , β I2 , . . . , β In }. Adjust the requested credits for every element in L 1 : β Ii =β Ii −γ 1  ( 114 ). Remove token(s) which have zero requested credits from the list of tokens ( 116 ).     5. Adjust the degree of interference of affected links, due to the fact that some tokens have been removed ( 118 ).     6. Repeat steps 1-5 until the list of tokens is empty ( 120 ).     7. The result is a list of (L 1 , γ 1 ), (L 2 , γ 2 ) . . . (L k , γ k ) ( 122 ). Now, prorate this list to attain the final schedule ( 124 ). Let S be the total resource of the network in terms of credit; and let χ i =γ i *S//Σ 0,k γ j . The list (L 1 , χ 1 ), (L 2 , χ 2 ) . . . (L k , χ k ) represents how the links are organized into sets of concurrent active links and how much resource each set of links are supposed to get. This list is broadcast to all nodes in the network ( 126 ).        
 
       EXAMPLE 3  
       [0087]     Use this algorithm to compute the schedule for Example 2.  
         [0088]     Step 1 (see Table 2 below).  
                                 TABLE 2                           Step 1                Degree of               Link   interference α(I ij , L)   Requested credit R ij     α(I ij , L) * R ij                 I 0,2     5   35   175        I 2,5     3   20   60       I 2,6     3   15   45       I 1,0     3   10   30       I 5,9     2   10   20       I 6,10     2   10   20       I 3,1     2   10   20       I 0,1     4    5   20                  
 
         [0089]     Steps 2-5: 
        Get the first Schedule S={({I 0,2 , I 5,9 , I 3,1 },10)}       
 
         [0091]     Go back to step 1 (see Table 3 below).  
                                 TABLE 3                           Go Back to Step 1                Degree of               Link   interference α(I ij , L)   Requested credit R ij     α(I ij , L) * R ij                 I 0,2     5   25   125        I 2,5     2   20   40       I 2,6     2   15   30       I 1,0     2   10   20       I 6,10     2   10   20       I 0,1     2    5   10                  
 
         [0092]     Steps 2-5: 
        Get a revised Schedule S={({I 0,2 , I 5,9 , I 3,1 }, 10), ({I 0,2 }, 25)}       
 
         [0094]     Go back to step 1 (see Table 4 below).  
                                                           TABLE 4                           Go Back to Step 1                    Degree of   Requested               Link   interference α(I ij , L)   credit R ij     α(I ij , L) * R ij                              I 2,5     1   20   20           I 2,6     1   15   15           I 1,0     1   10   10           I 6,10     1   10   10           I 0,1     1   5   5                      
 
         [0095]     Steps 2-5:  
         [0096]     Get a revised Schedule: 
        S={({I 0,2 , I 5,9 , I 3,1 }, 10), ({I 0,2 }, 25), ({I 2,5 , I 1,0 , I 6,0 }, 10)}.        
 
         [0098]     Go back to step 1 (see Table 5 below).  
                                 TABLE 5                           Go Back to Step 1                Degree of               Link   interference α(I ij , L)   Requested credit R ij     α(I ij , L) * R ij                 I 2,6     1   15   15       I 2,5     1   10   10       I 0,1     0    5    0                  
 
         [0099]     Steps 2-5:  
         [0100]     Get a revised Schedule: 
        S={({I 0,2 , I 5,9 , I 3,1 }, 10), ({I 0,2 }, 25), ({I 2,5 , I 1,0 , I 6,0 }, 10), ({I 2,6 , I 0,1 }, 5)}       
 
         [0102]     Go back to step 1 (see Table 6 below)  
                                 TABLE 6                           Go Back to Step 1                Degree of               Link   interference α(I ij , L)   Requested credit R ij     α(I ij , L) * R ij                 I 2,6     1   10   10       I 2,5     1   10   10                  
 
         [0103]     Steps 2-5:  
         [0104]     Get a revised Schedule: 
        S={({I 0,2 , I 5,9 , I 3,1 }, 10), ({I 0,2 }, 25), ({I 2,5 , I 1,0 , I 6,0 }, 10), ({I 2,6 , I 0,1 }5), ({I 2,6 }, 10)}.        
 
         [0106]     Go back to step 1 (see Table 7 below).  
                                 TABLE 7                           Go Back to Step 1                Degree of               Link   interference α(I ij , L)   Requested credit R ij     α(I ij , L) * R ij                 I 2,5     1   10   10                  
 
         [0107]     Steps 2-5:  
         [0108]     Get the schedule: 
        S={({I 0,2 , I 5,9 , I 3,1 }, 10), ({I 0,2 }, 25), ({I 2,5 , I 1,0 , I 6,0 }, 10), ({I 2,5 }, 10)}.        
 
         [0110]     This schedule uses 10+25+10+5+10+10=70 credits to satisfy 35+20+15+10+10+10+10+5=115 requested credits. The average activity concurrency is 115/70=1.6428. Obviously, this schedule is better than the one presented in the previous example. In fact, it can be proved that this schedule is the optimal one for this particular example. There is no other schedule that can use less number of credits to satisfy all these bandwidth requests.  
         [0111]     Step 7:  
         [0112]     Because the total resource is only 64 credits, the previous schedule is prorated to obtain the final schedule: 
        S f ={({I 0,2 , I 5,9 , I 3,1 }, 9), ({I 0,2 }, 23), ({I 2,5 , I 1,0 , I 6,0 }, 9), ({I 2,6 , I 0,1 }, 5), ({I 2,6 }, 9), ({I 2,5 }, 9)}.        
 
         [0114]     This schedule is broadcast to all nodes in the network.  
         [0115]     Upon receiving the schedule, each node in the network uses the binary allocation map scheme to compute its own slot assignment. Allocation map is an array of numbers that is used to map a range of consecutive numbers to partially equally spaced numbers. The idea is that, given a portion of resources, a node can figure out its active timeslots by projecting that portion (consecutive numbers) through the map. For example, all links in set L i  are assigned to the range [Σ 0,i-1  χ j , Σ 0,i  χ j ], which, in turn, represent a set of near-equally spaced time slots.  
       EXAMPLE 4  
       [0116]     Assume that the allocation map is designed for 64 time slots, corresponding to 64 credits.  
         [0117]     The allocation map for 64 time slots is shown in Table 8 below.  
                                                                                                                                                                                                                                                                                                                                               TABLE 8                       Allocation Map, 64 Time Slots                                    tslot                1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16               index   1   33   17   49    9   41   25   57   5   37   21   53   13   45   29   61                        tslot                17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32               index   3   35   19   51   11   43   27   59   7   39   23   55   15   47   31   63                        tslot                33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48               index   2   34   18   50   10   42   26   58   6   38   22   54   14   46   30   62                        tslot                49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64               index   4   36   20   52   12   44   28   60   8   40   24   56   16   48   32   64                  
 
         [0118]     A range of credit indices can be deduced for each set of links in the final schedule S f . For example, the set {I 0,2 , I 5,9 , I 3,1 } is correspondent to [1,9]. Set {I 0,2 } is correspondent to [10,32]; and soon. 
        S f ={({I 0,2 , I 5,9 , I 3,1 }, 9), ({I 0,2 }, 23), ({I 2,5 , I 1,0 , I 6,0 }, 9), ({I 2,6 , I 0,1 }, 5), ({I 2,6 }9), ({I 2,5 }, 9)}       
 
         [0120]     Using the combination of allocation map and the final schedule S f , any node is aware of which link is active at a particular time slot t. For example, the set {I 0,2 , I 5,9 , I 3,1 } is active in time slots  1 ,  5 ,  9 ,  17 ,  25 ,  33 ,  41 ,  49 ,  57 .  
         [heading-0121]     Maximizing Network Capacity Using Unscheduled Time Slots  
         [0122]     To facilitate the explanation of using unscheduled time slots, use the schedule obtained in previous example. 
        S={({I 0,2 , I 5,9 , I 3,1 }, 10), ({I 0,2 }, 25), ({I 2,5 , I 1,0 , I 6,0 }, 10), ({I 2,6 , I 0,1 }, 5), ({I 2,6 }, 10), ({I 2,5 }10)}       
 
         [0124]     Some notable points need to be made about this schedule: 
        1. The number of links in each set tends to be highest at the beginning of the schedule and tends to taper off toward the end of the schedule.     2. Even with the set causing most interference in the network, there are some links that can be active at the same time without causing interference to the links in the set.     3. The interference caused by sets at the beginning of the schedule tend to be the highest; and that interference tends to taper off going toward the end of the schedule.        
 
         [0128]     With these observations, it can be seen the scheduled bandwidth very likely represents only about half of total network capacity. Hence, a collision-based mechanism is devised to use the other half, which is going to be wasted if not used otherwise.  
         [0129]     Each node in the network maintains, for each of its local links, one set of links interfering with that link. Local links are links directly connected to the node. By using the schedule S broadcast by the Hub, a node knows which of its local links can be active without interfering with the scheduled links which are currently active. An active unscheduled link at time slot t is a link that is not scheduled to be active at time t, but could be made active if the intended receiver is ready to receive. This can be decided by its directly connected nodes because this activity does not cause interference with the current active scheduled links. A link can be unscheduled at one time slot and is scheduled in another time slot. Active unscheduled links can interfere and collide which each other, but they do not interfere with the currently active scheduled links.  
         [0130]     Unscheduled links are mainly used when a node does not have uplink scheduled bandwidth and need to request bandwidth or need to send some small uplink transient traffic. It is used to boost up network capacity, as well as network response time.  
       EXAMPLE 5  
       [0131]     Using Example 4, the final schedule is: 
        S={({I 0,2 , I 5,9 , I 3,1 }, 10), ({I 0,2 }, 25), ({I 2,5 , I 1,0 , I 6,0 }, 10), ({I 2,6 , I 0,1 }, 5), ({I 2,6 }, 10), ({I 2,5 }10)}       
 
         [0133]     Pick one time slot t. Suppose that it corresponds to ({I 2,6 , I 0,1 }, 5) in the schedule. This means that I 2,6  and I 0,1  are active at time slot t. The matrix of interference indicates that any of links {I 4,8  I 9,5 } can also be active. Although each node does not maintain the matrix of interference for the whole network, it does keep sets of interference links for each of its local link. Hence, local nodes ( 4  and  9 ) know that they can activate the link at time slot t. In this specific example, if both I 4,8  I 9,5  are active, they still do not collide. However, that is not always the case. Nodes can use a backoff mechanism to resolve collision if it happens.  
         [0134]     Although the invention is described herein with reference to the preferred embodiment, one skilled in the art will readily appreciate that other applications may be substituted for those set forth herein without departing from the spirit and scope of the present invention. Accordingly, the invention should only be limited by the Claims included below.