Patent Description:
The quality of networks can also vary based on location. For example, how wireless access points are located within an office building may affect the network quality depending on a location. Some locations may have better coverage than other locations within the building. This may be due to strength of a particular wireless access point, interference due to many walls or barriers, and the like.

<CIT> discloses an approach which enables a device to receive cellular system information from another device and then to select a cellular network connection based on the information.

<CIT> discloses establishing a local connection between a router and a mobile device acting as a modem, whilst the router is connected to a plurality of mobile devices, wherein the router determines the amount of bandwidth being utilized by said modem devices.

<CIT> discloses a handover process for a mobile terminal connected to the Internet through a <NUM>/<NUM>/<NUM> network via a base station and through a WiFi network via an AP, whereby the terminal decides on whether or not to perform a handover from the <NUM> / <NUM> / <NUM> network to the WiFi network based on the available bandwidths of both network connections.

The embodiments which do not fall within the scope of the appended set of claims are to be interpreted as example embodiments of background information, useful only for understanding the invention.

The present disclosure relates to an approach for selecting a network connection for paired devices and an apparatus for performing the same. As discussed above, the quality of network connections can vary due to the type of connection or a location. One of the paired devices may have a better network connection than the network connection of the other paired device. The difference in the network connections may be due to a variety of reasons.

Examples of the present disclosure automatically select the best network connection for the paired devices based on a comparison of the respective network connections of the paired devices. For example, one device may have a wireless connection to a wireless network and the other device may have a wired connection to a broadband network. The present disclosure may objectively compare the wireless network and the broadband network to determine the better network connection and direct the paired device with the lower quality network connection to connect to the higher quality network connection through a local connection of the paired devices.

<FIG> illustrates a block diagram of a communication network <NUM> of the present disclosure. The communication network <NUM> may include a computer <NUM> and a mobile endpoint device <NUM>. The computer <NUM> may be any type of computing system such as a desktop computer, a laptop computer, a tablet computer, and the like. The computer <NUM> may establish a connection <NUM> to a communication network <NUM>. The connection <NUM> may be a wired or wireless connection. The communication network <NUM> may be an Internet protocol (IP) network such as a broadband network, a Wi-Fi network and the like.

The mobile endpoint device <NUM> may be a device that is capable of wireless communications. For example, the mobile endpoint device <NUM> may be a smart phone, a tablet computer, and the like. The mobile endpoint device <NUM> may establish a wireless connection <NUM> to a wireless network <NUM>. The wireless network <NUM> may be a Wi-Fi network, a cellular network, and the like.

It should be noted that <FIG> has been simplified for ease of explanation. For example, the communication network <NUM> and the wireless network <NUM> may include additional network elements not shown (e.g., a gateway, a router, an access point, a border element, a firewall, and the like).

The computer <NUM> and the mobile endpoint device <NUM> establish a connection (and may be paired) via a local connection <NUM>. In some examples, the local connection <NUM> may be a short range communication protocol, such as Bluetooth®, that allows the computer <NUM> and mobile endpoint device <NUM> to communicate when close (e.g., in the same room) to one another. In some examples, the local connection <NUM> may be a wireless connection, such as Institute of Electrical Electronics Engineering (IEEE) <NUM>. In some examples, the local connection <NUM> may be a wired connection such as a universal serial bus (USB) connection, an Ethernet connection, and the like.

In some implementations, the computer <NUM> and the mobile endpoint device <NUM> may be connected to different networks (e.g., the communication network <NUM> and the wireless network <NUM>, respectively). This may be due to different capabilities. For example, the computer <NUM> may not have wireless capabilities and use an Ethernet connection to connect to the communication network <NUM>.

In another example, the different network connections may be due to different security permissions of the computer <NUM> and the mobile endpoint device <NUM>. For example, the communication network <NUM> may be a secured Wi-Fi network of an enterprise and the computer <NUM> may be a work computer that has permission to access the communication network <NUM>. The mobile endpoint device <NUM> may be a personal device of the user and may not have permission to access the communication network <NUM>. As a result, the mobile endpoint device <NUM> may use a cellular service of the wireless network <NUM>. Thus, the computer <NUM> may not be able to directly connect to the wireless network <NUM>, or the mobile endpoint device <NUM> may not be able to directly connect to the communications network <NUM>.

However, in some instances, the performance of the communication network <NUM> may be superior to the performance of the wireless network <NUM>, or vice versa. Thus, the user may want to leverage the superior performance of the communication network <NUM> or the wireless network <NUM> for both the computer <NUM> and the mobile endpoint device <NUM>. The computer <NUM> may automatically monitor the performance of the communication network <NUM> and the wireless network <NUM> (via data sent to the computer <NUM> from the mobile endpoint device over the local connection <NUM>), calculate a quality score of the communication network <NUM> and the wireless network <NUM>, and automatically select the best network connection based on the respective quality scores of the communication network <NUM> and the wireless network <NUM>.

The processor of the computer receives a parameter based on the data sent to the computer <NUM> from the mobile endpoint device over the local connection <NUM>. In one implementation, the computer <NUM> may collect parameters associated with the communication network <NUM> and collect parameters associated with the wireless network <NUM>. The parameters may be measured based on data transmitted over the communication network <NUM> or the wireless network <NUM>. For example, the computer <NUM> may transmit test data packets, or pinging data packets, periodically. In one example, the parameters may be collected based on information exchanged between the computer <NUM> and the mobile endpoint device <NUM> over the local connection <NUM>.

The computer <NUM> calculates a quality score for the communication network <NUM> and the wireless network <NUM> based on the parameters that are collected. The respective quality scores are compared by the computer <NUM>. If the quality score of the communication network <NUM> is higher than the quality of score of the wireless network <NUM>, then the computer <NUM> may maintain a connection to the communication network <NUM>. The computer <NUM> may also instruct the mobile endpoint device <NUM> to connect to the communication network <NUM> via the local connection <NUM>.

If the quality score of the wireless network <NUM> is higher than the quality of score of the communication network <NUM>, then the computer <NUM> may connect to the wireless network <NUM> via the local connection <NUM>. In one implementation, the computer <NUM> may ask permission from the mobile endpoint device <NUM> to access the wireless network <NUM> as the user may have to pay for data or have a limited amount of data if the wireless network <NUM> is a cellular network of the user. For example, a confirmation message may be generated and sent from the computer <NUM> to the mobile endpoint device <NUM>.

In one example, the quality score may be a numerical score that is based on the parameters of the respective network connection. The parameters may include a throughput value, a latency value, a packet loss value, a network signal strength value, a number of network drops value, a goodput percentage, or a combination thereof. The parameters may be assigned a numerical value (e.g., a value between <NUM>-<NUM>, <NUM> being the worst and <NUM> being the best, a scaled value between <NUM>-<NUM> based on measurements of a respective parameter, a letter grade, and the like). To illustrate, when no packet loss is measured for the communication network <NUM> a value of <NUM> may be assigned for the packet loss parameter, when packet losses above a first threshold are measured for the communication network <NUM>, a value of <NUM> may be assigned for the packet loss parameter, and so forth. Values may be similarly assigned to each parameter that is used to calculate the quality score of communication network <NUM> or the wireless network <NUM>.

In one implementation, when multiple parameters are used to calculate the quality score, a sum of the values for each respective parameter may be calculated for the quality score. For example, the wireless network <NUM> may have a values of <NUM>, <NUM>, <NUM>, and <NUM> for the latency value, the packet loss value, the network signal strength value and the number of network drops value. Thus, the quality score for the wireless network <NUM> may be the sum of <NUM>, <NUM>, <NUM>, and <NUM>, or <NUM>.

In another implementation, when multiple parameters are used to calculate the quality score, an average of the values for each respective parameter may be calculated for the quality score. For example, the communication network <NUM> may have a values of <NUM>, <NUM>, <NUM>, and <NUM> for the latency value, the packet loss value, the network signal strength value and the number of network drops value. Thus, the quality score for the wireless network <NUM> may be the average of <NUM>, <NUM>, <NUM>, and <NUM>, or <NUM>.

In one implementation, a single parameter may be used. For example, the throughput may be value that is based on the overall performance of a network that accounts for various different parameters. Thus, a single parameter of the throughput value may be used as the quality score.

In one implementation, the values of parameters may be weighted. For example, certain parameters may be more important to the quality score than others. For example, throughput and the latency of the network connection may be more important than the signal strength. As a result, the throughput value and the latency value may be multiplied by a weighting factor, whether the quality score is a sum or an average.

In one example, the parameters that are used to calculate the quality score may be user defined. For example, certain parameters may be important to a user and other parameters may be irrelevant to the user. For example, one user may feel that the best user experience is when packet loss is minimized and not care about the speed or throughput of the network. Another user may want minimum latency and high throughput and not care about packet loss or signal strength. Thus, the quality score may be based on parameters that are defined by the user.

<FIG> illustrates a block diagram of components of the computer <NUM> of the present disclosure that automatically selects a network connection for paired devices. In one implementation, the computer <NUM> includes a processor <NUM>, a first communication device <NUM> and a second communication device <NUM> and may include a network selection application <NUM>. The processor <NUM> may be in communication with the network selection application <NUM>, the first communication device <NUM> and the second communication device <NUM>. The processor <NUM> may execute instructions associated with the network selection application to perform the functions described herein.

The first communication device <NUM> is a component to establish the connection <NUM> to the communication network <NUM>. The first communication device <NUM> may be a network adapter. The network adapter may be a wired network adapter that uses an Ethernet connection or a wireless network adapter that uses a Wi-Fi connection.

The second communication device <NUM> is a component to establish the local connection <NUM> to the mobile endpoint device <NUM>. For example, the second communication device <NUM> may be a Bluetooth® radio.

In one implementation, the processor <NUM> may receive data from the communication network <NUM> via the first communication device <NUM>. The data from the communication network <NUM> may be used by the network selection application <NUM> to measure, or to collect, various parameters and assign values for the parameters, as described above. The network selection application <NUM> may then calculate a quality score for the communication network <NUM>.

The processor <NUM> may also receive data from the wireless network <NUM>, or parameters from the mobile endpoint device <NUM>, via the second communication device <NUM>. For example, the data may be received by the mobile endpoint device <NUM> and continuously, or periodically, transmitted to the processor <NUM> over the local connection <NUM>. The data from the wireless network <NUM> may be used by the network selection application <NUM> to measure, or to collect, various parameters and assign values for the parameters, as described above. The network selection application <NUM> may then calculate a quality score for the wireless network <NUM>.

The network selection application <NUM> may then compare the quality score of the communication network <NUM> and the quality score of the wireless network <NUM>. The network selection application <NUM> may select the network connection with the higher quality score. For example, if the communication network <NUM> has the higher quality score, the network selection application <NUM> may maintain the connection to the communication network <NUM>. In addition, the network selection application <NUM> may generate an instruction that is transmitted to the mobile endpoint device <NUM> via the local connection <NUM>. The instruction may instruct the mobile endpoint device to connect to the communication network <NUM> via the local connection <NUM> to the computer <NUM>.

On the other hand, if the wireless network <NUM> has the higher quality score, the network selection application <NUM> may instruct the processor <NUM> to disconnect the connection between the first communication device <NUM> and the communications network <NUM>. In addition, the network selection application <NUM> may instruct the processor <NUM> communicate over the wireless network <NUM> via the local connection <NUM> to the mobile endpoint device <NUM>.

In some instances, the wireless network <NUM> may be a cellular network. The user may have a limited data plan or pay for data transmitted over the cellular network. As a result, in some implementations, the network selection application <NUM> may generate a confirmation message that is transmitted to the mobile endpoint device <NUM>. The confirmation message may request a confirmation (e.g., pressing a continue button on a graphical user interface of the mobile endpoint device <NUM> that causes a confirmation signal to be transmitted over the local connection <NUM> to the computer <NUM>) from the mobile endpoint device <NUM> that the computer <NUM> may have permission to connect to, and to transmit data over, the wireless network <NUM>.

The network selection application <NUM> may collect the data, calculate the quality scores, and select the network connection periodically (e.g., every <NUM> minutes, every hour, every <NUM> hours, every day, and the like). In another example, the network selection application <NUM> may collect the data, calculate the quality scores, and select the network connection continuously.

In some implementations, a threshold or a pre-defined value may be used to prevent constant switching between the communications network <NUM> and the wireless network <NUM>. In other words, the threshold or the pre-defined value may be used to ensure that the difference is significant to prevent constant switching between the communications network <NUM> and the wireless network <NUM>.

For example, the performance of the communications network <NUM> and the wireless network <NUM> can vary over time due to various different factors (e.g., number of users, interference, downed equipment, and the like). Thus, in some implementations, the network selection application <NUM> may select a different network connection based on a comparison of the quality score and when an absolute value of the difference of the quality scores is greater than the pre-defined value, or threshold.

To illustrate, pre-defined value may be set at five. The quality score of the communication network <NUM> may be <NUM> and the quality score of the wireless network <NUM> may be <NUM>. However, the network selection application <NUM> may maintain the connection to the communication network <NUM> even though the quality score of the wireless network <NUM> is higher because the difference (e.g., <NUM>-<NUM> = |<NUM>| = <NUM> or <NUM>-<NUM> = |-<NUM>| = <NUM>) is less than the pre-defined value of five.

In another example, the pre-defined value may be a percentage. For example, the pre-defined value may be set to be <NUM> per cent. Thus, the network selection application <NUM> may not change the selection of the network connection unless the difference in the quality scores is greater than <NUM> per cent of one another.

In one implementation, the network selection application <NUM> may apply a delay before making a network selection. The network selection application <NUM> may then calculate the quality score of the communication network <NUM> and the quality score of the wireless network <NUM> and perform the comparison of the quality scores again. The delay may ensure that the quality scores were not a result of a temporary downgrade in performance as the performance of a network can vary from time to time. In one example, the delay may be a few seconds (e.g., <NUM> seconds, <NUM> seconds, and the like).

In one example, the network selection application <NUM> may apply a maximum number of changes for a certain time period. For example, the network selection application <NUM> may limit the number of changes to the network connection that can be made to one every one minute. Limiting the number of changes per a certain time period may limit the processing overhead caused by mapping operations that can be performed in response to changing the network selection.

In one example, the network selection application <NUM> may generate a message to be displayed on the device that is changing the network connection. For example, if the computer <NUM> is changing the network connection from the communication network <NUM> to the wireless network <NUM>, a message may be displayed on the computer <NUM>. Similarly, if the mobile endpoint device <NUM> is changing the network connection from the wireless network <NUM> to the communication network <NUM>, a message may be displayed on the mobile endpoint device <NUM>. The network selection application <NUM> may wait to receive a confirmation before making a change in selection of the network connection.

<FIG> illustrates a flow diagram of an example method <NUM> for selecting a network connection for a phone and a computer that is paired with the phone. In one example, the method <NUM> may be performed by the computer <NUM> or an apparatus <NUM> described below and illustrated in <FIG>.

At block <NUM>, the method <NUM> begins. At block <NUM>, the method <NUM> establishes a local connection to a mobile endpoint device. For example, a computer may be paired with the mobile endpoint device via the local connection. When paired, the computer and the mobile endpoint device may work together to improve productivity. However, as noted above, the computer and the mobile endpoint device may not have access to the same network connection individually.

At block <NUM>, the method <NUM> calculates a first quality score associated with a wireless connection of the mobile endpoint device based on a parameter associated with the wireless connection between the mobile endpoint device and a wireless network. For example, data transmitted over the wireless connection may be transmitted to the computer via the local connection by the mobile endpoint device. The data may contain information (e.g., packet data, transmission times, delay times, round trip times, and the like) that can be used to measure parameters associated with the performance of the wireless network. In addition, the mobile endpoint device may provide additional data to the computer over the local connection such as signal strength.

The computer may assign values to the parameters associated with the wireless network. The values may be used by the computer to calculate the first quality score. For example, the first quality score may be a sum, an average, or a weighted average of the values of the parameters, as described above.

At block <NUM>, the method <NUM> selects a network connection based on a comparison of the first quality score and a second quality score associated with a connection between the computer and a communication network. In one implementation, the computer may also calculate the second quality score associated with the connection between the computer and the communication network using data transmitted over the communication network.

The computer may measure parameters based on the information contained in the data, as described above. The computer may assign values to the parameters and the values may be used to calculate the second quality score. Based on the comparison of the first quality score and the second quality score, the computer may select a network connection to the network with the higher quality score. For example, if the first quality score is higher than the second quality score, the computer may select the wireless network and connect to the wireless network via the local connection to the mobile endpoint device. If the second quality score is higher than the first quality score, the computer may maintain the connection to the communication network and instruct the mobile endpoint device to connect to the communication network via the local connection to the computer. At block <NUM>, the method <NUM> ends.

<FIG> illustrates an example of an apparatus <NUM>. In one example, the apparatus <NUM> may be the computer <NUM>. In one example, the apparatus <NUM> may include a processor <NUM> and a non-transitory computer readable storage medium <NUM>. The non-transitory computer readable storage medium <NUM> may include instructions <NUM>, <NUM>, <NUM>, <NUM> and <NUM> that when executed by the processor <NUM>, cause the processor <NUM> to perform various functions.

Claim 1:
A method, comprising:
establishing, by a processor of a computer (<NUM>), a local connection (<NUM>) to a mobile endpoint device (<NUM>);
the method comprising:
receiving, by the processor, a parameter based on data that is transmitted over a wireless connection (<NUM>) between the mobile endpoint device (<NUM>) and a wireless network (<NUM>);
calculating, by the processor, a first quality score associated with the wireless connection (<NUM>) of the mobile endpoint device (<NUM>) based on the parameter associated with the wireless connection (<NUM>); and
selecting, by the processor, between maintaining a network connection (<NUM>) to a communication network (<NUM>) or changing to the wireless network (<NUM>) via the local connection (<NUM>) to the mobile endpoint device (<NUM>) based on a comparison of the first quality score and a second quality score, wherein the second quality score is associated with the network connection (<NUM>) between the computer (<NUM>) and the communication network (<NUM>);
wherein a number of changes to the network connection that can be made is limited to a maximum number of changes for a certain time period.