US20180077639A1 - Switching between networks based on quality of available networks - Google Patents

Switching between networks based on quality of available networks Download PDF

Info

Publication number
US20180077639A1
US20180077639A1 US15/822,265 US201715822265A US2018077639A1 US 20180077639 A1 US20180077639 A1 US 20180077639A1 US 201715822265 A US201715822265 A US 201715822265A US 2018077639 A1 US2018077639 A1 US 2018077639A1
Authority
US
United States
Prior art keywords
wireless communication
communication network
network
connection
time
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US15/822,265
Inventor
Weihua Tan
Anil Muthineni
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Priority to US15/822,265 priority Critical patent/US20180077639A1/en
Publication of US20180077639A1 publication Critical patent/US20180077639A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W48/00Access restriction; Network selection; Access point selection
    • H04W48/18Selecting a network or a communication service
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B17/00Monitoring; Testing
    • H04B17/30Monitoring; Testing of propagation channels
    • H04B17/309Measuring or estimating channel quality parameters
    • H04B17/318Received signal strength
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W36/00Hand-off or reselection arrangements
    • H04W36/24Reselection being triggered by specific parameters
    • H04W36/30Reselection being triggered by specific parameters by measured or perceived connection quality data
    • H04W76/023
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • H04W76/14Direct-mode setup
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W36/00Hand-off or reselection arrangements
    • H04W36/14Reselecting a network or an air interface
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W36/00Hand-off or reselection arrangements
    • H04W36/24Reselection being triggered by specific parameters
    • H04W36/249Reselection being triggered by specific parameters according to timing information

Definitions

  • This technology relates to wireless communications networks, and more particularly to wireless network selection by a wireless communication enabled device.
  • a client device At many geographic locations, there are a plurality of wireless networks to which a client device is able to connect.
  • an available wireless network is selected by a client device or a user of the client device.
  • a client device can select a wireless network based on a contractual relationship between a customer of the client device and a service provider that is associated with a particular wireless network.
  • a wireless communication enabled device can establish a network connection with a wireless communications network in an area with multiple available wireless communications networks.
  • the wireless communication enabled device can assign a network quality score to the wireless communications network based on a number of factors, including the type of mobile telecommunications technology employed by the wireless communications network, the service provider associated with the wireless communications network, and historically-observed communication speeds for the wireless communications network.
  • the wireless communication enabled device can observe a current quality of the connection with the wireless communications network. If the quality of the network connection has degraded below a threshold level, the wireless communication enabled device can start a network reevaluation timer. The length of time monitored by the network reevaluation timer can be based on the network quality score that is assigned to the wireless communications network.
  • the wireless communication enabled device Upon expiration of the network reevaluation timer, the wireless communication enabled device reevaluates the quality of the network connection. If the network connection is still in a degraded state at the time of reevaluation, the wireless communication enabled device may switch to another available wireless communications network.
  • one innovative aspect of the subject matter described in this specification can be embodied in methods that include the actions of establishing, by a computing device, a connection with a first wireless communication network; identifying, by the computing device, a characteristic of the first wireless communication network; determining, by the computing device and at a first point in time, that the connection with the first wireless communication network has degraded below a threshold quality level; identifying, by the computing device, a time at which to reevaluate whether the connection with the first wireless communication network is still below the threshold quality level, the time identified at least partially based on the characteristic of the first wireless communication network; determining, by the computing device, at a second point in time and in response to having determined that the time at which to reevaluate whether the connection with the first wireless communication network is still below the threshold quality level has expired, that the connection with the first wireless communication network is still below the threshold quality level; and responsive to determining, at the first point in time, that the connection with the first wireless communication network had degraded below the threshold quality level and determining,
  • the characteristic can identify a mobile communication technology employed by the first wireless communication network. Identifying the characteristic of the first wireless communication network can include identifying the characteristic based on historically observed network connectivity speeds for the first wireless communication network. Identifying the time at which to reevaluate whether the connection with the first wireless communication network is still below the threshold quality level can include assigning a rating to the first wireless communication network, the rating being based on at least one of a mobile communication technology employed by the first wireless communication network and historically observed network connectivity speeds for the first wireless communication network. The characteristic can identify a wireless communications service provider associated with the first wireless communication network. The threshold quality level can be determined based on historically observed network connectivity quality for a plurality of wireless communication networks.
  • the actions can further include identifying, by the computing device, a characteristic of the second wireless communication network; determining, by the computing device and at a third point in time, that the connection with the second wireless communication network has degraded below the threshold quality level; identifying, by the computing device, another time at which to reevaluate whether the connection with the second wireless communication network is still below the threshold quality level at least partially based on the characteristic of the second wireless communication network; determining, by the computing device, at a fourth point in time and in response to having determined that the another time at which to reevaluate whether the connection with the second wireless communication network is still below the threshold quality level has expired, that the connection with the second wireless communication network is still below the threshold quality level; and responsive to determining, at the third point in time, that the connection with the second wireless communication network had degraded below the threshold quality level and determining, at the fourth point in time, that the connection with the first wireless communication network was still below the threshold quality level, establishing, by the computing device, a connection with a third wireless communication network.
  • the time at which to reevaluate whether the connection with the first wireless communication network is still below the threshold quality level can be identified using a first reevaluation length of time calculated based on the characteristic of the first wireless communication network.
  • the another time at which to reevaluate whether the connection with the second wireless communication network is still below the threshold quality level can be identified using a second reevaluation length of time calculated based on the characteristic of the second wireless communication network.
  • the first reevaluation length of time can be different than the second reevaluation length of time.
  • the actions can further include identifying, by the computing device, a characteristic of the second wireless communication network; comparing, by the computing device, the characteristic of the first wireless communication network to the characteristic of the second wireless communication network to determine that the characteristic of the first wireless communication network is superior to the characteristic of the second wireless communication network; and responsive to determining that the characteristic of the first wireless communication network is superior to the characteristic of the second wireless communication network, ending the connection with the second wireless communication network and establishing another connection with the first wireless communication network.
  • the actions can further include identifying, by the computing device, a minimum length of time to maintain the another connection with the first wireless communication network; determining, by the computing device, at a third point in time, and in response to having determined that the minimum length of time to maintain the another connection with the first wireless communication network has expired, that the another connection with the first wireless communication network has degraded below a threshold quality level; identifying, by the computing device, another time at which to reevaluate whether the another connection with the first wireless communication network is still below the threshold quality level at least partially based on the characteristic of the first wireless communication network; determining, by the computing device, at a fourth point in time and in response to having determined that the another time at which to reevaluate whether the another connection is still below the threshold quality level has expired, that the another connection with the first wireless communication network is still below the threshold quality level; and responsive to determining, at the third point in time, that the another connection with the first wireless communication network had degraded below the threshold quality level and determining, at the fourth point in time, that the another connection
  • a mobile computing device can avoid switching between wireless communications networks at a higher than optimal rate.
  • a mobile computing device can identify suboptimal network connections and switch between networks due to degradation in network connection quality while preserving battery life.
  • a balance between identifying and establishing a network connection with a wireless communication network having an improved connection quality and avoiding switching between networks at a higher than optimal rate can be achieved.
  • Wireless communications can be improved in scenarios in which a mobile computing device does not have full information about available wireless communications networks.
  • FIG. 1 is a diagram of an example environment in which a client device can communicate with one or more wireless communication networks.
  • FIG. 2 is a diagram of an example data flow for a client device switching from one wireless communication network to another wireless communication network.
  • FIG. 3 is a flow chart of an example process for switching from a first wireless communication network to a second wireless communication network.
  • FIG. 4 is a block diagram of an example computer system.
  • a wireless communication enabled device can establish a connection with various wireless communication networks.
  • a mobile phone can establish a connection with a communications tower of a wireless communications network owned by a particular service provider. The mobile phone can then transmit and receive voice and data communications over the connection.
  • the wireless communication enabled device may move out of communication range with some wireless communications networks and into communication range for other wireless communications networks. For example, as a person drives along a highway with a mobile phone in his pocket, the available networks with which the mobile phone can establish a communication connection changes (e.g., because one service provider may have invested in more cell phone towers in a region than another service provider). In many geographic locations, numerous wireless communication networks are available to establish communications connections with the wireless communication enabled device.
  • a user of a wireless communication enabled device has a contractual relationship with a particular wireless communication service provider.
  • the service provider can, in turn, have contractual relationships with other service providers by which customers of a particular service provider are allowed to use network resources that are provided by the other service providers.
  • Such relationships can allow a particular wireless communication enabled device to select from a number of different wireless communication networks when establishing a communications connection while located in a particular geographic area.
  • a mobile phone located in a particular geographic area can establish a communications connection with a cellular communications tower that is owned by the service provider with which the user of the mobile phone has a contractual relationship.
  • wireless communications networks capable of providing communications services to wireless communication enabled devices in a particular location offer varying degrees of network communication quality.
  • a first wireless communications network may employ third generation mobile communication technology (i.e., a “3G network”), while a second wireless communications network may employ second generation mobile communication technology (i.e., a “2G network”), and a third wireless communications network may employ fourth generation long-term evolution mobile communication technology (i.e., a “4G LTE network”).
  • various different networks employing the same mobile communication technology standard e.g., three different 3G networks
  • a first 3G network may have slower communications speeds (download and upload speeds) than another 3G network in the same geographic area.
  • a wireless communication enabled device can assign varying network quality scores to different wireless communications networks based on a number of factors including: network type, service provider identity, historically observed network quality (e.g., upload and download speeds), packet loss rate, location, distance of a communications tower from the wireless communication enabled device, and current service quality.
  • network type e.g., service provider identity
  • historically observed network quality e.g., upload and download speeds
  • packet loss rate e.g., upload and download speeds
  • location e.g., distance of a communications tower from the wireless communication enabled device
  • current service quality e.g., current service quality.
  • the wireless communication enabled device can compare observed download rates, upload rates, or both to a threshold level to determine if the communications rate is below the threshold level.
  • the threshold value can be set at 5 Mbits/s (5 Megabits per second). If the communication rate for the connection falls below 5 Mbits/s, the wireless communication enabled device can identify the connection as a degraded connection.
  • the wireless communication enabled device can set a network reevaluation timer and re-check the quality of the network connection when the network reevaluation timer has expired.
  • the length of the network reevaluation timer is set based on the network quality score assigned to the wireless communications network. For example, a wireless communications network having a higher network quality score (e.g., a 4G LTE network) can have a longer network reevaluation timer than a wireless communications network having a lower network quality score (e.g., a 3G network).
  • the network reevaluation timer can be set to 25 minutes for a 3.5G network while the network reevaluation timer is set to five seconds for a 2G network.
  • the wireless communications network may re-check the quality of the network connection to determine if the quality of the connection is still degraded. If the network quality has improved to a point of no longer being considered degraded, the wireless communication enabled device may continue to use the wireless communications network for wireless communications. If the network quality is still degraded, the wireless communication enabled device switches to another available wireless communications network. Continuing with the above example, the wireless communication enabled device initially compares the download speeds for the network connection to the threshold of 5 Mbits/s. If the download speed is below this threshold value, the wireless communication enabled device starts the network reevaluation timer.
  • the wireless communications network is a 3.5G network and the wireless communication enabled device sets the network reevaluation timer to 25 minutes (the length of the timer being based on the network type). Upon expiration of the network reevaluation timer, the wireless communication enabled device reevaluates the download speed of the wireless connection. If the download speed is still below 5 Mbits/s, the wireless communication enabled device ends the connection with the wireless communications network and establishes a network connection with a different available wireless communications network.
  • the wireless communication enabled device if the new network that the wireless communication enabled device establishes a connection with after determining that the original network was still degraded has a lower network quality score than the original network, the wireless communication enabled device will switch back to the original network (e.g., immediately or after a predetermined delay). In some implementations, after switching back to the original network, the wireless communication enabled device will “lock on” to the original network for a set period of time before reevaluating the quality of the original network or switching to any other networks. The set period of time may be different than the initial reevaluation timer value (and may be greater).
  • the lock on time can be based on one or more factors including a network quality score for the original network, historical network communication speeds for the original network, the network type of the original network, or the service provider for the original network.
  • the lock on time can also be a predetermined length of time (e.g., three minutes).
  • the wireless communication enabled device is only locked on to the original network while the wireless communication enabled device remains in the same relative geographic area. For example, the wireless communication enabled device can switch to another wireless communications network prior to expiration of the lock on time if the wireless communication enabled device moves to another location (e.g., moves so that the device is served by a different base station).
  • a wireless communication system 100 includes a mobile device 102 which can be employed by a user to send and receive data over various types of wireless networks, such as a communications provider's 3G and/or 4G networks, a local WiFi network, and/or a BLUETOOTH network.
  • the mobile computing device 102 may include a web browser for accessing Internet web pages, and/or may include one or more mobile device applications (“apps”) for accessing cloud-based data services.
  • the mobile device 102 can be, for example, a smart phone or other cellular phone device, a tablet device, a laptop computer, a PDA, or any other mobile computing device having wireless communication capability.
  • the mobile device 102 is located in a geographic area with multiple wireless communications service providers providing wireless communication services.
  • each of the wireless communications service providers can have one or more access towers capable of establishing a communications link with the mobile device 102 at its present location.
  • a wireless communications service providers can have multiple wireless network access points (e.g., communications towers) capable of communicating with a mobile device at a given location.
  • the mobile computing device 102 may connect with one of the network's access points, such as a 2G 3G or 4G network's cell tower, and/or a WiFi network's wireless router.
  • the mobile computing device 102 may include hardware and/or software interfaces for detecting access points that may be in range, for receiving information about the access points (e.g., access point identifiers, signal strength information, network traffic statistics, etc.), and for handling data communication via the access points.
  • the mobile computing device 102 is presently in range of (and may communicate with) network access points 104 , 106 , and 108 which may be fee-based access points or free (no fee) access points.
  • a fee-based network access point may be associated with a mobile data network (e.g., 3G mobile data network, 4G mobile data network) that charges a fee (e.g., monthly subscription fee, usage fee) for access to the mobile data network.
  • a free network access point can be a WiFi access point.
  • each of the network access points 104 , 106 , and 108 has a respective communications range 110 , 112 , and 114 .
  • the mobile device 102 is located in an area where the communications ranges 110 , 112 , and 114 of the network access points 104 , 106 , and 108 overlap. Therefore, the mobile device 102 can connect to any of the network access points 104 , 106 , and 108 to establish a communication connection.
  • the mobile device 102 can establish a connection with the network access point 104 which allows the mobile device 102 to communicate over a cellular communications network to, for example, place a wireless telephone call to another wired or wireless telephone communication enabled device.
  • the network access points 104 , 106 , and 108 can be affiliated with different wireless communications service providers, employ different wireless communications technologies, and/or have varying levels of communications quality.
  • network access point 104 may be associated with wireless company A
  • network access point 106 is associated with wireless company B
  • network access point 108 is associated with wireless company C.
  • each of network access points 104 , 106 , and 108 can employ a different wireless communication technology.
  • network access point 104 may be part of a 3G network while network access point 106 is part of a 2G network and network access point 108 is part of a 4G LTE network.
  • the user of the mobile device 102 may have a contractual relationship with one of the wireless companies A, B, and C.
  • the wireless companies A, B, and C may have contractual relationships with each other (or with a different telecommunications service provider with which the user of the mobile device 102 has a mobile service contract) which allows the mobile device 102 to access the networks of wireless companies A, B, and C for wireless communications.
  • the mobile device 102 may not have information on network connection quality, network technology level (e.g., 2G, 3G, 4G, etc.), or affiliated service provider for one or more of the network access points 104 , 106 , and 108 .
  • the mobile device 102 may possess some but not all of this information for one or more of the network access points 104 , 106 , and 108 . In such situations, the mobile device 102 may select a network access point to establish communications with based on initially detected signal strength, or possibly using a random or pseudo random selection process.
  • the mobile device 102 can detect that it is within communication range of the network access points 104 , 106 , and 108 based on being located within the communications ranges 110 , 112 , and 114 .
  • the mobile device 102 can initially establish a connection with the network access point 104 .
  • the mobile device 102 can obtain or identify information about the network access point 104 and the communication connection with the network access point 104 .
  • the connection quality level can be based on, for example, upload speeds of data communications, download speeds of data communications, upload speeds for voice communications, download speeds for voice communications, or a combination of any of these and other factors.
  • upload and download speeds can include currently observed upload and download speeds (e.g., upload and download speeds observed by the mobile device 102 ), historically observed upload and download speeds (e.g., upload and download speeds historically observed by the mobile device 102 and/or other mobile devices), and/or advertised download speeds (e.g., advertised by the network access point when the communications connection is established).
  • currently observed upload and download speeds e.g., upload and download speeds observed by the mobile device 102
  • historically observed upload and download speeds e.g., upload and download speeds historically observed by the mobile device 102 and/or other mobile devices
  • advertised download speeds e.g., advertised by the network access point when the communications connection is established.
  • the mobile device 102 can access historic network connection information for one or more of the network access points 104 , 106 , and 108 .
  • the current geographic location of the mobile device 102 can be a location in which the mobile device 102 has been located in the past and the mobile device 102 may have stored information on past communications connections with one or more of the network access points 104 , 106 , and 108 .
  • the mobile device 102 can be currently located in a location that is frequented by the user of the mobile device 102 , such as the user's home or workplace.
  • historic network connection information can be information obtained by other mobile devices.
  • a server can receive network connection information from multiple mobile devices and store the information for later retrieval.
  • the mobile device 102 can access the server to receive some or all of the network connection information for a particular network access point, wireless communications service provider, or geographic area.
  • the historic network connection information is stored locally on the mobile device 102 .
  • the mobile device 102 will rely only on information that has been observed and/or collected by the mobile device 102 .
  • the historic network connection information can include historically observed download and upload speeds, location information indicating a specific or approximate location for a network access point, an identity of a wireless communications service provider associated with a network access point, or a wireless communication technology being employed by a network access point.
  • the geographic location of the mobile device 102 may be generalized (such as to a city, ZIP code, cellular tower coverage region, or general geographic area), so that a particular location of a user cannot be determined based on preferences selected by the user of the mobile device 102 . Thus, the user may have control over how information is collected about his or her location.
  • the mobile device 102 can use one or more characteristics associated with the network access point 104 or with the communication connection between the mobile device 102 and the network access point 104 to assign one or more ratings to the network access point 104 .
  • Characteristics that can be used in determining a rating for the network access point 104 can include the identity of a wireless communications service provider associated with the network access point 104 , a communications technology employed by the network access point 104 , an approximate distance of the mobile device 102 to the network access point 104 , a specific or approximate location of the network access point 104 , a specific or approximate location of the mobile device 102 , and a connection quality level for the connection between the mobile device 102 and the network access point 104 .
  • the mobile device 102 can assign a higher rating to a network access point that employs 4G LTE technology than to a network access point that employs 3G technology.
  • the mobile device 102 can assign a higher rating to the network access point 104 than a rating assigned to the network access point 106 .
  • network access point 106 and network access point 108 may employ the same wireless communication technology (e.g., both are part of a 3G network) but may be associated with different wireless communications service providers (e.g., network access point 106 is affiliated with wireless company B and network access point 108 is affiliated with wireless company C).
  • the mobile device 102 can access information on historic connection quality levels for each of wireless company B and wireless company C for the geographic area of the mobile device 102 to assign different ratings to network access point 106 and network access point 108 despite network access point 106 and network access point 108 employing the same wireless communication technology.
  • the mobile device 102 can provide privacy controls that allow a user to indicate what characteristics associated with a network access point or what historic information is collected or what information is used in assigning ratings to the network access point.
  • the mobile device 102 characteristics such as a more advanced wireless communication technology (e.g., 4G LTE over 3G), higher upload and download speeds, higher levels of historic connection quality for a particular wireless communications service provider (either overall, or based on the geographic area of the mobile device 102 ), or a closer proximity between the mobile device 102 and a network access point can lead to a higher rating for the network access point.
  • a more advanced wireless communication technology e.g., 4G LTE over 3G
  • higher upload and download speeds e.g., higher upload and download speeds
  • higher levels of historic connection quality for a particular wireless communications service provider either overall, or based on the geographic area of the mobile device 102
  • a closer proximity between the mobile device 102 and a network access point can lead to a higher rating for the network access point.
  • characteristics such as a less advanced wireless communication technology (e.g., 2G as compared to 3G), lower upload and download speeds, lower levels of historic connection quality for a particular wireless communications service provider (either overall, or based on the geographic area of the mobile device 102 ), or a greater distance between the mobile device 102 and a network access point can, in general, lead to a lower rating for the network access point.
  • the mobile device 102 can assign a rating to a network access point at the time of establishing a connection with the network access point or at a later time such as when the mobile device 102 attempts to transmit a voice or data communication over the connection, or at a predetermined time after establishing the connection with the network access point.
  • the mobile device 102 has established a connection with the network access point 104 and may or may not have assigned a rating to the network access point 104 based on some or all of the above described currently observed or historic characteristics.
  • the mobile device 102 can then determine a current quality of the connection between the mobile device 102 and the network access point 104 .
  • the connection quality determination can include calculating a numeric value for the connection.
  • the mobile device 102 can identify current upload and download speeds for the connection and assign a value to the connection quality based on the upload and download speeds.
  • the mobile device 102 can then determine that the connection has degraded below a particular quality level by, for example, comparing the current quality level to a threshold level.
  • the mobile device 102 can determine that the connection is a degraded connection. Other factors can also be used to determine that the connection has degraded.
  • the mobile device 102 can determine the quality level of the connection, and determine if the connection with the network access point 104 has degraded below the threshold quality level, at the time of establishing a connection with the network access point 104 or at a later time such as when the mobile device 102 attempts to transmit a voice or data communication over the connection, or at a predetermined time after establishing the connection with the network access point 104 .
  • the mobile device 102 can identify a length of time after which the mobile device 102 will reevaluate the quality of the connection. In some implementations, this can involve setting a reevaluation timer or a reevaluation alarm to a set time value and then reevaluating the network connection after the expiration of that set time. In some implementations, the identified length of time after which the mobile device 102 reevaluates the quality of the connection can be determined based on the rating previously assigned to the network access point 104 . For example, the higher the rating, the higher the reevaluation time.
  • one or more characteristics of the network access point 104 or the connection between the mobile device 102 and the network access point 104 can be used to identify a reevaluation time without first determining a rating for the network access point 104 .
  • the mobile device 102 can assign a 3G network with a reevaluation time of 10 minutes, while the mobile device 102 assigns a 4G LTE network with a reevaluation time of 2 hours.
  • the mobile device 102 can assign a 3G network affiliated with wireless company A with a reevaluation time of 15 minutes while assigning a 3G network affiliated with wireless company B with a reevaluation time of 23 minutes.
  • the mobile device 102 After the identified reevaluation time has passed (or after a reevaluation timer or reevaluation alarm has expired) the mobile device 102 reevaluates the quality of the connection with the network access point 104 . If the connection quality has improved (e.g., the connection is no longer degraded, or one or more connection quality metrics are above a threshold level) the mobile device 102 maintains the connection with the network access point 104 and transmits and receives future communications over the connection with the network access point 104 . If the connection quality is still in a degraded state (e.g., one or more connection quality metrics are below a threshold level), the mobile device 102 can end the connection with the network access point 104 and switch to another network.
  • the connection quality has improved (e.g., the connection is no longer degraded, or one or more connection quality metrics are above a threshold level) the mobile device 102 maintains the connection with the network access point 104 and transmits and receives future communications over the connection with the network access
  • the mobile device 102 determines that the connection with network access point 104 is still in a degraded state (e.g., upload and download speeds are below threshold levels), the mobile device 102 can end the connection with the network access point 104 and establish a connection with the network access point 106 .
  • a degraded state e.g., upload and download speeds are below threshold levels
  • a timer for reevaluating the quality of the connection with the network access point 104 allows the mobile device 102 avoid switching between communication networks or communication network access points more frequently than is optimal. For example, if the quality of the connection has improved above a threshold or degraded level after the identified reevaluation time is passed, the mobile device 102 can maintain the connection with the network access point 104 rather than switching to another network access point.
  • the mobile device 102 can set yet another time period to wait before evaluating the connection to the network access point 104 a third time.
  • This second time period can be the same length as the first reevaluation time period, or can be a different length of time.
  • Some or all of the factors used for determining the length of first reevaluation waiting period can be used to determine the length of the second reevaluation waiting period.
  • factors used for determining the length of first reevaluation waiting period e.g., the identity of a wireless communications service provider associated with the network access point 104 , a communications technology employed by the network access point 104 , an approximate distance of the mobile device 102 to the network access point 104 , a specific or approximate location of the network access point 104 , a specific or approximate location of the mobile device 102 , and historic connection quality level information
  • the mobile device 102 can use one or more of these factors to determine if the connection to the network access point 104 should be ended after the second evaluation of the network quality, or if the mobile device 102 should wait a second reevaluation time period before evaluating the connection quality a third time. For example, if the network access point 104 employs 3G technology, the mobile device 102 can disconnect from the network access point 104 and connect to a different network access point after two successive determinations that the connection is degraded. Continuing with this example, if the network access point 104 is a 4G LTE network, the mobile device 102 can determine that a third evaluation of the connection should be performed based on the network access point 104 employing a higher level of network technology. The mobile device 102 can therefore wait for a second reevaluation time period to reevaluate the connection quality a third time if there have been two successive determinations that the connection is degraded.
  • the mobile device 102 in response to the mobile device 102 determining that the connection with the network access point 104 is degraded at two or more points in time, can end the communication connection with the network access point 104 and establish a connection with another network access point. For example, the mobile device 102 can establish a communications connection with the network access point 106 . Upon establishing the connection with the network access point 106 , the mobile device 102 can obtain or identify information about the network access point 106 and the communication connection with the network access point 106 .
  • the connection quality level can be based on, for example, upload speeds of data communications, download speeds of data communications, upload speeds for voice communications, download speeds for voice communications, or a combination of any of these and other factors.
  • upload and download speeds can include currently observed upload and download speeds (e.g., upload and download speeds observed by the mobile device 102 ), historically observed upload and download speeds (e.g., upload and download speeds historically observed by the mobile device 102 and/or other mobile devices), and/or advertised download speeds (e.g., advertised by the network access point when the communications connection is established).
  • information that is identified or obtained for the network access point 106 can be used by the mobile device 102 to determine if the mobile device 102 should remain connected to the network access point 106 or if the mobile device 102 should return to communicating with the network access point 104 (i.e., reestablish a communications connection with the network access point 104 ).
  • the mobile device 102 can identify the mobile communication technology employed by the network access point 106 and use this information to determine if the mobile device 102 should remain in communication with the network access point 106 or return to communicating with the network access point 104 . For example, if the identified mobile communication technology for the network access point 106 is a lower level technology than the mobile communication technology employed by the network access point 104 , the mobile device 102 will automatically switch back to communicating with the network access point 104 .
  • the mobile device 102 if the network access point 104 is a 3.5G network, and the network access point 106 is a 3G network, if the mobile device 102 has just switched from the network access point 104 to the network access point 106 , upon detecting that the network access point 106 is a 3G network, the mobile device 102 switches back to communicating with the network access point 104 because the network access point 104 is a 3.5G network. As another example, if the network access point 104 is a 3.5G network, and the network access point 106 is a 4G network, the mobile device 102 will maintain the connection with the network access point 106 after switching from the network access point 104 .
  • the current connection quality for the connection to the network access point 106 can be compared to a previously determined connection quality for the previous connection with the network access point 104 . If the mobile device 102 identifies that the connection with the network access point 106 is of a lower quality than the previous connection with the network access point 104 , the mobile device 102 can switch back to communicating with the network access point 104 .
  • the mobile device 102 after switching from a first network to a second network and then switching back to the first network as discussed above, the mobile device 102 will “lock on” to the first network for a period of time after switching back to the first network. For example, the mobile device 102 can identify that a connection with the network access point 104 is degraded during two different evaluations of the network (spaced apart by an identified reevaluation time as described above). The mobile device 102 then switches to a connection with the network access point 108 . In this example, after establishing the connection with the network access point 108 , the mobile device 102 receives information indicating that the network access point 108 is a 3G network.
  • the network access point 104 is a 4G LTE network, and therefore uses a higher level mobile communications technology than the network access point 108 .
  • the mobile device 102 switches back to communicating with the network access point 104 and then “locks on” to this connection for a set period of time before evaluating the connection quality to determine if the mobile device 102 should attempt to connect to yet another network.
  • the lock on time period can be based upon a number of factors including network type, service provider identity, historically observed network quality (e.g., upload and download speeds), packet loss rate, location, distance of a communications tower from the wireless communication enabled device, and current service quality.
  • the lock on time for a particular network access point can be a different length than a reevaluation time for that network access point, even in situations where the same factors are used to determine the lock on time and the reevaluation time.
  • the mobile device 102 evaluates the connection quality.
  • the mobile device 102 can identify and set a reevaluation time period, and reevaluate the connection quality after the reevaluation time period has expired. Alternatively, upon expiration of the lock on time period, if the mobile device 102 determines that the connection quality is degraded, the mobile device 102 will switch to another network access point at that point rather than waiting for a reevaluation time period to expire and reevaluating the connection quality again.
  • a threshold level e.g., data download and upload speeds are below threshold download and upload speeds
  • the mobile device 102 switches to another network. For example, the mobile device 102 can discontinue communications with the network access point 104 and establish a connection with the network access point 106 .
  • the mobile device 102 if the mobile device 102 switches from a first network to a second network, then back to the first network, and identifies a degraded connection with the first network after a lock on time period has passed, the mobile device 102 will not switch back to the second network, but will instead attempt to establish a connection with a third network that is different than the second network.
  • the mobile device 102 will only remain “locked on” to the network access point 104 after switching back to the network access point 104 if the mobile device 102 does not move out of the present geographic location. If the mobile device 102 moves away from the present geographic location, the lock on time period is ignored and the mobile device 102 may connect to one or more other networks as necessary.
  • a threshold distance of movement can be set and the mobile device 102 must move, geographically, more than the threshold distance before the lock on time is ignored. In some implementations, the mobile device 102 will only ignore the lock on time if the mobile device 102 has moved more than a threshold distance from the network access point 104 .
  • a wireless communication enabled user device 202 is within communication range of a network access point 204 and a network access point 206 .
  • the user device 202 can be employed by a user to send and receive data over various types of wireless networks, such as a communications provider's 3G and/or 4G networks, a local WiFi network, and/or a BLUETOOTH network.
  • the user device 202 may include a web browser for accessing Internet web pages, and/or may include one or more mobile device applications (“apps”) for accessing cloud-based data services.
  • the user device 202 can be, for example, a smart phone or other cellular phone device, a tablet device, a laptop computer, a PDA, or any other computing device having wireless communication capability.
  • the user device 202 receives network information from the network access point 204 .
  • the network access point 204 can be associated with a service provider and allow the user device 202 to establish a communications connection to send and receive voice and data communications over the service provider's communications network.
  • the network information can be received, for example, by a wireless network interface 210 of the user device 202 .
  • the network information transmitted by the network access point 204 and received at the user device 202 can allow the user device 202 to perform a “handshake” with the network access point 204 to establish a communication connection.
  • the wireless network interface 210 of the user device 202 establishes a connection with the network access point 204 .
  • a network quality evaluation module 216 evaluates the quality of the network connection between the user device 202 and the network access point 204 .
  • the network quality evaluation module 216 can be implemented by a combination of hardware and software.
  • the network quality evaluation module 216 can identify or measure one or more characteristics of the network connection with the network access point 204 to evaluate the quality of the network connection. Characteristics of the network connection that can be identified or measured by the network quality evaluation module 216 can include upload speed, download speed, or pack loss rate.
  • the network quality evaluation module 216 can compare one or more characteristics of the network connection between the user device 202 and the network access point 204 to threshold values to determine if the network connection is degraded.
  • user device 202 can provide privacy controls that allow a user to indicate what characteristics of a network connection or other information is collected or can be accessed by the network quality evaluation module 216 in evaluating the quality of the network connection between the user device 202 and a network access point such as the network access point 204 .
  • the network quality evaluation module 216 can, at 218 , start a network reevaluation timer 220 .
  • the network reevaluation timer 220 can be implemented as a separate timer, or as software that monitors one or more clocks of the user device 202 or clock signals received by the user device 202 to determine when a set period of time has passed. The period of time for reevaluation can be determined based on one or more factors including network type associated with the network access point 204 , service provider identity for the network access point 204 , historically observed network quality (e.g., upload and download speeds), location, distance of the network access point 204 from the user device 202 , and current service quality.
  • the network reevaluation timer 220 can be set for a longer time if the network access point 204 is a 4G network than if the network access point 204 is a 3G network.
  • the network reevaluation timer 220 is set for a longer time for a first service provider identified as having a better network than a second service provider in the present geographic area based on historically observed data for the first and second service providers.
  • the time period for the network reevaluation timer 220 is determined based on a rating assigned to the network access point 204 .
  • the user device 202 can use one or more characteristics associated with the network access point 204 or with the communication connection between the user device 202 and the network access point 204 to assign one or more ratings to the network access point 204 . This rating can then be used to identify a reevaluation time period for the network access point 204 and the network reevaluation timer 220 can be set to the identified reevaluation time period.
  • the network reevaluation timer 220 expires.
  • the network quality evaluation module 216 or one or more other components of the user device 202 can determine that a set reevaluation time has passed.
  • the network reevaluation timer 220 can inform the network quality evaluation module 216 that the identified reevaluation time has passed.
  • the network quality evaluation module 216 reevaluates the quality of the network connection between the user device 202 and the network access point 204 .
  • the network quality evaluation module 216 determines, at 224 , that the network connection is still degraded (e.g., one or more characteristics of the connection is below a threshold level) the user device 202 ends the network connection with the network access point 204 .
  • the wireless network interface 210 in response to the network quality evaluation module 216 determining that the network connection with the network access point 204 was still in a degraded state (at 224 ) the wireless network interface 210 establishes a network connection with the network access point 206 .
  • the user device 202 if the wireless communication technology employed by the network access point 206 is below the level of the wireless communication technology employed by the network access point 204 , the user device 202 will switch back to communicating with the network access point 204 . In some implementations, the user device 202 can make a determination to switch back to the network access point 204 based on one or more other factors associated with the network access point 206 or the connection between the user device 202 and the network access point 206 , such as a current communication rate or an identity of a service provider associated with the network access point 206 .
  • the user device 202 can remain “locked on” to communication with the network access point 204 for a set period of time (determined based on one or more factors associated with the network access point 204 ) or until the geographic location of the user device 202 changes.
  • FIG. 3 shows a flow chart of an example process 300 for switching from a first wireless communication network to a second wireless communication network.
  • the process 300 can be performed by one or more devices in the systems depicted in FIG. 1 or 2 .
  • the process 300 can be performed by the mobile device 102 of FIG. 1 or the user device 202 of FIG. 2 .
  • Operations of the process 300 can be implemented by execution of instructions stored on a non-transitory computer readable medium. Execution of the instructions causes one or more data processing apparatus to perform operations of the process 300 .
  • a connection with a first wireless communications network is established ( 302 ).
  • a wireless communication enabled device can be within communication range of a number of wireless network access points.
  • the wireless network access points can be, for example, cellular communications towers, WiFi routers, or other wireless network access devices.
  • the wireless communication enabled device establishes a connection with one of the wireless network access points in communication range.
  • a characteristic of the first wireless communications network is identified ( 304 ).
  • the identified characteristic can be network type, service provider identity, historically observed network quality (e.g., upload and download speeds), packet loss rate, location, distance of a communications tower from the wireless communication enabled device, and current service quality.
  • the wireless communication enabled device can identify that the first wireless communications network is a 3G network.
  • the identified characteristic can be based on currently observed information and/or historically observed information associated with the first wireless communications network.
  • the identified characteristic can be used to assign a rating to the first wireless communications network. The rating can be determined based on the identified characteristic alone, or using the identified characteristic in combination with one or more other characteristics associated with the first wireless communications network or the connection between the wireless communication enabled device and the first wireless communications network.
  • a determination that the connection with the first wireless communication network has degraded below a threshold quality level can be made ( 306 ).
  • the wireless communication enabled device can measure one or more characteristics of the connection with the first wireless communications network and compare the characteristics to threshold levels to determine if the quality of the connection has degraded. These characteristics can include upload speed, download speed, and packet loss rate. For example, if the upload speed for the connection is below a threshold level, the wireless communication enabled device can determine that the connection is degraded. As another example, if the download speed for the connection is below a threshold level, the wireless communication enabled device can determine that the connection is degraded.
  • a time at which to reevaluate whether the connection is still below the threshold quality level is identified ( 308 ).
  • the time at which to reevaluate whether the connection is still below the threshold quality level (or, “reevaluation time”) can be at least partially based on the characteristic of the first wireless communications network identified at 304 .
  • the reevaluation time can be identified based on a level of wireless communications technology employed by the first wireless communications network, with a higher level technology (e.g., a 4G LTE network) having a higher reevaluation time than a lower level technology (e.g., a 2G network).
  • the reevaluation time is based on a rating assigned to the first wireless communications network, the rating having been based at least in part on the characteristic identified at 304 .
  • a determination that the connection with the first wireless communication network is still below the threshold quality level is made ( 310 ). This determination can be made in response to having determined that the time at which to reevaluate whether the connection with the first wireless communication network has degraded below the threshold quality level (the “reevaluation time”) has expired. For example, the wireless communication enabled device can determine that the identified reevaluation time has passed since the first time that the connection quality was assessed at 306 . Upon determining that the identified reevaluation time has passed, the wireless communication enabled device can evaluate the connection with the first wireless communications network to determine that the connection is still below the threshold quality level. For example, the download speed for the connection may have changed since the first evaluation of the connection at 306 , but is still below the threshold download speed value.
  • a connection with a second wireless communications network is established ( 312 ).
  • the connection with the second wireless communications network can be established in response to determining that the connection with first wireless communication network had degraded below the threshold quality level at 306 and determining that the connection with the first wireless communication network was still below the threshold quality level at 310 .
  • the wireless communication enabled device can end the connection with the first wireless communications network and establish a connection with a second, different, wireless communications network that is within communication range of the wireless communication enabled device.
  • FIG. 4 shows an example of a generic computer device 400 and a generic mobile computer device 450 , which may be used with the techniques described here.
  • Computing device 400 is intended to represent various forms of digital computers, such as laptops, desktops, workstations, personal digital assistants, servers, blade servers, mainframes, and other appropriate computers.
  • Computing device 450 is intended to represent various forms of mobile devices, such as personal digital assistants, cellular telephones, smartphones, and other similar computing devices.
  • the components shown here, their connections and relationships, and their functions, are meant to be exemplary only, and are not meant to limit implementations of the inventions described and/or claimed in this document.
  • Computing device 400 includes a processor 402 , memory 404 , a storage device 406 , a high-speed interface 408 connecting to memory 404 and high-speed expansion ports 410 , and a low speed interface 412 connecting to low speed bus 414 and storage device 406 .
  • Each of the components 402 , 404 , 406 , 408 , 410 , and 412 are interconnected using various busses, and may be mounted on a common motherboard or in other manners as appropriate.
  • the processor 402 can process instructions for execution within the computing device 400 , including instructions stored in the memory 404 or on the storage device 406 to display graphical information for a GUI on an external input/output device, such as display 416 coupled to high speed interface 408 .
  • multiple processors and/or multiple buses may be used, as appropriate, along with multiple memories and types of memory.
  • multiple computing devices 400 may be connected, with each device providing portions of the necessary operations (e.g., as a server bank, a group of blade servers, or a multi-processor system).
  • the memory 404 stores information within the computing device 400 .
  • the memory 404 is a volatile memory unit or units.
  • the memory 404 is a non-volatile memory unit or units.
  • the memory 404 may also be another form of computer-readable medium, such as a magnetic or optical disk.
  • the storage device 406 is capable of providing mass storage for the computing device 400 .
  • the storage device 406 may be or contain a computer-readable medium, such as a floppy disk device, a hard disk device, an optical disk device, or a tape device, a flash memory or other similar solid state memory device, or an array of devices, including devices in a storage area network or other configurations.
  • a computer program product can be tangibly embodied in an information carrier.
  • the computer program product may also contain instructions that, when executed, perform one or more methods, such as those described above.
  • the information carrier is a computer- or machine-readable medium, such as the memory 404 , the storage device 406 , memory on processor 402 , or a propagated signal.
  • the high speed controller 408 manages bandwidth-intensive operations for the computing device 400 , while the low speed controller 412 manages lower bandwidth-intensive operations.
  • the high-speed controller 408 is coupled to memory 404 , display 416 (e.g., through a graphics processor or accelerator), and to high-speed expansion ports 410 , which may accept various expansion cards (not shown).
  • low-speed controller 412 is coupled to storage device 406 and low-speed expansion port 414 .
  • the low-speed expansion port which may include various communication ports (e.g., USB, Bluetooth, Ethernet, wireless Ethernet) may be coupled to one or more input/output devices, such as a keyboard, a pointing device, a scanner, or a networking device such as a switch or router, e.g., through a network adapter.
  • input/output devices such as a keyboard, a pointing device, a scanner, or a networking device such as a switch or router, e.g., through a network adapter.
  • the computing device 400 may be implemented in a number of different forms, as shown in the figure. For example, it may be implemented as a standard server 420 , or multiple times in a group of such servers. It may also be implemented as part of a rack server system 424 . In addition, it may be implemented in a personal computer such as a laptop computer 422 . Alternatively, components from computing device 400 may be combined with other components in a mobile device (not shown), such as device 450 . Each of such devices may contain one or more of computing device 400 , 450 , and an entire system may be made up of multiple computing devices 400 , 450 communicating with each other.
  • Computing device 450 includes a processor 452 , memory 464 , an input/output device such as a display 454 , a communication interface 466 , and a transceiver 468 , among other components.
  • the device 450 may also be provided with a storage device, such as a microdrive or other device, to provide additional storage.
  • a storage device such as a microdrive or other device, to provide additional storage.
  • Each of the components 450 , 452 , 464 , 454 , 466 , and 468 are interconnected using various buses, and several of the components may be mounted on a common motherboard or in other manners as appropriate.
  • the processor 452 can execute instructions within the computing device 450 , including instructions stored in the memory 464 .
  • the processor may be implemented as a chipset of chips that include separate and multiple analog and digital processors.
  • the processor may provide, for example, for coordination of the other components of the device 450 , such as control of user interfaces, applications run by device 450 , and wireless communication by device 450 .
  • Processor 452 may communicate with a user through control interface 458 and display interface 456 coupled to a display 454 .
  • the display 454 may be, for example, a TFT LCD (Thin-Film-Transistor Liquid Crystal Display) or an OLED (Organic Light Emitting Diode) display, or other appropriate display technology.
  • the display interface 456 may comprise appropriate circuitry for driving the display 454 to present graphical and other information to a user.
  • the control interface 458 may receive commands from a user and convert them for submission to the processor 452 .
  • an external interface 462 may be provided in communication with processor 452 , so as to enable near area communication of device 450 with other devices. External interface 462 may provide, for example, for wired communication in some implementations, or for wireless communication in other implementations, and multiple interfaces may also be used.
  • the memory 464 stores information within the computing device 450 .
  • the memory 464 can be implemented as one or more of a computer-readable medium or media, a volatile memory unit or units, or a non-volatile memory unit or units.
  • Expansion memory 474 may also be provided and connected to device 450 through expansion interface 472 , which may include, for example, a SIMM (Single In Line Memory Module) card interface.
  • SIMM Single In Line Memory Module
  • expansion memory 474 may provide extra storage space for device 450 , or may also store applications or other information for device 450 .
  • expansion memory 474 may include instructions to carry out or supplement the processes described above, and may include secure information also.
  • expansion memory 474 may be provide as a security module for device 450 , and may be programmed with instructions that permit secure use of device 450 .
  • secure applications may be provided via the SIMM cards, along with additional information, such as placing identifying information on the SIMM card in a non-hackable manner.
  • the memory may include, for example, flash memory and/or NVRAM memory, as discussed below.
  • a computer program product is tangibly embodied in an information carrier.
  • the computer program product contains instructions that, when executed, perform one or more methods, such as those described above.
  • the information carrier is a computer- or machine-readable medium, such as the memory 464 , expansion memory 474 , memory on processor 452 , or a propagated signal that may be received, for example, over transceiver 468 or external interface 462 .
  • Device 450 may communicate wirelessly through communication interface 466 , which may include digital signal processing circuitry where necessary. Communication interface 466 may provide for communications under various modes or protocols, such as GSM voice calls, SMS, EMS, or MMS messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000, or GPRS, among others. Such communication may occur, for example, through radio-frequency transceiver 468 . In addition, short-range communication may occur, such as using a Bluetooth, WiFi, or other such transceiver (not shown). In addition, GPS (Global Positioning System) receiver module 470 may provide additional navigation- and location-related wireless data to device 450 , which may be used as appropriate by applications running on device 450 .
  • GPS Global Positioning System
  • Device 450 may also communicate audibly using audio codec 460 , which may receive spoken information from a user and convert it to usable digital information. Audio codec 460 may likewise generate audible sound for a user, such as through a speaker, e.g., in a handset of device 450 . Such sound may include sound from voice telephone calls, may include recorded sound (e.g., voice messages, music files, etc.) and may also include sound generated by applications operating on device 450 .
  • Audio codec 460 may receive spoken information from a user and convert it to usable digital information. Audio codec 460 may likewise generate audible sound for a user, such as through a speaker, e.g., in a handset of device 450 . Such sound may include sound from voice telephone calls, may include recorded sound (e.g., voice messages, music files, etc.) and may also include sound generated by applications operating on device 450 .
  • the computing device 450 may be implemented in a number of different forms, as shown in the figure. For example, it may be implemented as a cellular telephone 480 . It may also be implemented as part of a smartphone 482 , personal digital assistant, or other similar mobile device.
  • implementations of the systems and techniques described here can be realized in digital electronic circuitry, integrated circuitry, specially designed ASICs (application specific integrated circuits), computer hardware, firmware, software, and/or combinations thereof.
  • ASICs application specific integrated circuits
  • These various implementations can include implementation in one or more computer programs that are executable and/or interpretable on a programmable system including at least one programmable processor, which may be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device.
  • the systems and techniques described here can be implemented on a computer having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user and a keyboard and a pointing device (e.g., a mouse or a trackball) by which the user can provide input to the computer.
  • a display device e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor
  • a keyboard and a pointing device e.g., a mouse or a trackball
  • Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form, including acoustic, speech, or tactile input.
  • the systems and techniques described here can be implemented in a computing system that includes a back end component (e.g., as a data server), or that includes a middleware component (e.g., an application server), or that includes a front end component (e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the systems and techniques described here), or any combination of such back end, middleware, or front end components.
  • the components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network (“LAN”), a wide area network (“WAN”), and the Internet.
  • LAN local area network
  • WAN wide area network
  • the Internet the global information network
  • the computing system can include clients and servers.
  • a client and server are generally remote from each other and typically interact through a communication network.
  • the relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
  • the users may be provided with an opportunity to control whether programs or features collect personal information (e.g., information about a user's social network, social actions or activities, profession, a user's preferences, or a user's current location), or to control whether and/or how to receive content from the content server that may be more relevant to the user.
  • personal information e.g., information about a user's social network, social actions or activities, profession, a user's preferences, or a user's current location
  • certain data may be anonymized in one or more ways before it is stored or used, so that personally identifiable information is removed.
  • a user's identity may be anonymized so that no personally identifiable information can be determined for the user, or a user's geographic location may be generalized where location information is obtained (such as to a city, ZIP code, or state level), so that a particular location of a user cannot be determined.
  • location information such as to a city, ZIP code, or state level
  • the user may have control over how information is collected about him or her and used by a content server.
  • one or more functions described as being performed by a mobile computing device can be performed by one or more remote servers and the results of these functions can be communicated to the mobile computing device.
  • a rating for a wireless communications network access point can be made by a remote server based on one or more characteristics of the wireless communications network access point. The remote server can then convey the rating to the mobile computing device.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • Electromagnetism (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

A wireless communication enabled device can establish a connection with a wireless communications network and can assign a network quality score to the wireless communications network based on one or more characteristics of the wireless communications network. The wireless communication enabled device can observe a current quality of the connection with the wireless communications network. If the quality of the network connection has degraded below a threshold level, the wireless communication enabled device can start a network reevaluation timer. The length of time monitored by the network reevaluation timer can be based on the assigned network quality score. Upon expiration of the network reevaluation timer, the wireless communication enabled device reevaluates the quality of the network connection. If the network connection is still in a degraded state at the time of reevaluation, the wireless communication enabled device may switch to another available wireless communications network.

Description

    CROSS-REFERENCE TO RELATED APPLICATIONS
  • This application is a continuation of U.S. patent application Ser. No. 14/824,326, filed Aug. 12, 2015, inventors Weihua Tan et al., entitled “SWITCHING BETWEEN NETWORKS BASED ON QUALITY OF AVAILABLE NETWORKS”, commonly assigned to the assignee of the present application, which is hereby incorporated by reference.
  • TECHNICAL FIELD
  • This technology relates to wireless communications networks, and more particularly to wireless network selection by a wireless communication enabled device.
  • BACKGROUND
  • At many geographic locations, there are a plurality of wireless networks to which a client device is able to connect. Typically, an available wireless network is selected by a client device or a user of the client device. In some cases, a client device can select a wireless network based on a contractual relationship between a customer of the client device and a service provider that is associated with a particular wireless network.
  • SUMMARY
  • A wireless communication enabled device can establish a network connection with a wireless communications network in an area with multiple available wireless communications networks. The wireless communication enabled device can assign a network quality score to the wireless communications network based on a number of factors, including the type of mobile telecommunications technology employed by the wireless communications network, the service provider associated with the wireless communications network, and historically-observed communication speeds for the wireless communications network. The wireless communication enabled device can observe a current quality of the connection with the wireless communications network. If the quality of the network connection has degraded below a threshold level, the wireless communication enabled device can start a network reevaluation timer. The length of time monitored by the network reevaluation timer can be based on the network quality score that is assigned to the wireless communications network. Upon expiration of the network reevaluation timer, the wireless communication enabled device reevaluates the quality of the network connection. If the network connection is still in a degraded state at the time of reevaluation, the wireless communication enabled device may switch to another available wireless communications network.
  • In general, one innovative aspect of the subject matter described in this specification can be embodied in methods that include the actions of establishing, by a computing device, a connection with a first wireless communication network; identifying, by the computing device, a characteristic of the first wireless communication network; determining, by the computing device and at a first point in time, that the connection with the first wireless communication network has degraded below a threshold quality level; identifying, by the computing device, a time at which to reevaluate whether the connection with the first wireless communication network is still below the threshold quality level, the time identified at least partially based on the characteristic of the first wireless communication network; determining, by the computing device, at a second point in time and in response to having determined that the time at which to reevaluate whether the connection with the first wireless communication network is still below the threshold quality level has expired, that the connection with the first wireless communication network is still below the threshold quality level; and responsive to determining, at the first point in time, that the connection with the first wireless communication network had degraded below the threshold quality level and determining, at the second point in time, that the connection with the first wireless communication network was still below the threshold quality level, establishing, by the computing device, a connection with a second wireless communication network. Other embodiments of this aspect include corresponding systems, apparatus, and computer programs, configured to perform the actions of the methods, encoded on computer storage devices.
  • These and other embodiments can each optionally include one or more of the following features. The characteristic can identify a mobile communication technology employed by the first wireless communication network. Identifying the characteristic of the first wireless communication network can include identifying the characteristic based on historically observed network connectivity speeds for the first wireless communication network. Identifying the time at which to reevaluate whether the connection with the first wireless communication network is still below the threshold quality level can include assigning a rating to the first wireless communication network, the rating being based on at least one of a mobile communication technology employed by the first wireless communication network and historically observed network connectivity speeds for the first wireless communication network. The characteristic can identify a wireless communications service provider associated with the first wireless communication network. The threshold quality level can be determined based on historically observed network connectivity quality for a plurality of wireless communication networks.
  • The actions can further include identifying, by the computing device, a characteristic of the second wireless communication network; determining, by the computing device and at a third point in time, that the connection with the second wireless communication network has degraded below the threshold quality level; identifying, by the computing device, another time at which to reevaluate whether the connection with the second wireless communication network is still below the threshold quality level at least partially based on the characteristic of the second wireless communication network; determining, by the computing device, at a fourth point in time and in response to having determined that the another time at which to reevaluate whether the connection with the second wireless communication network is still below the threshold quality level has expired, that the connection with the second wireless communication network is still below the threshold quality level; and responsive to determining, at the third point in time, that the connection with the second wireless communication network had degraded below the threshold quality level and determining, at the fourth point in time, that the connection with the first wireless communication network was still below the threshold quality level, establishing, by the computing device, a connection with a third wireless communication network.
  • The time at which to reevaluate whether the connection with the first wireless communication network is still below the threshold quality level can be identified using a first reevaluation length of time calculated based on the characteristic of the first wireless communication network. The another time at which to reevaluate whether the connection with the second wireless communication network is still below the threshold quality level can be identified using a second reevaluation length of time calculated based on the characteristic of the second wireless communication network. The first reevaluation length of time can be different than the second reevaluation length of time.
  • The actions can further include identifying, by the computing device, a characteristic of the second wireless communication network; comparing, by the computing device, the characteristic of the first wireless communication network to the characteristic of the second wireless communication network to determine that the characteristic of the first wireless communication network is superior to the characteristic of the second wireless communication network; and responsive to determining that the characteristic of the first wireless communication network is superior to the characteristic of the second wireless communication network, ending the connection with the second wireless communication network and establishing another connection with the first wireless communication network.
  • The actions can further include identifying, by the computing device, a minimum length of time to maintain the another connection with the first wireless communication network; determining, by the computing device, at a third point in time, and in response to having determined that the minimum length of time to maintain the another connection with the first wireless communication network has expired, that the another connection with the first wireless communication network has degraded below a threshold quality level; identifying, by the computing device, another time at which to reevaluate whether the another connection with the first wireless communication network is still below the threshold quality level at least partially based on the characteristic of the first wireless communication network; determining, by the computing device, at a fourth point in time and in response to having determined that the another time at which to reevaluate whether the another connection is still below the threshold quality level has expired, that the another connection with the first wireless communication network is still below the threshold quality level; and responsive to determining, at the third point in time, that the another connection with the first wireless communication network had degraded below the threshold quality level and determining, at the fourth point in time, that the another connection with the first wireless communication network was still below the threshold quality level, establishing, by the computing device, a connection with a third wireless communication network.
  • Particular embodiments of the subject matter described in this specification can be implemented to realize none, one, or more of the following advantages. A mobile computing device can avoid switching between wireless communications networks at a higher than optimal rate. A mobile computing device can identify suboptimal network connections and switch between networks due to degradation in network connection quality while preserving battery life. A balance between identifying and establishing a network connection with a wireless communication network having an improved connection quality and avoiding switching between networks at a higher than optimal rate can be achieved. Wireless communications can be improved in scenarios in which a mobile computing device does not have full information about available wireless communications networks.
  • The details of one or more embodiments of the invention are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the invention will be apparent from the description and drawings, and from the claims.
  • DESCRIPTION OF DRAWINGS
  • FIG. 1 is a diagram of an example environment in which a client device can communicate with one or more wireless communication networks.
  • FIG. 2 is a diagram of an example data flow for a client device switching from one wireless communication network to another wireless communication network.
  • FIG. 3 is a flow chart of an example process for switching from a first wireless communication network to a second wireless communication network.
  • FIG. 4 is a block diagram of an example computer system.
  • Like reference symbols in the various drawings indicate like elements.
  • DETAILED DESCRIPTION
  • In general, a wireless communication enabled device can establish a connection with various wireless communication networks. For example, a mobile phone can establish a connection with a communications tower of a wireless communications network owned by a particular service provider. The mobile phone can then transmit and receive voice and data communications over the connection. As the wireless communication enabled device changes locations, the wireless communication enabled device may move out of communication range with some wireless communications networks and into communication range for other wireless communications networks. For example, as a person drives along a highway with a mobile phone in his pocket, the available networks with which the mobile phone can establish a communication connection changes (e.g., because one service provider may have invested in more cell phone towers in a region than another service provider). In many geographic locations, numerous wireless communication networks are available to establish communications connections with the wireless communication enabled device.
  • In some cases, a user of a wireless communication enabled device has a contractual relationship with a particular wireless communication service provider. The service provider can, in turn, have contractual relationships with other service providers by which customers of a particular service provider are allowed to use network resources that are provided by the other service providers. Such relationships can allow a particular wireless communication enabled device to select from a number of different wireless communication networks when establishing a communications connection while located in a particular geographic area. For example, a mobile phone located in a particular geographic area can establish a communications connection with a cellular communications tower that is owned by the service provider with which the user of the mobile phone has a contractual relationship.
  • In many instances, wireless communications networks capable of providing communications services to wireless communication enabled devices in a particular location offer varying degrees of network communication quality. For example, a first wireless communications network may employ third generation mobile communication technology (i.e., a “3G network”), while a second wireless communications network may employ second generation mobile communication technology (i.e., a “2G network”), and a third wireless communications network may employ fourth generation long-term evolution mobile communication technology (i.e., a “4G LTE network”). Additionally, various different networks employing the same mobile communication technology standard (e.g., three different 3G networks) can have varying levels of service quality among them. For example, a first 3G network may have slower communications speeds (download and upload speeds) than another 3G network in the same geographic area.
  • In some implementations, a wireless communication enabled device can assign varying network quality scores to different wireless communications networks based on a number of factors including: network type, service provider identity, historically observed network quality (e.g., upload and download speeds), packet loss rate, location, distance of a communications tower from the wireless communication enabled device, and current service quality. When the wireless communication enabled device establishes a communications connection with a particular wireless communications network, the wireless communication enabled device can evaluate the quality of the connection with the wireless communications network. This evaluation can occur at the time that the connection is established or at a later time (for example, when the user attempts to transmit or receive data over the connection). In one example of evaluating the quality of the connection, the wireless communication enabled device can compare observed download rates, upload rates, or both to a threshold level to determine if the communications rate is below the threshold level. As a more specific example, the threshold value can be set at 5 Mbits/s (5 Megabits per second). If the communication rate for the connection falls below 5 Mbits/s, the wireless communication enabled device can identify the connection as a degraded connection.
  • Upon identifying that the network connection is of a sub-optimal quality (i.e., a degraded connection) the wireless communication enabled device can set a network reevaluation timer and re-check the quality of the network connection when the network reevaluation timer has expired. In some implementations, the length of the network reevaluation timer is set based on the network quality score assigned to the wireless communications network. For example, a wireless communications network having a higher network quality score (e.g., a 4G LTE network) can have a longer network reevaluation timer than a wireless communications network having a lower network quality score (e.g., a 3G network). As another example, the network reevaluation timer can be set to 25 minutes for a 3.5G network while the network reevaluation timer is set to five seconds for a 2G network.
  • Upon expiration of the network reevaluation timer, the wireless communications network may re-check the quality of the network connection to determine if the quality of the connection is still degraded. If the network quality has improved to a point of no longer being considered degraded, the wireless communication enabled device may continue to use the wireless communications network for wireless communications. If the network quality is still degraded, the wireless communication enabled device switches to another available wireless communications network. Continuing with the above example, the wireless communication enabled device initially compares the download speeds for the network connection to the threshold of 5 Mbits/s. If the download speed is below this threshold value, the wireless communication enabled device starts the network reevaluation timer. In this example, the wireless communications network is a 3.5G network and the wireless communication enabled device sets the network reevaluation timer to 25 minutes (the length of the timer being based on the network type). Upon expiration of the network reevaluation timer, the wireless communication enabled device reevaluates the download speed of the wireless connection. If the download speed is still below 5 Mbits/s, the wireless communication enabled device ends the connection with the wireless communications network and establishes a network connection with a different available wireless communications network.
  • In some implementations, if the new network that the wireless communication enabled device establishes a connection with after determining that the original network was still degraded has a lower network quality score than the original network, the wireless communication enabled device will switch back to the original network (e.g., immediately or after a predetermined delay). In some implementations, after switching back to the original network, the wireless communication enabled device will “lock on” to the original network for a set period of time before reevaluating the quality of the original network or switching to any other networks. The set period of time may be different than the initial reevaluation timer value (and may be greater). In some implementations, the lock on time can be based on one or more factors including a network quality score for the original network, historical network communication speeds for the original network, the network type of the original network, or the service provider for the original network. The lock on time can also be a predetermined length of time (e.g., three minutes). In some implementations, the wireless communication enabled device is only locked on to the original network while the wireless communication enabled device remains in the same relative geographic area. For example, the wireless communication enabled device can switch to another wireless communications network prior to expiration of the lock on time if the wireless communication enabled device moves to another location (e.g., moves so that the device is served by a different base station).
  • Turning to FIG. 1, a wireless communication system 100 includes a mobile device 102 which can be employed by a user to send and receive data over various types of wireless networks, such as a communications provider's 3G and/or 4G networks, a local WiFi network, and/or a BLUETOOTH network. For example, the mobile computing device 102 may include a web browser for accessing Internet web pages, and/or may include one or more mobile device applications (“apps”) for accessing cloud-based data services. The mobile device 102 can be, for example, a smart phone or other cellular phone device, a tablet device, a laptop computer, a PDA, or any other mobile computing device having wireless communication capability.
  • The mobile device 102 is located in a geographic area with multiple wireless communications service providers providing wireless communication services. For example, each of the wireless communications service providers can have one or more access towers capable of establishing a communications link with the mobile device 102 at its present location. In some implementations, a wireless communications service providers can have multiple wireless network access points (e.g., communications towers) capable of communicating with a mobile device at a given location.
  • To communicate data over a network, the mobile computing device 102 may connect with one of the network's access points, such as a 2G 3G or 4G network's cell tower, and/or a WiFi network's wireless router. The mobile computing device 102 may include hardware and/or software interfaces for detecting access points that may be in range, for receiving information about the access points (e.g., access point identifiers, signal strength information, network traffic statistics, etc.), and for handling data communication via the access points. In the depicted example system 100, the mobile computing device 102 is presently in range of (and may communicate with) network access points 104, 106, and 108 which may be fee-based access points or free (no fee) access points. For example, a fee-based network access point may be associated with a mobile data network (e.g., 3G mobile data network, 4G mobile data network) that charges a fee (e.g., monthly subscription fee, usage fee) for access to the mobile data network. As another example, a free network access point can be a WiFi access point.
  • In the example shown in FIG. 1, each of the network access points 104, 106, and 108 has a respective communications range 110, 112, and 114. The mobile device 102 is located in an area where the communications ranges 110, 112, and 114 of the network access points 104, 106, and 108 overlap. Therefore, the mobile device 102 can connect to any of the network access points 104, 106, and 108 to establish a communication connection. For example, the mobile device 102 can establish a connection with the network access point 104 which allows the mobile device 102 to communicate over a cellular communications network to, for example, place a wireless telephone call to another wired or wireless telephone communication enabled device. In some implementations, the network access points 104, 106, and 108 can be affiliated with different wireless communications service providers, employ different wireless communications technologies, and/or have varying levels of communications quality. For example, network access point 104 may be associated with wireless company A, while network access point 106 is associated with wireless company B, and network access point 108 is associated with wireless company C. Furthermore each of network access points 104, 106, and 108 can employ a different wireless communication technology. For example, network access point 104 may be part of a 3G network while network access point 106 is part of a 2G network and network access point 108 is part of a 4G LTE network. The user of the mobile device 102 may have a contractual relationship with one of the wireless companies A, B, and C. Furthermore, the wireless companies A, B, and C may have contractual relationships with each other (or with a different telecommunications service provider with which the user of the mobile device 102 has a mobile service contract) which allows the mobile device 102 to access the networks of wireless companies A, B, and C for wireless communications.
  • In some implementations, prior to the mobile device 102 establishing a connection with any of the network access points 104, 106, and 108, the mobile device 102 may not have information on network connection quality, network technology level (e.g., 2G, 3G, 4G, etc.), or affiliated service provider for one or more of the network access points 104, 106, and 108. In some cases, the mobile device 102 may possess some but not all of this information for one or more of the network access points 104, 106, and 108. In such situations, the mobile device 102 may select a network access point to establish communications with based on initially detected signal strength, or possibly using a random or pseudo random selection process.
  • For example, the mobile device 102 can detect that it is within communication range of the network access points 104, 106, and 108 based on being located within the communications ranges 110, 112, and 114. The mobile device 102 can initially establish a connection with the network access point 104. Upon establishing the connection with the network access point 104, the mobile device 102 can obtain or identify information about the network access point 104 and the communication connection with the network access point 104. This can include obtaining or identifying information on a wireless communications service provider associated with the network access point 104, a communications technology employed by the network access point 104, an approximate distance of the mobile device 102 to the network access point 104, and a connection quality level for the connection between the mobile device 102 and the network access point 104. The connection quality level can be based on, for example, upload speeds of data communications, download speeds of data communications, upload speeds for voice communications, download speeds for voice communications, or a combination of any of these and other factors. In some implementations, upload and download speeds can include currently observed upload and download speeds (e.g., upload and download speeds observed by the mobile device 102), historically observed upload and download speeds (e.g., upload and download speeds historically observed by the mobile device 102 and/or other mobile devices), and/or advertised download speeds (e.g., advertised by the network access point when the communications connection is established).
  • In some implementations, the mobile device 102 can access historic network connection information for one or more of the network access points 104, 106, and 108. For example, the current geographic location of the mobile device 102 can be a location in which the mobile device 102 has been located in the past and the mobile device 102 may have stored information on past communications connections with one or more of the network access points 104, 106, and 108. For example, the mobile device 102 can be currently located in a location that is frequented by the user of the mobile device 102, such as the user's home or workplace. In some implementations, historic network connection information can be information obtained by other mobile devices. For example, a server can receive network connection information from multiple mobile devices and store the information for later retrieval. The mobile device 102 can access the server to receive some or all of the network connection information for a particular network access point, wireless communications service provider, or geographic area. In some implementations, the historic network connection information is stored locally on the mobile device 102. In some implementations, the mobile device 102 will rely only on information that has been observed and/or collected by the mobile device 102.
  • The historic network connection information can include historically observed download and upload speeds, location information indicating a specific or approximate location for a network access point, an identity of a wireless communications service provider associated with a network access point, or a wireless communication technology being employed by a network access point. In some implementations, the geographic location of the mobile device 102 may be generalized (such as to a city, ZIP code, cellular tower coverage region, or general geographic area), so that a particular location of a user cannot be determined based on preferences selected by the user of the mobile device 102. Thus, the user may have control over how information is collected about his or her location.
  • In some implementations, the mobile device 102 can use one or more characteristics associated with the network access point 104 or with the communication connection between the mobile device 102 and the network access point 104 to assign one or more ratings to the network access point 104. Characteristics that can be used in determining a rating for the network access point 104 can include the identity of a wireless communications service provider associated with the network access point 104, a communications technology employed by the network access point 104, an approximate distance of the mobile device 102 to the network access point 104, a specific or approximate location of the network access point 104, a specific or approximate location of the mobile device 102, and a connection quality level for the connection between the mobile device 102 and the network access point 104. For example, the mobile device 102 can assign a higher rating to a network access point that employs 4G LTE technology than to a network access point that employs 3G technology. As another example, if network access point 104 has higher observed and/or historic upload and download speeds than network access point 106, the mobile device 102 can assign a higher rating to the network access point 104 than a rating assigned to the network access point 106. As another example, network access point 106 and network access point 108 may employ the same wireless communication technology (e.g., both are part of a 3G network) but may be associated with different wireless communications service providers (e.g., network access point 106 is affiliated with wireless company B and network access point 108 is affiliated with wireless company C). The mobile device 102 can access information on historic connection quality levels for each of wireless company B and wireless company C for the geographic area of the mobile device 102 to assign different ratings to network access point 106 and network access point 108 despite network access point 106 and network access point 108 employing the same wireless communication technology. In some implementations, the mobile device 102 can provide privacy controls that allow a user to indicate what characteristics associated with a network access point or what historic information is collected or what information is used in assigning ratings to the network access point.
  • In general, the mobile device 102 characteristics such as a more advanced wireless communication technology (e.g., 4G LTE over 3G), higher upload and download speeds, higher levels of historic connection quality for a particular wireless communications service provider (either overall, or based on the geographic area of the mobile device 102), or a closer proximity between the mobile device 102 and a network access point can lead to a higher rating for the network access point. Conversely, characteristics such as a less advanced wireless communication technology (e.g., 2G as compared to 3G), lower upload and download speeds, lower levels of historic connection quality for a particular wireless communications service provider (either overall, or based on the geographic area of the mobile device 102), or a greater distance between the mobile device 102 and a network access point can, in general, lead to a lower rating for the network access point. The mobile device 102 can assign a rating to a network access point at the time of establishing a connection with the network access point or at a later time such as when the mobile device 102 attempts to transmit a voice or data communication over the connection, or at a predetermined time after establishing the connection with the network access point.
  • Continuing with the above example, the mobile device 102 has established a connection with the network access point 104 and may or may not have assigned a rating to the network access point 104 based on some or all of the above described currently observed or historic characteristics. The mobile device 102 can then determine a current quality of the connection between the mobile device 102 and the network access point 104. In some implementations, the connection quality determination can include calculating a numeric value for the connection. For example, the mobile device 102 can identify current upload and download speeds for the connection and assign a value to the connection quality based on the upload and download speeds. The mobile device 102 can then determine that the connection has degraded below a particular quality level by, for example, comparing the current quality level to a threshold level. For example, if upload and/or download speeds for the connection are below a threshold value, the mobile device 102 can determine that the connection is a degraded connection. Other factors can also be used to determine that the connection has degraded. The mobile device 102 can determine the quality level of the connection, and determine if the connection with the network access point 104 has degraded below the threshold quality level, at the time of establishing a connection with the network access point 104 or at a later time such as when the mobile device 102 attempts to transmit a voice or data communication over the connection, or at a predetermined time after establishing the connection with the network access point 104.
  • If the connection with the network access point 104 is determined to be a degraded connection, the mobile device 102 can identify a length of time after which the mobile device 102 will reevaluate the quality of the connection. In some implementations, this can involve setting a reevaluation timer or a reevaluation alarm to a set time value and then reevaluating the network connection after the expiration of that set time. In some implementations, the identified length of time after which the mobile device 102 reevaluates the quality of the connection can be determined based on the rating previously assigned to the network access point 104. For example, the higher the rating, the higher the reevaluation time. In some implementations, one or more characteristics of the network access point 104 or the connection between the mobile device 102 and the network access point 104 can be used to identify a reevaluation time without first determining a rating for the network access point 104. For example, the mobile device 102 can assign a 3G network with a reevaluation time of 10 minutes, while the mobile device 102 assigns a 4G LTE network with a reevaluation time of 2 hours. As another example, the mobile device 102 can assign a 3G network affiliated with wireless company A with a reevaluation time of 15 minutes while assigning a 3G network affiliated with wireless company B with a reevaluation time of 23 minutes.
  • After the identified reevaluation time has passed (or after a reevaluation timer or reevaluation alarm has expired) the mobile device 102 reevaluates the quality of the connection with the network access point 104. If the connection quality has improved (e.g., the connection is no longer degraded, or one or more connection quality metrics are above a threshold level) the mobile device 102 maintains the connection with the network access point 104 and transmits and receives future communications over the connection with the network access point 104. If the connection quality is still in a degraded state (e.g., one or more connection quality metrics are below a threshold level), the mobile device 102 can end the connection with the network access point 104 and switch to another network. For example, if after the reevaluation time has passed, the mobile device 102 determines that the connection with network access point 104 is still in a degraded state (e.g., upload and download speeds are below threshold levels), the mobile device 102 can end the connection with the network access point 104 and establish a connection with the network access point 106.
  • Setting a timer for reevaluating the quality of the connection with the network access point 104 allows the mobile device 102 avoid switching between communication networks or communication network access points more frequently than is optimal. For example, if the quality of the connection has improved above a threshold or degraded level after the identified reevaluation time is passed, the mobile device 102 can maintain the connection with the network access point 104 rather than switching to another network access point.
  • In some implementations, if the mobile device 102 determines that the connection with the network access point 104 is degraded at two different points in time (e.g., a first evaluation of the connection quality, followed by a period of time based on the reevaluation timer, and then a second evaluation of the connection quality) rather than disconnecting from the network access point 104 at that point and connecting to a different network access point, the mobile device 102 can set yet another time period to wait before evaluating the connection to the network access point 104 a third time. This second time period can be the same length as the first reevaluation time period, or can be a different length of time. Some or all of the factors used for determining the length of first reevaluation waiting period (e.g., the identity of a wireless communications service provider associated with the network access point 104, a communications technology employed by the network access point 104, an approximate distance of the mobile device 102 to the network access point 104, a specific or approximate location of the network access point 104, a specific or approximate location of the mobile device 102, and historic connection quality level information) can be used to determine the length of the second reevaluation waiting period.
  • In some implementations, the mobile device 102 can use one or more of these factors to determine if the connection to the network access point 104 should be ended after the second evaluation of the network quality, or if the mobile device 102 should wait a second reevaluation time period before evaluating the connection quality a third time. For example, if the network access point 104 employs 3G technology, the mobile device 102 can disconnect from the network access point 104 and connect to a different network access point after two successive determinations that the connection is degraded. Continuing with this example, if the network access point 104 is a 4G LTE network, the mobile device 102 can determine that a third evaluation of the connection should be performed based on the network access point 104 employing a higher level of network technology. The mobile device 102 can therefore wait for a second reevaluation time period to reevaluate the connection quality a third time if there have been two successive determinations that the connection is degraded.
  • In some implementations, in response to the mobile device 102 determining that the connection with the network access point 104 is degraded at two or more points in time, the mobile device 102 can end the communication connection with the network access point 104 and establish a connection with another network access point. For example, the mobile device 102 can establish a communications connection with the network access point 106. Upon establishing the connection with the network access point 106, the mobile device 102 can obtain or identify information about the network access point 106 and the communication connection with the network access point 106. This can include obtaining or identifying information on a wireless communications service provider associated with the network access point 106, a communications technology employed by the network access point 106, an approximate distance of the mobile device 102 to the network access point 106, and a connection quality level for the connection between the mobile device 102 and the network access point 106. The connection quality level can be based on, for example, upload speeds of data communications, download speeds of data communications, upload speeds for voice communications, download speeds for voice communications, or a combination of any of these and other factors. In some implementations, upload and download speeds can include currently observed upload and download speeds (e.g., upload and download speeds observed by the mobile device 102), historically observed upload and download speeds (e.g., upload and download speeds historically observed by the mobile device 102 and/or other mobile devices), and/or advertised download speeds (e.g., advertised by the network access point when the communications connection is established). In some implementations, information that is identified or obtained for the network access point 106 can be used by the mobile device 102 to determine if the mobile device 102 should remain connected to the network access point 106 or if the mobile device 102 should return to communicating with the network access point 104 (i.e., reestablish a communications connection with the network access point 104).
  • For example, the mobile device 102 can identify the mobile communication technology employed by the network access point 106 and use this information to determine if the mobile device 102 should remain in communication with the network access point 106 or return to communicating with the network access point 104. For example, if the identified mobile communication technology for the network access point 106 is a lower level technology than the mobile communication technology employed by the network access point 104, the mobile device 102 will automatically switch back to communicating with the network access point 104. For example, if the network access point 104 is a 3.5G network, and the network access point 106 is a 3G network, if the mobile device 102 has just switched from the network access point 104 to the network access point 106, upon detecting that the network access point 106 is a 3G network, the mobile device 102 switches back to communicating with the network access point 104 because the network access point 104 is a 3.5G network. As another example, if the network access point 104 is a 3.5G network, and the network access point 106 is a 4G network, the mobile device 102 will maintain the connection with the network access point 106 after switching from the network access point 104. In some implementations, other factors can be used instead of or in addition to the mobile communication technology for each network access point when determining whether to switch back to the network access point 104. For example, the current connection quality for the connection to the network access point 106 can be compared to a previously determined connection quality for the previous connection with the network access point 104. If the mobile device 102 identifies that the connection with the network access point 106 is of a lower quality than the previous connection with the network access point 104, the mobile device 102 can switch back to communicating with the network access point 104.
  • In some implementations, after switching from a first network to a second network and then switching back to the first network as discussed above, the mobile device 102 will “lock on” to the first network for a period of time after switching back to the first network. For example, the mobile device 102 can identify that a connection with the network access point 104 is degraded during two different evaluations of the network (spaced apart by an identified reevaluation time as described above). The mobile device 102 then switches to a connection with the network access point 108. In this example, after establishing the connection with the network access point 108, the mobile device 102 receives information indicating that the network access point 108 is a 3G network. In this example, the network access point 104 is a 4G LTE network, and therefore uses a higher level mobile communications technology than the network access point 108. Upon making this determination, the mobile device 102 switches back to communicating with the network access point 104 and then “locks on” to this connection for a set period of time before evaluating the connection quality to determine if the mobile device 102 should attempt to connect to yet another network.
  • The lock on time period can be based upon a number of factors including network type, service provider identity, historically observed network quality (e.g., upload and download speeds), packet loss rate, location, distance of a communications tower from the wireless communication enabled device, and current service quality. The lock on time for a particular network access point can be a different length than a reevaluation time for that network access point, even in situations where the same factors are used to determine the lock on time and the reevaluation time. In some implementations, after the lock on time has expired, the mobile device 102 evaluates the connection quality. If the connection quality is below a threshold level (e.g., data download and upload speeds are below threshold download and upload speeds) the mobile device 102 can identify and set a reevaluation time period, and reevaluate the connection quality after the reevaluation time period has expired. Alternatively, upon expiration of the lock on time period, if the mobile device 102 determines that the connection quality is degraded, the mobile device 102 will switch to another network access point at that point rather than waiting for a reevaluation time period to expire and reevaluating the connection quality again.
  • In response to determining that the connection is degraded after the lock on time period has passed (or after a determination of a degraded connection at the end of the lock on time period followed by a second determination of a degraded connection quality after a reevaluation time period) the mobile device 102 switches to another network. For example, the mobile device 102 can discontinue communications with the network access point 104 and establish a connection with the network access point 106. In some implementations, if the mobile device 102 switches from a first network to a second network, then back to the first network, and identifies a degraded connection with the first network after a lock on time period has passed, the mobile device 102 will not switch back to the second network, but will instead attempt to establish a connection with a third network that is different than the second network.
  • In some implementations, the mobile device 102 will only remain “locked on” to the network access point 104 after switching back to the network access point 104 if the mobile device 102 does not move out of the present geographic location. If the mobile device 102 moves away from the present geographic location, the lock on time period is ignored and the mobile device 102 may connect to one or more other networks as necessary. In some implementations, a threshold distance of movement can be set and the mobile device 102 must move, geographically, more than the threshold distance before the lock on time is ignored. In some implementations, the mobile device 102 will only ignore the lock on time if the mobile device 102 has moved more than a threshold distance from the network access point 104.
  • Turning to FIG. 2, a wireless communication enabled user device 202 is within communication range of a network access point 204 and a network access point 206. The user device 202 can be employed by a user to send and receive data over various types of wireless networks, such as a communications provider's 3G and/or 4G networks, a local WiFi network, and/or a BLUETOOTH network. For example, the user device 202 may include a web browser for accessing Internet web pages, and/or may include one or more mobile device applications (“apps”) for accessing cloud-based data services. The user device 202 can be, for example, a smart phone or other cellular phone device, a tablet device, a laptop computer, a PDA, or any other computing device having wireless communication capability.
  • At 208, the user device 202 receives network information from the network access point 204. The network access point 204 can be associated with a service provider and allow the user device 202 to establish a communications connection to send and receive voice and data communications over the service provider's communications network. The network information can be received, for example, by a wireless network interface 210 of the user device 202. The network information transmitted by the network access point 204 and received at the user device 202 can allow the user device 202 to perform a “handshake” with the network access point 204 to establish a communication connection. At 212, the wireless network interface 210 of the user device 202 establishes a connection with the network access point 204.
  • At 214, a network quality evaluation module 216 evaluates the quality of the network connection between the user device 202 and the network access point 204. The network quality evaluation module 216 can be implemented by a combination of hardware and software. The network quality evaluation module 216 can identify or measure one or more characteristics of the network connection with the network access point 204 to evaluate the quality of the network connection. Characteristics of the network connection that can be identified or measured by the network quality evaluation module 216 can include upload speed, download speed, or pack loss rate. The network quality evaluation module 216 can compare one or more characteristics of the network connection between the user device 202 and the network access point 204 to threshold values to determine if the network connection is degraded. In some implementations, user device 202 can provide privacy controls that allow a user to indicate what characteristics of a network connection or other information is collected or can be accessed by the network quality evaluation module 216 in evaluating the quality of the network connection between the user device 202 and a network access point such as the network access point 204.
  • If the network quality evaluation module 216 determines that the network connection is degraded, the network quality evaluation module 216 can, at 218, start a network reevaluation timer 220. The network reevaluation timer 220 can be implemented as a separate timer, or as software that monitors one or more clocks of the user device 202 or clock signals received by the user device 202 to determine when a set period of time has passed. The period of time for reevaluation can be determined based on one or more factors including network type associated with the network access point 204, service provider identity for the network access point 204, historically observed network quality (e.g., upload and download speeds), location, distance of the network access point 204 from the user device 202, and current service quality. For example, the network reevaluation timer 220 can be set for a longer time if the network access point 204 is a 4G network than if the network access point 204 is a 3G network. As another example, the network reevaluation timer 220 is set for a longer time for a first service provider identified as having a better network than a second service provider in the present geographic area based on historically observed data for the first and second service providers. In some implementations, the time period for the network reevaluation timer 220 is determined based on a rating assigned to the network access point 204. For example, the user device 202 can use one or more characteristics associated with the network access point 204 or with the communication connection between the user device 202 and the network access point 204 to assign one or more ratings to the network access point 204. This rating can then be used to identify a reevaluation time period for the network access point 204 and the network reevaluation timer 220 can be set to the identified reevaluation time period.
  • At 222, the network reevaluation timer 220 expires. For example, the network quality evaluation module 216 or one or more other components of the user device 202 can determine that a set reevaluation time has passed. As another example, the network reevaluation timer 220 can inform the network quality evaluation module 216 that the identified reevaluation time has passed. At 224, in response to the network reevaluation time expiring, the network quality evaluation module 216 reevaluates the quality of the network connection between the user device 202 and the network access point 204.
  • If the network quality evaluation module 216 determines, at 224, that the network connection is still degraded (e.g., one or more characteristics of the connection is below a threshold level) the user device 202 ends the network connection with the network access point 204. At 226, in response to the network quality evaluation module 216 determining that the network connection with the network access point 204 was still in a degraded state (at 224) the wireless network interface 210 establishes a network connection with the network access point 206.
  • In some implementations, if the wireless communication technology employed by the network access point 206 is below the level of the wireless communication technology employed by the network access point 204, the user device 202 will switch back to communicating with the network access point 204. In some implementations, the user device 202 can make a determination to switch back to the network access point 204 based on one or more other factors associated with the network access point 206 or the connection between the user device 202 and the network access point 206, such as a current communication rate or an identity of a service provider associated with the network access point 206. After switching back to the network access point 204, the user device 202 can remain “locked on” to communication with the network access point 204 for a set period of time (determined based on one or more factors associated with the network access point 204) or until the geographic location of the user device 202 changes.
  • FIG. 3 shows a flow chart of an example process 300 for switching from a first wireless communication network to a second wireless communication network. The process 300 can be performed by one or more devices in the systems depicted in FIG. 1 or 2. For example, the process 300 can be performed by the mobile device 102 of FIG. 1 or the user device 202 of FIG. 2. Operations of the process 300 can be implemented by execution of instructions stored on a non-transitory computer readable medium. Execution of the instructions causes one or more data processing apparatus to perform operations of the process 300.
  • A connection with a first wireless communications network is established (302). For example, a wireless communication enabled device can be within communication range of a number of wireless network access points. The wireless network access points can be, for example, cellular communications towers, WiFi routers, or other wireless network access devices. The wireless communication enabled device establishes a connection with one of the wireless network access points in communication range.
  • A characteristic of the first wireless communications network is identified (304). The identified characteristic can be network type, service provider identity, historically observed network quality (e.g., upload and download speeds), packet loss rate, location, distance of a communications tower from the wireless communication enabled device, and current service quality. For example, the wireless communication enabled device can identify that the first wireless communications network is a 3G network. The identified characteristic can be based on currently observed information and/or historically observed information associated with the first wireless communications network. In some implementations, the identified characteristic can be used to assign a rating to the first wireless communications network. The rating can be determined based on the identified characteristic alone, or using the identified characteristic in combination with one or more other characteristics associated with the first wireless communications network or the connection between the wireless communication enabled device and the first wireless communications network.
  • A determination that the connection with the first wireless communication network has degraded below a threshold quality level can be made (306). For example, the wireless communication enabled device can measure one or more characteristics of the connection with the first wireless communications network and compare the characteristics to threshold levels to determine if the quality of the connection has degraded. These characteristics can include upload speed, download speed, and packet loss rate. For example, if the upload speed for the connection is below a threshold level, the wireless communication enabled device can determine that the connection is degraded. As another example, if the download speed for the connection is below a threshold level, the wireless communication enabled device can determine that the connection is degraded.
  • A time at which to reevaluate whether the connection is still below the threshold quality level is identified (308). The time at which to reevaluate whether the connection is still below the threshold quality level, (or, “reevaluation time”) can be at least partially based on the characteristic of the first wireless communications network identified at 304. For example, the reevaluation time can be identified based on a level of wireless communications technology employed by the first wireless communications network, with a higher level technology (e.g., a 4G LTE network) having a higher reevaluation time than a lower level technology (e.g., a 2G network). In some implementations, the reevaluation time is based on a rating assigned to the first wireless communications network, the rating having been based at least in part on the characteristic identified at 304.
  • A determination that the connection with the first wireless communication network is still below the threshold quality level is made (310). This determination can be made in response to having determined that the time at which to reevaluate whether the connection with the first wireless communication network has degraded below the threshold quality level (the “reevaluation time”) has expired. For example, the wireless communication enabled device can determine that the identified reevaluation time has passed since the first time that the connection quality was assessed at 306. Upon determining that the identified reevaluation time has passed, the wireless communication enabled device can evaluate the connection with the first wireless communications network to determine that the connection is still below the threshold quality level. For example, the download speed for the connection may have changed since the first evaluation of the connection at 306, but is still below the threshold download speed value.
  • A connection with a second wireless communications network is established (312). The connection with the second wireless communications network can be established in response to determining that the connection with first wireless communication network had degraded below the threshold quality level at 306 and determining that the connection with the first wireless communication network was still below the threshold quality level at 310. For example, the wireless communication enabled device can end the connection with the first wireless communications network and establish a connection with a second, different, wireless communications network that is within communication range of the wireless communication enabled device.
  • FIG. 4 shows an example of a generic computer device 400 and a generic mobile computer device 450, which may be used with the techniques described here. Computing device 400 is intended to represent various forms of digital computers, such as laptops, desktops, workstations, personal digital assistants, servers, blade servers, mainframes, and other appropriate computers. Computing device 450 is intended to represent various forms of mobile devices, such as personal digital assistants, cellular telephones, smartphones, and other similar computing devices. The components shown here, their connections and relationships, and their functions, are meant to be exemplary only, and are not meant to limit implementations of the inventions described and/or claimed in this document.
  • Computing device 400 includes a processor 402, memory 404, a storage device 406, a high-speed interface 408 connecting to memory 404 and high-speed expansion ports 410, and a low speed interface 412 connecting to low speed bus 414 and storage device 406. Each of the components 402, 404, 406, 408, 410, and 412, are interconnected using various busses, and may be mounted on a common motherboard or in other manners as appropriate. The processor 402 can process instructions for execution within the computing device 400, including instructions stored in the memory 404 or on the storage device 406 to display graphical information for a GUI on an external input/output device, such as display 416 coupled to high speed interface 408. In other implementations, multiple processors and/or multiple buses may be used, as appropriate, along with multiple memories and types of memory. Also, multiple computing devices 400 may be connected, with each device providing portions of the necessary operations (e.g., as a server bank, a group of blade servers, or a multi-processor system).
  • The memory 404 stores information within the computing device 400. In one implementation, the memory 404 is a volatile memory unit or units. In another implementation, the memory 404 is a non-volatile memory unit or units. The memory 404 may also be another form of computer-readable medium, such as a magnetic or optical disk.
  • The storage device 406 is capable of providing mass storage for the computing device 400. In one implementation, the storage device 406 may be or contain a computer-readable medium, such as a floppy disk device, a hard disk device, an optical disk device, or a tape device, a flash memory or other similar solid state memory device, or an array of devices, including devices in a storage area network or other configurations. A computer program product can be tangibly embodied in an information carrier. The computer program product may also contain instructions that, when executed, perform one or more methods, such as those described above. The information carrier is a computer- or machine-readable medium, such as the memory 404, the storage device 406, memory on processor 402, or a propagated signal.
  • The high speed controller 408 manages bandwidth-intensive operations for the computing device 400, while the low speed controller 412 manages lower bandwidth-intensive operations. Such allocation of functions is exemplary only. In one implementation, the high-speed controller 408 is coupled to memory 404, display 416 (e.g., through a graphics processor or accelerator), and to high-speed expansion ports 410, which may accept various expansion cards (not shown). In the implementation, low-speed controller 412 is coupled to storage device 406 and low-speed expansion port 414. The low-speed expansion port, which may include various communication ports (e.g., USB, Bluetooth, Ethernet, wireless Ethernet) may be coupled to one or more input/output devices, such as a keyboard, a pointing device, a scanner, or a networking device such as a switch or router, e.g., through a network adapter.
  • The computing device 400 may be implemented in a number of different forms, as shown in the figure. For example, it may be implemented as a standard server 420, or multiple times in a group of such servers. It may also be implemented as part of a rack server system 424. In addition, it may be implemented in a personal computer such as a laptop computer 422. Alternatively, components from computing device 400 may be combined with other components in a mobile device (not shown), such as device 450. Each of such devices may contain one or more of computing device 400, 450, and an entire system may be made up of multiple computing devices 400, 450 communicating with each other.
  • Computing device 450 includes a processor 452, memory 464, an input/output device such as a display 454, a communication interface 466, and a transceiver 468, among other components. The device 450 may also be provided with a storage device, such as a microdrive or other device, to provide additional storage. Each of the components 450, 452, 464, 454, 466, and 468, are interconnected using various buses, and several of the components may be mounted on a common motherboard or in other manners as appropriate.
  • The processor 452 can execute instructions within the computing device 450, including instructions stored in the memory 464. The processor may be implemented as a chipset of chips that include separate and multiple analog and digital processors. The processor may provide, for example, for coordination of the other components of the device 450, such as control of user interfaces, applications run by device 450, and wireless communication by device 450.
  • Processor 452 may communicate with a user through control interface 458 and display interface 456 coupled to a display 454. The display 454 may be, for example, a TFT LCD (Thin-Film-Transistor Liquid Crystal Display) or an OLED (Organic Light Emitting Diode) display, or other appropriate display technology. The display interface 456 may comprise appropriate circuitry for driving the display 454 to present graphical and other information to a user. The control interface 458 may receive commands from a user and convert them for submission to the processor 452. In addition, an external interface 462 may be provided in communication with processor 452, so as to enable near area communication of device 450 with other devices. External interface 462 may provide, for example, for wired communication in some implementations, or for wireless communication in other implementations, and multiple interfaces may also be used.
  • The memory 464 stores information within the computing device 450. The memory 464 can be implemented as one or more of a computer-readable medium or media, a volatile memory unit or units, or a non-volatile memory unit or units. Expansion memory 474 may also be provided and connected to device 450 through expansion interface 472, which may include, for example, a SIMM (Single In Line Memory Module) card interface. Such expansion memory 474 may provide extra storage space for device 450, or may also store applications or other information for device 450. Specifically, expansion memory 474 may include instructions to carry out or supplement the processes described above, and may include secure information also. Thus, for example, expansion memory 474 may be provide as a security module for device 450, and may be programmed with instructions that permit secure use of device 450. In addition, secure applications may be provided via the SIMM cards, along with additional information, such as placing identifying information on the SIMM card in a non-hackable manner.
  • The memory may include, for example, flash memory and/or NVRAM memory, as discussed below. In one implementation, a computer program product is tangibly embodied in an information carrier. The computer program product contains instructions that, when executed, perform one or more methods, such as those described above. The information carrier is a computer- or machine-readable medium, such as the memory 464, expansion memory 474, memory on processor 452, or a propagated signal that may be received, for example, over transceiver 468 or external interface 462.
  • Device 450 may communicate wirelessly through communication interface 466, which may include digital signal processing circuitry where necessary. Communication interface 466 may provide for communications under various modes or protocols, such as GSM voice calls, SMS, EMS, or MMS messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000, or GPRS, among others. Such communication may occur, for example, through radio-frequency transceiver 468. In addition, short-range communication may occur, such as using a Bluetooth, WiFi, or other such transceiver (not shown). In addition, GPS (Global Positioning System) receiver module 470 may provide additional navigation- and location-related wireless data to device 450, which may be used as appropriate by applications running on device 450.
  • Device 450 may also communicate audibly using audio codec 460, which may receive spoken information from a user and convert it to usable digital information. Audio codec 460 may likewise generate audible sound for a user, such as through a speaker, e.g., in a handset of device 450. Such sound may include sound from voice telephone calls, may include recorded sound (e.g., voice messages, music files, etc.) and may also include sound generated by applications operating on device 450.
  • The computing device 450 may be implemented in a number of different forms, as shown in the figure. For example, it may be implemented as a cellular telephone 480. It may also be implemented as part of a smartphone 482, personal digital assistant, or other similar mobile device.
  • Various implementations of the systems and techniques described here can be realized in digital electronic circuitry, integrated circuitry, specially designed ASICs (application specific integrated circuits), computer hardware, firmware, software, and/or combinations thereof. These various implementations can include implementation in one or more computer programs that are executable and/or interpretable on a programmable system including at least one programmable processor, which may be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device.
  • These computer programs (also known as programs, software, software applications or code) include machine instructions for a programmable processor, and can be implemented in a high-level procedural and/or object-oriented programming language, and/or in assembly/machine language. As used herein, the terms “machine-readable medium” “computer-readable medium” refers to any computer program product, apparatus and/or device (e.g., magnetic discs, optical disks, memory, Programmable Logic Devices (PLDs)) used to provide machine instructions and/or data to a programmable processor, including a machine-readable medium that receives machine instructions as a machine-readable signal. The term “machine-readable signal” refers to any signal used to provide machine instructions and/or data to a programmable processor.
  • To provide for interaction with a user, the systems and techniques described here can be implemented on a computer having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user and a keyboard and a pointing device (e.g., a mouse or a trackball) by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form, including acoustic, speech, or tactile input.
  • The systems and techniques described here can be implemented in a computing system that includes a back end component (e.g., as a data server), or that includes a middleware component (e.g., an application server), or that includes a front end component (e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the systems and techniques described here), or any combination of such back end, middleware, or front end components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network (“LAN”), a wide area network (“WAN”), and the Internet.
  • The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
  • For situations in which the systems discussed here collect personal information about users, or may make use of personal information, the users may be provided with an opportunity to control whether programs or features collect personal information (e.g., information about a user's social network, social actions or activities, profession, a user's preferences, or a user's current location), or to control whether and/or how to receive content from the content server that may be more relevant to the user. In addition, certain data may be anonymized in one or more ways before it is stored or used, so that personally identifiable information is removed. For example, a user's identity may be anonymized so that no personally identifiable information can be determined for the user, or a user's geographic location may be generalized where location information is obtained (such as to a city, ZIP code, or state level), so that a particular location of a user cannot be determined. Thus, the user may have control over how information is collected about him or her and used by a content server.
  • A number of embodiments of the invention have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the invention. For example, one or more functions described as being performed by a mobile computing device can be performed by one or more remote servers and the results of these functions can be communicated to the mobile computing device. For example, a rating for a wireless communications network access point can be made by a remote server based on one or more characteristics of the wireless communications network access point. The remote server can then convey the rating to the mobile computing device. Accordingly, other embodiments are within the scope of the following claims.

Claims (16)

What is claimed is:
1. A computer-implemented method comprising:
establishing, by a computing device, a connection with a first wireless communication network;
determining, by the computing device, at a first point in time, that the connection with the first wireless communication network has degraded below a threshold quality level;
determining, by the computing device, at a second point in time, that the connection with the first wireless communication network is still below the threshold quality level, the second point in time occurring after a first timer period; and
responsive to determining, at the first point in time, that the connection with the first wireless communication network had degraded below the threshold quality level and determining, at the second point in time, that the connection with the first wireless communication network was still below the threshold quality level, establishing, by the computing device, a connection with a second wireless communication network.
2. The method of claim 1, wherein the first timer period is determined based on a characteristic of the first wireless communication network.
3. The method of claim 2, wherein the characteristic of the first wireless communication network is based on at least one of: a mobile communication technology employed by the first wireless communication network, historically observed network connectivity speeds for the first wireless communication network, a wireless communications service provider associated with the first wireless communication network, a distance of the computing device to the first wireless communication network, a location of the first wireless communication network, and a location of the computing device.
4. The method of claim 1, wherein the threshold quality level is determined based on historically observed network connectivity quality for a plurality of wireless communication networks.
5. The method of claim 1, further comprising:
determining, by the computing device, at a third point in time, that the connection with the first wireless communication network is still below the threshold quality level, the third point in time occurring after a second timer period; and
wherein establishing the connection with the second wireless communication network is further based on determining, at the third point in time, that the connection with the first wireless communication network was still below the threshold quality level.
6. The method of claim 5, wherein the second timer period is different from the first timer period.
7. The method of claim 1, further comprising:
identifying, by the computing device, a characteristic of the first wireless communication network;
identifying, by the computing device, a characteristic of the second wireless communication network;
comparing, by the computing device, the characteristic of the first wireless communication network to the characteristic of the second wireless communication network to determine whether the characteristic of the first wireless communication network is superior to the characteristic of the second wireless communication network; and
responsive to determining that the characteristic of the first wireless communication network is superior to the characteristic of the second wireless communication network, ending the connection with the second wireless communication network and establishing another connection with the first wireless communication network.
8. The method of claim 7, further comprising:
identifying, by the computing device, a minimum length of time to maintain the another connection with the first wireless communication network;
determining, by the computing device, at a third point in time, and in response to having determined that the minimum length of time to maintain the another connection with the first wireless communication network has expired, that the another connection with the first wireless communication network has degraded below a threshold quality level;
determining, by the computing device, at a fourth point in time, that the another connection with the first wireless communication network is still below the threshold quality level, the fourth point in time occurring after a second timer period; and
responsive to determining, at the third point in time, that the another connection with the first wireless communication network had degraded below the threshold quality level and determining, at the fourth point in time, that the another connection with the first wireless communication network was still below the threshold quality level, establishing, by the computing device, a connection with a third wireless communication network.
9. A mobile computing device comprising:
a wireless communications interface;
a data store storing executable instructions; and
one or more processors that interact with the data store and execute instructions that cause the mobile computing device to perform operations comprising:
establishing, using the wireless communications interface, a connection with a first wireless communication network;
determining, at a first point in time, that the connection with the first wireless communication network has degraded below a threshold quality level;
determining, at a second point in time, that the connection with the first wireless communication network is still below the threshold quality level, the second point in time occurring after a first timer period; and
responsive to determining, at the first point in time, that the connection with the first wireless communication network had degraded below the threshold quality level and determining, at the second point in time, that the connection with the first wireless communication network was still below the threshold quality level, establishing, using the wireless communications interface, a connection with a second wireless communication network.
10. The mobile computing device of claim 9, wherein the first timer period is determined based on a characteristic of the first wireless communication network.
11. The mobile computing device of claim 10, wherein the characteristic of the first wireless communication network is based on at least one of: a mobile communication technology employed by the first wireless communication network, historically observed network connectivity speeds for the first wireless communication network, a wireless communications service provider associated with the first wireless communication network, a distance of the computing device to the first wireless communication network, a location of the first wireless communication network, and a location of the computing device.
12. The mobile computing device of claim 9, wherein the threshold quality level is determined based on historically observed network connectivity quality for a plurality of wireless communication networks.
13. The mobile computing device of claim 9, the operations further comprising:
determining, at a third point in time, that the connection with the first wireless communication network is still below the threshold quality level, the third point in time occurring after a second timer period; and
wherein establishing the connection with the second wireless communication network is further based on determining, at the third point in time, that the connection with the first wireless communication network was still below the threshold quality level.
14. The mobile computing device of claim 13, wherein the second timer period is different from the first timer period.
15. The mobile computing device of claim 9, the operations further comprising:
identifying a characteristic of the first wireless communication network;
identifying a characteristic of the second wireless communication network;
comparing the characteristic of the first wireless communication network to the characteristic of the second wireless communication network to determine whether the characteristic of the first wireless communication network is superior to the characteristic of the second wireless communication network; and
responsive to determining that the characteristic of the first wireless communication network is superior to the characteristic of the second wireless communication network, ending the connection with the second wireless communication network and establishing another connection with the first wireless communication network.
16. The mobile computing device of claim 15, the operations further comprising:
identifying a minimum length of time to maintain the another connection with the first wireless communication network;
determining, at a third point in time, and in response to having determined that the minimum length of time to maintain the another connection with the first wireless communication network has expired, that the another connection with the first wireless communication network has degraded below a threshold quality level;
determining, at a fourth point in time, that the another connection with the first wireless communication network is still below the threshold quality level, the fourth point in time occurring after a second timer period; and
responsive to determining, at the third point in time, that the another connection with the first wireless communication network had degraded below the threshold quality level and determining, at the fourth point in time, that the another connection with the first wireless communication network was still below the threshold quality level, establishing, by the computing device, a connection with a third wireless communication network.
US15/822,265 2015-08-12 2017-11-27 Switching between networks based on quality of available networks Abandoned US20180077639A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US15/822,265 US20180077639A1 (en) 2015-08-12 2017-11-27 Switching between networks based on quality of available networks

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/824,326 US9832716B2 (en) 2015-08-12 2015-08-12 Switching between networks based on quality of available networks
US15/822,265 US20180077639A1 (en) 2015-08-12 2017-11-27 Switching between networks based on quality of available networks

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US14/824,326 Continuation US9832716B2 (en) 2015-08-12 2015-08-12 Switching between networks based on quality of available networks

Publications (1)

Publication Number Publication Date
US20180077639A1 true US20180077639A1 (en) 2018-03-15

Family

ID=56787708

Family Applications (2)

Application Number Title Priority Date Filing Date
US14/824,326 Active US9832716B2 (en) 2015-08-12 2015-08-12 Switching between networks based on quality of available networks
US15/822,265 Abandoned US20180077639A1 (en) 2015-08-12 2017-11-27 Switching between networks based on quality of available networks

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US14/824,326 Active US9832716B2 (en) 2015-08-12 2015-08-12 Switching between networks based on quality of available networks

Country Status (6)

Country Link
US (2) US9832716B2 (en)
EP (1) EP3335469B1 (en)
JP (1) JP6740251B2 (en)
CN (1) CN107534884B (en)
CA (1) CA2916757C (en)
WO (1) WO2017027766A1 (en)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9832716B2 (en) * 2015-08-12 2017-11-28 Google Llc Switching between networks based on quality of available networks
WO2017051937A1 (en) * 2015-09-22 2017-03-30 (주) 이스트몹 Program, method and system for p2p file transmission
US10425310B2 (en) * 2015-12-23 2019-09-24 Cisco Technology, Inc. Network device mitigation against rogue parent device in a tree-based network
CN109479231B (en) * 2016-07-22 2021-07-02 谷歌有限责任公司 Mobility in multi-network wireless systems
US9973952B1 (en) * 2016-08-29 2018-05-15 Sprint Communication Company L.P. Mobile phone performance management based on personal quality criteria
CN106936709B (en) * 2017-01-19 2019-03-08 广州华多网络科技有限公司 Remote service access path control method and relevant device
US11279480B1 (en) * 2017-02-16 2022-03-22 Alarm.Com Incorporated Drone wireless communication diagnosis and correction
US20190230422A1 (en) * 2018-01-22 2019-07-25 Verifone, Inc. Intelligent model for dynamically selecting best transmission channel
US10701608B2 (en) 2018-03-29 2020-06-30 Charter Communications Operating, Llc Use of dynamic connection priority information to control network connectivity
CN108811014A (en) * 2018-07-19 2018-11-13 中国联合网络通信集团有限公司 A kind of method for switching network and mobile terminal
CN109586405B (en) * 2018-10-31 2020-12-04 珠海格力电器股份有限公司 Micro-grid system and communication method thereof
JP6995732B2 (en) 2018-12-06 2022-01-17 株式会社東芝 Wireless communication equipment, wireless communication systems, wireless communication methods and programs
CN109548103B (en) * 2018-12-19 2022-05-20 上海尚往网络科技有限公司 Method and apparatus for switching networks
CN109640380B (en) * 2019-01-14 2020-11-03 Oppo广东移动通信有限公司 Call processing method and related product
CN112400303B (en) * 2019-01-31 2022-05-13 华为技术有限公司 Network switching method, equipment and network system
US11452014B2 (en) * 2019-03-08 2022-09-20 Meta Platforms Technologies, Llc Secondary link for AR/VR applications
CN110087267A (en) * 2019-04-12 2019-08-02 努比亚技术有限公司 Method for switching network, device, electronic equipment and readable storage medium storing program for executing
CN110572859B (en) * 2019-09-29 2021-04-16 珠海格力电器股份有限公司 AP switching method, device, equipment and medium
CN111836300B (en) * 2020-08-20 2022-02-18 珠海格力电器股份有限公司 Network switching method and communication terminal
CN112153679B (en) * 2020-09-10 2023-10-31 中国联合网络通信集团有限公司 Network switching method and device
WO2022126387A1 (en) * 2020-12-15 2022-06-23 华为技术有限公司 Communication method and apparatus, and storage medium and chip system
EP4348975A1 (en) * 2021-08-26 2024-04-10 Samsung Electronics Co., Ltd. Method and electronic device for managing network resources among application traffic
CN116137676B (en) * 2021-11-18 2023-10-20 荣耀终端有限公司 Network acceleration method, electronic equipment, chip system and storage medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130040693A1 (en) * 2011-08-10 2013-02-14 Htc Corporation Apparatuses and methods for handovers between heterogeneous networks
US20150131540A1 (en) * 2013-11-12 2015-05-14 Blackberry Limited Systems and methods for initiating device-to-device communication in wireless networks
US9832716B2 (en) * 2015-08-12 2017-11-28 Google Llc Switching between networks based on quality of available networks

Family Cites Families (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6381315B1 (en) 1999-12-02 2002-04-30 Eli Nhaissi Universal exchange for making least-cost non-local telephone calls
WO2002041580A1 (en) 2000-11-14 2002-05-23 Siemens Aktiengesellschaft Device and method for selecting network accesses
JP3929693B2 (en) 2000-11-20 2007-06-13 株式会社日立製作所 Communications system
US7433929B2 (en) 2000-12-29 2008-10-07 At&T Mobility Ii Llc Intelligent network selection based on quality of service and applications over different wireless networks
US20020169716A1 (en) 2001-05-08 2002-11-14 Johnson Jack J. Bidding tor telecommunications traffic and billing for service
US8060139B2 (en) 2002-06-24 2011-11-15 Toshiba American Research Inc. (Tari) Authenticating multiple devices simultaneously over a wireless link using a single subscriber identity module
CN1711796A (en) 2002-11-20 2005-12-21 国际商业机器公司 Managing network resources for wireless communication
FI20030827A0 (en) 2003-06-03 2003-06-03 Nokia Corp Transmission of price information in a telecommunication system
US7082301B2 (en) 2003-09-12 2006-07-25 Cisco Technology, Inc. Method and system for triggering handoff of a call between networks
WO2006005947A1 (en) 2004-07-12 2006-01-19 Sensustech Limited Testing device and method
US7937069B2 (en) 2005-04-29 2011-05-03 Rassam Frederic System and process for switching between cell phone and landline services
US20070147317A1 (en) 2005-12-23 2007-06-28 Motorola, Inc. Method and system for providing differentiated network service in WLAN
US7809360B2 (en) 2006-05-24 2010-10-05 International Business Machines Corporation Optimization of calendar, itinerary, route plan, and PIM efficiencies according to assimilated wireless service availability conditions
JP4758294B2 (en) 2006-07-10 2011-08-24 株式会社日立製作所 Area quality information acquisition system
JP4899696B2 (en) 2006-07-31 2012-03-21 富士通株式会社 Communication device, relay device, communication system, communication method, and communication program
US20080107051A1 (en) 2006-11-07 2008-05-08 Mediatek Inc. System and method for operating a portable electronic device
WO2008060464A2 (en) 2006-11-09 2008-05-22 Broadsoft, Inc. Methods, systems, and computer program products for jumping calls between different modes of the same device
KR20100016494A (en) 2007-03-09 2010-02-12 인터디지탈 테크날러지 코포레이션 Method and apparatus for adjusting a reselection timer and cell ranking criteria, and reporting degraded signal measurement of a serving cell
US8036367B2 (en) 2007-03-19 2011-10-11 Google Inc. Flexible communication systems and methods
US8396470B2 (en) 2007-04-26 2013-03-12 Research In Motion Limited Predicting user availability from aggregated signal strength data
US8391192B2 (en) 2007-05-14 2013-03-05 Qualcomm Incorporated Carrier switching in a multi-carrier wireless communication network
US8089939B1 (en) 2007-05-18 2012-01-03 Marvell International Ltd. Predictive roaming by a wireless LAN client station
EP2244501A1 (en) 2008-02-14 2010-10-27 Panasonic Corporation Radio communication base station device, radio communication relay station device, radio communication terminal device, radio communication system, and radio communication method
US8583781B2 (en) 2009-01-28 2013-11-12 Headwater Partners I Llc Simplified service network architecture
EP2397013B1 (en) * 2009-02-11 2019-12-11 Huawei Technologies Co., Ltd. Method and system for managing communication in wireless communication network
CN102017682B (en) 2009-04-17 2013-08-07 华为技术有限公司 Downlink inter-cell interference coordination method and base station
US8594723B2 (en) 2009-05-26 2013-11-26 Intel Corporation Techniques for interworking between heterogeneous radios
CN101668322B (en) * 2009-09-17 2012-06-27 华为终端有限公司 Network switching method of terminal and terminal equipment
US8395994B2 (en) 2009-10-28 2013-03-12 Liveops, Inc. System and method for adaptive call management
US8792328B2 (en) 2009-11-06 2014-07-29 Intel Corporation Radio-link reliability using multi-carrier capability in wireless broadband systems
US20110208668A1 (en) 2010-02-22 2011-08-25 Google Inc. Server Provider Recommendation Engine
CN102202286B (en) * 2010-03-24 2014-04-02 华为技术有限公司 Method for terminal access in heterogeneous network, and method and equipment for heterogeneous network switching
US8996002B2 (en) 2010-06-14 2015-03-31 Apple Inc. Apparatus and methods for provisioning subscriber identity data in a wireless network
SE537642C2 (en) 2010-06-21 2015-09-08 Scania Cv Ab Method and apparatus for cooling a reducing agent dosing unit
CN102340836A (en) * 2010-07-16 2012-02-01 爱立信(中国)通信有限公司 New measurement event in switching
US8484568B2 (en) 2010-08-25 2013-07-09 Verizon Patent And Licensing Inc. Data usage monitoring per application
JP5648408B2 (en) 2010-10-13 2015-01-07 富士通株式会社 Mobile communication system, communication control apparatus, communication control method, and radio base station
US8909224B2 (en) 2011-05-06 2014-12-09 Verizon Patent And Licensing Inc. Connecting device via multiple carriers
US8223720B1 (en) 2011-12-13 2012-07-17 Vonage Network, Llc Systems and methods for handoff of a mobile telephone call in a VOIP environment
US8964533B2 (en) 2011-12-14 2015-02-24 Verizon Patent And Licensing Inc. Method and system for providing mobile wireless call failover
US8971894B2 (en) 2012-06-22 2015-03-03 Apple Inc. Network reselection by a wireless communication device based on signal-to-noise ratio
US10143018B2 (en) 2012-06-27 2018-11-27 Google Llc Computing device with wireless network selection feature
CN103580898B (en) * 2012-08-01 2016-12-21 华为技术有限公司 Network coordination method and apparatus
US9363754B2 (en) * 2012-08-17 2016-06-07 Apple Inc. Managing power consumption in mobile devices
US10111092B2 (en) 2012-11-06 2018-10-23 Kt Corporation Terminal device having subscriber identity device and method for selecting profile thereof
US9215639B2 (en) * 2012-12-21 2015-12-15 Apple Inc. Transitioning a video call between networks
US9565576B2 (en) 2013-10-09 2017-02-07 At&T Intellectual Property I, L.P. Network operating system client architecture for mobile user equipment
US10305876B2 (en) 2013-11-04 2019-05-28 Microsoft Technology Licensing, Llc Sharing based on social network contacts
US9258677B2 (en) 2013-11-21 2016-02-09 Microsoft Technology Licensing, Llc Improving scalability and reliability of hardware geo-fencing with failover support
WO2015114420A1 (en) 2014-02-02 2015-08-06 Telefonaktiebolaget L M Ericsson (Publ) Session and service control for wireless devices using common subscriber information
US9648019B2 (en) 2014-04-15 2017-05-09 Telefonaktiebolaget Lm Ericsson (Publ) Wi-Fi integration for non-SIM devices

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130040693A1 (en) * 2011-08-10 2013-02-14 Htc Corporation Apparatuses and methods for handovers between heterogeneous networks
US20150131540A1 (en) * 2013-11-12 2015-05-14 Blackberry Limited Systems and methods for initiating device-to-device communication in wireless networks
US9832716B2 (en) * 2015-08-12 2017-11-28 Google Llc Switching between networks based on quality of available networks

Also Published As

Publication number Publication date
US9832716B2 (en) 2017-11-28
CN107534884A (en) 2018-01-02
CA2916757C (en) 2022-06-28
US20170048789A1 (en) 2017-02-16
CN107534884B (en) 2021-11-09
WO2017027766A1 (en) 2017-02-16
JP2018523334A (en) 2018-08-16
CA2916757A1 (en) 2017-02-12
EP3335469B1 (en) 2019-11-27
JP6740251B2 (en) 2020-08-12
EP3335469A1 (en) 2018-06-20

Similar Documents

Publication Publication Date Title
US9832716B2 (en) Switching between networks based on quality of available networks
US20220141110A1 (en) Managing data transfers over network connections based on priority and a data usage plan
US8417239B1 (en) Wireless device coverage mapping
US8514717B2 (en) Smart connection manager
WO2017054138A1 (en) Method and device for automatically selecting network according to tariff standard, server, and terminal
US7933607B2 (en) Managing multiple cellular quality of service mechanisms
US9693276B1 (en) System and method for intelligent network connection selection
US20220255895A1 (en) Subscriber session director
EP3310093B1 (en) Traffic control method and apparatus
US20120190353A1 (en) Systems, devices and methods for dynamic selection of data and telecommunication service providers
US9667805B2 (en) Providing discounted service offerings to customers experiencing reduced service availability
US10085205B2 (en) Crowd sourcing network quality
US9432832B2 (en) Enabling mobile computing devices to track data usage among mobile computing devices that share a data plan
US20170094016A1 (en) Providing simultaneous access to content in a network
US11765277B2 (en) System and method for hybrid network data consumption tracking in a wireless network
CN114390556A (en) Method and device for determining rectification scheme

Legal Events

Date Code Title Description
STPP Information on status: patent application and granting procedure in general

Free format text: FINAL REJECTION MAILED

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION