System and method for improving quality of experience for low latency applications while roaming in wireless network

By employing a hierarchical scheduler in the wireless network to dynamically adjust service rates and priorities, the problems of packet loss and accumulation during client roaming are resolved, improving the user experience of low-latency applications.

CN121463147APending Publication Date: 2026-02-03AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510906174.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2024-07-31
Filing Date
2025-07-02
Publication Date
2026-02-03

AI Technical Summary

Technical Problem

In wireless networks, when client devices roam, existing technologies cannot effectively manage the transmission of data packets, leading to packet loss and traffic accumulation, which affects the user experience of low-latency applications.

Method used

A hierarchical scheduler, including a port scheduler and a client scheduler, is used to dynamically adjust service rates and packet priorities. Data transmission is optimized through the switch's feedback mechanism to achieve seamless packet delivery.

Benefits of technology

By dynamically adjusting service rates and priorities, packet loss is reduced, network utilization is improved, and the user experience of low-latency applications is enhanced.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121463147A_ABST
    Figure CN121463147A_ABST
Patent Text Reader

Abstract

This disclosure describes systems and methods for improving quality of experience for low latency applications while roaming in a wireless network. One or more switches may be coupled to a network to communicate with a plurality of access points. Each access point may be associated with a plurality of client devices. A switch may receive a feedback message from each access point connected to a corresponding port of the switch. The feedback message may include telemetry information regarding each client device connected to each access point. The controller may determine whether to initiate roaming of the client device from one access point connected to one switch to another access point connected to a different switch based at least on the telemetry information. The controller may initiate a connection transfer of a client device from one access point to another access point in response to initiating roaming of the client device.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure generally relates to systems and methods for wireless communication between an access point and a wireless communication device, including, but not limited to, improving the quality of experience of low-latency applications when roaming in a wireless network. Background Technology

[0002] In modern digital environments, an increasing number of devices rely on low-latency applications that require fast and reliable data transmission, such as online gaming, video conferencing, and real-time data analytics. Network infrastructure spanning various sectors, including enterprises, SMEs, retail, education, and homes, utilizes a combination of wired and wireless technologies to meet these needs. Network infrastructure may include switches that facilitate communication and data transmission between network components, while access points provide wireless connectivity to devices. Summary of the Invention

[0003] The technical solution disclosed herein relates to improving the quality of experience for low-latency applications in a wireless network in response to the roaming of client devices (which may also be interchangeably referred to as clients in this disclosure) between access points. Wireless networks support a wide range of applications, from web browsing to intensive real-time communication and entertainment, such as audio / video conferencing and online gaming. These applications require not only efficient data transmission but also rapid delivery of data packets to provide a seamless user experience. Latency-sensitive applications may experience significant user experience degradation due to data transmission delays. Modern wireless networks rely on complex interactions between access points and wireless controllers (WCs) or gateways to deliver seamless connectivity to users. WCs manage client devices, typically moving these devices between access points based on factors such as signal strength and load balancing. However, this client roaming process can introduce technical challenges that can impact network performance and user experience. For example, a major problem may arise when the signal strength between an access point and a client device weakens. While the WC may initiate roaming to different access points with stronger signals, data packets continue to arrive at the initial access point designated for the client device. This can result in a situation where, although the receive rate leaving the client device has decreased significantly, downlink traffic (data flowing from the network to the client) still accumulates at the initial access point.

[0004] During roaming, if another client device experiences improved signal strength near the initial access point, the switch connected to that access point lacks the ability to prioritize its traffic over data packets already accumulated at the departing client device. This is because the switch's functionality is focused on wired network management and cannot dynamically adjust traffic priorities based on real-time wireless signal fluctuations. As a result, the network may miss opportunities to improve data delivery for client devices with better reception conditions. In some cases, when WC initiation leads to a handover where a client device connects to a different access point with a stronger signal, the status of packets waiting at the departing access point remains uncertain. Depending on the protocol used (e.g., TCP or UDP), these packets may be purged or dropped. Purged TCP packets may trigger retransmissions by the sender (or server), resulting in wasted bandwidth and increased latency. Lost UDP packets cannot be recovered or retransmitted, leading to poor quality of experience, such as choppy video playback or audio malfunctions. These challenges can be significant for low-latency applications that use both TCP and UDP protocols for data transmission, making them vulnerable to packet loss and retransmissions during roaming.

[0005] The technical solutions disclosed herein overcome the challenges of packet loss and traffic buildup at the access point during client roaming, particularly for low-latency applications, by implementing a hierarchical scheduler within each switch interface connected to the access point. The hierarchical scheduler may include port schedulers and client schedulers. For example, the hierarchical scheduler may include a port scheduler (or port-level scheduler) for ports connected to the access point. A port may refer to a logical connection point or physical interface that allows a device to connect to the switch. The port scheduler aggregates downlink traffic destined for client devices associated with the connected access point. Each client device may be associated with a client scheduler, which manages the downlink traffic for each individual client device. The client scheduler prioritizes packets based on various priority levels and stores the prioritized packets in a queue in the switch's packet buffer.

[0006] Switches can be equipped with sufficient packet buffer memory to temporarily store packets, especially when client devices process data at a rate slower than the rate of incoming network traffic. A hierarchical scheduler can dynamically adjust the traffic rates of individual client devices based on signal strength reported by the access point. For example, the switch can use feedback messages (e.g., periodically sent by the access point) to adjust the traffic rates of client devices based on signal strength. If a client device experiences poor signal strength, the switch can reduce the traffic rate to that client device, resulting in less traffic buildup at the access point. However, if another client device experiences a strong signal, the switch can increase the traffic rate to the maximum allowed by the network for that client device, providing timely delivery to the access point. This rate shaping adjusts the traffic so that the access point receives traffic at a rate it can transmit efficiently, minimizing buildup in its local memory. These adjustments deliver traffic more efficiently, enhancing the use of air media. If feedback messages are generated and processed by hardware at both the access point and the switch, the rate of adaptation to changing conditions can be the fastest. The dynamic adjustment process effectively addresses network problems, achieving higher network utilization and a better user experience through the higher rate of adaptation in the feedback mechanism.

[0007] During client device roaming, the client scheduler associated with the departing access point (e.g., connected to a switch) identifies packets belonging to the roaming client device and forwards these packets to the corresponding client scheduler associated with the new access point (e.g., connected to a different switch). The switch can redirect any residual packets accumulated for roaming clients at the departing access point to the new access point, minimizing packet loss. This packet forwarding can occur through the same or different switches within the network. One or more access points connected to different switches can be controlled by one or more controllers on the network. If the new access point is directly connected to the old access point (or the departing access point), packet redirection may involve associating client queues to different ports within the same switch. If the new access point is connected to the same switch, packet redirection may involve associating client queues to different ports within the same switch. However, if the new access point is connected to a switch in the stack or on a local area network (LAN), packet redirection may involve tunneling packets. This redirection of client packets after the client has roamed enables higher network utilization (including WAN bandwidth) and a better user experience. For packet movement, switches and access points can use the same client identification method, such as MAC address. By implementing a hierarchical scheduler with client roaming support, the technical solution can minimize packet loss by managing queues and facilitating seamless packet delivery during roaming.

[0008] At least one aspect of the technical solution relates to a method for improving the quality of experience of low-latency applications while roaming in a wireless network. The method may include receiving a feedback message from each of a plurality of access points by a controller of a switch. Each access point may be connected to a corresponding port among a plurality of ports of the switch. The feedback message may contain telemetry information about each of one or more clients connected to each access point. The method may include the controller determining, at least based on the telemetry information, to initiate roaming by one of the one or more clients from a first access point to a second access point among the plurality of access points. The method may include the controller initiating a connection between the client and the first access point to the second access point. The connection may include transmitting data stored on the client at the first access point to the second access point.

[0009] The telemetry data in the feedback message may include at least one of Radio Signal Strength Indicator (RSSI) or Signal-to-Noise Ratio (SNR). In some embodiments, the method may further include the controller initiating the roaming of the client in response to the RSSI or SNR falling below a threshold. In some embodiments, the method may further include initiating the transmission by communicating one or more instructions to one or more of the client, the first access point, or the second access point. In some embodiments, the method may further include the switch transmitting packets stored by the switch at a first port buffer of the first port of the client associated with the first access point to a second port buffer of the switch or a second switch assigned to the second access point. The transmission of the connection may include the transmission of the client's credentials. In some embodiments, the method may further include the switch adjusting the service rate at least based on the telemetry information.

[0010] Another aspect of the technical solution relates to a system for improving the quality of experience of low-latency applications while roaming in a wireless network. The system may include a switch communicating with multiple access points. Each of the multiple access points may have connections to one or more clients. The system may include a controller for the switch, the controller being configured to: receive a feedback message from each of the multiple access points, wherein each access point is connected to a corresponding port among a plurality of ports of the switch, the feedback message containing telemetry information about each of the one or more clients connected to each access point; determine, at least based on the telemetry information, the initiation of roaming by one of the one or more clients from a first access point to a second access point among the multiple access points; and initiation of a transmission from the client to the second access point connecting the first access point to the client. The transmission may include transmitting data stored on the first access point of the client to the second access point. The telemetry data in the feedback message may include at least one of a Radio Signal Strength Indicator (RSSI) or a Signal-to-Noise Ratio (SNR).

[0011] In some embodiments, the controller may be further configured to initiate the roaming of the client in response to either the RSSI or the signal-to-noise ratio falling below a threshold. In some embodiments, the controller may be further configured to initiate the transmission by communicating one or more instructions to one or more of the client, the first access point, or the second access point. In some embodiments, the switch may be further configured to transmit packets stored by the switch at a first port buffer of the first port of the client associated with the first access point to a second port buffer of the switch or a second switch assigned to the second access point. The transmission of the connection may include the transmission of the client's credentials. In some embodiments, the controller may be further configured to adjust the service rate at least based on the telemetry information.

[0012] Another aspect of the technical solution relates to a system for improving the quality of experience of low-latency applications while roaming in a wireless network. The system may include one or more switches coupled to the network to communicate with a plurality of access points, each of which may be associated with a plurality of clients. Each of the one or more switches may include a plurality of ports, and each of the plurality of ports may be connected to an access point among the plurality of access points. Each of the plurality of ports may include a port scheduler to aggregate packets received by the switch from the network for the plurality of clients associated with the access point. The switch may include a client scheduler for each of the plurality of clients associated with the access point at each port. Each client scheduler may schedule the packets aggregated by the port scheduler for the clients among the plurality of clients of the access point based at least on one or more priority levels. In some embodiments, each client scheduler may be configured to adjust the rate at which the scheduled packets are transmitted to the clients among the plurality of clients based at least on the one or more priority levels and telemetry data from one or more feedback messages received from the access point.

[0013] Each port scheduler may be further configured to select each client scheduler based at least on selection from one or more scheduling algorithms. In some embodiments, the one or more switches may be further configured to store aggregated packets in a packet buffer, wherein each client scheduler may store one or more scheduled packets from the packet buffer in a priority queue for storing packets having priority levels among the one or more priority levels. In some embodiments, the one or more switches may be further configured to receive the one or more feedback messages from each access point to which the switch is connected, wherein the one or more telemetry data in the one or more feedback messages may include at least one of Radio Signal Strength Indicator (RSSI) or Signal-to-Noise Ratio. In some embodiments, the one or more feedback messages may identify the client using the client's Machine Access Control (MAC) address, identify the MAC address of the access point as the source address, and identify the MAC address of the switch among the one or more switches as the destination address.

[0014] In some embodiments, the switch may be further configured, via one of the port scheduler or the client scheduler, to reduce the rate at which scheduled packets are transmitted to the client in response to the radio signal strength indicator or signal-to-noise ratio (SNR) of the client's connection to the access point falling below a threshold. In some embodiments, the switch may be further configured, via one of the port scheduler or the client scheduler, to prioritize packets from one or more clients whose radio signal strength indicator or SNR is above a threshold at the access point. In some embodiments, one of the one or more switches may be further configured, in response to the client switching from the access point to a second access point connected at a second port to one or more second queues of a second client scheduler connected to the second access point at the second port, to transmit packets from one or more queues of the client to one or more second queues of a second client scheduler connected to the second access point at the second port. Attached Figure Description

[0015] The foregoing and other objects, aspects, features and advantages of this disclosure will become more clearly and better understood through the following description taken in conjunction with the accompanying drawings, wherein:

[0016] Figure 1A This illustrates a general schematic block diagram of a communication system according to one or more embodiments;

[0017] Figure 1B Description according to one or more embodiments Figure 1A A general schematic block diagram of a part of the communication system described herein;

[0018] Figure 1C Description of the relationship according to one or more embodiments Figure 1A A general schematic block diagram of the application for communication of the cloud infrastructure of the communication system described herein;

[0019] Figure 1D Description according to one or more embodiments Figure 1A A general schematic block diagram of the application program of the communication system described herein;

[0020] Figure 1E Description according to one or more embodiments Figure 1A A general schematic block diagram of the application program of the communication system described herein;

[0021] Figure 1F Description according to one or more embodiments Figure 1A The schematic block diagram of the communication system described herein includes a server configured for augmented reality / virtual reality and / or metaverse applications;

[0022] Figure 2A A block diagram illustrating an embodiment of a computing device according to one or more embodiments;

[0023] Figure 2B A block diagram illustrating a computing environment including a client device communicating with a cloud service provider, according to one or more embodiments;

[0024] Figure 3 This diagram illustrates a block diagram of an example system for improving the quality of experience of low-latency applications while roaming in a wireless network, according to one or more embodiments; and

[0025] Figure 4 Example flowchart illustrating a method for improving the quality of experience of low-latency applications while roaming in a wireless network, according to one or more embodiments. Detailed Implementation

[0026] The following disclosure provides numerous different embodiments or instances for implementing various features of the provided subject matter. Specific examples of components and arrangements are described below to simplify this disclosure. Of course, these are merely examples and are not intended to be limiting. For example, in the following description, a first feature communicating or communicatively coupled to a second feature may include embodiments in which the first feature directly communicates with or is directly coupled to the second feature, and may also include embodiments in which an additional feature may be located between the first and second features, such that the first feature indirectly communicates with or is indirectly coupled to the second feature. Furthermore, reference numerals and / or letters may be repeated in various instances of this disclosure. Such repetition is for simplicity and clarity and does not in itself indicate a relationship between the various embodiments and / or configurations discussed.

[0027] The following IEEE standards (including any draft versions thereof) are hereby incorporated herein by reference in their entirety and are part of this disclosure for all purposes: IEEE 802.11 TM IEEE 802.14 TM IEEE P802.3 TM and IEEE Ethernet standard systems, including but not limited to LRM, VSR, SR, MR, LR, ZR, and KR. Although this disclosure may refer to aspects of these standards, it is in no way limited to these standards.

[0028] In some embodiments, devices provided by an ISP and customer-owned AR / VR devices, mobile phones, OTT devices, and cloud gaming clients are configured for low-latency use. Some embodiments of the systems and methods disclosed herein provide real-time or near-real-time systems for monitoring end-to-end latency. In some applications, latency monitoring is performed using a Precise Time Protocol (PTP) synchronization protocol to synchronize timestamps with applications at intermediate nodes and terminal devices. In some embodiments, end-to-end latency monitoring takes into account the latency of all devices throughout the entire end-to-end process, thereby enabling the identification of sources of significant latency.

[0029] In some embodiments, the system and method synchronize time references across all nodes and end-user devices by timestamping low-latency data packets at each node. Latency at each node is determined by the application at that node. The latency determination is reported to a server communicating with the application. The system and method allow the communication system to distinguish whether the latency originates from a home network, an ISP, or a cloud server.

[0030] In some embodiments, the low-latency application server extension is integrated into a modem or router provided by an ISP. In some embodiments, the server extension has the ability to filter all necessary information and transmit it to the ISP's cloud server or share open data with application developers. In some embodiments, the server extension can store or receive information about a customer's low-latency plan subscription and can track low-latency usage within the home.

[0031] In some embodiments, a server extension can refer to a software component or module that extends the functionality of a server application (e.g., a low-latency application). Server extensions can be used in various server environments, such as web servers, application servers, ISP servers, and database servers, to enhance their capabilities or add specific features tailored to the needs of users or applications, and can be installed using extension files. Extensions can be installed on any of the devices discussed herein. In some embodiments, extensions are provided on ISP-controlled servers in the cloud, ISP-controlled modems or access points, third-party Wi-Fi access points, third-party modems, or low-latency devices provided by ISPs.

[0032] In some embodiments, the server extension allows users to select device applications for different latency handling scenarios. A server within a residence can use classifiers and queues to reduce latency for low-latency devices. In some embodiments, the server may be part of a router, set-top box, hub, etc. In some embodiments, the server extension supports end-to-end use by multiple parties (e.g., cloud managers, ISPs, application developers, and silicon vendors).

[0033] Regarding latency, generally, in some embodiments, latency refers to the amount of time a system, application, or device takes to process a request and respond to it. Regarding low latency, in some embodiments, low latency refers to this amount of time being within a threshold, performance level, user experience level, or application or usage requirement. Application thresholds, performance levels, user experience levels, or requirements can vary based on context, such as the type of application and / or use case and the system, network, and computing environment in which such use cases and / or applications operate or are performed. From a computing environment perspective, low latency refers to the ability of a computing system or network to provide a response to a context or use case with minimal or no unacceptable latency. System criteria and application parameters can influence the low latency threshold. The threshold can be fixed or variable (e.g., depending on conditions or actual needs or requirements at a particular time). Regarding low-latency networks and systems in the context of networks and network communications, low latency describes computer networks, systems, and environments designed, configured, and / or implemented to support applications, network services, and processing operations to reduce or improve latency or meet low latency thresholds. End-to-end latency refers to the latency between two points in a network or communication system. These two points can be a data source and a data consumer, or in some embodiments, an intermediate point between the data source and the data consumer.

[0034] In some embodiments, a low-latency device refers to any hardware, device component, or system that has low-latency considerations or requirements. For example, a low-latency device may be a telecommunications, remote control system, gaming, audio processing, financial transaction, augmented reality, and / or virtual reality device in which latency can affect user experience or system performance. In some embodiments, there may be several levels of low-latency requirements, with one low-latency device having more stringent requirements than another. In some embodiments, a low-latency path refers to a path used for low-latency operation. In some embodiments, latency data refers to any indication of latency associated with communication or configuration data used for low-latency operation or control. In some embodiments, a low-latency application refers to the use or performance of low-latency operations. Low-latency devices or software programs can be used to perform low-latency operations (e.g., video conferencing, cloud gaming, augmented reality / virtual reality (AR / VR) applications, and metaverse applications).

[0035] Some embodiments relate to a system including a first device and an application. The application operates on the first device and is configured to append timestamps to first packets received by the first device. The timestamps indicate a first time the first device receives the first packet and a second time the first device sends the first packet. In some embodiments, appending means adding or attaching information to a data structure (e.g., a packet).

[0036] In some embodiments, the application is configured to use timestamps to determine latency information associated with communication through the first device. The timestamps include a first timestamp at a first time and a second timestamp at a second time. In some embodiments, the application is configured to provide a second packet containing latency information and to transmit the second packet to a server remote from the first device via a virtual communication link. In some embodiments, the first timestamp is an ingress timestamp, and the second timestamp is an egress timestamp.

[0037] In some embodiments, the timestamp is provided as part of a precise time protocol. In some embodiments, the first packet is used in low-latency operation. In some embodiments, the timestamp is derived from a satellite time source. In some embodiments, the latency information includes a history of the timestamp. In some embodiments, the first device is a user device, cloud infrastructure, Internet service provider infrastructure, set-top box, cable modem, or wireless router.

[0038] Some embodiments relate to a non-transitory computer-readable medium storing instructions thereon that, when executed by a processor, cause the processor to receive a first packet from a first node. The first packet contains latency information associated with a second packet provided to the first node for a low-latency application. If the latency information indicates that a latency threshold for the low-latency application has not yet been met, the instructions further cause the processor to provide a third packet to the first node or other nodes to increase the priority of the low-latency application packet. The first node may be part of a communication system comprising a cable, fiber optic, or wireless network. Other nodes and the first node are in a path associated with the second packet provided to the first node for the low-latency application.

[0039] In some embodiments, the processor is located on a server located remotely from the first node. In some embodiments, the server communicates with the Internet Service Provider Infrastructure (ISPI), and a third packet is provided to the ISPI. In some embodiments, the third packet is provided to the ISPI, a set-top box, a cable modem, or a wireless router.

[0040] In some embodiments, if the latency information indicates that the latency threshold for the low-latency application has been met and additional bandwidth is available, then the instruction causes the processor to provide a fourth packet or data unit (e.g., a network layer packet, unit, frame, etc. used in data transmission) to the first node or other nodes to reduce the priority of the packet used for the low-latency application.

[0041] In some embodiments, the latency information includes a user identifier.

[0042] Some embodiments relate to a method for providing low-latency services. The method includes providing a first timestamp to a first packet provided to a first device. The first packet can be used by a low-latency device or for low-latency operation. The method further includes providing a second packet containing latency information to a server remotely connected to the first device via a virtual communication link.

[0043] In some embodiments, the method further includes providing a second timestamp to a first packet provided to a first device. In some embodiments, the first timestamp is an ingress timestamp and the second timestamp is an egress timestamp. In some embodiments, the first device includes an application configured to append the first timestamp to the first packet.

[0044] Some embodiments relate to a server. The server includes a first application configured to monitor end-to-end latency of a network. The network includes devices. The application is configured to receive latency information from at least one of the devices. The latency information includes timestamps or time period data of packets used for transmission across devices or links. Monitoring refers to the act of observing, checking, and / or recording performance, and typically occurs over a period of time.

[0045] A non-transitory computer-readable medium storing instructions that, when executed by a processor, cause the processor to receive a first packet from a first node. The first packet contains latency information associated with a second packet provided to the first node for a low-latency application. The instructions also cause the processor to provide a subscription offer in response to the latency information. The first node is part of a communication system including a cable, fiber optic, or wireless network. Other nodes and the first node are in a path associated with the second packet provided to the first node for a low-latency application.

[0046] In some embodiments, the first device is a set-top box, cable modem, or wireless router. In some embodiments, device may refer to any device, system, or component used to perform operations. Low-latency device may refer to any device capable of performing low-latency operations. In some embodiments, low-latency operation refers to operations where higher-than-low-latency operations can affect the performance level, user experience level, or requirements of an application or use. In some embodiments, packet refers to a unit of data transmitted over a network and includes, for example, cells, frames, and network layer packets. Packets may include a header and a payload. In some embodiments, timestamps and latency information may be appended to packets. In some embodiments, classify may refer to any operation used to determine classification, grouping, or arrangement. For example, in some embodiments, packets may be classified for use with low-latency devices or applications by examining addresses, appended data, their data type, or other information. In some embodiments, bandwidth may refer to the amount of capacity used for communication. In some embodiments, priority refers to rank, hierarchical order, level, or other classification. For example, in some embodiments, packets may be ordered for transmission based on priorities associated with latency requirements. In some embodiments, cable, fiber optic, or wireless network refers to any network that uses one or more of fiber optic cables, coaxial cables, Ethernet cables, other wires, or wireless media.

[0047] For the purpose of reading the descriptions of the various embodiments below, the following descriptions of the sections of the specification and their corresponding contents may be helpful:

[0048] Section A describes a communication system that can be used to practice the embodiments described herein.

[0049] Section B describes low-latency applications that can be used to practice the embodiments described herein.

[0050] Section C describes embodiments of the network and computing environments that can be used to practice the embodiments described herein.

[0051] Section D describes embodiments of systems and methods for improving the quality of experience of low-latency applications when roaming in a wireless network.

[0052] A. Communication system

[0053] Network latency can significantly impact internet connectivity, user experience, and the performance of various online applications and services. Some embodiments inform ISPs to address end-to-end latency issues through network optimization, infrastructure upgrades, and efficient routing to ensure a reliable and responsive internet experience for their customers. In some embodiments, tools are provided that allow ISP cloud servers to collect and analyze data and to reconfigure ISP-provided devices, such as cable modems, GPON modems, or set-top boxes. In some embodiments, systems and methods allow multiple parties (e.g., more than one ISP, cloud service provider, public switch operator, and application developer) to address low-latency usage, including but not limited to video conferencing, augmented reality (AR) / virtual reality (VR), and metaverse end-to-end usage. In some embodiments, systems and methods allow multiple parties to collaborate and work together to address latency issues. In some embodiments, systems and methods can be used with Wi-Fi networks, Ethernet networks, modems, access networks, backbone networks, IXPs, and cloud infrastructure, and allow multiple teams to work together to optimize latency across various media.

[0054] In some embodiments, a latency monitor measures and reports latency for each link, device, and end application. The reports are provided to path controllers, such as ISPs, application developers, and end users, enabling action to be taken if low-latency requirements are not met. In some embodiments, the system and method provide seamless latency monitoring, analysis, and optimization. Analysis of latency measurements and reports allows for real-time identification of latency contributors and optimization by mapping services requiring low latency to low-latency queues or paths. In some embodiments, devices in the path have applications (e.g., software) for performing monitoring, analysis, and optimization. Analysis of latency measurements and reports allows control devices to appropriately provide low-latency services to low-latency queues or paths. The application may communicate with a latency server (e.g., a server for the application) that coordinates operations and accumulates data based on monitoring, analysis, and optimization actions. An application (application / app) can refer to a software program or module configured to perform a specific function or task on an electronic device.

[0055] refer to Figure 1AThe communication system 100 includes a network 1002A for residences 1016A and 1018A, a network 1002B for residences 1016B and 1018B, cloud infrastructure 1004, and a BQUICK_TOP server 1005. The communication system 100 is advantageously configured such that information is provided to the ISP to address latency issues through network optimization, infrastructure upgrades, service upgrades, and / or efficient routing, ensuring a reliable and responsive internet experience for customers on networks 1002A and 1002B. In some embodiments, the BQUICK_TOP server 1005 is configured to receive information and address latency issues. In some embodiments, the BQUICK_TOP server 1005 communicates with the cloud infrastructure 1004 and networks 1002A and B (residences 1016A to B and 1018A to B) (e.g., via direct or virtual connections) to share information, reports, commands, and other data. BQUICK_TOP servers 1005, infrastructure 1004, and residential units 1016A to B and 1018A to B can use any form of communication media, network, protocol, etc. to transmit data and information.

[0056] In some embodiments, cloud infrastructure 1004 includes a collection of hardware, software, networking, and other resources that enable the delivery of cloud computing services over the Internet. In some embodiments, cloud infrastructure 1004 includes physical servers, storage devices, networking equipment, and other hardware components hosted in data centers spread across multiple geographically distributed locations. In some embodiments, the data centers are equipped with high-performance servers, storage arrays, and networking devices to support the computing needs of cloud services. In some embodiments, cloud infrastructure 1004 is configured to provide high-speed, redundant network links, routers, switches, and content delivery networks (CDNs) for delivering low-latency, high-bandwidth content to users. In some embodiments, cloud infrastructure 1004 includes block storage devices (e.g., Amazon EBS, Azure disk storage), object storage devices (e.g., Amazon S3, Google Cloud Storage), and file storage devices (e.g., Amazon EFS, Azure Files).

[0057] Residences 1016A and 1018A may include networks associated with a first ISP, and residences 1016B and 1018B may include networks associated with the same ISP or a second ISP. In some embodiments, the networks for residences 1016A and 1018A, and residences 1016B and 1018B, are part of a Broadband Access Server (BAS) network. Network 1002A includes infrastructure 1006A, headend 1008A, BQUICK ISP_A server 1012A, splitter 1014A, equipment for residence 1016A, and equipment for residence 1018A. Equipment for residence 1018A includes an Optical Network Unit (ONU) 1020, a user equipment 1022, and a television 1024. In some embodiments, the modem or optical network unit 1020 may be a fiber optic router, switch, gateway, etc., and has Wi-Fi capability for the Wi-Fi network associated with residence 1018A. In some embodiments, the optical network unit 1020 is a GPON modem or an optical network terminal (ONT). GPON is a technology that allows high-speed Internet access via fiber optic cables. The optical network unit 1020 converts optical signals transmitted via fiber optic cables into electrical and / or radio signals that can be used by devices in the residence 1018A. Although the system 100 is shown communicating via coaxial and fiber optic cables, terrestrial wireless and satellite communications may be used in the system 100. The optical network unit 1020 is typically provided by an optical network operator (ISP-A) and may be referred to as an optical network terminal. The BQUICK_TOP server 1005 and the BQUICKISP_A server 1012A may be Broadcom analytics systems (BAS servers) that collect and analyze data from various devices, such as modems, set-top boxes, and other devices.

[0058] User device 1022 can be a smartphone, AR / VR device, tablet computer, laptop computer, smartwatch, sports equipment, smart appliance, camera, headphones, automobile, or other computing device. Residence 1016A may have similar devices to residence 1018A. Television 1024 and user device 1022 communicate with optical network unit 1020 via a wireless network or wired connection. In some embodiments, optical network unit 1020 may include an Ethernet router that includes wired connections to user device 1022, wireless modem, and television 1024.

[0059] Headend 1008A includes routers, switches, servers, and / or other infrastructure for communication between ISP infrastructure 1006A and cloud infrastructure 1004. ISP infrastructure 1006A includes routers, switches, servers, and / or other infrastructure for communication between headend 1008A and splitter 1014A. Splitter 1014A communicates via fiber optic cable between infrastructure 1006A and residences 1016A and 1018A. BQUICK ISP_A1012A and BQUICK_TOP server 1005 communicate with server 1012, infrastructure 1006A, headend 1008A, and residences 1016A and 1018A via direct or indirect communication (e.g., via the Internet).

[0060] In some embodiments, splitter 1014A is a fiber optic splitter. Splitter 1014A can be used in a fiber optic network to split an incoming optical signal into multiple separate signals for residential 1016A and 1018A, and to unify the signal into one or more signals for infrastructure 1006A. Splitter 1014A can be configured for a passive optical network (PON) architecture. In some embodiments, bidirectional communication occurs across splitter 1014A. In some embodiments, splitter 1014A is a conductor cable type splitter (e.g., for coaxial cable rather than optical fiber). In some embodiments, splitter 1014A includes repeaters, amplifiers, signal conditioners, etc.

[0061] BQUICK ISP_A server 1012A is a computing device, such as a machine equipped with one or more processors, memory, and storage drives. In some embodiments, BQUICK ISP_A server 1012A delivers various services to ISP customers (e.g., residences 1016A and 1018A). BQUICK_TOP server 1005 is configured as a central hub responsible for managing its subscribers and routing Internet traffic. BQUICK ISP_A server 1012A handles requests from users, such as accessing websites, sending emails, streaming content, and downloading files. BQUICK ISP_A server 1012A manages network protocols, assigns IP addresses, and facilitates communication between different devices on the Internet. BQUICK ISP_A server 1012A includes an operating system (such as Linux or Windows Server) and networking software (e.g., routing protocols (e.g., BGP, OSPF), a DNS (Domain Name System) server, a Dynamic Host Configuration Protocol (DHCP) server for IP address allocation, and firewall / security software to protect system 100 from network threats). The BQUICK ISP_A server 1012A employs service shaping and Quality of Service (QoS) mechanisms to prioritize and optimize Internet services, thereby ensuring a smooth and consistent user experience for all subscribers. These operations may involve managing bandwidth allocation, prioritizing certain types of services (e.g., VoIP or video streaming), and mitigating network congestion during peak usage periods, and may be performed in response to information from server 1012. In some embodiments, the BQUICK ISP_A server 1012A uses monitoring tools or applications to continuously analyze service data to detect anomalies, resolve network problems, and ensure compliance with Service Level Agreements (SLAs) and regulatory requirements.

[0062] BQUICK_TOP server 1005 is a computing device similar to and configured to communicate with servers 1012A and 1012B. In some embodiments, BQUICK_TOP server 1005 includes software advantageously configured to address latency issues through network optimization, infrastructure upgrades, and efficient routing to ensure a reliable and responsive Internet experience for its customers. In some embodiments, BQUICK_TOP server 1005 may receive logs of network activity from servers 1012A and 1012B, including but not limited to business patterns, usage statistics, and security events. In some embodiments, BQUICK_TOP server 1005 employs monitoring tools to continuously analyze business data to detect anomalies, resolve network problems, and ensure compliance with Service Level Agreements (SLAs) and regulatory requirements. In some embodiments, BQUICK_TOP server 1005 is a platform configured to perform real-time latency monitoring, real-time latency analysis, and real-time latency optimization. In some embodiments, latency optimization is performed to provide reports indicating latency issues. In some embodiments, the BQUICK_TOP server 1005 can configure paths in networks 1002A and 1002B and control devices in networks 1002A and 1002B to meet low latency requirements.

[0063] The BQUICK_TOP server 1005 and BQUICKISP_B server 1012B are similar to the BQUICKISP_A server 1012A and can be configured to operate with residences 1016B and 1018B. Residences 1016A, 1018A, 1016B, and 1018B are similar to each other and may contain similar devices. Residence 1018B includes a cable modem 1030B, a set-top box 1036B, a game controller 1038, a television 1034, and a user device 1032. User device 1032 is similar to user device 1022. Headend 1008B is similar to headend 1008A, and ISP infrastructure 1006B is similar to ISP infrastructure 1006A. Televisions 1024 and 1034 are monitors, smart TVs, or other audio / video equipment. In some embodiments, networks 1002A and 1002B may include cameras, security devices, fire and safety equipment, smart appliances, etc., that communicate with infrastructures 1006A and 1006B. In some embodiments, ISP infrastructures 1006A and 1006B may each include fiber optic cables, coaxial cables, remote nodes, splitters, and other equipment for cable customers. The equipment may include amplifiers, remote physical devices or layers, and remote media access control devices or layers. Intermediate nodes in ISP infrastructures 1006A and 1006B can process data packets and monitor latency and traffic at various points in the network. In some embodiments, BQUICK_TOP server 1005, BQUICKISP_B server 1012B, and BQUICKISP_A server 1012A are controlled by an ISP (e.g., a corresponding ISP).

[0064] In some embodiments, ISP infrastructure 1006B is coupled to residences 1016B and 1018B via coaxial cable. Cable modem 1030B is a device configured to connect devices in residence 1018B to ISP infrastructure 1006B. In some embodiments, cable modem 1030 includes a computer, router, gateway, or other communication device. Modem 1030 may be configured to provide a wireless network for communicating with devices in residence 1018B. In some embodiments, repeaters, amplifiers, signal conditioners, etc., may be provided on the cable associated with modem 1030. In some embodiments, cable modem refers to any device used for communication across a cable. Optical network unit 1020 and modem 1030 provide data connectivity to the ISP data pipeline via fiber optic cable or cable. For example, all devices in the home can connect to the modem via Wi-Fi or Ethernet for internet connectivity. Each node in the home (e.g., router, repeater, modem, Wi-Fi access point) can introduce latency. In some embodiments, the ONU 1020 and modem 1030 can be any device in a home or business that connects a networked device to an ISP via a coaxial cable, fiber optic cable, or digital subscriber line (DSL) or cell connection (e.g., via a tower (e.g., a 5G, LTE modem)) through an Internet data pipe.

[0065] Set-top box 1036 is configured to receive and decode digital television, movie, streaming media, or other video signals for viewing on television 1034. Set-top box 1036 may be configured for gaming and can communicate with game controller 1038. Set-top box 1036 may also be configured to provide internet access, shopping services, home automation, audio features, screen mirroring, etc. In some embodiments, set-top box 1036 includes one or more processors, memory, a dedicated graphics processing unit (GPU), and / or storage capacity for storing games, applications (apps), latency data, and recorded content. A set-top box is any device connected to a television or monitor that allows a user to receive and decode video signals. In some embodiments, the set-top box may serve as an interface between a television and various broadcast media sources, such as cable television, satellite, or internet-based streaming services. Dashed lines in the figures may represent virtual connections, and solid lines may represent physical connections (e.g., wires or fiber optic cables).

[0066] Cloud infrastructure 1004, headends 1008A and 1008B communicate virtually or directly with the Internet 1009. Headends 1008A and 1008B may be associated with buildings 111A and 111B, respectively. In some embodiments, communication system 100 is typically an end-to-end combination of networking elements used to connect services from a home or business to the Internet 1009 (e.g., the public Internet). In some embodiments, cloud infrastructure 1004 is a group of multiple servers, switches, and storage units. ISPs may have a data center / cloud server co-located with headends 1008A and 1008B, or a pool of dedicated links from headends 1008A and 1008B to cloud infrastructure 1004 and headend connections to the Internet 1009.

[0067] Although cloud infrastructure 1004 is presented as a single block, cloud servers and data servers may co-locate with ISP headends 1008A and / or 1008B. Cloud servers may be located at third-party private facilities, and the ISP may have a dedicated physical link or a link via the Internet 1009. Depending on congestion and server processing capacity, cloud infrastructure 1004 may be a source of latency. In some embodiments, cloud server processing elements may be upgraded to support latency monitoring applications (e.g., BQUICK applications) or configurable devices to support low-latency services. Headends 1008A and 1008B may be central facilities (e.g., central offices). In some embodiments, a headend refers to a facility where Internet data or audio / video content is received, processed, and routed to end subscribers (such as residential or business owners). Headends 1008A and 1008B may have multiple switching, routing, data metering, queuing, security elements, and / or other devices that may introduce latency. The 1008A and 1008B headends can also host cable modem terminal systems (CMTS) in cable networks, DSLAMs (Digital Subscriber Line Access Multiplexers) in DSL networks, and OLTs (Optical Line Terminals) in fiber optic networks.

[0068] Networks 1002A and 1002B are operated by ISP-A and ISP-B, respectively. ISPs extend their services to various residences or businesses within a community, city, or specific area. Networks 1002A and 1002B represent two different networks served by the same or different ISPs located in the same neighborhood or completely different regions or countries. Homeowners or business owners look for ISPs providing services in their local area and subscribe to internet services accordingly.

[0069] B. app

[0070] System 100 advantageously includes an ISP infrastructure BQUICK application 1056A for ISP infrastructure 1006A, a headend BQUICK application 1058A for headend 1008A, a modem BQUICK application 1020A for optical network unit 1020, a user device BQUICK application 1022A for user device 1022, and a television BQUICK application 1024A for television 1024. Applications 1056A, 1058A, 1020A, 1022A, and 1024A may be software applications or programs designed to perform specific tasks or provide specific functions as described herein (e.g., latency monitoring, latency analysis and latency optimization, and the transmission and storage of associated data). Applications 1056A, 1058A, 1020A, 1022A, and 1024A may be provided on any electronic device in the communication system 100, including but not limited to servers, computers, smartphones, tablets, smart devices, electrical appliances, cameras, security devices, vehicles, user devices, and other digital platforms. In some embodiments, applications 1056A, 1058A, 1020A, 1022A, and 1024A may execute on Windows, macOS, iOS, Android, or other operating systems, or may be web-based and accessible via an internet browser. In some embodiments, applications 1056A, 1058A, 1020A, 1022A, and 1024A may be cross-platform, capable of executing on multiple OS environments. Applications 1056A, 1058A, 1020A, 1022A, and 1024A may be installed from various sources such as application stores and software repositories, or directly from an ISP's website. In some embodiments, applications 1056A, 1058A, 1020A, 1022A, and 1024A are configured to communicate with the BQUICK_TOP server 1005 via a virtual connection. In some embodiments, applications 1056A, 1058A, 1020A, 1022A, and 1024A are configured to communicate with the BQUICK_TOP server 1005 via the BQUICK ISP_A server 1012A. Applications 1056A, 1058A, 1020A, 1022A, and 1024A may be updated via an app store or via automatic updates, depending on device settings.

[0071] BQUICK applications 1056A, 1058A, 1020A, 1022A, and 1024A are configured to facilitate integration with other services or platforms and seamless access to communication, data sharing, collaboration, and / or additional functionality. Applications 1056A, 1058A, 1020A, 1022A, and 1024A allow optical network unit 1020, television 1024, and user device 1022 to monitor latency, store subscription information (e.g., classic bandwidth in megabits per second (MPPS), monitor low-latency bandwidth (MBPS), maximum jitter in milliseconds), and provide options for upgrading Internet services. In some embodiments, latency and subscription information can be tracked based on device, device type, user identifier, application, address identifier, etc. In some embodiments, latency information can be provided to BQUICK_TOP server 1005 in timestamped packets. The user interface can be provided by applications 1056A, 1058A, 1020A, 1022A, and 1024A on the optical network unit 1020, television 1024, and user device 1022 to upgrade or downgrade to different levels of service based on latency information. In some embodiments, different levels of service can be provided to the latency server and BQUICK_TOP server 1005, BQUICK ISP_A server 1012A, or BQUICKISP_B server 1012B.

[0072] System 100 advantageously includes an ISP infrastructure BQUICK application 1056B for ISP infrastructure 1006B, a headend BQUICK application 1058B associated with headend 1008B, a modem BQUICK application 1030B for modem 1030, and a set-top box BQUICK application 1036B for set-top box. Applications 1056B, 1058B, 1030B, and 1036B are similar to applications 1056A, 1058A, 1020A, 1022A, and 1024A. In some embodiments, when applications 1030B, 1036B, 1056A, 1056B, 1058B, 1058A, 1020A, 1022A, and 1024A are installed or associated devices join the network, applications 1030B, 1036B, 1056A, 1056B, 1058B, 1058A, 1020A, 1022A, and 1024A register at server 1012 for operations consistent with those described herein. User device 1032, television 1034, and game controller 1038 may also include applications similar to BQUICK applications 1022A and 1024A.

[0073] In some embodiments, BQUICK applications 1030B, 1036B, 1056A, 1056B, 1058B, 1058A, 1020A, 1022A, and 1024A are latency applications configured to communicate data to enable the provision of topology reports. Topology reports identify end-to-end devices / networks. In some embodiments, latency requirements for each device are provided in the report (e.g., per device, per usage type, per user ID, or per application). In some embodiments, the report may be stored at server 1012. Latency requirements across the topology can be used for traffic shaping, flow prioritization, etc. In some embodiments, the report tracks which devices are offline, so that bandwidth reserved for those devices in some embodiments can be made available to another device. In some embodiments, the report tracks whether a device is not running a low-latency (e.g., BQUICK) application but is still online, so that bandwidth reserved for that device in some embodiments can be made available to other devices. In some embodiments, offline refers to a state where a device, system, or application does not actively communicate with other devices or access online resources. In some embodiments, a device that is turned off or in sleep mode is offline. In some embodiments, the low-latency application may be offline when it is not running.

[0074] In some embodiments, marking low-latency packets enables applications 1030B and 1036B, 1056A, 1056B, 1058B, 1058A, 1020A, 1022A, and 1024A to process the packets and flow as low-latency streams. In some embodiments, a terminal device (e.g., application 1024A) may send a command or request indicating that latency requirements have not been met, and in some embodiments, each application in the path (applications 1020A, 1056A, and 1058A) may respond to the command by processing packets for that device with higher priority or removing traffic from the path. Latency issues may originate from APs, grids, devices, or nodes. Tracking the bit rate or latency at each location allows the solution to be directed to the specific location of the latency problem.

[0075] refer to Figure 1BResidential building 1018B may include an access point 1031 communicating with a modem 1030, and a wireless router 1074 communicating with televisions 1034, 1035, a set-top box 1036, and a user device 1032. Access point 1031 may be integrated with modem 1030 or may be a separate unit. User device 1032 includes a user device BQUICK application 1032B, and access point 1031 includes a latency access point application 1031B. Router 1074 includes a wireless router BQUICK application 1074B, television 1034 includes a television BQUICK application 1034B, and television 1035 includes a television BQUICK application 1035B. In some embodiments, the BQUICK_TOP server 1005, BQUICK_ISP_A server 1012A, and BQUICK_ISP_B server 1012B communicate virtually with applications 1030B, 1031B, 1036B, 1074B, 1032B, 1034B, 1035B, 1056B, and 1058B. In some embodiments, a server is any computing device that provides services or resources to other computers or clients within the network.

[0076] Applications 1030B, 1031B, 1036B, 1074B, 1032B, 1034B, 1035B, 1056B, and 1058B are similar to applications 1056A, 1058A, 1020A, 1022A, and 1024A. Applications 1030B, 1031B, 1036B, 1074B, 1032B, 1034B, 1035B, 1056B, and 1058B allow modems 1030, televisions 1034 and 1035, access point 1031, router 1074, set-top box 1036, user device 1032, and other cable modem terminal systems to monitor latency, store subscription information (e.g., classic bandwidth in megabits per second (MPPS), low-latency bandwidth (MBPS), maximum jitter in milliseconds), and provide options for upgrading Internet services. User interfaces can be provided on optical network unit 1020, television 1024, and user device 1022 to upgrade or downgrade to different levels of service based on latency information. In some embodiments, this capability is available even if the device is a third-party device. In some embodiments, application 1031B or 1074B can be configured to update network topology information to BQUICK TOP server 1012, and applications 1030B, 1031B, 1036B, 1074B, 1032B, 1034B, 1035B, 1056B, and 1058B can monitor low-latency resources, request services, register devices, and request different latency processing (e.g., for video, audio, commands, downloads, etc.). In some embodiments, the devices or nodes associated with applications 1030B, 1031B, 1036B, 1074B, 1032B, 1034B, 1035B, 1056B, and 1058B may include algorithms for changing packet priorities based on time and latency requirements. Applications 1030B, 1031B, 1036B, 1074B, 1032B, 1034B, 1035B, 1056B, and 1058B may communicate using virtual or logical connections (e.g., using the Internet 1009).

[0077] Access point 1031 is a networking device that allows Wi-Fi-enabled devices to connect to a wired network. In some embodiments, access point 1031 acts as a bridge between wireless devices (e.g., wireless router 1074, set-top box 1036, user device 1032, television 1034 and 1035) and wired network infrastructure (e.g., modem 1030, router, switch, and server). Wireless router 1074 may be a networking device that provides a wireless access point for a wireless network. Wireless router 1074 acts as a hub for a wireless local area network (LAN), allowing multiple devices within or around residence 1018B to connect to the Internet and communicate with each other. Wireless router 1074 may include a wireless built-in Ethernet switch that provides multiple ports for connecting wired devices. In some embodiments, a wired connection can connect router 1074 to access point 1031 or modem 1030. In some embodiments, a wireless router refers to any device that provides a wireless access point for a wireless network.

[0078] refer to Figures 1B to 1C Applications 1030B and 1032B communicate with the BQUICK_TOP server 1005 via a logical interface. The architecture of applications 1030B and 1032B can be used in any of applications 1031B, 1036B, 1074B, 1034B, 1035B, 1056B, 1058B, 1056A, 1058A, 1020A, 1022A, and 1024A. A logical interface is a virtual interface representing a specific network configuration or functionality within a networking device (e.g., modem 1030 or user device 1032). In some embodiments, the logical interface is software-defined and can be created, configured, and managed within the device's operating system. Applications 1030B and 1032B may include modems, routers, access points, mesh devices, set-top boxes, AR / VR devices, game consoles, telephones, over-the-top (OTT) devices, etc. Applications 1030B and 1032B, and cloud infrastructure 1004 can communicate using application-to-application communication. In some embodiments, application-to-application communication is the exchange of data, messages, or commands over a network between two or more software applications running on the same or different devices. In some embodiments, application-to-application communication enables integration and collaboration between different applications, allowing them to share information, trigger actions, or synchronize states without user intervention. The BQUICK_TOP server 1012 may include an application for monitoring and / or determining end-to-end latency.

[0079] In some embodiments, applications 1020A, 1024A, 1032B, 1034B, 1035B, 1036B, and 1032B are client-level applications. Application 1036B can be configured for the highest priority (e.g., lowest latency application), while normal streaming latency is associated with applications 1020A, 1024A, 1032B, 1034B, 1035B, and 1032B. Applications 1074B and 1031B are node-level applications and can be configured to provide or assign priorities to applications 1020A, 1024A, 1032B, 1034B, 1035B, 1036B, and 1032B (client-level applications) and associated devices. Application 1030B can be configured to provide or assign priority among applications 1036B, 1074B, and 1031B (e.g., node-level applications) and applications 1020A, 1024A, 1032B, 1034B, 1035B, and 1032B (e.g., client-level applications) and their associated devices. In some embodiments, cloud-level applications may include applications 1056B and 1058B. In some embodiments, the partitioning of applications 1056B, 1058B, 1020A, 1024A, 1030B, 1032B, 1034B, 1035B, 1036B, 1074B, and 1032B allows for the separation of local and cloud processing, reduced cloud server communication and ISP bandwidth, local data storage and security, availability of local resources (including edge processing and filtering of information), and faster response to low-latency devices. In some embodiments, application 1030B has a server extension and handles communication between server 1012 and applications 1020A, 1024A, 1032B, 1034B, 1035B, 1036B and 1032B.

[0080] In some embodiments, when application 1030B includes a server extension, application 1030B may be a client-level application or a cloud-level application and maintain a virtual connection to server 1012. In some embodiments, the server extension may provide the following advantages: decoupling development from the ISP (which may help standardization), having a direct data path from application 1020A or 1031B to the application developer's server, maintaining local data privacy, availability of local resources (e.g., local machine learning (ML), edge processing, and filtering information), and faster response to local low-latency gadgets or devices.

[0081] In some embodiments, applications 1056B, 1058B, 1020A, 1024A, 1030B, 1032B, 1034B, 1035B, 1036B, 1074B, and 1032B can synchronize time references across all nodes and end-user devices. Applications 1056B, 1058B, 1020A, 1024A, 1030B, 1032B, 1034B, 1035B, 1036B, 1074B, and 1032B use timestamps for low-latency data packets at each node. In some embodiments, this enhancement enables the determination of latency at each node and reporting it to server 1012. In some embodiments, by utilizing the Precision Time Protocol (PTP), applications 1056B, 1058B, 1020A, 1024A, 1030B, 1032B, 1034B, 1035B, 1036B, 1074B, and 1032B can use timestamps to distinguish whether latency originates from a home network, an ISP, or a cloud server. Each device may have an associated PTP clock that communicates with the application associated with the device. Latency at each node can be shared across the network, allowing the network to avoid devices with latency issues or perform other operations to reduce latency at said nodes (e.g., diverting higher-latency traffic away from the problematic node). In some embodiments, the PTP clock may be derived from a satellite clock.

[0082] refer to Figure 1C Applications 1030B and 1032B each include a latency module 1040, an application 1042, an application framework 1044, a library and hardware abstraction layer 1046, a driver and Linux kernel 1048, and hardware and firewall 1050. In some embodiments, the latency module 1040 is configured to control and monitor the hardware and firewall based on latency. The latency module or BQUICK module 1040 is software configured to provide the low-latency operation described herein. Application 1042 is an application for performing various operations and may contain third-party applications (e.g., Android APK packages). Application framework 1044 is a set of structured software components that provide the necessary infrastructure for building and running applications.

[0083] The library and hardware abstraction layer 1046 provides a standardized interface for device drivers to interact with hardware components. The library and hardware abstraction layer 1046 allows applications and system services to access hardware functionality in a consistent manner across different devices. The library and hardware abstraction layer 1046 provides a collection of pre-written code that developers can use to perform common tasks or implement specific functionality, and typically contains reusable functions, classes, or modules that provide specific capabilities.

[0084] In some embodiments, the driver and Linux kernel 1048 act as a bridge between the hardware and software layers of the system, thereby managing system resources. In some embodiments, the driver and Linux kernel 1048 provide basic services and facilitate communication between software processes and hardware devices. In some embodiments, the driver and Linux kernel 1048 include software components that facilitate communication between the operating system (OS) and hardware devices.

[0085] refer to Figure 1D Functions, services, processes, or operations 1080 can be performed by applications 1030B, 1031B, 1036B, 1074B, 1032B, 1034B, 1035B, 1056B, 1058B, 1056A, 1058A, 1020A, 1022A, and 1024A. Figure 1A and 1B Any of the following can be used for control: classifier 1082, low-latency queue 1084, and classic queue 1086. Queues 1084 and 1086 are used to manage network devices or systems 100. Figure 1A A queue is a memory or logical structure (e.g., implemented using data structures) for packets or message flows within a communication system 100. In some embodiments, queue 1084 is associated with a high-performance path, and queue 1086 is associated with a low-performance path. In some embodiments, a queue refers to any structure used for storing information (e.g., packets). Any networking device may have separate queues to support low-latency services and may be integrated into the communication system 100. Figure 1A Operations can be performed on any device within the application. Applications 1030B, 1031B, 1036B, 1074B, 1032B, 1034B, 1035B, 1056B, 1058B, 1056A, 1058A, 1020A, 1022A, and 1024A can independently report the latency of each queue.

[0086] In some embodiments, queues 1084 and 1086 are configured to temporarily store packets or messages in a first-in-first-out (FIFO) buffer before transmitting or processing messages. In some embodiments, queue 1084 may store messages for high-performance paths (e.g., low-latency paths), and queue 1086 may store messages for low-performance paths (e.g., high-latency paths). In some embodiments, low-latency operations may use low-performance paths, and high-latency operations may use high-performance paths, or each operation may use the same path. In some embodiments, a path refers to any communication route or channel through which data or information propagates from a source to a destination (e.g., via a device and across media). In some embodiments, a path may include intermediate components and links involved in transmitting data between two or more points in one or more networks. In some embodiments, a low-latency path refers to a path used for low-latency services.

[0087] Classifier 1082 is a processor and / or software configured to classify or categorize network services based on certain criteria (e.g., according to latency requirements and / or priority). In some embodiments, classifier 1082 is configured to enforce network policies, prioritize services (e.g., for high-performance or low-performance paths), and / or apply specific actions based on the classification results. Classifier 1082 distinguishes different types of services (e.g., voice, video, data) and applies QoS policies to ensure that critical applications receive sufficient bandwidth and latency requirements. Classifier 1082 prioritizes services based on predefined criteria, thereby ensuring that important or time-sensitive applications receive priority processing relative to less critical services by appropriately serving services to queues 1084 and 1086. In some embodiments, classifier 1082 may utilize information about customer subscriptions (e.g., device level, user level, residence level) to classify services.

[0088] refer to Figure 1E Operation 1088 can be controlled by any of the applications 1030B, 1031B, 1036B, 1074B, 1032B, 1034B, 1035B, 1056B, 1058B, 1056A, 1058A, 1020A, 1022A, and 1024A. Operation 1088 is similar to operation 1080 and utilizes a classifier 1090, a first low-latency queue 1092, a second low-latency queue 1094, a classic queue 1096, and a priority queue 1098. Queues 1092, 1094, 1096, and 1098 are used to manage network devices or systems 100 (…). Figure 1AThis refers to a memory or data structure containing packets or message flows within a network. In some embodiments, queues 1092 and 1094 are associated with high-performance paths, and queue 1096 is associated with low-performance paths. In some embodiments, queue 1098 receives messages from queues 1092 and 1094 and provides messages or data to high-performance paths based on a priority scheme associated with queues 1092 and 1094. In some embodiments, classifier 1090 is similar to classifier 1082 and is configured to classify or categorize network traffic based on certain criteria (e.g., according to latency requirements) of queues 1092, 1094, and 1096. In some embodiments, classifiers 1082 and 1090 are software modules operating on a device (e.g., a server, an ISP-provided device, a user device, etc.). In some embodiments, queues 1084, 1086, 1092, 1094, 1096, and 1098 are virtual queues provided on the memory of a device configured by operation 1080 or 1088. In some embodiments, queues 1084, 1086, 1092, 1094, 1096, and 1098 are dedicated hardware queues (e.g., FIFO memories) on the device. Classifiers 1090 and 1082, as well as queues 1084, 1086, 1092, 1094, 1096, and 1098, are implemented in the application layer of the device and, in some embodiments, may utilize services and structures provided by the media access layer and the physical layer. In some embodiments, classifiers 1082 and 1090 can be configured via commands provided by the BQUICK TOP server 1012 to appropriately classify low-latency traffic.

[0089] In some embodiments, applications 1080 and 1088 are configured to operate at nodes associated with devices including, but not limited to, ONU 1020, modem 1030, set-top box 1036, television 1024, access point 1031, user equipment 1032, and / or router 1074. Applications 1080 and 1088 are configured to control and / or segment subscribed low-latency bandwidth services (e.g., 20 Mbps vs. 50 Mbps), track latency statistics (e.g., minimum, maximum, and average latency of low-latency streams), process five tuples (e.g., source IP address, source port, destination IP address, destination port, and transport protocol) of X streams (where X is any integer) with latency and / or bandwidth requirements, monitor latency introduced by the nodes, provide timestamps at ingress and egress ports, monitor buffer depth, enforce boundary clock precision protocols (e.g., the IEEE 10588-2008 standard and its extensions), and prioritize services between multiple low-latency clients. Monitoring and measurement information can be attached to packets to provide them to other nodes and servers (e.g., server 1012). For example, timestamps can be applied to packets at each node or device. Latency can be determined by comparing timestamps. In some embodiments, applications 1080 and 1088 are also configured to track the state of low-latency applications and provide a user interface for controlling low-latency configurations. In some embodiments, classifiers 1082 and 1090 and / or queues 1084, 1086, 1092, 1094, 1096 are configured by applications 1030B, 1031B, 1036B, 1074B, 1032B, 1034B, 1035B, 1056B, 1058B, 1056A, 1058A, 1020A, 1022A, and 1024A (e.g., at each respective node). In some embodiments, servers 1012, 1012A, and 1012B configure classifiers 1082 and 1090 and / or queues 1084, 1086, 1092, 1094, and 1096 via virtual connections.

[0090] Applications 1080 and 1088 can identify end-to-end bandwidth available for low-latency applications, provide users with real-time feedback on monitored latency, and adjust latency responses. In some embodiments, the adjustment may be in response to purchased services or bandwidth upgrades. In some embodiments, applications 1080 and 1088 can be configured to provide advertisements or customer offers for low-latency resources. Applications 1080 and 1088 can address variable latency for each user and adjust responses to latency levels at specific times, within specific time periods, etc. In some embodiments, latency information may be transmitted as a timestamp appended to packets as described herein or as a timestamp appended to a packet identifier (e.g., 5 tuples and a sequence number) to servers 1012A, 1012B, and 1012, and applications 1030B, 1031B, 1036B, 1074B, 1032B, 1034B, 1035B, 1056B, 1058B, 1056A, 1058A, 1020A, 1022A, and 1024A. In some embodiments, the timestamp information may be sent to servers 1012A, 1012B, and / or 1012 via a separate virtual / logical channel.

[0091] refer to Figure 1F Cloud infrastructure 1004 may contain application 1004A. Application 1004A is similar to applications 1030B, 1031B, 1036B, 1074B, 1032B, 1034B, 1035B, 1056B, and 1058B. BQUICK TOP server 1012 may be configured to monitor AR / VR applications and / or metaverse applications. Applications running on BQUICK TOP server 1012 can perform monitoring functions. Application 1004A communicates with BQUICK TOP server 1012. Servers 1012A and 1012B may contain applications similar to application 1004A.

[0092] Using applications 1020A, 1024A, 1030B, 1032B, 1034B, 1035B, 1036B, 1074B, and 1032B, low-latency usage can be facilitated by devices provided by ISPs, customer-owned AR / VR devices, mobile phones, over-the-top (OTT) devices, and cloud gaming clients. Applications 1020A, 1024A, 1030B, 1032B, 1034B, 1035B, 1036B, 1074B, and 1032B allow devices in residences 1018A and 1018B to interact with server extensions integrated into the ONU 1020 and (e.g., ISP-provided) modem 1030 or router. Additionally, the server extensions have the ability to filter all necessary information and transmit it to servers 1012A and 1012B or share open data with application developers.

[0093] C. Computing environment

[0094] Before discussing the details of embodiments of the system and method of this solution, it may be helpful to discuss the computing environment in which such embodiments may be deployed.

[0095] like Figure 2A As shown, computer 2001 may include one or more processors 2003, volatile memory 2022 (e.g., random access memory (RAM)), non-volatile memory 2028 (e.g., one or more hard disk drives (HDDs) or other magnetic or optical storage media, one or more solid-state drives (SSDs) (e.g., flash drives or other solid-state storage media), one or more hybrid magnetic and solid-state drives, and / or one or more virtual storage volumes (e.g., cloud storage devices), or combinations of such physical storage volumes and virtual storage volumes or arrays thereof), user interface (UI) 2023, one or more communication interfaces 2018, and communication bus 2050. User interface 2023 may include graphical user interface (GUI) 2024 (e.g., touch screen, display, etc.) and one or more input / output (I / O) devices 2026 (e.g., mouse, keyboard, microphone, one or more speakers, one or more cameras, one or more biometric scanners, one or more environmental sensors, one or more accelerometers, remote control, video game controller or joystick, etc.). Non-volatile memory 2028 stores operating system 2015, one or more application programs 2016, and data 2017, such that computer instructions, such as those of operating system 2015 and / or application programs 2016, are executed by processor 2003 outside of volatile memory 2022. In some embodiments, volatile memory 2022 may include one or more types of RAM and / or cache memory, which can provide a faster response time than main memory. Data can be input using the input device of GUI 2024 or received from I / O device 2026. Various components of computer 2001 can communicate via one or more communication buses shown as communication bus 2050.

[0096] like Figure 2AThe computer 2001 shown herein is for illustrative purposes only. Clients, servers, intermediary devices, and other networking devices may be implemented by any computing or processing environment and with any type of machine or group of machines that may have suitable hardware and / or software capable of operating as described herein. Processor 2003 may be implemented by one or more programmable processors to execute one or more executable instructions (e.g., computer programs) to perform the functions of the system. As used herein, the term “processor” describes a circuit system that performs a function, operation, or sequence of operations. Functions, operations, or sequences of operations may be hard-coded into the circuit system or soft-coded by means of instructions stored in a memory device and executed by the circuit system. A “processor” may perform functions, operations, or sequences of operations using digital values ​​and / or analog signals. In some embodiments, a “processor” may be embodied in one or more application-specific integrated circuits (ASICs), microprocessors, digital signal processors (DSPs), graphics processing units (GPUs), microcontrollers, field-programmable gate arrays (FPGAs), programmable logic arrays (PLAs), multi-core processors, or general-purpose computers with associated memory. A “processor” may be analog, digital, or mixed-signal. In some embodiments, a "processor" may be one or more physical processors or one or more "virtual" (e.g., remotely located or "cloud") processors. A processor containing multiple processor cores and / or multiple processors may provide functionality for parallel, simultaneous execution of instructions or for parallel execution of one instruction on more than one piece of data.

[0097] The communication interface 2018 may include one or more interfaces to enable the computer 2001 to access a computer network, such as a local area network (LAN), a wide area network (WAN), a personal area network (PAN), or the Internet, via various wired and / or wireless or cellular connections.

[0098] In some implementations, computing device 2001 may execute applications on behalf of a user of a client computing device. For example, computing device 2001 may execute a virtual machine that provides an execution session in which an application executes on behalf of a user or client computing device, such as a hosted desktop session. Computing device 2001 may also execute a terminal services session to provide a hosted desktop environment. Computing device 2001 may provide access to a computing environment comprising one or more of the following: one or more applications, one or more desktop applications, and one or more desktop sessions in which one or more applications can execute.

[0099] refer to Figure 2BThis describes a computing environment 2060. The computing environment 2060 can generally be considered as implemented as a cloud computing environment, an on-premium (“on-prem”) computing environment, or a hybrid computing environment comprising one or more on-premium computing environments and one or more cloud computing environments. When implemented as a cloud computing environment (also referred to as a cloud environment, cloud computing, or cloud network), the computing environment 2060 can provide shared services (e.g., computer services) and the delivery of shared resources (e.g., computer resources) to multiple users. For example, the computing environment 2060 may include an environment or system for providing or delivering access to multiple shared services and resources to multiple users via the Internet. Shared resources and services may include, but are not limited to, networks, network bandwidth, servers, processing, memory, storage devices, applications, virtual machines, databases, software, hardware, analytics, and intelligence.

[0100] In some embodiments, computing environment 2060 may provide client 2062 with one or more resources provided by a network environment. Computing environment 2062 may include one or more clients 2062a to 2062n communicating with cloud 2068 via one or more networks 2064. Client 2062 may include, for example, fat clients, thin clients, and zero clients. Cloud 2068 may include a backend platform, such as server 1005, storage device, server cluster, or data center. Client 2062 may communicate with... Figure 2A The computer is the same as or largely similar to the 2001 computer.

[0101] User or client 2062 may correspond to a single organization or multiple organizations. For example, computing environment 2060 may include a private cloud (e.g., an enterprise cloud) serving a single organization. Computing environment 2060 may include a community cloud or public cloud serving multiple organizations. In some embodiments, computing environment 2060 may include a hybrid cloud as a combination of a public cloud and a private cloud. For example, cloud 2068 may be public, private, or hybrid. Public cloud 2068 may include a public server maintained by a third party of client 2062 or the owner of client 2062. The server may be geographically located in a remote geographic location, as described above or otherwise publicly disclosed. Public cloud 2068 can be connected to the server via public network 2064. Private cloud 2068 may include a private server physically maintained by client 2062 or the owner of client 2062. Private cloud 2068 can be connected to the server via private network 2064. Hybrid cloud 2068 may include both private and public networks 2064 and the server.

[0102] Cloud 2068 may include a backend platform, such as servers, storage devices, server clusters, or data centers. For example, cloud 2068 may include or correspond to servers or systems remote from one or more clients 2062 to provide third-party control over shared services and resource pools. Computing environment 2060 may provide resource pooling to serve multiple users via clients 2062 through a multi-tenant environment or multi-tenant model, wherein different physical and virtual resources are dynamically assigned and reallocated in response to different demands within the respective environment. A multi-tenant environment may include a system or architecture that provides software, applications, or a single instance of a software application to serve multiple users. In some embodiments, computing environment 2060 may provide on-demand self-service to unilaterally provide computing power (e.g., server time, network storage) to multiple clients 2062 across a network. Computing environment 2060 may provide elasticity to dynamically scale outward or inward in response to different demands from one or more clients 2062. In some embodiments, computing environment 2060 may include or provide monitoring services to monitor, control, and / or generate reports corresponding to the shared services and resources provided.

[0103] In some embodiments, computing environment 2060 may include and provide different types of cloud computing services. For example, computing environment 2060 may include Infrastructure as a Service (IaaS). Computing environment 2060 may include Platform as a Service (PaaS). Computing environment 2060 may include serverless computing. Computing environment 2060 may include Software as a Service (SaaS). For example, cloud 2068 may also include cloud-based delivery, such as Software as a Service (SaaS) 2070, Platform as a Service (PaaS) 2072, and Infrastructure as a Service (IaaS) 2074. IaaS can refer to a user's rental of access to infrastructure resources required for a specified period of time. IaaS providers may offer storage, networking, server, or virtualization resources from a large pool, allowing users to scale rapidly by accessing more resources as needed. IaaS instances include Amazon Web Services provided by Amazon.com, Inc. of Seattle, Washington; RACKSPACECLOUD provided by Rackspace US, Inc. of San Antonio, Texas; Google Compute Engine provided by Google Inc. of Mountain View, California; or RIGHTSCALE provided by RightScale, Inc. of Santa Barbara, California. PaaS providers offer the functionality provided by IaaS, including, for example, storage, networking, servers, or virtualization, as well as additional resources such as operating systems, middleware, or runtime resources. Examples of PaaS include Windows Azure provided by Microsoft Corporation of Redmond, Washington; Google App Engine provided by Google Inc.; and Heroku provided by Heroku, Inc. of San Francisco, California. SaaS providers offer the resources offered by PaaS, which include storage, networking, servers, virtualization, operating systems, middleware, or runtime resources. In some embodiments, SaaS providers may offer additional resources, including, for example, data and application resources.SaaS instances include Google Apps, Salesforce.com, based in San Francisco, California, or Office 365, provided by Microsoft. SaaS instances may also include data storage providers such as Dropbox, based in San Francisco, California; Microsoft SkyDrive, based in San Francisco, California; Google Drive, based in Google; or Apple iCloud, based in Cupertino, California.

[0104] Client 2062 can access IaaS resources with one or more IaaS standards, including, for example, Amazon Elastic Compute Cloud (EC2), Open Cloud Computing Interface (OCCI), Cloud Infrastructure Management Interface (CIMI), or OpenStack standards. Some IaaS standards allow clients to access resources via HTTP and can use the Representational State Transfer (REST) ​​protocol or the Simple Object Access Protocol (SOAP). Client 2062 can access PaaS resources with different PaaS interfaces. Some PaaS interfaces use HTTP wrappers, standard Java APIs, Java Mail APIs, Java Data Objects (JDO), Java Persistence APIs (JPA), Python APIs, web integration APIs for different programming languages, including, for example, Rack for Ruby, WSGI for Python, or PSGI for Perl, or other APIs that can be built on REST, HTTP, XML, or other protocols. Client 2062 can access SaaS resources through a web-based user interface provided by a web browser (e.g., Google Chrome, Microsoft Internet Explorer, or Mozilla Firefox provided by the Mozilla Foundation in Mountain View, California). Client 2062 can also access SaaS resources via smartphone or tablet applications, such as Salesforce Sales Cloud or Google Drive. Client 2062 can also access SaaS resources via a client operating system, including, for example, a Windows file system for DROPBOX.

[0105] In some embodiments, access to IaaS, PaaS, or SaaS resources can be authenticated. For example, a server or authentication server can authenticate users via a security certificate, HTTPS, or an API key. The API key can contain various encryption standards, such as Advanced Encryption Standard (AES). Data resources can be sent via Transport Layer Security (TLS) or Secure Sockets Layer (SSL).

[0106] While examples of the communication systems described above may include devices operating according to Ethernet and other standards, it should be understood that embodiments of the described systems and methods may operate according to alternative standards and use various wireless communication devices. For example, multiple unit communication interfaces associated with cellular networks, satellite communications, vehicular communication networks, wired networks, and networks may utilize the systems and methods described herein without departing from the scope of the systems and methods described herein.

[0107] D. Systems and methods for improving the quality of experience of low-latency applications while roaming in wireless networks.

[0108] The following is a detailed description of various concepts and embodiments thereof related to techniques, methods, devices, and systems for improving the quality of experience of low-latency procedural applications while roaming in wireless networks. The various concepts introduced above and discussed in more detail below can be implemented in any of a variety of ways, as the described concepts are not limited to any particular implementation. Examples of specific embodiments and applications are provided primarily for illustrative purposes.

[0109] The technical solutions disclosed herein address the challenges of packet loss and traffic buildup at access points during client roaming. These solutions allow a device under test (DUT) (e.g., a switch, cable modem, or gateway) to manage connections across multiple access points. For example, the DUT can be configured to maintain queuing and scheduling for each client. Each access point can periodically send feedback messages to the DUT via Ethernet packets. These messages may contain traffic management statistics, such as the average queue depth in the access point's memory. By processing the feedback, the DUT can dynamically adjust or suspend network traffic rates for individual client devices associated with each access point. For example, if signal strength or signal-to-noise ratio drops below a threshold, dynamic adjustment may involve reducing the rate at which clients transmit data from the switch to the access point. This traffic management helps prevent congestion and improves data flow across the network.

[0110] By facilitating a seamless roaming experience through initiating handover or roaming and allowing connectivity between access points, technical solutions can be particularly advantageous for low-acceptance applications such as video conferencing. For example, a client scheduler can prioritize packets based on application type. Packets from a live conferencing application, for instance, can be prioritized over regular web browsing traffic. This prioritization minimizes latency and maintains a seamless user experience for latency-sensitive applications. During roaming, packets are not dropped but can be redirected to the new access point. Furthermore, switches can forward packets from a client scheduler connected to a port leaving the access point to a client scheduler connected to a port at the destination access point, providing efficient packet delivery during handover. In the context of a network switch, a port can refer to a logical connection point (e.g., a VLAN interface or port channel) or a physical interface (e.g., an Ethernet port or a fiber optic port) that allows devices to connect to the switch.

[0111] Figure 3 This describes an example system 300 for improving the quality of experience of low-latency applications while roaming in a wireless network. Example system 300 may include one or more switches 305A to 305N (sometimes referred to herein as switch 305) coupled to one or more access points 310A to 310B (sometimes referred to herein as access point 310). Example system 300 may include one or more servers 315 communicatively coupled to one or more access points 310 and one or more switches 305 via one or more networks 320. Example system 300 may include one or more controllers 345 communicatively coupled to one or more access points 310 and one or more switches 305 via one or more networks 320. Example system 300 may include one or more client devices 325A to 325B (sometimes referred to herein as client device 325) communicatively coupled to one or more access points 310. Figures 1A to 1F Any of the systems described in 2A to 2B can be configured, built, or implemented to implement, operate, and / or use. Figure 3 Any of the options and technologies described herein.

[0112] Switch 305 may include one or more port schedulers 330A to 330B (sometimes referred to herein as port scheduler 330), one or more client schedulers 335A to 335N (sometimes referred to herein as client scheduler 335), and one or more packet buffers 340. Server 315 may be referred to herein as a latency server, for example, in combination with... Figures 1A to 1FThe described latency server 1005. Server 315 may include one or more low-latency controllers for identifying, managing, and controlling the latency of low-latency applications. Access point 310 may include one or more low-latency agents for providing localized management at the access point 310 level. The server may communicate with the access point 310 or the driver of such device via network 320. Network 320 (e.g., similar to a combination of...) Figure 2B The described network 2064 may include computer networks such as the Internet, local area networks, wide area networks, metropolitan area networks or other regional networks, intranets, satellite networks, other computer networks (e.g., voice or data mobile phone communication networks), and combinations thereof. Any of the server 315, access point 310, switch 305, controller 345, or the described computing device may communicate wirelessly (e.g., via Wi-Fi, cellular, radio, etc.) and (e.g., via fiber optic cable, CAT5 cable, etc.) via hardwired transceivers to other computing devices.

[0113] Access point 310 may include means, systems, or modules (combining hardware and software) that allow wireless communication devices to connect to a wired network using Wi-Fi or other standards. Access point 310 may sometimes be referred to as a wireless access point (WAP). Access point 310 may include components such as an antenna for transmitting and receiving wireless signals, a radio device for managing wireless communication, a CPU for processing data and control operations, and memory (DDR) for storing operational data and configurations. Access point 310 may be implemented (e.g., configured, designed, and / or constructed) to operate in a wireless local area network (WLAN). In some embodiments, access point 310 may be connected to a router as a standalone device (e.g., via a wired network). In some embodiments, access point 310 may be a component of a router. Access point 310 may provide network access for multiple devices. For example, access point 310 may connect to a wired Ethernet connection and use a radio frequency link to provide wireless connectivity for other devices to utilize the wired connection. Access point 310 may be implemented to support standards for transmitting and receiving data using one or more radio frequency signals. Those standards and the frequencies they use can be defined by IEEE (e.g., IEEE 802.11 standard). Access point 310 can be configured and / or used to support Internet hotspots and / or extend the Wi-Fi signal range of a network.

[0114] Client device 325 (which may also be interchangeably referred to as a client) may be a wireless communication device configured for wireless communication in a wireless communication network (e.g., a LAN, WAN, or cellular network). Client device 325 may be configured to wirelessly communicate with a network device (e.g., access point 310) using any of the IEEE standards (e.g., the IEEE 802.11 standard). Client device 325 may be combined with... Figures 1A to 1FAny of the user devices described. In some embodiments, client device 325 may include one or more clients 2062, such as Figure 2B As described herein, and / or one or more client devices connected to network 320 or network 2064 to access resources or services.

[0115] Switch 305 may include means, systems, or modules (including a combination of hardware and software) that facilitate the routing and forwarding of data packets within a network. Switch 305 operates by receiving signals from transmission devices and determining efficient paths for these signals to reach their desired destinations. Switch 305 can process header information within each packet to determine its destination. Switch 305 can manage wired and wireless devices. Switch 305 may integrate wireless access point functionality. Switch 305 can operate at Layer 2 (Data Link Layer) or Layer 3 (Network Layer) of the OSI model. Switch 305 can utilize the Ethernet protocol to forward data based on MAC addresses (Layer 2) or IP addresses (Layer 3).

[0116] Each of one or more switches 305 may include a port scheduler 330, which may be an executable instruction of any type and form, such as an application, program, service, task, process, script, library, etc. The port scheduler 330 may be designed and configured to allocate bandwidth on a per-port basis. The port scheduler 330 may operate as a program running on the switch 305, thereby allowing the switch 305 to efficiently manage traffic at each port. The port scheduler 330 may facilitate efficient resource utilization across all connected devices by operating based on a set of predefined rules for managing bandwidth allocation. These rules may include a static allocation in which a fixed percentage of bandwidth is assigned to each port, or a dynamic allocation in which bandwidth is adjusted in real time based on service conditions. In some embodiments, a user may configure the port scheduler 330 to meet the specific bandwidth requirements of ports handling different types of network services.

[0117] Each of one or more switches 305 may include a client scheduler 335, which may be an executable instruction of any type and form, such as an application, program, service, task, process, script, library, etc. The client scheduler may be designed and configured to schedule packets aggregated by the port scheduler 330 for each client device 325 associated with access point 310. The client scheduler 335 may receive data packets or aggregated data packets from the port scheduler 330 for a specific access point port and may maintain internal data structures to track connected client devices, associated traffic flows, and assigned priority levels. In some embodiments, the client scheduler 335 may receive packets from the port scheduler 330 via a custom communication protocol designed for internal communication within the switch 305. In some embodiments, the client scheduler 335 may utilize a memory interface for data exchange. The client scheduler 335 may process incoming packets and prioritize them based on rules, which may include prioritizing traffic based on application-specific settings and allowing users to define custom priority levels for specific clients or applications. Depending on the implementation, the client scheduler 335 may use various scheduling mechanisms, such as priority queuing, where packets are placed in separate queues based on their priority, with higher-priority queues being served first. The client scheduler 335 can use this information to monitor network traffic and individual client device usage patterns to dynamically adjust priorities based on real-time network conditions. In some embodiments, the functionality of the client scheduler 335 may be performed by the port scheduler 330, thereby providing a more integrated or simplified approach to service management and scheduling within the switch 305.

[0118] In some embodiments, one or more switches 305 may receive feedback messages from each access point 310 to which the switches 305 are connected. Feedback messages are information packets exchanged between network devices to provide data about network conditions. These feedback messages, encapsulated within Ethernet packets, may contain various information to improve network management. For example, a feedback message may contain the switch MAC address and the AP MAC address as identifiers, and the Ethernet type used to specify the protocol used to process the message. Feedback messages may indicate the signal strength between access point 310 and each connected client device 325. Feedback messages may provide specific service management (TM) statistics (e.g., average packet queue depth) for each client device 325 associated with that access point 310 to determine network congestion. Feedback messages may contain a Frame Check Sequence (FCS) to maintain the integrity of transmitted data and help identify any errors that may occur during transmission.

[0119] In some embodiments, one or more switches 305 may include a packet buffer memory 340, which may be memory space configured to store data packets, such as packets awaiting transmission over the network or received for delivery or forwarding to another device. The packet buffer memory 340 may be configured to manage data packets and facilitate seamless data flow over the network. For example, when a packet arrives at switch 305, it may be temporarily stored in the packet buffer memory 340 until switch 305 can process it and forward it to its destination. In some embodiments, the packet buffer memory 340 may be configured to store data packets already received over the network, thereby managing both incoming and outgoing traffic. The memory space of the packet buffer memory 340 may be organized in different ways depending on the switch architecture. For example, the packet buffer memory 340 may include: shared memory, where a single large memory pool can be accessed by all switch ports; per-port memory, where each switch port may have its own memory buffer to simplify management; and a hybrid approach, where some switches may combine elements of both shared memory and per-port memory to provide both flexibility and scalability.

[0120] Controller 345 may be a device, system, or module (comprising a combination of hardware and software) for controlling or managing one or more access points 310 within a network. In some embodiments, controller 345 may control one or more access points 310 via a plurality of switches 305. In some embodiments, controller 345 may provide deployment flexibility. For example, controller 345 may be deployed on a separate network device or on a server (e.g., server 315) accessible via network 320. For example, in the case where a group of access points 310 are connected to a plurality of switches 305 within the network, controller 345 may act as a manager for the access points 310. Depending on the embodiment, a dedicated controller device, a switch with an integrated controller, or a network gateway with an embedded controller may implement functionality. In some embodiments, the network may have more than one switch 305 connected to one or more access points 310, and the access points 310 connected to these switches 305 may be controlled by a single controller 345. This configuration may allow client devices 325 to roam seamlessly between access points 310, for example, where access points 310 are connected to different switches 305 in the network. For example, client device 325 can roam from an access point 310 connected to a switch 305 to another access point 310 connected to a different switch 305 in the network. Controller 345 can facilitate the roaming process by coordinating with switch 304 and access point 310.

[0121] In some embodiments, controller 345 may configure connected access points 310 by adjusting settings such as security protocols, channel selection, and roaming behavior to avoid interference when client devices 325 switch between access points 310. In some embodiments, controller 345 may manage client association and authentication. In some embodiments, controller 345 may improve cross-network traffic flow by directing data to appropriate access points 310 based on radio signal strength indicators or signal-to-noise ratios collected from access points 310.

[0122] In some embodiments, controller 345 may be configured to terminate feedback messages from access point 310 or filter specific types of feedback messages from access point 310. In some embodiments, controller 345 may be configured to dynamically manage network traffic based on received feedback. For example, controller 345 may suspend or adjust the rate of network traffic between switch 305 and individual client devices 325 associated with a particular access point 310, thereby allowing for improvements in network performance based on real-time conditions.

[0123] Figure 4 This describes method 400 for improving the quality of experience of low-latency applications while roaming in a wireless network. Method 400 can be implemented using systems 100, 300, or any other features discussed in Figures 1 to 3. Method 400 may include actions 402 to 420. At 402, a switch can be coupled to the network. At 404, each port on the switch can be connected to an access point among multiple access points, where each access point is associated with multiple client devices. At 406, the switch can receive a feedback message from each access point, containing telemetry information. At 408, the switch can identify each client device using the MAC address contained in the feedback message received from the corresponding access point. At 410, a port scheduler on each port of the switch can aggregate packets from the multiple client devices associated with the corresponding access point. At 412, the switch can store the aggregated packets in a packet buffer. At 414, each client scheduler of the switch can schedule packets for the corresponding client device by storing the scheduled packets from the packet buffer into the corresponding priority queue based on a priority level. At 416, the controller can determine the roaming origin of a client device from its current access point to another access point based on telemetry information. At 418, the controller can initiate connection transmission for a client device from its current access point to another access point. At 420, the switch can transfer packets from the queue of the client scheduler associated with the leaving access point to the queue of the client scheduler associated with the destination access point.

[0124] At position 402, the switch can be coupled to or be coupled to a network. The switch may include a built-in network interface card (NIC) or configurable network ports that facilitate connectivity to the network. In some embodiments, the switch may include multiple ports. In some embodiments, a network cable may be used to connect the switch's NIC ports to various network devices, including routers, access points, and other switches. In some embodiments, the switch may communicate wirelessly and / or via wired connections with multiple access points.

[0125] At 404, each port on the switch can connect to an access point among multiple access points, where each access point is associated with multiple client devices. In some embodiments, each port on the switch can be connected to an access point using a network cable. Depending on the implementation, the access point can provide connectivity to client devices wirelessly or via a wired connection.

[0126] At 406, the switch may receive a feedback message containing telemetry information from each access point. For example, the switch controller may receive the feedback message from each of a plurality of access points connected to a corresponding port of the switch. In some embodiments, the feedback message may be transmitted via Ethernet packets from the access point. The feedback message may contain telemetry information about each client connected to the access point. The telemetry information may be a set of data points collected from a remote source to monitor and analyze system performance. For example, the telemetry information may refer to data collected from client devices connected to the access point. The telemetry data in the feedback message may include, for example, a radio signal strength indicator (also referred to herein as Received Signal Strength Indicator or RSSI) or a signal-to-noise ratio (SNR). In some embodiments, RSSI may indicate the strength of the wireless signal received by the client device from the access point. For example, RSSI may indicate the power level of the signal received by the client device from the access point. In some embodiments, the value of RSSI may help determine whether the signal strength is sufficient to achieve a stable wireless connection. SNR may indicate the strength of the desired signal (e.g., the signal from the access point) relative to background noise. SNR may be defined as the ratio of signal power to noise power. In some embodiments, the feedback message may include service management (TM) statistics. TM statistics may be specific to each client device associated with the access point. In some embodiments, TM statistics may indicate the average number of packets for each client device associated with the access point that are waiting to be transmitted in the access point's memory.

[0127] In some embodiments, a switch may adjust the service rate based on telemetry information. Service rate refers to the speed at which data is transmitted over the network. Service rate can be measured in bits per second (bps) or megabits per second (Mbps). In some embodiments, service rate may indicate the amount of data flowing between switches, access points, and client devices. A switch (e.g., via a network controller) may adjust the service rate based on telemetry information to improve network performance and manage congestion. For example, if a client device is experiencing a high data rate but has a weak signal, the switch may reduce the service rate to prevent packet loss.

[0128] At 408, the switch can identify each client device using the MAC address contained in the feedback message received from the corresponding access point. The access point can include the Media Access Control (MAC) address of each connected client device within the feedback message transmitted to the switch. The MAC address can be used to identify devices on the network. The feedback message can be transmitted within an Ethernet packet, which includes fields for source and destination MAC addresses in the packet header. The access point can use its own MAC address as the source address in the packet header when transmitting the feedback message to the switch. The access point can set the destination address in the packet header to the MAC address of the specific switch port to which the access point is connected. Upon receiving an Ethernet packet containing the feedback message, the switch can process the packet based on the destination MAC address in the packet header. In some embodiments, within the feedback message payload (data portion), the switch can extract the client's MAC address provided by the access point. By associating the client's MAC address with the specific access point transmitting the message (e.g., identified by the source MAC address in the packet header), the switch can identify client devices on the network.

[0129] At 410, a port scheduler on each port of the switch can aggregate packets from multiple client devices associated with a corresponding access point. Each port may contain a port scheduler that aggregates packets received by the switch from the network for client devices associated with an access point. The port scheduler can combine multiple data packets destined for the same client device into a single packet, thereby effectively simplifying data transmission. In some embodiments, the port scheduler can aggregate downlink traffic to client devices associated with an access point.

[0130] At position 412, the switch can store aggregated packets in a packet buffer. The packet buffer can be reserved for storing incoming and outgoing data packets. The size of the packet buffer can vary depending on the switch model and network requirements. In some switch models, the packet buffer can be large enough to accommodate situations where there is a temporary slowdown in client data processing speed while network traffic continues at normal speed or even increases.

[0131] At 414, each client scheduler of the switch can schedule packets for its corresponding client device by storing scheduled packets from the packet buffer into the corresponding priority queue based on a priority level. The switch may include a client scheduler for the client devices associated with the access point on each port. For example, each client device associated with the access point may have a client scheduler on the switch. In some embodiments, each port scheduler may be configured to select a client scheduler based on a scheduling algorithm (e.g., strict priority, Distributed Trunk Assisted Repeat (DRR), etc.) to determine the order in which packets are transmitted to the access point of each client device associated with the access point.

[0132] Each client scheduler can access the switch's packet buffer and retrieve aggregated packets for the corresponding client device. The client scheduler can schedule packets, placing them into a priority queue maintained within the switch based on their priority level (e.g., high priority for video conferencing applications, low priority for file downloads, etc.). In some embodiments, the priority queue can serve as a temporary storage area within the switch, categorized by different priority levels (e.g., high, medium, low). In some embodiments, the priority queue may correspond to a list of packets at that specific priority level.

[0133] Each client scheduler can be configured to allow rate adjustment of scheduled packets from client devices associated with the access point based on telemetry data received from feedback messages from the access point. Telemetry may include, in particular, the RSSI and SNR of each client device. The client scheduler can use the telemetry data to prioritize packets from client devices. The client scheduler can prioritize packets from client devices based on a threshold. In this regard, depending on the implementation, the threshold may refer to a certain RSSI level and / or SNR value, which can be used as a reference point for prioritization. For example, a switch can be configured (e.g., via a port scheduler or client scheduler, depending on the implementation) to reduce the rate at which scheduled packets are transmitted to client devices whose RSSI or SNR has fallen below a threshold. In some embodiments, a switch can be configured (e.g., via a port scheduler or client scheduler, depending on the implementation) to prioritize packets from client devices whose RSSI or SNR is above a threshold.

[0134] At 416, the controller can determine, based on telemetry information, whether to initiate roaming of a client device from its current access point to another access point. In the context of a wireless network, roaming refers to the process by which a client device moves its connectivity (e.g., wireless communication connectivity) between one access point and another. For example, a client device may establish a connection with a first access point, and as the client device moves closer (e.g., in terms of physical proximity and / or signal strength) to another access point, it establishes a connection with that other access point. In some embodiments, the controller can determine, based on telemetry information, whether to initiate roaming of a client device from an associated access point to different access points within the network. In some embodiments, access points connected to different switches may be controlled by a single controller. When the connection from a client device to an access point weakens, the data rate may decrease, even though the packet flow from the network remains constant. Access points can buffer packets from client devices to manage rate differences. However, this buffer may overflow, causing traffic to accumulate at access points with weaker signals. In some embodiments, the connection from another client device to the same access point may strengthen, allowing the access point to transmit data to the client device at a higher rate. However, due to the lack of bandwidth sharing on the interface, the switch will continue to transmit the traffic of previously connected client devices at a high rate, even though their signals are weak, resulting in insufficient bandwidth for other client devices.

[0135] In this regard, if telemetry data indicates that a client device's RSSI or SNR has dropped below a threshold (indicating a weak signal), the switch's controller can determine whether to initiate roaming for that client device. The controller can identify other access points within the network and compare the client device's current connection quality (RSSI or SNR) with the signal strength and noise levels reported by these other access points. If the controller identifies another access point with a higher RSSI or SNR (indicating a stronger signal), the controller can initiate roaming for the client device from its current associated access point to an access point with better signal strength and / or signal-to-noise ratio.

[0136] At 418, the controller may initiate connection transfer from the current access point to another access point for a client device. For example, the controller may initiate connection transfer for a client device in response to initiating roaming from one access point to another. The connection may facilitate the transmission of data packets generated by an application running on the client device. These data packets may contain application-specific information and instructions. Instructions may refer to specific data within the data packets indicating actions to be taken by the receiving device. The transmission of the connection may include the transmission of the client's credentials (e.g., service set identifier, password, or security key). Credential roaming allows the secure synchronization of user credentials (e.g., certificates, private keys, and passwords) across multiple devices within the network. In this regard, the switch may facilitate roaming by utilizing various network-supported protocols (including, but not limited to, WPA / WPA2 Personal, IEEE 802.1X, 802.11i, and WPA / WPA2 Enterprise) to provide secure authentication between the client device and the destination access point during the roaming process. In some embodiments, based on feedback messages, the switch may transmit instructions via the controller to the access point to which the client device is currently connected to in preparation for roaming. In some embodiments, the switch may, via a controller, initiate an authentication process with the client device at the destination access point to which the client device is moving. Authentication is the process of verifying the identity of a device to ensure that only authorized entities can access the system or network. Authentication methods may include shared keys, cryptography, and Extensible Authentication Protocol (EAP) methods, among others.

[0137] At 420, the switch can transfer packets from the queue of the client scheduler associated with the leaving access point to the queue of the client scheduler associated with the destination access point. As explained above, when a client device experiences a weak signal with an access point, but another access point provides a stronger connection, the switch's controller can facilitate roaming of the client device with the weakened signal to the new access point. The switch can instruct the leaving access point to temporarily buffer data packets destined for the roaming client device via its controller. However, after the roaming client device successfully associates with the destination access point and disconnects from the leaving access point, any packets still buffered in the memory of the leaving access point can be cleared. This may result in packet loss, especially for low-latency applications.

[0138] In this regard, the switch may maintain a queue for each client device, where data packets are temporarily stored. During roaming, the switch may transfer these packets from the queue associated with the departing access point to the queue associated with the destination access point. In this respect, association may refer to the process by which a wireless client device connects to a specific access point within a wireless network. In some embodiments, the switch may facilitate the transfer of packets from a temporary storage area (a first port buffer) associated with the departing access point to a corresponding buffer (a second port buffer) on the port assigned to the destination access point. This process may occur via the same switch or involve multiple switches on the network. In some embodiments, the switch may transfer packets stored by the switch at the port buffer of the departing port of the client device associated with the departing access point to the port buffer of the destination port assigned to the destination access point, thereby minimizing packet loss during roaming. In some embodiments, the departing port and the destination port may be in the same switch. In some embodiments, the departing port and the destination port may be in different switches, for example, where the access points are connected to different switches. In embodiments where the access points are connected to different switches, packet transfer from the departing switch to the destination switch may occur over the network. For example, a single controller may control departing and destination access points connected to different switches within the network.

[0139] In some embodiments, the client scheduler can prioritize or reorder packets before forwarding them to the destination access point. For example, a priority level can be assigned to each data packet based on the application it belongs to. For instance, packets originating from a real-time video conferencing application can be assigned a higher priority than those from regular web browsing traffic. By prioritizing packets from low-latency applications, the switch can be configured to minimize latency while maintaining a seamless user experience for latency-sensitive applications.

[0140] It should be noted that, for the purpose of identifying or distinguishing one another or others, certain paragraphs of this disclosure may refer to terms such as "first" and "second" that are associated with apparatus, mode of operation, transmission chain, etc. These terms are not intended to relate entities (e.g., first apparatus and second apparatus) solely in time or according to sequence, although in some cases such relationships may exist. These terms also do not limit the number of possible entities (e.g., apparatuses) that can operate within a system or environment. The term coupling or connection (which may refer, for example, electronic or communication coupling or connection for data transmission purposes) includes both indirect and direct coupling and connection.

[0141] While this disclosure has been described with respect to specific embodiments, those skilled in the art will recognize that many modifications are possible. For example, although specific examples of rules (including triggering conditions and / or result actions) and processes for generating recommendations are described, other rules and processes may also be implemented. Embodiments of this disclosure may be implemented using various computer systems and communication technologies, including, but not limited to, the specific examples described herein.

[0142] Embodiments of this disclosure may be implemented using any combination of components and / or programmable processors and / or other programmable devices. The various processes described herein may be implemented on the same processor or different processors in any combination. Where a component is described as being configured to perform certain operations, such configuration may be implemented, for example, by designing electronic circuitry to perform operations, by programming programmable electronic circuitry (e.g., a microprocessor) to perform operations, or any combination thereof. Furthermore, while the embodiments described above may refer to specific hardware and software components, those skilled in the art will understand that different combinations of hardware and / or software components may also be used, and specific operations described as implemented in hardware may also be implemented in software, or vice versa.

[0143] Computer programs incorporating the various features of this disclosure may be encoded and stored on a variety of computer-readable storage media; suitable media include magnetic disks or magnetic tapes, optical storage media (e.g., optical discs (CDs) or DVDs (Digital Versatile Discs)), flash memory, and other non-transitory media. Computer-readable media encoding program code may be packaged together with a compatible electronic device, or the program code may be provided separately from the electronic device (e.g., via Internet download or as a separately packaged computer-readable storage media).

[0144] Therefore, although this disclosure has been described with respect to specific embodiments, it will be understood that this disclosure is intended to cover all modifications and equivalents within the scope of the appended claims.

[0145] It should be understood that the disclosed embodiments do not represent all claimed innovations. Therefore, certain aspects of this disclosure have not yet been discussed herein. Alternative embodiments may not have been proposed for specific parts of the innovation, or further undescribed alternative embodiments may be available for a portion, and this should not be construed as a waiver of such alternative embodiments. Therefore, it should be understood that other embodiments can be utilized, and functional, logical, operational, organizational, structural, and / or topological modifications can be made without departing from the scope of this disclosure. Thus, throughout this disclosure, all instances and / or embodiments are considered non-limiting.

[0146] Some embodiments described herein relate to methods. It should be understood that such methods can be computer-implemented methods (e.g., instructions stored in memory and executed on a processor). Where the methods described above instruct certain events to occur in a specific order, the order of certain events can be modified. Furthermore, certain events can be performed repeatedly, in parallel where possible, and sequentially as described above. Additionally, in some embodiments, one or more of the described events may be omitted.

[0147] Some embodiments described herein relate to a computer storage product having a non-transitory computer-readable medium (also referred to as a non-transitory processor-readable medium) having instructions or computer code on it for performing various computer-implemented operations. The computer-readable medium (or processor-readable medium) is non-transitory because it does not inherently contain transient propagation signals (e.g., propagating electromagnetic waves carrying information in a transmission medium such as space or cable). The media and computer code (also referred to as code) can be those media and computer code designed and constructed for a particular purpose. Examples of non-transitory computer-readable media include, but are not limited to, magnetic storage media such as hard disks, floppy disks, and magnetic tapes; optical storage media such as optical discs / digital video discs (CD / DVD), optical disc read-only memories (CD-ROMs), and holographic devices; magneto-optical storage media such as optical discs; carrier signal processing modules; and hardware devices specifically configured to store and execute program code, such as application-specific integrated circuits (ASICs), programmable logic devices (PLDs), read-only memories (ROMs), and random access memories (RAMs). Other embodiments described herein relate to computer program products that may include, for example, instructions and / or computer code discussed herein.

[0148] Some of the embodiments and / or methods described herein can be implemented by software (executing on hardware), hardware, or a combination thereof. Hardware modules may include, for example, general-purpose processors, field-programmable gate arrays (FPGAs), and / or application-specific integrated circuits (ASICs). Software modules (executing on hardware) can be expressed in various software languages ​​(e.g., computer code), including C, C++, Java, etc. TM Ruby, Visual Basic TMand / or other object-oriented, procedural, or other programming languages ​​and development tools. Examples of computer code include, but are not limited to, microcode or microinstructions, such as machine instructions generated by a compiler, code for generating web page services, and files containing high-level instructions executed by a computer using an interpreter. For example, embodiments may be implemented using Python, Java, JavaScript, C++, and / or other programming languages ​​and software development tools. For example, embodiments may be implemented using imperative programming languages ​​(e.g., C, Fortran, etc.), functional programming languages ​​(Haskell, Erlang, etc.), logic programming languages ​​(e.g., Prolog), object-oriented programming languages ​​(e.g., Java, C++, etc.), or other suitable programming languages ​​and / or development tools. Additional examples of computer code include, but are not limited to, control signals, encrypted code, and compressed code.

[0149] The accompanying drawings are for illustrative purposes only and are not intended to limit the scope of the subject matter described herein. The drawings are not necessarily drawn to scale; in some instances, various aspects of the subject matter disclosed herein may be exaggerated or enlarged in the drawings to facilitate understanding of the different features. In the drawings, similar reference characters generally refer to similar features (e.g., elements with similar functions and / or structures).

[0150] Actions performed as part of the disclosed method can be ordered in any suitable manner. Therefore, embodiments can be constructed in which processes or steps are performed in an order different from the illustrated order, which may include the simultaneous execution of some steps or processes, even if shown as sequential actions in the illustrative embodiments. In other words, it should be understood that such features are not necessarily limited to a particular execution order, but can be performed serially, asynchronously, concurrently, in parallel, simultaneously, synchronously, and / or similarly in a manner consistent with this disclosure. Consequently, some of these features may be contradictory, as they cannot be implemented simultaneously in a single embodiment. Similarly, some features may be applicable to one aspect of the innovation and not to others.

[0151] Where a range of values ​​is provided, it should be understood that, unless the context explicitly indicates otherwise, every midpoint value between the upper and lower limits of the range and one-tenth of the unit to the lower limit, as well as any other stated or midpoint value within the range, is included in this disclosure. The upper and lower limits of these smaller ranges may be independently included within the smaller ranges, but are subject to any expressly excluded limitations within the ranges. Where the range includes one or both of the limitations, the range excluding one or both of the included limitations is also included in this disclosure.

[0152] The phrase “and / or” as used herein in the specification and embodiments should be understood to mean “any or both” of the elements so combined, that is, elements that exist together in some cases and separately in others. Multiple elements listed with “and / or” should be interpreted in the same way, that is, “one or more” of the elements so connected. In addition to the elements explicitly identified by the “and / or” clause, other elements may optionally be present, whether related to or unrelated to those explicitly identified. Thus, as a non-limiting example, in one embodiment, when used in conjunction with open-ended language (e.g., “including”), a reference to “A and / or B” may refer to only A (optionally including elements other than B); in another embodiment, only B (optionally including elements other than A); in yet another embodiment, both A and B (optionally including other elements); and so on.

[0153] As used herein in the specification and in the embodiments, “or” should be understood to have the same meaning as “and / or” as defined above. For example, when separating items in a list, “or” or “and / or” should be interpreted as inclusive, i.e., including at least one, but also including several elements or more than one element in a list of elements, as well as optional additional unlisted items. Only terms that explicitly indicate the opposite, such as “only one” or “exactly one”, or, when used in the embodiments, “consisting of…”, will refer to including several elements or exactly one element in a list of elements. In general, the word “or” as used herein should only be interpreted as indicating an exclusive alternative (i.e., “one or the other, but not both”), provided that it is preceded by an exclusive term, such as “either one,” “one,” “only one,” or “exactly one.” When used in the embodiments, “consisting substantially of…” should have its ordinary meaning as used in the field of patent law.

[0154] As used herein in the specification and in the embodiments, referring to a list of one or more elements, the phrase "at least one" should be understood to mean at least one element selected from any or more elements in the list of elements, but does not necessarily include every and at least one of each element expressly listed in the list of elements, and does not exclude any combination of elements in the list of elements. This definition also allows for the optional presence of other elements in addition to those expressly identified in the list of elements referred to by the phrase "at least one," whether or not these elements are related to those expressly identified elements. Therefore, as a non-limiting example, in one embodiment, “at least one of A and B” (or equivalently, “at least one of A or B”, or equivalently, “at least one of A and / or B”) may refer to at least one, optionally including multiple A’s, while B is absent (and optionally including elements other than B); in another embodiment, at least one, optionally including more than one B, while A is absent (and optionally including elements other than A); in yet another embodiment, at least one (optionally including more than one A) and at least one (optionally including more than one B) (and optionally including other elements); etc.

[0155] In the embodiments and in the foregoing description, all transitional phrases, such as “comprising,” “including,” “carrying,” “having,” “containing,” “involving,” “holding,” “consisting of,” etc., should be understood as open-ended, that is, meaning including but not limited to. As described in Section 2111.03 of the U.S. Patent Examination Process Manual, only the transitional phrases “consisting of” and “substantially consisting of” should be closed or semi-closed transitional phrases, respectively.

Claims

1. A method comprising: The controller receives feedback messages from each of a plurality of access points, wherein each access point is connected to a corresponding port among a plurality of ports of the switch, and the feedback messages include telemetry information about each of one or more clients connected to each access point; The controller determines, based at least on the telemetry information, the roaming of one or more clients from a first access point among the plurality of access points to a second access point among the plurality of access points; and The controller initiates a transmission connecting the client to the first access point and the second access point, the transmission including transmitting data stored on the first access point of the client to the second access point.

2. The method of claim 1, wherein the telemetry data of the feedback message includes at least one of Radio Signal Strength Indicator (RSSI) or Signal-to-Noise Ratio (SNR).

3. The method of claim 2, further comprising initiating the roaming of the client by the controller in response to one of the RSSI or signal-to-noise ratio falling below a threshold.

4. The method of claim 1, further comprising initiating the transmission by transmitting one or more instructions to one or more of the client, the first access point, or the second access point.

5. The method of claim 1, further comprising the switch transmitting packets stored by the switch at a first port buffer of a first port of the client associated with the first access point to a second port buffer of the switch or a second switch assigned to the second access point.

6. The method of claim 1, wherein the transmission of the connection includes the transmission of the client's credentials.

7. The method of claim 1, further comprising adjusting the service rate by the switch at least based on the telemetry information.

8. A system comprising: A switch that communicates with multiple access points, each of which has a connection to one or more clients; The controller of the switch, the controller being configured to: A feedback message is received from each of the plurality of access points, wherein each access point is connected to a corresponding port among the plurality of ports of the switch, and the feedback message includes telemetry information about each of the one or more clients connected to each access point. Based at least on the telemetry information, determine the roaming of the client among the one or more clients from the first access point among the plurality of access points to the second access point among the plurality of access points; and The initiation of the connection between the client and the first access point to the second access point includes transmitting data stored on the client's first access point to the second access point.

9. The system of claim 8, wherein the telemetry data of the feedback message includes at least one of Radio Signal Strength Indicator (RSSI) or Signal-to-Noise Ratio (SNR).

10. The system of claim 9, wherein the controller is further configured to initiate the roaming of the client in response to one of the RSSI or signal-to-noise ratio falling below a threshold.

11. The system of claim 8, wherein the controller is further configured to initiate the transmission by transmitting one or more instructions to one or more of the client, the first access point, or the second access point.

12. The system of claim 8, wherein the switch is further configured to transmit packets stored by the switch at a first port buffer of a first port of the client associated with the first access point to a second port buffer of the switch or a second switch assigned to a second port of the second access point.

13. The system of claim 8, wherein the transmission of the connection includes the transmission of the client's credentials.

14. The system of claim 8, wherein the controller is further configured to adjust the service rate based at least on the telemetry information.

15. A system comprising: One or more switches coupled to a network to communicate with a plurality of access points, each of which is associated with a plurality of clients, each of the one or more switches comprising: Multiple ports, each of which is connected to an access point in a plurality of access points, each of which includes a port scheduler to aggregate packets received by the switch from the network for the plurality of clients associated with the access point; and A client scheduler for each of the plurality of clients associated with the access point at each port, each client scheduler being configured to schedule the packets aggregated by the port scheduler for clients among the plurality of clients of the access point based on at least one or more priority levels; and Each client scheduler is configured to adjust the rate at which scheduled packets are transmitted to the client among the plurality of clients based at least on the one or more priority levels and telemetry data from one or more feedback messages received from the access point.

16. The system of claim 15, wherein each port scheduler is further configured to select each client scheduler based at least on a selection from one or more scheduling algorithms.

17. The system of claim 15, wherein the one or more switches are further configured to store aggregated packets in a packet buffer, and wherein each client scheduler stores one or more scheduled packets from the packet buffer in a priority queue for storing packets having priority levels among the one or more priority levels.

18. The system of claim 15, wherein the one or more switches are further configured to receive the one or more feedback messages from each access point to which the switches are connected, wherein the one or more telemetry data of the one or more feedback messages include at least one of Radio Signal Strength Indicator (RSSI) or Signal-to-Noise Ratio (SNR).

19. The system of claim 15, wherein the one or more feedback messages identify the client using the machine access control MAC address of the client, identify the MAC address of the access point as the source address, and identify the MAC address of the switch in the one or more switches as the destination address.

20. The system of claim 15, wherein the switch is further configured via one of the port scheduler or the client scheduler to reduce the rate at which scheduled packets are transmitted to the client in response to the radio signal strength indicator or signal-to-noise ratio of the connection from the client to the access point falling below a threshold.

21. The system of claim 15, wherein the switch is further configured via one of the port scheduler or the client scheduler to prioritize packets from one or more clients whose radio signal strength indicator or signal-to-noise ratio is above a threshold.

22. The system of claim 15, wherein the switches of the one or more switches are further configured to, in response to the client switching from the access point to a second access point connected at a second port to the switch or a second switch of the one or more switches, transmit packets in one or more queues of the client to one or more second queues of a second client scheduler connected to the second access point at the second port.