Out-of-order packet scheduler
By adjusting the position and order of transmission identifiers (TIDs) using an out-of-order scheduler, packet transmission in wireless networks is optimized, solving the problems of wireless media waste and inefficiency, and improving network throughput and speed.
Patent Information
- Application Number
- CN202511312686.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2020-10-01
- Filing Date
- 2020-12-08
- Publication Date
- 2026-01-13
AI Technical Summary
In existing wireless communications, packet selection methods lead to waste of wireless media and inefficiency, affecting network throughput.
An out-of-order scheduler is employed. By identifying the Transmission Identifier (TID) associated with the wireless network node, the scheduler considers the increase in total throughput when selecting transmissions, adjusts the position and order of TIDs in the transmission queue, and prioritizes the transmission of efficient TIDs.
It improved the overall throughput of the wireless network, reduced backlog and transmission latency, and enhanced network speed and functionality.
Smart Images

Figure CN121334754A_ABST
Abstract
Description
[0001] This application is a divisional application of the application filed on December 8, 2020, with application number 202011442915.X and invention title "Out-of-order packet scheduler". Technical Field
[0002] The specific implementation discussed in this article involves an out-of-order packet scheduler. Background Technology
[0003] Unless otherwise specified herein, the material described herein is not prior art to the claims of this application and is not acknowledged as prior art by virtue of its inclusion in this section.
[0004] Home, office, stadium, and outdoor networks, also known as wireless local area networks (WLANs), are established using devices called wireless access points (WAPs). WAPs may include routers. A WAP wirelessly couples all devices on the local network (e.g., wireless stations such as computers, printers, televisions, digital video (DVD) players, security cameras, and smoke detectors) to each other and to the cable or subscriber line that delivers the internet, video, and television to the local network. Most WAPs implement the IEEE 802.11 standard, a competition-based standard for handling communication between multiple competing devices sharing a wireless communication medium on a chosen communication channel among several communication channels. The frequency range of each communication channel is specified in the corresponding protocol of the implemented IEEE 802.11 protocol, such as "a", "b", "g", "n", "ac", "ad", "ax". Communication follows a hub-and-spoke model, where the WAP is at the hub and the spokes correspond to the wireless links utilizing the WLAN to each "client" device or station (STA).
[0005] However, when selecting packets for transmission from WAP, some selection methods lead to waste of wireless media and corresponding inefficiency.
[0006] The subject matter protected by the claims herein is not limited to addressing any shortcomings or specific implementations that operate only in environments such as those described above. Rather, this background art is provided merely to illustrate an exemplary technical field in which some of the specific implementations described herein can be practiced. Summary of the Invention
[0007] This summary is provided to present a simplified version of the selected concepts further described in the detailed embodiments described below. This summary is not intended to identify key or essential features of the subject matter protected by the claims, nor is it intended to help determine the scope of the subject matter protected by the claims.
[0008] Some exemplary embodiments described herein relate in general to out-of-order schedulers for packet transmission. Some embodiments provide methods, systems, and / or apparatuses that facilitate scheduling such packets for transmission.
[0009] An exemplary method may include identifying a first transmission identifier (TID) associated with a first node in the wireless network as ready for transmission, and adding the first TID to a ready-to-transmit queue at a first time point. The method may also include identifying a second TID associated with a second node in the wireless network as ready for transmission, and adding the second TID to the ready-to-transmit queue at a second time point later than the first time point. The method may further include selecting a second TID from the ready-to-transmit queue before selecting the first TID, based on the anticipated increase in total packet throughput within the wireless network when communicating with the second node prior to communicating with the first node.
[0010] This disclosure can be implemented in hardware, firmware, or software.
[0011] It also requires the protection of related equipment and circuits.
[0012] Additional features and advantages of this disclosure will be set forth in the description which follows, and will be apparent in part from the disclosure, or may be learned by practice of the disclosure. The features and advantages of this disclosure may be realized and obtained by means and combinations of tools and techniques particularly pointed out in the appended claims. These and other features of the disclosure will become more apparent from the following description and the appended claims, or may be learned by practice of the disclosure as described below. Attached Figure Description
[0013] To further illustrate the above and other advantages and features of this disclosure, a more specific description of the disclosure will be presented with reference to specific embodiments of the disclosure shown in the accompanying drawings. It should be understood that these drawings depict only typical specific embodiments of the disclosure and should not be considered as limiting the scope of the disclosure. The disclosure will be described and explained with additional features and details using the drawings, in which:
[0014] Figure 1 An exemplary environment in which an out-of-order packet scheduler can be implemented is shown;
[0015] Figure 2 An exemplary schematic diagram of a system implementing an out-of-order scheduler is shown;
[0016] Figure 3A and Figure 3B Examples of adding a TID to the ready-to-transfer queue or selecting a TID from the ready-to-transfer queue are shown;
[0017] Figure 4A and Figure 4BAn exemplary diagram showing the amount of packets transmitted according to various scheduling techniques is shown;
[0018] Figure 5 A flowchart illustrating an exemplary method for out-of-order scheduling of TIDs is shown;
[0019] Figure 6 A flowchart illustrates an exemplary method for out-of-order scheduling of TIDs by placing new TIDs at different positions within the ready-to-transmit queue;
[0020] Figure 7 A flowchart illustrates an exemplary method for out-of-order scheduling of TIDs by selecting TIDs for transmission from the ready-to-transmit queue; and
[0021] Figure 8 A schematic diagram of a machine in an exemplary form of a computing device according to at least one specific embodiment described in this disclosure is shown. Detailed Implementation
[0022] The specific implementations described herein may typically include methods for performing out-of-order scheduling of TIDs used for transmission. For example, a scheduler may be configured to select a given TID for transmission, rather than performing typical round-robin scheduling of TIDs, even before indicating that other TIDs are ready to be transmitted before the given TID. In some implementations, when a given TID is identified as ready for transmission, it may be placed in a ready-to-transmit queue based on a metric (e.g., effective data bit rate) that identifies the associated transmission of the given TID on the overall throughput of the wireless network. If the metric of a given TID indicates that the given TID will contribute to more efficient overall throughput, the given TID may be placed closer to the head of the ready-to-transmit queue; and if the metric of a given TID indicates that the given TID will reduce the overall throughput of the wireless network, the given TID may be placed further away from the head of the ready-to-transmit queue. As another example of out-of-order scheduling of TIDs, when selecting a TID for transmission from the ready-to-transmit queue, the scheduler may delve deeper into the queue to consider metrics of other TIDs besides the TID at the head of the queue, rather than selecting the TID at the head of the queue. In these and other implementations, the scheduler may select a TID that has a metric indicating the most efficient throughput of the wireless network.
[0023] By using such out-of-order scheduling of TIDs, network throughput can be improved according to some embodiments of this disclosure. Such improvements can reduce total network traffic, reduce backlog and transmission latency, and increase the network speed observed by consumers using the wireless network. Furthermore, the improvements of this disclosure can benefit network functionality in congested networks where multiple devices are waiting to receive data within the wireless network.
[0024] Various aspects of exemplary embodiments of the present disclosure will now be described with reference to the accompanying drawings. It should be understood that the drawings are illustrations and diagrams of such exemplary embodiments and are neither limiting of the present disclosure nor necessarily drawn to scale.
[0025] Figure 1 An exemplary environment 100 in which out-of-order scheduling of TIDs can be implemented according to one or more embodiments of the present disclosure is shown. Environment 100 shows an access point (AP) 110 and three nodes 120, 130 and 140, wherein AP 110 and nodes 120, 130 and 140 are all capable of communicating wirelessly with each other.
[0026] In operation, AP 110 can individually transmit various packets to each of nodes 120, 130, and 140. For example, node 120 may be browsing the internet while watching video, node 130 may be participating in a VoIP call, and node 140 may be updating software. Alternatively, node 120 may be a refrigerator, node 130 a washing machine, and node 140 a thermostat; all nodes may be wirelessly connected to the internet. Each of nodes 120, 130, and 140 may wait for AP 110 to transmit the next batch of packets. However, since AP 110 is serving multiple nodes with various types of packets, some decision-making processes can be performed at AP 110 to determine which node will receive the packets next.
[0027] In some implementations, the selection of a transmission is based on a Transmission Identifier (TID). A TID for a given node can represent a certain class of packets for that node. For example, a TID can be associated with a class of packets that have a specific transmission priority. For instance, one TID could be a class associated with background packets, another with best-effort service (e.g., worthy of high priority), another with video packets, and yet another with voice packets. While four examples are given, any number of TIDs can exist, such as eight, sixteen, etc. For convenience, and to clearly represent the various TIDs (e.g., TID 1, TID 2, etc.), a given TID can be referred to by a numeric identifier.
[0028] To improve the performance of environment 100, various metrics can be observed within environment 100 to facilitate efficient packet transmission within environment 100. In some implementations, metrics may be based on the physical layer (PHY) rate of a given node, the number of transmission bytes aggregated for transmission to the given node, and the protocol overhead used when transmitting to the given node. These factors together indicate a certain number of packets that can be provided for a specific time slot or effective data bit rate of the available transmission medium. For a node with a lower PHY rate or a node that has not yet accumulated many packets, its total throughput will be lower than that of a node with a higher PHY rate or a node that has accumulated more packets. Protocol overhead is typically a fixed amount for each transmission time slot (therefore, repeating the same overhead for fewer packets at a lower PHY rate results in a reduction in total throughput, as does repeating the same overhead for more packets at a higher PHY rate). Such combinations can produce an effective data bit rate. In some implementations, the PHY rate can vary at different points in time, such that one or more metrics for a given TID can differ at different points in time, at least due to the variation in the PHY rate. In some implementations, any other metrics may be used or considered. As the complexity of metrics increases, the actual differences in network performance can be observed more granularly and / or clearly, but at the cost of increased processing and computational power and time latency in determining the metrics. A balance can be struck between a complete and accurate assessment of the impact on network throughput and processing power and latency to achieve this complete and accurate assessment. Metrics can be determined for each transmission request based on each TID (e.g., a metric can be determined for TID 1 associated with node 1, etc.). In these and other implementations, metrics can represent predictions, forecasts, estimates, extrapolations, forecasts, etc., of the total throughput within the wireless network.
[0029] When a packet for the first node with a first TID (such as the TID of a background packet) is ready for transmission, the first TID for the first node can be added to the ready-to-transmit queue. For example, refer to Figure 1Packets in the first TID are ready to be transmitted to node 120, and packets in the first TID are ready to be transmitted to node 140. The first TID for each of nodes 120 and 140 can be added to a preparation queue associated with the first TID. In these and other embodiments, each set of TIDs can be associated with its own preparation queue. For example, a set of first TIDs (e.g., best-effort service) associated with each of nodes 120, 130, and 140 can be associated with a first preparation queue, and a set of second TIDs (e.g., video) associated with each of nodes 120, 130, and 140 can be associated with a second preparation queue. When selecting TIDs for transmission, TIDs can be selected in an order that is based on efficiency, rather than based on the order in which they are prepared for transmission or an order that is exactly equal. See also... Figures 2 to 7 A more detailed description of various examples of this type of out-of-order scheduling.
[0030] AP 110 may include gateways, repeaters, mesh nodes, and / or other suitable access points for wireless sites or devices (such as node 120, node 130, and node 140). AP 110 may be connected to the Internet and / or core network via bridges, backhaul links, base stations, and / or other suitable devices or connections. Figure 8 An exemplary implementation of AP 110 as a computing device is shown in the figure.
[0031] Each of nodes 120, 130, and 140 may typically include any device capable of wirelessly connecting to AP 110 according to any of the 802.11 standards or other suitable wireless standards. Each of nodes 120, 130, and 140 may include a desktop computer, laptop computer, tablet computer, mobile phone, smartphone, personal digital assistant (PDA), smart TV, any other smart appliance, or any other suitable wireless station. For example, if node 120 is a refrigerator with one PHY rate and node 130 is a thermostat with a higher PHY rate, then node 130 corresponding to the thermostat may be selected for out-of-order transmission before node 120 corresponding to the refrigerator based on the higher throughput. Figure 8 An exemplary implementation of nodes 120, 130, and 140 as computing devices is shown in the figure.
[0032] Environment 100 may be modified, added to, or omitted without departing from the scope of this disclosure. For example, specifying different elements in the manner described is intended to aid in the explanation of the concepts described herein and is not intended to be limiting. Furthermore, environment 100 may include any number of other elements, or may be implemented in other systems or environments besides those described. For example, it may include any number of APs 110 and / or nodes 120, 130, and / or 140.
[0033] In an exemplary implementation, a method for managing a transmission queue may include: in response to receiving a transmission request added to the queue, determining a first set of one or more metrics associated with an estimated impact of the transmission request on the total throughput in the wireless network. The method may further include, before adding the transmission request to the queue, comparing the first set of one or more metrics associated with the estimated impact of the transmission request with a second set of one or more metrics associated with the estimated impact of another transmission request on the total throughput in the wireless network, the other transmission request already in the queue. The method may further include, based on the comparison between the transmission request and the other transmission request, predicting an increase in the total throughput of packets within the wireless network, and positioning the transmission request in the prepared transmission queue before the other transmission request.
[0034] In an exemplary implementation, another transmission request is identified as the next transmission request in the queue based on a reordering window, where the reordering window represents the time span during which the transmission request can be positioned in the ready transmission queue.
[0035] Figure 2 An exemplary schematic diagram of a system 200 implementing an out-of-order scheduler (such as scheduler 225a and scheduler 225b) according to one or more embodiments of the present disclosure is shown.
[0036] like Figure 2As shown, system 200 may include a switch 205 configured to transmit packets to one or more nodes. When incoming packets 210 arrive at switch 205, the incoming packets 210 are identified as being routed to node 1, node 2, etc., and the TID to which these packets belong is identified. For example, dashed box 240a indicates the processing and classification of incoming packets destined for node 1. Incoming packets 210a are associated with and processed for node 1's TID 1 (hereinafter referred to as T1N1) and placed in the associated queue 215a. When a certain number of packets accumulate in node 1's TID 1 queue 215a or a certain amount of time has elapsed, a specific TID (e.g., T1N1) may be identified as ready for transmission. For example, a ready-to-transmit message 220a may be sent to the scheduler 225a of TID 1 regarding T1N1. In addition or alternatively, settings or flags for T1N1 to be ready for transmission may be set, which may be checked by the scheduler 225a of TID 1. In some implementations, even after T1N1 is indicated to be ready for transmission, node 1 TID 1 queue 215a may continue to aggregate packets. In some implementations, the aggregation of additional packets may trigger an additional ready-to-transmit message 220a. In some implementations, system 200 may be configured to transmit to multiple nodes in a single time, and ready-to-transmit message 220a may wait and / or be based on both T1N1 and T1N2 being ready for transmission (e.g., both have accumulated enough packets and / or both have had sufficient elapsed time).
[0037] The scheduler 225a for TID 1 is operable to place the TID in and / or select a TID from a set of TID 1s associated with each node. For example, the scheduler 225a may operate based on notification that T1N1 is ready for transmission and that TID 1 (hereinafter referred to as T1N2) for node 2 is ready for transmission. The dashed box 240b may instruct the processing and ordering of incoming packets destined for node 2 and may operate in a similar or equivalent manner to the dashed box 240a. The scheduler 225a may receive notification that T1N1 and / or T1N2 are ready for transmission via a ready-to-transmit message, checked flags or settings, etc.
[0038] In some implementations, scheduler 225a may consider metrics of one or more TIDs associated with the ready-to-transmit queue 230a when determining the order in which to schedule transmissions. For example, scheduler 225a may observe the metrics of various TIDs already in the ready-to-transmit queue 230a and use this information to select where to position a newly identified ready-to-transmit TID within the ready-to-transmit queue 230a. Examples of such methods are... Figure 3A and Figure 6The following describes the process in more detail. In these and other implementations, the scheduler 225a can then select the TID at the head of the preparation transmission queue 230a, since the TID has already been located within the preparation transmission queue 230a in an efficient manner.
[0039] Another example of how scheduler 225a can consider metrics of one or more TIDs associated with the ready-to-transmit queue 230a when determining the order of scheduled transmissions may include selecting which TID to transmit when the transmission time has arrived. For example, when notified that a TID is ready to be transmitted, scheduler 225a may place the TID at the end of the ready-to-transmit queue 230a, such that the TIDs are ordered chronologically within the ready-to-transmit queue. When the wireless medium is available (e.g., the wireless medium is checked using some form of carrier sensing, contention for the wireless medium has been won, a TX_DONE event is observed, etc.), scheduler 225a may determine the metrics of the TIDs within the ready-to-transmit queue 230a. Based on these metrics, scheduler 225a may select the TID with the best metric or a metric indicating the expected highest throughput to improve the overall efficiency of the wireless network. Examples of such methods are... Figure 3B and Figure 7 A more detailed description is provided below.
[0040] Although the scheduler 225a associated with TID 1 is shown receiving input from nodes 1 and 2, it should be understood that switch 205 can serve any number of nodes, each of which may or may not include the associated packets aggregated and awaiting transmission in TID 1. Therefore, while nodes 1 and 2 are used for illustration, any number of nodes and associated TIDs are conceivable.
[0041] Additionally, while a discussion has been provided regarding the placement and selection of TID 1 by scheduler 225a in the ready-to-transmit queue 230a, the corresponding scheduler 225b and ready-to-transmit queue 230b can also operate on TID 2, including the corresponding processing of incoming packets 210b that will be aggregated in the node 1 TID 2 queue 215b and ready-to-transmit messages 220b sent to scheduler 225b for TID 2. As described above, scheduler 225b can operate on TID 2 from any number of nodes. In some implementations, multiple schedulers can operate in parallel, each with a corresponding category of TIDs, and each scheduler serves multiple nodes.
[0042] Furthermore, these teachings are applicable to any type of wireless communication system. For example, while nodes and switches are described for one scenario in wireless communication, the teachings on out-of-order scheduling also apply to other wireless communication systems, such as... Bluetooth Low Energy Thread, mmWave, etc.
[0043] System 200 may be modified, added to, or omitted without departing from the scope of this disclosure. For example, specifying different elements in the manner described is intended to aid in the explanation of the concepts described herein and not to be limiting. Furthermore, system 200 may include any number of other elements, or may be implemented in other systems or environments besides those described. For example, it may include any number of schedulers, nodes, TIDs, and / or preparation transmission queues with corresponding processes.
[0044] Figure 3A and Figure 3B Examples of adding TID 310 to or selecting TID 310 from the preparation transmission queue 300 according to one or more embodiments of this disclosure are shown respectively. Figure 3A In this process, TID 310c, which is ready for transmission, can be added to the ready-to-transmit queue 300a in an out-of-order manner. Figure 3B In this process, TID 310g can be selected from the ready-to-transmit queue 300b in an out-of-order manner. For example, in Figure 3A and Figure 3B In the two examples, the order in which TID 310 is selected is not necessarily the order in which they are identified as ready for transmission.
[0045] like Figure 3A As shown, TID 310c can be placed in the preparation transmission queue 300a based on a comparison of the metrics associated with the transmission of TID 310c with the metrics of other TIDs 310 (such as TID 310a, TID 310b, and TID 310d) already in the preparation transmission queue 300a. For example, for a given TID 310 in the preparation transmission queue 300a, the PHY rate of a given node, the number of transmission bytes aggregated for transmission to the given node, and / or the protocol overhead used when transmitting to the given node can be combined to determine the total data throughput associated with the given TID 310 (if it has been selected for transmission). These metrics can be generated for each TID in the preparation transmission queue (e.g., for TID 310a, TID 310b, and TID 310d) and for newly identified TIDs ready for transmission (e.g., TID 310c). Based on the comparison metric of TID 310, the slot position of the new TID 310c within the preparation transmission queue 300a can be determined, thereby improving the overall efficiency of the network. For example, if the metric predicts that TID 310a and TID 310b will provide higher throughput than TID 310c, but TID 310c will provide higher throughput than TID 310d, then TID 310c can be placed between TID 310b and TID 310d in the preparation transmission queue 300a.
[0046] In these and other implementations, when the wireless medium is ready to transmit, TID 310 at the head of the ready-to-transmit queue 300a can be selected because the order of TID 310 in the ready-to-transmit queue 300a has been selected based on the metric of TID 310.
[0047] In some implementations, a reordering window 320a can be used when determining where to place a new TID 310c within the ready-to-transmit queue 300a. For example, whenever a TID 310 is identified as ready to transmit, it can be assigned a timestamp indicating the time it was ready to transmit. The reordering window 320a can serve as a constraint on how far the ready-to-transmit queue 300a can be rearranged. For example, when the scheduler determines where to place a new TID 310c within the ready-to-transmit queue 300a, the timestamp of TID 310c can be compared with the timestamps of other TIDs 310 within the ready-to-transmit queue 300a. If the timestamp of the new TID 310c is within the reordering window 320a of another TID 310 within the preparation transmission queue 300a, then that TID 310 is eligible for consideration regarding whether the new TID 310c should be rearranged relative to that TID 310; if the distance between the timestamp of the new TID 310c and the given TID 310 is greater than the reordering window 320a, then the given TID 310 can remain in its position within the preparation transmission queue 300a, and the new TID 310c may not be compared with the given TID 310. In some embodiments, the reordering window 320a may serve as a + / - time operation around the timestamp of the new TID 310c.
[0048] In some implementations, the reordering window 320a can be variable. For example, the size of the reordering window 320a can be a setting that can be configured by a network administrator or otherwise selected. In some implementations, the size of the reordering window 320a can be automatically adjusted. For example, if the metrics of TID 310 used to determine their position in the ready-to-transmit queue 300a are close to each other, the reordering window 320a can be smaller, and if the metrics of TID 310 are significantly different, the reordering window 320a can be larger. For example, if the metrics predict that TID 310d provides a throughput increase, and TID 310c increases throughput by 2% and TID 310b increases throughput by 3%, then TID 310b and TID 310c can be positioned before TID 310d, even if TID 310b and TID 310c represent only a small gain in total throughput. In such examples, by reducing the size of the reordering window, TID 310c can be positioned after TID 310d rather than before it due to a small gain in the total throughput, even though TID 310c may represent at least some gain. In some embodiments, the size of the reordering window 320a may be proportional to the relative difference between the metrics of TID 310. The size of the reordering window 320a may also increase as the difference between the metrics increases. In some embodiments, the size of the reordering window 320a may be adjusted after determining the metrics of TID 310 that fall within the initial window, and the TIDs 310 within the new size of the reordering window 320a are those TIDs compared with the new TID 310c when determining the slot position of the new TID 310c in the preparation transmission queue 300a. In some embodiments, the adjustment may be based on the PHY rate.
[0049] like Figure 3B As shown, when selecting TID 310 from the ready-to-transmit queue 300b, the selection of TID 310 for transmission can be based on one or more metrics. In these and other embodiments, when a new TID 310 is identified as ready for transmission, the new TID 310 can be placed at the end of the ready-to-transmit queue 300b (e.g., added chronologically). When the wireless medium is available for transmission (e.g., a TX_DONE event is observed), the scheduler can select TID 310 from within the ready-to-transmit queue 300b. Unlike... Figure 3A The scheduler can select any TID 310 (or a subset of TID 310 within the preparation transmission queue 300b) at the head of the preparation transmission queue 300a.
[0050] When determining which TID 310 to select, the scheduler may determine one or more metrics for TID 310 within the preparation transmission queue 300b. For example, for a given TID in the preparation transmission queue 300b, the PHY rate of the given node, the number of bytes already aggregated for transmission to the given node, and / or the protocol overhead used in transmission to the given node may be combined to determine the total data throughput associated with the given TID 310 (if it has been selected for transmission). Based on these metrics (or any other metrics), the scheduler may select the TID 310 with the highest or most favorable metric for transmission. For example, if TID 310e is expected to have the highest throughput per unit time, and TID 310f has a 10% higher throughput, TID 310g has a 12% higher throughput, and TID 310h has an 8% higher throughput, then the scheduler may select TID 310g for transmission based on TID 310g with the most favorable metric.
[0051] In some implementations, a reordering window 320b can be used when deciding which TID 310 to select for transmission. For example, the scheduler can use the reordering window 320b to limit how far into the ready-to-transmit queue 300b the scheduler can consider a TID 310. If a given TID is within the reordering window 320b, that given TID can be considered for possible transmission. If a TID is outside the reordering window 320b, the metric for the TID can be uncertain and it can be disregarded for transmission. In some implementations, the reordering window 320b can be a specific time length looking backward from the head of the ready-to-transmit queue 300b. For example, each TID 310 can receive a timestamp when placed within the ready-to-transmit queue 300b. The scheduler can disregard timestamps exceeding the timestamp of TID 310e plus the TID in the reordering window 320b. In some implementations, the reordering window can be in milliseconds (e.g., 10ms, 20ms, 30ms, 50ms, etc.).
[0052] In some implementations, the reordering window 320b can be variable. For example, the size of the reordering window 320b can be a setting that can be configured by a network administrator or otherwise selected. In some implementations, the size of the reordering window 320b can be automatically adjusted. For example, the reordering window 320b can be smaller if the metrics of the TIDs 310s considered for transmission are close to each other, and larger if the metrics of the TIDs 310s are significantly different. For example, if the metrics predict that TID 310e provides a throughput increase, and TID 310f increases throughput by 2% and TID 310g increases throughput by 3%, then TID 310g can be selected for transmission before the other two TIDs, even if TID 310g only represents a small gain in total throughput. By reducing the size of the reordering window 320b in such examples, TID 310g may not be selected for transmission before TID 310e and TID 310f due to a small gain in overall throughput, even though TID 310g represents at least some gain, because the reduction in the size of the reordering window 320b moves TID 310g outside the reordering window 320b. In some embodiments, the size of the reordering window 320b may be proportional to the relative difference between the metrics of TID 310. The size of the reordering window 320b may also increase as the difference between the metrics increases. In some embodiments, the size of the reordering window 320b may be adjusted after determining the metric of TID 310 that falls within the initial window, and TID 310 within the new size of the reordering window 320b is considered eligible for transmission. In some embodiments, the adjustment may be based on the PHY rate.
[0053] Can be Figure 3A and Figure 3B Modifications, additions, or omissions may be made without departing from the scope of this disclosure. For example, specifying different elements in the manner described is intended to aid in the explanation of the concepts described herein and not to impose limitations. Furthermore, the use of the preparation transmission queue 300 may include any number of other elements, or may be implemented in other systems or environments besides those described. For example, any number of TIDs from any number of nodes may be included in the preparation transmission queue 300.
[0054] Figure 4A and Figure 4B Exemplary figures 400a and 400b illustrate the amount of packets transmitted according to various scheduling techniques in one or more embodiments of this disclosure. For convenience, figures 400a and 400b illustrate scheduling associated with one TID and two nodes (i.e., node 1 TID 1 (N1T1) 410 and node 2 TID 1 (N2T1) 420). Figure 4AThe diagram illustrates a round-robin scheduling method where the scheduler alternates between nodes with a TID ready to transmit. Figure 4B The use of an out-of-order scheduler is illustrated, allowing nodes to be selected in a sequence different from either a strictly alternating order or a strictly sequential order of TID preparation for transmission. Figures 400a and 400b show the aggregated MAC Protocol Data Unit (AMPDU) size along the x-axis for time and along the y-axis.
[0055] like Figure 4A As shown, N1T1 410a has a specific amount of AMPDU transmitted each time N1T1 410a is selected for transmission. When N2T1 420a is selected for transmission, fewer packets are aggregated and therefore fewer packets are transmitted compared to when N1T1 410a is selected for transmission. Due to the different AMPDU sizes, the overall throughput of the wireless network is reduced because inefficient use of the wireless medium occurs when N2T1 420a is selected for transmission.
[0056] like Figure 4B As shown, using an out-of-order scheduler to select the TID for transmission can improve the overall throughput of a wireless network. For example, by selecting N1T1 410b for transmission twice before selecting N2T1 420b for transmission, N2T1 420b can aggregate additional packets while waiting for transmission, resulting in the transmission of more packets when N2T1 420b is selected for transmission, and thus increasing the overall network throughput. Selecting N1T1 410b more than once before selecting N2T1 420b for transmission can be achieved using any method according to this disclosure.
[0057] In some implementations, using an out-of-order scheduler can result in repeated denial of opportunities for a particular TID to communicate within the wireless network. For example, if N1T1 410b is consistently more efficient at transmitting packets, N2T1 420b may never be selected for transmission. To mitigate this risk, specific steps can be taken to avoid starving N2T1 420b, or otherwise prevent situations where N2T1 420b is not provided with sufficient or desired transmission opportunities. In some implementations, a counter can be used to track the frequency at which a particular TID has been transmitted and to grant at least some access to the wireless medium to all TIDs. For example, the counter for a TID can be checked each time a TID is selected. Figure 4BFollowing the example shown, if the threshold is set to 2, N1T1410b can be selected for transmission in the first two time slots, and its counter can be incremented. When the third time slot arrives, N1T1410b can be selected again. However, because the counter is at the threshold, the scheduler can check the counters of other TIDs in the ready-to-transmit queue. If any counters are at or below the bottom threshold (e.g., still zero), the scheduler can select those TIDs for transmission before selecting N1T1410b for transmission again. Because N2T1420b is still zero (e.g., it has not yet been selected for transmission, and is therefore at or below the bottom threshold), N2T1420b can be selected for transmission and its counter incremented. In the fourth time slot, N1T1410b can be selected by the scheduler as the most efficient for transmission (or, based on its time slot position in the queue, it can be at the head of the ready-to-transmit queue). Because the counter of N1T1410b is at the threshold, the scheduler can check other TIDs whose counters are still at or below the threshold. Because all other TIDs have counters above the threshold, the scheduler can reset all counters and select the most efficient TID for transmission (e.g., N1T1 410b can be selected for transmission and all counters of all TIDs can be reset to zero).
[0058] Figures 400a / 400b may be modified, added to, or omitted without departing from the scope of this disclosure. For example, specifying different elements in the manner described is intended to help explain the concepts described herein and not to be limiting.
[0059] Figure 5 A flowchart of an exemplary method 500 for out-of-order scheduling of TIDs according to one or more embodiments of this disclosure is shown. Method 500 may be wholly or partially derived from… Figure 1 AP 110, Figure 2 This can be achieved through one or more of the switches 205 or any combination thereof.
[0060] At box 510, the first TID can be identified as ready to transmit. For example, the first TID can belong to a group of TIDs and can be associated with a given node. After accumulating a certain number of packets or after a certain amount of time has elapsed for the first TID, a ready-to-transmit message can be sent for the first TID, a flag can be set, or some indication that the first TID is ready to transmit can be provided in other ways.
[0061] At box 520, the first TID can be added to the ready-to-transmit queue. For example, the first TID can be added to the ready-to-transmit queue in chronological order (e.g., to the end of the queue). Alternatively, the first TID can be positioned in the ready-to-transmit queue in an efficient manner (e.g., based on a relative metric of the first TID compared to other TIDs already in the ready-to-transmit queue).
[0062] At box 530, the second TID can be identified as ready for transmission. For example, the second TID may belong to the same group of TIDs as the first TID and may be associated with a different node. After a certain number of packets have accumulated or after a certain amount of time has elapsed, a ready-to-transmit message can be sent for the second TID. A flag can be set, or an indication that the second TID is ready to transmit can be provided in other ways.
[0063] At box 540, a second TID can be added to the ready-to-transmit queue at a second time point after the first time point. For example, the second TID can be added to the ready-to-transmit queue in chronological order (e.g., to the end of the queue). Alternatively, the second TID can be positioned in the ready-to-transmit queue in an efficient manner (e.g., based on a relative metric of the second TID compared to other TIDs already in the ready-to-transmit queue).
[0064] At block 550, a second TID can be selected from the ready-to-transmit queue for transmission prior to the first TID based on the total throughput in the wireless network. For example, when the network medium is available and ready for transmission, a second TID can be selected such that communication with the node associated with the second TID can be selected based on a metric indicating that the second TID has a higher throughput than the first TID, to transmit before the node associated with the first TID. In some embodiments, the selection of the second TID can be based on placing the second TID earlier than the first TID in the ready-to-transmit queue at block 540, referring to... Figure 3A and Figure 6 Examples are described. In some implementations, the selection of a second TID can be based on the fact that the second TID is not at the front of the preparation transmission queue (e.g., at block 540, it may have already been placed further back in the preparation transmission queue compared to the first TID), and the second TID is selected for transmission, see reference. Figure 3B and Figure 7 An example of it is described.
[0065] At box 560, node starvation can be prevented. For example, the scheduler can take measures to allow all TIDs in the ready-to-transmit queue to be selected at least once before a specific TID is selected more than a threshold number of times. For example, the scheduler can use a counter that increments each time a TID is selected, and if a TID is at the threshold, other TIDs with a counter of zero are selected before selecting another TID at the threshold.
[0066] At box 570, check the activity level of the medium. For example, you can check the size of the backlog at the switch, perform an idle channel assessment, count the number of times the switch delays transmissions, or use any other metric or analysis to check how busy the medium is.
[0067] At box 580, one or more response operations can be performed based on an activity level below a threshold. For example, in the presence of high availability of the wireless medium, certain features of this disclosure used to increase overall throughput can be modified, disabled, or otherwise adjusted. For example, if dead air time exists in the wireless network, it is not necessary to force specific nodes to wait to receive transmissions to increase overall throughput.
[0068] In some implementations, the response operation may include adjusting the size of the reordering window. If idle time exists, it may be advantageous to include some efficiency gains, but it may also be advantageous to impose restrictions on how far the scheduler can operate to correct the typical order of TIDs scheduled for transmission. Alternatively, aggregation timeouts (e.g., the time elapsed before preparation for transmission or the amount of aggregated packets) can be reduced so that TIDs can be identified as ready for faster transmission. Such modifications can allow for faster packet transmission, which can benefit small TCP window streams. Furthermore, the use of multi-frame transmission during Transmission Opportunity (TXOP) can be disabled, or the limitation on the duration of TXOP can be reduced, allowing other devices using the wireless medium to transmit faster, thus reducing upstream traffic latency and potentially increasing throughput for small TCP window streams.
[0069] Figure 6 A flowchart is shown of an exemplary method 600 for out-of-order scheduling of TIDs by placing new TIDs at different positions within a ready-to-transmit queue, according to one or more embodiments of this disclosure. Method 600 may be wholly or partially derived from… Figure 1 AP 110, Figure 2 This can be achieved through one or more of the switches 205 or any combination thereof.
[0070] At box 605, a new TID can be identified as ready for transmission. For example, a certain number of packets may have accumulated for the new TID, or a certain amount of time may have elapsed for packets ready for transmission with the new TID. In these and other embodiments, a new TID can be identified as ready for transmission based on a ready-to-transmit message being sent, a flag or other setting being set, or any other identifier.
[0071] At box 610, it can be determined whether the new TID is already in the ready-to-transmit queue. For example, the new TID may have been previously identified as ready to transmit and may have parameter or metric changes (e.g., the amount of accumulated packets and / or the PHY rate may change) to trigger the TID ready-to-transmit notification again. If the new TID is not yet in the ready-to-transmit queue, method 600 may proceed to box 615. If the new TID is already in the ready-to-transmit queue, method 600 may proceed to box 620.
[0072] At box 615, a timestamp can be added to a new TID. TIDs already in the preparation queue can retain their earlier timestamps, indicating how long the earlier TID has been in the preparation queue. For new TIDs, a timestamp can be added so that it is known when the new TID was added to the preparation queue.
[0073] At box 620, one or more metrics may be determined for transmissions associated with the new TID. For example, the PHY rate of the destination node of the requested transmission associated with the new TID, the number of bytes aggregated for transmission to the destination node of the requested transmission associated with the new TID, and / or the protocol overhead used when transmitting to the node with the new TID may be combined to determine the total data throughput associated with the new TID. In these and other embodiments, one or more metrics may correspond to a prediction, forecast, estimate, extrapolation, projection, etc., of the total throughput within the wireless network associated with performing the transmissions associated with the new TID.
[0074] At box 625, the first TID in the ready-to-transmit queue can be set to the incremental variable i. Box 625 can initialize a comparison of the new TID's metric with the metrics of other TIDs already in the ready-to-transmit queue.
[0075] At box 630, it can be determined whether the metric of the new TID is better than the metric of the i-th TID in the ready-to-transmit queue. If the metric associated with the new TID is better, method 600 can proceed to box 635. If the metric associated with the new TID is not better, method 600 can proceed to box 645. For example, if the combination of the PHY rate of the node associated with the new TID, the number of bytes aggregated for transmission to the node associated with the new TID, and / or the protocol overhead used when transmitting to the node associated with the new TID indicates a higher total throughput in the wireless network compared to the same metric for other TIDs in the ready-to-transmit queue, then method 600 can proceed to box 635.
[0076] At box 635, it can be determined whether the timestamp of the i-th TID is within the reordering window. As described above, the reordering window can be based on the timestamp of the new TID and can represent the time span from when the new TID is ready for transmission. For example, if the timestamp of the i-th TID is outside the reordering window, the scheduler can disregard the TID when determining where to place the new TID in the ready-to-transmit queue. If the timestamp of the i-th TID is within the reordering window (e.g., the new TID and the i-th TID are sufficiently close in time), method 600 can proceed to box 640. If the timestamp of the i-th TID is outside the reordering window (e.g., the new TID and the i-th TID are too far apart in time), method 600 can proceed to box 645.
[0077] In some implementations, boxes 630 and 635 can be swapped, allowing timestamps to be compared before comparing TID metrics.
[0078] At box 640, the new TID can be placed before the i-th TID in the ready-to-transmit queue based on the new TID's metric being superior to the i-th TID's metric and based on the i-th TID's timestamp being within the reordering window. After box 640, when the wireless network medium is available for transmission, the TID at the head of the ready-to-transmit queue can be selected for transmission to the node associated with that TID at the head of the ready-to-transmit queue. This operation improves the utilization of the wireless network medium because the ordering within the ready-to-transmit queue can be configured in a way that improves the overall throughput of the wireless network.
[0079] At box 645, if the metric of the new TID is inferior to that of the i-th TID, or if the timestamp of the i-th TID falls outside the reordering window, it can be determined whether there is an additional TID in the ready-to-transmit queue that has not been compared with one or more metrics of the new TID. If an additional TID exists, method 600 can proceed to box 650. If no additional TID exists, method 600 can proceed to box 655.
[0080] At box 650, counter i can be incremented by 1, allowing the next TID in the ready-to-transmit queue to be used at boxes 630 and 635 to compare the metric and timestamp of the next TID with the new TID. Operations at 630, 635, 640, 645, and / or 650 can be repeated until all TIDs in the ready-to-transmit queue have been considered.
[0081] At box 655, a new TID can be placed at the end of the ready-to-transfer queue, since no additional TID exists in the ready-to-transfer queue.
[0082] Figure 7 A flowchart is shown of an exemplary method 700 for out-of-order scheduling of TIDs by selecting a TID for transmission from within a reordering window, according to one or more embodiments of this disclosure. Method 700 may be wholly or partially comprised of AP110, Figure 1 and Figure 2 This can be achieved through one or more of the respective switches 205, or any combination thereof.
[0083] At box 710, one or more metrics for a TID within the reordering window can be determined. For example, the PHY rate of the node for each TID, the number of bytes transferred to the node for the TID that has been aggregated, and / or the protocol overhead used when transferring to the node for the TID can be combined to determine the total data throughput associated with the corresponding TID.
[0084] At box 720, the size of the reordering window can be adjusted based on the differences between the metrics of a TID. For example, if the metrics show similar small changes, the reordering window can be reduced. Conversely, if there are large differences between the metrics, the size of the reordering window can be increased to allow additional TIDs to be considered. If the size of the reordering window is increased, one or more corresponding metrics for any new TID currently falling within the reordering window can also be determined. In some embodiments, the adjustment at box 720 can be a relative change to the previous size of the reordering window. For example, if the changes in the metrics at box 710 are smaller than previously checked changes between metrics, the size of the reordering window can be reduced by a set amount (e.g., 10%) or by a corresponding amount based on the relative change in the metric change (e.g., the change decreases by 7%, therefore the size of the reordering window is adjusted down by 7%).
[0085] In some implementations, the initial reordering window may have a set size (e.g., 20 ms), or it may be based on a relative metric of all or a subset of the TIDs in the ready-to-transmit queue (e.g., a 0% to 25% change between the highest and lowest metric corresponds to an initial reordering window of 10 ms, a 25% to 75% change corresponds to an initial reordering window of 20 ms, and a change of 75% or more corresponds to an initial reordering window of 30 ms).
[0086] At box 730, a TID with the best metric within the reordering window can be selected from the ready-to-transmit queue. For example, a TID with a metric indicating maximum throughput can be selected from the ready-to-transmit queue. While this document identifies or describes TIDs with the best metric, it should be understood that any TID that is expected to improve overall throughput or is relatively better than the metric associated with another TID can be selected without the need for a “best,” maximum, or fully optimized case. Rather, incremental improvements or gains are even envisioned within the scope of this disclosure.
[0087] Those skilled in the art will understand that the functions performed in the processes and methods disclosed herein may be implemented in different orders, simultaneously, etc. Furthermore, the steps and operations outlined are provided by way of example only, and some of these steps and operations may be optional, combined into fewer steps and operations, or extended into additional steps and operations without departing from the spirit of the specific implementations disclosed herein.
[0088] Figure 8A schematic diagram of an exemplary form of a machine, 800, is shown, within which a set of instructions is executable to cause the machine to perform any or more of the methods discussed herein. The computing device 800 may include a mobile phone, smartphone, netbook computer, rack server, router computer, server computer, personal computer, mainframe computer, laptop computer, tablet computer, desktop computer, or any computing device having at least one processor, within which a set of instructions is executable to cause the machine to perform any or more of the methods discussed herein. In an alternative embodiment, the machine may be connected (e.g., networked) to other machines in a LAN, intranet, extranet, or Internet. The machine may operate as a server machine in a client-server network environment. The machine may include a personal computer (PC), set-top box (STB), server, network router, switch, or bridge, or any machine capable of executing (sequentially or otherwise) a set of instructions specifying the actions to be taken by the machine. Furthermore, although only a single machine is shown, the term "machine" may also include any collection of machines that individually or jointly execute a set of instructions (or multiple sets of instructions) to perform any or more of the methods discussed herein.
[0089] An exemplary computing device 800 includes a processing device (e.g., a processor) 802, a main memory 804 (e.g., a read-only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM)), a static memory 806 (e.g., flash memory, static random access memory (SRAM)), and a data storage device 816 that communicate with each other via a bus 808.
[0090] Processing device 802 represents one or more general-purpose processing devices, such as microprocessors, central processing units, etc. More specifically, processing device 802 may include complex instruction set computing (CISC) microprocessors, reduced instruction set computing (RISC) microprocessors, very long instruction word (VLIW) microprocessors, or processors implementing other instruction sets or combinations thereof. Processing device 802 may also include one or more special-purpose processing devices, such as application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), digital signal processors (DSPs), network processors, etc. Processing device 802 is configured to execute instructions 826 for performing the operations and steps discussed herein.
[0091] The computing device 800 may also include one or more network interface devices 822 capable of communicating with one or more networks 818. The computing device 800 may also include a display device 810 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)), a numeric input device 812 (e.g., a keyboard), a cursor control device 814 (e.g., a mouse), and a signal generation device 820 (e.g., a speaker). In at least one embodiment, the display device 810, the numeric input device 812, and / or the cursor control device 814 may be combined into a single component or device (e.g., an LCD touchscreen).
[0092] Data storage device 816 may include computer-readable storage medium 824 on which one or more instruction sets 826 embodying any or more of the methods or functions described herein are stored. The instructions 826 may also reside wholly or at least partially within main memory 804 and / or processing device 802 during execution by computing device 800, which also constitute computer-readable media. These instructions may also be transmitted or received via network 818 through network interface device 822.
[0093] Although computer-readable storage medium 824 is shown as a single medium in the exemplary embodiment, the term "computer-readable storage medium" can include a single medium or multiple media (e.g., a centralized or distributed database and / or associated caches and servers) storing one or more instruction sets. The term "computer-readable storage medium" can also include any medium capable of storing, encoding, or carrying instruction sets for machine execution and causing the machine to perform any or more methods of this disclosure. Therefore, the term "computer-readable storage medium" can be considered to include, but is not limited to, solid-state memory, optical media, and magnetic media.
[0094] Unless otherwise specified, it is obvious from the discussion that the use of terms such as detection, determination, analysis, identification, and scanning throughout the description may include the actions and processes of a computer system or other information processing device that manipulates and transforms data representing physical (electronic) quantities in the registers and memories of the computer system into other data representing physical quantities in the memory or registers or other information storage, transmission, or display devices of the computer system.
[0095] The example implementation may also involve apparatus for performing the operations described herein. This apparatus may be specifically constructed for the desired purpose, or it may comprise one or more general-purpose computers selectively activated or reconfigured by one or more computer programs. Such computer programs may be stored in a computer-readable medium, such as a computer-readable storage medium or a computer-readable signal medium.
[0096] An exemplary device may be a multiple-input multiple-output (MIMO) device that supports up to N×N discrete communication streams via N antennas. In the example, the MIMO device signal processing unit may be implemented as N×N. In various embodiments, the value of N can be 4, 6, 8, 12, 16, etc. Extended MIMO operation enables the use of up to 2N antennas to communicate with another similarly equipped wireless system. It should be noted that even if the system does not have the same number of antennas, an extended MIMO system can communicate with other wireless systems, but may not utilize some antennas of one station, thus reducing optimal performance.
[0097] Channel state information (CSI) from any device described in this disclosure can be extracted independently of changes in channel state parameters and used for spatial diagnostic services of the network, such as motion detection, proximity detection, and location. These spatial diagnostic services can be used for applications such as WLAN diagnostics, home security, health monitoring, smart home facility control, elderly care, vehicle tracking and monitoring, home or mobile entertainment, and automotive infotainment.
[0098] Unless the specific arrangements described herein are mutually exclusive, the various embodiments described herein can be combined to enhance system functionality and / or produce complementary functions. Such combinations will be readily understood by those skilled in the art given the complete foregoing description. Similarly, aspects of the embodiments can be implemented independently, with more limited and specific component functionality provided within each of the interconnected and interacting system components, but collectively they support, realize, and produce the described real-world effects. In fact, it should be understood that unless features in a particular embodiment are explicitly identified as incompatible with each other, the surrounding environment implies that they are mutually exclusive and not easily combined in a complementary and / or supporting sense. The entirety of this disclosure envisions and contemplates that specific features of these complementary embodiments can be selectively combined to provide one or more comprehensive but slightly different technical solutions. Therefore, it should be understood that the above description has been given by way of example only and detailed modifications can be made within the scope of this disclosure.
[0099] The subject matter of this disclosure is illustrated, for example, according to the various aspects described below. For convenience, various examples of aspects of the subject matter are described as numbered embodiments (1, 2, 3, etc.). These are provided by way of example and do not limit the subject matter. It should be noted that any dependent embodiments or portions thereof may be combined in any combination and placed in independent embodiments, such as Embodiment 1, Embodiment 2, and Embodiment 3. Other embodiments may be presented in a similar manner. The following is a non-limiting overview of some embodiments presented herein.
[0100] Example 1 includes a method comprising identifying a first transmission identifier (TID) associated with a first node of a wireless network as ready for transmission, and adding the first TID to a ready-to-transmit queue at a first time point. The method further includes identifying a second TID associated with a second node of the wireless network as ready for transmission, and adding the second TID to the ready-to-transmit queue at a second time point later than the first time point. The method also includes selecting the second TID from the ready-to-transmit queue based on the anticipated increase in total packet throughput within the wireless network when communicating with the second node prior to communicating with the first node.
[0101] Example 2 includes: a wireless access point including one or more processors; and one or more non-transitory computer-readable media containing instructions that, when executed by the one or more processors, cause the wireless access point to perform one or more operations. Operations of Example 2 include receiving a first notification of a first transmission identifier (TID) associated with a first node preparing for transmission in the wireless network, adding the first TID to a preparation transmission queue at a first time point, and receiving a second notification of a second TID associated with a second node preparing for transmission in the wireless network. Operations of Example 2 further include adding the second TID to the preparation transmission queue at a second time point later than the first time point, and selecting the second TID from the preparation transmission queue before selecting the first TID, based on the anticipated increase in total packet throughput within the wireless network when transmitting packets to the second node before transmitting packets to the first node.
[0102] Example 3 includes a non-transitory computer-readable medium containing instructions that, when executed by one or more processors, cause the system to perform one or more operations, including identifying a first transmission identifier (TID) associated with a first node of the wireless network as ready for transmission, adding the first TID to a ready-to-transmit queue at a first time point, and identifying a second TID associated with a second node of the wireless network as ready for transmission. The operations also include adding the second TID to the ready-to-transmit queue at a second time point later than the first time point, and selecting the second TID from the ready-to-transmit queue before selecting the first TID, based on the anticipated increase in total packet throughput within the wireless network when communicating with the second node prior to communicating with the first node.
[0103] Some embodiments include one or more additional operations, which may include checking the activity level of the medium of the wireless network and performing at least one response operation based on the activity level being below a threshold. The response operation may include: reducing the aggregation timeout such that different TIDs are selected into the ready-to-transmit queue faster compared to before the aggregation timeout was reduced; disabling multi-frame transmission during a transmission opportunity (TXOP); reducing the TXOP limit duration; and reducing the size of the reordering window.
[0104] In some embodiments, the first TID and the second TID may belong to a first group of TIDs. Such embodiments may include one or more additional operations, such as identifying a third TID associated with the first node of the wireless network as ready for transmission, wherein the third TID portion of the second group of TIDs includes the third TID and a fourth TID associated with the second node; adding the third TID to a second ready-to-transmit queue at a third time point; identifying the fourth TID as ready for transmission; adding the fourth TID to the second ready-to-transmit queue at a fourth time point later than the third time point; and selecting the fourth TID from the second ready-to-transmit queue prior to the third TID. In these embodiments, the first group of TIDs and the second group of TIDs may be processed in parallel.
[0105] In some embodiments, the first set of TIDs may be associated with voice packets, and the second set of TIDs may be associated with video packets.
[0106] In some embodiments, when the second TID is selected from the prepared transmission queue, the wireless access point may perform operations that may include determining, based on the second TID prepared for transmission, a first one or more metrics associated with the total throughput of packets within the wireless network for the first TID, and determining a second one or more metrics associated with the total throughput of packets within the wireless network for the second TID. In these embodiments, the operation of adding the second TID to the prepared transmission queue may include positioning the second TID before the first TID in the prepared transmission queue based on the second one or more metrics of the expected increase in total throughput of packets compared to the first one or more metrics.
[0107] Some embodiments include one or more additional operations, which may include associating a first timestamp with the first TID; associating a second timestamp with the second TID; and comparing the second timestamp associated with the second TID and the first timestamp associated with the first TID with a reordering window, wherein the reordering window may be related to the time span in which the TID can be located within the preparation transmission queue. In these embodiments, the operation of locating the second TID before the first TID within the preparation transmission queue may be further based on the second timestamp and the first timestamp within the reordering window.
[0108] In some embodiments, the size of the reordering window may vary, and the size of the reordering window may be based on the difference between the first or more metrics and the second or more metrics.
[0109] In some embodiments, the operation of adding the first TID and the second TID to the prepared transmission queue may be performed chronologically, such that when the first TID is located in the prepared transmission queue, it may be located before the second TID. In such embodiments, the operation of selecting the second TID from the prepared transmission queue may include determining that the first TID and the second TID are within a reordering window, and the operation of selecting the second TID from the prepared transmission queue may include determining a first or more metrics associated with the total throughput of packets within the wireless network for the first TID and a second or more metrics for the second TID. In such embodiments, the second TID may be selected from the prepared transmission queue based on the second or more metrics, which indicate an increase in total throughput of packets compared to the expected impact of the first or more metrics on the total throughput of the packets.
[0110] Some embodiments include one or more additional operations, which may include, before communicating with the second node associated with the second TID, determining whether a first counter of the second TID has met or exceeded a first threshold; identifying a third TID in the ready-to-transmit queue based on whether the first counter of the second TID meets or exceeds the first threshold, the third TID having a second counter at or below a second threshold; selecting the third TID from the ready-to-transmit queue based on whether the second counter of the third TID is at or below the second threshold; transmitting a packet of the third node associated with the third TID; incrementing the second counter of the third TID; verifying whether the corresponding counters of the first TID, the second TID, and the third TID are greater than the second threshold; and resetting the corresponding counters of the first TID, the second TID, and the third TID based on whether the corresponding counters of the first TID, the second TID, and the third TID are greater than the second threshold.
[0111] Regarding the use of virtually any plural or singular terminology herein, those skilled in the art can convert from plural to singular or vice versa, depending on the context or application to which it applies. For clarity, various singular / plural arrangements may be explicitly described herein. Unless otherwise stated, references to elements in singular form are not intended to mean "one and only one," but rather "one or more." Furthermore, nothing disclosed herein is intended for public use, whether or not such disclosure is explicitly stated in the foregoing description.
[0112] Generally, the terms used herein, and especially in the appended claims (e.g., the body of the appended claims), are generally expected to be “open” terms (e.g., the term “including” should be interpreted as “including but not limited to,” the term “having” should be interpreted as “at least having,” the term “includes” should be interpreted as “including but not limited to,” etc.). Furthermore, in cases where conventions such as “at least one of A, B, and C” are used, such constructs generally imply the conventions that should be understood by one of those skilled in the art (e.g., “a system having at least one of A, B, and C” would include, but is not limited to, systems including A alone, B alone, C alone, A and B together, A and C together, B and C together, or A, B, and C together, etc.). Additionally, phrases presenting two or more alternative terms, whether in the specification, claims, or drawings, should be understood to include one term, any one of the terms, or both terms. For example, the phrase “A or B” would be understood to include the possibility of “A” or “B” or “A and B.”
[0113] This disclosure may be embodied in other specific forms without departing from its substance or essential characteristics. The specific embodiments described are to be considered exemplary in all respects only and not restrictive. Therefore, the scope of this disclosure is indicated by the appended claims rather than the foregoing description. All variations in the meaning and scope of the equivalents of the claims are covered within the scope of the claims.
Claims
1. A method, the method comprising: The first transmission identifier (TID) associated with the first node of the wireless network is identified as ready for transmission; Add the first TID to the ready-to-transmit queue at the first point in time; The second TID associated with the second node of the wireless network is identified as ready for transmission; The second TID is added to the ready-to-transmit queue at a second time point later than the first time point; as well as Based on the anticipated increase in total packet throughput within the wireless network when communicating with the second node prior to communicating with the first node, the second TID is selected from the prepared transmission queue before selecting the first TID.
2. The method of claim 1, further comprising, based on selecting the second TID, transmitting the packet associated with the second TID to the second node.
3. The method of claim 1, wherein selecting the second TID from the prepared transmission queue comprises: Based on the second TID prepared for transmission, determine one or more first metrics associated with the total throughput of packets within the wireless network for the first TID, and determine one or more second metrics associated with the total throughput of packets within the wireless network for the second TID. Adding the second TID to the prepared transmission queue includes estimating the increased total throughput of packets based on a second or more metrics of the second TID compared to a first or more metrics of the first TID, and positioning the second TID in the prepared transmission queue before the first TID.
4. The method according to claim 3, further comprising: Associate the first timestamp with the first TID; Associate the second timestamp with the second TID; as well as The second timestamp associated with the second TID and the first timestamp associated with the first TID are compared with a reordering window, the reordering window being related to the time span during which the TID can be located within the ready-to-transmit queue. The second TID is positioned in the preparation transmission queue before the first TID, and further based on the second timestamp and the first timestamp within the reordering window.
5. The method of claim 4, wherein the size of the reordering window can vary based on the relative difference between the first one or more metrics of the first TID and the second one or more metrics of the second TID, such that the size of the reordering window increases as the relative difference between the first one or more metrics and the second one or more metrics increases.
6. The method of claim 1, wherein the first TID and the second TID are added to the preparation transmission queue in chronological order, such that the first TID is positioned in the preparation transmission queue before the second TID, and Selecting the second TID from the prepared transmission queue includes determining a first or more metrics associated with the total throughput of packets within the wireless network for the first TID and a second or more metrics for the second TID, wherein the second TID is selected from the prepared transmission queue based on an increase in total throughput of packets indicated by the second or more metrics compared to the expected impact of the first or more metrics on the total throughput of packets.
7. The method according to claim 6, further comprising: The first TID and the second TID are determined to be within a reordering window, which is associated with a time span during which a TID can be selected from the ready-to-transmit queue. The first one or more metrics and the second one or more metrics are determined within the reordering window based on the first TID and the second TID, and the second TID is selected within the reordering window based on the second TID.
8. The method of claim 1, wherein the total throughput of the wireless network is based at least on one or more metrics associated with a specific TID of a particular node, wherein the one or more metrics are based on at least one of physical layer (PHY) rate, number of bytes transmitted, and protocol overhead.
9. The method of claim 1, further comprising preventing the first node from being denied the opportunity to communicate within the wireless network.
10. The method of claim 9, wherein preventing the first node from being denied the opportunity to communicate within the wireless network comprises: Before communicating with the second node associated with the second TID, determine whether the first counter of the second TID has met or exceeded a first threshold; Based on the first counter of the second TID satisfying or exceeding the first threshold, a third TID in the ready transmission queue is identified, the third TID having a second counter at or below the second threshold; The third TID is selected from the ready transmission queue when the second counter of the third TID is at or below the second threshold. Transmit packets associated with the third node of the third TID; Increment the second counter of the third TID; Verify that the first TID, the second TID, and the third TID have corresponding counters that are greater than the second threshold; as well as Based on the fact that the first TID, the second TID, and the third TID have corresponding counters that are greater than the second threshold, the corresponding counters of the first TID, the second TID, and the third TID are reset.