1. Field
The present invention relates generally to mobile phone technology, and more specifically to managing negotiations of quality of service (QoS) parameters with base stations.
2. Background
The demand for quality of service (QoS) standards for Internet applications and services is currently increasing. QoS standards ensure a defined level of performance (e.g., a defined amount of bandwidth, delay, etc.) so a particular Internet application can function properly or at a reasonable level of quality. In packet-switched networks, such as the Internet, QoS standards give certain assurances about packet handling and performance over the network, such as the amount of delay and jitter (out-of-order delivery) of packets being routed through the network.
Some Internet applications and services (referred to as QoS-based applications and services) require QoS assurances to function properly or at an acceptable level of quality. Such QoS-based applications and services include, but are not limited to, realtime voice and video calls over the Internet (VoIP or IP telephony), streaming multimedia, dedicated link emulation, instant messengers, chat rooms, Global Positioning Systems, emergency calls, online gaming, etc. For example, VoIP may require a particular amount of bandwidth and strict limits on delay and jitter to ensure that voice or video communications can occur properly.
The Internet does not have a standard QoS mechanism built into its structure to provide QoS support. As such, to provide QoS assurances for QoS-based applications, data packets that travel through routers in the Internet (of any other network) are typically given priority over data packets from non-QoS-based applications. There are several mechanisms well known in the art that identify data packets from QoS-based applications and make determinations as to which packets have priority to provide QoS assurances.
Recently, Internet applications and services are being provided using mobile phone technology (e.g., third generation (3G) technology) that have expanded in ability to transfer both voice data and non-voice data. In a cellular mobile phone system that is Internet capable, hardware and software are included at base stations (that are connected to the Internet) and mobile terminals (e.g., cellular phones) to provide Internet access and service. As such, through the base station, a mobile terminal can access the Internet and run Internet-based applications that execute on the mobile terminal.
It is desirable to develop technology that enables QOS-based applications to operate in conjunction with mobile phone technology.
In some aspects, during an initial sending and receiving of QoS parameters between a QoS-based application and a data stack controller of a mobile terminal, the QoS parameters are stored to a data stack of the mobile terminal. The QoS parameters are then used in an initial negotiation between the data stack controller and a base station. Subsequent re-negotiations (after the initial negotiation) of QoS parameters between the data stack controller and other base stations do not require any subsequent re-sending or re-receiving (after the initial sending and receiving) of QoS parameters between the data stack controller and the QoS-based application. Any subsequent re-negotiation of parameters between the data stack controller and a base station is implemented by retrieving the requested parameters from the data stack.
In some aspects, after the initial sending and receiving of QoS parameters between the QoS-based application and the data stack controller, the QoS-based application is “kept blind” of any later re-negotiations between the data stack controller and base stations and continues its operation without any disruptions due to these re-negotiations. This is true even during re-negotiations at handoffs between QoS and non-QoS aware base stations as the mobile terminal moves between different cell regions. During these handoffs, the QoS-based application continues operating without having to re-send parameters to the data stack controller and simply receives QoS support during operation or receives a “best effort” indicator (and thus operates under “best effort” conditions).
In the following description, numerous details are set forth for purpose of explanation. However, one of ordinary skill in the art will realize that the invention may be practiced without the use of these specific details. In other instances, well-known structures and devices are shown in block diagram form in order not to obscure the description of the invention with unnecessary detail. The word “exemplary” is used herein to mean “serving as an example, instance, or illustration.” Any embodiment described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other embodiments.
Some mobile terminal applications are QoS-based applications (e.g., VoIP, streaming multimedia, etc.) that require, not only QoS support from the Internet, but also QoS support from the base station with which the mobile terminal communicates. However, not all base stations provide QoS support/assurances. Typically, QoS support/assurances depend on the type of mobile communications technology implemented by the base station. Base stations that provide QoS support/assurances are referred to as QoS aware, whereas base stations that do not provide QoS support/assurances are referred to as non-QoS aware base stations. QoS aware base stations negotiate QoS parameters with mobile terminals and abide to the agreed QoS parameters once negotiated. QoS aware base stations are also compatible with protocols that support QoS.
As the mobile terminal moves from one cell region to another, handoffs are made from one base station to another. If the mobile terminal is currently running a QoS-based application, however, handoffs from a QoS aware to a non-QoS aware base station, or vice versa, can be problematic. As such there is a need for a method of performing seamless handoffs between QoS aware and non-QoS aware systems/base stations.
Each base station subsystem 110 is typically comprised of a base station controller 115 and one or more base transceiver stations 120. A base transceiver station 120 is used to transmit and receive radio signals to and from mobile terminals 150 and includes equipment to do so (e.g., radio tower, etc.). The base station controller 115 is used to pass on signal connections to mobile switching centers 145 of the network and switch subsystem 130. Other hardware and/or software components of the base station subsystem 110 having other functions (such as negotiating parameters and performing handshaking protocols) are well known in the art and not discussed in detail here.
The network and switch subsystem 130 is typically comprised of a plurality of home and visitor databases 135, a plurality of authentication centers 140, and a plurality of mobile switching centers 145. The home and visitor location databases 135 are used to store records of subscriber information, location information for the mobile terminals 150, and other information. The authentication center 140 is used in conjunction with the home and visitor location databases 135 to provide authentication for security purposes. The mobile switching centers 145 are used to switch signal connections for the public switched telephone network 160 and the base station controllers 115.
Subscribers/users of a subscribed network are able to communicate with other subscribers or with non-subscribers outside the network (such as users within the public switched telephone network 160) through use of a mobile terminal 150 that comprises a receiving device (e.g., cellular phone, personal digital assistant (PDA), laptop computer, Blackberry™, personal digital assistant (PDA), or any other portable computer, etc.).
Through use of a mobile terminal 150, subscribers/users are also able to access the network 170 through a base station subsystem 110. The mobile terminal 150 typically contains software and/or hardware (such as a data stack controller and applications) that interface with the base station subsystem 110 and interact with the network 170 to send and retrieve data to and from the network 170. In some embodiments, the software and/or hardware of the mobile terminal 150 comprise QoS-based applications (e.g., VoIP, streaming multimedia, etc.) that require QoS assurances/support from the base station subsystem 110 (with which the mobile terminal communicates) for the QoS-based application to function properly or at a reasonable level of quality.
Some base station subsystems 110 provide QoS assurances/support (i.e., are QoS aware) and some do not (i.e., are non-QoS aware) depending on the type of mobile communications technology implemented by the base station subsystem 110. An example of a QoS aware mobile communications technology is High Data Rate (HDR) (also referred to as 1xEVDO) which is a wireless data technology from QUALCOMM. HDR (1xEVDO) is currently being used as the 3G technology for CDMAOne network carriers (known as CDMA2000) and is optimized for Internet Protocol (IP) packets and Internet access. Another example of a QoS aware mobile communications technology is W-CDMA Revision 9 (and up). Examples of non-QoS aware mobile communications technologies are HDR (1xEVDO) release 0 and CDMA2000 1X.
While a call on a mobile terminal 150 is active, if the mobile terminal 150 moves from a first cell region serviced by a first base station that is QoS aware to a second cell region serviced by second base station that is non-QoS aware, or vice versa, a handoff of the call to the next station is made. In some embodiments, an active call maintained on the mobile terminal 150 accesses the network 170 and implements a QoS-based application on the mobile terminal 150. In some embodiments, the mobile terminal 150 contains software and/or hardware that enables a seamless handoff between the QoS aware and non-QoS aware base station subsystems (or vice versa) so that the QoS-based application runs without interruption.
In some embodiments, the QoS-based application 505 comprises an Internet-based application (e.g., VoIP, streaming multimedia, etc.) that accesses the Internet and provides an Internet-based service. In other embodiments, the QoS-based application 505 is another type of application. The data stack controller 510 interfaces with the QoS-based application 505 and the base station 110 and manages the data stack 515 (a storage device). The data stack controller 510 stores and receives data (such as parameters) to and from the data stack 515. In some embodiments, the data stack controller 510 comprises the operating system of the mobile terminal 150. In some embodiments, the data stack controller 510 comprises hardware and/or software configured or programmed to perform some steps of the method 200 of
The method 200 begins when an active call/channel between the mobile terminal 150 and the base station 110 is established and maintained (at 201). The QoS-based application 505 then begins executing (at 202) on the mobile terminal 150. The QoS-based application 505 then generates and sends (at 204) operating parameters (e.g., QoS, session, and network/Internet parameters) to the data stack controller 510 that define operational modes/characteristics of the QoS-based application 505. The operational parameters of the QoS-based application 505 are referred to herein as the requested parameters. The data stack controller 510 receives (at 208) the requested parameters from the QoS-based application 505
The data stack controller 510 then stores (at 210) the requested parameters to the data stack 515. In some embodiments, the data stack controller 510 uses (at 210) a reservation label to store (and later retrieve) the requested parameters to the data stack 515. The data stack controller 510 does so by associating/binding the QoS-based application 505 with an identifier (reservation label) that uniquely differentiates the QoS-based application 505 from other applications. The data stack controller 510 then stores the reservation label and the requested parameters to the data stack 515 and associates/links the reservation label with the requested parameters. The reservation label can then be used to later retrieve the requested parameters from the data stack 515.
The parameters requested by the QoS-based application 505 include QoS parameters specifying/requesting particular values for particular operating characteristics of the QoS-based application that provide assurances that the QoS-based application functions properly or at an acceptable predetermined level of quality. In some embodiments, QoS parameters specify a particular amount of bandwidth or a maximum amount of delay or jitter required by the QoS-based application. In other embodiments, the QoS parameters specify values for other operating characteristics of the QoS-based application. In some embodiments, the QoS parameters specify two or more different values for one operating characteristic, each value being acceptable for operation of the QoS-based application. For example, the QoS parameters may specify first (high), second (middle), and third (low) bandwidth values that are acceptable for the QoS-based application.
The parameters requested by the QoS-based application 505 may also comprise other parameters such as session parameters (e.g., session identification number, etc.) that define operational modes/characteristics of a network/Internet session. The requested parameters may further include network/Internet parameters that define network related operational modes/characteristics of the QoS-based application 505. Examples of network/Internet parameters are information transfer rate, alphabet, parity, interrupt procedure, and other network protocol features. Session and network parameters are well known in the art and thus, are not discussed in detail here.
After the data stack controller 510 stores (at step 210) the requested parameters from the QoS-based application 505, it sends (at 212) the requested parameters to the base station 110 that services the cell region in which the mobile terminal 150 is located, the base station being referred to herein as the current base station. It is assumed for illustrative purposes that the current base station at the initial negotiation is a QoS aware base station. In some embodiments, the data stack controller 510 also sends the reservation label associated with the requested parameters to the base station 110 so that only the reservation label needs to be transmitted between the base station 110 and the data stack controller 510 in later re-negotiations. In some embodiments, the data stack controller 510 also determines (at 212) that the current base station is QoS aware and thus, sends QoS parameters to the base station 110. The data stack controller 510 may do so, for example, by receiving capabilities information regarding the current base station from the current base station.
The data stack controller 510 then negotiates (at 215) the requested parameters with the base station 110. Negotiations of requested session and network/Internet parameters are part of a sequence of events (i.e., handshaking) following a set of protocols (e.g., Internet Protocol (IP)) that establish agreement of operational modes required prior to information exchange to initiate an network/Internet session). Mechanisms of handshaking and network/Internet protocols are well known in the art and thus are not described in detail here.
The data stack controller 510 also negotiates (at 215) the requested QoS parameters with the base station 110. In negotiating the requested QoS parameters, the data stack controller 510 is effectively inquiring whether the base station 110 has adequate resources to assure that the requested QoS parameters can be met. At any given time, however, the base station 110 services a plurality of mobile terminals 150 in its cell region and must analyze its network capacities and allocate resources (e.g., bandwidth) among the plurality of mobile terminals 150. A non-QoS aware base station 110 will typically reduce the amount of resources for each mobile terminal (e.g., reduce the bandwidth per mobile terminal) as more mobile terminals enter its cell region. However, as stated above, QoS aware base stations negotiate QoS parameters with mobile terminals and abide to the agreed QoS parameters once negotiated. As such, in certain conditions (e.g., where too many mobile terminals are currently being serviced in the cell region), a QoS aware base station 110 may be unable to ensure the QoS parameters requested by the mobile terminal 150 can be supported. In such situations, the base station 110 may, for example, not approve the requested QoS parameters and not service the mobile terminal 150 until adequate resources are available. Or, if the requested QoS parameters specify two or more different values for an operating characteristic (e.g., a first (high), second (middle), and third (low) bandwidth values), the base station may approve one of the values which can currently be supported by the base station.
During negotiations of the requested parameters, the base station 110 analyzes its network capabilities and sends notifications approving or denying the requested parameters to the data stack controller 510. For illustrative purposes, it is assumed that the data stack controller receives (at 220) approval notifications for each requested parameter (including QoS parameters). The data stack controller 510 then sends (at 222) to the QoS-based application 505 a “QoS granted” indicator/signal that indicates the requested QoS parameters are ensured and supported by the base station 110. The QoS-based application 505 then executes (at 225) on the mobile terminal with QoS support.
The requested parameters are then negotiated (at 230) between the base station 110 and the Network and Switch Subsystem 130 and between the Network and Switch Subsystem 130 and the network 170. As discussed above, negotiations of the requested session and network/Internet parameters are part of a sequence of events (i.e., handshaking) following a set of protocols (e.g., Internet Protocol (IP)) that establish agreement of operational modes required prior to information exchange to initiate a network/Internet session. After the requested parameters are negotiated with the network 170, an active network/Internet session between the mobile terminal 150 (i.e., the QoS-based application 505) and the network 170 is established and maintained (at 232).
After an active network/Internet session between the QoS-based application 505 and the network 170 is established (at 232), for illustrative purposes, it is then assumed that the mobile terminal 150 moves to a cell region that is serviced by a non-QoS aware base station 110 (the current base station) while a call on the mobile terminal 150 is active. This causes a handoff (at 235) of the call from a QoS aware base station to a non-QoS aware base station to occur whereby the mobile terminal 150 no longer receives QoS support/assurances. During the handoff of the call, the reservation label associated with the QoS-based application 505 is passed to the current non-QoS aware base station. The data stack controller 510 also determines (at 240) that the current base station is non-QoS aware (e.g., by receiving capabilities information from the current base station).
The data stack controller 510 then retrieves (at 242), from the data stack 515, the parameters associated with the reservation label. The data stack controller 510 re-negotiates (at 245) the requested parameters (excluding QoS parameters) with the current non-QoS aware base station. Since it has been determined that the base station is non-QoS aware, the data stack controller sends to the QoS-based application 505 (at 250) a “best effort” indicator/signal that indicates the QoS-based application 505 will not receive QoS support but will receive the “best effort” of resources of the base station 110 in regards to the requested QoS parameters (which is typically below the level of resources specified by the QoS parameters). The QoS-based application 505 then executes (at 255) on the mobile terminal under the “best effort” conditions.
For illustrative purposes, it is then assumed that the mobile terminal 150 moves back to a cell region that is serviced by a QoS aware base station 110 (the current base station) while a call on the mobile terminal 150 is active. This causes a handoff (at 260) of the call from a non-QoS aware base station to a QoS aware base station to occur. During the handoff of the call, the reservation label associated with the QoS-based application 505 is passed to the current QoS aware base station. The data stack controller 510 also determines (at 265) that the current base station is QoS aware (e.g., by receiving capabilities information from the current base station).
The data stack controller 510 retrieves (at 267), from the data stack 515, the parameters associated with the reservation label. The data stack controller 510 then re-negotiates (at 270) the requested parameters (including QoS parameters) with the current QoS aware base station. For illustrative purposes, it is assumed that the data stack controller 510 receives (at 272) approval notifications of the requested QoS parameters from the base station. As such, the data stack controller 510 sends to the QoS-based application 505 (at 275) a “QoS granted” indicator/signal that indicates the requested QoS parameters are ensured and supported by the QoS aware base station 110. The QoS-based application 505 then executes (at 280) on the mobile terminal with QoS support. The method 200 then ends.
As described above, at the initial sending and receiving of parameters (at steps 204 and 208) between the data stack controller 510 and the QoS-based application 505, the requested parameters are received by the data stack controller 510 and stored (at 210) to the data stack 515. These requested parameters are then used in the initial negotiation (at step 215) of parameters between the data stack controller 510 and the base station 110. Note that in subsequent re-negotiations (after the initial negotiation) of parameters between the data stack controller 510 and other base stations 110 (at steps 245 and 270) does not require any subsequent re-sending of the QoS parameters from the QoS-based application and any re-receiving of the QoS parameters by the data stack controller 510 (after the initial sending and receiving). Rather, any subsequent re-negotiation of parameters between the data stack controller 510 and a base station 110 is implemented by retrieving the requested parameters (or retrieving a reservation label) from the data stack 515.
In this way, after the initial interaction between the data stack controller 510 and the QoS-based application 505 (at steps 204 and 208), the QoS-based application 505 is “kept blind” of any later re-negotiations between the data stack controller 510 and base stations 110 and continues its operation without any disruptions caused by these re-negotiations and without being shut down. This is true even during re-negotiations at handoffs between QoS and non-QoS aware base stations as the mobile terminal moves between different cell regions. During these handoffs, the QoS-based application 505 continues operating without having to re-send parameter to the data stack controller and simply receives QoS support during operation or receives a “best effort” indicator (and thus operates under “best effort” conditions).
The bus 605 collectively represents all system, peripheral, and chipset buses that communicatively connect the numerous internal devices of the computer system 600. For instance, the bus 605 communicatively connects the processor 610 with the read-only memory 620, the system memory 615, and the permanent storage device 625.
The read-only-memory (ROM) 620 stores static data and instructions that are needed by the processor 610 and other modules of the computer system. The permanent storage device 625, on the other hand, is read-and-write memory device. This device is a non-volatile memory unit that stores instruction and data even when the computer system 600 is off. Some embodiments use a mass-storage device (such as a magnetic or optical disk and its corresponding disk drive) as the permanent storage device 625. Other embodiments use a removable storage device (such as a floppy disk or zips disk, and its corresponding disk drive) as the permanent storage device.
Like the permanent storage device 625, the system memory 615 is a read-and-write memory device. However, unlike storage device 625, the system memory is a volatile read-and-write memory, such as a random access memory (RAM). The system memory stores some of the instructions and data that the processor needs at runtime.
Instructions and/or data needed to perform methods of some embodiments are stored in the system memory 615, the permanent storage device 625, the read-only memory 620, or any combination of the three. For example, the various memory units may contain instructions for performing the above-described functions of the data stack controller in managing negotiations of QoS parameters in accordance with some embodiments. The various memory units may also contain instructions that comprise the QoS-based application and contain parameter data that comprises the data stack. From these various memory units, the processor 610 retrieves instructions to execute and data to process in order to execute the processes of some embodiments.
The bus 605 also connects to the input and output devices 630 and 635. The input devices 630 enable a user to communicate information and select commands to the computer system 600. The input devices 630 include alphanumeric keyboards and cursor-controllers. The output devices 635 display images generated by the computer system 600. The output devices include printers and display devices, such as cathode ray tubes (CRT) or liquid crystal displays (LCD).
Finally, as shown in
Those of skill in the art would understand that information and signals may be represented using any of a variety of different technologies and techniques. For example, data, instructions, commands, information, signals, bits, symbols, and chips that may be referenced throughout the above description may be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, or any combination thereof.
Those of skill would further appreciate that the various illustrative logical blocks, modules, circuits, and method steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present invention.
The various illustrative logical blocks, modules, and circuits described in connection with the embodiments disclosed herein may be implemented or performed with a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
The steps of a method or method described in connection with the embodiments disclosed herein may be embodied directly in hardware (i.e., hardwired), in a software module executed by a processor, or in a combination of the two. A software module may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art. An exemplary storage medium is coupled to the processor such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor. The processor and the storage medium may reside in an ASIC. The ASIC may reside in a mobile terminal. In the alternative, the processor and the storage medium may reside as discrete components in a mobile terminal.
The previous description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the present invention. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of the invention. Thus, the present invention is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.