Airtime-based packet scheduling for wireless networks

Information

  • Patent Grant
  • 10219254
  • Patent Number
    10,219,254
  • Date Filed
    Monday, January 8, 2018
    6 years ago
  • Date Issued
    Tuesday, February 26, 2019
    5 years ago
Abstract
Airtime usage may be used as a factor in controlling network traffic flow to and from client devices via a wireless network interface. Received packets or other data are assigned to a quality of service profile. Additionally, a cost value for communicating the received data is determined at least in part based on an actual or estimated airtime usage for the received packet. The cost value is used to allocate wireless network airtime to data. The allocation of wireless network airtime may be varied dynamically based on operating conditions. The cost value may be based on factors including the airtime used to communicate data; whether the data is a retransmission; and wireless network overhead. The cost value of data may also be different depending on whether the data is being sent from a client device or to a client device.
Description
BACKGROUND

This application is related to the field of wireless networking devices, and in particular to systems and methods for controlling network traffic to and from clients. Networking devices enable data communications between two or more devices, referred to generally as clients. Data communications may be conducted over wired and/or wireless network interfaces. Typically, data is partitioned into packets, which are then communicated via one or more networking devices to one or more destination clients.


Networking devices may handle packets generated by and directed to large numbers of clients over the same interface. The bandwidth or data communications capacity of networking devices limits the amount of data or the rate of network packets passing through network devices. The limits on bandwidth are particularly acute in network devices including wireless network interfaces. If the bandwidth limit of a networking device is reached or exceeded by its client's network traffic, packets may be delayed or dropped. Depending on the type of data being communicated over the network, these traffic disruptions caused by reaching or exceeding bandwidth limit of a networking device may adversely affect the performance of applications on a client. For example, clients receiving voice or streaming video data may be adversely affected by even small delays or losses of packets.


Because of the limits on network device bandwidth, many network devices include quality of service (QoS) functionality. Quality of service functionality allows network administrators to provide different priority for packets or other network data based on factors such as the associated client, user, client application, or data flow. Typically, users, clients, or applications are assigned to different quality of service profiles. Each quality of service profile specifies a quality of service parameters to associated packets or other network data. Networking devices use the scheduling weights to prioritize packet traffic and potentially guarantee a minimum level of performance to some or all of the network data flows.


However, typical quality of service functionality does not take into consideration performance issues unique to wireless network interfaces. For example, many wireless network interfaces support multiple wireless networking standards, such as IEEE 802.11a, 802.11b, 802.11g, and 802.11n. This allows the networking device to support legacy clients using slower (e.g. relatively low data-rate) standards, such as 802.11b, as well as newer clients capable of communicating via faster (e.g. relatively high data-rate) standards, such as 802.11n. When a networking device is operating in a mixed mode and communicating with clients via multiple standards, the clients using slower data rates, such as clients using older standards or newer standards at lower data rates, for example due to lower signal strength or radio interference, will consume a disproportionate amount of airtime from the wireless network interface. As a result of this disproportionate airtime usage, the performance of other clients attempting to utilize faster data rates will be degraded substantially.


SUMMARY

An embodiment of the invention includes airtime usage as a factor in controlling network traffic flow to and from client devices via a wireless network interface. In an embodiment, packets or other data received via a wired or wireless network interface and directed to a client device or received from a client via a wireless network interface are assigned to a quality of service profile. Additionally, a cost value for communicating the packet or other data is determined at least in part based on an actual or estimated airtime usage for the packet to be communicated to or from the client via a wireless network interface. The cost value is used to allocate wireless network airtime to clients. In a further embodiment, the consumption of wireless network airtime may be varied dynamically based on operating conditions.


In an embodiment, the cost value may be based on factors including the actual or estimated airtime used to communicate the packet via the wireless network interface; whether the packet or other data is a retransmission of a previous packet or other data; and actual or estimated wireless network overhead. The cost value of a packet may also be different depending on whether the packet is being sent from a client device or to a client device.


In an embodiment, a token bucket scheduling system is used to allocate wireless network bandwidth based on received packets' cost values and token balances associated with quality of service profiles. In a further embodiment, packets or other data received from a client device via a wireless network interface may be dropped or discarded if a queue associated with a quality of service is full.





BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 illustrates a flowchart of an example of a method of scheduling downlink network traffic according to an embodiment of the invention.



FIG. 2 illustrates a diagram of an example computer system suitable for implementing an embodiment of the invention.





DETAILED DESCRIPTION


FIG. 1 illustrates a flowchart 100 of an example of a method of scheduling downlink network traffic according to an embodiment of the invention. In this application, downlink network traffic refers to network traffic received by a network device via a wired or wireless network connection and directed to a client device via a wireless network connection. In step 105, a packet or other type of network data is received by a network device. In an embodiment, the packet is directed to a client device in direct or indirect communication with the network device via a wireless network connection. For example, the network device may be adapted to communicate the packet directly to the client device via a wireless network connection or to one or more additional network devices via the wireless network connection, which in turn communicate the packet to the client device via a wired or wireless network connection.


Step 110 determines a quality of service profile to be associated with the received packet. Embodiments of step 110 may assign a quality of service profile to packets based on the packet source, the packet destination, a user identity or user class associated with the packet source and/or packet destination, the contents or control data associated with a packet, a source or client application associated with a packet, and/or a data flow associated with the packet. The set of quality of service profiles may be specified by network administrators. As described in detail below, each quality of service profile is assigned a scheduling weight and a scheduling mode used to prioritize packets. In further embodiments, a quality of service profile may include a per-user rate limit.


Step 115 determines a token cost for the received packet based on factors including an estimated airtime for the packet and the quality of service profile. In an embodiment, packets are assigned a cost value, referred to as a token cost. The token cost represents the relative amount of network performance consumed by communicating the associated packet towards the intended destination by the network device.


Embodiments of step 115 take into account at least an estimated packet airtime to determine the token cost of the received packet. In an embodiment, step 115 estimates the airtime to communicate the received packet from the network device to the client based on the airtime required by previous packets to the same client, similar clients, and/or clients assigned to the same quality of service profile. For example, a running average of the airtime consumed by one or more of the most-recently sent packets to the same client may be used to determine at least a portion of the estimated packet airtime for the currently received packet.


In a further embodiment, the average airtime of recently sent packets is weighted or divided by their respective packet sizes to determine an average airtime consumed per data unit, such as average airtime consumed per byte. This average airtime consumed per data unit may then be scaled or weighted according the size of the received packet to determine at least a portion of the estimated airtime for the currently received packet. This enables the token cost of a packet to increase with the packet size, as larger packets consume more network bandwidth.


In addition to estimating the airtime consumed in transmitting the packet, an embodiment of step 115 may also include other factors in determining the token cost of a packet. The token cost or total estimated airtime may include an estimated airtime for transmitting a packet to the client, the actual, estimated, or prorated airtime used for retransmitting packets that were previously unsuccessfully transmitted, and/or some or all of the network overhead.


Optional decision block 117 may determine if the packet is associated with a critical quality of service profile. In an embodiment, users, user groups, and/or the types of applications associated with a packet may be assigned to a critical quality of service profile if any delay in forwarding the packet is unacceptable. For example, packets from voice-over IP (VOIP) and live video applications may be assigned to a critical quality of service profile. If a packet is associated with a critical quality of service profile, method 100 proceeds directly from decision block 117 to step 130 to forward the packet to its destination. However, as described in detail below, step 130 may deduct the token cost of this critical packet from a token bucket associated with the application, user group, or individual user. This has the effect of potentially limiting the airtime of any future non-critical packets from the same application, user group, or user.


Step 120 determines a token balance of a token bucket associated with the selected quality of service profile. In an embodiment, each quality of service profile is associated with its own token bucket. A token bucket is a data structure including a token balance value. The token balance value represents the unused proportion of the network bandwidth assigned to a quality of service profile. Token costs and token balance values may be expressed in arbitrary units.


In an embodiment, the token balance value of each token bucket is periodically increased or incremented, representing additional network bandwidth allocated to the associated quality of service profile for a period of time. In an embodiment, a scheduling weight associated with a quality of service profile is used to determine the rate or amount by which the token balance value of the token bucket is increased. For example, the token balance value of a token bucket associated with a higher priority quality of service profile may be incremented more frequently and/or by larger amounts. This has the effect of allocating more network bandwidth to packets associated with the high priority quality of service profile. In an alternate embodiment, each token bucket has its token balance value incremented by the same amount and at the same frequency.


In further embodiments, the range of the token balance value of each token bucket may be limited between a maximum token balance value and/or a minimum token balance value. The token increment value, token balance incrementing rate, and the minimum and maximum token balance limits of each token bucket may be specified based on the associated quality of service profile and optionally one or more other quality of service profiles. In a further embodiment, the token increment value, token balance incrementing rate, the minimum and maximum token balance limits of each token bucket, or any other factor affecting the allocation of wireless networking airtime may be dynamically specified based on the performance of the wireless network interface.


Decision block 125 compares the token cost of the received packet with the token balance value of the associated token bucket. If the token cost of the received packet is less than the token balance of the token bucket corresponding with the assigned quality of service profile, then method 100 proceeds to step 130.


Step 130 deducts the token cost from the token balance of the associated token bucket and forwards the packet to the client via the wireless network interface. By deducting the token cost from the token balance of the token bucket, the token balance reflects the relative proportion of the wireless network interface's bandwidth that has been used by the assigned quality of service profile. The packet may be communicated to the client device using any wireless networking standard or technique known in the art. In a further embodiment, the network device may communicate with multiple clients using different wireless networking standards or techniques, depending on the client capabilities and/or operating conditions. Following step 130, flowchart 100 optionally proceeds back to step 105 to await the receipt of another packet directed to the same or a different client.


In a further embodiment, step 130 deducts the token cost from the token balance value of the associated token bucket in two phases. First, step 130 deducts the token cost based at least partly on an estimated airtime for the received packet. Step 130 then forwards the packet to the client device via the wireless network interface. Additionally, step 130 monitors the transmission of this packet towards the client to determine its actual airtime usage. Step 130 then uses this actual airtime usage to determine a revised token cost for the received packet. Step 130 then subtracts the difference between the revised token cost and the original token cost of the packet from the token balance value of the token bucket. This adjustment may increase or decrease the token balance value of the token bucket, depending on whether the actual airtime usage of the packet is less than or greater than the estimated airtime, respectively.


Returning to decision block 125, if the token cost of the received packet is greater than the token balance of the token bucket corresponding with the assigned quality of service profile, then method 100 proceeds to step 135. Step 135 queues the received packet associated with this quality of service profile until the token balance of its associated token bucket is increased. Following the increase of the token balance of the token bucket associated with the quality of service profile assigned to the received packet, an embodiment of method 100 proceeds back to step 120. Steps 120, 125, and step 135 may be repeated one or more times until the token cost of the queued packet is less than the token balance of the token bucket. In an embodiment, while a packet is queued in step 135, other packets may be received and processed according to flowchart 100.


Although described with reference to downlink network traffic from a network device to a client device, embodiments of the method of flowchart 100 may also be applied to scheduling uplink network traffic from a client device to a network device via a wireless network interface. In this embodiment, the method of flowchart 100 operates in a similar manner as described above. However, the actual airtime of the received uplink packet is already known, eliminating the need to use an estimated airtime to determine at least part of the token cost.


As described above, a packet may be assigned to a critical quality of service profile if any delay in forwarding the packet is unacceptable. In an embodiment, step 130 deducts the token cost of these packets from the token balance of the associated token bucket, similar to other packets associated with non-critical quality of service profiles. However, because packets assigned to critical quality of service profiles bypass steps 120, 125, and 135, the token balance of a token bucket may become negative due to packets in critical quality of service profiles. In an embodiment, a negative token balance will not block further communications of packets associated with critical quality of service profiles. However, other packets associated with the same token bucket, such as packets for the same user, user group, and/or application, will be queued until the token balance of the token bucket increases. In a further embodiment, a token bucket may have a negative limit. When the token balance reaches the negative limit, packets associated with this token bucket may be dropped.


Although the flowchart 100 includes token costs and token buckets for controlling network traffic based at least in part on airtime usage, embodiments of the invention can include airtime usage as a factor controlling network traffic using any other network traffic shaping, bandwidth throttling, rate limiting, or quality of service technique known in the art.



FIG. 2 illustrates a diagram 2000 of an example computer system suitable for implementing an embodiment of the invention. FIG. 2 is a block diagram of a computer system, such as a personal computer or other digital device, suitable for practicing an embodiment of the invention. Embodiments of computer system may include dedicated networking devices, such as wireless access points, network switches, hubs, routers, hardware firewalls, network traffic optimizers and accelerators, network attached storage devices, and combinations thereof.


The diagram 2000 includes a central processing unit (CPU) 2005 for running software applications and optionally an operating system. CPU 2005 may be comprised of one or more processing cores. Memory 2010 stores applications and data for use by the CPU 2005. Examples of memory 2010 include dynamic and static random access memory. Storage 2015 provides non-volatile storage for applications and data and may include fixed or removable hard disk drives, flash memory devices, ROM memory, and CD-ROM, DVD-ROM, Blu-ray, HD-DVD, or other magnetic, optical, or solid state storage devices.


Optional user input devices 2020 communicate user inputs from one or more users to the computer system 2000, examples of which may include keyboards, mice, joysticks, digitizer tablets, touch pads, touch screens, still or video cameras, and/or microphones. In an embodiment, user input devices may be omitted and the computer system may present a user interface to a user over a network, for example using a web page or network management protocol and network management software applications.


The diagram 2000 includes one or more network interfaces 2025 that allow computer system to communicate with other computer systems via an electronic communications network, and may include wired or wireless communication over local area networks and wide area networks such as the Internet. The computer system may support a variety of networking protocols at one or more levels of abstraction. For example, the computer system may support networking protocols at one or more layers of the seven layer OSI network model. An embodiment of network interface 2025 includes one or more wireless network interfaces adapted to communicate with wireless clients and with other wireless networking devices using radio waves, for example using the 802.11 family of protocols, such as 802.11a, 802.11b, 802.11g, and 802.11n.


An embodiment of the computer system of the diagram 2000 may also include a wired networking interface, such as one or more Ethernet connections to communicate with other networking devices via local or wide-area networks. In a further embodiment, the computer system may be capable of receiving some or all of its required electrical power via the network interface 2025, for example using a wired networking interface power over Ethernet system.


The components of the computer system of the diagram 2000, including CPU 2005, memory 2010, data storage 2015, user input devices 2020, and network interface 2025 are connected via one or more data buses 2060. Additionally, some or all of the components of the computer system, including CPU 2005, memory 2010, data storage 2015, user input devices 2020, and network interface 2025 may be integrated together into one or more integrated circuits or integrated circuit packages. Furthermore, some or all of the components of the diagram 2000 may be implemented as application specific integrated circuits (ASICS) and/or programmable logic.


A power supply 2030 provides electrical power to the computer system of the diagram 2000. Power supply 2030 may be adapted to draw electrical power from a connection with an electrical power distribution grid. In an embodiment, power supply 2030 is connected with network interface 2025 to draw electrical power for the computer system from one or more wired network connections using a network power standard, such as IEEE 802.3af.


Further embodiments can be envisioned to one of ordinary skill in the art after reading the attached documents. For example, embodiments of the invention can be used with any number of network connections and may be added to any type of power supply in addition to the stacked network power supply illustrated above. In other embodiments, combinations or sub-combinations of the above disclosed invention can be advantageously made. The block diagrams of the architecture and flow charts are grouped for ease of understanding. However it should be understood that combinations of blocks, additions of new blocks, re-arrangement of blocks, and the like are contemplated in alternative embodiments of the present invention.


The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense. It will, however, be evident that various modifications and changes may be made thereunto without departing from the broader spirit and scope of the invention as set forth in the claims.

Claims
  • 1. A method comprising: receiving first and second data packets as part of network traffic of a network destined for one or more wireless devices accessing the network through a wireless connection;determining a first quality of service profile associated with the first data packet and a second quality of service profile associated with the second data packet;determining a first token cost of transmitting the first data packet and a second token cost of transmitting the second data packet based on estimated airtime for transmitting the first and second data packets, respectively;determining a first token balance of the first quality of service profile and a second token balance of the second quality of service profile, the first and second token balances being an amount of network bandwidth of the network allocated to the first and second quality of service profiles, respectively;determining whether the first and second token costs exceed the first and second token balances, respectively;upon determining that the first token cost does not exceed the first token balance, deducting the first token cost from the first token balance and forwarding the first data packet to a wireless device;upon determining that the second token cost does not exceed the second token balance, deducting the second token cost from the second token balance and forwarding the second data packet to a wireless device;periodically performing increase of the first and second token balances, respectively, an increase rate of the first token balance being greater than an increase rate of the second token balance;receiving a third data packet as part of network traffic of the network destined for a wireless device accessing the network through a wireless connection;determining a third quality of service profile associated with the third data packet;determining a third token cost of transmitting the third data packet based on estimated airtime for transmitting the third data packet;deducting the third token cost from a third token balance of the third quality of service profile and forwarding the third data packet to a wireless device, irrespective of whether or not the third token cost exceeds the third token balance.
  • 2. The method of claim 1, wherein a frequency of the increase of the first token balance is greater than a frequency of the increase of the second token balance.
  • 3. The method of claim 1, wherein an amount of the increase of the first token balance is greater than an amount of the increase of the second token balance.
  • 4. The method of claim 1, wherein the first and second token balances both have a maximum token balance limit to which the token balance is allowed to be increased, and a maximum token balance limit of the first token balance is different from a maximum token balance limit of the second token balance.
  • 5. The method of claim 1, further comprising: determining a revised first token cost based on actual airtime usage in forwarding the first data packet, and adjusting the first token balance based on a difference between the first token cost and the revised first token cost;determining a revised second token cost based on actual airtime usage in forwarding the second data packet, and adjusting the second token balance based on a difference between the second token cost and the revised second token cost.
  • 6. The method of claim 1, further comprising: when the third token balance after deducting the third token cost reaches a negative limit, dropping the third data packet;when the third token balance after deducting the third token cost does not reach the negative limit, forwarding the third data packet to a wireless device.
  • 7. The method of claim 1, wherein the first and second quality of service profiles are determined based on first and second wireless networking standards used for communication of the first and second data packets, respectively, wherein the first wireless networking standard supports faster data communication than the second wireless networking standard.
  • 8. The method of claim 1, wherein the network traffic is downlink network traffic.
  • 9. The method of claim 1, wherein the determining the first token cost of transmitting the first data packet and the second token cost of transmitting the second data packet comprises: determining airtimes to transmit previously sent data packets associated with the first quality of service profile and data sizes thereof;determining a first average airtime consumed per data unit based on the airtimes to transmit previously sent data packets associated with the first quality of service profile and the data sizes thereof;determining the estimated airtime for transmitting the first data packet based on the first average air time consumed per data unit and a data size of the first data packet;determining airtimes to transmit previously sent data packets associated with the second quality of service profile and data sizes thereof;determining a second average airtime consumed per data unit based on the airtimes to transmit previously sent data packets associated with the second quality of service profile and the data sizes thereof;determining the estimated airtime for transmitting the second data packet based on the second average air time consumed per data unit and a data size of the second data packet.
  • 10. A system comprising: a processor;memory storing instructions configured to instruct the processor to: receive first and second data packets as part of network traffic of a network destined for one or more wireless devices accessing the network through a wireless connection;determine a first quality of service profile associated with the first data packet and a second quality of service profile associated with the second data packet;determine a first token cost of transmitting the first data packet and a second token cost of transmitting the second data packet based on estimated airtime for transmitting the first and second data packets, respectively;determine a first token balance of the first quality of service profile and a second token balance of the second quality of service profile, the first and second token balances being an amount of network bandwidth of the network allocated to the first and second quality of service profiles, respectively;determine whether the first and second token costs exceed the first and second token balances, respectively;upon determining that the first token cost does not exceed the first token balance, deduct the first token cost from the first token balance and forward the first data packet to a wireless device;upon determining that the second token cost does not exceed the second token balance, deduct the second token cost from the second token balance and forward the second data packet to a wireless device;periodically perform increase of the first and second token balances, respectively, an increase rate of the first token balance being greater than an increase rate of the second token balance;receive a third data packet as part of network traffic of the network destined for a wireless device accessing the network through a wireless connection;determine a third quality of service profile associated with the third data packet;determine a third token cost of transmitting the third data packet based on estimated airtime for transmitting the third data packet;deduct the third token cost from a third token balance of the third quality of service profile and forward the third data packet to a wireless device, irrespective of whether or not the third token cost exceeds the third token balance.
  • 11. The system of claim 10, wherein a frequency of the increase of the first token balance is greater than a frequency of the increase of the second token balance.
  • 12. The system of claim 10, wherein an amount of the increase of the first token balance is greater than an amount of the increase of the second token balance.
  • 13. The system of claim 10, wherein the first and second token balances both have a maximum token balance limit to which the token balance is allowed to be increased, and a maximum token valance limit of the first token balance is different from a maximum token balance limit of the second token balance.
  • 14. The system of claim 10, wherein the instructions are further configured to instruct the processor to: determine a revised first token cost based on actual airtime usage in forwarding the first data packet, and adjust the first token balance based on a difference between the first token cost and the revised first token cost;determine a revised second token cost based on actual airtime usage in forwarding the second data packet, and adjust the second token balance based on a difference between the second token cost and the revised second token cost.
  • 15. The system of claim 10, wherein the instructions are further configured to instruct the processor to: when the third token balance after deducting the third token cost reaches a negative limit, drop the third data packet;when the third token balance after deducting the third token cost does not reach the negative limit, forward the third data packet to a wireless device.
  • 16. The system of claim 10, wherein the first and second quality of service profiles are determined based on first and second wireless networking standards used for communication of the first and second data packets, respectively, wherein the first wireless networking standard supports faster data communication than the second wireless networking standard.
  • 17. The system of claim 10, wherein the network traffic is downlink network traffic.
  • 18. The system of claim 10, wherein the instructions are further configured to instruct the processor to: determine airtimes to transmit previously sent data packets associated with the first quality of service profile and data sizes thereof;determine a first average airtime consumed per data unit based on the airtimes to transmit previously sent data packets associated with the first quality of service profile and the data sizes thereof;determine the estimated airtime for transmitting the first data packet based on the first average air time consumed per data unit and a data size of the first data packet;determine airtimes to transmit previously sent data packets associated with the second quality of service profile and data sizes thereof;determine a second average airtime consumed per data unit based on the airtimes to transmit previously sent data packets associated with the second quality of service profile and the data sizes thereof;determine the estimated airtime for transmitting the second data packet based on the second average air time consumed per data unit and a data size of the second data packet.
CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No. 15/243,720, filed on Aug. 22, 2016, which is a continuation of U.S. patent application Ser. No. 14/250,294, filed on Apr. 10, 2014, now U.S. Pat. No. 9,572,135, which is a continuation of U.S. patent application Ser. No. 13/938,159, filed on Jul. 9, 2013, now U.S. Pat. No. 8,730,931, which is a continuation of U.S. patent application Ser. No. 12/356,886, filed on Jan. 21, 2009, now U.S. Pat. No. 8,483,194, all of which are incorporated by reference herein.

US Referenced Citations (255)
Number Name Date Kind
5471671 Wang Nov 1995 A
5697059 Carney Dec 1997 A
5726984 Kubler Mar 1998 A
5956643 Benveniste Sep 1999 A
6061799 Eldridge May 2000 A
6112092 Benveniste Aug 2000 A
6154655 Borst Nov 2000 A
6201792 Lahat Mar 2001 B1
6233222 Wallentin May 2001 B1
6314294 Benveniste Nov 2001 B1
6473413 Chiou Oct 2002 B1
6496699 Benveniste Dec 2002 B2
6519461 Andersson Feb 2003 B1
6628623 Noy Sep 2003 B1
6628938 Rachabathuni Sep 2003 B1
6636498 Leung Oct 2003 B1
6775549 Benveniste Aug 2004 B2
6865393 Baum Mar 2005 B1
6957067 Iyer Oct 2005 B1
7002943 Bhagwat Feb 2006 B2
7057566 Theobold Jun 2006 B2
7085224 Oran Aug 2006 B1
7085241 O'Neill Aug 2006 B1
7130629 Leung Oct 2006 B1
7154874 Bhagwat Dec 2006 B2
7164667 Rayment Jan 2007 B2
7174170 Steer Feb 2007 B2
7177646 O'Neill Feb 2007 B2
7181530 Halasz Feb 2007 B1
7216365 Bhagwat May 2007 B2
7224697 Banerjea May 2007 B2
7251238 Joshi Jul 2007 B2
7336670 Calhoun Feb 2008 B1
7339914 Bhagwat Mar 2008 B2
7346338 Calhoun Mar 2008 B1
7366894 Kalimuthu Apr 2008 B1
7369489 Bhattacharya May 2008 B1
7370362 Olson May 2008 B2
7440434 Chaskar Oct 2008 B2
7512379 Nguyen Mar 2009 B2
7536723 Bhagwat May 2009 B1
7562384 Huang Jul 2009 B1
7593356 Friday Sep 2009 B1
7656822 AbdelAziz Feb 2010 B1
7706789 Qi Apr 2010 B2
7716370 Devarapalli May 2010 B1
7751393 Chaskar Jul 2010 B2
7768952 Lee Aug 2010 B2
7793104 Zheng Sep 2010 B2
7804808 Bhagwat Sep 2010 B2
7843907 Abou-Emara Nov 2010 B1
7844057 Meier Nov 2010 B2
7856209 Rawat Dec 2010 B1
7921185 Chawla Apr 2011 B2
7949342 Cuffaro May 2011 B2
7961725 Nagarajan Jun 2011 B2
7970894 Patwardhan Jun 2011 B1
8000308 Dietrich Aug 2011 B2
8069483 Matlock Nov 2011 B1
8219688 Wang Jul 2012 B2
8249606 Neophytou Aug 2012 B1
8493918 Karaoguz Jul 2013 B2
8553612 Alexandre Oct 2013 B2
8789191 Bhagwat Jul 2014 B2
8824448 Narayana Sep 2014 B1
8948046 Kang Feb 2015 B2
8953453 Kiao Feb 2015 B1
9003527 Bhagwat Apr 2015 B2
20010006508 Pankaj Jul 2001 A1
20020012320 Ogier Jan 2002 A1
20020021689 Robbins Feb 2002 A1
20020041566 Yang Apr 2002 A1
20020071422 Amicangioli Jun 2002 A1
20020091813 Lamberton Jul 2002 A1
20020114303 Crosbie Aug 2002 A1
20020116463 Hart Aug 2002 A1
20020128984 Mehta Sep 2002 A1
20030005100 Barnard Jan 2003 A1
20030039212 Lloyd Feb 2003 A1
20030084104 Salem May 2003 A1
20030087629 Juitt May 2003 A1
20030104814 Gwon Jun 2003 A1
20030129988 Lee Jul 2003 A1
20030145091 Peng Jul 2003 A1
20030179742 Ogier Sep 2003 A1
20030198207 Lee Oct 2003 A1
20040003285 Whelan Jan 2004 A1
20040013118 Borella Jan 2004 A1
20040022222 Clisham Feb 2004 A1
20040054774 Barber Mar 2004 A1
20040064467 Kola Apr 2004 A1
20040077341 Chandranmenon Apr 2004 A1
20040103282 Meier May 2004 A1
20040109466 Van Ackere Jun 2004 A1
20040162037 Shpak Aug 2004 A1
20040185876 Groenendaal Sep 2004 A1
20040192312 Li Sep 2004 A1
20040196977 Johnson Oct 2004 A1
20040236939 Watanabe Nov 2004 A1
20040255028 Chu Dec 2004 A1
20050053003 Cain Mar 2005 A1
20050074015 Chari Apr 2005 A1
20050085235 Park Apr 2005 A1
20050099983 Nakamura May 2005 A1
20050122946 Won Jun 2005 A1
20050154774 Giaffreda Jul 2005 A1
20050207417 Ogawa Sep 2005 A1
20050259682 Yosef Nov 2005 A1
20050262266 Wiberg Nov 2005 A1
20050265288 Liu Dec 2005 A1
20050266848 Kim Dec 2005 A1
20060010250 Eisl Jan 2006 A1
20060013179 Yamane Jan 2006 A1
20060026289 Lyndersay Feb 2006 A1
20060062250 Payne, III Mar 2006 A1
20060107050 Shih May 2006 A1
20060117018 Christiansen Jun 2006 A1
20060140123 Conner Jun 2006 A1
20060146748 Ng Jul 2006 A1
20060146846 Yarvis Jul 2006 A1
20060165015 Melick Jul 2006 A1
20060187949 Seshan Aug 2006 A1
20060221920 Gopalakrishnan Oct 2006 A1
20060233128 Sood Oct 2006 A1
20060234701 Wang Oct 2006 A1
20060245442 Srikrishna Nov 2006 A1
20060251256 Asokan Nov 2006 A1
20060268802 Faccin Nov 2006 A1
20060294246 Stieglitz Dec 2006 A1
20070004394 Chu Jan 2007 A1
20070010231 Du Jan 2007 A1
20070025274 Rahman Feb 2007 A1
20070025298 Jung Feb 2007 A1
20070030826 Zhang Feb 2007 A1
20070049323 Wang Mar 2007 A1
20070077937 Ramakrishnan Apr 2007 A1
20070078663 Grace Apr 2007 A1
20070082656 Stieglitz Apr 2007 A1
20070087756 Hoffberg Apr 2007 A1
20070091859 Sethi Apr 2007 A1
20070115847 Strutt May 2007 A1
20070116011 Lim May 2007 A1
20070121947 Sood May 2007 A1
20070133407 Choi Jun 2007 A1
20070140191 Kojima Jun 2007 A1
20070150720 Oh Jun 2007 A1
20070153697 Kwan Jul 2007 A1
20070153741 Blanchette Jul 2007 A1
20070156804 Mo Jul 2007 A1
20070160017 Meier Jul 2007 A1
20070171885 Bhagwat Jul 2007 A1
20070192862 Vermeulen Aug 2007 A1
20070195761 Tatar Aug 2007 A1
20070206552 Yaqub Sep 2007 A1
20070247303 Payton Oct 2007 A1
20070248014 Xie Oct 2007 A1
20070249324 Jou Oct 2007 A1
20070263532 Mirtorabi Nov 2007 A1
20070280481 Eastlake Dec 2007 A1
20070288997 Meier Dec 2007 A1
20080002642 Borkar Jan 2008 A1
20080022392 Karpati Jan 2008 A1
20080037552 Dos Remedios Feb 2008 A1
20080080369 Sumioka Apr 2008 A1
20080080377 Sasaki Apr 2008 A1
20080090575 Barak Apr 2008 A1
20080095094 Innami Apr 2008 A1
20080095163 Chen Apr 2008 A1
20080107027 Allan May 2008 A1
20080109879 Bhagwat May 2008 A1
20080130495 Dos Remedios Jun 2008 A1
20080146240 Trudeau Jun 2008 A1
20080151751 Ponnuswamy Jun 2008 A1
20080159128 Shaffer Jul 2008 A1
20080159135 Caram Jul 2008 A1
20080170527 Lundsgaard Jul 2008 A1
20080186932 Do Aug 2008 A1
20080194271 Bedekar Aug 2008 A1
20080207215 Chu Aug 2008 A1
20080209186 Boden Aug 2008 A1
20080212562 Bedekar Sep 2008 A1
20080219286 Ji Sep 2008 A1
20080225857 Lange Sep 2008 A1
20080229095 Kalimuthu Sep 2008 A1
20080240128 Elrod Oct 2008 A1
20080253370 Cremin Oct 2008 A1
20080273520 Kim Nov 2008 A1
20080279161 Stirbu Nov 2008 A1
20090019521 Vasudevan Jan 2009 A1
20090028052 Strater Jan 2009 A1
20090040989 da Costa Feb 2009 A1
20090043901 Mizikovsky Feb 2009 A1
20090082025 Song Mar 2009 A1
20090088152 Orlassino Apr 2009 A1
20090097436 Vasudevan Apr 2009 A1
20090111468 Burgess Apr 2009 A1
20090113018 Thomson Apr 2009 A1
20090141692 Kasslin Jun 2009 A1
20090144740 Gao Jun 2009 A1
20090168645 Tester Jul 2009 A1
20090172151 Davis Jul 2009 A1
20090197597 Kotecha Aug 2009 A1
20090207806 Makela Aug 2009 A1
20090239531 Andreasen Sep 2009 A1
20090240789 Dandabany Sep 2009 A1
20090247170 Balasubramanian Oct 2009 A1
20090303883 Kucharczyk Dec 2009 A1
20090310557 Shinozaki Dec 2009 A1
20100020753 Fulknier Jan 2010 A1
20100046368 Kaempfer Feb 2010 A1
20100057930 DeHaan Mar 2010 A1
20100061234 Pai Mar 2010 A1
20100067379 Zhao Mar 2010 A1
20100112540 Gross May 2010 A1
20100115278 Shen May 2010 A1
20100115576 Hale May 2010 A1
20100132040 Bhagwat May 2010 A1
20100195585 Horn Aug 2010 A1
20100208614 Harmatos Aug 2010 A1
20100228843 Ok Sep 2010 A1
20100240313 Kawai Sep 2010 A1
20100254316 Sendrowicz Oct 2010 A1
20100260091 Seok Oct 2010 A1
20100290397 Narayana Nov 2010 A1
20100304738 Lim Dec 2010 A1
20100311420 Reza Dec 2010 A1
20100322217 Jin Dec 2010 A1
20100325720 Etchegoyen Dec 2010 A1
20110004913 Nagarajan Jan 2011 A1
20110040867 Kalbag Feb 2011 A1
20110051677 Jetcheva Mar 2011 A1
20110055326 Michaelis Mar 2011 A1
20110055928 Brindza Mar 2011 A1
20110058524 Hart Mar 2011 A1
20110064065 Nakajima Mar 2011 A1
20110085464 Nordmark Apr 2011 A1
20110182225 Song Jul 2011 A1
20110185231 Balestrieri Jul 2011 A1
20110258641 Armstrong Oct 2011 A1
20110292897 Wu Dec 2011 A1
20120014386 Xiong Jan 2012 A1
20120290650 Montuno Nov 2012 A1
20130003729 Raman Jan 2013 A1
20130003739 Raman Jan 2013 A1
20130003747 Raman Jan 2013 A1
20130028158 Lee Jan 2013 A1
20130059570 Hara Mar 2013 A1
20130086403 Jenne Apr 2013 A1
20130103833 Ringland Apr 2013 A1
20130227306 Santos Aug 2013 A1
20130230020 Backes Sep 2013 A1
20130250811 Vasseur Sep 2013 A1
20140269327 Fulknier Sep 2014 A1
20140298467 Bhagwat Oct 2014 A1
20150120864 Unnimadhavan Apr 2015 A1
Foreign Referenced Citations (10)
Number Date Country
1642143 Jul 2005 CN
0940999 Sep 1999 EP
1732276 Dec 2006 EP
1771026 Apr 2007 EP
1490773 Jan 2013 EP
0059251 Oct 2000 WO
0179992 Oct 2001 WO
2004042971 May 2004 WO
2006129287 Dec 2006 WO
2009141016 Nov 2009 WO
Non-Patent Literature Citations (15)
Entry
Chirumamilla, Mohan K. et al., “Agent Based Intrustion Detection and Response System for Wireless LANs,” CSE Conference and Workshop Papers, Paper 64, Jan. 1, 2003.
Clausen, T., et al., “Optimized Link State Routing Protocol (OLSR),” Network Working Group, pp. 1-71, Oct. 2003.
Craiger, J. Philip, “802.11, 802.1x, and Wireless Security,” SANS Institute InfoSec Reading Room, Jun. 23, 2002.
Finlayson, Ross et al., “A Reverse Address Resolution Protocol,” Nework Working Group, Request for Comments: 903 (RFC 903), Jun. 1984.
He, Changhua et al., “Analysis of the 802.11i 4-Way Handshake,” Proceedings of the 3rd ACM Workshop on Wireless Security, pp. 43-50, Oct. 2004.
IEEE Computer Society, “IEEE Std 802.11i—Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications—Amendment 6: Medium Access Control (MAC) Security Enhancements,” Section H.4.1, pp. 165-166, Jul. 23, 2014.
Lee, Jae Woo et al, “z2z: Discovering Zeroconf Services Beyond Local Link,” 2007 IEEE Globecom Workshops, pp. 1-7, Nov. 26, 2007.
Perkins, C., et al., “Ad hoc On-Demand Distance Vector (AODV) Routing,” Network Working Group, pp. 1-35, Oct. 2003.
Wu, Haitao et al., “Layer 2.5 SoftMAC: End-System Based Media Streaming Support on Home Networks,” IEEE Global Telecommunications Conference (GLOBECOM '05), vol. 1, pp. 235-239, Nov. 2005.
European Patent Application No. 11823931.8, Search Report dated Aug. 29, 2016.
European Patent Application No. 12879114.2, Search Report dated Jan. 21, 2016.
International Application No. PCT/US2008/061674, International Search Report and Written Opinion dated Oct. 14, 2008.
International Application No. PCT/US2011/047591, International Search Report and Written Opinion dated Dec. 19, 2011.
International Application No. PCT/US2012/059093, International Search Report and Written Opinion dated Jan. 4, 2013.
Cisco Systems, Inc., “Wi-Fi Protected Access 2 (WPA 2) Configuration Example,” Document ID 67134, Jan. 21, 2008 [retrieved online at https://www.cisco.com/c/en/us/support/docs/wireless-mobility/wireless-lan-wlan/67134-wpa2-config.html on Dec. 4, 2018].
Related Publications (1)
Number Date Country
20180152934 A1 May 2018 US
Continuations (4)
Number Date Country
Parent 15243720 Aug 2016 US
Child 15865027 US
Parent 14250294 Apr 2014 US
Child 15243720 US
Parent 13938159 Jul 2013 US
Child 14250294 US
Parent 12356886 Jan 2009 US
Child 13938159 US