This invention relates to wireless local area networks (“LANs”), and more particularly, to wireless local area networks that carry a mixed traffic of voice and data.
This invention relates to wireless local area networks (“LANs”), and more particularly, to wireless local area networks that carry a mixed traffic of voice and data.
Wireless LANs are typically used in applications that involve mobile computers, in applications where wireline installation is not feasible, etc. Such applications include warehouse inventory tracking, portable point of sale, shipping and receiving, package tracking, etc.
The IEEE 802.11 communications standard has been used by some vendors to provide interoperability between wireless LAN equipment. The 802.11 standard specifies a protocol in which information is transmitted in packets. The standard specifies features such as packet size, packet content information, data rates, roaming, etc. The primary type of information that was initially transmitted in systems that were designed to the 802.11 standard as published was information such as barcode information, point of sale information, package tracking information, etc. In such known systems, several remote terminals may be in communications with a single access point to receive and transmit information such as bar code information, point of sale information, package tracking information, etc. The standard as published specifies a communications medium that is shared by transmitters (e.g., an access point and one or more remote terminals).
The standard further specifies that packet size may vary. A remote terminal that has a relatively large packet to transmit may need to occupy the shared communications medium for a longer period than a remote terminal that has a relatively short packet to transmit. Until recently, delays in communicating packets have typically been non-critical to providing communications at least partly because of the type of information that has been transmitted in such systems. Information such as bar code information, package tracking information, etc, typically remains valid until a next incremental event occurs (e.g., until bar code information has changed, until a package is tracked to a next point in route, etc.). In addition, such information does not generally affect system communications if delivered with some delay.
In some known systems, packets are simply transmitted in the order in which they have been received for transmission. In these known systems, a packet that is transmitted without being properly acknowledged by its intended recipient is repeated for a predetermined number of times while transmission of other remaining packets is delayed. After retransmitting a packet for a predetermined number of times without receiving a proper acknowledgment, the transmitter may proceed to transmit the remaining packets.
The demand for providing mixed voice and data traffic in wireless LAN systems has been increasing over recent years. Currently, the 802.11 standard does not provide specifications for providing voice communications. Information for providing voice communications is generally much more time critical than other information such as bar code information, package tracking information, etc. Communications for providing voice communications may require a greater volume of information to be carried by the system than when the system is providing communications for information that has typically been carried by wireless LANs. Moreover, the quality of voice communications is dependent on the rate in which information is exchanged. In data communications such as in communications for package tracking, the rate in which information is exchanged is non-critical because the quality of such communications is typically not a factor in evaluating the effectiveness of such communications.
Some known wireless LANs carry voice signals as part of the communications traffic but these systems are deficient in effectively meeting such complex communications demands as discussed above. Moreover, there may be a need to meet such demands with existing systems without substantially increasing system complexity, structure, design, cost, etc.
In accordance with the principles of the present invention, a mixed traffic voice and data communications transmitter and network may be provided. The communications network may be a wireless local area network that uses packet based communications. The communications network may include at least one access point that receives voice and other communications for transmission to terminals that are associated with the access point.
To manage the transmission of packets, a transmitter may prioritize packets. Prioritization may be based on when each packet has been received, whether the packets contain voice communications, whether the packets contain network-management communications, whether the packets contain data communications (e.g., communications other than for voice or network management), whether the packet is directed to a voice-capable unit, whether a packet was transmitted using a particular communications protocol, etc.
A transmitter, such as an access point, may prioritize packets for transmission based on to which receiver terminal the packets have been addressed. Packets may be separated into queues with each queue storing the packets that have been received for transmission to a particular terminal. Packets may be further prioritized within each queue.
Prioritized packets may be transmitted in a sequence that allows a fair opportunity to each terminal to receive the same number of packets. For example, packets may be transmitted in rounds. In each round, the highest priority packet for each terminal may be transmitted (e.g., in a one packet per round per terminal fashion). In each round, an equal number of packets may be transmitted to each terminal (e.g., one per packet).
For each transmitted packet, an acknowledgment (e.g., an acknowledge packet) from a receiving terminal may be required before the transmitter discards the transmitted packet or moves onto transmitting the next packet for that terminal. A transmitter may repeatedly transmit a packet until it is acknowledged or until a retry threshold (e.g., a total number of times that a packet is to be transmitted) has been reached. The retry threshold may be determined based on whether the packet that is being retransmitted is for voice communications. The retry threshold for voice communications may be lower than for other communications. In communications networks that use frequency hopping spread spectrum communications, a packet may be retransmitted when the number of times the packet has been transmitted reaches an initial retry threshold. When the initial retry threshold is reached without an acknowledgment being received, retransmission may be discontinued until after a frequency hop in modulation. Thereafter, retransmissions may resume until an acknowledgment is received or until a total retry threshold has been reached. The initial and total retry thresholds may vary based on whether the packet that is being retransmitted is for voice communications.
New packets that are received and prioritized may have a higher priority than unacknowledged packets. Retransmission of an unacknowledged packet may be preempted when a packet with a priority that is higher than the packet being retransmitted is received. A transmitter may transmit a newly received packet for a particular terminal over other earlier received packets for that same terminal when the newly received packet is determined to have a higher priority than the other packets. An unacknowledged packet may then be retransmitted in a later round.
Further features of the invention, its nature and various advantages will be more apparent from the following detailed description, taken in conjunction with the accompanying drawings in which like reference characters refer to like parts throughout, and in which:
a is a flow chart of illustrative steps involved in managing packet traffic for use in a transmitter in accordance with the present invention;
b is a diagram of illustrative queues that may be implemented based on the illustrative steps of
a is a flow chart of illustrative steps involved in transmitting packets in accordance with the present invention;
b is a diagram of illustrative queues that may be implemented based on the illustrative steps of
a is a flow chart of illustrative steps involved in managing packet traffic based on which packets are for voice in accordance with the present invention;
b is a diagram of illustrative queues that may be implemented based on the illustrative steps of
a is a flow chart of illustrative steps involved in managing packet traffic based on which packets are for network management in accordance with the present invention;
b is a diagram of illustrative queues that may be implemented based on the illustrative steps of
a is a flow chart of illustrative steps involved in managing packet traffic with multiple levels of priority in accordance with the present invention;
b is a diagram of illustrative queues that may be implemented based on the illustrative steps of
a is a flow chart of illustrative steps that are involved in managing packet traffic based on which terminals are voice capable in accordance with the present invention;
b is a diagram of illustrative queues that may be implemented based on the illustrative steps of
a is a flow chart of illustrative steps involved in managing traffic based on determining which terminals are voice capable in accordance with the present invention;
b is a diagram of illustrative queues that may be implemented based on the illustrative steps of
a is a flow chart of illustrative steps involved in using variable contention windows in accordance with the present invention;
b is a diagram of illustrative durations for contention windows in accordance with the present invention;
a is a flow chart of illustrative steps involved in transmitting packets in accordance with the present invention;
b is a flow chart of illustrative packet-based communications that are based on the illustrative steps of
a is a flow chart of illustrative steps involved in packet-based communications using frequency hopping in accordance with the present invention;
b is a flow chart of illustrative packet-based communications that are based on the illustrative steps of
a is a flow chart of illustrative steps involved in incrementally transmitting packets in accordance with the present invention; and
b is a diagram of illustrative queues that may be implemented based on the illustrative steps of
The present invention improves mixed traffic voice communications for wireless local area networks (“LANs”) by substantially meeting the communications demands that have been mentioned above. Packets that are to be transmitted in a wireless LAN over a half-duplex communication medium are transmitted in order of priority. Priority may be determined based on at least whether a particular packet is for providing voice communications. One technique for determining whether a packet is for voice communications is to determine whether the intended recipient of the packet has been identified to be voice-capable and further determining whether the packet was received for transmission using a particular communications protocol (e.g., a protocol typically used to send voice communications). Other techniques for prioritizing packets for transmission and for determining which packets are for voice communications are discussed below.
Giving high priority to voice communications may block other non-voice communications packets from being transmitted. Blocking may be substantially prevented by providing for fair distribution of packets. Packets may be distributed fairly by transmitting packets in rounds where in each round one packet (e.g., the highest priority packet) is transmitted for every receiver (e.g., a remote terminal). In the case of a packet that is transmitted without being acknowledged by its intended recipient, the packet may be retransmitted in the next round of transmissions except for when another packet with a higher priority than the unacknowledged packet has been recently received for transmission to the same terminal. The recently received packet with a higher priority will be transmitted before the unacknowledged packet is transmitted again. The number of times a packet is retransmitted may be determined based on whether the packet is for providing voice communications. Priority may also be given to voice communications by using techniques that are discussed below that give greater access to the communications medium to transmitters that are about to transmit packets that are for voice communications.
With reference to
A network-operating-system may be implemented on each terminal 26. In each terminal 26, the interface card may be coupled to the network-operating-system application using the software driver. The interface card for each remote terminal 26 may be a network-communications interface. The network interface card for each terminal 26 is typically implemented to use a carrier sense access protocol and to modulate communications signals with a spreading sequence.
Access point 24 may be an interface for communicating between wireless network 20 and a wireline network. Access point 24 may be configured to provide a communications gateway between terminals 26 that are in cell 22 and between a wireline network and the terminals 26. Access point 24 may include a resource(s) (e.g., software, hardware, or a combination thereof) that is configured to connect the access point to a wireline network (e.g., on ethernet network, a token ring network, etc.). Access point 24 is typically configured to convert signals between wireline and wireless communications mediums. The conversion may allow the access point to pass communication information between the wireline network and wireless remote terminals 26.
Access points are typically provided with sufficient processing, hardware, software, etc. to operate in compliance with the IEEE 802.11 (e.g., to provide 802.11 roaming, standard 802.11 data rates, etc.) and to provide additional features that are developed by a vendor. Access point 24 may be implemented using a personal computer (e.g., a Power PC, an IBM compatible computer), server, workstation, etc., having an appropriate operating system, wireless-network-interface resources, wireline-network-interface resources, network-operating-system applications, etc.
Access point 24 and remote terminals 26 may be configured to communicate using spread spectrum modulation techniques (e.g., direct sequence spread spectrum modulation, frequency hopping spread spectrum modulation, etc.).
The IEEE 802.11 standard specifies the format and content of communications packets. Communications packets that may also be referred to as frames may be of variable size with the size of each packet being identified in packet header information. In some embodiments, the body of each packet may vary from 0 to 2312 octets.
In operation, initially when one of the terminals 26 is powered, that terminal 26 may seek to join cell 22 by associating with access point 24. Remote terminal 26 may become associated with access point 24 after a preliminary exchange of communications between access point 24 and terminal 26. A plurality of terminals 26 may be associated with each access point 24. Each terminal 26 may have different communications capabilities and requirements. Access point 24 may manage the communications traffic between terminals 26 and the wireline network. Access point 24 may manage the communications traffic by controlling when packets are transmitted to each remote terminal 26 in cell 22. The communications traffic in cell 22 may include data packets (e.g., signals that carry packets to provide data communications), voice packets (e.g., signals that carry packets to provide voice communications), real-time packets (e.g., signals that carry packets to provide real-time communications such as multimedia or voice communications), management packets (e.g., signals that carry packets to provide network management communications), etc.
The wireline network that is coupled to access point 24 may include equipment 23 that is configured to implement the wireline network. The wireline network may be coupled to an external network (e.g., PBX, PSTN, Internet, etc.)
Access point 24 may manage communications traffic by prioritizing packets that are to be transmitted to the remote terminals 26 that are associated with access point 24. Illustrative steps involved in managing communications traffic for use in an access point such as access point 24 of
For clarity, the management of packet communications traffic is primarily discussed in the context of queues. Techniques other than the use of queues may also be used for managing packet communications traffic. Illustrative queues 44, 46, 48, 50 and 52 of
Each packet illustrated in queue 44 has a terminal address and a packet number. The packet number is used here for illustrative purposes to show the order in which packets were received by the access point. In queues 46, 48, 50 and 52, packets with lower packet numbers are higher in transmission priority because they were received first.
Packets may be transmitted based on priority. Illustrative steps involved in transmitting packets are shown in
Illustrative queues 58, 60, 62, 64 and 66 of
Queue 66 includes the packets from queues 58, 60, 62 and 64 in the sequence in which the packets are to be transmitted. The sequence may be divided into rounds with each round including one packet per terminal. As shown, the first and second rounds each have four packets, one for each terminal that is associated with the access point. The third round includes three packets because there are no more packets that are pending to be transmitted to T3 in queue 62 after the first two rounds were successfully transmitted.
An access point may select and transmit packets for each terminal in each round in the order in which the packets for that terminal were received by the access point. With continued reference to
The illustrative packets in
The access point may prioritize packets based on which packets are for voice communications. Illustrative steps involved in prioritizing packets based on which packets are for voice communication are shown in
Packets that are for voice communications may be packets that carry digitized voice communications. As discussed above, voice communications typically have stricter transmission requirements than other communications such as inventory data, point of sale information, etc. The access point may determine which packet is for voice based on a message flag in the packet, based on the packet being addressed to a voice-capable terminal, based on the messaging protocol (discussed further below), etc. At step 70, packets may be prioritized based on determining which packets are for voice. Packets for voice communications may be prioritized higher than other packets.
Illustrative queues 72, 74 and 76 of
An access point may prioritize packets based on network management requirements. Illustrative steps involved in prioritizing packets based on network management requirements are shown in
Illustrative queues 82, 84 and 86 of
In a wireless local area network, packet traffic may be managed using different levels of priority. Illustrative steps involved in prioritizing packets with different levels of priority are shown in
Illustrative queues 96, 98, 100 and 102 of
Some wireless LANs use the seven-layer Open System Interconnect (OSI) reference model developed by the International Standard Organization (ISO). OSI specifies a complete set of network functions, grouped into seven layers. The seven layers are the physical layer (layer 1), data link layer (layer 2), network layer (layer 3), transport layer (layer 4), session layer (layer 5), presentation layer (layer 6) and application layer (layer 7). The network functions are structured so that each OSI layer is supported by the layers below it.
The transport layer establishes and maintains communications between applications on different computers. Communications protocols such as Transmission Control Protocol (TCP) and User Datagram Protocol (UDP) operate at the transport layer. TCP provides full-duplex connection-oriented services (i.e., maintains a virtual communications connection between end users) while UDP provides connection-less-oriented services (i.e., provides communications between end users without maintaining an open connection). The communications protocol that is typically used for voice communications in the network layer is UDP.
Illustrative steps involved in transmitting packets for use in a wireless local area network (e.g., wireless local area network 20 of
At 108, the access point may prioritize packets. Prioritization may be based on a plurality of factors. Prioritization may be based on to which terminal a packet is directed, based on the communications protocol of the packet, based on whether the packet is for network management, and further based on time of reception. At step 110, packets may be transmitted. Packets may be transmitted based on how the packets were prioritized and based on fairness (e.g., maintains fairness by maintaining an equal distribution of packets among the remote terminals).
Illustrative queues 112, 114, 116, 118 and 120 of
Packets that are to be transmitted to manage the wireless network may have been prioritized highest. Queue 112 includes two management packets, packet no. 1 which is directed to terminal T1 (e.g., addressed to terminal T1) and packet no. 9 which is directed to terminal T3. Queue 114 for terminal T1 is implemented to have packet no. 1 have the highest priority in queue 114 and queue 118 for terminal T3 is implemented to have packet no. 9 have the highest priority in queue 118.
Packets that are to be transmitted to provide voice communications may have been prioritized second highest. The communications protocols of the OSI transport layer handle packets without determining whether the packets are for voice communications. Some networks that are implemented using the OSI transport layer use UDP for providing voice communications. An access point may determine which packets are for voice based on the communications protocol of the packets (e.g., UDP) and based on whether the packet is directed to a voice-capable terminal. Communications protocols operating in the transport layer (i.e., TCP and UDP) use Internet Protocol (IP) services in the network layer to deliver messages between source (e.g., an external network) and destination (e.g., wireless LAN 20 of
Packets may be received by an access point from a half-duplex communications medium (e.g., a radio frequency channel) that is shared between the access point and remote terminals on which remote terminals communicate with the access point and received from another communications medium on which a wireline network communicates with the access point. Packets may have been transmitted to the access point using Internet Protocol (e.g., using IP packet formats) for Network Layer communications and using UDP, TCP, etc. (e.g., using UDP packet formats) for Transport Layer communications. Accordingly, packets that are received by the access point from the remote terminals may already be in conformance with the communications requirements for IP and UDP, TCP, etc. When necessary, the access point may configure packets to conform to the 802.11 standard (e.g., when two remote terminals in the wireless LAN are communicating).
The access point may read the protocol field of received IP packets to determine the Transport Layer communications protocol of received packet. Packets which are to be handled using UDP and which are directed to a voice-capable terminal may be determined by the access point to contain voice communications. The access point may have determined earlier which terminals are voice-capable through an earlier exchange with the terminals. The earlier exchange may occur when a remote terminal initially seeks to establish communications with (e.g., be associated with) an access point. If desired, the access point may have been programmed with information related to the capabilities of each terminal.
With reference again to
Queue 120 includes the packets in the order in which they are to be transmitted (i.e., the transmission sequence). Packets may be transmitted in one-packet-per-terminal rounds with the highest priority packet for each terminal being transmitted in each round. Such transmission techniques allow for the quick delivery of voice communications without substantially increasing the complexity, cost, structure, or design of network equipment.
Queues 114, 116 and 118 may have been configured to be of equal size. Queues of equal size may prevent the situation in which a large number of packets for one terminal occupies most of the storage space of the access point. Such a situation may block new packets that are received by the access point to be stored due to insufficient storage space. The size of such equal sized queues may be determined based on system limitations. For illustrative purposes, queues 114, 116 and 118 are each shown to be capable of storing only four packets.
Illustrative steps involved in prioritizing packets based on a terminal having a voice-capable status are shown in
Queue 128 and packet flow chart 130 of
The packets in queue 128 may have been received after the initial exchange between the access point and terminal T. The packets in queue 128 were prioritized based on the voice-capable status of terminal T (e.g., UDP packets are prioritized higher than TCP packets). Within the access point, an application may assign a priority to each packet in queue 128. The packets are then transmitted based on the assigned priorities and an acknowledgment packet is transmitted by terminal T and for each packet that is properly received by terminal T. Received packets in queue 128 are prioritized and transmitted in the following sequence: packet no. 4 (MNGT), packet no. 1 (UDP), packet no. 3 (UDP), and packet no. 2 (TCP).
In wireless LANs that use carrier-sense multiple access with collision avoidance (CSMA/CA) greater access to the communications bandwidth may be provided for transmitting voice communications than for transmitting other communications. Illustrative steps involved in transmitting voice packets in a CSMA/CA system are shown in
Transmitted packets may be acknowledged by each recipient by the recipient transmitting an acknowledgment packet in response to the intended recipient receiving the transmitted packet. The transmitter may then discard the transmitted packet that has been acknowledged and/or commence transmitting packets which have not yet been transmitted. Packets that have not yet been acknowledged may be retransmitted (e.g., the packets remain in queue for transmission). Illustrative steps involved in retransmitting packets for use in a wireless LAN (e.g., wireless LAN 20 of
Illustrative packet transmission rounds 148, 150, 152 and 162 of
Illustrative steps for retransmitting unacknowledged packets for use in a wireless LAN (e.g., wireless LAN 20 of
Illustrative transmission rounds 176, 178, 180 and 182 of
Retransmission of an unacknowledged packet may be preempted by the reception of a packet that has a higher priority than the unacknowledged packet. Illustrative steps involved in transmitting a highest priority packet for each terminal in a wireless local area network (e.g., wireless LAN of
Illustrative queues 206a, 206b, 208a, 208b, and 210 of
Thus it is seen that a wireless LAN system and methods are provided that effectively carry mixed traffic communications. Greater priority is given to the transmission of packets for voice communications than for data communications while preventing transmission of data communications from being substantially blocked. Moreover, the system and methods, while meeting the complex demands of a mixed communications traffic environment, may still be implemented without substantial increases in structure, complexity, cost, processing delay, etc. over known wireless LAN systems and methods.
The foregoing is merely illustrative of the principles of this invention and various modifications can be made by those skilled in the art without departing from the scope and spirit of the invention.
This application is a Continuation of U.S. patent application Ser. No. 10/033,861 filed on Dec. 27, 2001 “Voice and Data Wireless Communications Network and Method” which is a Continuation of U.S. patent application Ser. No. 09/627,092 filed Jul. 27, 2000 now U.S. Pat. No. 6,404,772 issued Jun. 11, 2002 “Voice and Data Wireless Communications Network and Method”. The entire disclosures of this prior applications, are considered as being part of the disclosure of the accompanying application and are hereby expressly incorporated by reference herein.
Number | Name | Date | Kind |
---|---|---|---|
4168400 | de Couasnon et al. | Sep 1979 | A |
4500987 | Hasegawa | Feb 1985 | A |
4503533 | Tobagi et al. | Mar 1985 | A |
4516239 | Maxemchuk | May 1985 | A |
4630264 | Wah | Dec 1986 | A |
5029183 | Tymes | Jul 1991 | A |
5103461 | Tymes | Apr 1992 | A |
5115432 | Haas | May 1992 | A |
5142550 | Tymes | Aug 1992 | A |
5157687 | Tymes | Oct 1992 | A |
5231633 | Hluchyj et al. | Jul 1993 | A |
5280498 | Tymes et al. | Jan 1994 | A |
5329531 | Diepstraten et al. | Jul 1994 | A |
5343473 | Cidon et al. | Aug 1994 | A |
5418812 | Reyes et al. | May 1995 | A |
5479441 | Tymes et al. | Dec 1995 | A |
5517495 | Lund et al. | May 1996 | A |
5528621 | Heiman et al. | Jun 1996 | A |
5594738 | Crsiler et al. | Jan 1997 | A |
5668803 | Tymes et al. | Sep 1997 | A |
5734867 | Clanton et al. | Mar 1998 | A |
5812589 | Sealander et al. | Sep 1998 | A |
5815811 | Pinard et al. | Sep 1998 | A |
5841778 | Shaffer et al. | Nov 1998 | A |
5844900 | Hong et al. | Dec 1998 | A |
5870388 | Yung et al. | Feb 1999 | A |
5872777 | Brailean et al. | Feb 1999 | A |
5875179 | Tikalsky | Feb 1999 | A |
5933607 | Tate et al. | Aug 1999 | A |
5982779 | Krishnakumar et al. | Nov 1999 | A |
6011784 | Brown et al. | Jan 2000 | A |
6061559 | Eriksson et al. | May 2000 | A |
6078568 | Wright et al. | Jun 2000 | A |
6088591 | Trompower et al. | Jul 2000 | A |
6188698 | Galand et al. | Feb 2001 | B1 |
6240083 | Wright et al. | May 2001 | B1 |
6256334 | Adachi | Jul 2001 | B1 |
6285662 | Watanabe et al. | Sep 2001 | B1 |
6330231 | Bi | Dec 2001 | B1 |
6404772 | Beach et al. | Jun 2002 | B1 |
6438135 | Tzeng | Aug 2002 | B1 |
6594240 | Chuah et al. | Jul 2003 | B1 |
6678280 | Kim et al. | Jan 2004 | B1 |
6680922 | Jorgensen | Jan 2004 | B1 |
6721331 | Agrawal et al. | Apr 2004 | B1 |
6751459 | Lee et al. | Jun 2004 | B1 |
6862622 | Jorgensen | Mar 2005 | B2 |
7359971 | Jorgensen | Apr 2008 | B2 |
20020054574 | Beach et al. | May 2002 | A1 |
20020089989 | Christensen et al. | Jul 2002 | A1 |
20020101826 | Giacopelli et al. | Aug 2002 | A1 |
20050058147 | Regnier et al. | Mar 2005 | A1 |
20050281235 | Beach et al. | Dec 2005 | A1 |
20060002378 | Beach et al. | Jan 2006 | A1 |
20070008916 | Haugli et al. | Jan 2007 | A1 |
20070038751 | Jorgensen | Feb 2007 | A1 |
20090046735 | Regnier et al. | Feb 2009 | A1 |
Number | Date | Country |
---|---|---|
9911003 | Mar 1999 | WO |
9925147 | May 1999 | WO |
9963712 | Dec 1999 | WO |
0030307 | May 2000 | WO |
0041542 | Jul 2000 | WO |
0105098 | Jan 2001 | WO |
Number | Date | Country | |
---|---|---|---|
20050281252 A1 | Dec 2005 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 10033861 | Dec 2001 | US |
Child | 11192574 | US | |
Parent | 09627092 | Jul 2000 | US |
Child | 10033861 | US |