Abstract:
A method of determining a contention window for allocating bandwidth in a wireless network comprising a plurality of nodes, said nodes comprising at least a first and a second router and at least one client connected to each of said first and second routers, the method comprising the steps of: receiving information at the first router from the other nodes, said information relating to the condition of the other nodes; calculating a contention window for said first router based on the received information; and setting the delay for a retransmission of data by the first router to the calculated contention window, wherein the retransmission of data follows an unsuccessful transmission of said data.

Description:
FIELD OF THE INVENTION 
       [0001]    This invention relates to a method of allocating bandwidth in a wireless network, in particular a method of fairly allocating bandwidth by dynamically calculating the contention windows used by routers in a wireless mesh network. 
       BACKGROUND TO THE INVENTION 
       [0002]    Telecommunications networks are commonplace today and typically operate in accordance with a given standard or specification. These standards ensure interoperability between telecommunications devices and are defined by organisations such as the, Internet Engineering Task Force (IETF), Wireless Ethernet Compatibility Alliance (WECA), and the International Telecommunication Union (ITU). 
         [0003]    As with wired networks, wireless networks can be classified into different types based on the coverage area. These include wireless wide area networks (WWAN), wireless metropolitan area networks (WMANs) and wireless local area networks (WLANs). 
         [0004]    WLAN technologies enable users to establish wireless connections within a local area, for example, within a user&#39;s house, a corporate building or in a public space, such as an airport. In 1997, the IEEE approved the 802.11 standard for WLANs. The IEEE802.11 standard is commonly referred to as Wi-Fi and has been rapidly deployed across the globe since its inception as an alternative to traditional wired network solutions. The introduction of Wi-Fi has revolutionised wireless networking and has been further developed with the introduction of Wireless Mesh Network (WMN). 
         [0005]    A typical WMN consists of multiple nodes connected in a mesh topology. The nodes can be wireless routers, also known as access points (APs), or wireless clients. In a mesh topology, the nodes in the network have redundant or multiple communication paths with its destination node. The routers usually have limited mobility and form the infrastructure or backbone of the WMN. In contrast, the clients are not usually limited to being stationary. Both the clients and the routers can organise and configure themselves autonomously to interconnect wirelessly to form the mesh structure, often creating redundant communication paths, which is an inherent characteristic of the mesh topology. The mesh topology makes the WMN particularly resilient and robust towards interference, failing nodes and congestion, as well as being highly scalable due to its ability to autonomously configure and organise connecting nodes. The radio technology widely employed in most WiFi networks, such as WMN, utilises a single radio. 
         [0006]    Mesh networks are highly scalable, hence adding nodes to a particular network is easy as the physical location of the node that is being added is immaterial. The node can be placed anywhere within the network&#39;s communication range, and it will automatically configure itself and connect to the nearest node in order to communicate with its destination node. Whilst the location of the node is immaterial, the node might have to utilise several hops in order to communicate with its destination. The number of hops taken is dependent on the location of the node and the corresponding location of the destination node. 
         [0007]    The medium access control (MAC) layer/algorithm normally determines how network capacity is allocated to clients. In a conventional Wi-Fi router, the MAC layer will control the admission of a particular set of clients and control allocation of bandwidth among all clients connected to the router. Presently, a router allocates a predetermined amount of bandwidth to each client, which determined by the total capacity of the network. However, problems arise in wireless mesh networks where there are multiple interconnected routers, each with separate clients attached to them. The situation is described below with reference to  FIG. 1 . 
         [0008]      FIG. 1  illustrates a wireless network  100  in a multihop scenario. The network  100  comprises a bandwidth source or sink  102 , a gateway  104 , and router  106 . The gateway  104  is connected to the sink  102  and the router  104 . The gateway  104  is also connected to a client (client 1 )  108 . The router  106  is connected to two clients, client 2   110  and client 3   112 . 
         [0009]    In known arrangements, both the gateway  104  and the router  106  are allocated the same bandwidth. Whilst this may appear to be fair, gateway  104 , and indeed any other router, treats all nodes connected equally as clients. Therefore, gateway  104  treats the router  106  as another client and only allocates the connection between the gateway  104  and the router  106  the same bandwidth as the connection between the gateway  104  and client 1   108 . Thus, router  106  only has the same bandwidth allocation as client 1   108 , and has to share this allocated bandwidth with its two clients, client 2   110  and client 3   112 . The result is that bandwidth in the network is biased in favour of those nodes that are nearest, in the sense that they are the separated by the fewest hops, to the gateway or bandwidth source. The problem is therefore to provide a fair allocation of bandwidth across all nodes in a wireless network, irrespective of their physical location in the network. 
         [0010]    This problem is regularly observed in multihop scenarios such as the one described above. However, as multihop scenarios are ubiquitous in WMN, the same problem also exists in WMNs. 
         [0011]    Most current routing implementations in WMNs utilise ad-hoc routing protocols, such as ad-hoc on demand distance vector routing (AODV) and dynamic source routing (DSR), based on the notion that ad-hoc networks are very similar to WMNs. However, this ignores the fact that a WMN consists of mesh routers, which act as relaying nodes and APs. The requirements of the mesh routers are different as compared to the requirements of the mesh clients. Clients in ad-hoc networks are similar to the mesh clients but not to the mesh routers. Therefore, conventional ad-hoc routing protocols cannot efficiently provide a framework for fair distribution of bandwidth in a WMN. Furthermore, the MAC extension provided by 802.11e for QoS does not cater for this problem. 
         [0012]    In “Providing Throughput Guarantees in IEEE 802.11e Wireless LANs” by Albert Banchs et al., Proceedings of the 18 th  International Teletraffic Congress (ITC-18), Berlin, Germany, Sep. 1-05, 2003, there is described a method for improving the throughput (bandwidth) guarantees in the 802.11e EDCF mechanism based on deducing new contention window sizes. The method enables an access point to provide throughput guarantees and admit as many clients as possible based on those guarantees. However, the method is only concerned with bandwidth aggregation between an access point and its clients and does not consider bandwidth aggregation between access points. Furthermore, the method described does not allocate bandwidth fairly and evenly between all clients. Instead it merely allows a single router to maximise the number of clients it can have connected and provides some throughput guarantees. 
       SUMMARY OF THE INVENTION 
       [0013]    It is the aim of embodiments of the present invention to address one or more of the above-stated problems. 
         [0014]    According to one aspect of the present invention, there is provided a method of determining a contention window for allocating bandwidth in a wireless network comprising a plurality of nodes, said nodes comprising at least a first and a second router and at least one client connected to each of said first and second routers, the method comprising the steps of receiving information at the first router from the other nodes, said information relating to the condition of the other nodes; calculating a contention window for said first router based on the received information; and setting the delay for a retransmission of data by the first router to the calculated contention window, wherein the retransmission of data follows an unsuccessful transmission of said data. 
         [0015]    Preferably, the network further comprises a bandwidth source, and the calculated contention window is larger if the first router is close to the bandwidth source, and the contention window is smaller if the router is further away from the bandwidth source. 
         [0016]    Preferably, the closer the router is to the gateway, the fewer the number of hops between the router and the gateway. 
         [0017]    Therefore, a precise contention window is calculated and used to access the wireless medium instead of a random selection from a range. Since the contention window is dynamically altered based on the condition of its neighbours using information passed through control channels, the probability a collision during transmission is minimised and a more structured medium contention enabled, resulting in a fairer bandwidth allocation. 
         [0018]    The information received from the second router may be at least one of: the total number of hops in the network, the total number of clients connected to the second router, the requested throughput of each client connected to the second router, and the number of hops between the first router and the second router. 
         [0019]    Preferably, the information received from a client comprises the requested throughput of said client. 
         [0020]    The contention window may be inversely proportional to β i,k+1 , where β i,k+1  is given by 
         [0000]    
       
         
           
             
               β 
               
                 i 
                 , 
                 
                   k 
                   + 
                   1 
                 
               
             
             = 
             
               
                 
                   β 
                   
                     i 
                     , 
                     
                       k 
                       + 
                       1 
                     
                   
                 
                 
                   B 
                   0 
                 
               
               = 
               
                 
                   
                     ∑ 
                     
                       m 
                       = 
                       
                         k 
                         + 
                         1 
                       
                     
                     L 
                   
                    
                   
                     
                       ( 
                       
                         m 
                         + 
                         1 
                       
                       ) 
                     
                      
                     
                       
                         ∑ 
                         
                           i 
                           = 
                           1 
                         
                         
                           n 
                           
                             i 
                             , 
                             m 
                           
                         
                       
                        
                       
                         ⌊ 
                         
                           
                             G 
                             mi 
                           
                           , 
                           
                             B 
                             o 
                           
                         
                         ⌋ 
                       
                     
                   
                 
                 
                   B 
                   o 
                 
               
             
           
         
       
     
         [0021]    wherein:
       m is the number of hops away from the first router;   L is the total number of hops in the network;   k+1 is the number of hops the first router is from a gateway in the network;   i is the client number;   n l,m  is the total number of clients at m hops away;   G m,l  is the requested throughput by client i at m hops away; and   B 0  is the throughput at a client.       
 
         [0029]    Preferably, the contention window is given by CW i,k+1  which can be represented as: 
         [0000]    
       
         
           
             
               C 
                
               
                   
               
                
               
                 W 
                 
                   i 
                   , 
                   
                     k 
                     + 
                     1 
                   
                 
               
             
             = 
             
               
                 
                   
                     C 
                      
                     
                         
                     
                      
                     
                       W 
                       o 
                     
                   
                   + 
                   1 
                 
                 
                   β 
                   
                     i 
                     , 
                     
                       k 
                       + 
                       1 
                     
                   
                 
               
               - 
               1 
             
           
         
       
     
         [0030]    wherein CW 0  is the minimum contention window for each of the clients. 
         [0031]    The contention window may be periodically recalculated by the first router or alternatively, the contention window may be calculated only once during the set-up of the network or when a new node is added. 
         [0032]    The clients typically use a different contention window to the calculated contention window, and the contention window used by the clients is usually fixed. 
         [0033]    The network may be a multihop mesh network. 
         [0034]    In a second embodiment of the present invention, there is provided a wireless network comprising a plurality of nodes, said nodes comprising at least a first and a second router and at least one client connected to each of said first and second routers, wherein the first router is adapted to: receive information from the other nodes, said information relating to the condition of the other nodes; calculate a contention window for said first router based on the received information; and set the delay for a retransmission of data by the first router to the calculated contention window, wherein the retransmission of data follows an unsuccessful transmission of said data. 
         [0035]    Advantageously, in embodiments of the invention, bandwidth is allocated in a fair manner by providing equal access to the wireless medium irrespective of position/location from the gateway. 
         [0036]    Furthermore, changes or modifications are only required with the access points or routers and not the clients. Therefore, it is easily employed in current networks. 
         [0037]    Embodiments of the present invention are based on an exchange of information between wireless routers for decision making of the medium access control. Conventional Wi-Fi network layer protocol using AODV or DSR does not support the exchange of information among the wireless routers/access points for co-ordination in making admission decisions. 
         [0038]    The methods provide a compromise between high throughput and fairness. Fairness simply means equal bandwidth allocation to all clients irrespective of their position in relation to the bandwidth source/gateway. 
         [0039]    This mechanism can be used at hotspots to extend the coverage using multihop or mesh network while maintaining acceptable bandwidth for clients located far away from gateway. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0040]    For a better understanding of the present invention reference will now be made by way of example only to the accompanying drawings, in which: 
           [0041]      FIG. 1  is a schematic diagram of a multihop scenario; 
           [0042]      FIG. 2  is a schematic diagram of a multihop scenario in an embodiment of the present invention; 
           [0043]      FIG. 3  is a diagram illustrating the information exchange at a router in an embodiment of the present invention; 
           [0044]      FIG. 4  is a diagram illustrating a series of interconnected routers and clients in an embodiment of the present invention; 
           [0045]      FIG. 5  is a diagram illustrating a hierarchy of routers and clients in an embodiment of the present invention; 
           [0046]      FIG. 6  is a diagram of how contention windows are used to access a wireless medium; 
           [0047]      FIG. 7  is a flow diagram illustrating the method of calculating contention windows based on control channel information; 
           [0048]      FIG. 8  is a graph illustrating the results of experiments based on the scenario depicted in  FIG. 1 . 
       
    
    
     DESCRIPTION OF PREFERRED EMBODIMENTS 
       [0049]    The present invention is described herein with reference to particular examples. The invention is not, however, limited to such examples. 
         [0050]    The bandwidth or throughput that a device under 802.11 protocols has depends in part on the ‘contention window’ or ‘back-off window’. The contention window (CW) is part of the waiting period between data frame transmissions at a device, which is used to keep transmissions from colliding with each other. The contention window is divided into consecutively numbered slots, with the number of slots always being 1 less than a power of 2 (e.g. 15, 31, 63, etc). When a node wants to transmit a frame of data, it randomly selects a slot number from the range of (0,CW min ), where CW min  is referred to as the minimum contention window, which is a constant corresponding to the upper limit of the range from which the initial back-off time is selected. The node then counts up to the selected slot number before transmitting the frame. If the node does not receive an acknowledgement that the frame was successfully received, it assumes that the transmission failed. The node then initiates a retry counter, which selects the next slot in the contention window range (the next power of 2 minus 1). 
         [0051]    The maximum contention window size is dependent on total bandwidth or throughput available in the network. A small contention window means that the retry counter will generally be lower, which in turn means that there will generally be less time between retransmissions. Therefore, a node operating with a small contention window can access the wireless medium faster than a node with a large contention window. If the node can access the medium faster than other nodes, it will generally be able to transmit faster than other nodes, hence the rate at which data can be transmitted in the network will be faster. This rate of data transfer often termed as data rate transfer and expressed in bits per second (bps), corresponding to the bandwidth of the node. In short, allocating a node a small contention window will effectively result in a high bandwidth allocation, whereas a allocating a node a large contention window will effectively result in a low bandwidth allocation. 
         [0052]    Consequently, by adjusting the contention window used by a device as described in embodiments of the present invention, it is possible to adjust the effective bandwidth allocated to that device. 
         [0053]    In conventional implementations of Wi-Fi, all nodes connected to a router would contend for the wireless medium independently. Thus, all nodes connected to the router will have the same probability of accessing the wireless medium. However, as described above, we would like the nodes that are actually routers connected to the router in question to have a higher probability of accessing the wireless medium, and hence effectively a higher bandwidth allocation. 
         [0054]    In embodiments of the present invention, the control of throughput allocation at router is achieved by using different minimum contention windows for clients and for routers. 
         [0055]      FIG. 2  illustrates a multihop network  200  in an embodiment of the present invention. The network  200  comprises a series of interconnected routers  202 ,  204 ,  206 ,  208 ,  210 , and  212 , with multiple clients connected to each of those routers. The first router  202 , which can also be considered as the gateway, is connected directly to a bandwidth source or sink  201 . The total number of clients connected to the first router  202  is given by n 1 . The total number of clients connected to the second router  204  is given by n 2 , and so on. The total number of backhaul hops, L, in this example is 5. 
         [0056]    In network  200 , all the clients in the network operate with a common minimum contention window, CW 0  in the manner described above. The minimum contention windows that would be used for communications between routers can be calculated in two ways. In a centralised case, a central node, such as gateway  202 , can calculate the minimum contention windows for the routers based on information received via a control channel from the various nodes in the network. These minimum contention windows are then broadcast to and utilised by the routers, and are ignored by the clients, which use a constant CW 0 . In a distributed case, each individual router will calculate its own minimum contention window based on the information received via the control channel. 
         [0057]    In both cases, the minimum contention window for the routers is calculated using the methods set out below in accordance with an embodiment of the present invention. 
         [0058]    In order to modify the minimum contention window, each router in the network  200  exchanges information with every other router periodically, and uses this information to calculate a modified contention window that will ensure fair bandwidth allocation. The following information may be exchanged between the routers:
       Number of clients and routers, n k , at k hops away   Offered load, i.e., the amount of bandwidth requested by an application, G kj , of client j, at k hops away   The total number of backhaul hops, L       
 
         [0062]    The exchange of information is illustrated in  FIG. 3 , which shows a router  300  with a modified medium access control layer  302  communicating with other nodes, such as routers and clients, connected to the router. Information  304 ,  306  is periodically exchanged between the router  300  and the other nodes. This information  304 , as described above, includes the total number of clients and routers connected to router  300 , the load of each client or router connected to router  300  and the number of hops away of each of those nodes. The router  300  also exchanges this information  306  with other routers, so that information on all routers in available at every other router. The router  300  also transmits information  308  comprising the bandwidth allocation for each node connected to that router  300 . The router  300  uses the information received to determine a bandwidth allocation for each node connected to it based on the method described herein below. The information may be exchanged via a control channel between the routers. 
         [0063]      FIG. 4  illustrates a more complex multihop network  400  with multiple interconnected routers and clients. The network  400  comprises a router, Router(k)  402 , connected to a series of other routers, Router(k−1)  404 , Router( 1 ,k+1)  406 , Router( 2 ,k+1)  410 , Router(i,k+1) and Router(N k+1 , k+1)  418 . The connection from Router(k)  402  to Router(k−1)  404  is towards a gateway or bandwidth source. Router(k) is connected to Router( 1 ,k+1) via branch 1   408 , to Router( 2 ,k+1) via branch 2   412 , to Router(i,k+1) via branchi  416 , and to Router(N k+1 ,k+1) via branch(N k+1 )  420 . Router(k)  402  is also connected to a number of clients, Client 1   422 , Client 2   424  and Client(n k )  426 . Each client has a total throughput represented by B 0 , which is proportional to the average bandwidth allocated for the connection to the router and a default minimum contention window (CW min ) of CW o . Each client then utilises the common mechanism described earlier to access the wireless medium using this minimum contention window. 
         [0064]    On the other hand, each router has an average bandwidth allocation B and minimum contention window, which may differ between the routers and are calculated in dependence on the information received from the other nodes in the network. Router( 1 ,k+1)  406  has a bandwidth allocation of B 1,k+1  and a minimum contention window of CW 1,k+1 . Router( 2 ,k+1)  410  has a bandwidth allocation of B 2,k+1  and a minimum contention window of CW 2,k+ 1. Router(i,k+1) has a bandwidth allocation of B i,k+1  and a minimum contention window of CW i,k+1 . Router(N k+1 , k+1)  418  has a bandwidth allocation of B Nk+1,k+1  and a minimum contention window of CW Nk+1,k+1 . 
         [0065]    A further example of router connections with other routers and clients and the way in which these elements are represented is illustrated in  FIG. 5 . In  FIG. 5  routers are located k hops away from gateway, where the gateway is at k=0. Routers at k=1 hop away, are referred to as router(i, 1 ), where i is a whole number starting at 1. Routers at k=2 are referred to as router(i, 2). Thus, the third router at k=2, may be referred to as router( 3 , 2 ). Similarly, the total number of clients at k=1, is referred to as n l,1 . 
         [0066]    In order to determine the minimum contention window for each router in a manner that ensures fair bandwidth allocation, equation (1) below must first be solved for a minimum B 0 : 
         [0000]    
       
         
           
             
               
                 
                   
                     
                       ∑ 
                       
                         k 
                         = 
                         0 
                       
                       L 
                     
                      
                     
                       
                         ( 
                         
                           k 
                           + 
                           1 
                         
                         ) 
                       
                        
                       
                         
                           ∑ 
                           
                             j 
                             = 
                             1 
                           
                           
                             n 
                             k 
                           
                         
                          
                         
                           ⌊ 
                           
                             
                               G 
                               kj 
                             
                             , 
                             
                               B 
                               o 
                             
                           
                           ⌋ 
                         
                       
                     
                   
                   = 
                   
                     B 
                     max 
                   
                 
               
               
                 
                   ( 
                   1 
                   ) 
                 
               
             
           
         
       
     
         [0067]    In equation (1):
       k=number of hops away from the router in question   n k =total number of clients at k hops away   G kj =requested load or throughput by client j at k hops away   B max =maximum achievable throughput, which for example is about 6 Mbps for IEEE802.11b   └x,y┘ is defined as taking the smaller value between x and y       
 
         [0073]    The derivation of equation (1) is based on the fact that the time/bandwidth required for a packet to travel from a client at k hops away from the gateway is equal to (k+1)B 0 , (k+1) is the number of hops a packet has to travel in which k hops through the router nodes and 1 hop between client and router. However, if the client transmits at less than B 0 , say G kj , the time taken would be smaller, i.e. └G kj ,B o ┘ 
         [0074]    If there are n k  clients in a sub-branch, then the time taken must be summed up, hence the second summation representing the sum of time taken by all n k  users at k hops away. 
         [0075]    When the information of client load G kj  is not available, we can approximate B 0  by equation (2): 
         [0000]    
       
         
           
             
               
                 
                   
                     B 
                     o 
                   
                   = 
                   
                     
                       B 
                       max 
                     
                     
                       
                         ∑ 
                         
                           k 
                           = 
                           0 
                         
                         L 
                       
                        
                       
                         
                           ( 
                           
                             k 
                             + 
                             1 
                           
                           ) 
                         
                          
                         
                           n 
                           k 
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   2 
                   ) 
                 
               
             
           
         
       
     
         [0076]    Referring now to  FIG. 5 , the subscript i is used to identify all the nodes which have a connection to the i branch as depicted in  FIG. 5 . n i,k  is the total number of clients connected to all the mesh routers of branch i at k hops away from the gateway. For example, n i,l  corresponds to total number of clients connected to the router of branch i which is 1 hop away from the gateway as depicted in  FIG. 5 . So n i,2  corresponds to total number of clients connected to all the routers of branch i and all its subbranches which are 2 hops away from the gateway as depicted in  FIG. 5 . 
         [0077]    Now, the ratio of throughput between any two given nodes i and j can be represented by: 
         [0000]    
       
         
           
             
               
                 
                   
                     
                       B 
                       i 
                     
                     
                       B 
                       j 
                     
                   
                   = 
                   
                     
                       τ 
                       i 
                     
                     
                       τ 
                       j 
                     
                   
                 
               
               
                 
                   ( 
                   3 
                   ) 
                 
               
             
           
         
       
     
         [0000]    where the probability of node i transmitting is τ i , given by: 
         [0000]    
       
         
           
             
               
                 
                   
                     τ 
                     i 
                   
                   = 
                   
                     2 
                     
                       
                         C 
                          
                         
                             
                         
                          
                         
                           W 
                           i 
                         
                       
                       + 
                       1 
                     
                   
                 
               
               
                 
                   ( 
                   4 
                   ) 
                 
               
             
           
         
       
     
         [0078]    Thus, substituting equation (4) into (3), results in: 
         [0000]    
       
         
           
             
               
                 
                   
                     
                       B 
                       i 
                     
                     
                       B 
                       j 
                     
                   
                   = 
                   
                     
                       
                         
                           C 
                            
                           
                               
                           
                            
                           
                             W 
                             j 
                           
                         
                         + 
                         1 
                       
                       
                         
                           C 
                            
                           
                               
                           
                            
                           
                             W 
                             i 
                           
                         
                         + 
                         1 
                       
                     
                     = 
                     β 
                   
                 
               
               
                 
                   ( 
                   5 
                   ) 
                 
               
             
           
         
       
     
         [0079]    Equation (5) can be rewritten with the minimum contention window of node i as the subject: 
         [0000]    
       
         
           
             
               
                 
                   
                     
                       C 
                        
                       
                           
                       
                        
                       
                         W 
                         i 
                       
                     
                     = 
                     
                       
                         
                           ( 
                           
                             
                               B 
                               i 
                             
                             
                               B 
                               j 
                             
                           
                           ) 
                         
                          
                         
                           ( 
                           
                             
                               C 
                                
                               
                                   
                               
                                
                               
                                 W 
                                 j 
                               
                             
                             + 
                             1 
                           
                           ) 
                         
                       
                       - 
                       1 
                     
                   
                    
                   
                     
 
                   
                    
                   Thus 
                 
               
               
                 
                   ( 
                   6 
                   ) 
                 
               
             
             
               
                 
                   
                     
                       C 
                        
                       
                           
                       
                        
                       
                         W 
                         i 
                       
                     
                     = 
                     
                       
                         
                           
                             C 
                              
                             
                                 
                             
                              
                             
                               W 
                               j 
                             
                           
                           + 
                           1 
                         
                         β 
                       
                       - 
                       1 
                     
                   
                    
                   
                     
 
                   
                    
                   where 
                 
               
               
                 
                   ( 
                   7 
                   ) 
                 
               
             
             
               
                 
                   β 
                   = 
                   
                     
                       B 
                       i 
                     
                     
                       B 
                       j 
                     
                   
                 
               
               
                 
                   ( 
                   8 
                   ) 
                 
               
             
           
         
       
     
         [0080]    Now starting from equation (7), we can substitute CW i  with the more general notation introduced earlier for multiple branched routers. Therefore, the minimum contention window CW i,k+1  used by router(i,k+1) for communicating with router(k) can be represented by equation (9) below: 
         [0000]    
       
         
           
             
               
                 
                   
                     C 
                      
                     
                         
                     
                      
                     
                       W 
                       
                         i 
                         , 
                         
                           k 
                           + 
                           1 
                         
                       
                     
                   
                   = 
                   
                     
                       
                         
                           C 
                            
                           
                               
                           
                            
                           
                             W 
                             o 
                           
                         
                         + 
                         1 
                       
                       
                         β 
                         
                           i 
                           , 
                           
                             k 
                             + 
                             1 
                           
                         
                       
                     
                     - 
                     1 
                   
                 
               
               
                 
                   ( 
                   9 
                   ) 
                 
               
             
           
         
       
     
         [0000]    where CW o  is the prefixed value for the minimum contention window, CW min , used by all the clients. 
         [0081]    Where β i,k+1  is given by equation (10) below: 
         [0000]    
       
         
           
             
               
                 
                   
                     β 
                     
                       i 
                       , 
                       
                         k 
                         + 
                         1 
                       
                     
                   
                   = 
                   
                     
                       
                         B 
                         
                           i 
                           , 
                           
                             k 
                             + 
                             1 
                           
                         
                       
                       
                         B 
                         0 
                       
                     
                     = 
                     
                       
                         
                           ∑ 
                           
                             m 
                             = 
                             
                               k 
                               + 
                               1 
                             
                           
                           L 
                         
                          
                         
                           
                             ( 
                             
                               m 
                               + 
                               1 
                             
                             ) 
                           
                            
                           
                             
                               ∑ 
                               
                                 i 
                                 = 
                                 1 
                               
                               
                                 n 
                                 
                                   i 
                                   , 
                                   m 
                                 
                               
                             
                              
                             
                               ⌊ 
                               
                                 
                                   G 
                                   
                                     m 
                                      
                                     
                                         
                                     
                                      
                                     i 
                                   
                                 
                                 , 
                                 
                                   B 
                                   o 
                                 
                               
                               ⌋ 
                             
                           
                         
                       
                       
                         B 
                         o 
                       
                     
                   
                 
               
               
                 
                   ( 
                   10 
                   ) 
                 
               
             
           
         
       
     
         [0082]    Where B i,k+1  is proportional to the average time allocated for communication between router (k) and router (i,k+1). For a router that is at k hops away from gateway, the time that needs to be allocated to its i-th sub-branch in the next hop (k+1) is similar to equation (1), but only summing from k+1 hops down, resulting in equation (10). 
         [0083]    In the event when the information of load of user i at m hops away from gateway G ml , is not available, we can approximate β i,k+1  using equation (11): 
         [0000]    
       
         
           
             
               
                 
                   
                     β 
                     
                       i 
                       , 
                       
                         k 
                         + 
                         1 
                       
                     
                   
                   ≈ 
                   
                     
                       ∑ 
                       
                         m 
                         = 
                         
                           k 
                           + 
                           1 
                         
                       
                       L 
                     
                      
                     
                       
                         ( 
                         
                           m 
                           + 
                           1 
                         
                         ) 
                       
                        
                       
                         n 
                         
                           i 
                           , 
                           m 
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   11 
                   ) 
                 
               
             
           
         
       
     
         [0084]    In IEEE802.11, the wireless medium may be accessed via a polling mechanism (Point Coordination Function, PCF) or contention mechanism (Distributed Coordination Function, DCF). In embodiments of the present invention, DCF is used. In DCF, all nodes contend for access to the wireless medium. The parameter that governs this contention is the contention window. 
         [0085]    Referring to  FIG. 6 , which illustrates a DCF basic access method in the MAC, the DCF protocol on each node starts by listening on the channel (wireless medium). If the channel is idle for at least a DIFS (DCF Inter Frame Space), it sends the first packet in the transmit queue. If the channel is busy, the station starts the contention by selecting a random slot time from the contention window. Once this time expires and the channel is still idle, the station transmits. This is how known DCF MAC works. 
         [0086]    In embodiments of the present invention, as with known the DCF protocol, each node listens to the channel. However, as illustrated in step  700  of  FIG. 7 , in embodiments of the present invention, a control channel is utilised by the routers to receive information such as the number of clients, number of hops and load of the clients from neighbouring nodes. This information is then used to derive the β function as shown in equations (10) and (11) above in step  702 . This value of β is then used to modify the contention window used by a router in step  704  and as shown by the other equations above, and specifically by equation (9). This modified contention window is then fed back into the DCF mechanism, and replaces the random selection of slot time from the contention window by the standard DCF protocol. Therefore, the newly calculated contention windows for each router entirely replace the random slots chosen from the old contention window range in the past. Thus, the retry times for retransmission at a router is fixed until a new contention window is calculated based on the changing network conditions. Alternatively, the retry time may be doubled from this initial value set by the newly calculated contention window every time retransmission fails. 
         [0087]    The implementation would be done at the routers only, making it transparent to the end users (the clients). The MAC at the client equipment would be preserved during implementation to ensure compatibility. 
         [0088]    The above examples have been described with reference to a multihop scenario. However, a person skilled in the art will appreciate that the methods can clearly be extended to mesh topologies, such as WMN. 
         [0089]      FIG. 7  shows a comparison of bandwidth distribution performance in a typical commercial solution, a conventional AODV routing solution and an ideal multihop network. The ideal network here is defined as a network that provides fair allocation of bandwidth among all clients. With an ideal bandwidth sharing scheme, a maximum 2 Mbps per client is predicted. In contrast, the maximum throughput per client achieved by a typical commercial solution is only about 1.5 Mbps. Embodiments of the present invention offer a solution that is closer to the ideal than other presently known solutions. 
         [0090]    It is noted herein that while the above describes examples of the invention, there are several variations and modifications which may be made to the described examples without departing from the scope of the present invention as defined in the appended claims. One skilled in the art will recognise modifications to the described examples.