Methods for mobile communication devices to switch between data connections

By simultaneously maintaining cellular and Wi-Fi data connections in mobile communication devices and determining handover strategies based on a weighted average of ping values ​​and handover thresholds, the problem of interruptions caused by unstable connections is solved, improving the reliability of data communication and user experience.

CN115568293BActive Publication Date: 2026-07-03GARENA ONLINE PTE LTD
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
GARENA ONLINE PTE LTD
Filing Date
2021-12-10
Publication Date
2026-07-03

AI Technical Summary

Technical Problem

When mobile communication devices use Wi-Fi or cellular connections, the connection is susceptible to instability and bandwidth fluctuations, leading to interruptions or disconnections, especially in applications with high real-time requirements such as real-time online games and video calls, where data loss can occur.

Method used

By maintaining both cellular and Wi-Fi data connections simultaneously, monitoring the ping values ​​of both connections, and determining whether to switch based on a weighted average and a handover threshold, the system ensures that switching occurs only when connection quality significantly improves, thus avoiding unnecessary connection switching.

Benefits of technology

It effectively avoids sudden connection degradation, reduces data communication loss, improves the playability and user experience of online games and video calls, and reduces CPU resource consumption.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115568293B_ABST
    Figure CN115568293B_ABST
Patent Text Reader

Abstract

This invention discloses a method for a mobile communication device to switch between data connections. The method includes the following steps: establishing both a cellular data connection and a Wi-Fi data connection between the mobile communication device and a server; and simultaneously maintaining both the cellular data connection and the Wi-Fi data connection. The method further includes the following steps: collecting monitoring data by simultaneously monitoring a first ping of the cellular data connection and a second ping of the Wi-Fi data connection; using either the cellular data connection or the Wi-Fi data connection to communicate with the server at any given time; and collecting handover data, which indicates the frequency of handover. The method further includes the following step: determining whether a handover should be performed at a predetermined time based on the monitoring data and the handover data.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to data connectivity in mobile communication devices. Background Technology

[0002] Mobile communication devices typically use Wi-Fi or cellular connections to connect to servers wirelessly. However, both of these connections are susceptible to instability and bandwidth fluctuations, leading to connection drops or disconnections. This can result in inability to connect and data loss, which is particularly problematic for applications with high real-time requirements, such as real-time online gaming, video calls, and video conferencing.

[0003] What is needed here is a novel solution that maintains a data connection to the server via both cellular and Wi-Fi networks, and can perform efficient and effective data switching based on the superior connection speed (i.e., lower ping) and switching history of the two data connections. Furthermore, the required features and characteristics will be more clearly illustrated in the following embodiments and claims, together with the accompanying drawings and background information. Summary of the Invention

[0004] According to a first aspect of the present invention, a method for a mobile communication device to switch between data connections is described, the method comprising the steps of: establishing a cellular data connection between the mobile communication device and a server via a cellular network; establishing a Wi-Fi data connection between the mobile communication device and the server via a Wi-Fi network; and simultaneously maintaining the cellular data connection and the Wi-Fi data connection. The method further comprises the steps of: collecting monitoring data by simultaneously monitoring a first ping of the cellular data connection and a second ping of the Wi-Fi data connection, each of the first ping and the second ping being a weighted average of a series of ping values; performing data communication with the server using one of the cellular data connection and the Wi-Fi data connection at any given time; and collecting handover data indicating the handover frequency.

[0005] The method further includes the following steps: at a predetermined time, determining whether a handover should be performed based on monitoring data; based on the handover data, determining whether a handover should be performed by evaluating whether the handover frequency within the time period is within the handover threshold, wherein a determination not to perform a handover based on the handover data will override any handover determination made based on the monitoring data; and if a handover is determined to be performed, performing a handover from one of the cellular data connection and the Wi-Fi data connection to communicating with the server using the other of the cellular data connection and the Wi-Fi data connection.

[0006] Preferably, if the monitoring data indicates that the first ping is greater than the high ping threshold, while the second ping is less than or equal to the high ping threshold, and the difference between the first ping and the second ping is greater than the ping-delta threshold, then based on the monitoring data, it is determined that a switch should be made and the switch is executed, switching from the cellular data connection to the Wi-Fi data connection for data communication with the server.

[0007] Preferably, if the monitoring data indicates that the second ping is greater than the high ping threshold, while the first ping is less than or equal to the high ping threshold, and the difference between the first ping and the second ping is greater than the ping-delta threshold, then based on the monitoring data, it is determined that a switch should be performed, and the switch is executed, switching from the Wi-Fi data connection to the cellular data connection for data communication with the server.

[0008] Preferably, the high ping threshold is a ping value in the range of 100 to 300 ms; and the ping-delta threshold is a ping value in the range of 50 to 70 ms.

[0009] Preferably, if the monitoring data indicates that the first ping is greater than the critical ping threshold, while the second ping is less than or less than the first ping, then based on the monitoring data, it is determined that a switch should be made and the switch is executed, switching from the cellular data connection to the Wi-Fi data connection for data communication with the server.

[0010] Preferably, if the monitoring data indicates that the second ping is greater than the critical ping threshold, while the first ping is less than or less than the second ping, then based on the monitoring data, it is determined that a switch should be made and the switch is executed, switching from the Wi-Fi data connection to the cellular data connection for data communication with the server.

[0011] Preferably, the critical ping threshold is approximately 350 ms.

[0012] Preferably, the purpose of communicating with the server is to play online games on the mobile communication device, and if the switching data indicates that the switching frequency of the online game session will exceed the game session switching threshold, then based on the switching data, it is determined that a switch should not be made and the switch is not executed.

[0013] Preferably, the monitoring data is collected by sending a monitoring heartbeat packet to the server.

[0014] Preferably, the cellular data connection is assigned a first port number and a first IP address, while the Wi-Fi data connection is assigned a second port number and a second IP address; and the switching will result in the second port number and the second IP address being assigned to the cellular data connection, and the first port number and the first IP address being assigned to the Wi-Fi data connection.

[0015] According to a second aspect of the present invention, a mobile communication device is described, the mobile communication device comprising: a cellular module configured to establish a cellular data connection with a server via a cellular network; a Wi-Fi module configured to establish a Wi-Fi data connection with the server via a Wi-Fi network; a monitoring module configured to collect monitoring data by simultaneously monitoring a first ping of the cellular data connection and a second ping of the Wi-Fi data connection, each of the first ping and the second ping being a weighted average of a series of ping values; a communication module configured to perform data communication with the server using one of the cellular data connection and the Wi-Fi data connection at any given time; and a handover module configured to collect handover data indicating a handover frequency.

[0016] The cellular data connection and the Wi-Fi data connection are maintained simultaneously, and the handover module is configured to determine whether a handover should be performed at a predetermined time based on the monitoring data and the handover data; based on the handover data, determine whether a handover should be performed by evaluating whether the handover frequency within the time period is within the handover threshold, wherein a determination not to perform a handover based on the handover data will override any handover determination made based on the monitoring data; and if a handover is determined to be performed, a handover is performed, switching from one of the cellular data connection and the Wi-Fi data connection to the other of the cellular data connection and the Wi-Fi data connection for data communication with the server.

[0017] Preferably, if the monitoring data indicates that the first ping is greater than the high ping threshold, while the second ping is less than or equal to the high ping threshold, and the difference between the first ping and the second ping is greater than the ping-delta threshold, then the switching module determines that a switch should be performed based on the monitoring data, and switches from the cellular data connection to the Wi-Fi data connection for data communication with the server.

[0018] Preferably, if the monitoring data indicates that the second ping is greater than the high ping threshold, while the first ping is less than or equal to the high ping threshold, and the difference between the first ping and the second ping is greater than the ping-delta threshold, then the switching module determines that a switch should be performed based on the monitoring data, and switches from the Wi-Fi data connection to the cellular data connection for data communication with the server.

[0019] Preferably, if the monitoring data indicates that the first ping is greater than the critical ping threshold, while the second ping is less than or less than the first ping, the switching module determines that a switch should be performed based on the monitoring data, and switches from the cellular data connection to the Wi-Fi data connection for data communication with the server.

[0020] Preferably, if the monitoring data indicates that the second ping is greater than the critical ping threshold, while the first ping is less than or less than the second ping, then the switching module determines that a switch should be performed based on the monitoring data, and switches from the Wi-Fi data connection to the cellular data connection for data communication with the server.

[0021] Preferably, the purpose of data communication with the server is to play online games on the mobile communication device, and if the switching data indicates that the switching frequency of the online game connection status will exceed the game connection status switching threshold, the switching module determines that it should not switch based on the switching data and does not perform the switch.

[0022] Other aspects of the present invention will become clearer from the following embodiments of some preferred specific examples. Attached Figure Description

[0023] In the accompanying drawings, similar reference numerals denote the same or similarly functional components in each figure, and the drawings, together with the following embodiments, are incorporated into and form part of the specification. Various specific embodiments are illustrated by way of example only, and various principles and advantages are explained based on existing specific embodiments.

[0024] Figure 1 This illustrates a mobile communication device capable of switching between data connections according to certain specific embodiments.

[0025] Figure 2 This illustrates a module of a mobile communication device that facilitates switching between data connections according to certain specific embodiments.

[0026] Figure 3 The flowchart illustrates the steps a mobile communication device takes to establish cellular data and Wi-Fi data connections with a server.

[0027] Figure 4The flowchart illustrates a method for switching data connections in a mobile communication device according to certain specific embodiments.

[0028] Those skilled in the art will understand that many components in these icons are simplified versions for clarity and are not necessarily scaled. For example, the dimensions of some components in the block diagrams or the steps in the flowcharts may be significantly enlarged relative to other components to improve understanding of specific embodiments of the invention. Detailed Implementation

[0029] The following embodiments are merely illustrative in nature and do not limit the invention or its application and use. Furthermore, they are not bound by any theoretical constraints described in the foregoing technical background or the following embodiments.

[0030] Some specific embodiments are intended to teach a method for a mobile communication device to switch between data connections, the method comprising the steps of: establishing a cellular data connection between the mobile communication device and a server via a cellular network; establishing a Wi-Fi data connection between the mobile communication device and the server via a Wi-Fi network; and simultaneously maintaining the cellular data connection and the Wi-Fi data connection.

[0031] The method further includes the following steps: collecting monitoring data by simultaneously monitoring ping of the cellular data connection (i.e., cellular_ping) and ping of the Wi-Fi data connection (i.e., Wi-Fi_ping); and communicating with the server using either the cellular data connection or the Wi-Fi data connection at any given time. The method further includes the following steps: collecting handover data, which indicates the handover frequency performed by the mobile communication device.

[0032] The method further includes the following steps: determining, at a predetermined time and based on the monitoring data and the switching data, whether a switch should be performed. If a switch is determined to be performed, the method further includes the following steps: performing a switch to change from a cellular data connection to a Wi-Fi data connection, or vice versa, in order to communicate with the server.

[0033] Therefore, this method instructs mobile communication devices to maintain two data connections with the server simultaneously: one via cellular media (i.e., cellular data connection) and the other via Wi-Fi media (Wi-Fi data connection). At any given time, data communication with the server uses only one of these two data connections; the data connection in use is called the "active data connection." The data connection not currently in use is called the "backup data connection."

[0034] The method also teaches simultaneous monitoring of ping for cellular data connection (cellular_ping) and ping for Wi-Fi data connection (Wi-Fi_ping) to collect monitoring data. As will be clearly understood by those skilled in the art, ping or latency time is the time taken to transmit a small dataset from the mobile communication device to the server on the Internet and back to the mobile communication device.

[0035] Determining whether to switch from the active data connection to the backup data connection should be done at a predetermined or specified time (e.g., at a periodic polling interval), based on monitoring data and switchover data collected at that time. For example, assuming the active data connection is a Wi-Fi data connection and the backup data connection is a cellular data connection, if monitoring data indicates that Wi-Fi_ping is greater than cellular_ping, and if the switchover data indicates that switching the frequency is within permissible limits, then a switchover can be determined. The switchover will then cause the cellular data connection to become the active data connection for data communication with the server, while the Wi-Fi data connection will be switched to the backup connection and become idle, neither receiving nor transmitting any data until the next switchover time.

[0036] In another example, suppose the active data connection is a cellular data connection and the backup data connection is a Wi-Fi data connection. If the monitoring data indicates that cellular_ping is greater than Wi-Fi_ping, and if the handover data indicates that the handover frequency is within the allowable limits, then a handover should be performed. The handover will cause the Wi-Fi data connection to become the active data connection used for data communication with the server, while the cellular data connection will be relegated to the backup connection and become idle, neither receiving nor transmitting any data until the next handover occurs.

[0037] While maintaining two data connections to the server continuously (where one of these connections becomes idle and unused at any given time) may be less cost-effective, its advantage lies in preventing the active data connection from suddenly deteriorating to a level of extremely high ping (which would severely impact data communication with the server). For example, if the data communication with the server is for playing an online game on the mobile device, high ping experienced by the active data connection will adversely affect the playability of the online game and the user experience. In this case, an idle or backup connection with lower ping can instantly alleviate the active data connection for the data communication task, thereby avoiding or reducing any window of opportunity for lost server data communication.

[0038] One of the main considerations of this invention is that unnecessary switching to a backup data connection should be avoided when the improvement in the effective data connection is not significant. This is because switching always consumes CPU cycles and computing resources of the mobile communication device. Therefore, if switching from an effective data connection to a backup data connection only produces a slight improvement in connection speed or ping, it may not be worthwhile to switch in this instance.

[0039] In several specific implementations, one way to avoid unnecessary switching is to use high ping threshold variables and ping-delta threshold variables to measure whether a switch should occur. The high ping threshold refers to a ping value that is considered extremely high and unnecessary. A data connection with a ping value greater than the high ping threshold will suffer from delay and lag. Examples of high ping thresholds include approximately 100 ms, 150 ms, 200 ms, 250 ms, or 300 ms, or any ping value within the range of 100 to 300 ms.

[0040] The ping-delta threshold is the minimum difference (i.e., the difference in connection speed) between the pings of the active and backup data connections that does not guarantee a switchover. If the difference between the pings of the active and backup data connections exceeds the ping-delta threshold, a switchover may be worthwhile because the improvement in connection speed or ping will be sufficient to justify it. Conversely, if the difference between the pings of the active and backup data connections does not exceed the ping-delta threshold, a switchover may not be worthwhile because the improvement in ping or connection speed will not be sufficient to justify it. Examples of ping-delta thresholds include 50 ms, 60 ms, or 70 ms, or any ping value within the range of 50 to 70 ms.

[0041] Therefore, when using two variables together, if the ping of the active data connection is greater than the high ping threshold and the ping of the backup data connection is lower than the high ping threshold, and if the difference between the ping of the active data connection and the ping of the backup data connection exceeds the ping-delta threshold, then a switchover can be determined. In other words, the conditions are set for two variables to ensure that a switchover to the backup data connection only occurs when there is a significant improvement in ping or connection speed, thereby avoiding or mitigating unnecessary switchovers.

[0042] Therefore, assuming the Wi-Fi data connection is active, if monitoring data indicates that Wi-Fi_ping is greater than the high ping threshold, while cellular_ping is lower than the high ping threshold, and the difference between cellular_ping and Wi-Fi_ping is greater than the ping-delta threshold, then a handover should be initiated. After the handover, the cellular data connection will be the active data connection used for data communication with the server, while the Wi-Fi data connection will be repurposed as a backup data connection.

[0043] Similarly, assuming the cellular data connection is active, and if monitoring data indicates that cellular_ping is greater than the high ping threshold while Wi-Fi_ping is lower than the high ping threshold, and the difference between cellular_ping and Wi-Fi_ping is greater than the ping-delta threshold, then a handover can be determined. After the handover, the Wi-Fi data connection becomes the active data connection used for data communication with the server, while the cellular data connection is repurposed as a backup connection.

[0044] In instances where the ping of the active data connection is very high, switching to the backup data connection is still logical, even if the ping of the backup data connection is only slightly better. The reason is that when the data connection has deteriorated to a very poor level, any improvement in ping (even a slight one) is expected. In practice, this slight improvement will give players the best chance of playing online games, or at least, in the case of video calls, the ability to see or hear part of the video call.

[0045] In these various embodiments, a severe ping threshold is treated as a variable. This severe ping threshold is considered a very high and highly undesirable ping value. A data connection with a ping value exceeding the severe ping threshold will experience frequent and lengthy latency and significant lag. Any video call or any online gaming experience will be severely hampered by such a slow data connection. Examples of severe ping thresholds include 350 ms, approximately 350 ms, or higher.

[0046] Therefore, if the ping of the active data connection exceeds the critical ping threshold, a switchover can be determined as long as the ping of the backup data connection is lower than that of the active data connection. In particular, the previously described specific embodiments are not as effective as the ping-delta threshold variable. This is because in scenarios where the data connection is very poor and has reached the critical ping threshold, the primary goal is to provide the best available data connection, and avoiding unnecessary switchovers becomes a secondary consideration.

[0047] Therefore, assuming the Wi-Fi data connection is active, if monitoring data indicates that Wi-Fi_ping is greater than the critical ping threshold while cellular_ping is less than Wi-Fi_ping, a handover can be initiated. After the handover, the cellular data connection becomes the active data connection for communication with the server, while the Wi-Fi data connection is repurposed as a backup connection.

[0048] Similarly, assuming the cellular data connection is active, if monitoring data indicates that cellular_ping is greater than the critical ping threshold while Wi-Fi_ping is less than cellular_ping, then a handover should be initiated. After the handover, the Wi-Fi data connection becomes the active data connection for communication with the server, while the cellular data connection is repurposed as a backup connection.

[0049] Frequent handovers, especially within short periods, may indicate instability and significant fluctuations in both the Wi-Fi and cellular networks. These handovers may offer limited advantages because the data connections are too unstable and volatile to provide reliable data communication with the server. In several specific embodiments, one way to avoid this scenario is to suppress or limit the number of handovers that can be performed within a given period.

[0050] In several specific embodiments, a switching threshold variable is used to measure whether the number of switching operations has become excessive. This switching threshold may be time-related. The switching threshold could be the maximum number of switching operations allowed within a given time period before being considered excessive. For example, the switching threshold could be five switching operations within a 30-second time period. A counter can be used to count the number of switching operations performed within that time period.

[0051] Therefore, if the switching data indicates that the switching frequency within a given time period will exceed the switching threshold, it can be determined that a switch should not be performed. In several specific embodiments, a decision not to perform a switch based on switching data will override any switching decisions made based on monitoring data.

[0052] In several specific embodiments, if the active data connection is used for playing online games, a game online state switching threshold variable can be used to measure whether the number of times the game online state has been switched has become excessive. A counter can be used to count the number of switches performed within a specific game online state.

[0053] Therefore, if the switching data indicates that the frequency of switching the online game's online status exceeds the game's online status switching threshold, it can be determined that a switch should not be made. In several specific embodiments, the determination that a switch should not be made based on switching data will override any switching determination made based on monitoring data.

[0054] Another key consideration in this invention is to avoid and reduce the impact of occasional fluctuations on Wi-Fi and cellular networks. This means that sometimes switching to a backup data connection may be premature, even when the recent or most recent ping of the active data connection is high. This is because the recent high ping may only be temporary or a result of fluctuations. The connection speed of the active data connection may eventually recover and stabilize to a lower ping. Therefore, with this in mind, in several specific embodiments, a weighted average of a series of ping values ​​can be used to determine whether a switch should be made.

[0055] Figure 1 This illustrates a mobile communication device 102, according to certain specific embodiments, capable of switching between data connections. The mobile communication device 102 can transmit data to and receive data from a server 108 via both a cellular data connection 104 and a Wi-Fi data connection 106.

[0056] Figure 2 This illustration shows modules of a mobile communication device 102, according to certain specific embodiments, capable of facilitating switching between a cellular data connection 104 and a Wi-Fi data connection 106. The mobile communication device 102 may include a cellular module 202. The cellular module 202 may include the necessary hardware and software to establish a cellular data connection 104 with a server 108 via a cellular network. The mobile communication device 102 may also include a Wi-Fi module 204. The Wi-Fi module 204 may include the necessary hardware and software to establish a Wi-Fi data connection 106 with the server 108 via a Wi-Fi network.

[0057] The mobile communication device 102 may also include a monitoring module 206. The monitoring module 206 may include the necessary hardware and software to collect monitoring data by simultaneously monitoring the ping of the cellular data connection 104 (i.e., cellular_ping) and the ping of the Wi-Fi data connection 106 (i.e., Wi-Fi_ping). The monitoring module 206 may also include the necessary hardware and software to store and retrieve the collected monitoring data.

[0058] Mobile communication device 102 may also include communication module 208. Communication module 208 may include the necessary hardware and software to communicate with server 108 at any time using cellular data connection 104 or Wi-Fi data connection 106. The data connection used for data communication with server 108 will be the active data connection, while the data connection not used for data communication with server 108 will be a backup data connection.

[0059] The mobile communication device 102 may also include a handover module 210. The handover module 210 may include the necessary hardware and software to collect handover data, which indicates the handover frequency. The handover module 210 may also include the necessary hardware and software to store and retrieve the collected handover data.

[0060] The switching module 210 may also include the necessary hardware and software to determine whether a switch should be performed at a predetermined time based on monitoring data and switching data. If the switching module 210 determines that a switch should be performed, the switching module 210 may also include the necessary hardware and software to perform the switch, switching from cellular data connection 104 to Wi-Fi data connection 106 to achieve data communication with the server, or vice versa.

[0061] Figure 3 The flowchart illustrates the steps performed by mobile communication device 102 to establish cellular data connection 104 and Wi-Fi data connection 106 with server 108.

[0062] In step 302, the mobile communication device 102 obtains cellular data connection information and Wi-Fi data connection information according to known technologies in the field.

[0063] In step 304, the first socket is established using a first Internet Protocol (IP) address and a first port number.

[0064] In step 306, the first socket is a link cellular data connection 104.

[0065] In step 308, the mobile communication device 102 uses the cellular data connection 104 to connect to the server 108.

[0066] In step 310, the mobile communication device 102 begins to transmit monitoring data to the server 108 via the cellular data connection 104.

[0067] In step 312, the second socket is established using a second Internet Protocol address and a second port number.

[0068] In step 314, the second socket is used to connect to Wi-Fi data connection 106.

[0069] In step 316, the mobile communication device 102 uses Wi-Fi data connection 106 to connect to the server 108.

[0070] In step 318, the mobile communication device 102 begins to transmit monitoring data to the server 108 via Wi-Fi data connection 106.

[0071] Figure 4 The flowchart illustrates a method for switching data connections by a mobile communication device 102 according to certain specific embodiments.

[0072] In step 402, the mobile communication device 102 establishes a cellular data connection 104 with the server 108 via a cellular network.

[0073] In step 404, the mobile communication device 102 establishes a Wi-Fi data connection 106 with the server 108 via a Wi-Fi network.

[0074] In step 406, the mobile communication device 102 synchronizes and simultaneously maintains the cellular data connection 104 and the Wi-Fi data connection 106.

[0075] In step 408, the mobile communication device 102 collects monitoring data by simultaneously monitoring the ping (i.e., cellular_ping) of the cellular data connection 104 and the ping (i.e., Wi-Fi_ping) of the Wi-Fi data connection 106. The cellular_ping can be obtained by the mobile communication device 102 transmitting monitoring packets to the server 108 via the cellular data connection 104. The Wi-Fi_ping can be obtained by the mobile communication device 102 transmitting monitoring packets to the server 108 via the Wi-Fi data connection 106.

[0076] `cellular_ping` can be the latest or most recent ping value obtained from cellular data connection 104. `Wi-Fi_ping` can be the latest or most recent ping value obtained from Wi-Fi data connection 106. Alternatively, `cellular_ping` can be a weighted average of a series of ping values ​​obtained from cellular data connection 104, and `Wi-Fi_ping` can be a weighted average of a series of ping values ​​obtained from Wi-Fi data connection 106. For example, for the following ping values ​​P0, P1, ..., Pn obtained at times T0, T1, ..., Tn, a weighted average of these ping values ​​can be the average of the following ping values:

[0077]

[0078] As the following paragraphs state, when determining whether to switch over, using a weighted average of a series of ping values ​​instead of recent ping values ​​can avoid sudden or drastic network fluctuations.

[0079] In step 410, the mobile communication device 102 uses either cellular data connection 104 or Wi-Fi data connection 106 to communicate with the server 108 at any given time. The data connection used for communicating with the server 108 is the active data connection, while the data connection not used for communicating with the server 108 is the backup data connection.

[0080] In several specific embodiments, for initialization purposes, mobile communication device 102 may select a data connection with a lower ping as the valid data connection. For example, initially, if cellular_ping is lower than or less than Wi-Fi_ping, then cellular data connection 104 may be selected as the valid data connection. Similarly, initially, if Wi-Fi_ping is lower than or less than cellular_ping, then Wi-Fi data connection 104 may be selected as the valid data connection.

[0081] In step 412, the mobile communication device 102 collects handover data indicating the handover frequency. This handover data may include the number of handovers that have occurred within a time period. This can be achieved via a counter synchronized with a timer whose calculation time increments with each handover within the time period.

[0082] In step 414, the mobile communication device 102 determines whether a handover should be performed at a predetermined time based on monitoring data and handover data. The determination of whether a handover should be performed can be made at a predetermined or specified time. For example, this determination can be made at periodic polling intervals.

[0083] Assuming the active data connection is Wi-Fi data connection 106 and the backup data connection is cellular data connection 104, if monitoring data indicates that Wi-Fi_ping is greater than cellular_ping, and handover data indicates that the handover frequency within the time period does not exceed the allowable limit, then it can be determined that a handover should be performed. In another example, assuming the active data connection is cellular data connection 104 and the backup data connection is Wi-Fi data connection 106, if monitoring data indicates that cellular_ping is greater than Wi-Fi_ping, and handover data indicates that the handover frequency within the time period does not exceed the allowable limit, then it can be determined that a handover should be performed.

[0084] In step 416, if the mobile communication device 102 determines that a handover should be performed, it switches from the active data connection to the backup data connection to communicate with the server 108. During the handover, the IP addresses and ports of the active and backup data connections can be swapped. For example, suppose that before the handover, the active data connection was assigned a first port number and a first IP address, while the backup data connection was assigned a second port number and a second IP address. Because of the handover, the second port number and the second IP address will now be assigned to the backup data connection (currently the active data connection), while the first port number and the first IP address will be assigned to the active data connection (currently the backup data connection).

[0085] Therefore, assuming the active data connection is Wi-Fi data connection 106 and the backup data connection is cellular data connection 104, the handover will result in the second port number and second IP address being assigned to cellular data connection 104, while the first port number and first IP address will be assigned to Wi-Fi data connection 106. If the purpose of data communication with server 108 is to play online games, after the handover, mobile communication device 102 can send a handshake packet to server 108. This handshake packet may contain a game connection status identifier, a second port number, and a second IP address. Server 108 receives the handshake packet and updates the game connection status identifier to correspond to the second port number and second IP address, then data communication from mobile communication device 102 will be responded to via cellular data connection 104.

[0086] In step 418, the mobile communication device 102 updates the data handover that has taken place. For example, a counter for a time period can be incremented to reflect the handover that has taken place during that time period.

[0087] In step 420, if the mobile communication device 102 determines that a handover should not be performed, then no handover is performed.

[0088] Therefore, the method of the present invention teaches that a mobile communication device 102 simultaneously maintains and monitors two data connections with a server 108, a cellular data connection 104 and a Wi-Fi data connection 106. The method teaches switching through periodic and timely determinations, the determination depending on the data connection type that provides better service at that point in time.

[0089] While maintaining a continuous dual data connection to server 108 may be less cost-effective (where one of these data connections is idle and unused at any given time), its advantage lies in preventing the active data connection from suddenly deteriorating to an extremely high ping level (which would severely impact data communication between mobile communication device 102 and server 108). For example, if data communication with server 108 is for playing an online game on mobile communication device 102, high ping experienced by the active data connection will adversely affect the playability of the online game and the user experience. In such cases, an idle or backup connection with lower and therefore better ping can instantly alleviate the active data connection for data communication tasks, avoiding or reducing any window of data communication loss for server 108.

[0090] One of the main considerations of this invention is that unnecessary backup data connection switching should be avoided when the improvement in effective data connection is not significant. This is because switching always consumes CPU cycles and computing resources of the mobile communication device 102. Therefore, if switching to a backup data connection only produces a slight improvement in ping or connection speed, it may not be worthwhile to switch in this instance.

[0091] In several specific implementations, one way to avoid unnecessary switching is to use high ping threshold variables and ping-delta threshold variables to measure whether a switch should occur. The high ping threshold refers to a ping value that is considered extremely high and unnecessary. A data connection with a ping value greater than the high ping threshold will suffer from latency and time lag. Examples of high ping thresholds include approximately 100 ms, 150 ms, 200 ms, 250 ms, or 300 ms, or any ping value in the range of 100 to 300 ms.

[0092] The ping-delta threshold is the minimum difference between the ping values ​​of the two data connections that does not guarantee a handover. Therefore, if the difference between the ping values ​​of the active data connection and the backup data connection exceeds the ping-delta threshold, a handover may be worthwhile, as the improvement in ping or connection speed would be sufficient to justify the handover. Conversely, if the difference between the ping values ​​of the active and backup data connections does not exceed the ping-delta threshold, a handover may not be worthwhile, as the improvement in ping or connection speed would be insufficient to justify the handover. Examples of ping-delta thresholds include 50 ms, 60 ms, or 70 ms, or any ping value within the range of 50 to 70 ms.

[0093] Therefore, in several specific embodiments, when determining whether a switch should be performed using two variables in step 414, if monitoring data indicates that the ping of the active data connection is greater than the high ping threshold, while the ping of the backup data connection is lower than the high ping threshold, and the difference between the ping of the active data connection and the ping of the backup data connection exceeds the ping-delta threshold, then it can be determined that a switch should be performed. In other words, the conditions set for the two variables ensure that switching to the backup data connection only occurs when there is a significant improvement in ping or connection speed, thereby avoiding or mitigating unnecessary switches.

[0094] In instances where the ping of the active data connection is very high, switching to the backup data connection may still be worthwhile, even if the ping of the backup data connection is only slightly better than that of the active data connection. The reason is that when the data connection has deteriorated to a very poor level, any improvement in ping (even a slight one) is expected. In practice, this slight improvement will give players the best chance of playing online games, or at least, in the case of video calls, the ability to see or hear at least part of the video call.

[0095] In these various embodiments, a severe ping threshold is treated as a variable. This severe ping threshold is considered a very high and highly undesirable ping value. A data connection with a ping value exceeding the severe ping threshold will experience frequent and lengthy latency and significant lag. Any video call or any online gaming experience will be severely hampered by such a slow data connection. Examples of severe ping thresholds include 350 ms, approximately 350 ms, or higher.

[0096] Therefore, in several specific embodiments, such as when determining whether a switch should be performed according to step 414, this variable is used such that if the ping of the active data connection exceeds a severe ping threshold, a switch can be determined to be performed as long as the ping of the backup data connection is lower than that of the active data connection. In particular, the several specific embodiments described above are not as good as the ping-delta threshold variable. This is because in scenarios where the data connection is very poor and has reached the severe ping threshold, the primary goal is to provide the best available data connection, and avoiding unnecessary switches becomes a secondary consideration.

[0097] Frequent handovers, especially within short periods, may indicate that both the Wi-Fi and cellular networks are unstable and fluctuating wildly. Handovers during these periods may offer limited advantages, as these data connections are too unstable and volatile to provide reliable data communication with server 108. This situation can be avoided by suppressing or limiting the frequency or number of handovers that can be performed within a given period.

[0098] Therefore, in several specific embodiments, such as determining whether a handover should be performed according to step 414, a handover threshold variable will be used to measure whether the number of handovers already performed has become excessive. This handover threshold may be time-related. The handover threshold could be the maximum number of handovers that can be performed within a given time period before being considered excessive. For example, the handover threshold could be five handovers within a 30-second time period. A counter can be used to count the number of handovers performed within that time period.

[0099] Therefore, if the handover data indicates that the handover frequency within a time period will exceed the handover threshold, it can be determined that a handover should not be performed. In several specific embodiments, a determination not to perform a handover based on handover data will override any handover determination made based on monitoring data.

[0100] In several specific embodiments, if the valid data connection is used for playing online games, a game connection state switching threshold variable can be used to measure whether the number of times the game connection state has been switched has become excessive. A counter can be used to count the number of switches performed within a specific game connection state.

[0101] Therefore, if the switching data indicates that the frequency of switching online game connection status exceeds the game connection status switching threshold, it can be determined that a switch should not be made. In several specific embodiments, the determination that a switch should not be made based on this switching data will override any determination made based on the monitoring data.

[0102] Another key consideration of this invention is to avoid and reduce the impact of occasional fluctuations on Wi-Fi and cellular networks. This means that sometimes switching to a backup data connection may be premature, even when the recent or most recent ping of the active data connection is high. This is because a recent high ping may be temporary or a result of fluctuations. The connection speed of the active data connection may eventually recover and stabilize to a lower ping. Therefore, with this in mind, in several specific embodiments, the ping of the active and backup data connections is a weighted average of a series of ping values, namely, weighted_cellular_ping and weighted_Wi-Fi_ping as mentioned in step 408.

[0103] In several specific embodiments, such as determining whether a switch should be performed according to step 414, it is based on weighted_cellular_ping and weighted_Wi-Fi_ping. weighted_cellular_ping and weighted_Wi-Fi_ping can be the averages of a series of ping values ​​for cellular data connection 104 and Wi-Fi data connection 106, respectively.

[0104]

[0105]

[0106] For example, suppose the active data connection is Wi-Fi data connection 106 and the backup data connection is cellular data connection 104. `weighted_cellular_ping` can be the average of a series of five ping values ​​obtained from cellular data connection 104. `weighted_Wi-Fi_ping` can be the average of a series of five ping values ​​obtained from Wi-Fi data connection 106.

[0107] Therefore, if monitoring data indicates that weighted_Wi-Fi_ping is greater than the high ping threshold, while weighted_cellular_ping is lower than the high ping threshold, and the difference between weighted_cellular_ping and weighted_Wi-Fi_ping is greater than the ping-delta threshold, it can be determined that a cellular data connection should be switched to 104.

[0108] In another example, if monitoring data indicates that weighted_Wi-Fi_ping is greater than the critical ping threshold, while weighted_cellular_ping is less than weighted_Wi-Fi_ping, then it can be determined that a switch to cellular data connection should be made 104.

[0109] In several specific embodiments, when determining whether a handover should be performed according to step 414, recent ping and a weighted average of a series of ping values ​​may be used in combination. For example, suppose the active data connection is Wi-Fi data connection 106 and the backup data connection is cellular data connection 104. recent_cellular_ping may be the most recent ping value obtained from cellular data connection 104, while recent_Wi-Fi_ping may be the most recent ping value obtained from Wi-Fi data connection 106.

[0110] Weighted_cellular_ping can be the average of a series of five ping values ​​obtained from cellular data connection 104. Recent_cellular_ping may or may not be one of these five ping values. Weighted_Wi-Fi_ping can be the average of a series of five ping values ​​obtained from Wi-Fi data connection 106. Recent_Wi-Fi_ping may or may not be one of these five ping values.

[0111] If the monitoring data indicates that both recent_Wi-Fi_ping and weighted_Wi-Fi_ping are greater than the high ping threshold, while both recent_cellular_ping and weighted_cellular_ping are lower than the high ping threshold, and the difference between recent_cellular_ping and recent_Wi-Fi_ping and the difference between weighted_cellular_ping and weighted_Wi-Fi_ping are both greater than the ping-delta threshold, then it can be determined that a cellular data connection should be switched to 104.

[0112] A failure in any of the following situations may lead to a decision that a switch should not be made. For example, if recent_Wi-Fi ping is greater than the high ping threshold but weighted_Wi-Fi_ping is lower than the high ping threshold, the mobile communication device 102 may determine that the high value of recent_Wi-Fi_ping may only be a temporary fluctuation in the Wi-Fi network and conclude that the Wi-Fi data connection 106 is actually stable and has an acceptable connection speed, and therefore does not switch to the cellular data connection 104.

[0113] In another example, if monitoring data indicates that both recent_Wi-Fi_ping and weighted_Wi-Fi_ping are greater than the critical ping threshold, while recent_cellular_ping is less than recent_Wi-Fi_ping and weighted_cellular_ping is less than weighted_Wi-Fi_ping, then it can be determined that a switch to cellular data connection 104 should be made.

[0114] A failure in any of the following situations may lead to a decision that a handover should not be performed. For example, if recent_Wi-Fi_ping is greater than the severe ping threshold but weighted_Wi-Fi_ping is lower than the severe ping threshold, the mobile communication device 102 may determine that the very high value of recent_Wi-Fi_ping may only be a temporary fluctuation in the Wi-Fi network and conclude that the ping of Wi-Fi data connection 106 has not deteriorated to the point that a handover to cellular data connection 104 should be guaranteed.

[0115] Although this specification describes the two data connections as data connections via Wi-Fi and data connections via cellular media, those skilled in the art will understand that other media may also be used. The key point is that the two data connections are via different media so that if one data connection fails, the other data connection will not be so severely affected, and thus an acceptable connection function is provided for data communication with server 108.

[0116] This invention can be implemented in any mobile computing device, such as a smartphone, tablet computer, laptop computer, wearable device, or similar device. Any hardware platform suitable for performing the methodology described herein is applicable to this invention. A computer-readable storage medium means any medium that participates in providing instructions to a central processing unit (CPU) for execution. These media can take many forms, including, but not limited to, non-volatile and volatile media such as optical discs or magnetic disks and volatile memory. Common forms of computer-readable media include, for example, magnetic disks, floppy disks, hard disks, magnetic tapes, any other magnetic media, optical disc drives (CD-ROMs), digital video disks (DVDs), any other optical media, random access memory (RAM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), flash erasable programmable read-only memory (FLASHEPROM), any other memory chip or cartridge.

[0117] Various forms of transmission media may involve carrying one or more sequences of instructions for CPU execution. A bus carries data to system RAM, from which the CPU fetches and executes instructions. Instructions received by system RAM may be selectively stored on a fixed disk before or after CPU execution.

[0118] Unless otherwise specified, and as will be apparent from the following text, the terms used throughout this specification, such as “receive,” “identify,” “start,” “mark,” “transmit,” “execute,” “increment,” “determine,” “allocate,” “approve,” “select,” “send,” “calculate,” “determine,” “replace,” “generate,” “initialize,” and “output,” refer to the operation and procedures of a computer system or similar electronic device that process and transform data represented as physical quantities within the computer system into other data represented as physical quantities within the computer system or other information storage, transmission, or display devices.

[0119] In this application, unless otherwise stated, the terms “containing,” “including,” and their grammatical variations are intended to mean an “open” or “inclusive” language that includes the listed components, but also allows for the inclusion of additional, non-explicitly referenced components.

[0120] It is obvious that, without departing from the spirit and scope of this application, those skilled in the art will understand after reading the foregoing disclosure that all other modifications and variations of this application are covered within the scope of the patent application described below.

Claims

1. A method for a mobile communication device to switch between data connections, the method comprising the following steps: A cellular data connection is established between the mobile communication device and the server via a cellular network; A Wi-Fi data connection is established between the mobile communication device and the server via a Wi-Fi network; Simultaneously maintain the cellular data connection and the Wi-Fi data connection; Monitoring data is collected by simultaneously monitoring the first ping of the cellular data connection and the second ping of the Wi-Fi data connection, each of the first ping and the second ping being a weighted average of a series of ping values; At any given time, one of the cellular data connection and the Wi-Fi data connection is used to communicate with the server. Collect switching data, which indicates the switching frequency; Based on the monitoring data, a decision will be made at a predetermined time whether a switch should be made. Based on the switching data, by evaluating whether the switching frequency within the time period is within the switching threshold, it is determined whether a switching should be performed. The determination that a switching should not be performed based on the switching data will cover any switching determination made based on the monitoring data. as well as If it is determined that a switch should be performed, the switch is executed, switching from one of the cellular data connection and the Wi-Fi data connection to the other of the cellular data connection and the Wi-Fi data connection for data communication with the server.

2. The method of claim 1, wherein if the monitoring data indicates that the first ping is greater than the high ping threshold, and the second ping is less than the high ping threshold, and the difference between the first ping and the second ping is greater than the ping-delta threshold, then based on the monitoring data, it is determined that a switch should be performed, and the switch is executed to switch from the cellular data connection to the Wi-Fi data connection for data communication with the server.

3. The method as described in claim 1, wherein if the monitoring data indicates that the second ping is greater than the high ping threshold, while the first ping is less than the high ping threshold, and the difference between the first ping and the second ping is greater than the ping-delta threshold, then based on the monitoring data, it is determined that a switch should be performed, and the switch is executed to switch from the Wi-Fi data connection to the cellular data connection for data communication with the server.

4. The method of claim 2 or 3, wherein the high ping threshold is a ping value in the range of 100 to 300 ms; and wherein the ping-delta threshold is a ping value in the range of 50 to 70 ms.

5. The method of claim 1, wherein if the monitoring data indicates that the first ping is greater than the critical ping threshold and the second ping is less than the first ping, then based on the monitoring data, it is determined that a switch should be performed, and the switch is executed to switch from the cellular data connection to the Wi-Fi data connection for data communication with the server.

6. The method of claim 1, wherein if the monitoring data indicates that the second ping is greater than the critical ping threshold and the first ping is less than the second ping, then based on the monitoring data, it is determined that a switch should be performed, and the switch is executed to switch from the Wi-Fi data connection to the cellular data connection for data communication with the server.

7. The method of claim 5 or 6, wherein the critical ping threshold is 350 ms.

8. The method of any one of claims 1 to 3, wherein the purpose of the data communication with the server is to play an online game on the mobile communication device, and wherein if the switching data indicates that the switching frequency of the online game connection state will exceed the game connection state switching threshold, then based on the switching data, it is determined that a switch should not be made, and the switch is not performed.

9. The method of any one of claims 1 to 3, wherein the collection of the monitoring data is achieved by transmitting monitoring packets to the server.

10. The method of any one of claims 1 to 3, wherein the cellular data connection is assigned a first port number and a first IP address, and the Wi-Fi data connection is assigned a second port number and a second IP address; and performing a handover causes the second port number and the second IP address to be assigned to the cellular data connection, and the first port number and the first IP address to be assigned to the Wi-Fi data connection.

11. A mobile communication device comprising: Cellular module, configured to establish cellular data connection with server via cellular network; The Wi-Fi module is configured to establish a Wi-Fi data connection with the server via a Wi-Fi network; The monitoring module is configured to collect monitoring data by simultaneously monitoring a first ping of the cellular data connection and a second ping of the Wi-Fi data connection, each of the first ping and the second ping being a weighted average of a series of ping values; The communication module is configured to communicate with the server at any given time using either the cellular data connection or the Wi-Fi data connection; as well as A switching module configured to collect switching data, which indicates the switching frequency; The cellular data connection and the Wi-Fi data connection are maintained simultaneously; and The switching module is configured as follows: Based on the monitoring data, a decision will be made at a predetermined time whether a switch should be made. Based on this switching data, by evaluating whether the switching frequency within the time period is within the switching threshold, it is determined whether a switching should be performed. The determination that a switching should not be performed based on this switching data will override any switching determination made based on this monitoring data. If it is determined that a switch should be performed, the switch is executed, switching from one of the cellular data connection and the Wi-Fi data connection to the other of the cellular data connection and the Wi-Fi data connection for data communication with the server.

12. The mobile communication device of claim 11, wherein if the monitoring data indicates that the first ping is greater than the high ping threshold, and the second ping is less than the high ping threshold, and the difference between the first ping and the second ping is greater than the ping-delta threshold, then the switching module determines that a switching should be performed based on the monitoring data, and switches from the cellular data connection to the Wi-Fi data connection for data communication with the server.

13. The mobile communication device of claim 11, wherein if the monitoring data indicates that the second ping is greater than the high ping threshold, while the first ping is less than the high ping threshold, and the difference between the first ping and the second ping is greater than the ping-delta threshold, then the switching module determines that a switch should be performed based on the monitoring data, and switches from the Wi-Fi data connection to the cellular data connection for data communication with the server.

14. The mobile communication device of claim 11, wherein if the monitoring data indicates that the first ping is greater than the critical ping threshold and the second ping is less than the first ping, the switching module determines that a switch should be performed based on the monitoring data, and switches from the cellular data connection to the Wi-Fi data connection for data communication with the server.

15. The mobile communication device of claim 11, wherein if the monitoring data indicates that the second ping is greater than the critical ping threshold and the first ping is less than the second ping, the switching module determines that a switch should be performed based on the monitoring data, and switches from the Wi-Fi data connection to the cellular data connection for data communication with the server.

16. The mobile communication device as claimed in any one of claims 11 to 15, wherein the purpose of the data communication with the server is to play an online game on the mobile communication device, and if the switching data indicates that the switching frequency of the online game connection state will exceed the game connection state switching threshold, the switching module determines based on the switching data that a switching should not be performed, and does not perform a switching.

Citation Information

Patent Citations

  • Systems and methods for quality of experience measurement and wireless network recommendation

    US20150373574A1

  • Intelligent traffic steering over optimal paths using multiple access technologies

    US20190150150A1