In wireless networks, scheduling services may provide a data handling mechanism for data transport. A periodical scheduling mechanism may be used, where a wireless node may grant other nodes bandwidth grants periodically (at a specific period, e.g., every p ms). A periodical scheduling mechanism may be implemented, for example using: 1) Periodical scheduling of traffic: The scheduler may grant bandwidth to nodes or users periodically. This may typically be more applicable, for example, to real-time applications that generate fixed-size data packets on a periodic basis, and 2) Periodical scheduling of transmission opportunity request: The scheduler may grant bandwidth for the user to send its bandwidth request periodically, requesting a specific bandwidth or request. This may be more applicable to real-time applications or applications that generate variable size data packets on a periodic basis, such as video, etc.
IEEE 802.16 or WiMax networks may be an example wireless technology that uses the periodical traffic or transmission opportunity request scheduling mechanism. IEEE 802.16 defines the Wireless MAN air interface specification for wireless metropolitan area networks. The specification defines four types of scheduling services.
Unsolicited Grant Service (UGS)
Real-time Polling Service (rtPS) (including Enhanced rtPS—ertPS)
Non-Real-Time Polling Service (nrtPS)
Best Effort (BE)
The UGS is designed to support real-time service flows that generate fixed-size data packets on a periodic basis, such as VoIP without silence suppression, by offering fixed-size grants on a real-time periodic basis to the SS/MS (subscriber station/mobile station). The rtPS is designed to support real-time service flows that generate variable size data packets on a periodic basis, such as MPEG video, by offering real-time, periodic, unicast resource request opportunity to the SS/MS, which meet the flow's real-time needs and allow the terminal to specify the size of the desired amount. Other wireless network technologies may include similar services.
Such a periodical scheduling mechanism may be acceptable for a single hop environment where mobile stations are attached to the base station directly. However, when a multi-hop concept is introduced in a wireless environment, problems may typically arise regarding scheduling synchronization.
Various embodiments are described relating to scheduling synchronization techniques for wireless networks.
According to an example embodiment, a method or technique may include receiving one or more periodic bandwidth grants from a first wireless node, and issuing a bandwidth grant to a second node just before a next periodic bandwidth grant is received from the first wireless node.
According to another example embodiment, an apparatus may include a wireless transceiver, and a controller. The controller may be configured to: receive one or more periodic bandwidth grants from a first wireless node, and issue a bandwidth grant to a second node just before a next periodic bandwidth grant is received from the first wireless node.
According to another example embodiment, a technique or method may include receiving a first bandwidth grant from a first wireless node, estimating a time of receipt for a second bandwidth grant from the first wireless node based on the receiving of the first bandwidth grant from the first wireless node, and issuing a third bandwidth grant to a second wireless node before the estimated time of receipt for the second bandwidth grant from the first wireless node.
According to another example embodiment, an article may include a storage medium. The storage medium may include instructions stored thereon that, when executed by a processor, result in: receiving a first bandwidth grant from a first wireless node, estimating a time of receipt for a second bandwidth grant from the first wireless node based on the receiving of the first bandwidth grant from the first wireless node, and issuing a third bandwidth grant to a second wireless node before the estimated time of receipt for the second bandwidth grant from the first wireless node.
According to another example embodiment, a technique or method may include receiving a first poll for bandwidth request from a first wireless node, estimating a time of receipt for a second poll for bandwidth request from the first wireless node based on the receiving of the first poll for bandwidth request from the first wireless node, and issuing a third poll for bandwidth request to a second wireless node before the estimated time of receipt for the second poll for bandwidth request from the first wireless node.
According to another example embodiment, a technique or method may include receiving one or more periodic polls for bandwidth requests from a first wireless node, and issuing a poll for bandwidth request to a second node before a next periodic poll for bandwidth request is received from the first wireless node.
According to yet another example embodiment, an apparatus may include a wireless transceiver, a memory, and a controller. The controller may be configured to: receive one or more periodic polls for bandwidth requests from a first wireless node, and issue a poll for bandwidth request to a second node before a next periodic poll for bandwidth request is received from the first wireless node.
The various embodiments described herein may be applicable to a wide variety of networks and technologies, such as IEEE 802.11 networks, IEEE 802.16 networks, cellular networks, or other wireless networks. In other example embodiments, although not required, the various examples and embodiments may be applied to a multi-hop environment, such as a wireless mesh network, where a plurality of mesh points (e.g., Access Points or base stations) may be coupled together via wired or wireless links. One or more embodiments described herein may be applicable in Ad hoc operation mode, where the stations or nodes may create a network together and communicate directly without an AP. The various embodiments may be applicable to a variety of wireless nodes, including wireless nodes (such as mesh points, stations or STAs), Access points (APs), base stations, relay station and other types of nodes, and to a variety of networks including wireless networks and wired networks. The term “node” may refer, for example, to a wireless station (STA), an AP or base station, a mesh point, a relay station (or intermediate wireless node), or other wireless computing device, as examples.
In a wireless network, such as a multi-hop network for example, it may be desirable, at least in some cases, to synchronize the scheduling of data transmissions between nodes, mesh points, APs, etc. According to an example embodiment, data frames or packets may be scheduled by the source node and each intermediate node on the path to the destination. Scheduling services may provide a data handling mechanism supported by the scheduler for data transport. According to an example embodiment, a periodical scheduling mechanism may be used, where a wireless node may grant other nodes bandwidth grants periodically (at a specific period, e.g., every p ms, such as every 20 ms). A periodical scheduling mechanism may be implemented, for example using a periodical scheduling of traffic or as a periodic scheduling of transmission opportunity, as examples.
1) Periodical scheduling of traffic: The scheduler may grant bandwidth to nodes or users periodically. This may be more applicable, for example, to real-time applications that generate fixed-size data packets on a periodic basis, such as VoIP (voice over IP) without silence suppression, for example. An example may include IEEE 802.16 UGS (Unsolicited Grant Service). 2) Periodical scheduling of transmission opportunity request: The scheduler may grant bandwidth for the user to send its bandwidth request periodically, requesting a specific bandwidth or request. This may be more applicable to real-time applications that generate variable size data packets on a periodic basis, such as video, etc. An example of this may include IEEE 802.16 rTPS or eRTPS (Real-time Polling Service or enhanced Real-time Polling Service).
Scheduling problems may exist for multi-hop networks, at least in some cases. The various examples and embodiments herein may apply to a wide variety of networks, including but not limited to, multi-hop networks, such as wireless mesh networks, wireless relay networks, etc., or other wireless networks. Examples of a wireless mesh network and a wireless relay network will be briefly described with reference to
A wireless mesh network may be, for example, a multi-hop system in which nodes (which may be termed as mesh nodes) are coupled or connected to each other via wireless media (e.g., WLAN, WiMax) and may assist each other in transferring traffic in the network. A mesh node may send and receive traffic and may also acts as a router and relay traffic for its neighbours. Scheduling may be done using centralized scheduling or distributed scheduling, for example. With centralized scheduling, the BS (base station or AP) may determine the resource assignment and may ensure that transmissions are coordinated to ensure collision-free scheduling. With distributed scheduling, for example, each mesh node may perform independent scheduling with coordination with their extended neighbour and without relying on the BS/AP, for example.
According to an example embodiment, a wireless meshed network may be considered to be a collection of mesh points (MPs) interconnected with wireless or wired links. Each MP may be, for example, an Access Point (AP), base station (BS) or other wireless node. For example, a wireless meshed network may employ either a full mesh topology or a partial mesh topology. In a full mesh topology, each node (or mesh point) may be connected directly to each of the other MPs via a wireless link. In a partial mesh topology, the mesh points may be connected to some but not necessarily all of the other mesh points in the meshed network.
In the example wireless mesh network 100 illustrated in
As noted above, a wireless relay network may be another example of a multi-hop system in which end nodes (MS/SSs) are typically connected to the BS or AP via a Relay Station (RS).
Synchronization problems may arise in such a multi-hop network. For example, node 320 may receive a bandwidth grant from node 330 before receiving a frame from node 310. After expiration of the grant from node 330, node 320 may then receive a frame from node 310 for transmission to node 330. In such a case, wireless node 320 may typically need to buffer this frame received from node 310 until node 330 issues a next bandwidth grant to wireless node 320. If grants are issued every P ms (e.g., 20 ms), then node 320 may need to buffer this frame up to around P ms (e.g., 20 ms) until the grant from node 330 is received to allow node 320 to transmit or forward the frame to node 330. This delay up to P ms is for one hop. Therefore, if the grants are not synchronized between nodes, a delay of up to P×N may be generated due to the non-synchronization between grants, where P is the space (in ms) between periodic bandwidth grants and N is the number of hops. This lack of synchronization in scheduling between nodes may therefore introduce delays in a wireless network, for example. Thus, according to an example embodiment, a scheduling synchronization may be provided to decrease delays and improve throughput.
As shown in
Thus, in this manner, the bandwidth grants between nodes 430 and 420 may be synchronized, e.g., so as to facilitate the transmission of one or more frames from node 410 to node 420 to node 430 while decreasing the amount of delay introduced due to buffering the frame and waiting for the next grant.
In the example embodiment of
Initially, node 530 issues a poll Pa to node 520. However, because node 520 does not initially have a frame to transmit to node 530, node 520 transmits a bandwidth request to node 530 with bandwidth=0 (Ba′=0), in this example. Because node 520 may determine or detect that polls are received from node 530 every p ms, node 520 may estimate a time of receipt for a next poll for bandwidth request (Pb) based on the received poll Pa (or based on receipt of one or more periodic polls) from node 530 (e.g., based on the time of the received poll Pa and the determined period between polls). In an example embodiment, the period between polls may be determined based on a Quality of Service (QoS) for a traffic stream, for one of the nodes, etc. For example, a node may issue more frequent polls for higher QoS traffic, although this is merely an example.
Before (e.g., just before) the estimated time of receipt for the next poll for bandwidth request Pb from node 530, node 520 issues or transmits a poll for bandwidth request Pb′ to node 510. In response to receiving poll Pb′, node 510 transmits a bandwidth request B″ to node 520, and in response thereto, node 520 issues a bandwidth grant b′ to node 510. In response to receiving bandwidth grant b′, node 510 transmits frame 1 to node 520 during the bandwidth grant b′ (transmission of frame 1 during grant b′ is shown in the Traffic from Node 510).
Next, poll for bandwidth request Pb is received, e.g., substantially at the estimated time of arrival for the poll Pb. In response to receiving poll Pb, node 520 issues or transmits a bandwidth request Bb′ to node 530. In response to bandwidth request Bb′, node 530 issues or transmits a bandwidth grant b to node 520. In response to receiving the bandwidth grant b, node 520 then transmits frame 1 (or at least a portion of the frame 1) received from node 510, to node 530 during grant b. The entire frame 1 received from node 510 may be forwarded, or at least a portion of this frame 1 may be forwarded (e.g., frame body transmitted with a new header), as examples.
Note that the frame 1 transmitted from node 510 to node 520 during grant b′ may be transmitted before the poll Pb is issued or received, or frame 1 may be transmitted during grant b′ concurrently with one or more of poll Pb′, bandwidth request B″ and grant b, for example. The other polls from nodes 530 and 520 may be similarly synchronized or coordinated. In an example embodiment, this approach to synchronization shown in
Thus, the coordination or synchronization of polls and/or grants may allow for data or frames to be transmitted across multiple hops, for example, while decreasing the delay encountered during transmission and storage across the nodes.
At 620, a time of receipt is estimated for a second bandwidth grant from the first wireless node based on the receiving of the first bandwidth grant from the first wireless node. The time of receipt of the second bandwidth grant may be estimated because the bandwidth grants from the first wireless node may be periodic, and the space between periodic grants may be determined, for example. The period between periodic polls or grants may be determined according to a Quality of Service (QoS), e.g., for the node, etc. For example, higher level QoS may poll or issue grants more frequent than a lower QoS, for example. At 630, a third bandwidth grant may be issued to a second wireless node before (or possibly just before) the estimated time of receipt for the second bandwidth grant from the first wireless node.
Blocks 640, 650 and 660 may be optional, in an example embodiment. At 640, a frame may be received from the second wireless node during the third bandwidth grant. At 650, the second bandwidth grant may be received from the first wireless node at approximately (or substantially) the estimated time of receipt for the second bandwidth grant. At 660, the received frame (frame received from the second node) may then be transmitted to the first wireless node during the second bandwidth grant. The flow chart of
At 720, a time of receipt for a second poll for bandwidth request from the first wireless node may be estimated or predicted (or determined) based on receiving of the first poll for bandwidth request from the first wireless node. At 730, a third poll for bandwidth request is issued to a second wireless node before the estimated time of receipt for the second poll for bandwidth request from the first wireless node.
In an example embodiment, blocks 740, 750, 760 and 770 may be optional, for example. At 740, a first bandwidth grant may be issued to the second wireless node based on the third poll for bandwidth grant. For example, the first bandwidth grant may be issued to the second node based on an exchange of poll/bandwidth request/bandwidth grant messages with the second wireless node, although this is merely an example.
At 750 a frame (e.g., data frame) may be received from the second wireless node during the first bandwidth grant. At 760, a second bandwidth grant may be received from the first wireless node based on the first poll for bandwidth request. For example, the second poll from the first wireless node may be received at substantially the estimated time of receipt for the second poll. The second bandwidth grant may be subsequently received in response to transmitting a bandwidth request to the first wireless node, although this is merely an example. At 770, at least a portion of the frame (received at 750 from second wireless node) may be transmitted to the first wireless node during the second bandwidth grant. Either the entire frame may be transmitted or forwarded, or a portion may be transmitted, such as a frame body along with a new header, for example.
At 1020, a poll may be issued for bandwidth request may be issued to a second node before a next periodic poll for bandwidth request is received from the first wireless node.
Implementations of the various techniques described herein may be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. Implementations may implemented as a computer program product, i.e., a computer program tangibly embodied in an information carrier, e.g., in a machine-readable storage device or in a propagated signal, for execution by, or to control the operation of, data processing apparatus, e.g., a programmable processor, a computer, or multiple computers. A computer program, such as the computer program(s) described above, can be written in any form of programming language, including compiled or interpreted languages, and can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program can be deployed to be executed on one computer or on multiple computers at one site or distributed across multiple sites and interconnected by a communication network.
Method steps may be performed by one or more programmable processors executing a computer program to perform functions by operating on input data and generating output. Method steps also may be performed by, and an apparatus may be implemented as, for example, hardware or special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).
While certain features of the described implementations have been illustrated as described herein, many modifications, substitutions, changes and equivalents will now occur to those skilled in the art. It is, therefore, to be understood that the appended claims are intended to cover all such modifications and changes as fall within the true spirit of the various embodiments.
This application claims priority to U.S. Provisional Application Ser. No. 60/777,655, filed on Feb. 27, 2006, entitled “Scheduling Synchronization Techniques For Wireless Networks,” hereby incorporated by reference.