US20220116845A1 - Connecting to a wireless network based on a device mobility state - Google Patents

Connecting to a wireless network based on a device mobility state Download PDF

Info

Publication number
US20220116845A1
US20220116845A1 US17/510,145 US202117510145A US2022116845A1 US 20220116845 A1 US20220116845 A1 US 20220116845A1 US 202117510145 A US202117510145 A US 202117510145A US 2022116845 A1 US2022116845 A1 US 2022116845A1
Authority
US
United States
Prior art keywords
network
velocity
networks
range
implementations
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.)
Pending
Application number
US17/510,145
Inventor
William Kenneth Logan
Oliver James Jauncey
Stephen Colias
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.)
Charter Communications Operating LLC
Original Assignee
Charter Communications Operating 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 Charter Communications Operating LLC filed Critical Charter Communications Operating LLC
Priority to US17/510,145 priority Critical patent/US20220116845A1/en
Publication of US20220116845A1 publication Critical patent/US20220116845A1/en
Assigned to BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT reassignment BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT SUPPLEMENTAL SECURITY AGREEMENT Assignors: CHARTER COMMUNICATIONS OPERATING, LLC, TIME WARNER CABLE ENTERPRISES LLC
Assigned to THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A. reassignment THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A. SECURITY INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: CHARTER COMMUNICATIONS OPERATING, LLC, Time Warner Cable Enterprises, LLC
Assigned to WELLS FARGO TRUST COMPANY, N.A. reassignment WELLS FARGO TRUST COMPANY, N.A. SECURITY INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: CHARTER COMMUNICATIONS OPERATING, LLC, Time Warner Cable Enterprises, LLC
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W36/00Hand-off or reselection arrangements
    • H04W36/0005Control or signalling for completing the hand-off
    • H04W36/0011Control or signalling for completing the hand-off for data sessions of end-to-end connection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W36/00Hand-off or reselection arrangements
    • H04W36/24Reselection being triggered by specific parameters
    • H04W36/32Reselection being triggered by specific parameters by location or mobility data, e.g. speed data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W36/00Hand-off or reselection arrangements
    • H04W36/08Reselecting an access point
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W36/00Hand-off or reselection arrangements
    • H04W36/24Reselection being triggered by specific parameters
    • 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
    • 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
    • H04W36/302Reselection being triggered by specific parameters by measured or perceived connection quality data due to low signal strength
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W36/00Hand-off or reselection arrangements
    • H04W36/24Reselection being triggered by specific parameters
    • H04W36/32Reselection being triggered by specific parameters by location or mobility data, e.g. speed data
    • H04W36/324Reselection being triggered by specific parameters by location or mobility data, e.g. speed data by mobility data, e.g. speed data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/025Services making use of location information using location based information parameters
    • H04W4/027Services making use of location information using location based information parameters using movement velocity, acceleration information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W48/00Access restriction; Network selection; Access point selection
    • H04W48/16Discovering, processing access restriction or access information
    • 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
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • H04W76/15Setup of multiple wireless link connections
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/30Connection release
    • H04W76/34Selective release of ongoing connections
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/02Processing of mobility data, e.g. registration information at HLR [Home Location Register] or VLR [Visitor Location Register]; Transfer of mobility data, e.g. between HLR, VLR or external networks
    • 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
    • H04W84/00Network topologies
    • H04W84/02Hierarchically pre-organised networks, e.g. paging networks, cellular networks, WLAN [Wireless Local Area Network] or WLL [Wireless Local Loop]
    • H04W84/10Small scale networks; Flat hierarchical networks
    • H04W84/12WLAN [Wireless Local Area Networks]

Definitions

  • This specification relates generally to connecting to a wireless network based, at least in part, on the mobility state of a device.
  • a mobile device such as a smartphone, is configured to connect to a wireless network, such as a WiFi network.
  • a wireless network such as a WiFi network.
  • This connection may break when the mobile device moves out of range of the wireless network.
  • the device may need to create a connection to a different wireless network that is in-range of the mobile device at the mobile device's new location.
  • An example method is performed by a client on a device, and comprises: detecting a mobility state of the device; making a determination, based on the mobility state, about how to manage one or more connections between the device and one or more wireless networks; and managing the one or more connections based, at least in part, on the determination.
  • the example method may include one or more of the following features, either alone or in combination.
  • the one or more connections may comprise a first connection, and the one or more wireless networks may comprise a first wireless network. Managing the one or more connections may comprise maintaining the first connection to the first wireless network.
  • the one or more connections may comprise a first connection and a second connection, and the one or more wireless networks may comprise a first wireless network and a second wireless. Managing the one or more connections may comprise causing the device to sever the first connection to the first wireless network and to create the second connection to the second wireless network.
  • the one or more connections may comprise a first connection and a second connection
  • the one or more wireless networks may comprise a first wireless network and a second wireless network.
  • the velocity may be within the first range, the second range, or a third range, with the third range comprising greater velocities than both the first range and the second range.
  • Determining how aggressive to be about switching between two of the wireless networks may comprise: for the velocity in the third range, being less likely to sever the first connection to the first wireless network and to create the second connection to the second wireless network than for the velocity in the second range.
  • the velocity may be within the first range, the second range, or the third range.
  • determining how aggressive to be about switching between two of the wireless networks may be based on a duration that the device is in a presence of the first wireless network.
  • the velocity may be within the first range, the second range, or the third range.
  • determining how aggressive to be about switching between two of the wireless networks may be based on stored information identifying the first wireless network as being maintained by a mobile access point.
  • the mobility state may be based, at least in part, on a velocity of the device.
  • managing the one or more connections may comprise scanning at a first frequency for a wireless network among one or more wireless networks, and causing the device to connect to the wireless network based on one or more attributes.
  • managing the one or more connections may comprise scanning for the wireless network at a second frequency that is greater than the first frequency, and causing the device to connect to the wireless network based on the one or more attributes.
  • the threshold may be a first threshold.
  • managing the one or more connections may comprise: ignoring one or more of the wireless networks while the velocity is above the second threshold; and waiting until the velocity is at least below the second threshold before attempting to cause the device to connect to the wireless network.
  • Managing the one or more connections may be based, at least in part, on one or more attributes relating to the device, the one or more wireless networks, or both the device and the one or more wireless networks.
  • the one or more attributes may comprise at least one of network signal strength, device network preference, network signal-to-noise ratio (SNR), or network signal band.
  • the mobility state may be based on a combination of a velocity of the device and a duration of time that the device has been in a presence of the one or more wireless networks.
  • the mobility state may be based, at least in part, on global positioning system (GPS) readings.
  • GPS global positioning system
  • An example method is performed by a client on a device, and comprises: determining a frequency at which to make network connection decisions based on a mobility state of the device and a presence of one or more wireless networks; obtaining one or more attributes relating to the device, the one or more wireless networks, or both the device and the one or more wireless networks; and controlling the device to affect connection of the device to the one or more wireless networks based on the frequency and the one or more attributes.
  • the example method may include one or more of the following features, either alone or in combination.
  • the one or more attributes may comprise at least one of network signal strength, device network preference, network signal-to-noise ratio (SNR), or network signal band.
  • the one or more wireless networks may comprise a first wireless network. Controlling the device to affect connection of the device to the one or more wireless networks may comprise maintaining a first connection to the first wireless network.
  • the mobility state may be based, at least in part, on a velocity of the device.
  • the velocity of the device may be based, at least in part, on one or more readings from an accelerometer in the device.
  • the velocity may be within a first range or a second range, with the second range comprising greater velocities than the first range.
  • the frequency may be greater for the velocity in the second range than for the velocity in the first range.
  • the velocity may be within the first range, the second range, or a third range, with the third range comprising greater velocities than both the first range and the second range.
  • the frequency may be less for the velocity in the third range than for the velocity in the second range.
  • the velocity may be within the first range, the second range, or the third range.
  • the frequency for the velocity in the third range may be based, at least in part, on a time that the device is in a presence of wireless network.
  • All or part of the processes, methods, systems, and techniques described herein may be implemented as a computer program product that includes instructions that are stored on one or more non-transitory machine-readable storage media, and that are executable on one or more processing devices.
  • Examples of non-transitory machine-readable storage media include, e.g., read-only memory, an optical disk drive, memory disk drive, random access memory, and the like.
  • All or part of the processes, methods, systems, and techniques described herein may be implemented as an apparatus, method, or system that includes one or more processing devices and memory storing instructions that are executable by the one or more processing devices to perform the stated operations.
  • FIG. 1 is a block diagram of an example computer/network architecture on which the example processes described herein may be implemented.
  • FIG. 2 is a flowchart showing an example process for managing wireless network connections based on the mobility state of a device.
  • FIG. 3 is a diagram showing a mobile device in a first mobility state in the presence of two wireless networks.
  • FIG. 4 is a diagram showing a mobile device in a second mobility state moving between two wireless networks.
  • FIG. 5 is a diagram showing a mobile device in a third mobility state moving between two wireless networks.
  • FIG. 6 is a diagram showing a mobile device in a first mobility state moving between two wireless networks on a train in a second mobility state.
  • Described herein are example processes, which may be performed by a client on a mobile device (“device”), for managing connections to wireless networks based on a mobility state of the device.
  • the example processes are rooted in computer technology in order to overcome a problem specifically arising in the realm of computer networks.
  • movement of a device can result in changes to wireless network connectivity.
  • the rates at which the device connects to these different wireless networks can consume processor resources such as battery, and thereby affect operation of the mobile device.
  • the processes described herein control connection of a device to different wireless networks based on a mobility state of the device.
  • An example of the mobility state is the velocity of the mobile device, although other factors may contribute to the mobility state.
  • the networks include WiFi networks; however, the processes described herein (“the processes”) may be used with any appropriate type of wireless network, examples of which are provided below.
  • the processes include detecting a mobility state of the device, making a determination, based on the mobility state, about how to manage one or more connections between the device and one or more wireless networks, and managing the one or more connections based, at least in part, on the determination.
  • Managing a connection may include, but is not limited to, maintaining an existing connection, severing an existing connection, and/or creating a new connection.
  • the mobility state corresponds to an amount of motion experienced by the mobile device.
  • the mobility state may be characterized by a speed or velocity of the device.
  • Velocity may be detected, at least in part, using an accelerometer on the device.
  • velocity may be detected based, in part, on a duration of time that the device has been in the presence of a wireless network or networks.
  • velocity may be detected based on a combination of appropriate factors including, but not limited to, accelerometer readings, the duration of time that the device is in the presence of a wireless network, global positioning system (GPS) readings, and so forth. For example, GPS readings for a device at different locations may be taken, and the time between those readings used to determine the device's velocity.
  • GPS global positioning system
  • the mobility state may be characterized by movements in addition to, or instead of, the velocity of the device. For example, in some cases, rotational movements, pivoting movements, acceleration, deceleration, or other types of movement may affect, or may factor into, the characterization of a mobility state.
  • the mobility state of a device affects how aggressively the device switches between wireless networks. For example, if the device is relatively immobile and all else is relatively equal, the processes may be less aggressive about switching between wireless networks. The assumption is that, unless there is something to be gained by switching, such as additional network throughput, there is no need to make a switch, since switching may cause a disruption in service, increase battery consumption, and so forth. On the other hand, if the device is moving at a moderate velocity, the processes may be more aggressive about switching between wireless networks. The assumption in this case is that the movement may cause the device to go out of range of its current network, causing network disruption that can be remedied by making a connection to a new wireless network.
  • the processes aggressively search for new networks while the device is moving at a moderate velocity, and connect, e.g., in sequence, to appropriate networks that have favorable connection attributes.
  • a network connection falls below a predefined throughput, e.g., as the device begins to go out of range of the network
  • the processes may connect the device to a new, higher-throughput network, and sever the prior connection.
  • the processes again may be less aggressive about switching between wireless networks.
  • the assumption in this case is that, due to the high velocity, the device will pass quickly through a number of wireless networks.
  • the advantages of switching for each network encountered will be more than offset by the consumption of device resources.
  • the processes may switch between wireless networks opportunistically.
  • the processes may switch when the device drops below a predefined velocity; the processes may switch only every N th (N>1) network encountered; the processes may switch only when the device moves out of range of an existing connection; and so forth.
  • factors in addition to velocity may be considered when determining whether, and when, to switch between wireless networks.
  • the processes may make a determination about how aggressive to be about switching networks based on velocity, and then use one or more network attributes and/or device attributes in determining whether, and when, to make a switch.
  • network or device attributes such as throughput, network quality-of-service (QoS), available network bandwidth, network security, network signal strength, network signal-to-noise ratio (SNR), device network preference, network signal band, device Internet service provider (ISP), number of users, and so forth may be taken into account. This list is not exhaustive, and any appropriate considerations may be taken into account in determining whether, and when, to switch networks.
  • these attributes may be weighted appropriately, depending upon their importance to the device's user. For example, if the user has designated throughput as a critical factor, throughput measurements may be weighted greater than other attributes in determining whether to switch between wireless networks in one or more mobility states.
  • the example processes may be performed, in whole or in part, by a client stored in memory on the mobile device.
  • the client may include one or more software modules comprised of executable instructions to implement the network switching processes described herein.
  • the client runs continuously in the background during device operation.
  • the example processes may be implemented, at least in part, also using one or more servers (“servers”).
  • the servers may include one or more software modules comprised of executable instructions to configure the mobile device to perform the switching.
  • the servers may store policies that impact whether, and when, the mobile device switches between wireless network.
  • the client may optimize a server's policy in order to make transitions between wireless networks as seamless as possible.
  • the policies may be loaded onto the servers by an owner of the mobile device or by any other appropriate party having an interest in the operation of the mobile device.
  • an ISP may load the policies on the servers.
  • a Web interface, application programming interface (API), or other appropriate interface may be used to load the policies onto the server.
  • the mobile device may synchronize (“synch”) with the server intermittently, periodically, or at any appropriate time to receive, from the server, an operational policy (“policy”) that is designated for the mobile device. Synching may be user-initiated or it may be performed automatically based on time or some operational trigger. Either the mobile device or the server may initiate communication.
  • the mobile device and the server may communicate with each other over the Internet or over any other appropriate network or networks.
  • the server may push a policy to the mobile device, or the mobile device may pull a policy from the server.
  • the policies on the server may be indexed by telephone number, user name, address, device identifier, or other appropriate indicia. The server may recognize the mobile device based on information such as this, and access appropriate policies for the mobile device.
  • An example policy for a mobile device may specify, among other things, whether, when, and under what circumstances to switch between wireless networks.
  • the policy may specify how aggressive to be at making network connections, factors to consider when making a connection decision, and the velocity ranges at which different levels of aggressiveness are to be employed.
  • the policy may specify a frequency at which to make network connection decisions based on a mobility state of the device—e.g., less aggressive in a first velocity, more aggressive in a second velocity range, and less aggressive in a third velocity range, where the first velocity range includes the slowest velocities, the second velocity range includes intermediate velocities, and the third velocity range includes the fastest velocities.
  • the policies are not limited to any particular device configuration and operation, and may be used to implement switching under any appropriate circumstances and with any appropriate constraints.
  • FIG. 1 shows an example computer/network architecture 10 on which the example processes may be implemented.
  • the processes are not limited to use with the FIG. 1 architecture, and may be implemented on any appropriate computer architecture and/or network architecture.
  • example computer/network architecture 10 includes a mobile device 12 and a server system 13 .
  • the mobile device may be, or include, any appropriate device capable of communicating over a computer network including, but not limited to, a smartphone, a cellular telephone, a digital camera, a tablet computing device, a laptop computer, and so forth.
  • Mobile device 12 may include one or more processing devices 14 (e.g., microprocessors) and memory 16 storing computer/machine-executable instructions 17 that are executable by the one or more processing devices.
  • the instructions may be part of one or more computer programs that implement a client 18 that controls network switching functionality described herein.
  • the client may include a decision engine 20 that performs at least part of the processes.
  • the client may be part of a larger decision engine 20 .
  • the client and the decision engine may be one in the same.
  • Mobile device 12 may be connected to, and accessible over, any appropriate network 19 , such as a WiFi network, an LTE (long-term evolution) network, and so forth.
  • Server system 13 may include one or more computing devices 21 , 22 , 23 examples of which may include one or more servers, desktop computers, mobile devices, and so forth.
  • An example server system may include one or more processing devices 24 (e.g., microprocessors) and memory 25 storing instructions 26 that are executable by the one or more processing devices.
  • the instructions are part of one or more computer programs that may be used to implement at least part of the network switching processes described herein.
  • the instructions may enable communication between the mobile device and the server system in order to provide the client on the mobile device with policies 27 that control the device's operation, including to implement the network switching processes. These policies may be stored in a database 28 on the server system or at any other appropriate location that is accessible to the server system.
  • Server system 12 may also be connected to, and accessible over, a wired or wireless network 19 .
  • the processes may not use the server system, but rather may be implemented solely on the mobile device.
  • policies may be pre-installed on the mobile device, or a user of the mobile device may program the mobile device with one or more appropriate policies.
  • Mobile device 12 and server system 13 may communicate with each other, and with other systems, such as those described herein, over one or more computer networks, which may include wireless and/or wired networks.
  • FIG. 2 shows an example process 30 for switching between networks.
  • Process 30 may be performed by client 18 in whole, or in part, on the architecture of FIG. 1 .
  • client 18 in mobile device 12 synchs ( 31 ) with server system 13 over one or more computer networks 19 .
  • a policy may be pushed by the server system to the client, or the client may request and receive the policy from the server system.
  • the policy specifies, among other things, the circumstances under which the device may switch between wireless networks.
  • a policy may specify how aggressive the client is to be about switching networks based on device mobility state, and how to use device attribute(s), network attribute(s), or both in determining whether, and when, to switch between wireless networks.
  • attributes examples include, but are not limited to, network throughput, QoS, available bandwidth, network security, network signal strength, network SNR, device network preference, network signal band, device ISP, number of users on the network, device processing capabilities, device internal memory, remaining device battery life, device battery capacity, and so forth.
  • Other attributes not specified herein may be used instead of, or in addition to, those specified.
  • attributes other than device and network attributes may be factored into switching decisions. For example, if the device is moving into an area having large amounts of radio frequency (RF) background signals or other radiation, this may affect switching.
  • RF radio frequency
  • a policy 40 may specify that a client 18 is to be less aggressive about switching between wireless networks 43 and 44 when a device 12 is immobile or moving slowly. In the example of FIG. 3 , device 12 is resting on table 45 , but is in the presence of networks 43 and 44 . In an example, policy 40 may specify that the client is to be less aggressive about switching wireless networks when the device is moving from zero (0) miles-per-hour (mph) up to just below (less than) three ( ⁇ 3) mph.
  • less aggressive switching in the first velocity range (0- ⁇ 3 mph) may include scanning for other networks less frequently than in other velocity ranges, which will result in fewer opportunities to evaluate whether to switch and, therefore, likely less switching. Scanning less frequently may reduce device battery consumption. For example, in some implementations, the client scans for networks every thirty (30) minutes; however, any appropriate scanning duration may be used. In some implementations, assuming two wireless networks in range of the mobile device are about equal in terms of factors such as those listed herein, in this first velocity range, the client is less likely than in a greater velocity range (e.g., 3- ⁇ 15 mph) to sever an existing connection to a wireless network 43 and to create another, different connection to a different wireless network 44 .
  • a greater velocity range e.g., 3- ⁇ 15 mph
  • less aggressive switching includes not switching between wireless networks unless there is more than a predefined benefit that accrues to the operation of the mobile device.
  • a predefined benefit that accrues to the operation of the mobile device.
  • an existing connection to a wireless network 43 may be maintained absent extenuating circumstances.
  • switching to another wireless network in range, such as wireless network 44 may not be performed unless there is more than a predefined gain in one or more of the following: network throughput, QoS, available bandwidth, network security, or network signal strength.
  • switching may not be performed unless another network is a more preferred network for the device, the other network uses a preferential signal band for the device, the other network is maintained or owned by an ISP for the device, the other network has fewer users, or some combination of these or other factors.
  • Device processing capabilities e.g., how many clock cycles a CPU can perform per second
  • device internal memory e.g., volatile and non-volatile memory
  • remaining device battery life e.g., how many clock cycles a CPU can perform per second
  • a policy 47 may specify that the client 18 is to be more aggressive about causing the device 12 to switch between wireless networks 49 and 50 when the device is moving at a moderate velocity than when the device is moving slowly.
  • device 12 is moving on a bicycle 52 in the direction of arrow 53 at a moderate velocity from wireless network 49 towards wireless network 50 , and may be controlled to switch from an existing connection to wireless network 49 to a new connection to wireless network 50 .
  • policy 47 may specify that the client is to be more aggressive about switching wireless networks when the device is moving from three (3) miles-per-hour (mph) up to just below (less than) fifteen ( ⁇ 15) mph.
  • more aggressive switching includes being more likely to switch connections in this second (3- ⁇ 15 mph) range than in the first (0- ⁇ 3 mph) range, assuming all else is equal.
  • more aggressive switching in the second velocity range may include scanning for other networks more frequently than in other velocity ranges, which will result in more opportunities to evaluate whether to switch and, therefore, likely result in more switching.
  • the client is more likely than in a lower velocity range (e.g., the 0- ⁇ 3 mph described above) to sever an existing connection to an initial wireless network 49 and to create another, different connection to a different wireless network 50 .
  • more aggressive switching includes switching between wireless networks automatically as a new network is detected so long as the new network has some predefined minimum characteristics, which may be measured based on the attributes listed herein. In some implementations, more aggressive switching includes not switching between wireless networks unless there is more than a predefined benefit that accrues to the operation of the mobile device. However, the predefined benefit in this second range (3- ⁇ 15 mph) may be less than the predefined benefit required for switching in the first range (0- ⁇ 3 mph).
  • switching to another network in this second range (3- ⁇ 15 mph) may be performed if the other network increases download speed by 25% or more, whereas switching in the first range (0- ⁇ 3 mph) may only be performed if the other network increases download speed by 200% or more.
  • switching to another network in this second range (3- ⁇ 15 mph) may be performed if the other network decreases network latency by 10% or more, whereas switching in the first range (0- ⁇ 3 mph) may only be performed if the other network decreases network latency by 50% or more.
  • switching may be required because the mobile device eventually moves out of range of an existing connection and, as a result, a new connection is required. In some implementations, switching may occur when, as a result of movement, network performance drops below a predefined level. Any appropriate network may be selected to make the new connection. In some implementations, there may be more than one network to select from when making the new network connection. In examples such as this, a network may be selected that has a better/best gain in one or more of the following: throughput, QoS, available bandwidth, network security, network signal strength, or some combination of these or other attributes.
  • a network may be selected because the network is a more preferred network for the device, the network uses a preferential signal band for the device, the network is maintained or owned by an ISP for the device, the network has fewer users, or some combination of these or other factors.
  • Device processing capabilities, device internal memory, remaining device battery life, device battery capacity, and so forth may also be taken into account when determining whether to switch networks.
  • a policy 56 may specify that the client 18 is to be less aggressive about switching between wireless networks 58 and 59 when the device is moving at a high velocity.
  • device 12 is moving on an automobile 60 in the direction of arrow 61 from wireless network 58 towards wireless network 59 , and may be controlled to switch from an existing connection to wireless network 58 to a new connection to wireless network 59 .
  • policy 56 may specify that the client is to be less aggressive about switching wireless networks when the device is moving at fifteen (15) mph or greater ( ⁇ 15 mph).
  • the less aggressive switching may include being opportunistic about switching between wireless networks.
  • being opportunistic may include ignoring one or more of wireless networks that the mobile device encounters during movement at high velocity (such as wireless network 55 ), and waiting until the velocity of mobile device 12 decreases to below a threshold (e.g., to below 15 mph) before attempting to cause the device to connect to a new wireless network 59 . Once the device is below the threshold, the client may then attempt to connect to a wireless network within range. Attributes that may influence a connection decision include, but are not limited to, those described above. These may include, for example, throughput, QoS, available bandwidth, network security, network signal strength, device network preference, network signal band, device ISP, number of users, and so forth.
  • switching may be required even at high velocity because the mobile device eventually moves out of range of an existing connection and, as a result, a new connection is required. In some implementations, switching may occur when, as a result of movement, network performance drops below a predefined level. At that point, any appropriate network may be selected to make the new connection. In some implementations, there may be more than one network to select from when making the new network connection. In examples such as this, an appropriate network may be selected for connection by taking into account one or more of the device attributes and network attributes described herein.
  • switching may be required even at high velocity because the mobile device eventually moves out of range of an existing connection and, as a result, a new connection is required.
  • the less aggressive switching performed at high velocities may include not attempting connection to at least some wireless networks encountered during movement at the high velocity. For example, networks may be scanned for less frequently by the client, resulting in fewer connections.
  • policy 58 may allow the client to attempt to connect only to every N th (N>1) wireless network encountered during movement. In some implementations, this may be constrained by distances between networks. For example, if the client encounters numerous networks within a defined distance, then the policy may only allow attempts to connect for every N th network encountered. On the other hand, if there is limited network connectivity over a distance, the policy may make allowances and allow the client to attempt to connect each time a wireless network is encountered.
  • policies are examples only. Any appropriate policy may be implemented using the server system and mobile devices described herein. Furthermore, although example values are ascribed to the low, intermediate/moderate, and high velocity ranges, those different ranges may be defined by any appropriate numerical velocities. Other factors, such as those described below, may affect how policies are implemented or may be included in the policies themselves. Furthermore, there may be less than, or more than, three policies stored in the server system and accessible to the mobile device.
  • client 12 receives ( 32 ) a policy as a result of synchronization with the server system.
  • the received policy may be programmed into the client to cause the device to operate in accordance with the policy.
  • more than one policy may be programmed into the client. If two or more policies have incompatible provisions, the client may resolve any incompatibilities in accordance with one or more stored rules.
  • the client detects ( 33 ) a mobility state of the device.
  • the detection may be based on the policy or policies received. For example, if a policy specifies three velocity ranges that define the mobility states of the device, the client will obtain the velocity of the device and determine a velocity range into which the detected velocity falls. For example, the device velocity may be compared to a first threshold (e.g., 3 mph) to determine if the velocity is in the first range; the device velocity may be compared to the first threshold and a second threshold (e.g., 3 mph and 15 mph) to determine if the velocity is in the second range, and the device velocity may be compared to the second threshold (e.g., 15 mph) to determine if the velocity is in the third rage.
  • a first threshold e.g., 3 mph
  • a second threshold e.g., 3 mph and 15 mph
  • the velocity of the device may be detected, at least in part, using an accelerometer on the device.
  • the client may read the accelerometer of the device to obtain the velocity of the device.
  • the velocity may be detected based on a duration of time that the device has been in the presence of a wireless network or networks.
  • a device may be moving within a moving object.
  • the accelerometer may indicate movement.
  • the movement that is relevant is not overall movement of the device, but rather the movement of the device within the moving object.
  • movement may be detected also based on the duration that the device was in the presence of a wireless network.
  • velocity may be detected based on a combination of factors including, but not limited to, those listed here.
  • the client makes a determination ( 34 ), based on the detected mobility state of the device, about how to manage one or more connections between the device and one or more wireless networks.
  • managing the connections may include causing the device to maintain a connection to a wireless network or managing the connection may include causing the device to sever an existing connection to an initial wireless network and causing the device to create another, different connection to another, different wireless network.
  • the act of making the determination includes determining how aggressive to be about switching between two of the wireless networks.
  • the act of making the determination may include determining to be less aggressive about switching connections or more aggressive about switching connections. In this regard, less aggressive and more aggressive are intended to be relative terms, and need not be quantifiable.
  • making the determination may include affecting a frequency at which the client makes network connection decisions based on a mobility state of the device and a presence of one or more wireless networks.
  • a policy may require the client to scan for other networks more or less frequently based on the mobility state of the device, resulting, respectively, in more or fewer network-connection decision-making opportunities and, thus, more or less switching.
  • the client manages ( 35 ) device network connections based on the determination about the level of aggressiveness to use. This level is defined based on the policy being employed by the client and the mobility state of the device.
  • Managing the connection may include, among other things, obtaining one or more attributes relating to the device, the one or more wireless networks, or both the device and the one or more wireless networks; and controlling the device to affect connections of the device to the one or more wireless networks based on the one or more attributes and the level of aggressiveness defined by the policy.
  • the level of aggressiveness may be defined, at least in part, based on the frequency at which network connection decisions are made.
  • the attributes relating to the device may be obtained by a separate engine (not shown) in the client, and may be obtained from the device itself or from a device profile obtained from the server system at the time a policy is obtained.
  • the attributes relating to the wireless networks may be obtained from the networks through measurement (e.g., by sending and receiving test packets), or from network profiles obtained from the server system at the time a policy is obtained.
  • the processes employ voting modules to evaluate a candidate wireless network based on the attributes.
  • the voting modules may evaluate one or more network attributes and/or device attributes in determining whether to connect to a wireless network.
  • each voting module issues a vote, that is based on its analysis, and that indicates whether or not to connect to the candidate network. For example, each voting module may evaluate an attribute relative to a predefined baseline, and approve or deny connection to the wireless network based on whether the baseline is met. The votes may be used in determining whether to connect to the candidate network.
  • device velocity may be detected based on a duration of time that the device has been in the presence of a wireless network or networks.
  • device 12 may be moving within a moving object.
  • device 12 may be on a train 65 (or an airplane, for example).
  • the train may include multiple wireless networks 67 and 68 that move along with motion of the train.
  • train 65 is moving along the direction of arrow 70 at 3- ⁇ 15 mph
  • the device may encounter different wireless networks.
  • the device may move from the range of wireless network 67 to the range of wireless network 68 .
  • Relative movement of the device may, however, be at a relatively slow pace (e.g., 0- ⁇ 3 mph). However, because the train is moving, the device's accelerometer may register a higher velocity (e.g., 3- ⁇ 15 mph). In cases like this, other factors, such as the duration that the device is in the presence of a wireless network, may be used to determine in which range the velocity of the device falls. For example, if a device accelerometer indicates that the device has moved a distance of one (1) mile, yet the device remains in the presence of a single WiFi network (e.g., wireless network 67 ) during this entire time, then client 18 may determine that the device is moving inside of another machine that is itself moving.
  • a single WiFi network e.g., wireless network 67
  • the client determines device velocity based on the duration that the device is in the presence of the WiFi network and the movement of the device between known or detectable reference points, such as network access points. Using this information, the client can determine the rate of device movement with the machine, and use that rate of movement to characterize the device's mobility state. Policy 72 may contain instructions to control the client to make these determinations, and may contain information to control switching between wireless networks as described herein.
  • the client may record, and store locally (e.g., in a cache on the device), the identities of networks that the client has encountered. In some implementations, the client may store the identities of networks encountered in all velocity ranges. In some implementations, the client may store the identities of networks encountered in a subset of velocity ranges. In some implementations, the client may store the identities of networks encountered in a single velocity range. In an example, the client may store the identities of networks encountered in a third velocity range (e.g., ⁇ 15 mph) that have high dwell times.
  • An example dwell time is a time that the device is in-range of the network. A dwell time is considered high if it exceeds some predefined threshold, which may be measured in minutes, hours, or days, for example.
  • a device traveling on a train may record a velocity in the ⁇ 15 mph range, but may have a high dwell time relative to an on-train wireless network.
  • the information stored may be used to determine that the device is on a moving device (e.g., a train or an airplane), and to reduce the amount of time that it takes to adjust how network switching is performed.
  • the stored information may identify the network as being mobile in the sense that the network is maintained by a mobile access point and, therefore, that that the device is in the presence of a mobile access point.
  • the client may use this information to automatically configure the device to change its switching behavior as described herein.
  • the information is stored for a period of time and may be deleted after a period of time.
  • the information is a flag that is cached based on the media access control (MAC) network address of the network access point.
  • the information may be shared among clients of different devices, as appropriate. For example, the information may be uploaded to the server system and distributed to different clients on different devices. In some implementations, the information may be shared directly among clients, e.g., in cases where different clients are connected to the same network, and user approval and/or appropriate compliance with device security protocols are met.
  • wireless networks 49 and 50 may both be WiFi networks; wireless network 49 may be a WiFi network and wireless network 50 may be an LTE network; wireless network 49 may be a 3G network and wireless network 50 may be an LTE network; and so forth.
  • the processes may be used with both managed and unmanaged wireless networks.
  • the client obtains device security credentials along with a policy. Examples include, but are not limited to, a username and password. This information is provided to the wireless network during connection operations.
  • the device to operate on an unmanaged network, the device itself knows the security credentials, e.g., the security credentials are not provided by the sever system along with the policies. This information is provided to the wireless network during connection operations.
  • Computing systems that may be used to implement all or part of the server system described herein may include various forms of digital computers. Examples of digital computers include, but are not limited to, laptops, desktops, workstations, personal digital assistants, servers, blade servers, mainframes, and other appropriate computers. Computing systems may be part of, included in, or used to implement all or part of the mobile devices described herein. Examples of mobile devices include, but are not limited to, tablet computing devices, personal digital assistants, cellular telephones, smartphones, digital cameras, digital glasses and other portable computing devices.
  • the computing devices described herein, their connections and relationships, and their functions, are meant to be examples only, and are not meant to limit implementations of the technology.
  • a computer program product e.g., a computer program tangibly embodied in one or more information carriers, e.g., in one or more tangible machine-readable storage media, for execution by, or to control the operation of, data processing apparatus, e.g., a programmable processor, a computer, or multiple computers
  • a computer program can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, part, subroutine, or other unit suitable for use in a computing environment.
  • a computer program can be deployed to be executed on one computer or on multiple computers at one site or distributed across multiple sites and interconnected by a network.
  • Actions associated with implementing the processes can be performed by one or more programmable processors executing one or more computer programs to perform the functions of the calibration process. All or part of the processes can be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) and/or an ASIC (application-specific integrated circuit).
  • special purpose logic circuitry e.g., an FPGA (field programmable gate array) and/or an ASIC (application-specific integrated circuit).
  • processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer.
  • a processor will receive instructions and data from a read-only storage area or a random access storage area or both.
  • Elements of a computer include one or more processors for executing instructions and one or more storage area devices for storing instructions and data.
  • a computer will also include, or be operatively coupled to receive data from, or transfer data to, or both, one or more machine-readable storage media, such as mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks.
  • Non-transitory machine-readable storage media suitable for embodying computer program instructions and data include all forms of non-volatile storage area, including by way of example, semiconductor storage area devices, e.g., EPROM, EEPROM, and flash storage area devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks.
  • semiconductor storage area devices e.g., EPROM, EEPROM, and flash storage area devices
  • magnetic disks e.g., internal hard disks or removable disks
  • magneto-optical disks e.g., CD-ROM and DVD-ROM disks.
  • Each computing device such as a smartphone or server, may include a hard drive for storing data and computer programs, and a processing device (e.g., a microprocessor) and memory (e.g., RAM) for executing computer programs.
  • a processing device e.g., a microprocessor
  • memory e.g., RAM
  • a computing device may include a graphics system, including a display screen.
  • a display screen such as an LCD or a CRT (Cathode Ray Tube) displays, to a user, images that are generated by the graphics system of the computing device.
  • display on a computer display e.g., a monitor
  • the computer display is LCD-based
  • the orientation of liquid crystals can be changed by the application of biasing voltages in a physical transformation that is visually apparent to the user.
  • the computer display is a CRT
  • the state of a fluorescent screen can be changed by the impact of electrons in a physical transformation that is also visually apparent.
  • Each display screen may be touch-sensitive, allowing a user to enter information onto the display screen via a virtual keyboard.
  • a virtual keyboard On some computing devices, such as a desktop or smartphone, a physical QWERTY keyboard and scroll wheel may be provided for entering information onto the display screen.
  • a computing device, and computer programs executed thereon, may also be configured to accept voice commands, and to perform functions in response to such commands. For example, the example processes described herein may be initiated at a client, to the extent possible, via voice commands.

Abstract

An example technique is performed by a client on a device, and includes: detecting a mobility state of the device; making a determination, based on the mobility state, about how to manage one or more connections between the device and one or more wireless networks; and managing the one or more connections based, at least in part, on the determination.

Description

    TECHNICAL FIELD
  • This specification relates generally to connecting to a wireless network based, at least in part, on the mobility state of a device.
  • BACKGROUND
  • A mobile device, such as a smartphone, is configured to connect to a wireless network, such as a WiFi network. This connection may break when the mobile device moves out of range of the wireless network. To maintain service, the device may need to create a connection to a different wireless network that is in-range of the mobile device at the mobile device's new location.
  • SUMMARY
  • An example method is performed by a client on a device, and comprises: detecting a mobility state of the device; making a determination, based on the mobility state, about how to manage one or more connections between the device and one or more wireless networks; and managing the one or more connections based, at least in part, on the determination. The example method may include one or more of the following features, either alone or in combination.
  • The one or more connections may comprise a first connection, and the one or more wireless networks may comprise a first wireless network. Managing the one or more connections may comprise maintaining the first connection to the first wireless network. The one or more connections may comprise a first connection and a second connection, and the one or more wireless networks may comprise a first wireless network and a second wireless. Managing the one or more connections may comprise causing the device to sever the first connection to the first wireless network and to create the second connection to the second wireless network.
  • The mobility state may be based, at least in part, on a velocity of the device. Making the determination about how to manage the one or more connections may comprise determining, based on the velocity, how aggressive to be about switching between two of the wireless networks.
  • The one or more connections may comprise a first connection and a second connection, and the one or more wireless networks may comprise a first wireless network and a second wireless network. The velocity may be within a first range or a second range, with the second range comprising greater velocities than the first range. Determining how aggressive to be about switching between two of the wireless networks may comprise: for the velocity in the second range, being more likely to sever the first connection to the first wireless network and to create the second connection to the second wireless network than for the velocity in the first range. The velocity may be within the first range, the second range, or a third range, with the third range comprising greater velocities than both the first range and the second range. Determining how aggressive to be about switching between two of the wireless networks may comprise: for the velocity in the third range, being less likely to sever the first connection to the first wireless network and to create the second connection to the second wireless network than for the velocity in the second range. The velocity may be within the first range, the second range, or the third range. For the velocity in the third range, determining how aggressive to be about switching between two of the wireless networks may be based on a duration that the device is in a presence of the first wireless network. The velocity may be within the first range, the second range, or the third range. For the velocity in the third range, determining how aggressive to be about switching between two of the wireless networks may be based on stored information identifying the first wireless network as being maintained by a mobile access point.
  • The mobility state may be based, at least in part, on a velocity of the device. In a case that the velocity is below a threshold, managing the one or more connections may comprise scanning at a first frequency for a wireless network among one or more wireless networks, and causing the device to connect to the wireless network based on one or more attributes. In a case that the velocity is above a threshold, managing the one or more connections may comprise scanning for the wireless network at a second frequency that is greater than the first frequency, and causing the device to connect to the wireless network based on the one or more attributes. The threshold may be a first threshold. In a case that the velocity is above a second threshold that is different from the first threshold, managing the one or more connections may comprise: ignoring one or more of the wireless networks while the velocity is above the second threshold; and waiting until the velocity is at least below the second threshold before attempting to cause the device to connect to the wireless network.
  • Managing the one or more connections may be based, at least in part, on one or more attributes relating to the device, the one or more wireless networks, or both the device and the one or more wireless networks. The one or more attributes may comprise at least one of network signal strength, device network preference, network signal-to-noise ratio (SNR), or network signal band. The mobility state may be based on a combination of a velocity of the device and a duration of time that the device has been in a presence of the one or more wireless networks. The mobility state may be based, at least in part, on global positioning system (GPS) readings.
  • An example method is performed by a client on a device, and comprises: determining a frequency at which to make network connection decisions based on a mobility state of the device and a presence of one or more wireless networks; obtaining one or more attributes relating to the device, the one or more wireless networks, or both the device and the one or more wireless networks; and controlling the device to affect connection of the device to the one or more wireless networks based on the frequency and the one or more attributes. The example method may include one or more of the following features, either alone or in combination.
  • The one or more attributes may comprise at least one of network signal strength, device network preference, network signal-to-noise ratio (SNR), or network signal band. The one or more wireless networks may comprise a first wireless network. Controlling the device to affect connection of the device to the one or more wireless networks may comprise maintaining a first connection to the first wireless network.
  • The one or more wireless networks may comprise a first wireless network and a second wireless network. Controlling the device to affect connection of the device to the one or more wireless networks may comprise causing the device to sever a first connection to the first wireless network and to create a second connection to the second wireless network.
  • The mobility state may be based, at least in part, on a velocity of the device. The velocity of the device may be based, at least in part, on one or more readings from an accelerometer in the device. The velocity may be within a first range or a second range, with the second range comprising greater velocities than the first range. The frequency may be greater for the velocity in the second range than for the velocity in the first range. The velocity may be within the first range, the second range, or a third range, with the third range comprising greater velocities than both the first range and the second range. The frequency may be less for the velocity in the third range than for the velocity in the second range. The velocity may be within the first range, the second range, or the third range. The frequency for the velocity in the third range may be based, at least in part, on a time that the device is in a presence of wireless network.
  • Any two or more of the features described in this specification, including in this summary section, may be combined to form implementations not specifically described in this specification.
  • All or part of the processes, methods, systems, and techniques described herein may be implemented as a computer program product that includes instructions that are stored on one or more non-transitory machine-readable storage media, and that are executable on one or more processing devices. Examples of non-transitory machine-readable storage media include, e.g., read-only memory, an optical disk drive, memory disk drive, random access memory, and the like. All or part of the processes, methods, systems, and techniques described herein may be implemented as an apparatus, method, or system that includes one or more processing devices and memory storing instructions that are executable by the one or more processing devices to perform the stated operations.
  • The details of one or more implementations are set forth in the accompanying drawings and the description below. Other features and advantages will be apparent from the description and drawings, and from the claims.
  • DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a block diagram of an example computer/network architecture on which the example processes described herein may be implemented.
  • FIG. 2 is a flowchart showing an example process for managing wireless network connections based on the mobility state of a device.
  • FIG. 3 is a diagram showing a mobile device in a first mobility state in the presence of two wireless networks.
  • FIG. 4 is a diagram showing a mobile device in a second mobility state moving between two wireless networks.
  • FIG. 5 is a diagram showing a mobile device in a third mobility state moving between two wireless networks.
  • FIG. 6 is a diagram showing a mobile device in a first mobility state moving between two wireless networks on a train in a second mobility state.
  • Like reference numerals in different figures indicate like elements.
  • DETAILED DESCRIPTION
  • Described herein are example processes, which may be performed by a client on a mobile device (“device”), for managing connections to wireless networks based on a mobility state of the device. The example processes are rooted in computer technology in order to overcome a problem specifically arising in the realm of computer networks. Specifically, movement of a device can result in changes to wireless network connectivity. For example, as a device moves, it goes into, and out of, ranges of different wireless networks. The rates at which the device connects to these different wireless networks can consume processor resources such as battery, and thereby affect operation of the mobile device. Accordingly, the processes described herein control connection of a device to different wireless networks based on a mobility state of the device. An example of the mobility state is the velocity of the mobile device, although other factors may contribute to the mobility state. By controlling the connection based on the mobility state, in some cases it is possible to improve device performance without overburdening connection resources.
  • In some examples, the networks include WiFi networks; however, the processes described herein (“the processes”) may be used with any appropriate type of wireless network, examples of which are provided below. In some implementations, the processes include detecting a mobility state of the device, making a determination, based on the mobility state, about how to manage one or more connections between the device and one or more wireless networks, and managing the one or more connections based, at least in part, on the determination. Managing a connection may include, but is not limited to, maintaining an existing connection, severing an existing connection, and/or creating a new connection.
  • The mobility state corresponds to an amount of motion experienced by the mobile device. For example, the mobility state may be characterized by a speed or velocity of the device. Velocity may be detected, at least in part, using an accelerometer on the device. In some implementations, velocity may be detected based, in part, on a duration of time that the device has been in the presence of a wireless network or networks. In this regard, velocity may be detected based on a combination of appropriate factors including, but not limited to, accelerometer readings, the duration of time that the device is in the presence of a wireless network, global positioning system (GPS) readings, and so forth. For example, GPS readings for a device at different locations may be taken, and the time between those readings used to determine the device's velocity. In some implementations, the mobility state may be characterized by movements in addition to, or instead of, the velocity of the device. For example, in some cases, rotational movements, pivoting movements, acceleration, deceleration, or other types of movement may affect, or may factor into, the characterization of a mobility state.
  • According to the example processes, the mobility state of a device affects how aggressively the device switches between wireless networks. For example, if the device is relatively immobile and all else is relatively equal, the processes may be less aggressive about switching between wireless networks. The assumption is that, unless there is something to be gained by switching, such as additional network throughput, there is no need to make a switch, since switching may cause a disruption in service, increase battery consumption, and so forth. On the other hand, if the device is moving at a moderate velocity, the processes may be more aggressive about switching between wireless networks. The assumption in this case is that the movement may cause the device to go out of range of its current network, causing network disruption that can be remedied by making a connection to a new wireless network. Accordingly, the processes aggressively search for new networks while the device is moving at a moderate velocity, and connect, e.g., in sequence, to appropriate networks that have favorable connection attributes. In an example, as a network connection falls below a predefined throughput, e.g., as the device begins to go out of range of the network, the processes may connect the device to a new, higher-throughput network, and sever the prior connection. If the device is moving at a relatively high velocity, the processes again may be less aggressive about switching between wireless networks. The assumption in this case is that, due to the high velocity, the device will pass quickly through a number of wireless networks. The advantages of switching for each network encountered will be more than offset by the consumption of device resources. That is, due to the amount of switching performed, the device's performance may degrade. So, less switching is performed. For example, the processes may switch between wireless networks opportunistically. In some implementations, the processes may switch when the device drops below a predefined velocity; the processes may switch only every Nth (N>1) network encountered; the processes may switch only when the device moves out of range of an existing connection; and so forth.
  • In the above examples, factors in addition to velocity may be considered when determining whether, and when, to switch between wireless networks. For example, the processes may make a determination about how aggressive to be about switching networks based on velocity, and then use one or more network attributes and/or device attributes in determining whether, and when, to make a switch. For example, network or device attributes such as throughput, network quality-of-service (QoS), available network bandwidth, network security, network signal strength, network signal-to-noise ratio (SNR), device network preference, network signal band, device Internet service provider (ISP), number of users, and so forth may be taken into account. This list is not exhaustive, and any appropriate considerations may be taken into account in determining whether, and when, to switch networks. In some implementations, these attributes may be weighted appropriately, depending upon their importance to the device's user. For example, if the user has designated throughput as a critical factor, throughput measurements may be weighted greater than other attributes in determining whether to switch between wireless networks in one or more mobility states.
  • The example processes may be performed, in whole or in part, by a client stored in memory on the mobile device. The client may include one or more software modules comprised of executable instructions to implement the network switching processes described herein. In some implementations, the client runs continuously in the background during device operation. The example processes may be implemented, at least in part, also using one or more servers (“servers”). The servers may include one or more software modules comprised of executable instructions to configure the mobile device to perform the switching. For example, in some implementations, the servers may store policies that impact whether, and when, the mobile device switches between wireless network. In some implementations, the client may optimize a server's policy in order to make transitions between wireless networks as seamless as possible.
  • The policies may be loaded onto the servers by an owner of the mobile device or by any other appropriate party having an interest in the operation of the mobile device. For example, an ISP, a mobile network provider, or other party may load the policies on the servers. A Web interface, application programming interface (API), or other appropriate interface may be used to load the policies onto the server. The mobile device may synchronize (“synch”) with the server intermittently, periodically, or at any appropriate time to receive, from the server, an operational policy (“policy”) that is designated for the mobile device. Synching may be user-initiated or it may be performed automatically based on time or some operational trigger. Either the mobile device or the server may initiate communication. The mobile device and the server may communicate with each other over the Internet or over any other appropriate network or networks. In some implementations, the server may push a policy to the mobile device, or the mobile device may pull a policy from the server. In some examples, the policies on the server may be indexed by telephone number, user name, address, device identifier, or other appropriate indicia. The server may recognize the mobile device based on information such as this, and access appropriate policies for the mobile device.
  • An example policy for a mobile device may specify, among other things, whether, when, and under what circumstances to switch between wireless networks. For example, the policy may specify how aggressive to be at making network connections, factors to consider when making a connection decision, and the velocity ranges at which different levels of aggressiveness are to be employed. To the last point, the policy may specify a frequency at which to make network connection decisions based on a mobility state of the device—e.g., less aggressive in a first velocity, more aggressive in a second velocity range, and less aggressive in a third velocity range, where the first velocity range includes the slowest velocities, the second velocity range includes intermediate velocities, and the third velocity range includes the fastest velocities. The policies are not limited to any particular device configuration and operation, and may be used to implement switching under any appropriate circumstances and with any appropriate constraints.
  • FIG. 1 shows an example computer/network architecture 10 on which the example processes may be implemented. The processes, however, are not limited to use with the FIG. 1 architecture, and may be implemented on any appropriate computer architecture and/or network architecture.
  • In FIG. 1, example computer/network architecture 10 includes a mobile device 12 and a server system 13. The mobile device may be, or include, any appropriate device capable of communicating over a computer network including, but not limited to, a smartphone, a cellular telephone, a digital camera, a tablet computing device, a laptop computer, and so forth. Mobile device 12 may include one or more processing devices 14 (e.g., microprocessors) and memory 16 storing computer/machine-executable instructions 17 that are executable by the one or more processing devices. The instructions may be part of one or more computer programs that implement a client 18 that controls network switching functionality described herein. In some implementations, the client may include a decision engine 20 that performs at least part of the processes. In some implementations, the client may be part of a larger decision engine 20. In some implementations, the client and the decision engine may be one in the same. Mobile device 12 may be connected to, and accessible over, any appropriate network 19, such as a WiFi network, an LTE (long-term evolution) network, and so forth.
  • Server system 13 may include one or more computing devices 21, 22, 23 examples of which may include one or more servers, desktop computers, mobile devices, and so forth. An example server system may include one or more processing devices 24 (e.g., microprocessors) and memory 25 storing instructions 26 that are executable by the one or more processing devices. The instructions are part of one or more computer programs that may be used to implement at least part of the network switching processes described herein. For example, the instructions may enable communication between the mobile device and the server system in order to provide the client on the mobile device with policies 27 that control the device's operation, including to implement the network switching processes. These policies may be stored in a database 28 on the server system or at any other appropriate location that is accessible to the server system. Server system 12 may also be connected to, and accessible over, a wired or wireless network 19. In some implementations, the processes may not use the server system, but rather may be implemented solely on the mobile device. For example, policies may be pre-installed on the mobile device, or a user of the mobile device may program the mobile device with one or more appropriate policies.
  • Mobile device 12 and server system 13 may communicate with each other, and with other systems, such as those described herein, over one or more computer networks, which may include wireless and/or wired networks.
  • FIG. 2 shows an example process 30 for switching between networks. Process 30 may be performed by client 18 in whole, or in part, on the architecture of FIG. 1. According to process 30, client 18 in mobile device 12 synchs (31) with server system 13 over one or more computer networks 19. As explained, during this synchronization, a policy may be pushed by the server system to the client, or the client may request and receive the policy from the server system. The policy specifies, among other things, the circumstances under which the device may switch between wireless networks. As explained, a policy may specify how aggressive the client is to be about switching networks based on device mobility state, and how to use device attribute(s), network attribute(s), or both in determining whether, and when, to switch between wireless networks. Examples of attributes that may be taken into account include, but are not limited to, network throughput, QoS, available bandwidth, network security, network signal strength, network SNR, device network preference, network signal band, device ISP, number of users on the network, device processing capabilities, device internal memory, remaining device battery life, device battery capacity, and so forth. Other attributes not specified herein may be used instead of, or in addition to, those specified. In addition, attributes other than device and network attributes may be factored into switching decisions. For example, if the device is moving into an area having large amounts of radio frequency (RF) background signals or other radiation, this may affect switching.
  • In some implementations, referring to FIG. 3, a policy 40 may specify that a client 18 is to be less aggressive about switching between wireless networks 43 and 44 when a device 12 is immobile or moving slowly. In the example of FIG. 3, device 12 is resting on table 45, but is in the presence of networks 43 and 44. In an example, policy 40 may specify that the client is to be less aggressive about switching wireless networks when the device is moving from zero (0) miles-per-hour (mph) up to just below (less than) three (<3) mph.
  • In some implementations, less aggressive switching in the first velocity range (0-<3 mph) may include scanning for other networks less frequently than in other velocity ranges, which will result in fewer opportunities to evaluate whether to switch and, therefore, likely less switching. Scanning less frequently may reduce device battery consumption. For example, in some implementations, the client scans for networks every thirty (30) minutes; however, any appropriate scanning duration may be used. In some implementations, assuming two wireless networks in range of the mobile device are about equal in terms of factors such as those listed herein, in this first velocity range, the client is less likely than in a greater velocity range (e.g., 3-<15 mph) to sever an existing connection to a wireless network 43 and to create another, different connection to a different wireless network 44.
  • In some implementations, less aggressive switching includes not switching between wireless networks unless there is more than a predefined benefit that accrues to the operation of the mobile device. For example, in some implementations, an existing connection to a wireless network 43 may be maintained absent extenuating circumstances. For example, switching to another wireless network in range, such as wireless network 44, may not be performed unless there is more than a predefined gain in one or more of the following: network throughput, QoS, available bandwidth, network security, or network signal strength. In some implementations, switching may not be performed unless another network is a more preferred network for the device, the other network uses a preferential signal band for the device, the other network is maintained or owned by an ISP for the device, the other network has fewer users, or some combination of these or other factors. Device processing capabilities (e.g., how many clock cycles a CPU can perform per second), device internal memory, remaining device battery life, device battery capacity, and so forth may also be taken into account when determining whether to switch networks.
  • In some implementations, referring to FIG. 4 a policy 47 may specify that the client 18 is to be more aggressive about causing the device 12 to switch between wireless networks 49 and 50 when the device is moving at a moderate velocity than when the device is moving slowly. In this example, device 12 is moving on a bicycle 52 in the direction of arrow 53 at a moderate velocity from wireless network 49 towards wireless network 50, and may be controlled to switch from an existing connection to wireless network 49 to a new connection to wireless network 50.
  • In an example, policy 47 may specify that the client is to be more aggressive about switching wireless networks when the device is moving from three (3) miles-per-hour (mph) up to just below (less than) fifteen (<15) mph. In an example, more aggressive switching includes being more likely to switch connections in this second (3-<15 mph) range than in the first (0-<3 mph) range, assuming all else is equal.
  • In some implementations, more aggressive switching in the second velocity range (3-<15 mph) may include scanning for other networks more frequently than in other velocity ranges, which will result in more opportunities to evaluate whether to switch and, therefore, likely result in more switching. In some implementations, assuming two wireless networks are about equal in terms of attributes such as those listed herein, in this second velocity range, the client is more likely than in a lower velocity range (e.g., the 0-<3 mph described above) to sever an existing connection to an initial wireless network 49 and to create another, different connection to a different wireless network 50.
  • In some implementations, more aggressive switching includes switching between wireless networks automatically as a new network is detected so long as the new network has some predefined minimum characteristics, which may be measured based on the attributes listed herein. In some implementations, more aggressive switching includes not switching between wireless networks unless there is more than a predefined benefit that accrues to the operation of the mobile device. However, the predefined benefit in this second range (3-<15 mph) may be less than the predefined benefit required for switching in the first range (0-<3 mph). In an example, assuming all else is equal, switching to another network in this second range (3-<15 mph) may be performed if the other network increases download speed by 25% or more, whereas switching in the first range (0-<3 mph) may only be performed if the other network increases download speed by 200% or more. In another example, assuming all else is equal, switching to another network in this second range (3-<15 mph) may be performed if the other network decreases network latency by 10% or more, whereas switching in the first range (0-<3 mph) may only be performed if the other network decreases network latency by 50% or more.
  • In some implementations, switching may be required because the mobile device eventually moves out of range of an existing connection and, as a result, a new connection is required. In some implementations, switching may occur when, as a result of movement, network performance drops below a predefined level. Any appropriate network may be selected to make the new connection. In some implementations, there may be more than one network to select from when making the new network connection. In examples such as this, a network may be selected that has a better/best gain in one or more of the following: throughput, QoS, available bandwidth, network security, network signal strength, or some combination of these or other attributes. In some implementations, a network may be selected because the network is a more preferred network for the device, the network uses a preferential signal band for the device, the network is maintained or owned by an ISP for the device, the network has fewer users, or some combination of these or other factors. Device processing capabilities, device internal memory, remaining device battery life, device battery capacity, and so forth may also be taken into account when determining whether to switch networks.
  • In some implementations, referring to FIG. 5, a policy 56 may specify that the client 18 is to be less aggressive about switching between wireless networks 58 and 59 when the device is moving at a high velocity. In this example, device 12 is moving on an automobile 60 in the direction of arrow 61 from wireless network 58 towards wireless network 59, and may be controlled to switch from an existing connection to wireless network 58 to a new connection to wireless network 59. In an example, policy 56 may specify that the client is to be less aggressive about switching wireless networks when the device is moving at fifteen (15) mph or greater (≥15 mph). In some implementations, the less aggressive switching may include being opportunistic about switching between wireless networks. For example, being opportunistic may include ignoring one or more of wireless networks that the mobile device encounters during movement at high velocity (such as wireless network 55), and waiting until the velocity of mobile device 12 decreases to below a threshold (e.g., to below 15 mph) before attempting to cause the device to connect to a new wireless network 59. Once the device is below the threshold, the client may then attempt to connect to a wireless network within range. Attributes that may influence a connection decision include, but are not limited to, those described above. These may include, for example, throughput, QoS, available bandwidth, network security, network signal strength, device network preference, network signal band, device ISP, number of users, and so forth.
  • In some implementations, switching may be required even at high velocity because the mobile device eventually moves out of range of an existing connection and, as a result, a new connection is required. In some implementations, switching may occur when, as a result of movement, network performance drops below a predefined level. At that point, any appropriate network may be selected to make the new connection. In some implementations, there may be more than one network to select from when making the new network connection. In examples such as this, an appropriate network may be selected for connection by taking into account one or more of the device attributes and network attributes described herein.
  • As noted, in some implementations, switching may be required even at high velocity because the mobile device eventually moves out of range of an existing connection and, as a result, a new connection is required. In some implementations, the less aggressive switching performed at high velocities may include not attempting connection to at least some wireless networks encountered during movement at the high velocity. For example, networks may be scanned for less frequently by the client, resulting in fewer connections. In some implementations, policy 58 may allow the client to attempt to connect only to every Nth (N>1) wireless network encountered during movement. In some implementations, this may be constrained by distances between networks. For example, if the client encounters numerous networks within a defined distance, then the policy may only allow attempts to connect for every Nth network encountered. On the other hand, if there is limited network connectivity over a distance, the policy may make allowances and allow the client to attempt to connect each time a wireless network is encountered.
  • The foregoing policies are examples only. Any appropriate policy may be implemented using the server system and mobile devices described herein. Furthermore, although example values are ascribed to the low, intermediate/moderate, and high velocity ranges, those different ranges may be defined by any appropriate numerical velocities. Other factors, such as those described below, may affect how policies are implemented or may be included in the policies themselves. Furthermore, there may be less than, or more than, three policies stored in the server system and accessible to the mobile device.
  • Referring back to FIG. 2, client 12 receives (32) a policy as a result of synchronization with the server system. The received policy may be programmed into the client to cause the device to operate in accordance with the policy. In some implementations, more than one policy may be programmed into the client. If two or more policies have incompatible provisions, the client may resolve any incompatibilities in accordance with one or more stored rules.
  • The client detects (33) a mobility state of the device. The detection may be based on the policy or policies received. For example, if a policy specifies three velocity ranges that define the mobility states of the device, the client will obtain the velocity of the device and determine a velocity range into which the detected velocity falls. For example, the device velocity may be compared to a first threshold (e.g., 3 mph) to determine if the velocity is in the first range; the device velocity may be compared to the first threshold and a second threshold (e.g., 3 mph and 15 mph) to determine if the velocity is in the second range, and the device velocity may be compared to the second threshold (e.g., 15 mph) to determine if the velocity is in the third rage. As noted, in some implementations, the velocity of the device may be detected, at least in part, using an accelerometer on the device. For example, the client may read the accelerometer of the device to obtain the velocity of the device. In some implementations, the velocity may be detected based on a duration of time that the device has been in the presence of a wireless network or networks. For example, as described in an example below, in some cases, a device may be moving within a moving object. Accordingly, the accelerometer may indicate movement. However, the movement that is relevant is not overall movement of the device, but rather the movement of the device within the moving object. In cases like this, for reasons explained below, movement may be detected also based on the duration that the device was in the presence of a wireless network. Thus, in some implementations, velocity may be detected based on a combination of factors including, but not limited to, those listed here.
  • The client makes a determination (34), based on the detected mobility state of the device, about how to manage one or more connections between the device and one or more wireless networks. As explained herein, in some implementations, managing the connections may include causing the device to maintain a connection to a wireless network or managing the connection may include causing the device to sever an existing connection to an initial wireless network and causing the device to create another, different connection to another, different wireless network. In some implementations, the act of making the determination includes determining how aggressive to be about switching between two of the wireless networks. For example, the act of making the determination may include determining to be less aggressive about switching connections or more aggressive about switching connections. In this regard, less aggressive and more aggressive are intended to be relative terms, and need not be quantifiable. Examples of switching that is less aggressive and more aggressive are described above with reference to policies stored on the server system. In some implementations, making the determination may include affecting a frequency at which the client makes network connection decisions based on a mobility state of the device and a presence of one or more wireless networks. For example, a policy may require the client to scan for other networks more or less frequently based on the mobility state of the device, resulting, respectively, in more or fewer network-connection decision-making opportunities and, thus, more or less switching.
  • The client manages (35) device network connections based on the determination about the level of aggressiveness to use. This level is defined based on the policy being employed by the client and the mobility state of the device. Managing the connection may include, among other things, obtaining one or more attributes relating to the device, the one or more wireless networks, or both the device and the one or more wireless networks; and controlling the device to affect connections of the device to the one or more wireless networks based on the one or more attributes and the level of aggressiveness defined by the policy. As noted, the level of aggressiveness may be defined, at least in part, based on the frequency at which network connection decisions are made. Controlling the device to affect a connection to a wireless network may include, as described herein, causing the device to maintain an existing network connection based on constraints defined in one or more policies. Controlling the device to affect a connection to a wireless network may include, as described herein, causing the device to sever an existing connection to a first wireless network and to create a new connection to a second wireless network based on constraints defined in one or more policies.
  • In some implementations, the attributes relating to the device may be obtained by a separate engine (not shown) in the client, and may be obtained from the device itself or from a device profile obtained from the server system at the time a policy is obtained. In some implementations, the attributes relating to the wireless networks may be obtained from the networks through measurement (e.g., by sending and receiving test packets), or from network profiles obtained from the server system at the time a policy is obtained.
  • In some implementations, the processes employ voting modules to evaluate a candidate wireless network based on the attributes. The voting modules may evaluate one or more network attributes and/or device attributes in determining whether to connect to a wireless network. In some implementations, each voting module issues a vote, that is based on its analysis, and that indicates whether or not to connect to the candidate network. For example, each voting module may evaluate an attribute relative to a predefined baseline, and approve or deny connection to the wireless network based on whether the baseline is met. The votes may be used in determining whether to connect to the candidate network.
  • As explained, in some cases, device velocity may be detected based on a duration of time that the device has been in the presence of a wireless network or networks. For example, in some cases, device 12 may be moving within a moving object. Referring to FIG. 6, device 12 may be on a train 65 (or an airplane, for example). The train may include multiple wireless networks 67 and 68 that move along with motion of the train. In this regard, train 65 is moving along the direction of arrow 70 at 3-<15 mph As device 12 moves in the train from car-to-car along the direction of arrow 71, the device may encounter different wireless networks. For example, the device may move from the range of wireless network 67 to the range of wireless network 68. Relative movement of the device may, however, be at a relatively slow pace (e.g., 0-<3 mph). However, because the train is moving, the device's accelerometer may register a higher velocity (e.g., 3-<15 mph). In cases like this, other factors, such as the duration that the device is in the presence of a wireless network, may be used to determine in which range the velocity of the device falls. For example, if a device accelerometer indicates that the device has moved a distance of one (1) mile, yet the device remains in the presence of a single WiFi network (e.g., wireless network 67) during this entire time, then client 18 may determine that the device is moving inside of another machine that is itself moving. In this case, the client determines device velocity based on the duration that the device is in the presence of the WiFi network and the movement of the device between known or detectable reference points, such as network access points. Using this information, the client can determine the rate of device movement with the machine, and use that rate of movement to characterize the device's mobility state. Policy 72 may contain instructions to control the client to make these determinations, and may contain information to control switching between wireless networks as described herein.
  • In some implementations, the client may record, and store locally (e.g., in a cache on the device), the identities of networks that the client has encountered. In some implementations, the client may store the identities of networks encountered in all velocity ranges. In some implementations, the client may store the identities of networks encountered in a subset of velocity ranges. In some implementations, the client may store the identities of networks encountered in a single velocity range. In an example, the client may store the identities of networks encountered in a third velocity range (e.g., ≥15 mph) that have high dwell times. An example dwell time is a time that the device is in-range of the network. A dwell time is considered high if it exceeds some predefined threshold, which may be measured in minutes, hours, or days, for example. For example, a device traveling on a train may record a velocity in the ≥15 mph range, but may have a high dwell time relative to an on-train wireless network. The information stored may be used to determine that the device is on a moving device (e.g., a train or an airplane), and to reduce the amount of time that it takes to adjust how network switching is performed. For example, the stored information may identify the network as being mobile in the sense that the network is maintained by a mobile access point and, therefore, that that the device is in the presence of a mobile access point. The client may use this information to automatically configure the device to change its switching behavior as described herein. In some implementations, the information is stored for a period of time and may be deleted after a period of time. In some implementations, the information is a flag that is cached based on the media access control (MAC) network address of the network access point. In some implementations, the information may be shared among clients of different devices, as appropriate. For example, the information may be uploaded to the server system and distributed to different clients on different devices. In some implementations, the information may be shared directly among clients, e.g., in cases where different clients are connected to the same network, and user approval and/or appropriate compliance with device security protocols are met.
  • The processes have been described in the context of WiFi networks; however, the processes may be used with any appropriate wireless network or networks. Examples of such other networks include, but are not limited to, cellular networks, such LTE networks, 3G networks, and 4G networks, Internet-of-Things (IoT) networks, local area networks (LANs), wide area networks (WANs), or any appropriate combination of wireless networks. In this regard, the processes may be applied to switch between the same type, or between different types, of wireless networks. For example referring to FIG. 4, wireless networks 49 and 50 may both be WiFi networks; wireless network 49 may be a WiFi network and wireless network 50 may be an LTE network; wireless network 49 may be a 3G network and wireless network 50 may be an LTE network; and so forth.
  • The processes may be used with both managed and unmanaged wireless networks. In some examples, to operate on a managed network, the client obtains device security credentials along with a policy. Examples include, but are not limited to, a username and password. This information is provided to the wireless network during connection operations. In some examples, to operate on an unmanaged network, the device itself knows the security credentials, e.g., the security credentials are not provided by the sever system along with the policies. This information is provided to the wireless network during connection operations.
  • Computing systems that may be used to implement all or part of the server system described herein may include various forms of digital computers. Examples of digital computers include, but are not limited to, laptops, desktops, workstations, personal digital assistants, servers, blade servers, mainframes, and other appropriate computers. Computing systems may be part of, included in, or used to implement all or part of the mobile devices described herein. Examples of mobile devices include, but are not limited to, tablet computing devices, personal digital assistants, cellular telephones, smartphones, digital cameras, digital glasses and other portable computing devices. The computing devices described herein, their connections and relationships, and their functions, are meant to be examples only, and are not meant to limit implementations of the technology.
  • All or part of the processes described herein and their various modifications (hereinafter referred to as “the processes”) can be implemented, at least in part, via a computer program product, e.g., a computer program tangibly embodied in one or more information carriers, e.g., in one or more tangible machine-readable storage media, for execution by, or to control the operation of, data processing apparatus, e.g., a programmable processor, a computer, or multiple computers
  • A computer program can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, part, subroutine, or other unit suitable for use in a computing environment. A computer program can be deployed to be executed on one computer or on multiple computers at one site or distributed across multiple sites and interconnected by a network.
  • Actions associated with implementing the processes can be performed by one or more programmable processors executing one or more computer programs to perform the functions of the calibration process. All or part of the processes can be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) and/or an ASIC (application-specific integrated circuit).
  • Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only storage area or a random access storage area or both. Elements of a computer (including a server) include one or more processors for executing instructions and one or more storage area devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from, or transfer data to, or both, one or more machine-readable storage media, such as mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks. Non-transitory machine-readable storage media suitable for embodying computer program instructions and data include all forms of non-volatile storage area, including by way of example, semiconductor storage area devices, e.g., EPROM, EEPROM, and flash storage area devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks.
  • Each computing device, such as a smartphone or server, may include a hard drive for storing data and computer programs, and a processing device (e.g., a microprocessor) and memory (e.g., RAM) for executing computer programs.
  • A computing device may include a graphics system, including a display screen. A display screen, such as an LCD or a CRT (Cathode Ray Tube) displays, to a user, images that are generated by the graphics system of the computing device. As is well known, display on a computer display (e.g., a monitor) physically transforms the computer display. For example, if the computer display is LCD-based, the orientation of liquid crystals can be changed by the application of biasing voltages in a physical transformation that is visually apparent to the user. As another example, if the computer display is a CRT, the state of a fluorescent screen can be changed by the impact of electrons in a physical transformation that is also visually apparent. Each display screen may be touch-sensitive, allowing a user to enter information onto the display screen via a virtual keyboard. On some computing devices, such as a desktop or smartphone, a physical QWERTY keyboard and scroll wheel may be provided for entering information onto the display screen. A computing device, and computer programs executed thereon, may also be configured to accept voice commands, and to perform functions in response to such commands. For example, the example processes described herein may be initiated at a client, to the extent possible, via voice commands.
  • Elements of different implementations described herein may be combined to form other implementations not specifically set forth above. Elements may be left out of the processes, computer programs, interfaces, etc. described herein without adversely affecting their operation or the operation of the system in general. Furthermore, various separate elements may be combined into one or more individual elements to perform the functions described herein.
  • Other implementations not specifically described herein are also within the scope of the following claims.

Claims (3)

What is claimed is:
1.-26. (canceled)
27. A computerized method of operating a computerized client device, the computerized method comprising:
receiving, from a server apparatus of a content delivery network, data representative of at least one policy;
determining a mobility state of the computerized client device; and
based on the data representative of the at least one policy and the mobility state, performing one or more actions relating to one or more network connections.
28. A computerized mobile device comprising:
processor apparatus; and
storage apparatus in data communication with the processor apparatus, the storage apparatus comprising at least one computer program configured to, when executed on the processor apparatus:
determine a mobility state of the computerized mobile device;
determine, based at least on the mobility state, at least one management decision relating to one or more connections between the computerized mobile device and one or more wireless networks; and
cause management of the one or more connections in accordance with the at least one management decision.
US17/510,145 2017-08-04 2021-10-25 Connecting to a wireless network based on a device mobility state Pending US20220116845A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/510,145 US20220116845A1 (en) 2017-08-04 2021-10-25 Connecting to a wireless network based on a device mobility state

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/669,151 US11160003B2 (en) 2017-08-04 2017-08-04 Connecting to a wireless network based on a device mobility state
US17/510,145 US20220116845A1 (en) 2017-08-04 2021-10-25 Connecting to a wireless network based on a device mobility state

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US15/669,151 Continuation US11160003B2 (en) 2017-08-04 2017-08-04 Connecting to a wireless network based on a device mobility state

Publications (1)

Publication Number Publication Date
US20220116845A1 true US20220116845A1 (en) 2022-04-14

Family

ID=65230710

Family Applications (2)

Application Number Title Priority Date Filing Date
US15/669,151 Active 2039-01-18 US11160003B2 (en) 2017-08-04 2017-08-04 Connecting to a wireless network based on a device mobility state
US17/510,145 Pending US20220116845A1 (en) 2017-08-04 2021-10-25 Connecting to a wireless network based on a device mobility state

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US15/669,151 Active 2039-01-18 US11160003B2 (en) 2017-08-04 2017-08-04 Connecting to a wireless network based on a device mobility state

Country Status (6)

Country Link
US (2) US11160003B2 (en)
EP (1) EP3659370A4 (en)
JP (1) JP7271544B2 (en)
CN (2) CN116133076A (en)
CA (1) CA3071941A1 (en)
WO (1) WO2019027625A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210352556A1 (en) * 2020-03-09 2021-11-11 T-Mobile Usa, Inc. Switching wireless network sites based on vehicle velocity

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8931400B1 (en) 2009-05-28 2015-01-13 iDevices. LLC Remote cooking systems and methods
US10506616B2 (en) * 2017-08-04 2019-12-10 Charter Communications Operating, Llc Prioritizing preferred networks
US11109290B2 (en) 2017-08-04 2021-08-31 Charter Communications Operating, Llc Switching connections over frequency bands of a wireless network
CN113068229A (en) * 2019-12-16 2021-07-02 青岛海信移动通信技术股份有限公司 Communication terminal and wireless network switching method

Family Cites Families (103)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6047327A (en) * 1996-02-16 2000-04-04 Intel Corporation System for distributing electronic information to a targeted group of users
US6636746B1 (en) 2000-02-09 2003-10-21 Nortel Networks Limited Method and apparatus in a CDMA base station for controlling transmit power during soft handoff
WO2001063946A1 (en) 2000-02-23 2001-08-30 Nexterna, Inc. System and method for dynamically routing messages transmitted from mobile platforms
FI120478B (en) 2000-02-24 2009-10-30 Nokia Corp Method and apparatus for connecting to a telecommunications network
US6982962B1 (en) 2000-04-10 2006-01-03 3Com Corporation System and method for selecting a network access provider using a portable information device
GB0103918D0 (en) 2001-02-16 2001-04-04 Pathfinder Tech Resources Ltd Mobile telephone operation
GB2373676B (en) 2001-03-19 2004-08-04 Motorola Inc Communications operating system and method therefor
EP1566071B1 (en) 2002-10-30 2007-11-28 Research In Motion Limited Methods and device for preferably selecting a communication network which makes data service available
US20040122952A1 (en) * 2002-12-18 2004-06-24 International Business Machines Corporation Optimizing network connections in a data processing system with multiple network devices
US20040185845A1 (en) 2003-02-28 2004-09-23 Microsoft Corporation Access point to access point range extension
US20050090275A1 (en) 2003-10-23 2005-04-28 General Motors Corporation Active wireless data channel select mechanism
US7164912B2 (en) 2004-01-07 2007-01-16 Research In Motion Limited Apparatus, and associated method, for facilitating selection by a mobile node of a network through which to communicate using a hierarchical selection process
US20060166677A1 (en) 2005-01-27 2006-07-27 Lucent Technologies, Inc. Balancing load of cells in inter-frequency handover of wireless communications
US20060193287A1 (en) * 2005-02-28 2006-08-31 Satoru Ooshima Wireless communication apparatus, communication system, communication method, and program
US7937083B2 (en) 2005-04-14 2011-05-03 Nokia Corporation Method, apparatus and computer program providing for rapid network selection in a multimode device
US20060235975A1 (en) 2005-04-19 2006-10-19 International Business Machines Corporation Method, system and computer program for managing data transmission
US7620065B2 (en) 2005-07-22 2009-11-17 Trellia Networks, Inc. Mobile connectivity solution
KR100736046B1 (en) 2005-09-07 2007-07-06 삼성전자주식회사 Method and apparatus for guiding associating stable access point using previous connection history
JP2007194746A (en) 2006-01-17 2007-08-02 Ntt Docomo Inc Handover control method
US8437288B2 (en) 2006-03-07 2013-05-07 Qualcomm Incorporated Network selection by wireless terminals
US20070255797A1 (en) 2006-04-28 2007-11-01 Dunn Douglas L Method for selecting an air interface using an access list on a multi-mode wireless device
US7835754B2 (en) * 2006-05-08 2010-11-16 Skyhook Wireless, Inc. Estimation of speed and direction of travel in a WLAN positioning system
US8010105B2 (en) 2006-05-19 2011-08-30 Research In Motion Limited System and method for facilitating accelerated network selection using a weighted network list
US8644828B2 (en) 2007-02-05 2014-02-04 Wefi Inc. Method and system for selecting a wireless network
US8032150B2 (en) 2006-09-29 2011-10-04 Globalfoundries Inc. Connection manager with location learning
US20080167033A1 (en) 2007-01-04 2008-07-10 Telefonaktiebolaget Lm Ericsson (Publ) Method and Apparatus for Cost-Based Network Selection
CN101926205B (en) 2008-01-28 2014-01-15 艾利森电话股份有限公司 Method and apparatus for use in communications network
US8031694B2 (en) 2008-02-08 2011-10-04 Amdocs Software Systems Limited System and method for formatting data for a mobile communication device and transmitting the data to the mobile communication device
US20090291686A1 (en) * 2008-05-21 2009-11-26 Comsys Communication & Signal Processing Ltd. Autonomous connectivity between a mobile station and multiple network elements for minimizing service discontinuities during handovers in a wireless communication system
US8055256B2 (en) * 2008-05-30 2011-11-08 Motorola Mobility, Inc. Method and apparatus for selecting scanning rates in a multi-mode communication device
US7957350B2 (en) 2008-07-18 2011-06-07 Telefonaktiebolaget L M Ericsson (Publ) Access network selection
KR101053890B1 (en) 2008-09-30 2011-08-04 삼성전자주식회사 Network discovery method in wireless communication system
US8538421B2 (en) 2008-10-20 2013-09-17 At&T Mobility Ii Llc Management of network technology selection and display in multi-technology wireless environments
US8155056B2 (en) 2008-12-11 2012-04-10 Motorola Solutions, Inc. Method and apparatus for controlling traffic congestion in a wireless communication network
US20140071895A1 (en) 2008-12-12 2014-03-13 Ryan H. Bane Network Selection Based On Customizing Crowdsourced Connection Quality Data
US20100153335A1 (en) 2008-12-12 2010-06-17 Microsoft Corporation Synchronizing multiple classes with disparate schemas in the same collection
US20100159948A1 (en) 2008-12-19 2010-06-24 Taproot Systems, Inc. Adaptive Networking For Power Savings
US9603188B2 (en) 2009-01-13 2017-03-21 Qualcomm Incorporated Dynamic connection management
US10237757B2 (en) * 2009-01-28 2019-03-19 Headwater Research Llc System and method for wireless network offloading
US20110029236A1 (en) 2009-07-28 2011-02-03 Sony Corporation Gps-based wireless network connection selection and network topology overlay on satellite geographic map
WO2011016397A1 (en) 2009-08-07 2011-02-10 シャープ株式会社 Communication system, mobile station apparatus, connection destination evaluating method, connection destination evaluating program, and base station apparatus
WO2011084963A2 (en) 2010-01-05 2011-07-14 Iota, Inc. Mobile communications resource management system
US9185619B2 (en) 2010-06-29 2015-11-10 Qualcomm Incorporated Method and apparatus for mitigating interference in femtocell deployments
US8073441B1 (en) 2010-08-24 2011-12-06 Metropcs Wireless, Inc. Location-based network selection method for a mobile device
US9565117B2 (en) 2010-12-22 2017-02-07 Cisco Technology, Inc. Adaptive intelligent routing in a communication system
US20120230305A1 (en) 2011-03-08 2012-09-13 Research In Motion Limited Wi-fi network access and a mobile terminal configured for the same
US8599758B1 (en) * 2011-04-20 2013-12-03 Google Inc. Indoor localization of mobile devices
US8590023B2 (en) 2011-06-30 2013-11-19 Intel Corporation Mobile device and method for automatic connectivity, data offloading and roaming between networks
EP2547130B1 (en) 2011-07-12 2013-03-27 Giesecke & Devrient GmbH Method and identification module for network selection
WO2012159344A1 (en) 2011-07-26 2012-11-29 华为技术有限公司 Wireless local area network cooperated data transmission method, device and system
US8767576B2 (en) 2011-08-17 2014-07-01 Verizon Patent And Licensing Inc. Accessing an application based on a level of service quality
KR101337135B1 (en) 2011-09-08 2013-12-05 주식회사 팬택 Network control method for considering application characteristic and portable terminal therefor
US9596156B2 (en) 2011-09-26 2017-03-14 Theranos, Inc. Network connectivity methods and systems
WO2013044359A1 (en) 2011-09-30 2013-04-04 Tutela Technologies Ltd. A system for regulating wireless device operations in wireless networks
US9125113B2 (en) 2011-09-30 2015-09-01 Nokia Technologies Oy Device mobility based scanning period control
US20150072706A1 (en) * 2012-01-30 2015-03-12 Nokia Solutions And Networks Oy Determining a mobility state of a user equipment
JP5541300B2 (en) 2012-02-07 2014-07-09 日本電気株式会社 Wireless communication terminal, communication system, control apparatus, communication method, and program
CN102647771B (en) 2012-04-10 2016-05-25 华为技术有限公司 The discovery of WLAN and system of selection, equipment and system and terminal
US9241239B2 (en) 2012-05-03 2016-01-19 Time Warner Cable Enterprises Llc Establishing network connectivity based on location
TWI488518B (en) 2012-06-08 2015-06-11 Apple Inc Automatically determining and alerting users to available wireless networks
JP5247923B1 (en) 2012-09-25 2013-07-24 ソフトバンクモバイル株式会社 Terminal, control method thereof, and control program
US8862113B2 (en) 2012-06-20 2014-10-14 Qualcomm Incorporated Subscriber identity module activation during active data call
US9161219B2 (en) 2012-06-22 2015-10-13 Guest Tek Interactive Entertainment Ltd. Authorizing secured wireless access at hotspot having open wireless network and secure wireless network
WO2014043565A1 (en) 2012-09-13 2014-03-20 Huawei Technologies Co., Ltd. System and methods for dual mode network selection
US8923880B2 (en) 2012-09-28 2014-12-30 Intel Corporation Selective joinder of user equipment with wireless cell
US9277494B2 (en) 2012-09-28 2016-03-01 Intel Corporation Reducing wireless reconnection time of a computing device
EP2915402B1 (en) 2012-11-01 2021-07-21 Interdigital Patent Holdings, Inc. Method for establishing direct wlan proximity service connectivity
US9380520B2 (en) 2013-03-13 2016-06-28 Qualcomm Incorporated Using motion to improve local wireless network connectivity
ES2693463T3 (en) 2013-05-06 2018-12-11 Intel IP Corporation Discovery and selection of access network
US9034743B2 (en) 2013-07-18 2015-05-19 Varian Semiconductor Equipment Associates, Inc. Method for implant productivity enhancement
EP2833676B1 (en) 2013-07-31 2018-01-03 Fujitsu Limited Network node selection in wireless networks
WO2015019234A1 (en) * 2013-08-05 2015-02-12 Universidade De Aveiro Method and apparatus for multi-network communication in vehicular networks
US9380494B2 (en) 2013-09-27 2016-06-28 Intel IP Corporation Systems, methods and devices for traffic offloading
EP3053382A1 (en) 2013-09-30 2016-08-10 Telefonaktiebolaget LM Ericsson (publ) A method for controlling 3gpp-wlan interworking and devices for use therein
US9326230B2 (en) 2013-10-08 2016-04-26 Qualcomm Incorporated Multidimensional algorithm for roaming
EP3085165B1 (en) 2013-12-20 2020-06-10 Orange Selection of a radio network for toll-free applications
US9241252B2 (en) 2013-12-20 2016-01-19 Google Inc. Identifying an entity associated with wireless network access point
US9955397B2 (en) 2014-01-08 2018-04-24 Huawei Device (Dongguan) Co., Ltd. Cell handover method and terminal
US10051533B2 (en) 2014-01-28 2018-08-14 Openet Telecom Ltd. System and method for performing network selection
US9351224B2 (en) 2014-02-21 2016-05-24 Qualcomm Incorporated System and method for access point selection
US9392538B2 (en) 2014-04-23 2016-07-12 Verizon Patent And Licensing Inc. Automated wireless channel changing
US9635486B2 (en) 2014-06-10 2017-04-25 Microsoft Technology Licensing, Llc Network selection for a given application or context
JP6287618B2 (en) 2014-06-20 2018-03-07 富士通株式会社 Wireless communication apparatus, wireless communication method, program
US9681370B2 (en) 2014-06-20 2017-06-13 Apple Inc. Co-located network selection algorithm
US9363747B2 (en) 2014-09-08 2016-06-07 Time Warner Cable Enterprises Llc Wireless access point resource availability, notification, and network management
EP3235296B1 (en) 2014-12-16 2018-05-30 Telefonaktiebolaget LM Ericsson (publ) Methods and devices for access network selection
US10200884B2 (en) * 2015-01-14 2019-02-05 Futurewei Technologies, Inc. Analytics-assisted, multi-agents, self-learning, self-managing, flexible and adaptive framework for intelligent SON
US9992775B2 (en) 2015-01-30 2018-06-05 Qualcomm Incorporated Band preference in wireless networks
US9648537B2 (en) 2015-04-17 2017-05-09 Google Inc. Profile switching powered by location
JP6575850B2 (en) 2015-04-24 2019-09-18 パナソニックIpマネジメント株式会社 Wireless communication terminal and base station allocation method
FR3035763A1 (en) 2015-04-28 2016-11-04 Commissariat Energie Atomique METHOD OF ASSOCIATING TERMINALS WITH CELLS IN A HETEROGENEOUS NETWORK
US9906996B2 (en) 2015-06-23 2018-02-27 At&T Intellectual Property I, L.P. Facilitation of wireless network session continuity
IN2015CH03715A (en) 2015-07-20 2015-07-31 Wipro Ltd
KR102399798B1 (en) 2015-10-07 2022-05-19 삼성전자주식회사 Adaptive communication method and apparatus
US9693229B2 (en) 2015-11-05 2017-06-27 International Business Machines Corporation Logical subscriber identification module (SIM)
CN106211277B (en) * 2016-06-29 2019-11-29 北京小米移动软件有限公司 The method and device of intelligent selection server network access point
US20180035365A1 (en) 2016-08-01 2018-02-01 Qualcomm Incorporated Systems and methods for providing a network search option
JP6740819B2 (en) 2016-08-31 2020-08-19 富士通株式会社 Interest level evaluation program, apparatus and method
US10756917B2 (en) 2016-09-16 2020-08-25 Xerox Corporation System and method for network selection and service pairing using historical data mining
US10172014B2 (en) 2016-12-18 2019-01-01 Dell Products, Lp Method and apparatus for optimizing selection of radio channel frequency and adaptive clear channel assessment threshold for WLAN access points
US10333807B2 (en) 2016-12-22 2019-06-25 Dell Products, Lp Method and apparatus for selecting among multi-protocol radio technology using local QoS advertisement
US10306548B2 (en) 2017-08-04 2019-05-28 Charter Communications Operating, Llc Voting to connect to a wireless network
US10506616B2 (en) * 2017-08-04 2019-12-10 Charter Communications Operating, Llc Prioritizing preferred networks

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210352556A1 (en) * 2020-03-09 2021-11-11 T-Mobile Usa, Inc. Switching wireless network sites based on vehicle velocity
US11617119B2 (en) * 2020-03-09 2023-03-28 T-Mobile Usa, Inc. Switching wireless network sites based on vehicle velocity
US11751117B2 (en) * 2020-03-09 2023-09-05 T-Mobile Usa, Inc. Switching wireless network sites based on vehicle velocity

Also Published As

Publication number Publication date
JP2020529814A (en) 2020-10-08
CN111108779A (en) 2020-05-05
EP3659370A1 (en) 2020-06-03
WO2019027625A1 (en) 2019-02-07
JP7271544B2 (en) 2023-05-11
EP3659370A4 (en) 2021-04-21
US20190045417A1 (en) 2019-02-07
CN116133076A (en) 2023-05-16
CN111108779B (en) 2023-02-28
US11160003B2 (en) 2021-10-26
CA3071941A1 (en) 2019-02-07

Similar Documents

Publication Publication Date Title
US20220116845A1 (en) Connecting to a wireless network based on a device mobility state
US10979969B2 (en) Voting to connect to a wireless network
EP2365715B1 (en) Apparatus and method for sensing substitution for location-based applications
US8532670B2 (en) Apparatus, method, and system for sensing suppression for location-based applications
US11212817B2 (en) Prioritizing preferred networks
EP3014295B1 (en) Utilizing motion detection in estimating variability of positioning related metrics
US20090143078A1 (en) Techniques to manage a radio based on location information
US10848902B2 (en) Geographic information for wireless networks
US9215649B2 (en) Techniques for assisted network acquisition
US20210392554A1 (en) Switching connections over frequency bands of a wireless network
EP3241362B1 (en) Cloud support for discovery and data transfer for mobile client devices
US20150131460A1 (en) Method and apparatus for using rssi and rtt information for choosing access points to associate with
US20180302852A1 (en) Wireless local area network connection method, mobile terminal, and storage medium
US20120149397A1 (en) Determining Geographic Zone

Legal Events

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

Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION

AS Assignment

Owner name: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT, NEW YORK

Free format text: SUPPLEMENTAL SECURITY AGREEMENT;ASSIGNORS:CHARTER COMMUNICATIONS OPERATING, LLC;TIME WARNER CABLE ENTERPRISES LLC;REEL/FRAME:061633/0069

Effective date: 20220803

AS Assignment

Owner name: WELLS FARGO TRUST COMPANY, N.A., UTAH

Free format text: SECURITY INTEREST;ASSIGNORS:CHARTER COMMUNICATIONS OPERATING, LLC;TIME WARNER CABLE ENTERPRISES, LLC;REEL/FRAME:061503/0937

Effective date: 20220919

Owner name: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., CALIFORNIA

Free format text: SECURITY INTEREST;ASSIGNORS:CHARTER COMMUNICATIONS OPERATING, LLC;TIME WARNER CABLE ENTERPRISES, LLC;REEL/FRAME:061504/0307

Effective date: 20220908