This invention relates to the field of communications, and in particular to a system and method for allocating time or frequency slots among wireless devices distributed across a relatively large geographic area.
The use of wireless devices continues to grow, and conventional time or frequency allocation among such devices is proving inefficient, and in some cases, inadequate to provide sufficient and reliable throughput.
In a typical wireless communication system, transmission channels are dynamically allocated to each node, based on a request for the channel by the node. Each transmission channel is different from each other in some fundamental aspect. In a TDMA (Time Division Multiple Access) network, each transmission channel corresponds to an allocated time slot; in an FDMA (Frequency Division Multiple Access) network, each transmission channel corresponds to an allocated frequency slot; and in a CDMA (Code Division Multiple Access) network, each transmission channel corresponds to an allocated code, or code-phase. For ease of reference and understanding, the invention is presented using the paradigm of a TDMA network in which time-slots are allocated to transmitters that request access. One of skill in the art will recognize that the principles presented herein are equally applicable to FDMA and CDMA networks, as well as other networks that may use a different allocation technique, including a combination of allocation techniques.
In a TDMA system, a given time ‘frame’ is partitioned into a number of time ‘slots’. At each frame, the time slots are allocated among requesting transmitters. Typically, each node that has information to transmit requests access to one or more slots during a ‘beacon’ period before the transmission time frame, and receives an identification of the allocated time slot(s) at which it is authorized to transmit. The beacon signal from each node may also include an identification of the intended recipient(s) of the transmission(s), and the allocation response serves to also inform each of the intended recipients when to expect transmissions from other nodes.
Network performance is significantly affected by the techniques used for allocating transmission channels among a number of nodes. As network complexity increases, and/or the amount of traffic increases, the number of requested slots may exceed the finite number of time slots in the frame, and the allocation scheme will need to select which of the requesting nodes are to be allocated time slots, and which requests are to be denied. As each request is denied, a backlog builds at the denied node, and the problem is compounded as the denied nodes continue to request access at each subsequent frame. If the allocation is ‘fair’, all nodes will share in the degraded performance caused by their denied requests. However, some applications, such as streaming video, may have a low-threshold for the amount of degraded performance experienced, effectively resulting in a ‘failure’ of the network with regard to these applications when this threshold is exceeded. Accordingly, some nodes will be given priority, resulting in other nodes experiencing more than their fair-share of the degradation.
Additionally, some allocation schemes may be inherently more efficient than others in terms of satisfying access requests. Although it would be desirable to provide the maximum traffic capacity at each time frame, this generally requires some level of traffic control or traffic smoothing, to avoid combinations of underutilized frames and overdemanded frames, and some allocation schemes are better suited than others for particular types of traffic flow. In like manner, some allocation schemes are better suited than others for supporting increases in network size and complexity.
Because wireless networks can be very dynamic when it comes to the size of the network, the efficient allocation of resources among wide ranging networks is becoming increasingly important.
A message from node A to node G must be relayed through nodes C, E, and F. Conventionally, the use of each link along a route is termed a “hop”, and the transmission of the message from A to G uses four hops, A-C, C-E, E-F, and F-G. Each of these four hops will require the allocation of a time slot in each of four time frames. This multiplicative effect on a multi-hop network significantly increases the overall demand for network resources, further increasing the need for efficient channel allocation in multi-hop wireless networks. Consider, for example, a time-slot duration of 1 ms; if a hundred unit-length messages are sent from node A to node G, 400 milliseconds would be required to transmit these packets using a simple linear TDMA allocation. However, if it is recognized that the transmissions from node F to node G cannot interfere with transmissions from node A to node C, and vice versa, then when the first message is being sent from node F to node G on an allocated channel, the second message can be sent from node A to node B on the same channel. In this manner, it can be shown that these hundred messages can be sent from node A to node G in 301 milliseconds (3*99+4), thus resulting in a savings of just under 25%.
“A Unified Framework and Algorithm for (T/F/C)DMA Channel Assignment in Wireless Networks”, Ram Ramanathan, Proceedings of the IEEE INFOCON 1997, Kobe (Japan) 1997, hereinafter Ramanathan, presents an efficient algorithm for allocations in a multi-hop network based on relatively simple observations: two nodes in direct communication with each other cannot both transmit on the same channel without interfering with each other, and two nodes in direct communication with a third node cannot both transmit on the same channel without interference at the third node.
A directed graph provides a convenient representation of wireless communication networks, wherein each network node forms a vertex of the graph, and each direct link between nodes is represented as an edge.
The efficiency of the allocation of channels based on allowable sharing can be affected by the order in which the node requests are processed. In
In most networks, different users have different priorities, and contractual matters often grant different rights to service among users. It would be advantageous to provide an allocation scheme that accommodates the requirements of the network in which it operates. It would also be advantageous to provide a tool that assesses a proposed allocation scheme for an existing or proposed network.
These advantages, and others, can be realized by an allocation scheme for a multi-hop wireless network that takes into account the priority of users, particular application requirements, applicable contractual requirements, and the like. Preferably, the allocation scheme distinguishes between resources that must be dedicated to each node based on the requirements associated with each node, and the resources that are dynamically provided to each node, based on the current traffic demand. Additionally, recognizing that unallocated resources that are unused represent an inefficient use of channel resources, resources that are not required to satisfy explicit requests are allocated among the nodes, thereby allowing nodes to sometimes avoid the delays associated with the access request process.
The invention is explained in further detail, and by way of example, with reference to the accompanying drawings wherein:
Throughout the drawings, the same reference numerals indicate similar or corresponding features or functions. The drawings are included for illustrative purposes and are not intended to limit the scope of the invention.
In the following description, for purposes of explanation rather than limitation, specific details are set forth such as the particular architecture, interfaces, techniques, etc., in order to provide a thorough understanding of the concepts of the invention. However, it will be apparent to those skilled in the art that the present invention may be practiced in other embodiments, which depart from these specific details. In like manner, the text of this description is directed to the example embodiments as illustrated in the Figures, and is not intended to limit the claimed invention beyond the limits expressly included in the claims. For purposes of simplicity and clarity, detailed descriptions of well-known devices, circuits, and methods are omitted so as not to obscure the description of the present invention with unnecessary detail.
As noted above, the invention is presented herein using the paradigm of a TDMA network in which time slots are allocated within each time frame, based on requests from nodes that have traffic to transmit, although the principles presented herein are applicable to a variety of resource allocation techniques, including FDMA and CDMA. For ease of reference and understanding, messages are considered to comprise one or more packets, each packet requiring one time slot for transmission. The term ‘packet’ is used in the general sense, representing a unit of message information, regardless of how this information is formatted for transmission. For example, a continuous transmission of information over ‘n’ time slots can be considered to comprise ‘n’ packets, for ease of illustration and understanding.
At 410, the network is assessed to determine topology, and to determine therefrom the sets of nodes that cannot share a common channel. Any of a variety of techniques may be used to determine topology, including the common technique of having each node broadcasting a list of its known neighbors. In a preferred embodiment of this invention, the algorithm presented in [Ran], above, is used to identify nodes that are not permitted to concurrently transmit on a common transmission channel, although any other technique for identifying nodes that should not share a common transmission channel may be used.
At 415, the priority associated with each node is determined, and used to distinguish sets/groups of nodes of differing priorities. The priority of a node may be set by any of a variety of techniques. Nodes that are providing multimedia information, for example may be given a higher priority than nodes that are providing textual information. In some situations, nodes that have subscribed to a generally higher level of service, with an associated higher level service fee, are given priority over nodes that have subscribed to lower levels of service.
At 420, the priority of nodes within each group is determined, based on any of a variety of allocation parameters. For example, the group priority may be established based on purchased levels of service, and the priority within the group may be established based on the type of application each node is expected to provide.
Although group and node priorities are criteria for allocation of resources, it is recognized that contractual or promised service commitments are often of primary concern to the service provider. For example, many service contracts provide an assurance of at least some minimum bandwidth, or throughput. In an example frame comprising one hundred slots of 100 microsecond duration, each slot comprising a hundred bytes, a promised 100 kbs bandwidth corresponds to a promise of ten slots per frame (100 frames/second*10 slots/frame*100 bytes/slot=100000 slots/second). When a node that has been promised ten slots per frame has data to transmit, at least ten slots per frame should be allocated to the node, regardless of the priority of the node. In the context of this disclosure, the satisfaction of a promised allocation is termed a dedicated allocation.
Generally, a provider will not promise/dedicate more time slots to client nodes than are available in a frame. However, both the provider and client realize that not every client will be demanding service at every frame, and therefore there will be spare resources that can be allocated dynamically, as the demands vary, and the provided bandwidth will generally exceed the promised minimum bandwidth. In the context of this disclosure, the satisfaction of a requested demand in excess of the guaranteed minimum allocation is termed a dynamic allocation.
At 425, the requests from the nodes in the network are collected to determine the demand for the next time frame. As noted above, such requests are commonly submitted via beacon signals from nodes that have data to transmit.
For ease of understanding, it is assumed herein that the promised level of service takes precedence over the node or group priorities. One of skill in the art will recognize, however, that the relative significance of promised service and node or group priority may differ in different embodiments. For example, in some embodiments, the priority levels may include levels of “paying customers” and levels of “non-paying customers”. In these embodiments, the satisfaction of promised service among non-paying customers may be addressed only after satisfying all of the current demands of the paying customers, including those demands that exceed the promised service to the paying customers. In other embodiments, the priority levels may be absolute, and the dedicated and dynamic allocations may be addressed within each group priority level before the demands of the nodes in the next group priority level are addressed. That is, one of skill in the art will recognize that the particular order of processing the demands from the nodes may differ from the example flow 430-475 of
Not illustrated in
In the loop 430-450, all of the requests from the nodes are addressed to assure that the promised allocation level is provided. In this embodiment, the nodes are processed in their group order, although if the provider does assure that the promised allocation level is always lower than the available time slots, this order of processing can be ignored. In the inner loop 435-445, the requests of each node in each group is assessed, in priority order if necessary, and any request within the limit of the promised minimum allocation is satisfied by allocating slots to satisfy this dedicated allocation.
At 440, the requests within the promised allocation for each node are processed to allocate one or more channels to satisfy the request. Preferably, the allocation scheme of Ramanathan is used for an efficient allocation with a multi-hop network, although any allocation scheme may be used, including, for example, a simple linear allocation when traffic demands are low enough to be satisfied by this technique.
Of particular note, all nodes are processed to provide the dedicated allocation, before dynamically allocating slots in excess of the dedicated allocation, at 455-475.
In the loop 455-475, requests from each node in excess of its minimum promised allocation are addressed. The outer loop 455-475 processes the groups in priority order, and the inner loop 460-470 processes each node in priority order within each group.
At 465, the same allocation scheme as used at block 440 is used to allocate channels to satisfy the as-yet-unsatisfied demands for the next time frame, although different allocation techniques may be used as desired. For example, one allocation scheme may be particularly well suited for allocating blocks of channels to provide dedicated allocations, while another may be preferred for allocating individual channels to provide dynamic allocations.
After all requests for transmission channels have been satisfied, some channels may often remain available. In conventional systems, these channels generally go unused, as the allocation has satisfied all of the known demands.
In accordance with one aspect of this invention, it is recognized that between the time that a channel is requested by a node and the time that the allocated channel is used, other data may have been queued for transmission from the node. Therefore, regardless of an explicit request, all of the remaining available time slots are preferably allocated, at 480. When the allocation is published, at 485, the nodes will receive notification of allocations based on their requests, as well as unrequested allocations. If a node has data to send at the time that the unrequested allocation arrives, it can send that data during the allocated time slot, thereby avoiding the delay incurred by having to explicitly request a time slot.
In a preferred embodiment, the remaining available time slots are allocated to the nodes that have requested time slots, in proportion to their requested demands, based on the assumption that most communications are continuous across a number of time frames. That is, if the node is transmitting a continual message, providing the intermediate unused time slots will facilitate efficient transmission of the message. Once the message is terminated, the requests will cease and the available slots will be allocated to nodes that have ongoing requests. Other techniques for allocating otherwise unallocated channels may also be used, including, for example, a straightforward uniform or priority-weighted distribution among all the nodes.
Preferably, the allocation of available channels among the nodes that are to receive the allocation is provided using the allocation technique of Ramanathan, so that the advantages of channel sharing can be realized. One of skill in the art will realize that this allocation of available channels in not limited, per se, to the as-yet-unallocated channels. That is, for example, in the allocation of
After processing all of the requests for the time frame, and broadcasting the determined allocation at 485, the allocation process 425-480 is repeated for the next time frame. Optionally, the repeated process may include a redetermination of priority, as indicated by the dashed-arrow to block 415. To avoid having low-priority nodes completely bypassed during periods of traffic saturation, each time that a node's request is not satisfied, it's priority level is increased, so that eventually, it achieves a high enough priority to be allocated a transmission channel ahead of other nodes.
It is significant to note that the above partitioning of demands between dedicated and dynamic allocations assumes that each message from a node can be arbitrarily partitioned into independent packets. One of skill in the art will recognize that if a message, or parts of a message, must remain contiguous in transmission, this requirement can be conveyed to the allocation blocks 440, 465, and these blocks can be configured to allocate multiple contiguous channels to satisfy such demands.
Also illustrated by dashed lines in
A processor 510 is configured to control the operation of the node, typically based on machine instructions that are stored in a memory 520, the machine instructions being an executable embodiment of a computer program that provides some or all of the functions of the method of
A transceiver 530 is configured to provide communication with other nodes on the network, such as the network illustrated in
Based on the connectivity information from the other nodes, as well as the connectivity of this node, the processor 510 creates a topological description 560, preferably in the form of a directed graph as detailed in Ramanathan, so that the identification of sets of nodes that are not permitted to share channels can be readily identified, as also detailed in Ramanathan, and as discussed above with regard to
As discussed above, in a preferred embodiment of this invention, a priority of communication 550 is defined for each node. In a commercially provided network, priorities may be based on a level of purchase price; in a business network, priorities may be based on job-function; in a home network, priorities may be based on the type/class of information that is expected to be transmitted from each node; and so on. Commonly, the priority levels are generalized, and not specific to particular nodes or functions, using, for example, a priority scale of 1 to 10 or a set of ‘low’, ‘medium’, and ‘high’ priorities, such that there will likely be a number of nodes having the same priority level. Optionally, the relative priority of each node within each group is also defined, either in a specific numerical ordering, or again in sets of generalized priority.
In addition to priority levels, any promises 540 made for levels of service may also be defined. The term ‘promise’ is used herein to include any implied, expressed, or assumed level of service that the provider identifies. In a commercial network, the purchase price may contractually provide for a guaranteed minimum level of service, or an advertisement may imply a certain minimum level of service. In like manner, if an Internet Café provider adopts a “better to turn away than to disappoint” principle, this provider may set a default minimum level of service that is also used to deny entry into the network when this level cannot be assured for each node already accepted into the network. In a home network, if any node has a required minimum level of service to operate properly, such as a multimedia player, or an Internet-phone, the homeowner will specify this requirement as a promised level of service.
In a preferred embodiment of this invention, these promises 540 are defined in terms of a minimum number of slots within each frame that will be dedicated to the node whenever the node requests such slots for transmission. In some embodiments, it may be known that a particular node will be transmitting continually, and these dedicated slots for this node may be allocated in each frame regardless of receipt of an explicit request. In like manner, for a node that generally provides bursts of data, its dedicated slots may be automatically allocated for a given number of frames upon receipt of an initial request at the start of each burst. For ease of reference, the dedicated slots that are allocated without an explicit request are defined to be allocations of dedicated slots in response to implied requests, and the term ‘request’ as used herein includes both implicit and explicit requests.
Using these defined promises 540, priorities 550, and non-sharing nodes 560, the processor 510 responds to each set of requests received from the other nodes before each time frame, as provided in the example process of
As noted above, a node's request is not limited to the number of slots that it has been promised. For ease of reference, a request for a number of slots in excess of the number of promised dedicated slots is termed a request for that number of dynamic slots. Depending upon the adopted request protocol, each node may send one request that includes an entirety of the node's requests, or may send individual requests, wherein dedicated and dynamic slots are distinguished, and/or different addressees are distinguished. One of skill in the art will recognize that the particular form of the requests is immaterial to the principles of this invention.
Of particular note, in accordance with an aspect of this invention, the processor 510 is configured to allocate all requested dedicated slots, before any requests for dynamic slots are granted, regardless of the priority of the nodes, or at least regardless of the priority of the node within a common priority grouping of nodes.
Although the promises are preferably structured to assure that each request for a dedicated slot is satisfied, in many situations, a reasonable risk of over-commitment may be acceptable, because the available number of allocatable channels in a multi-hop environment with shared channels varies dynamically, and the likelihood of all nodes requesting all of their dedicated channels is likely to be low. If the possibility exists that all promises may not be satisfied, the processor 510 allocates dedicated slots in order of group and node priorities. In like manner, after allocating all of the requested dedicated slots, if the possibility exists that remaining requests may not be satisfied, the processor 510 allocates dynamic slots in order of group and node priorities.
One of skill in the art will recognize, however, that there may be little benefit derived from determining whether all requests for dedicated and dynamic slots can be satisfied a priori, and the processor 510 may be configured to always process requests in priority order, regardless of the requested allocations, as illustrated at 430-475 in
After allocating all of the dedicated and dynamic slots, the processor 510 determines whether there are any available slots remaining, and allocates these remaining slots among the nodes, using any of a variety of allocation schemes, as discussed above with regard to block 480 of
As is readily apparent from the above, the choice of priorities and the levels of promised service will determine the order in which requests are satisfied, and it is well known in the art that the order of allocation can significantly affect the overall efficiency of the allocation with regard to taking advantage of sharable channels, as well as the overall effectiveness of the allocation to satisfy promises, or the overall effectiveness of the promises satisfying application or user requirements.
In accordance with another aspect of this invention, the method of allocation of
The simulation engine simulates the propagation of the sample traffic 620 within the network as the wireless nodes are simulated as being positioned geographically based on the sample mobility 625. The simulation engine propagates the generated traffic and other messages among the models 680 of the nodes of the network, including a model 670 of the allocation node. The model 670 of the allocation node is configured to exercise the same functions as the actual node as detailed above with respect to
As in the actual network, the model 670 of the allocation node will receive requests from the models 680 of the other nodes, based on the sample traffic 620, and will allocate dedicated and dynamic channels based on the promises 640 and priorities 650 associated with each node. If any channels of the transmission frame remain available, the model 670 of the allocation node will also allocate these remaining available channels among the nodes, then provide the allocation to the simulation engine 610 for broadcast to the models 680 of the nodes.
Based on the broadcasted allocation, the models 670, 680 of the nodes having traffic to send will provide their traffic at their allocated times, and the simulation engine 610 will correspondingly propagate this traffic through the modeled network. This process is repeated for each transmission frame until the simulation is terminated by the user or by the cessation of sample traffic 620.
The resultant propagation of traffic across the modeled network is assessed by a performance analyzer 630 to determine any of a variety of performance measures. For example, the sample traffic 620 may specify a particular pattern of traffic from a source node to a destination node, and the performance analyzer 630 may determine such factors as the distribution of observed delay between the time each packet of the message is generated, and the time that it is received at the intended destination, or the distribution of accepted/rejected requests, and so on.
A user interface 690 is provided to facilitate the simulation of the network under different combinations of promises 640 and priorities 650. Typically, a user will establish a sample set of promises 640 and priorities 650, run the simulation using the sample mobility 625 and traffic 620 patterns, assess the resultant performance, then repeat the process after modifying one or more of the sample promises 640, priorities 650, mobility 625 or traffic 620. In this manner, the selection of preferred promises 640 and priorities 650 for use as the promises 540 and priorities 550 in the actual allocation node of
The foregoing merely illustrates the principles of the invention. It will thus be appreciated that those skilled in the art will be able to devise various arrangements which, although not explicitly described or shown herein, embody the principles of the invention and are thus within its spirit and scope. For example, in addition to assessing a variety of possible priority and promise situations on the network, the simulation system can be configured to assess the expected performance of the network based on a variety of frame sizes, time slot durations, and so on. These and other system configuration and optimization features will be evident to one of ordinary skill in the art in view of this disclosure, and are included within the scope of the following claims.
In interpreting these claims, it should be understood that:
a) the word “comprising” does not exclude the presence of other elements or acts than those listed in a given claim;
b) the word “a” or “an” preceding an element does not exclude the presence of a plurality of such elements;
c) any reference signs in the claims do not limit their scope;
d) several “means” may be represented by the same item or hardware or software implemented structure or function;
e) each of the disclosed elements may be comprised of hardware portions (e.g., including discrete and integrated electronic circuitry), software portions (e.g., computer programming), and any combination thereof;
f) hardware portions may be comprised of one or both of analog and digital portions;
g) any of the disclosed devices or portions thereof may be combined together or separated into further portions unless specifically stated otherwise;
h) no specific sequence of acts is intended to be required unless specifically indicated; and
i) the term “plurality of” an element includes two or more of the claimed element, and does not imply any particular range of number of elements; that is, a plurality of elements can be as few as two elements, and can include an immeasurable number of elements.
This application claims the benefit of U.S. Provisional Patent Application 61/051,023, filed 7 May 2008.
Number | Date | Country | |
---|---|---|---|
61051023 | May 2008 | US |