System and method for dynamic network keep-alive

By dynamically adjusting the time interval of the client station and sending outbound keep-alive frames, the connection disconnection problem caused by long-term inactivity between the client station and the access point in the wireless network is solved, and the stability and efficiency of the network connection are achieved.

CN119485804APending Publication Date: 2025-02-18BEKEN CORP
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202311001921.5
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-08-09
Publication Date
2025-02-18

AI Technical Summary

Technical Problem

In wireless networks, prolonged inactivity between the client station and the access point leads to disconnection, and prior art is difficult to determine the appropriate keep-alive process frequency to maintain the connection.

Method used

By establishing a link with the access point using a hardware processor, initializing the client station time interval and increment, iteratively adjusting the client station time interval until a fixed interval is determined, and sending outbound keep-alive frames to the access point for maintenance connect.

Benefits of technology

It realizes dynamic adjustment of customer station time intervals to match access point time intervals, ensuring the stability and efficiency of network connections, and avoiding the problems of frequent disconnection and high power consumption.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119485804A_ABST
    Figure CN119485804A_ABST
Patent Text Reader

Abstract

A method and system for dynamic network keep-alive is described. In one embodiment, the method includes establishing a link with an access point, determining a client station time interval, and iteratively adjusting a duration of the client station time interval to approximate the access point time interval until the client station time interval is close to the access point time interval. Thus, the keep-alive process is performed in an effective manner.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The technical field of the present disclosure generally relates to wireless communications, and more particularly, to a dynamic keep-alive system and method for maintaining connections between devices within a network. Background Art

[0002] In wireless networks, when there is a long period of inactivity between a client station and an access point, it is necessary to use a keep-alive process to maintain the connection. The client station can send a frame after a preset duration to inform the access point that it is still online. However, if the preset duration is too short, it will result in high power consumption of the client station. On the contrary, if the preset duration is longer than the disconnection threshold of the access point, it may cause frequent disconnections. Therefore, determining the appropriate frequency of the keep-alive process has become an important issue that needs to be solved. Summary of the invention

[0003] The dynamic keep-alive method includes using a hardware processor to establish a link with an access point, initializing a client station time interval and an increment, iteratively adding an increment to the client station time interval until a fixed interval is determined, and sending an outbound keep-alive frame to the access point to maintain the connection.

[0004] In one embodiment, a computing device includes a processor and a memory storing instructions that, when executed, configure the device to perform the steps.

[0005] In another embodiment, a non-transitory computer-readable storage medium contains instructions that, when executed by a computer, cause the computer to perform these steps. BRIEF DESCRIPTION OF THE DRAWINGS

[0006] To facilitate identification of any particular element or activity discussed, the most significant digit or digits in a reference number refer to the figure numeral that first introduces that element.

[0007] Figure 1 is a conceptual diagram illustrating a network system 100 according to one example.

[0008] Figure 2 is a block diagram showing further details regarding network system 100 according to some examples.

[0009] Figures 3A-3D is a flow chart illustrating the operation of a client station 104 in performing a method 300 for adaptive network keep-alive, according to some examples.

[0010] Figures 4A-4C is a conceptual diagram illustrating iterative cycles of performing dynamic network keepalives on a timeline according to some examples.

[0011] Figure 5 is a schematic diagram of a machine 500 according to some examples, within which instructions 502 may be executed for causing the machine 500 to perform any one or more of the methodologies discussed herein.

[0012] Figure 6 is a block diagram 600 illustrating a software architecture 602 according to some examples. DETAILED DESCRIPTION

[0013] Figure 1 1 is a conceptual diagram illustrating a network system 100, which includes an access point 102, a client station 104, a new access point 106, and a network 108. Network system 100 represents an arrangement of devices and connections within a wireless communication environment.

[0014] Access point 102 is connected to network 108 and acts as an intermediary between the network and wireless devices, such as client stations 104. Client stations 104 may be included in devices such as smartphones or laptop computers. Client stations 104 are wirelessly connected to network 108 through access point 102. This connection enables client stations 104 to access network resources, communicate with other devices, and exchange data.

[0015] New access point 106 is also connected to network 108 , providing an additional connection point for wireless devices within network system 100 .

[0016] Figure 2 1 is a block diagram showing further details about the network system 100 according to some examples. Specifically, the network system 100 is shown to include a client station 104 and an access point 102. The network system 100 embodies multiple subsystems. A subsystem may have components that enable it to operate independently and communicate with other services. Each subsystem may be responsible for its own data storage, which may be in the form of a database, cache, or other storage mechanism. This enables the subsystem to operate independently of other systems of the network system 100. Each subsystem can discover and communicate with other subsystems of the network system 100.

[0017] An illustrative system is discussed below.

[0018] The transceiver system 216 is responsible for enabling communications and interactions within the network system 100 , and includes a transmit (TX) system 202 , a receive (RX) system 204 , and a media access control system 218 .

[0019] The transmit (TX) system 202 is operationally responsible for sending radio signals (eg, frames). In one example, the transmit (TX) system 202 sends an acknowledgement frame to the access point to indicate to the client station 104 that the access point is active.

[0020] The receiving (RX) system 204 is responsible for receiving radio signals (e.g., frames). In one example, the receiving (RX) system 204 receives an inbound keep-alive frame sent by the access point. Based on the received inbound keep-alive frame, the client station 104 is informed that the access point is active, thereby maintaining the connection between the client station 104 and the access point.

[0021] The media access control system 218 is responsible for managing media access control (MAC) addresses, such as presenting media access control (MAC) addresses, identifying media access control (MAC) addresses associated with other devices, and storing media access control (MAC) addresses in a storage unit (e.g., storage unit 520).

[0022] The keep alive frame detection system 206 is operatively responsible for detecting inbound keep alive frames that are used to maintain a communication link between the client station 104 and other devices within the network system 100 .

[0023] The Deauth frame detection system 208 is operationally responsible for detecting deauthentication (deauth) frames. In response to a detected Deauth frame, the Deauth frame detection system 208 can send the Deauth frame to the connection system 214 for further processing. The Deauth frame detection system 208 can also identify a reason code associated with the Deauth frame and determine a reason for disconnection. In one example, the reason for disconnection is determined to be related to inactivity (i.e., deactivation or loss of connection) based on the reason code.

[0024] The keep alive system 210 is responsible for maintaining the connection between an access point (e.g., access point 102) and a client station 104. In one example, the keep alive system 210 generates an outbound keep alive frame (Outbound Keep-alive frame) through the transmit (TX) system 202 and sends it to the access point 102. The outbound keep alive frame is used to indicate to the access point 102 that the client station 104 is active, thereby maintaining the connection and communication link between the client station 104 and the access point 102. In one example, the keep alive system 210 sends the outbound keep alive frame to the access point 102 at the end of the client station time interval.

[0025] The dynamic keep alive system 212 is responsible for iteratively adjusting the transmission frequency of the outbound keep alive frames by adjusting the duration of the client station time interval until the client station time interval is finalized, that is, the client station time interval is close to the access point time interval, thereby ensuring the best communication efficiency within the network system 100. The dynamic keep alive system 212 can initialize the client station time interval and increment. The dynamic keep alive system 212 is also responsible for determining whether the client station time interval has been finalized based on the duration of the client station time interval, the data input from the keep alive frame detection system 206 or the connection system 214, and the time value provided by the time tracking system 220.

[0026] The connection system 214 is responsible for establishing, reestablishing, disconnecting, and maintaining connections between devices within the network system 100. In one example, the connection system 214 receives a Deauth frame from the Deauth frame detection system 208. In response to receiving the Deauth frame, which indicates that the connection is disconnected, the connection system 214 attempts to reconnect with the access point. The connection system 214 can also send information to other systems to facilitate further processing of the information. For example, the connection system 214 sends the Deauth frame received from the Deauth frame detection system 208 to the dynamic keep-alive system 212 for further processing (e.g., determining whether the client station time interval has been fixed).

[0027] The time tracking system 220 is responsible for timing within the network system 100. The time tracking system 220 can track one or more time intervals (e.g., client station time interval, finalized client station time interval, previous client station time interval) and detect whether the one or more time intervals have expired. These intervals have expired when a specific duration has passed or is being completed. For example, in response to a specific duration of the client station time interval having occurred from the starting point to the end point, the time tracking system 220 determines that the client station time interval has expired. In a specific example, the client station time interval is 20 seconds, and when 20 seconds have passed since the client station time interval was reset, it is determined that the client station time interval has expired. In another embodiment, the time tracking system 220 uses a timestamp to track the timeout of the client station time interval. Using the previous example, where the client station time interval is 20 seconds, when the client station time interval is reset, the timestamp is recorded at 13:35:00, and the client station time interval will expire at 13:35:20.

[0028] In one example, the time tracking system 220 can be responsible for resetting one or more timers that track multiple time intervals. Referring to an example where the client station time interval has been adjusted from 20 seconds to 25 seconds, and in response to resetting the client station time interval, the time tracking system 220 resets the client station time interval to 25 seconds. The time tracking system 220 can start a countdown when resetting the client station time interval. For example, the time tracking system 220 resets the fixed client station time interval in response to the time in the fixed client station time interval running out. In another example, the time tracking system 220 resets all client station time intervals in response to the receive (RX) system 204 detecting unicast communication between the access point 102 and the client station 104.

[0029] In another example, the time tracking system 220 can record a time value when an event occurs.For example, the time tracking system 220 records a time value in response to the keep alive frame detection system 206 detecting that an inbound keep alive frame has been received.

[0030] In an additional example, time tracking system 220 can ensure that devices within network system 100 begin keep alive periods at the same time even though the devices within network system 100 have different time values ​​in their internal clocks.

[0031] Figures 3A-3C 3 is a flow chart illustrating the operation of a client station 104 in performing a method 300 for dynamic network keepalive according to some embodiments. The method 300 may be embodied in computer-readable instructions for execution by one or more processors, such that the operations of the method 300 may be performed in part or in whole by functional components of the client station 104; therefore, the method 300 is described below with reference thereto by way of example. However, it should be understood that at least some of the operations of the method 300 may be deployed on various other hardware configurations besides the client station 104.

[0032] At operation 302 , the method 300 begins.

[0033] At operation 304, the client station 104 identifies and records the media access control address of the access point 102. The media access control address (MAC address) is a unique identifier assigned to the access point 102. The client station 104 may store the media access control address in the storage unit 520.

[0034] At operation 306, the client station 104 initializes the client station time interval and increment. The client station time interval may be used as an approximation of the access point time interval. The initial duration of the client station time interval may be predetermined and used as an initial approximation of the access point time interval. In one example, the client station 104 initializes the duration of the client station time interval to 20 seconds and the increment to 5 seconds.

[0035] At operation 308, the client station 104 determines whether the client station time interval has timed out. The client station 104 may monitor the client station time interval using the time tracking system 220. If the client station 104 determines that the client station time interval has timed out (i.e., returns TRUE), it proceeds to operation 310. Figure 3B and 3C A description of the operations to be performed in response to determining that the client station time interval has not timed out (i.e., returning "false" (FALSE)).

[0036] At operation 310, the client station 104 determines whether the client station time interval has been finalized. In one example, the client station time interval is responsive to determining that the client station time interval has been finalized. The client station time interval that has been finalized is very close to the access point time interval. In one example, when the client station time interval that has been finalized is less than or equal to an increment shorter than the access point time interval (i.e., access point time interval - increment ≤ fixed client station time interval ≤ access point time interval). In another example, the client station 104 determines that the client station time interval is finalized based on the client station time interval being marked as "Finalized" to indicate that the client station time interval is now close to the access point time interval. Figure 3A In the illustrated embodiment, if the client station 104 determines that the client station time interval has not been fixed (i.e., returns "false"), it proceeds to operation 312. If the client station 104 determines that the client station time interval has been fixed (i.e., returns "true"), it proceeds to operation 314.

[0037] At operation 312, the client station 104 adjusts the client station time interval by adding an increment to the client station time interval. For example, the current duration of the client station time interval is 20 seconds and the increment is 5 seconds. The client station 104 adds 5 seconds to the client station time interval, resulting in an adjusted duration of 25 seconds. In the next iteration cycle, the 25 second duration becomes the current duration of the client station time interval, and the previous 20 second duration becomes the previous client station time interval. In addition, the client station 104 can track the past duration of the client station time interval. In one example, the client station 104 stores in a variable named previous client station time interval, which holds the duration of the client station time interval before the increment is added. In the given example, after the client station time interval is adjusted to 25 seconds, the previous client station time interval remains at the value of 20 seconds.

[0038] At operation 314, the client station 104 sends an outbound keep alive frame. An outbound keep alive frame may be a type of frame sent to notify a receiving device that a connection is still active, even if there is no data to send. In one example, an outbound keep alive frame may be an IEEE 802.11 Wi-Fi 4K frame. Null frames in the standard are intended to serve purposes such as maintaining a connection or performing power management. A client station 104 sends outbound keep-alive frames to an access point to ensure that the connection between the client station 104 and the access point remains active and is not disconnected due to inactivity.

[0039] At operation 316, client station 104 resets the client station time interval. In one example, client station 104 utilizes time tracking system 220 to reset the time value of the client station time interval. Completion of operation 316 may indicate the end of an iteration cycle, and subsequent iteration cycles starting from operation 308.

[0040] like Figure 3B As shown, in some embodiments, method 300 may further include operations 318 and 320. Operation 318 may be performed in response to client station 104 determining that the client station time interval has not timed out (ie, operation 308 returns "false").

[0041] At operation 318, the client station 104 determines whether an inbound keep alive frame was received between the previous client station time interval and the client station time interval (i.e., after expiration of the previous client station time interval and before expiration of the client station time interval). Receipt of an inbound keep alive frame from the access point between the previous client station time interval and the client station time interval indicates that the access point time interval is shorter than the client station time interval because the access point will send an inbound keep alive frame in response to expiration of the access point time interval, and receipt of the inbound keep alive frame indicates that the access point time interval has timed out before the client station time interval has timed out.

[0042] In one example, the client station 104 performs operation 318 more than once to verify that the access point time interval is in fact shorter than the client station time interval. To accomplish this, the client station 104 performs operation 316 to reset the client station time interval. At the same time, in response to sending an inbound keep alive frame to the client station 104, the access point time interval is reset, resulting in a simultaneous reset of the access point time interval and the client station time interval. Operations 308 and 318 are then performed in response to the resetting of the client station time interval. In response to receiving a subsequent inbound keep alive frame from the access point 102 between the previous client station time interval and the client station time interval, the client station 104 can confirm that the access point time interval is indeed longer than the previous client station time interval, but shorter than the client station time interval.

[0043] At operation 320, the client station 104 determines a fixed client station time interval based on receiving an inbound keep alive frame between a previous client station time interval and an inter-client station time interval (i.e., operation 318 returns "true"), indicating that the access point time interval is shorter than the client station time interval as described above. In one example, the client station 104 determines the fixed client station time interval by subtracting an increment from the client station time interval (i.e., fixed client station time interval = client station time interval - increment). In another example, the client station 104 determines the fixed client station time interval by setting it equal to the previous client station time interval without performing a subtraction. The fixed client station time interval is considered to be close to the access point time interval (e.g., the access point time interval is within an increment shorter than the client station time interval), and therefore the client station time interval has been fixed. In one example, the client station 104 marks the client station time interval as fixed. Operation 320 may be performed by the keep alive frame detection system 206 or the dynamic keep alive system 212.

[0044] like Figure 3C As shown, in some embodiments, method 300 may further include operations 322, 324, 326, and 328. Operation 322 may be performed in response to client station 104 determining that the client station time interval has not timed out (i.e., operation 308 returns "false") and the client station time interval has not been fixed (i.e., operation 310 returns "false").

[0045] At operation 322, the client station 104 determines whether an identity deauthentication (deauth) frame was received between the previous client station time interval and the client station time interval (i.e., after the previous client station time interval expired and before the client station time interval expired). Receiving a Deauth frame from the access point between the previous client station time interval and the client station time interval may indicate that the access point time interval is shorter than the client station time interval, because the Deauth frame may be used by the access point to notify the receiving device (i.e., the client station) that it is being disassociated from the network due to inactivity for the duration of the access point time interval. The access point sends the Deauth frame in response to the expiration of the access point time interval, so receiving the Deauth frame indicates that the access point time interval has timed out before the client station's time interval has timed out.

[0046] At operation 324, the client station 104 determines that the reason code associated with the Deauth frame is related to inactivity. This determination is to confirm that the sending of the Deauth frame for the duration of the access point time interval is due to inactivity and not other reasons, such as security-related reasons or normal network disconnection procedures. In one example, the reason code associated with the Deauth frame is a 2-byte field of the reason for deauthentication, such as IEEE 802.11 Wi-Fi 64-bit. In another example, the client station 104 sends a request based on the reason code corresponding to REASON_INACTIVITY reason code 4 determines that the reason code associated with the Deauth frame is related to inactivity, which means "disassociated due to inactivity", according to IEEE 802.11Wi-Fi. standard.

[0047] At operation 326, the client station 104 determines a fixed client station time interval based on determining that a Deauth frame was received between the previous client station time interval and the client station time interval and that the cause code associated with the Deauth frame is related to inactivity (i.e., operations 322 and 324 both return true), indicating that the access point time interval is shorter than the client station time interval. In one example, the client station 104 determines the fixed client station time interval by subtracting the increment from the client station time interval (i.e., client station time interval=client station time interval-increment), and thus, the client station time interval is fixed. In another example, the client station 104 determines the fixed client station time interval by setting it equal to the previous client station time interval. The fixed client station time interval is considered to be an approximation of the access point time interval (e.g., the access point time interval is within an increment shorter than the client station time interval), and thus, the client station time interval has been fixed. In one example, the client station 104 marks the client station time interval as fixed. Operation 326 may be performed by one or more of the Deauth frame detection system 208, the connection system 214, and the dynamic keep-alive system 212.

[0048] At operation 328, the client station 104 initiates a new connection. Then, returning to operation 304, the client station 104 identifies and records the media access control address of the currently connected access point. In operation 304, the media access control address of the currently connected access point may be compared with the media access control address of the previously recorded access point. If the media access control address of the currently connected access point is the same as the media access control address of the previously recorded access point, the client station time interval of the currently connected access point is determined as the fixed client station time interval.

[0049] like Figure 3D As shown, in some embodiments, method 300 may further include operations 330, 332. Operation 322 may be performed in response to client station 104 determining that the client station time interval has timed out (i.e., operation 308 returns "true") and the client station time interval has not been fixed (i.e., operation 310 returns "false").

[0050] At operation 330, the client station 104 determines whether an identity deauthentication (deauth) frame was received before a previous client station time interval. After the client station time interval has expired, causing an outbound keep alive frame to be sent to the access point, the Deauth frame is received from the access point after causing the outbound keep alive frame to be sent but before the previous client station time interval has expired. Receiving the Deauth frame from the access point before the previous client station time interval may indicate that the access point time interval is shorter than the previous client station time interval.

[0051] At operation 324, the client station 104 determines that the cause code associated with the Deauth frame is related to inactivity. This determination is to confirm that the sending of the Deauth frame for the duration of the access point time interval is due to inactivity and not other reasons, such as security-related reasons or normal network disconnection procedures. In one example, the client station 104 determines that the cause code is 6 or 7 corresponding to REASON_INACTIVITY based on the cause code.

[0052] At operation 332, the client station 104 determines a fixed client station time interval based on determining that a Deauth frame was received before a previous client station time interval and that the cause code associated with the Deauth frame is related to inactivity (i.e., operations 330 and 324 both return true), indicating that the access point time interval is shorter than the previous client station time interval. In one example, the client station 104 determines the fixed client station time interval by subtracting the increment from the previous client station time interval (i.e., client station time interval = previous client station time interval - increment), and thus, the client station time interval is fixed. In one example, the client station 104 marks the client station time interval as fixed.

[0053] Figures 4A-4C is a conceptual diagram illustrating iterative cycles of performing dynamic network keepalives on a timeline in accordance with some embodiments.

[0054] Figure 4A A timeline with a plurality of time points, point A to point E, representing time values ​​of a clock, timer, or stopwatch is shown. Figure 4A Also shown are multiple durations of the client station time interval, denoted by T1, T2, and T3. T1 represents the initial duration of the client station time interval; T2 represents the duration after an increment is added to the initial duration of the client station time interval (i.e., T2 = T1 + increment). T3 represents the duration of the client station time interval after another increment is added to T2 (i.e., T3 = T2 + increment). Tn will represent the duration T1 + n × increment.

[0055] The first iteration cycle starts at point A and ends at point B. In the first iteration cycle, the client station time interval is T1. Prior to point A, the client station 104 establishes a connection to the access point, thereby creating a link between the client station 104 and the access point 102. Between point A and point B, the client station 104 determines that the client station time interval has not been fixed. The client station 104 adjusts the client station time interval by adding an increment to T1, resulting in T2. ​​To maintain the connection, when T1 has timed out (i.e., at point B), the client station 104 sends an outbound keep-alive frame to the access point. In one example, the client station 104 determines that the link is still active, the client station time interval has not been fixed, and the client station time interval has been fixed based on receiving an acknowledgment frame from the access point after sending the outbound keep-alive frame. In another example, the client station 104 restores the client station time interval to the previous client station time interval (i.e., T1) based on not receiving a response from the access point after sending the outbound keep-alive frame.

[0056] The second iteration cycle starts at point B and ends at point C. At point B, the client station 104 resets the client station time interval. Between point B and point C, the client station 104 determines that the client station time interval has not been fixed. The client station 104 adjusts the client station time interval again by adding an increment, resulting in T3. In order to maintain the link, when T2 times out (i.e., at point C), the client station 104 sends a subsequent outbound keep-alive frame to the access point. In one example, the client station 104 determines that the link is still active based on receiving an acknowledgment frame from the access point after sending the outbound keep-alive frame. In another example, the client station 104 restores the client station time interval to the previous client station time interval (i.e., T2) based on not receiving a response from the access point after sending the subsequent outbound keep-alive frame.

[0057] The third iteration cycle starts at point C and ends at point D. At point C, the client station 104 resets the client station time interval. In one example, after the duration of T2 has timed out but before T3 times out at point E, the client station 104 receives an inbound keep alive frame from the access point indicating that the access point time interval may be longer than T2 but shorter than T3. The client station 104 determines the fixed client station time interval by subtracting the increment from the client station time interval. In another example, based on receiving the inbound keep alive frame after the duration of T2 has timed out but before T3 times out, the client station 104 determines that the fixed client station time interval is T2 without performing any calculations.

[0058] In one example, in response to receiving an inbound keep-alive frame from the access point before T3 times out, the client station 104 attempts to verify that the client station time interval (i.e., T3) is indeed longer than the access point time interval by waiting for another T3 before sending an outbound keep-alive frame. To this end, the client station 104 resets the client station time interval at point D. At point F, before T3 ends (i.e., at point G), the client station 104 receives a subsequent inbound keep-alive frame from the access point, confirming that the current client station time interval (i.e., T3) is indeed longer than the access point time interval. The client station 104 determines that the client station time interval is fixed, and the fixed client station time interval is T.

[0059] Figure 4B Another example of performing iterative cycles of dynamic network keep-alive on a timeline according to some examples is illustrated.

[0060] The first iteration cycle starts at point A and ends at point B. In the first iteration cycle, the client station time interval is T1. Prior to point A, the client station 104 establishes a connection to the access point, thereby creating a link between the client station 104 and the access point. The client station 104 may record the media access control address of the access point. Between point A and point B, the client station 104 determines that the client station time interval has not been fixed. The client station 104 adjusts the client station time interval by adding an increment to T1, resulting in T2. ​​To maintain the connection, when T1 has timed out (i.e., at point B), the client station 104 sends an outbound keep-alive frame to the access point. In one example, the client station 104 determines that the link is still active based on receiving an acknowledgment frame from the access point after sending the outbound keep-alive frame. In another example, the client station 104 restores the client station time interval to the previous client station time interval (i.e., T1) based on not receiving a response from the access point after sending the outbound keep-alive frame.

[0061] The second iteration cycle starts at point B and ends at point C. At point B, the client station 104 resets the client station time interval. Between point B and point C, the client station 104 determines that the client station time interval has not been fixed. The client station 104 adjusts the client station time interval again by adding an increment, resulting in T3. In order to maintain the link, when T2 times out (i.e., at point C), the client station 104 sends an outbound keep-alive frame to the access point. In one example, the client station 104 determines that the link is still active based on receiving an acknowledgment frame from the access point after sending the outbound keep-alive frame. In another example, the client station 104 restores the client station time interval to the previous client station time interval (i.e., T2) based on not receiving a response from the access point after sending the outbound keep-alive frame.

[0062] The third iteration cycle starts at point C and ends at point D. At point C, the client station 104 resets the client station time interval. In one example, after the duration of T2 has timed out but before T3 times out at point E, the client station receives a Deauth frame from the access point (e.g., at point D); the client station 104 determines that the cause code associated with the Deauth frame is related to inactivity; and the client station 104 determines the fixed client station time interval to be T2. In one example, the client station 104 determines the fixed client station time interval by subtracting the increment from the client station time interval. In another example, the client station 104 determines that the Deauth frame is sent by the same access point based on a match between the media access control address and the media access address associated with the Deauth frame. The client station 104 resets the client station time interval to the fixed client station time interval (i.e., T2) and continues the iteration cycle.

[0063] Figure 4C Another example of performing an iterative cycle of dynamic network keep alive on a timeline according to some examples is shown.

[0064] The first iteration cycle starts at point A and ends at point B. In the first iteration cycle, the client station's time interval is T1. Prior to point A, the client station 104 establishes a connection to the access point, thereby creating a link between the client station 104 and the access point. The client station 104 may record the media access control address of the access point. Between point A and point B, the client station 104 determines that the client station time interval has not been fixed. The client station 104 adjusts the client station time interval by adding an increment to T1, resulting in T2. ​​To maintain the connection, when T1 has timed out (i.e., at point B), the client station 104 sends an outbound keep-alive frame to the access point. In one example, the client station 104 determines that the link is still active based on receiving an acknowledgment frame from the access point after sending the outbound keep-alive frame. In another example, the client station 104 restores the client station time interval to the previous client station time interval (i.e., T1) based on not receiving a response from the access point after sending a subsequent outbound keep-alive frame.

[0065] The second iteration cycle starts at point B and ends at point C. At point B, the client station 104 resets the client station time interval. Between point B and point C, the client station 104 determines that the client station time interval has not been fixed. The client station 104 adjusts the client station time interval again by adding an increment, resulting in T3. In order to maintain the link, when T2 times out (i.e., at point C), the client station 104 sends an outbound keep-alive frame to the access point. In one example, the client station 104 determines that the link is still active based on receiving an acknowledgment frame from the access point after sending the outbound keep-alive frame. In another example, the client station 104 restores the client station time interval to the previous client station time interval (i.e., T2) based on not receiving a response from the access point after sending the outbound keep-alive frame.

[0066] The third iteration cycle starts at point C and ends at point E. At point C, the client station 104 resets the client station time interval. Between point C and point E, after the duration of T2 has timed out but before T3 times out at point E, the access point sends an inbound keep alive frame to the client station 104, but the client station 104 fails to receive / detect the inbound keep alive frame. The client station 104 determines that the client station time interval has not been fixed. The client station 104 adjusts the client station time interval by adding an increment, resulting in T4. In order to maintain the link, when T3 times out (i.e., at point E), the client station 104 sends an outbound keep alive frame to the access point. Before the duration of T3 times out, the client station 104 receives a Deauth frame from the access point. The client station 104 determines that the cause code associated with the Deauth frame is related to inactivity; and the client station 104 determines that the fixed client station time interval is T2 based on receiving the Deauth frame before the duration of T3 has timed out. In one example, the client station 104 determines the fixed client station time interval by setting the client station time interval to T2. In another example, the client station 104 determines that the Deauth frame is sent by the access point based on a media access control address matching the media access address associated with the Deauth frame. The client station 104 resets the client station time interval to the fixed client station time interval (i.e., T2) and continues the iteration cycle.

[0067] Figure 55 is a schematic diagram of a machine 500 in which instructions 502 (e.g., software, programs, applications, applet, APP, or other executable code) for causing the machine 500 to perform any one or more of the methods discussed herein may be executed. For example, the instructions 502 may cause the machine 500 to perform any one or more of the methods described herein. The instructions 502 convert a general, unprogrammed machine 500 into a specific machine 500 that is programmed to perform the functions described and shown in the manner described. The machine 500 may operate as a standalone device or may be coupled (e.g., networked) to other machines. In a networked deployment, the machine 500 may operate as a server machine or a client machine in a server-client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. The machine 500 may include, but is not limited to, a server computer, a client computer, a personal computer (PC), a tablet computer, a laptop computer, a netbook, a set-top box (STB), a personal digital assistant (PDA), an entertainment media system, a cellular phone, a smart phone, a mobile device, a wearable device (e.g., a smart watch), a smart home device (e.g., a smart appliance), other smart devices, a network device, a network router, a network switch, a network bridge, or any machine capable of sequentially or otherwise executing instructions 502, which specify actions to be taken by the machine 500. In addition, although a single machine 500 is shown, the term "machine" should also be construed to include a collection of machines that individually or jointly execute instructions 502 to perform any one or more of the methods discussed herein. For example, the machine 500 may include any of the user system 110 or a plurality of server devices that form part of the interactive server system 110. In some examples, the machine 500 may also include a client and server system, in which certain operations of a particular method or algorithm are performed on the server side and certain operations of a particular method or algorithm are performed on the client side.

[0068] Machine 500 may include processor 504, memory 506, and input / output (I / O) components 508, which may be configured to communicate with each other via bus 510. In one example, processor 504 (e.g., a central processing unit (CPU), a reduced instruction set computing (RISC) processor, a complex instruction set computing (CISC) processor, a graphics processing unit (GPU), a digital signal processor (DSP), an application specific integrated circuit (ASIC), a radio frequency integrated circuit (RFIC), other processors, or any other suitable combination) may include processor 512 and processor 514 that execute instructions 502. The term "processor" is intended to include a multi-core processor having two or more independent processors (sometimes referred to as "cores") that can execute instructions simultaneously. Although Figure 5Multiple processors 504 are shown, but machine 500 may include a single processor with a single core, a single processor with multiple cores (eg, a multi-core processor), multiple processors with a single core, multiple processors with multiple cores, or any other combination.

[0069] The memory 506 includes a main memory 516, a static memory 518, and a storage unit 520, all of which can be accessed by the processor 504 via the bus 510. The main memory 516, the static memory 518, and the storage unit 520 store instructions 502 for any one or more of the methods or functions described herein. During execution of the instructions 502 by the machine 500, the instructions 502 may reside, in whole or in part, within the main memory 516, within the static memory 518, within the machine-readable medium 522 within the storage unit 520, within at least one of the processors 504 (e.g., within a cache memory of the processor), or in any other suitable combination.

[0070] I / O components 508 may include a variety of components to receive input, provide output, generate output, send information, exchange information, capture measurements, etc. The specific I / O components 508 included in a particular machine will depend on the type of machine. For example, a portable machine such as a mobile phone may include a touch input device or other such input mechanism, while a headless server machine may not include such a touch input device. It should be understood that I / O components 508 may include Figure 5 , and many other components not shown in the figure. In various examples, the I / O components 508 may include output components 524 and input components 526. The output components 524 may include visual components (e.g., displays such as plasma display panels (PDPs), light emitting diode (LED) displays, liquid crystal displays (LCDs), projectors, or cathode ray tubes (CRTs)), acoustic components (e.g., speakers), tactile components (e.g., vibration motors, resistance mechanisms), other signal generators, etc. The input components 526 may include alphanumeric input components (e.g., keyboards, touch screens configured to receive alphanumeric input, optical keyboards, or other alphanumeric input components), point-based input components (e.g., mice, touch pads, trackballs, joysticks, motion sensors, or other pointing instruments), tactile input components (e.g., physical buttons, touch screens or other tactile input components that provide touch location and force), audio input components (e.g., microphones), and the like.

[0071] A variety of technologies may be used to achieve communication. The I / O components 508 further include a communication component 528 that is operable to couple the machine 500 to the network 108 or device 530 via a corresponding coupling or connection. For example, the communication component 528 may include a network interface component or other suitable device to interface with the network 108. In other examples, the communication component 528 may include a wired communication component, a wireless communication component, a cellular communication component, a near field communication (NFC) component, Components (e.g., low power ), Wi- Components and other communication components that provide communication through other modes. Device 530 can be another machine or any of a variety of peripheral devices (e.g., a peripheral device coupled via USB).

[0072] In addition, the communication component 528 can detect an identifier or include a component operable to detect an identifier. For example, the communication component 528 can include a radio frequency identification (RFID) tag reader component, an NFC smart tag detection component, an optical reader component (e.g., to detect a one-dimensional barcode (e.g., a universal product code (UPC) barcode, a multi-dimensional barcode (e.g., a Quick Response (QR) code), an Aztec code, a Data Matrix, a Dataglyph, etc.) TM , MaxiCode, PDF417, Ultra Code, UCCRSS-2D barcode and other optical codes), or an acoustic detection component (e.g., a microphone to recognize the audio signal of the tag). In addition, various information can be derived via the communication component 528, such as the location of the geographic location via Internet Protocol (IP), the location of the location via Wi- Signal triangulation of location, by detecting the location of NFC beacon signals that may indicate a specific location, etc.

[0073] Various memories (e.g., main memory 516, static memory 518, and memory of processor 504) and storage unit 520 may store one or more sets of instructions and data structures (e.g., software) embodying or used by any one or more of the methods or functions described herein. These instructions (e.g., instructions 502) when executed by processor 504 cause various operations to implement the disclosed examples.

[0074] Instructions 502 may be transmitted or received over network 108 using a transmission medium, via a network interface device (e.g., a network interface component included in communication component 528), and using any of a number of well-known transmission protocols (e.g., Hypertext Transfer Protocol (HTTP)). Similarly, instructions 502 may be transmitted or received via a coupling (e.g., a peer-to-peer coupling) to device 530 using a transmission medium.

[0075] Figure 6 6 is a block diagram 600 illustrating a software architecture 602 that can be installed on any one or more of the devices described herein. The software architecture 602 is supported by hardware such as a machine 604 including a processor 606, a memory 608, and an I / O component 610. In this example, the software architecture 602 can be conceptualized as a stack of layers, where each layer provides specific functionality. The software architecture 602 includes layers such as an operating system 612, a library 614, a framework 616, and an application 618. In operation, the application 618 calls an API call 620 through the software stack and receives a message 622 in response to the API call 620.

[0076] The operating system 612 manages hardware resources and provides public services. The operating system 612 includes, for example, a kernel 624, services 626, and drivers 628. The kernel 624 acts as an abstraction layer between the hardware layer and other software layers. For example, the kernel 624 provides memory management, processor management (e.g., scheduling), component management, networking and security settings, and other functions. Services 626 can provide other public services to other software layers. Drivers 628 are responsible for controlling or interfacing with the underlying hardware. For example, drivers 628 may include display drivers, camera drivers, or low power consumption drives, flash drives, serial communication drives (e.g., USB drives), Wi- drivers, audio drivers, power management drivers, and more.

[0077] The library 614 provides a common low-level infrastructure used by the application 618. The library 614 may include a system library 630 (e.g., a C standard library) that provides functions such as memory allocation functions, string manipulation functions, mathematical functions, etc. In addition, the library 614 may include an API library 632 such as a media library (e.g., a library for supporting the presentation and manipulation of various media formats, such as Moving Picture Experts Group 4 (MPEG4), Advanced Video Coding (H.264 or AVC), Layer 3 Moving Picture Experts Group (MP3), Advanced Audio Coding (AAC), Adaptive Multi-Rate (AMR) audio codec, Joint Photographic Experts Group (JPEG or JPG), or Portable Network Graphics (PNG), a graphics library (e.g., an OpenGL framework for presenting two-dimensional (2D) and three-dimensional (3D) graphics content on a display), a database library (e.g., SQLite that provides various relational database functions), a web library (e.g., WebKit that provides web browsing functions), etc. The library 614 may also include a variety of other libraries 634 to provide many other APIs to the application 618.

[0078] The framework 616 provides a common high-level infrastructure used by the applications 618. For example, the framework 616 provides various graphical user interface (GUI) functions, advanced resource management, and advanced location services. The framework 616 may provide a wide spectrum of other APIs that can be used by the applications 618, some of which may be specific to a particular operating system or platform.

[0079] In one example, applications 618 may include a home application 636, a contacts application 638, a browser application 640, a book reader application 642, a location application 644, a media application 646, a messaging application 648, a game application 650, and other applications such as third-party applications 652. Applications 618 are programs that perform functions defined in the program. Various programming languages ​​can be used to create one or more applications 618 structured in a variety of ways, such as object-oriented programming languages ​​(e.g., Objective-C, Java, or C++) or procedural programming languages ​​(e.g., C or assembly language). In a specific example, third-party applications 652 (e.g., applications created by entities other than the vendor of a particular platform using Android TM or IOS TM Software Development Kit (SDK) can be used to develop applications on mobile operating systems (e.g., IOS TM 、Android TM , Phone or other mobile operating system). In this example, third-party application 652 can call API call 620 provided by operating system 612 to facilitate the functions described herein.

[0080] Example

[0081] Example 1 is a method comprising: establishing, by at least one hardware processor, a link with an access point; initializing, by the at least one hardware processor, a client station time interval and an increment; iteratively adding, by the at least one hardware processor, an increment to the client station time interval until a fixed client station time interval is determined; and causing, by the at least one hardware processor, an outbound keep-alive frame to be sent to the access point in response to the fixed client station time interval having timed out to maintain a connection to the access point.

[0082] In Example 2, the subject matter as described in Example 1 includes: receiving an inbound keep-alive frame from the access point between a previous client station time interval and a client station time interval, wherein the previous client station time interval is equal to the client station time interval minus the increment; determining the fixed client station time interval in response to receiving an inbound keep-alive frame between the previous client station time interval and the client station time interval from the access point; and determining the fixed client station time interval to be the previous client station time interval.

[0083] In Example 3, the subject matter of Examples 1-2 includes: receiving a subsequent inbound keep-alive frame from the access point; and based on receiving a subsequent inbound keep-alive frame from the access point between a previous client station time interval and the client station time interval, confirming that the access point time interval is longer than the previous client station time interval but shorter than the client station time interval.

[0084] In Example 4, the subject matter of Examples 1-3 includes: determining a media access control address of the access point, including: determining a media access control address associated with the inbound keep-alive frame based on receiving the subsequent inbound keep-alive frame from the access point between the previous client station time interval and the client station time interval; and recording the media access control address of the access point.

[0085] In Example 5, the subject matter of Examples 1-4 includes: receiving a Deauth frame from an access point between a previous client station time interval and a client station time interval; determining a reason code associated with the Deauth frame, the reason code indicating a reason for disconnection between the access point and the client station; and simultaneously in response to receiving a Deauth frame from the access point between the previous client station time interval and the client station time interval and determining that the reason for disconnection is related to inactivity, determining a fixed client station time interval.

[0086] In Example 6, the subject matter of Examples 1-5 includes: determining a media access control address of the access point, including: in response to receiving the Deauth frame between the previous client station time interval and the client station time interval, determining the media access control address associated with the Deauth frame; and recording the media access control address of the access point.

[0087] In Example 7, the subject matter of Examples 1-6 includes: causing an outbound keep-alive frame to be sent to the access point after the client station time interval has timed out; receiving a Deauth frame from the access point after causing the outbound keep-alive frame to be sent but before a previous client station time interval has timed out; determining that the access point time interval is shorter than the previous client station time interval based on receiving the Deauth frame from the access point prior to the previous client station time interval; and determining that the fixed client station time interval is the previous client station time interval minus the increment.

[0088] In Example 8, the subject matter of Examples 1-7 includes: determining a media access control address of the access point, including: determining a media access control address associated with the Deauth frame based on receiving the Deauth frame from the access point before the previous client station time interval; and recording the media access control address of the access point.

[0089] In Example 9, the subject matter of Examples 1-8 includes: determining a reason code associated with the Deauth frame, the reason code indicating a reason for a disconnection between the access point and the client station; and determining that the reason for the disconnection is related to inactivity based on the reason code.

[0090] In Example 10, the subject matter of Examples 1-9 includes: determining a media access control address of a current access point; comparing the media access control address of the current access point with a recorded media access control address of the access point; if the media access control address of the current access point is the same as the recorded media access control address of the access point, determining the client station time interval of the current access point as the fixed client station time interval.

[0091] In Example 11, the subject matter of Examples 1-10 includes: causing an outbound keep-alive frame to be sent to the access point after the client station time interval has timed out; receiving an acknowledgment frame from the access point after causing the outbound keep-alive frame to be sent; and determining that a fixed client station time interval remains to be determined.

[0092] Example 12 is a computer device comprising means for implementing any of Examples 1-11.

[0093] Example 13 is a non-transitory computer-readable storage medium comprising instructions that, when executed by a computer, cause the computer to implement any of Examples 1-11.

[0094] Glossary

[0095] An "access point" is an access point that can be distinguished from a new access point. An access point is a networking hardware device that allows wireless devices, such as computers, smartphones, and tablets, to connect to a network using Wi-Fi or other wireless standards. Access points create a wireless local area network (WLAN) by broadcasting a Wi-Fi signal. Nearby devices can detect it and join it.

[0096] "Access point interval" means a predetermined duration set by the manufacturer of an access point. The access point interval of an access point specifies how often the access point initiates keep-alive procedures for devices connected to the network. In other words, the access point will initiate keep-alive procedures in response to the access point interval having expired. The purpose of these keep-alive procedures is to maintain an active and stable connection between the access point and the device.

[0097] An "acknowledgement frame" is a short control frame sent by a receiving device to confirm that it has successfully received a data or management frame. An acknowledgement frame may be referred to as an "ack frame."

[0098] "Active" refers to the state of a device. A device is active when it is currently connected to a network, has established a connection with an access point or another device, and is ready to send or receive data to or from another device. When the state of a device is active, the device can be considered active.

[0099] "Approximate" refers to a value or representation that is close to, but not necessarily equal to, a specific quantity. Approximate values ​​are often used in mathematics, science, and engineering when exact values ​​are difficult or impractical to obtain. They provide a simplified but reasonably accurate estimate of a specific value or result, making analysis and understanding easier.

[0100] "Broadcast" refers to a method of sending data to all devices connected to a network. When a device sends a broadcast message, it is transmitted to every device within the broadcast domain. Typically, broadcasts are used to send information that is relevant or useful to all devices on a network. For example, a router can send a broadcast message to announce its presence on a network.

[0101] "Client stations" are devices that connect to a network, typically through an access point, to communicate and exchange data with other devices within the network. Client stations can include a variety of devices, such as smartphones, laptops, tablets, smart TVs, and Internet of Things (IoT) devices.

[0102] "Client station time interval" refers to a duration that can be dynamically adjusted by a client station to accommodate an access point time interval (e.g., an access point time interval). The client station time interval determines how often a client station initiates a keep-alive procedure with an access point or other device. In other words, a client station will initiate a keep-alive procedure in response to a client station time interval having expired. The purpose of these keep-alive procedures is to maintain an active and stable connection between an access point and a client station.

[0103] "Communication" means the exchange of data or information between devices using wireless signals. Wi-Fi communication enables devices to connect to the internet, share data, and interact with each other without wired connections.

[0104] "Data" refers to digital information transferred between devices. Data may include text, images, audio, video, or other types of content, and may be encoded and divided into packets for efficient transmission and reception.

[0105] "Deauth (deauthentication) frame" refers to a management frame in Wi-Fi communication, specifically defined by the IEEE802.11 standard. Its main function is to terminate an established connection between a client device (such as a smartphone, laptop, or tablet) and an access point (AP) or between two client devices in a network. The Deauth frame serves as a notification that the connection is being terminated and that the receiving device should no longer consider itself connected to the network or authenticated. Deauth frames can be sent by client devices or access points, depending on the circumstances that led to the termination of the connection. Common reasons for sending Deauth frames include expired authentication, inactivity, network capacity limitations, or the user manually disconnecting the network connection.

[0106] "Device" refers to electronic devices that can connect to wireless networks, such as smartphones, laptops, tablets, smart TVs and IoT (Internet of Things) devices. These devices are equipped with Wi-Fi capabilities, enabling them to send and receive data wirelessly.

[0107] "Duration" refers to the predetermined length or period of time that a timer is set to run. Once activated, a timer will count down (or count up) to measure the passage of time, and when the set duration is reached, the timer may trigger an event, alarm, or notification to indicate the end of the allotted time. Duration represents the amount of time that a timer is to measure or monitor before completing its function. "Duration" can also refer to the length or span of time between two specific points or events. It is a measure of the elapsed time between a starting point and an end point, usually expressed in units such as seconds, minutes, hours, or even years.

[0108] "Timeout" refers to the amount of time that has elapsed or completed relative to a specific duration. For example, a time interval has timed out, which means that the entire duration of the time interval has occurred.

[0109] "Expiration" refers to the completion of a specified duration, similar to the concept of time passing. In the context of time interval expiration, it means that the entire duration of the interval has occurred.

[0110] “Fix (Finalize, may also be referred to as “finalize”)” means that the state or status of the client station time interval is finalized. In one example, the fixed client station time interval means a fixed (finalized) client station time interval that determines the client station time interval in response to certain conditions.

[0111] "Finalized" refers to the state or condition of a client station time interval. A client station time interval is finalized if the client station time interval has a fixed (finalized) client station time interval that is close to the access point time interval. A client station time interval may be unfixed (finalized), and when a client station connects to a new access point, the client station time interval needs to be re-determined to approximate the access point time interval associated with the new access point.

[0112] "Finalized Client station time interval" refers to the value of the client station time interval. The finalized (i.e., determined) client station time interval of the client station time interval is an approximation of the access point time interval. In one example, when the finalized client station time interval is less than or equal to an increment shorter than the access point time interval (i.e., access point time interval - increment ≤ finalized client station time interval ≤ access point time interval), the finalized client station time interval is considered to be an approximation of the access point time interval. When a client station connects to a new access point, the finalized client station time interval may be re-determined.

[0113] "Flag" refers to a binary indicator or Boolean variable used to indicate the state, condition, or existence of a particular condition or event in the form of a value, variable, system, or process. A flag acts as a simple flag or switch, typically having two possible values: true (1) or false (0). In one example, a client station time interval has two states: fixed and not fixed. By marking a client station time interval as fixed, it is meant that the flag is used to indicate the final determined state of the client station time interval.

[0114] A "frame" is a structured data unit that is wirelessly transmitted between devices using radio frequency signals, and the frame follows the format defined by the IEEE 802.11 standard. Example frames in Wi-Fi networks include: Deauth frames, acknowledgment frames, null frames, etc.

[0115] A "hardware processor" refers to any circuit that manipulates data values ​​according to control signals (e.g., "commands," "operation codes," "machine code," etc.) and generates corresponding output signals for operating a machine. For example, a processor may be a central processing unit (CPU), a reduced instruction set computing (RISC) processor, a complex instruction set computing (CISC) processor, a graphics processing unit (GPU), a digital signal processor (DSP), an application specific integrated circuit (ASIC), a radio frequency integrated circuit (RFIC), or any combination thereof. A processor may also be a multi-core processor having two or more independent processors (sometimes referred to as "cores") that can execute instructions simultaneously.

[0116] An "inbound keep-alive frame" is a keep-alive frame sent from an access point to a client station. "Inbound" emphasizes the direction of the frame, meaning it originates from the access point and is directed to the client station.

[0117] An "increment" refers to a time value that can be added to a client station time interval to adjust the duration of the client station time interval to gradually approach the access point time interval during an iteration cycle. An increment represents a step or small increase in the time value.

[0118] Initialization is the process of setting initial values ​​for an object, variable, or system before using or manipulating it.

[0119] A "keep alive frame" refers to a frame that is sent to inform a receiving device that a connection is still active, even if there is no data to be transmitted. In one example, a keep alive frame may be a null frame in the IEEE 802.11 Wi-Fi standard, which is designed for purposes such as maintaining a connection or performing power management. In one example, a client station receives a keep alive frame from an access point to ensure that the connection between the client station 104 and the access point remains active and is not disconnected due to inactivity.

[0120] A "link" is a wireless connection established between two devices or between a device and an access point. The link enables data transfer and communication between the connected entities.

[0121] "Media Access Control (MAC) Address" refers to the Media Access Control Address (MAC address) of an access point. A MAC address is a unique identifier assigned to an access point that is used as the network address in communications within a network. Access points and other devices in the network use this MAC address to direct data packets to their intended destination.

[0122] "Media Access Control Address" refers to the Media Access Control Address (MAC address) of an access point. A MAC address is a unique identifier assigned to an access point and is used as the network address for communications within a network. A MAC address is typically represented as a string of six groups of two-digit hexadecimal numbers separated by colons, such as 00:1A:2B:3C:4D:5E. The first three groups of numbers identify the manufacturer of the device, and the last three groups identify the specific device.

[0123] "Multicast" refers to a method of transmitting data to a specific group of devices within a network. In multicast communications, a single sender transmits data to multiple receivers that have expressed an interest in receiving the data.

[0124] A "new access point" refers to an access point that is different from the access point to which the client station initially connects.

[0125] An "outbound keep-alive frame" is a keep-alive frame sent from a client station to an access point. "Outbound" emphasizes the direction of the frame, meaning it originates from the client station and is directed to the access point.

[0126] A "previous client station time interval" refers to an earlier instance of a client station time interval. During an iteration, new instances of client station time intervals may be determined, creating a series of client station time intervals. When discussing a current or ongoing iteration cycle, a previous client station time interval is used to indicate the client station time interval that immediately preceded a new or current instance.

[0127] "Previous iteration cycle" refers to a repetitive process or series of steps that occurs earlier in a method. In the context of an iteration cycle, a series of operations is performed multiple times, with the output or results of one cycle being used as input to the next cycle. When discussing the current or ongoing cycle, the term "previous iteration cycle" is used to refer to the cycle that immediately precedes it.

[0128] "Reason Code" refers to a field within a deauthentication (deauth) frame. The reason code indicates the reason for terminating an established connection between devices in a Wi-Fi network. A reason code is a numeric value defined by the IEEE 802.11 standard that corresponds to a specific reason for disconnecting. Some common reason codes for Deauth frames include: Disassociated due to inactivity.

[0129] Reset is the process of returning a time value or counter to its initial or newly adjusted value, usually to restart a timing mechanism. Resetting a time interval allows a system or process to begin a new cycle or iteration from the beginning of a specified duration. This operation is often used in repetitive or periodic systems and iterative processes.

[0130] The "second access point time interval" refers to a predetermined duration set by the manufacturer of a new access point. The access point interval of an access point determines how often the access point initiates keep-alive procedures for devices connected to the network. In other words, the access point will initiate keep-alive procedures in response to the access point time interval having expired. The purpose of these keep-alive procedures is to maintain an active and stable connection between the access point and the device.

[0131] A "subsequent inbound keep-alive frame" refers to an inbound keep-alive frame sent after an inbound keep-alive frame that was previously sent or sent in a previous iteration cycle.

[0132] A "subsequent outbound keep-alive frame" refers to an outbound keep-alive frame sent after an outbound keep-alive frame that was previously sent or sent in a previous iteration cycle.

[0133] "Time value" refers to a numerical representation or set of values ​​that represents a duration, a specific point in time, or an elapsed period of time. For example, a time value such as 01:23:45 represents a duration of 1 hour, 23 minutes, and 45 seconds. In another example, a time value of 19:28:37 corresponds to a specific point in time of 7:28:37 PM in a 12-hour format.

[0134] "To be determined" refers to the state of a variable (e.g., client station time interval). When the state of a variable is to be determined, it means that the value of the variable is not yet fixed, is still being evaluated, and may change. "To be determined" can be interpreted as the opposite of "fixed", which indicates that the value or outcome of the variable has been determined.

[0135] "Unicast communication" refers to the direct exchange of information between two specific devices on a network. Data packets are transmitted from a single sender to a single receiver, ensuring that the communication is limited to the two participating devices. Unicast communication differs from multicast or broadcast communication because it does not involve sending data to multiple receivers or all devices on the network at the same time.

Claims

1. A method, characterized in that include: establishing, by at least one hardware processor, a link with an access point; initializing, by the at least one hardware processor, a client station time interval and increment; iteratively adding, by the at least one hardware processor, the increment to the client station time interval until a fixed client station time interval is determined; as well as In response to the fixed client station time interval having expired, the at least one hardware processor causes sending of an outbound keep alive frame to the access point to maintain a connection with the access point.

2. The method according to claim 1, characterized in that Iteratively adding, by the at least one hardware processor, the increment to the client station time interval until the fixed client station time interval is determined, comprises: receiving an inbound keep alive frame from the access point between a previous client station time interval and the client station time interval, wherein the previous client station time interval is equal to the client station time interval minus the increment; determining the fixed client station time interval in response to receiving the inbound keep alive frame from the access point between the previous client station time interval and the client station time interval; and The fixed client station time interval is determined as the previous client station time interval.

3. The method according to claim 2, characterized in that include: receiving a subsequent inbound keep-alive frame from the access point; as well as Based on receiving the subsequent inbound keep alive frame from the access point between the previous client station time interval and the client station time interval, confirming that the access point time interval is longer than the previous client station time interval but shorter than the client station time interval.

4. The method according to claim 3, characterized in that Also includes: determining a media access control address of the access point, comprising: determining a media access control address associated with the inbound keep alive frame based on receiving the subsequent inbound keep alive frame from the access point between the previous client station time interval and the client station time interval; The media access control address of the access point is recorded.

5. The method according to claim 1, characterized in that Iteratively adding, by the at least one hardware processor, the increment to the client station time interval until the fixed client station time interval is determined, comprises: receiving a Deauth frame from the access point between a previous client station time interval and the client station time interval; determining a reason code associated with the Deauth frame, the reason code indicating a reason for disconnection between the access point and the client station; and Also in response to receiving a Deauth frame from the access point between the previous client station time interval and the client station time interval and determining that the reason for disconnection is related to inactivity, a fixed client station time interval is determined.

6. The method according to claim 5, characterized in that Also includes: Determining a media access control address of the access point includes: in response to receiving the Deauth frame between the previous client station time interval and the client station time interval, determining a media access control address associated with the Deauth frame; The media access control address of the access point is recorded.

7. The method according to claim 1, characterized in that Iteratively adding, by the at least one hardware processor, the increment to the client station time interval until the fixed client station time interval is determined, comprises: causing an outbound keep alive frame to be sent to the access point after the client station time interval has timed out; receiving a Deauth frame from the access point after causing transmission of the outbound keep-alive frame but before expiration of a previous client station time interval; determining that the access point time interval is shorter than the previous client station time interval based on receiving the Deauth frame from the access point prior to the previous client station time interval; and The fixed client station time interval is determined to be the previous client station time interval minus the increment.

8. The method according to claim 7, characterized in that Also includes: Determining a media access control address of the access point includes: determining a media access control address associated with the Deauth frame based on receiving the Deauth frame from the access point prior to the previous client station time interval; The media access control address of the access point is recorded.

9. The method according to claim 7, characterized in that: include: determining a reason code associated with the Deauth frame, the reason code indicating a reason for disconnection between the access point and the client station; as well as A reason for the disconnection is determined to be related to inactivity based on the reason code.

10. The method according to claim 4, 6 or 8, characterized in that: Also includes: Determine the media access control address of the current access point; Comparing the media access control address of the current access point with the recorded media access control address of the access point; If the media access control address of the current access point is the same as the recorded media access control address of the access point, the client station time interval of the current access point is determined as the fixed client station time interval.

11. The method according to claim 1, characterized in that Iteratively adding, by the at least one hardware processor, the increment to the client station time interval until the fixed client station time interval is determined, comprises: causing an outbound keep-alive frame to be sent to the access point when the client station time interval has timed out; receiving an acknowledgment frame from the access point after causing the outbound keep-alive frame to be sent; and The time interval for determining the fixed client stations is still to be determined.

12. A computing device, characterized in that: include: processor; and a memory storing instructions that, when executed by the processor, configure the apparatus to: establishing, by at least one hardware processor, a link with an access point; initializing, by the at least one hardware processor, a client station time interval and increment; iteratively adding, by the at least one hardware processor, the increment to the client station time interval until a fixed client station time interval is determined; as well as In response to the fixed client station time interval having expired, sending, by the at least one hardware processor, an outbound keep alive frame to the access point to maintain a connection to the access point.

13. The computing device according to claim 12, characterized in that: Iteratively adding, by the at least one hardware processor, the increment to the client station time interval until the fixed client station time interval is determined, comprises: receiving an inbound keep alive frame from the access point between a previous client station time interval and the client station time interval, wherein the previous client station time interval is equal to the client station time interval minus the increment; determining the fixed client station time interval in response to receiving an inbound keep alive frame from the access point between the previous client station time interval and the client station time interval; and The fixed client station time interval is determined as the previous client station time interval.

14. The computing device according to claim 13, characterized in that: The instructions further configure the apparatus to: receiving a subsequent inbound keep-alive frame from the access point; as well as Based on receiving the subsequent inbound keep alive frame from the access point between the previous client station time interval and the client station time interval, it is determined that the access point time interval is longer than the previous client station time interval but shorter than the client station time interval.

15. The computing device according to claim 14, characterized in that: The instructions further configure the apparatus to: determining a media access control address of the access point, comprising: determining a media access control address associated with the inbound keep alive frame based on receiving the subsequent inbound keep alive frame from the access point between the previous client station time interval and the client station time interval; The media access control address of the access point is recorded.

16. The computing device according to claim 12, wherein: Iteratively adding, by the at least one hardware processor, the increment to the client station time interval until the fixed client station time interval is determined, comprises: receiving a Deauth frame from the access point between a previous client station time interval and the client station time interval; determining a reason code associated with the Deauth frame, the reason code indicating a reason for disconnection between the access point and the client station; and A fixed client station time interval is determined concurrently in response to receiving a Deauth frame from the access point between the previous client station time interval and the client station time interval and determining that the reason for the disconnection is related to inactivity.

17. The computing device according to claim 16, wherein: The instructions further configure the apparatus to: Determining a media access control address of the access point includes: in response to receiving a Deauth frame between the previous client station time interval and the client station time interval, determining a media access control address associated with the Deauth frame; The media access control address of the access point is recorded.

18. The computing device according to claim 12, wherein: Iteratively adding, by the at least one hardware processor, the increment to the client station time interval until the fixed client station time interval is determined, comprises: causing, after a time interval of the client station has expired, an outbound keep alive frame to be sent to the access point; receiving a Deauth frame from the access point after causing transmission of the outbound keep-alive frame but before expiration of a previous client station time interval; determining that the access point time interval is shorter than the previous client station time interval based on receiving the Deauth frame from the access point prior to the previous client station time interval; and The fixed client station time interval is determined to be the previous client station time interval minus the increment.

19. The computing device according to claim 18, characterized in that The instructions further configure the apparatus to: Determining a media access control address of the access point includes: determining a media access control address associated with the Deauth frame based on receiving the Deauth frame from the access point prior to the previous client station time interval; The media access control address of the access point is recorded.

20. The computing device according to claim 16, wherein: The instructions further configure the apparatus to: determining a reason code associated with the Deauth frame, the reason code indicating a reason for disconnection between the access point and the client station; and A reason for the disconnection is determined to be related to inactivity based on the reason code.

21. The computing device according to claim 15, 17 or 19, characterized in that: The instructions further configure the apparatus to: Determine the media access control address of the current access point; Comparing the media access control address of the current access point with the recorded media access control address of the access point; If the media access control address of the current access point is the same as the recorded media access control address of the access point, the client station time interval of the current access point is determined as the fixed client station time interval.

22. The computing device according to claim 12, wherein: iteratively adding, by the at least one hardware processor, the increment to the client station time interval until the fixed client station time interval is determined, the instructions further configuring the apparatus to: causing an outbound keep alive frame to be sent to the access point after a client station time interval has expired; receiving an acknowledgment frame from the access point after causing the outbound keep-alive frame to be sent; and Determining the fixed client station time interval remains to be determined.

23. A non-transitory computer-readable storage medium, characterized in that The computer-readable storage medium includes instructions that, when executed by a computer, cause the computer to: establishing, by at least one hardware processor, a link with an access point; initializing, by the at least one hardware processor, a client station time interval and increment; iteratively adding, by the at least one hardware processor, the increment to the client station time interval until a fixed client station time interval is determined; as well as In response to the fixed client station time interval having expired, the at least one hardware processor sends an outbound keep alive frame to the access point to maintain a connection with the access point.

24. The computer-readable storage medium according to claim 23, wherein: Iteratively adding, by the at least one hardware processor, the increment to the client station time interval until the fixed client station interval is determined, comprises: receiving an inbound keep alive frame from the access point between a previous client station time interval and the client station time interval, wherein the previous client station time interval is equal to the client station time interval minus the increment; determining the fixed client station time interval in response to receiving the inbound keep alive frame from the access point between the previous client station time interval and the client station time interval; and The fixed client station time interval is determined as the previous client station time interval.