Managing a wireless device connection in a multioperator communication system

In operation, a plurality of data packets is received from a wireless device in communication with a first network, the data packets comprising an indication of first network congestion. The plurality of data packets are examined to determine an application requirement and a data rate of an application running on the wireless device. When a number of indications of first network congestion in relation to the data rate meets a congestion criteria, which can be based on the application requirement, a handover is performed to hand over the wireless device to a second network.

TECHNICAL BACKGROUND

To increase the service areas in which wireless communications can be provided to wireless devices, network operators may permit wireless devices to communicate over the networks of different network operators, also referred to as “roaming.” Network operators may not share certain performance data related to the communication of roaming wireless devices. For example, a wireless device's home network may not receive from a visited network information related to an amount of data sent or received by the wireless device while on the visited network, information related to visited network conditions such as congestion, data rates, data delay or latency, network load, wireless device application performance on the visited network, resource utilization, and the like. Consequently, a home network may be unable to accurately assess a user's experience on a visited network. Further, a home network may be unable to determine whether favorable conditions exist to instruct the wireless device to communicate over the home network rather than a visited network.

OVERVIEW

In operation, a plurality of data packets is received from a wireless device in communication with a first network, where the data packets comprise an indication of first network congestion. The plurality of data packets are examined to determine an application requirement and a data rate of an application running on the wireless device. When a number of indications of first network congestion in relation to the data rate meets a congestion criteria, a handover is performed to hand over the wireless device to a second network. The congestion criteria can be based on the application requirement.

DETAILED DESCRIPTION

FIG. 1illustrates an exemplary communication system100to manage a wireless device connection comprising wireless device102, access node104, access node106, and controller node108. Examples of wireless device102can include a cell phone, a smart phone, a computing platform such as a laptop, palmtop, or tablet, a personal digital assistant, or an internet access device, including combinations thereof. Wireless device102can communicate with access node104over communication link110, and with access node106over communication link112. Wireless device102may communicate with both access nodes104and106, or a handover, cell reselection, and the like can be performed to instruct wireless device102to change from communicating with access node104to communicating with access node106.

Access nodes104and106are each a network node capable of providing wireless communications to wireless device102, and can be, for example, a base transceiver station, a radio base station, an eNodeB device, or an enhanced eNodeB device. Access node104is in communication with controller node108over communication link114, access node106is in communication with controller node108over communication link116. In an embodiment, access node104can be associated with a first network, and access node106can be associated with a second network.

Controller node108can control the setup and maintenance of a communication session by wireless device102. Controller node108can comprise a mobile switching center (MSC), a dispatch call controller (DCC), a call serving control function (CSCF), a mobility management entity (MME), or other similar network node. Controller node108can comprise a processor and associated circuitry to execute or direct the execution of computer-readable instruction. The computer-readable instructions can be retrieved and executed from storage, which can include a disk drive, flash drive, memory circuitry, or some other memory device, and which can be local or remotely accessible. The software can comprise computer programs, firmware, or some other form of machine-readable instructions, and may include an operating system, utilities, drivers, network interfaces, applications, or some other type of software, including combinations thereof. Controller node108can receive instructions and other input at a user interface.

Communication links110,112,114, and116can be wired or wireless communication links. Wired communication links can be, for example, twisted pair cable, coaxial cable or fiber optic cable, or combinations thereof. Wireless communication links can be a radio frequency, microwave, infrared, or other similar signal, and can use a suitable communication protocol, for example, Global System for Mobile telecommunications (GSM), Code Division Multiple Access (CDMA), Worldwide Interoperability for Microwave Access (WiMAX), or Long Term Evolution (LTE), or combinations thereof. Other wireless protocols can also be used.

Other network elements may be present in communication system100to facilitate wireless communication but are omitted for clarity, such as base stations, base station controllers, gateways, mobile switching centers, dispatch application processors, and location registers such as a home location register or visitor location register. Furthermore, other network elements may be present to facilitate communication between access node104, access node106and controller node108which are omitted for clarity, including additional processing nodes, routers, gateways, and physical and/or wireless data links for carrying data among the various network elements.

In operation, a plurality of data packets is received from a wireless device102which is in communication with a first network (for example, in communication with access node104which is associated with the first network), where the data packets comprise an indication of first network congestion. The plurality of data packets are examined to determine an application requirement and a data rate of an application running on wireless device102. When a number of indications of first network congestion in relation to the data rate meets a congestion criteria, a handover is performed to hand over wireless device102from the first network to a second network. In an embodiment, wireless device102can be handed over from access node104, which can be associated with a first network, to access node106, which can be associated with a second network. The congestion criteria can be based on the application requirement of the application running on wireless device102, as further described below.

FIG. 2illustrates an exemplary method of managing a wireless device connection. In operation202, a plurality of data packets are received from a wireless device in communication with a first network, the data packets comprising an indication of first network congestion. For example, a plurality of data packets can be received from wireless device102at access node104, and the plurality of data packets can further be received at controller node108. The plurality of data packets may also be received at another network node.

The received data packets can comprise an indication of network congestion. For example,FIG. 3illustrates an exemplary system300wherein data packets comprise an indication of network congestion. Sender network element302can send data packets306destined for recipient304. For example, sender302could be a network element which sends packets requested by recipient304. Intermediate network elements, such as a switch or a router (not illustrated) can pass data packets306from the sender302to recipient304. One example of a system enabling data packets to comprise an indication of network congestion includes Explicit Congestion Notification (ECN), an extension of the Transfer Control Protocol (TCP).

Typically, TCP includes congestion control and avoidance methods that determine an appropriate congestion window for a network node or element by increasing the traffic through the network node until packet loss is detected. The use of an additive increase/multiplicative decrease feedback control algorithm in TCP causes a dramatic reduction in the rate of packet transmission from a network node when congestion is detected. Typically, TCP only enables endpoints to detect and address network node congestion. In addition, detected congestion is mitigated by dropping and retransmitting packets.

The ECN extension to TCP enables end-to-end notification of network congestion without dropping packets, allowing recipient304to receive the packet or packets which would otherwise have been dropped and avoiding packet retransmission. When ECN together with an active queue management (AQM) policy is implemented on intermediate network elements, incipient congestion can be detected at the network elements, for example at intermediate network elements. When congestion is detected, rather than dropping a packet, a packet can be marked to indicate network congestion. InFIG. 3, packet308is marked to indicate network congestion (symbolized by a packet with an asterisk). In an embodiment, according to ECN, a codepoint in a field in a header of the packet can be marked to indicate that congestion is encountered (CE). Thus, packet308comprises an indication of network congestion. When recipient304receives a packet marked to indicate congestion, the recipient304can send a message310based on the receipt of the congestion-marked packet to the sender through a feedback path312. In an embodiment, message310signals the sender302to reduce its congestion window, similar to typical TCP behavior (i.e., TCP without ECN implemented). In response, the sender302can reduce its packet transmission rate to alleviate the congestion detected in the network.

Returning toFIG. 2, in operation204, the plurality of data packets are examined to determine an application requirement and a data rate of an application running on the wireless device. For example, when the plurality of data packets is received from wireless device102, the plurality of data packets can be examined. Examining data packets can comprise performing deep packet inspection of packets sent from wireless device102. Deep packet inspection generally involves an inspection of packets beyond Open Systems Interconnection (OSI) layer 3 including an inspection of the data portion of a packet (and possibly also the header of a packet). When the data packets are examined, an application running on wireless device102can be characterized. For example, a type of application running on wireless device102can be determined, such as a latency-sensitive application (for example, a voice over internet protocol (VoIP) or similar voice application, a streaming video application, a streaming audio application, a download stream, and the like) and a non-latency sensitive application (for example, an internet browser application, an email application, a text messaging application, and the like). Further, an application requirement of the determined application of type of application can be determined, such as a required minimum data rate, a maximum permitted data delay, a maximum data error rate, and the like, to enable the determined application (or application type) to meet a minimum performance threshold.

In addition, a data rate of the application running on the wireless device can also be determined. For example, an actual data utilization, such as a measurement of data sent to and/or received from the application running on wireless device102can be determined. As one example, the determined application can be a latency-sensitive application, such as a VoIP application, but the application may not be involved in a call session, in which case the data rate of the application would be comparatively low. As another example, the determined application be an internet browser application, which is typically not latency-sensitive, but the determined application may be downloading a stream of data from a data-heavy internet site. In other words, both the application running on the wireless device and the data rate of the application can be determined. In an embodiment, the data rate can comprise an aggregated data rate over a period of time, or an average, or a running average, or some other aggregation of data rate measurements, or the data rate can comprise an instantaneous determination of the application data rate.

In operation206, a handover is performed of the wireless device to a second network when a number of indications of first network congestion in relation to the data rate meets a congestion criteria, wherein the congestion criteria is based on the application requirement. For example, from among the plurality of data packets received from wireless device102, a number of data packets which comprise the indication of network congestion can be determined. When the number of data packets which comprise the indication of network congestion meets a congestion criteria, a handover can be performed to hand over wireless device from access node104(which can be associated with a first network) to access node106(which can be associated with a second network). The congestion criteria can be determined based on the determined application requirement (such as a required minimum data rate, a maximum permitted data delay, a maximum data error rate, and the like). In an embodiment, when the number of data packets comprising an indication of network congestion meets a congestion criteria, which can indicate that network congestion is interfering or is approaching a level which may interfere with the performance of the application running on wireless device102, a handover may be performed to hand over wireless device from access node104to access node106.

FIG. 4illustrates another exemplary communication system400to manage a wireless device connection comprising wireless device402, access node404, access node406, controller node408, controller node410, gateway node412, and communication network414. Examples of wireless device402can include a cell phone, a smart phone, a computing platform such as a laptop, palmtop, or tablet, a personal digital assistant, or an internet access device, including combinations thereof. Wireless device402can communicate with access node404over communication link416, and with access node406over communication link418. Wireless device402may communicate with both access nodes404and406, or a handover, cell reselection, and the like can be performed to instruct wireless device402to change from communicating with access node404to communicating with access node406.

Access nodes404and406are each a network node capable of providing wireless communications to wireless device402, and can be, for example, a base transceiver station, a radio base station, an eNodeB device, or an enhanced eNodeB device. Access node404is in communication with controller node408over communication link420and with gateway node412over communication link422. Access node406is in communication with controller node410over communication link426and with gateway node412over communication link424. In an embodiment, access node404and controller node408can be associated with a first network, and access node406and controller node410can be associated with a second network.

Controller nodes408and410can each control the setup and maintenance of a communication session by wireless device402. Controller nodes408and410can comprise a mobile switching center (MSC), a dispatch call controller (DCC), a call serving control function (CSCF), a mobility management entity (MME), or other similar network node. Controller nodes408and410can comprise a processor and associated circuitry to execute or direct the execution of computer-readable instruction. The computer-readable instructions can be retrieved and executed from storage, which can include a disk drive, flash drive, memory circuitry, or some other memory device, and which can be local or remotely accessible. The software can comprise computer programs, firmware, or some other form of machine-readable instructions, and may include an operating system, utilities, drivers, network interfaces, applications, or some other type of software, including combinations thereof. Controller nodes408and410can receive instructions and other input at a user interface.

Gateway node412is a network element which can comprise a processor and associated circuitry to execute or direct the execution of computer-readable instructions. Gateway node412can retrieve and execute software from storage, which can include a disk drive, flash drive, memory circuitry, or some other memory device, and which can be local or remotely accessible. The software comprises computer programs, firmware, or some other form of machine-readable instructions, and may include an operating system, utilities, drivers, network interfaces, applications, or some other type of software, including combinations thereof. Gateway node412can serve as an interface between controller nodes408and410and communication network414. Gateway node412can be for example, a standalone computing device or network element, such as a serving gateway (S-GW) or similar network element, or the functionality of gateway node412can be incorporated into, or may be distributed across, one or more network elements. Gateway node412can, among other things, be configured to function as an inspection node to perform deep packet inspection of packets sent from and/or to wireless device302. Deep packet inspection generally involves an inspection of packets beyond Open Systems Interconnection (OSI) layer 3 including an inspection of the data portion of a packet (and possibly also the header of a packet). Gateway node412can also be configured to perform as an aggregation router, which can communicate with and receive information from the first network (e.g., access node404and controller node408) and the second network (e.g., access node406and controller node410). In an embodiment, gateway node412can be a network element of the second network capable of communication with network elements of the first network. In an embodiment, gateway node412can be an inspection node of the first network capable of communication with network elements of the second network.

Communication network414can be a wired and/or wireless communication network, and can comprise processing nodes, routers, gateways, and physical and/or wireless data links for carrying data among various network elements, including combinations thereof, and can include a local area network, a wide area network, and an internetwork (including the Internet). Communication network414can be capable of carrying voice information and other data, for example, to support communications with wireless device402. Wireless network protocols may comprise code division multiple access (CDMA) 1xRTT, Global System for Mobile communications (GSM), Universal Mobile Telecommunications System (UMTS), High-Speed Packet Access (HSPA), Evolution Data Optimized (EV-DO), EV-DO rev. A, Third Generation Partnership Project Long Term Evolution (3GPP LTE), and Worldwide Interoperability for Microwave Access (WiMAX). Wired network protocols that may be utilized by communication network414comprise Ethernet, Fast Ethernet, Gigabit Ethernet, Local Talk (such as Carrier Sense Multiple Access with Collision Avoidance), Token Ring, Fiber Distributed Data Interface (FDDI), and Asynchronous Transfer Mode (ATM). Communication network414may also comprise a wireless network, including base stations, wireless communication nodes, telephony switches, internet routers, network gateways, computer systems, communication links, or some other type of communication equipment, and combinations thereof.

Communication links416,418,420,422,424,426,428,430and432can be wired or wireless communication links. Wired communication links can be, for example, twisted pair cable, coaxial cable or fiber optic cable, or combinations thereof. Wireless communication links can be a radio frequency, microwave, infrared, or other similar signal, and can use a suitable communication protocol, for example, Global System for Mobile telecommunications (GSM), Code Division Multiple Access (CDMA), Worldwide Interoperability for Microwave Access (WiMAX), or Long Term Evolution (LTE), or combinations thereof. Other wireless protocols can also be used.

Other network elements may be present in communication system400to facilitate wireless communication but are omitted for clarity, such as base stations, base station controllers, gateways, mobile switching centers, dispatch application processors, and location registers such as a home location register or visitor location register. Furthermore, other network elements may be present to facilitate communication between access node404, access node406, controller node408, controller node410, gateway node412, and communication network414which are omitted for clarity, including additional processing nodes, routers, gateways, and physical and/or wireless data links for carrying data among the various network elements.

FIG. 5illustrates another exemplary method of managing a wireless device connection. In operation502, a plurality of data packets are received from a wireless device in communication with a first network, the data packets comprising an indication of first network congestion. For example, a plurality of data packets can be received from wireless device402at access node404, and the plurality of data packets can further be received at controller node408and/or gateway node412. The received data packets can comprise an indication of network congestion, such as described above with respect toFIG. 3.

In operation504, the plurality of data packets are examined to determine an application requirement and a data rate of an application running on the wireless device. For example, when the plurality of data packets is received from wireless device402, the plurality of data packets can be examined. Examining data packets can comprise performing deep packet inspection of packets sent from wireless device402. When the data packets are examined, an application running on wireless device402can be characterized. For example, a type of application running on wireless device402can be determined, such as a latency-sensitive application (for example, a voice over internet protocol (VoIP) or similar voice application, a streaming video application, a streaming audio application, a download stream, and the like) and a non-latency sensitive application (for example, an internet browser application, an email application, a text messaging application, and the like). Further, an application requirement of the determined application of type of application can be determined, such as a required minimum data rate, a maximum permitted data delay, a maximum data error rate, and the like, to enable the determined application (or application type) to meet a minimum performance threshold.

In addition, a data rate of the application running on the wireless device can also be determined. For example, an actual data utilization, such as a measurement of data sent to and/or received from the application running on wireless device402can be determined. As one example, the determined application can be a latency-sensitive application, such as a VoIP application, but the application may not be involved in a call session, in which case the data rate of the application would be comparatively low. As another example, the determined application be an internet browser application, which is typically not latency-sensitive, but the determined application may be downloading a stream of data from a data-heavy internet site. In other words, both the application running on the wireless device and the data rate of the application can be determined. In an embodiment, the data rate can comprise an aggregated data rate over a period of time, or an average, or a running average, or some other aggregation of data rate measurements, or the data rate can comprise an instantaneous determination of the application data rate.

In operation506, a usage fee of the wireless device in the first network is determined based on the application running on the wireless device and the data rate of the application. For example, it can be determined that a VoIP application running wireless device402is involved in a communication session, and that the VoIP application is sending and receiving data at a determined data rate. In an embodiment, a total amount of data sent and/or received by wireless device402during the communication session can be determined. Further, a usage fee associated with the use of data on the first network can be determined for wireless device402, for example, where the use of data on the first network is associated with a cost or charge. In an example, the usage fee can be a roaming charge where wireless device402is associated with the second network and communicates over the first network pursuant to a roaming agreement or similar permission. In another example, communication over the first network by wireless device402can be subject to charge or cost based on a data rate, a total amount of data sent and/or received over the first network, and the like.

In operation508, it is determined whether at least one of several criteria are met. For example, it can be determined that a number of data packets comprising the indication of network congestion according to the data rate meets a congestion criteria. The congestion criteria can be determined based on the determined application requirement (such as a required minimum data rate, a maximum permitted data delay, a maximum data error rate, and the like). In an embodiment, when the number of data packets comprising an indication of network congestion meets a congestion criteria, which can indicate that network congestion is interfering or is approaching a level which may interfere with the performance of the application running on wireless device402, a handover may be performed to hand over wireless device from access node404to access node406.

In addition, it can be determined that the usage fee meets a fee criteria. The fee criteria can be determined based on a roaming agreement or similar network use authorization, a charge or cost to communicate of the first network based on a data rate, or a total amount of data sent over the first network, and the like. The fee criteria can comprise a maximum fee, a threshold fee, a fee range, or similar criteria. When the criteria are not met (operation508—NO), further data packets can be received from wireless device402(operation502).

When one or more criteria are met (operation508—YES), second network conditions are determined (operation510). Second network conditions can comprise conditions sufficient to meet the application requirement of the application running on the wireless device. For example, the second network condition can comprise a signal level, a data rate, a throughput, a channel utilization of a channel of the second network, a level of second network congestion on a communication link and/or a second network backhaul, an available modulation and coding scheme on one or more communication links, and the like, including combinations thereof. The second network criteria can comprise second network conditions sufficient to meet the application requirement of the application running on wireless device402(such as, for example, a utilization criteria, or a congestion criteria). When the second network conditions do not meet the second network criteria (operation512—NO), further data packets can be received from wireless device402(operation502)

When the second network conditions meet the second network criteria (operation512—YES), a handover is performed to hand over the wireless device to the second network (operation514). In an embodiment, a handover can be performed when a number of data packets comprising the indication of network congestion according to the data rate meets a congestion criteria and the second network condition meets the application requirement of wireless device402. In an embodiment, the first network can comprise a visited network, and the second network can comprise a home network of wireless device402.

In an embodiment, a handover can be performed when a number of data packets comprising the indication of network congestion according to the data rate meets a congestion criteria and the second network congestion meets a second congestion criteria. In an embodiment, the handover can be performed when a number of data packets comprising the indication of network congestion according to the data rate meets a congestion criteria and the second network condition meets the application requirement of the application running on the wireless device.

In an embodiment, a handover can be performed when a number of data packets comprising the indication of network congestion according to the data rate meets a congestion criteria and the usage fee meets a fee criteria. In an embodiment, the handover can be performed when a number of data packets comprising the indication of network congestion according to the data rate meets a congestion criteria, the usage fee meets a fee criteria, and the channel utilization of the channel of the second network meets a utilization criteria. In an embodiment, the handover can be performed when a number of data packets comprising the indication of network congestion according to the data rate meets a congestion criteria, the usage fee meets a fee criteria, and the second network congestion meets a second congestion criteria.

FIG. 6illustrates an exemplary processing node600in a communication system. Processing node600comprises communication interface602, user interface604, and processing system606in communication with communication interface602and user interface604. Processing node600is capable of managing a wireless device connection in a communication system. Processing system606includes storage608, which can comprise a disk drive, flash drive, memory circuitry, or other memory device. Storage608can store software610which is used in the operation of the processing node600. Storage608may include a disk drive, flash drive, data storage circuitry, or some other memory apparatus. Software610may include computer programs, firmware, or some other form of machine-readable instructions, including an operating system, utilities, drivers, network interfaces, applications, or some other type of software. Processing system606may include a microprocessor and other circuitry to retrieve and execute software610from storage608. Processing node600may further include other components such as a power management unit, a control interface unit, etc., which are omitted for clarity. Communication interface602permits processing node600to communicate with other network elements. User interface604permits the configuration and control of the operation of processing node600.

Examples of processing node600include controller node108, controller node408, controller node410, and gateway node412. Processing node can also be an adjunct or component of a network element, or the functionality of processing node600can be distributed over two or more network elements. Processing node600can also be another network element in a communication system.