Switching between network media seamlessly while maintaining a network connection

The electronic devices described herein enhance a user experience associated with a network connection by transitioning between networks and/or network media. Determinations to switch from one network to another are based on connection quality factors which are collected and compared to defined connection quality thresholds. The connection quality factors are correlated to the quality of the connection, such that the quality of the connection is optimized by switching networks when the connection to one network is poor but the connection to an alternative network may be better. Further, the switching process between networks and/or network media, particularly between 802.11ad networks and other 802.11 networks, is enhanced such that it is substantially seamless, or unnoticeable to the user. The connection quality-based switching determination and the seamless switching between networks provide a consistent, high quality connection and a satisfying user experience.

BACKGROUND

Electronic devices, such as personal computers, laptops, mobile phones, and the like are increasingly equipped to make use of multiple types of networks to send and receive data. For instance, many devices are equipped to make use of a wide variety of Wi-Fi networks, cellular networks, Bluetooth® networks, etc. Each type of network may require separate hardware, drivers, and/or protocols, as well as having substantial variations in effective range and data speeds, making maintaining a high quality, consistent connection difficult.

Providing a seamless transition between an 802.11ad network and an 802.11ac network is complicated due to the current technology requiring separate hardware and network media. Because the networks may be provided by the same access point and an 802.11ad network has a substantially higher data speed but a smaller effective range, enhancing connection consistency when transitioning between the two networks is important to providing a satisfying user experience.

SUMMARY

A computerized method comprises forming, by a processor, a connection to a network, wherein a traffic route of the connection includes a first network media; receiving, by the processor, an indication to switch the traffic route to include a second network media and not the first network media; and switching, at a network media multiplexer, the traffic route to include the second network media and not the first network media based on the received indication, wherein the connection is maintained throughout the switching.

InFIGS. 1 to 9, the systems are illustrated as schematic drawings. The drawings may not be to scale.

DETAILED DESCRIPTION

The detailed description provided below in connection with the appended drawings is intended as a description of a number of embodiments and is not intended to represent the only forms in which the embodiments may be constructed, implemented, or utilized. Although the embodiments may be described and illustrated herein as being implemented in devices such as a server, personal computer, mobile device, or the like, this is only an exemplary implementation and not a limitation. As those skilled in the art will appreciate, the present embodiments are suitable for application in a variety of different types of computing devices, for example, PCs, servers, laptop computers, tablet computers, etc.

The terms ‘computer’, ‘computing apparatus’, ‘mobile device’ and the like are used herein to refer to any device with processing capability such that it can execute instructions. Those skilled in the art will realize that such processing capabilities are incorporated into many different devices and therefore the terms ‘computer’ and ‘computing apparatus’ each may include PCs, servers, laptop computers, mobile telephones (including smart phones), tablet computers, media players, games consoles, personal digital assistants, and many other devices.

The electronic devices described below are configured to enhance user experience associated with a network connection when transitioning between networks and/or network media. Determinations to switch from one network to another are based on connection quality factors which are collected and compared to defined connection quality thresholds. The connection quality factors are correlated to the quality of the connection, such that the quality of the connection is optimized, improved, enhanced, or the like, by switching networks when the connection to one network is poor but the connection to an alternative network may be better. Further, the switching process between networks and/or network media, particularly between 802.11ad networks and other 802.11 networks (e.g., 802.11ac), is enhanced such that it is substantially seamless, or unnoticeable to the user through the use of a network media multiplexer which routes traffic over one of two or more network media but presents higher layers, such as the TCP/IP stack, with an intermediate interface. This insulates the higher layers from the multiple network media on the other side of the multiplexer. The combination of the connection quality-based switching determination and the seamless switching between networks provides a consistent, high quality connection and a satisfying user experience.

FIG. 1illustrates a block diagram of an electronic device100including two wireless radios102and104. The wireless radios102and104are each connected to one of two network media interfaces106and108which act as interfaces through which other modules of the electronic device100may interact with the wireless radios102and104. A connection manager110communicates, controls, and/or interacts with the network media interfaces106and108. Data traffic from the wireless radios102and104passes through the network media interfaces106and108into a traffic routing module112, which routes the data traffic to the data path114. It should further be understood that the electronic device100may be a computing device further including at least one processor, at least one memory, etc. as further described with respect toFIG. 9below.

In an example, the wireless radios102and104may each comprise one or more antennas and be configured to operate within one or more electromagnetic frequency ranges and/or channels (e.g., 20 MHz ranges of frequencies, etc.) such that the wireless radios102and104may receive and/or transmit messages in the form of electromagnetic signals in the frequency channels for which they are configured. Wireless radio102may be configured to operate in a first frequency channel, range, or band and wireless radio104may be configured to operate in a second frequency channel, range, or band. The frequency channels of the wireless radio102and wireless radio104may overlap or they may be separate. It should be understood that each wireless radio may be configured to operate in more than one frequency range and/or channel. Further, in an example, the electronic device100comprises more than two wireless radios and/or different wireless radios than wireless radio102and wireless radio104.

In an example, wireless radios (e.g., wireless radios102,104, etc.) of the electronic device100may be configured to operate in wireless network channels, such as Wi-Fi channels, cellular channels, Bluetooth® channels, satellite channels, etc. For instance, wireless radio102may be configured to operate in one or more Wi-Fi channels and wireless radio104may be configured to operate in one or more cellular channels. Alternatively, the wireless radio102may be configured to operate in cellular channels while wireless radio104may be configured to operate in Wi-Fi channels. In another example, wireless radio102may be configured to operate in channels associated with any 802.11 standard (Wi-Fi at 2.4 GHz and/or 5 GHz such as 802.11ac) other than 802.11ad, and wireless radio104may be configured to operate in channels associated with the 802.11ad standard (“Wi-Gig” Wi-Fi at 60 GHz). It should be understood that the wireless radios of the electronic device100may be configured to operate in more, fewer, or different combinations of wireless network channels.

The network media interfaces106and108may include hardware and/or software providing an interface between the wireless radios102and104and other components of the electronic device, such as the connection manager110and/or the traffic routing module112. In an example, the network media interfaces106and108may include network interface controllers (NICs), interface drivers, or the like and may be configured to perform some or all of the operations associated therewith.

In an example, the connection manager110interacts with the network media interfaces106and108and the traffic routing module112to evaluate a connection routing through a first wireless radio (e.g., wireless radio102, etc.) based on at least one connection quality factor and, when evaluation of the connection indicates a connection quality of the connection is below a defined threshold based on at least one connection quality factor, switch the connection to route through a second wireless radio (e.g., wireless radio104, etc.). It should be understood that the connection route may be switched based on any quantity of connection quality factors violating (e.g., being above or below, depending on how the factor is defined) any quantity of defined thresholds. The connection manager110may collect and/or track data associated with connection quality factors provided from the network media interfaces106and108(or other sources, such as user feedback) to assess current connection quality of the associated wireless radios102and104to make a determination. Further, collected connection quality data may be stored in a connection quality data structure116associated with the connection manager110.

In an example, the connection quality factors may include at least one of link quality, channel noise, channel load, theoretical throughput, and/or actual throughput.

In an example, link quality may be based on received signal strength indicator (RSSI) data. RSSI values may be normalized to fall between 0 and 100, where an RSSI value is close to 100 when the link quality is high. Further, TCP/IP metadata may be accessed to determine layer 2 (L2) or data link layer link quality.

In an example, channel noise may be based on detection of other wireless technologies (e.g., Bluetooth®, microwaves, etc.) that use the same frequency channels as the associated wireless radios. For instance, interference from other wireless technologies may be detected by measuring a normalized frame checksum error count (NFCS) value, which is computed as the ratio of the number of frames with checksum errors to the total number of frames. If the calculated NFCS value is close to zero, the channel noise is low.

In an example, channel load may be based on detecting wireless access points other than the connected wireless access point that are using the same frequency band, range, and/or channel. The number of wireless access points contributing to the channel load may be detected by the wireless radio(s) in conjunction with other components of the electronic device. Fewer wireless access points contributing to channel load typically results in a lower load of the channel. Further, channel load may be detectable through pinging wireless access points to estimate and/or measure queue length at the pinged wireless access points. Channel load may also be assessed via neighbor reports sent by nearby access points and/or evaluating the density of non-access point entities transmitting information in the vicinity.

In an example, theoretical throughput may be based on link speed as defined by the Institute of Electrical and Electronics Engineers (IEEE) specification. Link speed may be based on modulation and coding scheme (MCS) index values, which are the result of a combination of characteristics of a connection or link. A higher MCS index value typically indicates a higher theoretical throughput for the connection. It should be understood that the MCS index values are currently standardly defined and, as a result, understood by a person of ordinary skill in the art.

In an example, actual throughput may be based on address resolution protocol (ARP) latency. ARP latency may be determined based on the time taken to receive an ARP response for the internet protocol (IP) gateway in the network associated with the connection. A longer ARP latency typically indicates that internet traffic through the gateway would have at least that much delay, resulting in a lower actual throughput. Alternatively, a shorter ARP latency (e.g., near zero, etc.) may indicate that the actual throughput of the associated connection is high. In another example, multiple ARP requests and/or cyclic redundancy check (CRC) errors may be collected such that statistics and/or patterns associated with the collected values may be used to determine an actual throughput over a period of time.

It should be understood that, in the examples above, link quality, channel noise, channel load, and theoretical throughput values may be determined directly by hardware of the electronic device100, or received by another device in communication with the electronic device100. This other device may be, for example, a device proximate to the electronic device100and is configured to determine one or more of the connection quality factors. Determining the actual throughput values may require collection of data and application of heuristics and/or derivation of statistics by software functionality within the connection manager110. The values of the connection quality factors, once collected, may be stored in the connection quality data structure116.

In an example, the connection manager110may include connections that are “default” connections. For instance, the connection manager110may default to a Wi-Fi channel connection over a cellular channel connection (e.g., the Wi-Fi channel connection may be considered cheaper and/or faster than the cellular channel connection), or the connection manager110may default to an 802.11ad channel connection over an 802.11ac channel connection (e.g., the 802.11ad channel connection may be considered faster than the 802.11ac channel). Default settings of the connection manager110may result in automatic selection of a particular channel connection whenever it is available and of sufficient quality (e.g., the connection quality of the channel connection satisfies connection quality thresholds associated therewith).

In an example, prior to connecting to any connection channel, the connection manager110checks the available network media (e.g., network media interfaces106and108, etc.), determines if there are any default network media, determines connection quality of the available network media, and connects to the default network media if the connection quality of the default network media is sufficient. If the connection quality of the default network media is insufficient and the connection quality of another available network media is sufficient, the connection manager110connects to the network media with sufficient connection quality.

In an example, the connection manager110may include a priority list of connection channels and/or network media, such that a priority order may be followed when determining which connection channel or network media to use. For instance, a priority list may include an 802.11ad connection first, an 802.11ac connection second, and a cellular connection last.

In an example, the connection manager110switches a connection route to a cellular connection instead of a Wi-Fi connection when the connection quality of the Wi-Fi connection falls below a connection quality threshold, even if the cellular connection is more expensive than the Wi-Fi connection.

In an example, multiple connection quality factors are considered when determining whether to switch a connection route or channel. Each considered connection quality factor may be evaluated separately against separate thresholds and the decision to switch may be based on how many factors fall below the thresholds and/or to what degree the factors fall below the thresholds.

Alternatively, the connection quality factors may be combined and/or considered together in comparison to one or more combined thresholds (e.g., in a weighted fashion). After combination of the connection quality factors, the result may be compared to the one or more combined thresholds to determine whether to switch connection routes or channels.

In an example, connection quality thresholds may be re-evaluated based on feedback data and/or telemetry. For instance, the electronic device100may operate in a “learning mode”, such that connection quality factors are tracked and/or collected over time during use of the electronic device100. Other data may also be gathered, such as location data, application data, and the like. The electronic device100may further detect connection failures and record data associated with the connection failures. A connection failure may occur when a low connection quality is detected, a connection error is detected, and/or when a user of the electronic device100indicates that the connection quality is insufficient via a user interface of the device. The electronic device100may associate the detected connection failures with the connection quality factor values collected at the same point in time and adjust the connection quality thresholds for switching connection channels based on those collected connection quality factor values. In some examples, different electronic devices may detect connection failures at different threshold values, such that the connection quality thresholds that are specific to particular devices may be established.

In an example, a connection failure indication may be received from a user at a point when the link quality factor value of the connection indicates that an RSSI value is 40. A connection quality threshold may be adjusted or created such that, when an RSSI value of 40 or less is detected by a component, the route or channel of the connection may be switched. For example, the switch may be performed by the detecting component as a result of the RSSI value falling to 40, or a suggestion or hint to switch may be provided to the connection manager110which makes the decision to switch the connection. Other data may also be used, such as detecting when the electronic device100is moving away from a Wi-Fi access point based on collected location data, resulting in the connection manager110switching the connection to route through a cellular channel to maintain and/or improve connection quality as the electronic device100exits the effective range of the Wi-Fi access point.

In an example, the electronic device100may further be in “implementation mode” after thresholds have been established, whether they are established based on previously defined connection quality factor thresholds or based on connection failures detected while the electronic device100was previously in “learning mode” as described above. In implementation mode, the connection manager110evaluates connection quality and switches between connection channels based on the defined connection quality factor thresholds.

It should be understood that while the connection quality data may be specific to a particular user and/or the electronic device100when the connection quality data is collected by the electronic device100, the collected connection quality data may also be shared among other users and/or other devices, as well as with device manufacturers and the like. The data may be used to adjust and/or refine thresholds on similar devices, devices in similar locations, users with similar network bandwidth usage patterns, default thresholds on devices, etc.

In an example, the traffic routing module112may receive flows of data from one or both of the network media interfaces106and108. The traffic routing module112may route one or more of the received data flows to the data path114. The route selected by the traffic routing module112may be indicated by the connection manager110. For instance, when the connection manager110determines that a switch from wireless radio102to wireless radio104is necessary based on connection quality, it may instruct the traffic routing module112to route the flow of data to and from the network media interface108rather than the network media interface106. The traffic routing module112is described in greater detail below in the description ofFIG. 4.

The data path114represents the modules and/or components that may make up a general path or flow of data in a computing device. For example, the data path114may include layers of a transmission control protocol/internet protocol (TCP/IP) stack, applications, interfaces, and the like. It should be understood that the data path encompasses other layers, locations, and/or components of the electronic device100where data being sent and received over the wireless radios102and104may originate and/or be bound.

FIG. 2illustrates a block diagram200of a computing device218(which may comprise the electronic device100as described above) positioned in range of a multi-channel wireless access point220. The computing device218includes a wireless radio202and a wireless radio204. The access point220provides a first channel222and a second channel224for connection. One of the wireless radios (e.g., radio202or204, etc.) of the computing device218may be configured to operate on the first channel222and the other wireless radio (e.g., radio204or202, etc.) of the computing device218may be configured to operate on the second channel224.

In an example, the first channel222has an effective range entirely within the effective range of the second channel224, as shown inFIG. 2. The computing device218is shown inside the effective range of both the first channel222and the second channel224. If the computing device218has a connection via the first channel222and exits the effective range of the first channel222, the computing device218may switch the connection to make use of the second channel224as described throughout this application.

In an example, the first channel222is a 60 GHz Wi-Fi (Wi-Gig) channel and the second channel224is at least one of a 2.4 GHz Wi-Fi channel or a 5 GHz Wi-Fi channel.

FIG. 3illustrates a block diagram of a computing device318(which may comprise the electronic device100as described above) positioned in range of a first access point320and a second access point321. The computing device318includes a wireless radio302and a wireless radio304. The access point320provides a first channel322for connection and the access point321provides a second channel324for connection. One of the wireless radios (e.g., radio302or304, etc.) of the computing device318may be configured to operate on the first channel322and the other wireless radio (e.g., radio304or302, etc.) of the computing device318may be configured to operate on the second channel324.

In an example, the first channel322has an effective range entirely within the effective range of the second channel324, as shown inFIG. 3. The computing device318is shown inside the effective range of both the first channel322and the second channel324. If the computing device318has a connection via the first channel322and exits the effective range of the first channel322, the computing device318may switch the connection to make use of the second channel324as described throughout this application. It should be understood that, in alternative examples, the effective range of channel322may not be entirely within the effective range of channel324. The effective ranges of channels322and324may partially overlap or not overlap at all.

In an example, the first channel322is a Wi-Fi frequency channel and the second channel324is a cellular frequency channel.

FIG. 4illustrates a block diagram of an electronic device400including a wireless connection multiplexer428. It should be understood that components of the computing device400may be substantially similar to the equivalent components of the electronic device100described above. For instance, the wireless radios402and404are each connected to one of two network media interfaces406and408which provide interfaces through which other modules of the electronic device400may interact with the wireless radios402and404. A connection manager410communicates, controls, and/or interacts with the network media interfaces406and408. Data traffic from the wireless radios402and404passes through the network media interfaces406and408into a traffic routing module412, which routes the data traffic to the data path414. It should also be understood that the electronic device400may be a computing device further including at least one processor, at least one memory, etc. as further described with respect toFIG. 9below.

In an example, the wireless radios402and404may each comprise one or more antennas and be configured to operate within one or more electromagnetic frequency ranges and/or channels (e.g., the wireless radios402and404may receive and/or transmit messages in the form of electromagnetic signals in the frequency channels for which they are configured, etc.). Wireless radio402may be configured to operate in a first frequency channel and wireless radio404may be configured to operate in a second frequency channel. The frequency channels of the wireless radio402and wireless radio404may overlap or they may be separate. It should be understood that each wireless radio may be configured to operate in more than one frequency range and/or channel. Further, in an example, the electronic device400comprises more than two wireless radios and/or different wireless radios than wireless radio402and wireless radio404.

In an example, wireless radios (e.g., wireless radios402,404, etc.) of the electronic device400may be configured to operate in wireless network channels, such as Wi-Fi channels, cellular channels, Bluetooth® channels, satellite channels, etc. For instance, wireless radio402may be configured to operate in channels associated with 802.11 standards (Wi-Fi at 2.4 GHz and/or 5 GHz) other than 802.11ad, and wireless radio404may be configured to operate in channels associated with the 802.11ad standard (“Wi-Gig” Wi-Fi at 60 GHz). It should be understood that the wireless radios of the electronic device400may be configured to operate in more, fewer, or different combinations of wireless network channels.

The network media interfaces406and408may include hardware and/or software providing an interface between the wireless radios402and404and other components of the electronic device, such as the connection manager410and/or the traffic routing module412. In an example, the network media interfaces406and408may include network interface controllers (NICs), interface drivers, or the like and may be configured to perform some or all of the operations associated therewith.

In an example, the connection manager410interacts with the network media interfaces406and408and the traffic routing module412to evaluate a connection routing through the first wireless radio (e.g., wireless radio402, etc.) based on at least one connection quality factor and, when evaluation of the connection indicates a connection quality of the connection is below a defined threshold based on the at least one connection quality factor, switch the connection to route through the second wireless radio (e.g., wireless radio404, etc.). The connection manager410may behave in substantially the same manner as the connection manager110described above. Alternatively, a component in communication with the connection manager410performs these operations, and communicates the results as a suggestion or hint to the connection manager410to switch the connection.

In an example, the traffic routing module412may receive flows of data from one or both of the network media interfaces406and408. The traffic routing module412may route one or more of the received data flows to the data path414. The route selected by the traffic routing module412may be indicated by the connection manager410. For instance, when the connection manager410determines that a switch from wireless radio402to wireless radio404is necessary based on connection quality, it may instruct the traffic routing module412to route the flow of data to and from the network media interface408rather than the network media interface406. The traffic routing module412includes a wireless local area network (WLAN) service426and a wireless connection multiplexer428. The WLAN service426controls the multiplexer428and the multiplexer428operates by providing an intermediate network interface to the data path414. Based on instructions/commands received from the WLAN service426, the multiplexer428routes data traffic through either network media interface406or network media interface408.

In an example, the WLAN service426may receive an instruction that the channel on which the traffic is being routed should be switched from the connection manager410. The channel switch indication may be received as a result of a connection quality determination as described above with respect toFIG. 1. Upon receiving a channel switch instruction, the WLAN service426may initiate a channel switch via the multiplexer428.

The data path414represents the modules and/or components that may make up a general path or flow of data in a computing device. For example, the data path414may include layers of a transmission control protocol/internet protocol (TCP/IP) stack, applications, interfaces, and the like. It should be understood that the data path encompasses other layers, locations, and/or components of the electronic device400where data being sent and received over the wireless radios402and404may originate and/or be bound.

It should be understood that the components, layers, modules or the like in the data path414access network traffic via the interface provided by the multiplexer428and are not aware that there are two possible network media interfaces406and408that may be in use for routing the network traffic.

In an example, a network connection formed within the data path414(e.g., according to TCP/IP protocols, etc.) may be maintained throughout the channel switch process. The multiplexer428presents a single interface to the data path414, regardless of whether the data is routed via the network media interface406or the network media interface408.

It should be understood that a channel switch may only occur when an alternative channel to the current channel is available. For instance, if the electronic device is within an effective range of an access point that provides a frequency channel that is compatible to the wireless radio402but there is no frequency channel available that is compatible to the wireless radio404, a channel switch cannot occur. The WLAN service426and/or the connection manager410may monitor or otherwise observe network media interfaces406and408for availability of compatible frequency channels over time so that channel switches may be initiated as necessary or when possible.

In an example, when a channel switch instruction or request is received, the WLAN service426may confirm that an alternative frequency channel and/or access point is available prior to rerouting the data flow away from the current frequency channel. The WLAN service426may exchange preliminary communications with the access point providing the alternative frequency channel to confirm and/or prepare the access point to receive the rerouted data flow. Once the preliminary communications are complete and the WLAN service426has confirmed that the access point is prepared to receive the data flow, the WLAN service426may instruct the multiplexer428to route the data flow over the network media interface associated with the alternative frequency channel. It should be understood that, to provide a substantially seamless transition from one frequency channel to another, the multiplexer428may redundantly route at least some data over both network media interfaces during the channel switch process.

In an example, the first wireless radio402is configured for a first frequency channel and the second wireless radio404is configured for a second frequency channel. The electronic device400comprises at least one processor and at least one memory comprising computer program code configured for execution by the processor. The electronic device400forms a connection according to a network protocol, wherein a connection traffic route of the connection includes the first wireless radio402. The WLAN service426may cause the connection to be formed over the network media interface406and the wireless radio402. The connection is provided to the data path414via the multiplexer428. Further, the WLAN service426may receive a channel switch instruction from the connection manager410. Based on the channel switch instruction, the WLAN service426may cause the connection traffic route of the connection to be switched to include the second wireless radio404(and the network media interface408, etc.) via the multiplexer428. The connection provided to the data path414is maintained throughout the switch of the connection traffic route.

In a further example, the network protocol of the connection formed is TCP/IP.

In a further example, the first frequency channel is a 60 GHz Wi-Fi (Wi-Gig) frequency channel and the second frequency channel includes at least one of a 2.4 GHz Wi-Fi frequency channel and/or a 5 GHz Wi-Fi frequency channel.

In a further example, forming a connection according to network protocol includes associating an Internet protocol (IP) address with the electronic device400and wherein the IP address associated with the electronic device400is maintained throughout switching the connection traffic route.

In a further example, the first wireless radio402is configured for the IEEE 802.11ad standard and the second wireless radio404is configured for the IEEE 802.11ac standard.

In a further example, prior to the formation of the connection, the first wireless radio402is identified as available for connection. Then, a connection interface associated with the first wireless radio402is provided to a network layer associated with the network protocol in the data path414, wherein, forming a connection according to the network protocol includes forming a connection according to the network protocol in the network layer associated with the network protocol using the provided connection interface.

In a further example, the connection interface is maintained throughout the switching of the connection traffic route.

FIG. 5illustrates a flow chart of a method500of switching a connection to a second network media based on connection quality. At502, a connection is formed to a network via a first network media. At504, a connection quality of the connection is determined based on at least one connection quality factor. If, at506, the connection quality fails to meet a connection quality threshold, then, at508, the connection is switched to a second network media. If the connection quality meets the connection quality threshold, connection quality continues to be monitored, as at504.

In a further example, the at least one connection quality factor includes at least one of a signal strength factor (e.g., evaluated based on RSSI), a channel noise factor (e.g., evaluated based on a normalized frame check sum error count), a channel load factor (e.g., evaluated based on detecting other access points and devices using the first frequency channel), a theoretical throughput factor (e.g., evaluated based on a modulation and coding scheme (MCS) index of the connection) and/or an actual throughput factor (e.g., evaluated based on an address resolution protocol (ARP) latency of the connection). Still further, the actual throughput factor may be evaluated based on cyclic redundancy check (CRC) errors of the connection. Also, a connection quality factor may be based on implicitly or explicitly provided/advertised channel information from applications and/or other devices.

Each of a plurality of connection quality factors may be evaluated separately or in combination.

In an example, the defined threshold includes a signal strength factor value that is an RSSI value between a first signal strength threshold and a second signal strength threshold (e.g., 20 and 70, etc.) and at least two of a current link speed factor value below a link speed threshold (e.g., 11 Mbps, etc.), a channel noise factor value greater than a channel noise factor (e.g., 0.8, etc.), and an actual throughput factor value that is an ARP latency value greater than a latency threshold (e.g., two seconds, etc.).

In another example, the defined threshold includes a signal strength factor value of an RSSI value below a signal strength threshold (e.g., 20, etc.) and at least one of a current link speed factor value below a link speed threshold (e.g., 11 Mbps, etc.), a channel noise factor value greater than a channel noise threshold (e.g., 0.8, etc.), and an actual throughput factor value of an ARP latency value greater than a latency threshold (e.g., two seconds, etc.).

In another example, the defined threshold includes a signal strength factor value that is an RSSI value below a signal strength threshold (e.g., 70, etc.) and at least one of a current link speed factor value associated with the first wireless radio that is less than a current link speed factor value associated with the second wireless radio, a channel noise factor value associated with the first wireless radio that is greater than a channel noise threshold (e.g., 0.2, etc.), and a channel load factor value greater than a channel load threshold (e.g., 50%, etc.).

If a first frequency channel is at least one of a higher theoretical throughput channel than the second frequency channel or a cheaper channel than the second frequency channel, the electronic device defaults to use of the first frequency channel when available.

In some examples, weights may be assigned to the various factors such that, when the factors conflict, the weights may be considered in order to select the best channel and/or media. For instance, signal strength may be more heavily weighted than a cost factor.

FIG. 6illustrates a flow chart of a method600of detecting connection failure, recording tracked connection quality factor values, and switching a connection to a second network media based on at least one connection quality factor threshold. At502, a network connection is formed that is routed through a first network media interface. At504, at least one connection quality factor value of the network connection is tracked. If a connection failure is detected at606, the at least one tracked connection quality factor value is recorded. At608, the at least one recorded connection quality factor value is assigned as a connection quality threshold of the network connection.

If no connection failure is detected at606, or after a connection quality threshold is assigned at610, the connection quality threshold is checked at612. If the connection quality threshold is met by the tracked connection quality factor value at612, the connection quality factor value continues to be tracked at504. If the connection quality threshold is not met by the tracked connection quality factor value at612, the network connection is routed through a second network media interface.

The connection failure of the connection may be detected based on at least one of user input, connection latency, silence on the channel and/or connection, or connection error. The connection failure may also be detected based on user input when a user selects to use the second network media interface.

In a further example, a geographic location is recorded when a connection failure of the connection is detected. The recorded geographic location may be associated with the connection quality threshold of the network connection. Routing the network connection through a second network media connection, when the tracked connection quality factor fails to meet the connection quality threshold of the network connection, may occur when a current geographic location is within a proximity of the recorded geographic location associated with the connection quality threshold.

FIG. 7illustrates a flow chart of a method700of switching a traffic route of a connection from a first network media to a second network media while maintaining the connection. At702, a connection is formed to a network, wherein a traffic route of the connection includes a first network media. At704, an indication is received to switch the traffic route to include a second network media and not the first network media. At706, the traffic route of the connection is switched to include the second network media and not the first network media based on the received indication, wherein the connection is maintained throughout the switching.

In an example, the connection is a TCP/IP connection, the first network media is associated with a 60 GHz Wi-Fi frequency channel, and the second network media is associated with at least one of a 2.4 GHz Wi-Fi frequency channel or a 5 GHz Wi-Fi frequency channel. Forming the connection to the network includes associating the connection with an IP address, which is maintained throughout switching the traffic route.

In a particular example, the first network media is associated with the IEEE 802.11ad standard and the second network media is associated with the IEEE 802.11ac standard.

In operation, prior to forming the connection to the network, the first network media is identified as available for connection and a connection interface associated with the first network media is provided from a network media multiplexer to a network layer associated with the network protocol. Forming the connection includes forming a connection according to the network protocol in the network layer associated with the network protocol using the provide connection interface.

In a further example, the connection interface is maintained throughout the switching of the traffic route.

FIG. 8illustrates a flow chart of a method800of switching, by a multiplexer, a traffic route of a connection from a first network media to a second network media while maintaining the connection. At802, an available wireless radio is identified. At804, a connection interface associated with the identified wireless radio is provided from a multiplexer to a network layer. At806, a connection is formed in the network layer according to a network protocol using the connection interface. If, at808, a channel switch indication is detected, a connection traffic route is switched, at810, by the multiplexer, to include a second wireless radio, and the connection and connection interface are maintained throughout the switching. If, at808, a channel switch indication is not detected, monitoring for a channel switch indication continues.

In an example, a first network media interface, associated with a wireless radio, is selected from a plurality of network media interfaces. A network connection is formed and network traffic of the network connection is routed over the selected network media interface. When a channel switch indication is determined, the network traffic is routed over a second network media interface of the plurality of network media interfaces and the network connection is maintained throughout the process.

In a further example, the network connection is a TCP/IP, the first network media interface is associated with a 60 GHz Wi-Fi frequency channel, and the second network media interface is associated with at least one of a 2.4 GHz Wi-Fi frequency channel or a 5 GHz Wi-Fi frequency channel. Forming a network connection includes associating the network connection with an IP address which is maintained throughout routing the network traffic over a second network media interface.

In a further example, an intermediate connection interface associated with the selected first network media interface is provided from a network media multiplexer to a network layer associated with a network protocol. Further, the network connection is formed according to the network protocol in the network layer associated with the network protocol using the provided intermediate connection interface.

In a further example, the intermediate connection interface is maintained throughout routing the network traffic over the second network media interface.

FIG. 9illustrates a computing apparatus918as a functional block diagram. In an embodiment, components of a computing apparatus918may be implemented as a part of an electronic device and/or computing device according to one or more embodiments described in this specification. The computing apparatus918comprises one or more processors919which may be microprocessors, controllers or any other suitable type of processors for processing computer executable instructions to control the operation of the electronic device. Platform software comprising an operating system920or any other suitable platform software may be provided on the apparatus918to enable application software921to be executed on the device. According to an embodiment, determining when to switch between multiple network interfaces based on connection quality and/or predefined switching policy set by an administrator and seamlessly switching between the network interfaces may be accomplished by the operating system920and/or the application software921. Furthermore, any of the software components may receive network traffic from other computing devices via a network or other communication link. Consequently, these software components may allow and/or deny network traffic based on the network security policy enforcement described herein.

The computing apparatus918may comprise an input/output controller924configured to output information to one or more output devices925, for example a display or a speaker, which may be separate from or integral to the electronic device. The input/output controller924may also be configured to receive and process an input from one or more input devices926, for example, a keyboard, a microphone or a touchpad. In one embodiment, the output device925may also act as the input device. An example of such a device may be a touch sensitive display. The input/output controller924may also output data to devices other than the output device, e.g. a locally connected printing device.

Although some of the present embodiments may be described and illustrated as being implemented in a smartphone, a mobile phone, or a tablet computer, these are only examples of a device and not a limitation. As those skilled in the art will appreciate, the present embodiments are suitable for application in a variety of different types of devices, such as portable and mobile devices, for example, in laptop computers, tablet computers, game consoles or game controllers, various wearable devices, embedded devices, etc.

An electronic device comprising:a first wireless radio configured for a first frequency channel;a second wireless radio configured for a second frequency channel;at least one processor; andat least one memory comprising computer program code, the at least one memory and the computer program code configured to, with the at least one processor, cause the electronic device to at least perform:form a connection according to a network protocol, wherein a connection traffic route of the connection includes the first wireless radio; andswitch the connection traffic route, by a multiplexer, to include the second wireless radio when a channel switch indication is detected, wherein the connection is maintained throughout the switch.

The electronic device described above wherein the network protocol is transmission control protocol/Internet protocol (TCP/IP).

The electronic device described above wherein the first frequency channel is a 60 GHz Wi-Fi frequency channel and the second frequency channel includes at least one of a 2.4 GHz Wi-Fi frequency channel or a 5 GHz Wi-Fi frequency channel.

The electronic device described above wherein forming a connection according to a network protocol includes associating an Internet protocol (IP) address with the electronic device; and wherein the IP address associated with the electronic device is maintained throughout switching the connection traffic route.

The electronic device described above wherein the first wireless radio is configured for the IEEE 802.11ad standard and the second wireless radio is configured for the IEEE 802.11ac standard.

The electronic device described above wherein the at least one memory and the computer program code configured to, with the at least one processor, further cause the electronic device to at least perform:identify the first wireless radio as available for connection; andprovide, from the multiplexer to a network layer associated with the network protocol, a connection interface associated with the identified first wireless radio;wherein forming a connection according to the network protocol includes forming a connection according to the network protocol in the network layer associated with the network protocol using the provided connection interface.

The electronic device described above wherein the connection interface is maintained throughout the switching of the connection traffic route.

A computerized method comprising:forming, by a processor, a connection to a network, wherein a traffic route of the connection includes a first network media;receiving, by the processor, an indication to switch the traffic route to include a second network media and not the first network media; andswitching, at a network media multiplexer, the traffic route to include the second network media and not the first network media based on the received indication, wherein the connection is maintained throughout the switching.

The computerized method described above wherein the connection is formed according to transmission control protocol/Internet protocol (TCP/IP).

The computerized method described above wherein the first network media is associated with a 60 GHz Wi-Fi frequency channel and the second network media is associated with at least one of a 2.4 GHz Wi-Fi frequency channel or a 5 GHz Wi-Fi frequency channel.

The computerized method described above wherein forming a connection to a network includes associating the connection with an Internet protocol (IP) address; and wherein the IP address associated with the connection is maintained throughout switching the traffic route.

The computerized method described above wherein the first network media is associated with IEEE 802.11ad standard and the second network media is associated with IEEE 802.11ac standard.

The computerized method described above further comprising:identifying, by the processor, the first network media as available for connection; andproviding, from the network media multiplexer to a network layer associated with a network protocol, a connection interface associated with the identified first network media;wherein forming a connection includes forming a connection according to the network protocol in the network layer associated with the network protocol using the provided connection interface.

The computerized method described above wherein the connection interface is maintained throughout the switching of the traffic route.

One or more computer storage media having computer-executable instructions that, upon execution by a processor, cause the processor to at least:select a first network media interface of a plurality of network media interfaces;form a network connection, wherein network traffic of the network connection is routed over the selected network media interface;when a channel switch indication is determined, route the network traffic over a second network media interface of the plurality of network media interfaces, wherein the network connection is maintained.

The one or more computer storage media described above wherein the network connection is formed according to transmission control protocol/Internet protocol (TCP/IP).

The one or more computer storage media described above wherein the first network media interface is associated with a 60 GHz Wi-Fi frequency channel and the second network media interface is associated with at least one of a 2.4 GHz Wi-Fi frequency channel or a 5 GHz Wi-Fi frequency channel.

The one or more computer storage media described above wherein forming a network connection includes associating the network connection with an Internet protocol (IP) address; and wherein the IP address associated with the connection is maintained throughout routing the network traffic over a second network media interface.

The one or more computer storage media described above having computer-executable instructions that, upon execution by a processor, further cause the processor to at least:provide, from a network media multiplexer to a network layer associated with a network protocol, an intermediate connection interface associated with the selected first network media interface;wherein forming a network connection includes forming a network connection according to the network protocol in the network layer associated with the network protocol using the provided intermediate connection interface.

The one or more computer storage media described above wherein the intermediate connection interface is maintained throughout routing the network traffic over the second network media interface.

The embodiments illustrated and described herein as well as embodiments not specifically described herein but within the scope of aspects of the claims constitute exemplary means for switching seamlessly between network media. For example, the illustrated one or more processors919together with the computer program code stored in memory922constitute the exemplary means.