Abstract:
Methods and systems for reserving bandwidth in communications networks (e.g., time-division multiplexed (TDM) networks). A bandwidth request on a forward path of the communications network is temporarily held without any fixed slot timings. The bandwidth request is held for a time long enough for the request to travel the forward path end-to-end. Once the request reaches the destination of the forward path, the temporary bandwidth is confirmed by sending a bandwidth confirmation message back from destination to the source of the path. Each slave node along the path performs an allocation confirm with its associated master node, which responds by converting the temporary holds to full allocations by fixing slot timings.

Description:
FIELD OF THE INVENTION 
     The present invention relates to network communications, and in particular, to methods and systems for bandwidth reservation in communications networks. 
     BACKGROUND OF THE INVENTION 
     A conventional telecommunication network comprises a plurality of devices represented by “nodes” and a plurality of configurable communication links for communicating data (e.g., communication messages) among the nodes. 
     Networks may be configured according to any one of various types of network topologies. The multi-hop (or “mesh”) network is one topology that has gained keen interest in the last several years. One reason for the heightened interest relates to the recent introduction of WiMAX (Worldwide Interoperability for Microwave Access). WiMAX is a wireless technology based on the IEEE 802.16 standard that contemplates use of mesh networks to provide last-mile wireless broadband access as an alternative to cable and DSL. 
       FIG. 1  is a high-level architectural diagram of a mesh network  100 . The mesh network  100  comprises overlapping clusters  102 - 1 ,  102 - 2 ,  102 - 3  having associated pluralities of nodes  104 - 1 ,  104 - 2 ,  104 - 3 , which represent the communication devices of the network. Each node in the network  100  is capable of communicating with any other node in the network  100 , by configuring a multi-hop path between the source node and the destination node. One such multi-hop path, beginning at a source node  106 - 1  and ending at a destination node  106 - 3 , is shown in  FIG. 1 . One or more nodes in a given cluster  102 - 1 ,  102 - 2 ,  102 - 3  may be permanently designated as a master node to facilitate formation of the end-to-end path. Alternatively, each node in a cluster may alternately operate as a master and slave node, and cooperate with other nodes to collectively facilitate formation of a multi-hop communications path between source and destination nodes. 
     A major challenge in implementing a mesh network involves managing and controlling traffic through the network. The network must be capable of determining the best path between source and destination nodes; must be able to simultaneously handle multiple messages; and must be capable of coordinating traffic flow in situations where a node must lend itself as a hop point for multiple messages carried along different paths of the network. Because the transmission capacity between link nodes is finite, bandwidth reservation schemes must be used to ensure that bandwidth is fairly distributed and that all messages are properly communicated from their respective sources to their intended destinations. 
     One bandwidth reservation technique used in conventional mesh networks that employ time-division multiplexing (TDM) is to typically perform a Layer 3 packet flow on a link-by-link basis. Master nodes along an end-to-end path between a source and destination node allocate bandwidth by reserving time slots in a fixed manner, one link after another along the path.  FIG. 2A  shows a new bandwidth allocation, Sres, made by a particular TDM master following already established or utilized station (e.g. slave node) bandwidth times, S 1  and S 5 . 
     As used in  FIGS. 2A-F , “S 1 ” and “S 5 ” represent established/utilized station bandwidth times. “Sres” represents a new bandwidth time (full allocation) for an end-to-end bandwidth reservation. “S 3 ” and “S 6 ” represent station bandwidth times allocated after the Sres reserved bandwidth. “Hole” represents bandwidth time released by an Sres station, due to an unsuccessful end-to-end bandwidth reservation. 
     Unfortunately, particularly when the network is large, success in achieving an end-to-end allocation is not fully guaranteed. When a bandwidth allocation is insufficient to allow a message to be communicated end-to-end, all fixed allocations made prior to the failure point must be released, for example, by sending an allocation release message to master nodes controlling the bandwidth allocation along the path. Before the fixed allocations can be released, however, there is a high probability that other nodes (e.g., nodes S 3  and S 6  in  FIG. 2B ) will acquire subsequent bandwidth slots to the one taken for this route. Unfortunately, as shown in  FIG. 2C , releasing the previously allocated bandwidth leaves a time slot “hole” in the allocation. 
     The hole may be purged by moving it to the tail of the allocations, as shown in  FIGS. 2D-F . However, the process needed to purge the hole is highly undesirable, since purging the hole requires that slot timings be readjusted and reconveyed to each of the nodes. This readjustment process has severe impacts on the network, including delaying communication of the message to the intended destination, increasing the amount of traffic on the scarce radio resource, and requiring additional processing power within each node. 
     It would be desirable, therefore, to have a system and method for allocating bandwidth in mesh networks, and other types of networks, which avoids the need for processing resources to purge allocated but unused bandwidth reservations. 
     BRIEF SUMMARY OF THE INVENTION 
     Methods and systems for reserving bandwidth in communications networks (e.g., time-division multiplexed (TDM) networks) are disclosed. According to an exemplary aspect of the invention, a bandwidth request on a forward path of a communications network is temporarily held without any fixed slot timings. The bandwidth request is held for a time long enough for the request to travel the forward path end-to-end. Once the request reaches the destination of the forward path, the temporary bandwidth is confirmed by sending a bandwidth confirmation message back from destination to the source of the path. Each slave node along the path performs an allocation confirm with its associated master node, which responds by converting the temporary holds to full allocations by fixing slot timings. 
     Further features and advantages of the present invention, as well as the structure and operation of various embodiments of the present invention, are described in detail below with respect to accompanying drawings, in which like reference numbers are used to indicate identical or functionally similar elements. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a high-level architectural diagram of a prior art mesh network; 
         FIGS. 2A-F  are bandwidth time diagrams illustrating how a bandwidth “hole” is formed after releasing a previously allocated bandwidth time in a time-division multiplexed (TDM) network, and how the hole may be purged by proactively moving the hole to the tail of allocations; 
         FIGS. 3A-D  are bandwidth time diagrams illustrating a bandwidth allocation technique for communication networks, in accordance with an embodiment of the present invention; 
         FIG. 4A  is a flowchart illustrating a method performed by an intermediate node of a multi-hop path, i.e., other than a source or destination node of the multi-hop path, in accordance with the bandwidth allocation technique shown in  FIGS. 3A-D ; 
         FIG. 4B  is a flowchart illustrating a method performed by a destination node of a multi-hop path, in accordance with the bandwidth allocation technique shown in  FIGS. 3A-D ; 
         FIGS. 5A-D  are bandwidth time diagrams illustrating a bandwidth allocation technique for communication networks, in accordance with an alternative embodiment of the present invention; 
         FIG. 6  is a flowchart illustrating a method of implementing the bandwidth allocation technique shown in  FIGS. 5A-D , in accordance with an embodiment of the present invention; and 
         FIGS. 7A-C  are bandwidth time diagrams illustrating how rate adaptation is performed on an established/utilized bandwidth time of a station bandwidth time S 5   ra , which is scheduled for rate adaptation. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     Referring first to  FIGS. 3A-D , there is shown a set of bandwidth allocation timing diagrams illustrating a bandwidth allocation technique for communication networks (e.g., TDM-based networks), according to an embodiment of the present invention. According to this embodiment of the invention, a bandwidth request made by a node on a forward path between source and destination nodes is accepted by a master station (i.e., master node) as a “temporary hold” as shown with “Sfh” in  FIG. 3A  (as opposed to the full reservation that takes place in  FIG. 2 ). The temporary hold can be conceptualized as “floating” on top of full allocations (as seen in  FIG. 3B  after S 3  has been allocated and as seen in  FIG. 3C  after S 6  has been allocated), since it does not have any fixed slot timings associated with the allocation. The temporary hold “Sfh” holds the requested bandwidth for at least as long as the time needed to for the request to go end-to-end over a path between the source and destination nodes. In  FIG. 3D , the temporarily held floating bandwidth “Sfh” is converted to a full allocation “Sx” (with fixed slot times). 
     As used in  FIGS. 3A-D , “S 1 ” and “S 5 ” represent established/utilized station bandwidth times. “Sfh” represents a new bandwidth floating hold made for the end-to-end bandwidth reservation. “S 3 ” and “S 6 ” represent other station bandwidth times allocated after the Sfh reserved floating hold bandwidth. “Sx” represents the floating hold reserved bandwidth converted to a full allocation (with fixed slot times). 
       FIG. 4A  is a flowchart illustrating a floating hold method  400 A performed by an intermediate node of a multi-hop path, i.e., a node other than a source or destination node of the multi-hop path, in accordance with the bandwidth allocation technique shown in  FIGS. 3A-D . First, at step  402 , the intermediate node receives a request for bandwidth between two nodes of the network. At decision  404 , if it is determined there are no bandwidth resources available, the request is dropped at step  406 . On the other hand, if bandwidth is available, the intermediate node does not allocate the requested bandwidth as soon as the request is received. Instead, it temporarily holds the request as a floating hold, as indicated by step  408 . If necessary, this process of generating a temporary hold is repeated for other intermediate nodes associated with other links along the end-to-end path. Next, at step  410 , the intermediate node waits for a bandwidth confirm message from the destination node of the multi-hop path. According to an aspect of the invention, the intermediate node may wait until a bandwidth-confirm message is eventually received. Alternatively, as shown at decision  412 , a timer may be triggered in response to the request. If the timer expires before a bandwidth-confirm message is received from the destination node, at step  414  the temporary hold is released and the intermediate node returns to the idle state to wait for another request. However, if the intermediate node does receive a bandwidth-confirm message from the destination node prior to expiration of the timer, as indicated by step  416 , at step  418  the temporary hold is converted into a fixed timeslot allocation, after which the intermediate node returns to the idle state to wait for a subsequent bandwidth request. While the intermediate node has been described as performing a single floating hold process for a single multi-hop path, the intermediate nodes and other intermediate nodes may be configured to perform such floating hold operations for multiple multi-hop paths at the same time. 
       FIG. 4B  is a flowchart illustrating a method  400 B performed by the destination node of the multi-hop path in  FIG. 4A , in accordance with the bandwidth allocation technique shown in  FIGS. 3A-D . First, at step  450  the destination node receives the bandwidth request message. In response to the request, at step  452  the destination node determines if the end-to-end bandwidth of the multi-hop path is sufficient to accommodate the bandwidth request. At decision  454 , if the bandwidth request cannot be accommodated on the path, the system instructs all intermediate nodes to release the request and the destination node returns to an idle state. On the other hand, if sufficient bandwidth resources are available, at step  458  the destination node sends a bandwidth-confirm message back to the intermediate node that originally made the bandwidth request. While the destination node has been described as processing a bandwidth request for a single multi-hop path, it may be configured to process multiple bandwidth requests for multiple multi-hop paths, in which it serves as a destination node, at the same time. 
     The bandwidth reservation scheme described in  FIGS. 3A-D ,  4 A and  4 B has distinct advantages over prior art bandwidth reservation schemes. The cost of tearing down an unsuccessful reservation is dramatically reduced in terms of both the CPU time, since excessive recalculation of bandwidth allocation does not need to take place, and the amount of traffic on the scarce radio resource. A further advantage is that an end-to-end teardown does not affect other stations in the clusters, as it does in prior art approaches (e.g., S 3  and S 6  in  FIGS. 2C-E  above). 
     Referring now to  FIGS. 5A-D , there is shown a bandwidth reservation technique, according to an alternative embodiment of the present invention. Unlike the “floating hold” technique described above in connection with  FIGS. 3A-D ,  4 A and  4 B, which does not allocate bandwidth until the end-to-end bandwidth of a path has been confirmed, a failed bandwidth allocation which has been assigned to a bandwidth time is released with the attempt to allocate it to a subsequent station. 
     In  FIGS. 5A-D  “S 1 ” and “S 5 ” represent established/utilized station bandwidth times. In  FIGS. 5A and 5B , “Sres” represents a new bandwidth time (full allocation) for the end-to-end bandwidth reservation. In  FIGS. 5B ,  5 C and  5 D, “S 3 ” and “S 6 ” represent station bandwidth times allocated after the Sres reserved bandwidth. In  FIG. 5C , the “Hole” represents a bandwidth time released by an Sres station, due to unsuccessful end-to-end bandwidth reservation. In  FIG. 5D , “S 4 ” represents a best fit station bandwidth time occupying the Hole created by the Sres station. 
       FIG. 6  shows the bandwidth reservation technique of  FIGS. 5A-D  in greater detail. At a first step  602  in the method  600  a request for bandwidth between two nodes is received by a master node from an associated slave node. In response to the bandwidth request, at step  604  the master node allocates the bandwidth request (see  FIG. 5A ). This process of allocating bandwidths is repeated for all masters along the entire end-to-end path. Next, at decision  606  it is determined whether the end-to-end bandwidth allocations are sufficient to transmit the message from the source node to the destination node. If “yes”, at step  608  the message is transmitted according to the bandwidth time allocated. Then, at decision  610  a determination is made as to whether a new bandwidth request has been made. If “yes” the method  600  resumes at step  602 . If “no” the method  600  ends. If at decision  608  it is determined that the end-to-end bandwidth requirements have not been satisfied, at step  612  all bandwidth allocations made prior to the point of failure along the end-to-end path are released. 
     As steps  602 - 606  of the method  600  are being performed, and up until the time the bandwidth allocation is finally released, newer bandwidth times may have been allocated to other stations, e.g., stations S 3  and S 6  in  FIG. 5B . This leaves a “hole” in the allocation, as shown in  FIG. 5C . To avoid the prospect of an unused allocation, at decision  614  one or more of the masters along the end-to-end path determine(s) whether the unused reservation(s) can be used by one or more alternate stations. If a station is available to utilize the allocation, at step  616  the bandwidth is allocated to the one or more alternate stations, as shown in  FIG. 5D . The actual bandwidth allocated to the alternate station may be less than the original allocation, which can result in unused fragments of bandwidth. However, this is favored over the allocation not being utilized at all. If decision  614  determines that there are no alternate stations capable of utilizing the allocated bandwidth, at step  618  the hole left by the unused bandwidth may be proactively moved to the tail of all the allocations (as described above with reference to  FIGS. 2C-2E ), after which a determination is made at decision  610  as to whether a new bandwidth request has been made. If a new bandwidth request has been made the method resumes at step  602 . Otherwise, the method ends. 
     After the bandwidth reservations are confirmed to time slots according to one of the techniques described above, for example, the wireless system may have to adapt to link variations (e.g., signal quality variations), by reducing the rate during times when the signal quality degrades and increasing the rate when the signal quality improves. Because transmit time is inversely proportional to the transmit rate, the time slots have to be constantly readjusted according to the rate changes. 
       FIGS. 7A-C  illustrate how rate adaptation is performed on an established/utilized bandwidth time of a station bandwidth time S 5   ra , which is scheduled for rate adaptation.  FIG. 7A  shows bandwidth allocations before rate adaptation is performed. Rate adaptation is performed to increase a data rate in  FIG. 7B  and alternatively to decrease a data rate in  FIG. 7C . As shown in  FIG. 7B , when the rate is increased (e.g., if link conditions improve), S 5   ra  is shrunk, since it takes less time to transmit the same amount of data. Shrinking the bandwidth time creates a hole in the allocation. This hole can be purged (“bubble out”) by moving the hole to the end of the allocations, as is illustrated in  FIG. 7B . On the other hand, when the rate is decreased (e.g., if link conditions worsen), S 5   ra  has to be expanded, as illustrated in  FIG. 7C . This may be accomplished, for example, by injecting a hole at the tail of the allocations, and merging the hole with S 5   ra  to create an expanded time allocation S 5  (“bubble in”). 
     As used in  FIGS. 7A-C , “S 1 ”, “S 3 ” and “S 6 ” represent established/utilized station bandwidth times. “S 5   ra ” represents an established/utilized station bandwidth time for station S 5  and is scheduled for rate adaptation. “S 5 ” represents a station bandwidth time after the rate adaptation. “Hole” represents a bandwidth time due to rate adjust (release or create depending on increase or decrease in rate). 
     Instead of moving the “bubble in” and “bubble out” in stages, as described above, the following process may be performed, according to an embodiment of the present invention. When a slave node (e.g., station S 5 ) requests a master node in its cluster to adjust its bandwidth (i.e., increase or decrease), the cluster master node broadcasts a cluster-wide bandwidth adjustment announcement to all slave nodes that will be immediately affected by the adjustment (in this example stations S 3  and S 6 ). The announcement may be broadcast more than once to ensure that the affected nodes receive the announcement. According to an exemplary embodiment, the announcement is sent two times. Each slave node is required to receive only one announcement out of 2N announcements made (N represents the number of slave nodes immediately affected by the adjustment (e.g., stations S 3  and S 6  in the above example). 
     The affected slave nodes respond to the bandwidth adjustment announcement by sending a bandwidth adjustment request acknowledgment signal back to the master node. After receiving the acknowledgment signals from the slave nodes, the cluster master node sends a positive acknowledgment signal to the slave node which requested the bandwidth adjustment, and to notify the slave node of the created hole next to its slot allocation (as in  FIG. 7C ) or that its bandwidth time has been trimmed at its tail (as in  FIG. 7B ). 
     While the bandwidth adjustment process can be performed in various ways, according to one embodiment of the invention, a two-stage countdown process is employed. The first countdown stage is employed to allow time for the slave nodes affected by the bandwidth adjustment request to become aware of the bandwidth being adjusted and send bandwidth adjust acknowledgment signals back to the cluster master node. According to one aspect of the invention, each of the slave nodes starts a countdown on its own, based on the beacon periods (as each announcement takes exactly one beacon period), and positive acknowledgment signals in the form of a checksum of the message are sent back to the master nodes as a validation token. If the master node does not receive acknowledgments from all affected slave nodes at the expiration of the first countdown period, the first countdown may be repeated a predetermined number of additional times. If after the predetermined number of additional attempts the master node has still not received all of the acknowledgment signals, a negative acknowledge signal is sent to the slave node that requested the bandwidth adjustment and the connection(s) for the non-responding slave node(s) is/are terminated. 
     The second countdown stage commences after the master node receives all of the acknowledgment signals. At the end of the second countdown, the master node instructs the slave nodes to adjust their slot timings all at once. 
     While the above is a complete description of the preferred embodiments of the invention sufficiently detailed to enable those skilled in the art to build and implement the system, it should be understood that various additions, modifications, and equivalents may be made to the invention without departing from the spirit and scope of the invention, which is defined by the appended claims. For example, while the exemplary embodiments described herein are applicable to mesh networks, they are also applicable to other communication network topologies requiring bandwidth reservation techniques. Further, whereas the exemplary embodiments are well suited to wireless networks, the inventions embodied by the exemplary embodiments are also applicable to wired networks. Accordingly, for these and other reasons, various modifications or changes to the specifically disclosed exemplary embodiments will be suggested to persons skilled in the art and are to be included within the spirit and purview of this application and scope of the appended claims.