The invention relates generally to wireless networking and, more particularly, to voice communication within a wireless network.
The popularity of wireless networking is growing due to, among other things, the convenience and simplicity it provides to users. Broadband wireless local area networks (LANs) within buildings are now commonplace. Solutions for providing broadband wireless network coverage over extended coverage regions (e.g., wireless wide area networks (WANs)) are now in development. The IEEE 802.16 standard, for example, sets out an architecture that is designed to address the wireless broadband last mile problem, while also supporting nomadic and mobile users. It is desired that the IEEE 802.16 standard will eventually lead to the deployment of high speed wireless networks that provide data services over extended portions of urban areas and along public thoroughfares.
One of the services that will most likely occupy a significant portion of the available bandwidth in a broadband wireless WAN is voice services. That is, voice communication, like that now provided by the public switched telephone network or cellular wireless systems, may soon be available over these broadband wireless networks. Voice over IP (VoIP) is a protocol that supports the transmission of voice signals over digital data networks using packet-based communication. To provide voice services through high speed wireless WAN networks and other wireless networks, techniques need to be developed that will allow the available bandwidth to be used in an efficient manner, while still maintaining a quality voice connection.
In the following detailed description, reference is made to the accompanying drawings that show, by way of illustration, specific embodiments in which the invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention. It is to be understood that the various embodiments of the invention, although different, are not necessarily mutually exclusive. For example, a particular feature, structure, or characteristic described herein in connection with one embodiment may be implemented within other embodiments without departing from the spirit and scope of the invention. In addition, it is to be understood that the location or arrangement of individual elements within each disclosed embodiment may be modified without departing from the spirit and scope of the invention. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the present invention is defined only by the appended claims, appropriately interpreted, along with the full range of equivalents to which the claims are entitled. In the drawings, like numerals refer to the same or similar functionality throughout the several views.
The present invention relates to methods and structures that allow voice services to be provided within high speed wireless networks in an efficient manner. The invention provides unique strategies for performing voice packet header compression before a packet is transmitted through a wireless channel. Features of the invention may be used within wireless networks following the IEEE 802.16 standard as well as other high speed wireless networking standards. In at least one embodiment, the invention is capable of generating a fixed packet header size after compression, regardless of channel conditions. For this reason, the invention is particularly well suited for use in wireless networks where centralized traffic scheduling is performed (such as an IEEE 802.16 network). Because the length of the compressed header is constant, a scheduler in such a network will know how much bandwidth to allocate to each subscriber station without having to predict the length of a variable length header. The inventive techniques are capable of making efficient use of the available bandwidth within a wireless network and, therefore, can significantly increase the throughput achievable in these networks.
With reference to
During network operation, a first VoIP packet 28 is obtained by the first wireless device 12. In a scenario where the first wireless device 12 is a base station, the VoIP packet 28 may be received from a remote user location through, for example, a wired network (e.g., the Internet, a private network, etc.) or other communication connection. In a scenario where the first wireless device 12 is a subscriber station, the VoIP packet 28 may be received from a local voice codec processing voice signals of a corresponding user. Other sources are also possible. As shown, the VoIP packet 28 includes a voice payload portion that includes digital voice information, an RTP (real-time transfer protocol) header, a UDP (user datagram protocol) header, an IP (Internet protocol) header, and an L2 header. The VoIP packet 28 is first applied to the L2 decapsulator 16 which removes the L2 header from the packet. The resulting packet is then delivered to the flow classifier 18 which generates a connection ID (CID) value that uniquely identifies the communication connection associated with the VoIP packet 28. Classification rules are set up within the flow classifier 18 in a manner that generates a unique CID using information within the UDP header and the IP header of the VoIP packet 28. For example, classification rules may be set up so that the 4-tuple combination of [source IP address, destination IP address, source UDP port, and destination UDP port] is unique for the corresponding voice call at the subscriber station and the base station. The flow classifier 18 may perform a classification based on the 4-tuple of the incoming VoIP packet 28 to generate a unique CID value corresponding to the voice call. As will be described in greater detail, this CID may later be used to regenerate the corresponding 4-tuple.
The payload header suppressor 20 receives the VoIP packet 28 and the CID from the flow classifier 18 and proceeds to remove the RTP, UDP, and IP headers from the packet. The only information within the RTP header that is of any use within the second wireless device 14 is the time stamp and the sequence number of the VoIP packet 28. However, because the voice frames at the voice codec are generated at set intervals, if the sequence number of the packet is known, the time stamp may be easily calculated. Therefore, the signal transmitted to the second wireless device 14 can include only the sequence number and the second wireless device 14 will be able to recreate the time stamp. Alternatively, the signal transmitted to the second wireless device 14 may include only the time stamp, with the sequence number being recreated in the second wireless device 14 (although this is less efficient as the time stamp is generally longer (i.e., more bytes) than the sequence number). Before the payload header suppressor 20 removes the RTP header from the VoIP packet 28, it reads the sequence number from the header. The payload header suppressor 20 may subsequently append the sequence number to the VoIP packet after the RTP, UDP, and IP headers have been removed. A payload header suppression function is available as part of the IEEE 802.16 standard and may be used to perform the above described functions. It will be necessary, however, to appropriately configure the function within an IEEE 802.16 device to achieve the desired header suppression.
The modified VoIP packet is next delivered to the MAC encapsulator 22 which generates and appends an IEEE 802.16 MAC header to the packet (or other form of MAC header when other wireless standards are being used). The MAC header will include the CID generated previously by the flow classifier 18. The MAC header may also include cyclic redundancy check (CRC) information. In at least one embodiment, the MAC header that is generated includes a 6 byte CID and a 4 byte CRC for a total of 10 bytes. Other sizes may alternatively be used.
The modified VoIP packet including the original voice payload, the sequence number, and the MAC header is next delivered to the RF transmitter 24 to be transmitted into the wireless channel. The RF transmitter 24 will typically be configured in accordance with one or more wireless networking standards. As described previously, in at least one embodiment, the RF transmitter 24 is configured in accordance with the IEEE 802.16 wireless networking standard. The modified VoIP packet is used to generate a transmit signal or signals by the RF transmitter 24. The transmit signal may then be transmitted into the wireless channel via antenna 26.
With reference to
In addition to reconstructing the UDP and IP headers, the header reconstructor 34 may also reconstruct the RTP header of the original VoIP packet. To do this, the header reconstructor 34 first uses the sequence number within the received packet to calculate the time stamp associated with the packet. This time stamp, along with the sequence number, may then be entered into corresponding fields of the reconstructed RTP header. Any fields of the RTP header for which information is not available may be filled with dummy values during the reconstruction. The reconstructed headers may be appended to the voice payload of the received packet to form a reconstructed VoIP packet. The VoIP packet may then be delivered to the VoIP stack 36 which process the RTP, UDP, and IP headers in a known manner. If the second wireless device 14 is a subscriber station, the VoIP stack 36 will typically be local. If, on the other hand, the second wireless device 14 is a base station, the VoIP stack 36 will most likely be located at the destination node. In such a case, the second wireless device 14 may include a transmitter for transmitting the reconstructed VoIP packet to the destination node through an intervening network (e.g., the Internet, etc.). The VoIP stack 36 will output the voice payload along with the corresponding time stamp to the voice codec 38. In this manner, a stream of voice payloads with corresponding time stamps are delivered to the voice codec 38. The voice codec 38 may then covert this stream of digital voice information into an audible voice signal. The audible voice signal may then be delivered to a loudspeaker (not shown) so that it may be heard by the corresponding user.
In at least one implementation, a VoIP packet having a voice payload of 20 bytes is generated every 20 milliseconds (msec) by a voice codec associated with the first wireless device 12. The first wireless device 12 then processes each packet to generate an RF signal that includes the 20 byte voice payload, a 10 byte MAC header, and a 2 byte sequence number. Thus, a significant amount of header compression has been achieved. In other implementations, more or less compression may be achieved using the inventive techniques. The invention is capable of achieving a fixed header size after compression. The compression achieved by removing the UDP header and the IP header from the packet and, instead, using the CID to reconstruct these headers in the receiving unit may be implemented without using the sequence number technique. Likewise, the compression achieved by removing the RTP header and, instead, including only the sequence number within the packet transmitted into the wireless channel may be implemented without the CID technique.
A UDP header and an IP header may then be reconstructed for the packet using the CID read from the MAC header (block 86). Any fields in the UDP header and the IP header for which no information is recoverable from the CID may be filled in with default (dummy) data values (e.g., ones, zeros, etc.). In at least one embodiment of the invention, a source IP address, a destination IP address, a source UDP port, and a destination UDP port are identified that correspond to the CID within the MAC header of the received packet. These values are then entered into corresponding fields of the UDP header and the IP header. The remaining fields may be filled with dummy values. In at least one embodiment, a lookup table approach is used to identify the information associated with the CID.
A time stamp may next be calculated for the packet using the sequence number within the received packet (block 88). In one approach, the time stamp is calculated by simply multiplying the RTP sequence number by the corresponding codec interval value. The codec interval is typically known a priori based on the codec type and the sampling interval. In at least one embodiment, a codec interval of 20 msec is used (although a wide range of other values may alternatively be used). An RTP header may next be reconstructed for the packet using the time stamp and the sequence number (block 90). Again, dummy values may be used to fill in any missing information in the reconstructed RTP header. The reconstructed RTP header, the reconstructed UDP header, and the reconstructed IP header may next be appended to the voice payload to form a reconstructed VoIP packet (block 92). The reconstructed VoIP packet may then be processed in the VoIP stack (block 94). The VoIP stack may then deliver the voice payload from the packet and the time stamp to a voice codec for conversion to an audible voice signal (block 96). The above process may be repeated for each voice packet received from the wireless channel.
The techniques and structures of the present invention may be implemented in any of a variety of different forms. For example, features of the invention may be embodied within cellular telephones and other handheld wireless communicators; personal digital assistants (PDAs) having wireless capability; laptop, palmtop, desktop, and tablet computers having wireless capability; pagers; satellite communicators; cameras having wireless capability; audio/video devices having wireless capability; network interface cards (NICs) and other network interface structures; integrated circuits; as instructions and/or data structures stored on machine readable media; and/or in other formats. Examples of different types of machine readable media that may be used include floppy diskettes, hard disks, optical disks, compact disc read only memories (CD-ROMs), digital video disks (DVDs), Blu-Ray disks, magneto-optical disks, read only memories (ROMs), random access memories (RAMs), erasable programmable ROMs (EPROMs), electrically erasable programmable ROMs (EEPROMs), magnetic or optical cards, flash memory, and/or other types of media suitable for storing electronic instructions or data. In at least one form, the invention is embodied as a set of instructions that are modulated onto a carrier wave for transmission over a transmission medium.
It should be appreciated that the individual blocks illustrated in the block diagrams herein may be functional in nature and do not necessarily correspond to discrete hardware elements. For example, in at least one embodiment, two or more of the blocks in a block diagram are implemented in software within a single digital processing device. The digital processing device may include, for example, a general purpose microprocessor, a digital signal processor (DSP), a reduced instruction set computer (RISC), a complex instruction set computer (CISC), a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), and/or others, including combinations of the above. Hardware, software, firmware, and hybrid implementations may be used.
In the foregoing detailed description, various features of the invention are grouped together in one or more individual embodiments for the purpose of streamlining the disclosure. This method of disclosure is not to be interpreted as reflecting an intention that the claimed invention requires more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive aspects may lie in less than all features of each disclosed embodiment.
Although the present invention has been described in conjunction with certain embodiments, it is to be understood that modifications and variations may be resorted to without departing from the spirit and scope of the invention as those skilled in the art readily understand. Such modifications and variations are considered to be within the purview and scope of the invention and the appended claims.