The present embodiments relate generally to communication systems, and specifically to networks that have multiple-priority traffic.
Data to be transmitted by a networked device may be divided into multiple data blocks (e.g., PHY blocks of a fixed length), which are then combined into data units (e.g., MAC protocol data units or MPDUs). Data transmission efficiency increases as more data, and thus more data blocks, are included in a single data unit. However, the data blocks may have different priorities. Combining data blocks of different priorities into a single data unit presents challenges.
The present embodiments are illustrated by way of example and are not intended to be limited by the figures of the accompanying drawings.
Like reference numerals refer to corresponding parts throughout the drawings and specification.
Embodiments are disclosed in which data blocks of different priorities and data blocks that are to be retransmitted are combined into a single data unit for transmission.
In some embodiments, a method of transmitting data includes storing high-priority data blocks in a high-priority queue, storing low-priority data blocks in a low-priority queue, and generating a first data unit that includes one or more of the high-priority data blocks and one or more of the low-priority data blocks. Generating the first data unit includes arranging the one or more high-priority data blocks and the one or more low-priority data blocks in a sequence in which the one or more high-priority data blocks precede the one or more low-priority data blocks. Generating the first data unit further includes indexing the one or more high-priority data blocks and the one or more low-priority data blocks in accordance with the sequence. The first data unit is transmitted.
In some embodiments, an electronic device includes a high-priority queue to store high-priority data blocks, a low-priority queue to store low-priority data blocks, and a media access controller (MAC) to generate a first data unit comprising one or more of the high-priority data blocks arranged in a sequence with one or more of the low-priority data blocks. The one or more high-priority data blocks precede the one or more low-priority data blocks in the sequence. The MAC is to index the one or more high-priority data blocks and the one or more low-priority data blocks in accordance with the sequence. The electronic device also includes a transmitter to transmit the first data unit.
In some embodiments, a computer-readable storage medium stores one or more programs configured to be executed by an electronic device comprising one or more processors. The one or more programs include instructions to store high-priority data blocks in a high-priority queue, instructions to store low-priority data blocks in a low-priority queue, and instructions to generate a first data unit that includes one or more of the high-priority data blocks and one or more of the low-priority data blocks. The instructions to generate the first data unit include instructions to arrange the one or more high-priority data blocks and the one or more low-priority data blocks in a sequence, wherein the one or more high-priority data blocks precede the one or more low-priority data blocks in the sequence, and instructions to index the one or more high-priority data blocks and the one or more low-priority data blocks in accordance with the sequence.
In some embodiments, a system includes a plurality of networked electronic devices, including a first electronic device and a second electronic device. The first electronic device includes a high-priority queue to store high-priority data blocks, a low-priority queue to store low-priority data blocks, a retransmission queue to store previously transmitted data blocks that were not correctly received by the second electronic device, and a media access controller (MAC) to generate a first data unit. The first data unit includes a sequence of the previously transmitted data blocks, one or more of the high-priority data blocks, and one or more of the low-priority data blocks. The previously transmitted data blocks precede the one or more high-priority data blocks in the sequence and the one or more high-priority data blocks precede the one or more low-priority data blocks in the sequence. The MAC is to index the one or more high-priority data blocks and the one or more low-priority data blocks in accordance with the sequence. The first electronic device also includes a transmitter to transmit the first data unit. The second electronic device includes a receiver to receive the first data unit and a transmitter to transmit an acknowledgment identifying which data blocks of the first data unit were not correctly received.
In the following description, numerous specific details are set forth such as examples of specific components, circuits, and processes to provide a thorough understanding of the present disclosure. Also, in the following description and for purposes of explanation, specific nomenclature is set forth to provide a thorough understanding of the present embodiments. However, it will be apparent to one skilled in the art that these specific details may not be required to practice the present embodiments. In other instances, well-known circuits and devices are shown in block diagram form to avoid obscuring the present disclosure. The term “coupled” as used herein means connected directly to or connected through one or more intervening components or circuits. Any of the signals provided over various buses described herein may be time-multiplexed with other signals and provided over one or more common buses. Additionally, the interconnection between circuit elements or software blocks may be shown as buses or as single signal lines. Each of the buses may alternatively be a single signal line, and each of the single signal lines may alternatively be buses, and a single line or bus might represent any one or more of a myriad of physical or logical mechanisms for communication between components. The present embodiments are not to be construed as limited to specific examples described herein but rather to include within their scope all embodiments defined by the appended claims.
Access to the medium (e.g., the coax links of the cable plant 130) that couples that devices 110 and 120-1 through 120-N is time-multiplexed using a Time-Division Multiple Access (TDMA) protocol. In some embodiments, the master device 110 periodically broadcasts a medium access schedule (also referred to as a channel access schedule) to all slave devices 120-1 through 120-N. For example, the channel access schedule is periodically broadcast in a message called a beacon message or simply a beacon. The channel access schedule assigns dedicated time slots to respective slave devices 120, such that a respective slave device 120 may transmit during its dedicated time slot and not during time slots assigned to other slave devices 120. A scheduler in the master device 110 determines the amount of medium access for each slave device 120, based for example on the service level agreements (SLAs) between end users associated with respective slave devices 120 and the service provider (e.g., cable operator) who controls the master device 110. The scheduler constructs the channel access schedule based on the determined amounts of medium access for the slave devices 120.
The period between broadcasts of successive channel access schedules (e.g., the period from the beginning of a beacon message to the beginning of the next beacon message) is called a beacon period.
Each beacon period 202 further includes upstream time slots 208 and downstream time slots 210. The time slots 208 and 210 are allocated in accordance with a time-division multiple access (TDMA) protocol. Respective upstream time slots 208 are assigned to respective slave devices 120 for upstream transmissions to the master device 110. These assignments are based at least in part on the reported status of transmission queues in the slave devices 120. For example, a slave device 120 may have multiple queues (e.g., low-priority queue 326, high-priority queue 328, and retransmission queue 330,
A total of M upstream time slots 208 are assigned to M slave devices 120, where M is the number of slave devices 120 allowed to transmit during a respective beacon period 202. The number M may vary from beacon period 202 to beacon period 202, depending for example on the available bandwidth and demand for bandwidth during different beacon periods 202.
Downstream time slots 210 are allocated for downstream transmissions by the master device 110. The downstream time slots 210 may include time slots for unicast transmissions to specific slave devices 120 as well as a time slot for broadcasts to all of the slave devices 120-1 through 120-N. Because the downstream time slots 210 are allocated to the master device 110, the slave devices 120 do not transmit during the downstream time slots 210. The master device 110 may have multiple queues (e.g., low-priority queue 308, high-priority queue 310, and retransmission queue 312,
In some embodiments, the lengths (i.e., durations) of the time slots 204, 206, 208, and/or 210 are variable, as shown for the time slots 208-1, 208-2, and 208-M in
In each beacon period 202 (e.g., during respective upstream time slots 208), the slave devices 120-1 through 120-N report their amounts of queued upstream traffic to the master device 110 so that the master device 110 can create an appropriate channel access schedule for a subsequent (e.g., the next) beacon period 202. The amount of queued upstream traffic for a respective slave device 120 may include the amount of low-priority traffic, high-priority traffic, and/or retransmission traffic queued in the slave device 120 for upstream transmission. The channel access schedule for the subsequent (e.g., next) beacon period 202 assigns upstream time slots 208 based on the reported amounts of queued upstream traffic. (The channel access schedule may also reflect the levels of service provided for in the service level agreements.) Similarly, the channel access schedule assigns downstream time slots 210 based on the amounts of queued downstream traffic in the master device 110.
The TDMA MAC 324 of the slave device 322 includes a low-priority queue 326 to store low-priority traffic (e.g., low-priority PBs) and a high-priority queue 328 to store high-priority traffic (e.g., high-priority PBs) for subsequent upstream transmission to the master device 302. The terms low-priority and high-priority as used herein are used with respect to each other: low-priority traffic has lower priority than high-priority traffic, and vice versa. In some embodiments, high-priority traffic includes Voice-over-Internet-Protocol (VoIP) traffic. The TDMA MAC 324 also includes a retransmission (re-TX) queue 330 to store traffic (e.g., PBs) that was previously transmitted but was reported as not having been received correctly. For example, when the slave device 322 transmits to the master device 302 an MPDU that includes multiples PBs, the master device 302 responds with a selective acknowledgment (SACK) that identifies which of the PBs were correctly received and/or which of the PBs were not correctly received. The slave device 322 stores the PBs that were not correctly received in the retransmission queue 330 for subsequent retransmission to the master device 302. The TDMA MAC 324 further includes a report module 332 that monitors the status (e.g., the lengths, and thus the amount of queued traffic) of the queues 326, 328, and 330 and prepares reports for transmission to the master device 302 that report the status of the queues 326, 328, and 330. The slave device 322 transmits these reports to the master device 302 during upstream time slots 208 (
The TDMA MAC 306 of the master device 302 includes a low-priority queue 308 to store low-priority downstream traffic (e.g., low-priority PBs) for subsequent transmission, a high-priority queue 310 to store high-priority downstream traffic (e.g., high-priority PBs) for subsequent transmission, and a retransmission (re-TX) queue 312 to store downstream traffic (e.g., PBs) that was previously transmitted to the slave device 322 but was not correctly received (e.g., as indicated by a SACK message from the slave device 322) and thus is to be retransmitted. In some embodiments, the TDMA MAC 306 includes a separate low-priority queue 308, high-priority queue 310, and retransmission queue 312 for each slave device 322 to which the master device 302 is coupled. The TDMA MAC 306 also includes a report module 314 to prepare acknowledgments (e.g., SACK messages) that identify PBs that are correctly and/or incorrectly received from the slave device 322.
In some embodiments, the TDMA MACs 306 and 324 convert variable-length frames (e.g., Ethernet frames) into fixed-length data blocks (e.g., PBs) that are stored in the queues (e.g., in respective low-priority queues 308 and 326 and respective high-priority queues 310 and 328) prior to transmission. The variable-length frames may include low-priority frames and high-priority frames, and data blocks created from a frame have the same priority as the frame. The fixed-length PBs stored in the queues are then combined into data units (e.g., MPDUs) for transmission. A respective data unit may include one or more data blocks, and the number of data blocks may vary from data unit to data unit. In the receive direction, data blocks are extracted from received data units and used to create variable-length frames (e.g., Ethernet frames).
In
The MPDU 400-1 is transmitted and a selective acknowledgment is received in response. The selective acknowledgment identifies PBs #0, 2, 3, and 6 (i.e., PBs 404-1, -4, -0, and 6) as having been correctly received and PBs #1, 4, and 5 (i.e., PBs 404-2, -3, and -5) as having been received incorrectly. In response, the PBs #1, 4, and 5 (i.e., PBs 404-2, -3, and -5) are stored in the retransmission queue 502, as shown in
Additional PBs 404 arrive in the queues 504 and 506. (In some embodiments, additional PBs 404 may arrive in the queues 504 and/or 506 prior to storing the PBs #1, 4, and 5 in the retransmission queue 502, for example if the acknowledgment is a delayed acknowledgment.) In the example of
In some embodiments, the ability of the master device 302 (
In some embodiments, an acknowledgment is transmitted upon receipt of an MPDU 400 (
The first device 602 transmits three successive MPDUs 400 in bursts 606, 608, and 610 during a first TDMA time slot 612. If the first device 602 is the master device 302 (
The second device 604 determines which PBs 404 (
The first device 602 subsequently transmits three successive MPDUs 400 in bursts 618, 620, and 622 during a third TDMA time slot 624, which comes after the second TDMA time slot 616. The MPDU 400 transmitted in the burst 618 includes PBs 404 being retransmitted in response to the select acknowledgment received in the burst 614, as well as new PBs 404. If the first device 602 is the master device 302 (
The second device 604 determines which PBs 404 in the bursts 618, 620, and 622 were received correctly and which were received incorrectly, based for example on checksums for the PBs 404. The second device 604 transmits an MPDU in a burst 626 to the first device 602 during a fourth TDMA time slot 628, which comes after the third TDMA time slot 624. The burst 626 includes a selective acknowledgment (SACK) indicating which PBs in the bursts 618, 620, and 622 were received correctly and which were received incorrectly. If the second device 604 is the slave device 322 (
The acknowledgments in the bursts 614 and 626 thus may be delayed selective acknowledgments. Alternatively, the acknowledgments in the bursts 614 and 626 may be delayed negative acknowledgments. In some embodiments, a negative acknowledgment specifies one of three possibilities, by reporting (i) that all PBs in a burst or group of bursts were received correctly, (ii) the identity of the first and only PB that was not received correctly, or (iii) the identity of the first PB that was not received correctly, with the assumption that all subsequent PBs also were not received correctly. In the second and third cases, the device 602 stores the PB or PBs reported as not being received correctly (including all of the subsequent PBs in the third case) in a retransmission queue 502 (
The acknowledgment mechanism of
By implementing retransmission, the acknowledgment mechanism of
In the method 700, variable-length high-priority frames (e.g., Ethernet frames) are divided (702) into high-priority data blocks (e.g., fixed-length PBs 404,
The high-priority data blocks are stored (704) in a high-priority queue (e.g., queue 310 or 328,
A first data unit is generated (706) that includes one or more of the high-priority data blocks and one or more of the low-priority data blocks. In some embodiments, the first data unit is an MPDU 400 (
In some embodiments, one or more previously transmitted data blocks are stored in a retransmission queue (e.g., queue 312 or 330,
For example, the one or more previously transmitted data blocks are indexed with index numbers corresponding to their positions in the earlier data unit, and the one or more high-priority data blocks and the one or more low-priority data blocks are indexed with index numbers corresponding to their positions in the first sequence. The index numbers of the one or more previously transmitted data blocks precede the index numbers of the one or more high-priority data blocks, and the index numbers of the one or more high-priority data blocks precede the index numbers of the one or more low-priority data blocks.
The first data unit is transmitted (712). For example, the transmitter 318 or 336 (
An acknowledgment is received (714) identifying a portion of the data blocks of the first data unit that was not correctly received. For example, a selective acknowledgment is received in burst 614 (
In response to the acknowledgment, the portion of the data blocks of the first data unit that was not correctly received is stored (716) in a retransmission queue (e.g., queue 312 or 330,
A second data unit is generated (718,
In some embodiments, the second data unit further includes (724) one or more additional low-priority data blocks (e.g., PBs 404-8 and 404-9,
The second data unit is transmitted (726). For example, the transmitter 318 or 336 (
While the method 700 includes a number of operations that appear to occur in a specific order, it should be apparent that the method 700 can include more or fewer operations, which can be executed serially or in parallel. An order of two or more operations may be changed and two or more operations may be combined into a single operation. For example, all of the operations of the method 700 may be performed in an ongoing basis during successive beacon periods 202 (
By allowing data blocks of multiple priorities to be combined into a single data unit, the method 700 increases the potential number of data blocks that can be included in a data unit and thus improves bandwidth utilization and network throughput. The method 700 also reduces latency for low-priority data, by allowing low-priority data blocks to be transmitted in the same data unit, and thus in the same time slot, as high-priority data blocks. By implementing the method 700 in a system using TDMA in accordance with some embodiments, the potentially increased size of data units does not allow a particular device to consume excess bandwidth, because the device only transmits during assigned time slots. The indexing and sequencing of data blocks in the method 700 ensures that high-priority data is transmitted before low-priority data, thereby honoring quality of service (QoS). This indexing and sequencing also prevents out-of-order transmission of PBs, which makes the method 700 transparent to the receiving device. Furthermore, the method 700 is compatible with both immediate and delayed acknowledgment mechanisms.
In some embodiments, the TDMA MAC 306 and/or scheduler 304 (
In some embodiments, the TDMA MAC 324 (
While the memories 804 (
In the foregoing specification, the present embodiments have been described with reference to specific exemplary embodiments thereof. It will, however, be evident that various modifications and changes may be made thereto without departing from the broader spirit and scope of the disclosure as set forth in the appended claims. The specification and drawings are, accordingly, to be regarded in an illustrative sense rather than a restrictive sense.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/CN2012/083665 | 10/29/2012 | WO | 00 |