System and method for evaluating network speed

The system addresses inaccuracies in network speed measurement by using network identifiers to select the nearest server and calculate speed metrics, offering a user-friendly and efficient method for evaluating network performance across diverse platforms.

WO2025196796A1PCT designated stage Publication Date: 2025-09-25JIO PLATFORMS LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
PCT/IN2025/050145
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-03-21
Filing Date
2025-02-06
Publication Date
2025-09-25

AI Technical Summary

Technical Problem

Existing network speed measurement techniques are inaccurate, cumbersome, and inefficient, often relying on a single server, overloading network resources, and failing to consider user location, leading to poor user experience and unreliable performance monitoring.

Method used

A system and method that utilizes a speed test widget on user equipment to determine location using network identifiers (MCC, MNC, LAC, CID) for selecting the nearest speed test server, transmitting data packets, and calculating download, upload speed, and latency, with a cross-platform framework for consistent functionality.

Benefits of technology

Provides accurate, efficient, and user-friendly network speed testing with comprehensive metrics displayed directly on the user equipment, optimizing the speed test process and enhancing user experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure IN2025050145_25092025_PF_FP_ABST
    Figure IN2025050145_25092025_PF_FP_ABST
Patent Text Reader

Abstract

The present disclosure may relate to a system (102) and a method (500) for evaluating network speed. The system may utilize a speed test widget that enables the initiation of network speed measurements with minimal user interaction. Upon receiving a speed measurement request, the system (102) may determine user's current location to select a most appropriate server from a set of available servers (302-1, 302-2…302-n). By transmitting data packets between the user's device and the selected server, the system (102) may calculate key speed metrics such as download speed, upload speed, and latency. The results are then displayed on the user's device, providing information on the network's performance. The location- based server selection enhances the accuracy and relevance of the speed test, improving user experience.
Need to check novelty before this filing date? Find Prior Art

Description

SYSTEM AND METHOD FOR EVALUATING NETWORK SPEEDRESERVATION OF RIGHTS

[0001] A portion of the disclosure of this patent document contains material, which is subject to intellectual property rights such as, but are not limited to, copyright, design, trademark, Integrated Circuit (IC) layout design, and / or trade dress protection, belonging to Jio Platforms Limited (JPL) or its affiliates (hereinafter referred as owner). The owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all rights whatsoever. All rights to such intellectual property are fully reserved by the owner.FIELD OF THE DISCLOSURE

[0002] The embodiments of the present disclosure generally relate to the field of telecommunications. In particular, the present disclosure relates to a system and a method for evaluating network speed.DEFINITION

[0003] As used in the present disclosure, the following terms are generally intended to have the meaning as set forth below, except to the extent that the context in which they are used to indicate otherwise.

[0004] Speed test widget refers to a user interface component displayed on the home screen of a user equipment (UE) that allows users to initiate network speed tests with minimal interaction.

[0005] User equipment (UE) refers to any device, capable of connecting to a network and running the speed test widget, such as smartphones, tablets, laptops, or other internet-connected devices with display capabilities.

[0006] Speed measurement request refers to a user-initiated action to begin the process of evaluating network speed through the speed test widget.

[0007] Location determination module refers to a component of the system that obtains the current geographical location of the UE.

[0008] Server selection module refers to a component that chooses the most appropriate speed test server based on the UE's location.

[0009] Speed test execution module refers to a component that manages the process of transmitting data packets between the UE and the selected speed test server.

[0010] Speed metric calculation module refers to a component that computes various measures of network performance based on the transmitted data packets.

[0011] Speed metric refers to a quantitative measure of network performance, such as download speed, upload speed, or latency.

[0012] Cross-platform development framework refers to a set of tools and libraries that enable the creation of software applications that can run on multiple operating systems or platforms.

[0013] Mobile Country Code (MCC) refers to a three-digit code that uniquely identifies the country of a mobile network.

[0014] Mobile Network Code (MNC) refers to a two or three-digit code that identifies a specific mobile network operator within a country.

[0015] Location Area Code (LAC) refers to a unique number assigned to a group of base stations within a specific geographical area in a mobile network.

[0016] Cell-ID (CID) refers to a unique identifier for a specific cell tower or sector in a mobile network.

[0017] Hierarchical approach refers to a multi-step method of determining the location of a User Equipment (UE) with increasing precision. This approach utilizes a sequence of network identifiers, each providing more specific location information than the last. The hierarchy typically proceeds from broad geographic areas to increasingly localized regions, using identifiers such as Mobile Country Code (MCC), Mobile Network Code (MNC), Location Area Code (LAC), and Cell- ID (CID).BACKGROUND OF THE DISCLOSURE

[0018] The following description of related art is intended to provide background information pertaining to the field of the disclosure. This section may include certain aspects of the art that may be related to various features of the present disclosure. However, it should be appreciated that this section be used only to enhance the understanding of the reader with respect to the present disclosure, and not as admissions of prior art.

[0019] Wireless communication technology has rapidly evolved over the past few decades, progressing from analog voice services in the first generation to the current fifth generation (5G) technology offering faster data speeds, low latency, and the ability to connect multiple devices simultaneously. As wireless technologies advance, there is an increasing need to meet 5G requirements and deliver high-quality service to customers.

[0020] The complexity of networks has grown significantly due to higher speed requirement for data transfer, increased interconnected units, and the integration of various sub-networks into larger ones. Users can now transmit different types of data simultaneously, including text, voice, video, and multimedia files. This complexity presents a major challenge in testing and troubleshooting both new and existing communication networks, making it difficult for network operators to identify the causes of performance issues.

[0021] The demand for fast and reliable internet is escalating, particularly for activities such as gaming, audio, and video streaming on mobile devices. Users seek better network quality to minimize delays, leading to a growing interest in realtime monitoring of network speed. While speed tests are commonly performed on individual devices, conducting multiple tests simultaneously can overload servers, affecting background operations and result processing.

[0022] Existing network speed measurement techniques typically involve a user equipment (client) establishing a connection with a server through a three-way handshake based on TCP / IP protocol. The client sends a test data packet, starts a timer, and generates a speed measurement result based on the reception and timing of a feedback data packet from the server. However, this approach has several limitations: a. Reliance on a single speed measuring server can lead to errors, especially across different geographical regions. b. Sending data packets through the client increases application load, negatively impacting user experience. c. Existing application performance measurement tools often fail to test the network independently. d. Current methods lack the ability to efficiently select and manage multiple radio nodes in an optimized manner. e. The process of initiating and conducting speed tests is often cumbersome and time-consuming for users. f. Existing solutions do not provide a user-friendly interface for quick and easy access to network speed information. g. Many current systems fail to consider the user's location when selecting the most appropriate speed test server.

[0023] These limitations result in inaccurate speed measurements, poor user experience, and inefficient network performance monitoring. Users and network operators alike face difficulties in obtaining reliable, real-time information aboutnetwork speeds, hindering their ability to make informed decisions about network usage and optimization.

[0024] It is therefore an objective of the present invention to provide a system and method for evaluating network speed that addresses these limitations. The present invention aims to overcome the shortcomings of existing prior art and provide a more accurate, efficient, and user-friendly method for performing network speed tests.

[0025] Conventional systems and methods face difficulty in evaluating network speed. There is, therefore, a need in the art to provide a method and a system that can overcome the shortcomings of the existing prior arts.SUMMARY OF THE DISCLOSURE

[0026] In an exemplary embodiment, a system for evaluating network speed is described. The system comprises a memory and one or more processors configured to execute a set of instructions stored in the memory. The processors are configured to receive, by a receiving module, a speed measurement request initiated by a user equipment (UE) through an interface of the UE. The processors are further configured to obtain, by a location determination module, a current location of the UE in response to the speed measurement request. The processors are also configured to select, by a server selection module, a nearest speed test server from a plurality of speed test servers based on the obtained current location of the UE. Additionally, the processors are configured to initiate, by a speed test execution module, a speed test by transmitting data packets between the UE and the selected speed test server. The processors are further configured to calculate, by a speed metric calculation module, at least one speed metric based on the transmitted data packets. Finally, the processors are configured to display the calculated at least one speed metric on the UE through the interface.

[0027] In some embodiments, the one or more processors are further configured to store the calculated at least one speed metric in a database.

[0028] In some embodiments, the current location is obtained upon a single input provided to the interface of the UE. The interface includes a speed test widget displayed on a home screen of the UE (108). The location determination module is configured to obtain the current location of the UE by retrieving a combination of at least two of: a Mobile Country Code (MCC), a Mobile Network Code (MNC), a Location Area Code (LAC), and a Cell-ID (CID) associated with the UE.

[0029] In some embodiments, the server selection module is configured to select the nearest speed test server by determining distances between the current location of the UE and each of the plurality of speed test servers, and selecting the speed test server with the shortest determined distance.

[0030] In some embodiments, at least one speed metric comprises a download speed, an upload speed, and a latency based on the transmitted data packets. The speed metric calculation module is configured to measure a time taken for first data packets to travel from the UE to the selected speed test server and back to calculate the latency, measure an amount of second data packets received by the UE from the selected speed test server in a first predetermined time period to calculate the download speed, and measure an amount of third data packets sent by the UE to the selected speed test server in a second predetermined time period to calculate the upload speed.

[0031] In some embodiments, the one or more processors are further configured to compare the calculated speed metrics with predetermined thresholds and generate a performance assessment of the network based on the comparison, wherein the performance assessment includes a qualitative rating and specific recommendations for improvement.

[0032] In some embodiments, the speed test widget is implemented using a cross-platform development framework. The cross-platform development framework is configured to generate compatible versions of the speed test widget for multiple operating systems of different UEs, ensuring consistent functionality across diverse mobile platforms.

[0033] In another exemplary embodiment, a method for evaluating network speed is described. The method comprises receiving, by a receiving module, a speed measurement request initiated by a user equipment (UE) through an interface of the UE. The method further comprises obtaining, by a location determination module, a current location of the UE in response to the speed measurement request. The method also comprises selecting, by a server selection module, a nearest speed test server from a plurality of speed test servers based on the obtained current location of the UE. Additionally, the method comprises initiating, by a speed test execution module, a speed test by transmitting data packets between the UE and the selected speed test server. The method further comprises calculating, by a speed metric calculation module, at least one speed metric based on the transmitted data packets. Finally, the method comprises displaying the calculated at least one speed metric on the UE through the interface.

[0034] In some embodiments, the method further comprises storing the calculated at least one speed metric in a database.

[0035] In some embodiments, the current location is obtained upon a single input provided to the interface of the UE. The interface includes a speed test widget displayed on a home screen of the UE (108). Obtaining the current location of the UE comprises retrieving a combination of at least two of: a Mobile Country Code (MCC), a Mobile Network Code (MNC), a Location Area Code (LAC), and a Cell- ID (CID) associated with the UE.

[0036] In some embodiments, selecting the nearest speed test server comprises determining distances between the current location of the UE and each of the plurality of speed test servers, and selecting the speed test server with the shortest determined distance.

[0037] In some embodiments, the at least one speed metric comprises a download speed, an upload speed, and a latency based on the transmitted data packets. Calculating the at least one speed metric comprises measuring a time taken for first data packets to travel from the UE to the selected speed test server and back to calculate the latency, measuring an amount of second data packets received by the UE from the selected speed test server in a first predetermined time period to calculate the download speed, and measuring an amount of third data packets sent by the UE to the selected speed test server in a second predetermined time period to calculate the upload speed.

[0038] In some embodiments, the method further comprises comparing the calculated speed metrics with predetermined thresholds and generating a performance assessment of the network based on the comparison, wherein the performance assessment includes a qualitative rating and specific recommendations for improvement.

[0039] In some embodiments, the speed test widget is implemented using a cross-platform development framework. The cross-platform development framework is configured to generate compatible versions of the speed test widget for multiple operating systems of different UEs, ensuring consistent functionality across diverse mobile platforms.

[0040] In yet another exemplary embodiment, a non-transitory computer- readable medium storing instructions is described. When executed by one or more processors of a system for evaluating network speed in a network, the instructions cause the one or more processors to perform operations comprising receiving, by areceiving module, a speed measurement request initiated by a user equipment (UE) through an interface of the UE. The operations further comprise obtaining, by a location determination module, a current location of the UE in response to the speed measurement request, wherein the current location is obtained upon a single input provided to the speed test widget. The operations also comprise selecting, by a server selection module, a nearest speed test server from a plurality of speed test servers based on the obtained current location of the UE. Additionally, the operations comprise initiating, by a speed test execution module, a speed test by transmitting data packets between the UE and the selected speed test server. The operations further comprise calculating, by a speed metric calculation module, at least one speed metric based on the transmitted data packets. Finally, the operations comprise displaying the calculated at least one speed metric on the UE.

[0041] In an additional exemplary embodiment, a user equipment communicatively coupled to a system for evaluating network speed in a network is described. The system comprises a memory and one or more processors configured to execute a set of instructions stored in the memory to perform the method as claimed in the method for evaluating network speed. This user equipment is configured to interact with the system to initiate and receive results of network speed evaluations.

[0042] The foregoing general description of the illustrative embodiments and the following detailed description thereof are merely exemplary aspects of the teachings of this disclosure and are not restrictive.OBJECTS OF THE DISCLOSURE

[0043] Some of the objects of the present disclosure, which at least one embodiment herein satisfies are as listed herein below.

[0044] An object of the present disclosure is to provide an improved system and a method for evaluating a speed test widgetA

[0045] An object of the present disclosure is to provide a user-friendly speed test widget that can be easily created and displayed on the home screen of a user equipment.

[0046] An object of the present disclosure is to enable quick and efficient network speed measurements through a single click interaction with the speed test widget.

[0047] An object of the present disclosure is to improve the accuracy of network speed tests by selecting the nearest speed test server based on the current location of the user equipment.

[0048] An object of the present disclosure is to provide comprehensive speed metrics including download speed, upload speed, and latency based on transmitted data packets.

[0049] An object of the present disclosure is to offer a cross-platform solution that ensures consistent functionality of the speed test widget across diverse mobile platforms and operating systems.

[0050] An object of the present disclosure is to enable performance assessment of the network by comparing calculated speed metrics with predetermined thresholds.

[0051] An object of the present disclosure is to provide a method for storing and retrieving speed test results for future reference and analysis.

[0052] An object of the present disclosure is to optimize the speed test process by efficiently determining the user equipment's location using various network identifiers.

[0053] An object of the present disclosure is to enhance user experience by displaying calculated speed metrics directly on the user equipment in a clear and understandable format.BRIEF DESCRIPTION OF DRAWINGS

[0054] The accompanying drawings, which are incorporated herein, and constitute a part of this disclosure, illustrate exemplary embodiments of the disclosed methods and systems in which like reference numerals refer to the same parts throughout the different drawings. Components in the drawings are not necessarily to scale, emphasis instead being placed upon clearly illustrating the principles of the present disclosure. Some drawings may indicate the components using block diagrams and may not represent the internal circuitry of each component. It will be appreciated by those skilled in the art that disclosure of such drawings includes the disclosure of electrical components, electronic components or circuitry commonly used to implement such components.

[0055] FIG. 1 illustrates an exemplary network architecture of a system, in accordance with embodiments of the present disclosure.

[0056] FIG. 2 illustrates an exemplary bl of a system, in accordance with embodiments of the present disclosure.

[0057] FIG. 3 illustrates an exemplary block diagram of a network architecture, in accordance with embodiments of the present disclosure.

[0058] FIG. 4 illustrates an exemplary flow diagram illustrating a method for evaluating network speed, in accordance with embodiments of the present disclosure.

[0059] FIG. 5 illustrates an exemplary flowchart of a method, in accordance with embodiments of the present disclosure.

[0060] FIG. 6 illustrates an exemplary computer system in which or with which embodiments of the present disclosure may be implemented.

[0061] The foregoing shall be more apparent from the following more detailed description of the disclosure.LIST OF REFERENCE NUMERALS100 - Network architecture102 - System104- Network106 - Centralized server108-1, 108-2... 108-N - User equipment110-1, 110-2... 110-N - Users202 - One or more processor(s)206 - I / O interface(s)208 - Processing module(s)210 - Databases212- Receiving module214- Location determination module216-Server selection module218-Speed test execution module220-Speed metric calculation module222- Other module(s)302-1, 302-2. . . 302-N- Speed test servers610 - External Storage Device620 - Bus630 - Main Memory640 - Read Only Memory650 - Mass Storage Device660 - Communication Port670- ProcessorDETAILED DESCRIPTION OF THE DISCLOSURE

[0062] In the following description, for the purposes of explanation, various specific details are set forth in order to provide a thorough understanding of embodiments of the present disclosure. It will be apparent, however, that embodiments of the present disclosure may be practiced without these specific details. Several features described hereafter can each be used independently of one another or with any combination of other features. An individual feature may not address all of the problems discussed above or might address only some of the problems discussed above. Some of the problems discussed above might not be fully addressed by any of the features described herein.

[0063] The ensuing description provides exemplary embodiments only, and is not intended to limit the scope, applicability, or configuration of the disclosure. Rather, the ensuing description of the exemplary embodiments will provide those skilled in the art with an enabling description for implementing an exemplary embodiment. It should be understood that various changes may be made in the function and arrangement of elements without departing from the spirit and scope of the disclosure as set forth.

[0064] Specific details are given in the following description to provide a thorough understanding of the embodiments. However, it will be understood by one of ordinary skill in the art that the embodiments may be practiced without these specific details. For example, circuits, systems, networks, processes, and other components may be shown as components in block diagram form in order not to obscure the embodiments in unnecessary detail. In other instances, well-known circuits, processes, algorithms, structures, and techniques may be shown without unnecessary detail in order to avoid obscuring the embodiments.

[0065] Also, it is noted that individual embodiments may be described as a process which is depicted as a flowchart, a flow diagram, a data flow diagram, a structure diagram, or a block diagram. Although a flowchart may describe theoperations as a sequential process, many of the operations can be performed in parallel or concurrently. In addition, the order of the operations may be re-arranged. A process is terminated when its operations are completed but could have additional steps not included in a figure. A process may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc. When a process corresponds to a function, its termination can correspond to a return of the function to the calling function or the main function.

[0066] The word “exemplary” and / or “demonstrative” is used herein to mean serving as an example, instance, or illustration. For the avoidance of doubt, the subject matter disclosed herein is not limited by such examples. In addition, any aspect or design described herein as “exemplary” and / or “demonstrative” is not necessarily to be constmed as preferred or advantageous over other aspects or designs, nor is it meant to preclude equivalent exemplary structures and techniques known to those of ordinary skill in the art. Furthermore, to the extent that the terms “includes,” “has,” “contains,” and other similar words are used in either the detailed description or the claims, such terms are intended to be inclusive in a manner similar to the term “comprising” as an open transition word without precluding any additional or other elements.

[0067] Reference throughout this specification to “one embodiment” or “an embodiment” or “an instance” or “one instance” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the present disclosure. Thus, the appearances of the phrases “in one embodiment” or “in an embodiment” in various places throughout this specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.

[0068] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the disclosure. Asused herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and / or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and / or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof. As used herein, the term “and / or” includes any and all combinations of one or more of the associated listed items.

[0069] The demand for fast and reliable internet is increasing, especially for activities like gaming, audio, and video streaming on mobile devices. Users want better network quality to minimize delays, leading to a growing interest in real-time monitoring of network speed. Speed tests are commonly done on individual devices. However, when many devices perform speed tests simultaneously, it can overload the server and affect background operations and result processing.

[0070] Existing speed test techniques are designed to measure the latency, jitter, download, and upload bandwidth of the network connection between a device and one or more speed test servers. These tests can be performed on various platforms such as the web, mobile phones, tablets, desktop computers, TVs, and routers. During the speed test, lost packets and bi-directional traceroutes are measured, and device and network information is collected. The objective is to capture a snapshot of the internet for a specific time, place, device, and network each time a user initiates a request for a speed test.

[0071] However, these existing speed test techniques often fall short due to the absence of nearby speed test servers. The reliability and functionality of these systems are heavily dependent on the proximity of servers to the user's location. When the speed test servers are situated far away, the results may not truly reflect the user's actual internet speed.

[0072] Thus, the existing speed test techniques are often inaccurate and inconvenient for evaluating the speed of network connections.

[0073] The present disclosure aims to overcome the above-mentioned and other existing problems in this field of technology by providing an improved system and method for evaluating network speed using a speed test widget.

[0074] This disclosure seeks to address the challenges of prior art by offering a system and method that performs speed tests in a network more accurately, efficiently, conveniently, and in an optimized way.

[0075] The aspects of the present disclosure are directed to a system and method for evaluating network speed using a user-friendly speed test widget. The invention provides a novel approach to network speed testing by enabling users to create and interact with a speed test widget displayed on the home screen of their user equipment. The system utilizes location-based server selection and efficient data packet transmission to deliver accurate speed metrics, including download speed, upload speed, and latency. Furthermore, the disclosed invention offers crossplatform compatibility, ensuring consistent functionality across diverse mobile platforms, thereby enhancing user experience and providing valuable insights into network performance.

[0076] The various embodiments throughout the disclosure will be explained in more detail with reference to FIGS. 1-6.

[0077] As illustrated in FIG. 1, one or more user equipment (108-1, 108- 2...108-N) may be connected to a system (102) for evaluating network speed through a network (104). A person of ordinary skill in the art will understand that the one or more user equipment (108-1, 108-2... 108-N) may be collectively referred to as UEs (108) and individually referred to as a UE (108). One or more users mayprovide one or more speed measurement requests to the system (102) through a speed test widget displayed on a home screen of the UE (108).

[0078] In an embodiment, the UE (108) may include, but not be limited to, a mobile phone, a laptop, etc. Further, the UE (108) may include one or more inbuilt or externally coupled accessories including, but not limited to, a visual aid device such as a camera, audio aid, microphone, or keyboard. Furthermore, the UE (108) may include a smartphone, virtual reality (VR) devices, augmented reality (AR) devices, a general-purpose computer, a desktop, a personal digital assistant, a tablet computer, and a mainframe computer. Additionally, input devices for receiving input from the user such as a touchpad, touch-enabled screen, electronic pen, and the like may be used.

[0079] In an embodiment, the network (104) may include, by way of example but not limitation, at least a portion of one or more networks having one or more nodes that transmit, receive, forward, generate, buffer, store, route, switch, process, or a combination thereof, etc. one or more messages, packets, signals, waves, voltage or current levels, some combination thereof, or so forth. The network (104) may also include, by way of example but not limitation, one or more of a wireless network, a wired network, an internet, an intranet, a public network, a private network, a packet-switched network, a circuit-switched network, an ad hoc network, an infrastructure network, a 4G network, a 5G network, or some combination thereof.

[0080] In an embodiment, the system (102) may continuously collect speed test data for a selected UE ( 108) from a plurality of speed test servers. The processor (202) may generate speed metrics based on the collected data and the user-defined parameters. If updates are needed, the system may reconfigure the speed test and provide these results to the UE (108) for display. The system (102) may be connected to a centralized server (106).

[0081] Although FIG. 1 shows exemplary components of the network architecture (100), in other embodiments, the network architecture (100) may include fewer components, different components, differently arranged components, or additional functional components than depicted in FIG. 1. Additionally, or alternatively, one or more components of the network architecture (100) may perform functions described as being performed by one or more other components of the network architecture (100).

[0082] FIG. 2 illustrates an example block diagram (200) of a proposed system (102) for evaluating network speed, in accordance with an embodiment of the present disclosure.

[0083] Referring to FIG. 2, in an embodiment, the system ( 102) may include one or more processor(s) (202). The one or more processor(s) (202) may be implemented as one or more microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units, logic circuitries, and / or any devices that process data based on operational instructions. Among other capabilities, the one or more processor(s) (202) may be configured to fetch and execute computer-readable instructions stored in a memory (204) of the system (102). The memory (204) may be configured to store one or more computer- readable instructions or routines in a non-transitory computer readable storage medium, which may be fetched and executed to evaluate network speed and calculate speed metrics. The memory (204) may comprise any non-transitory storage device including, for example, volatile memory such as random-access memory (RAM), or non-volatile memory such as erasable programmable read only memory (EPROM), flash memory, and the like.

[0084] In an embodiment, the system (102) may include an interface(s) (206). The interface(s) (206) may comprise a variety of interfaces, for example, interfaces for data input and output devices (RO), storage devices, and the like. The interface(s) (206) may facilitate communication through the system (102). Theinterface(s) (206) may also provide a communication pathway for one or more components of the system (102). Examples of such components include, but are not limited to, processing module(s) (208), and a database (210) for storing speed test results. Further, the processing module(s) (208) may include a receiving module (212), a location determination module (214), a server selection module (216), a speed test execution module (218), a speed metric calculation module (220), and other modules (222) which may include a notification module and a recommendation module (not shown). The notification module notifies to a user by a message or email for example if latency more than 20 ms and the recommendation module may suggest an action such as switch to other application where the latency is low or no effect.

[0085] The receiving module (212) may receive a speed measurement request initiated by a UE (108) through a speed test widget. The location determination module (214) may obtain a current location of the UE (108). The server selection module (216) may select a nearest speed test server from a plurality of speed test servers. The speed test execution module (218) may initiate a speed test by transmitting data packets between the UE (108) and the selected speed test server. The speed metric calculation module (220) may calculate at least one speed metric based on the transmitted data packets. The calculated speed metrics may be displayed on the UE (108) through the speed test widget displayed on the home screen.

[0086] In an embodiment, the processing module(s) (208) may be implemented as a combination of hardware and programming (for example, programmable instructions) to implement one or more functionalities of the processing module(s) (208). In examples described herein, such combinations of hardware and programming may be implemented in several different ways. For example, the programming for the processing module(s) (208) may be processorexecutable instructions stored on a non-transitory machine -readable storage medium and the hardware for the processing module(s) (208) may comprise aprocessing resource (for example, one or more processors), to execute such instructions. In the present examples, the machine-readable storage medium may store instructions that, when executed by the processing resource, implement the processing module(s) (208). In such examples, the system may comprise the machine-readable storage medium storing the instructions and the processing resource to execute the instructions, or the machine-readable storage medium may be separate but accessible to the system and the processing resource. In other examples, the processing module(s) (208) may be implemented by electronic circuitry. In an aspect, the ‘instructions’ refer to tasks executed by the one or more processors (202), such as receiving the speed measurement request, determining the UE's location, selecting the nearest server, initiating the speed test, calculating metrics like download speed, upload speed and latency, and displaying the results on the UE (108).

[0087] Although FIG. 2 shows exemplary components of the system (102), in other embodiments, the system (102) may include fewer components, different components, differently arranged components, or additional functional components than depicted in FIG. 2. Additionally, or alternatively, one or more components of the system (102) may perform functions described as being performed by one or more other components of the system (102).

[0088] The system (102) for evaluating network speed may comprise a memory (204) and one or more processors (202) configured to execute instructions stored in the memory (204). The system (102) may include various modules for performing different functions related to network speed evaluation.

[0089] The system (102) may include a receiving module (212) that may receive a speed measurement request initiated by a user equipment (UE) (108) through a speed test widget. This widget may be displayed on the home screen of the UE (108) and may be creatable by a user of the UE (108). The speed test widget may provide a convenient way for users to initiate network speed tests directly fromtheir device's home screen. For example, the widget may appear as an icon or small application window on the UE's home screen, allowing users to start a speed test with a single tap or click.

[0090] Upon receiving the speed measurement request, a location determination module (214) of the system (102) may obtain the current location of the UE (108). This location information may be crucial for selecting an appropriate speed test server. The system (102) may be configured to obtain the location upon a single input provided to the speed test widget, potentially enhancing user convenience. The term "single input" may refer to any singular user interaction, such as a tap on a touchscreen, a click of a mouse, or a keyboard input. The location determination module (214) is designed to obtain the current location of the UE (108) in response to the speed measurement request, with the unique feature that the current location is obtained upon a single input provided to the speed test widget. This 'single input' approach is a key usability enhancement, minimizing the steps required for the user to initiate a speed test while still capturing accurate location data.

[0091] The single input can take various forms, depending on the UE's interface and user preferences. Examples include: a. A single tap or click on the speed test widget icon. b. A voice command, such as "Run speed test," if the UE supports voice input. c. A specific gesture, like a swipe across the widget, for touch-enabled devices. d. Pressing a designated hardware button that's been mapped to the speed test function.

[0092] For instance, on a smartphone, a user might simply tap once on the speed test widget icon on their home screen. This single tap would both initiate the speed test and trigger the location determination process. The locationdetermination module would then quickly retrieve the necessary network identifiers (such as MCC, MNC, LAC, and CID) to establish the device's location, all without requiring any further input from the user.

[0093] In the case of a voice-activated smart home device, the user might say "Run internet speed test." This single voice command would be interpreted as the input to both start the test and determine the device's location.

[0094] The implementation of this single-input approach involves close integration between the user interface layer and the underlying location services. When the single input is detected, it simultaneously triggers two actions: a. It sends the speed measurement request to the receiving module (212). b. It activates the location determination module (214) to immediately capture the current location data.

[0095] This parallel processing allows for efficient execution of the speed test while ensuring that the location data used for server selection is as current and accurate as possible. The seamless nature of this process enhances user experience by providing a frictionless interaction with the speed test widget, making it more likely that users will regularly check their network performance.

[0096] The location determination module (214) may obtain the current location of the UE (108) by retrieving various identifiers associated with the UE's network connection. These identifiers may include a Mobile Country Code (MCC), a Mobile Network Code (MNC), a Location Area Code (LAC), and a Cell-ID (CID). By utilizing these network-specific identifiers, the system (102) may accurately determine the UE's location without relying on GPS or other location services that may drain battery or require additional permissions.

[0097] The Mobile Country Code (MCC) may be a three-digit number that uniquely identifies the country of the mobile network to which the UE (108) is connected. For example, the MCC for India may be 404, while the United States may use 310-316. This code may be crucial for determining the broad geographical region of the UE (108).

[0098] The Mobile Network Code (MNC) may be a two or three-digit number that identifies the mobile network operator within a country. When combined with the MCC, it forms the International Mobile Subscriber Identity (IMSI) prefix, which uniquely identifies the mobile network operator globally. For instance, in India, the MNC 10 might represent one major telecom provider, while 20 might represent another.

[0099] The Location Area Code (LAC) may be a unique number assigned to a group of base stations within a specific geographical area. It may typically be a 16-bit number, allowing for up to 65,536 unique location areas within a network. The LAC may provide a more precise location than the MCC and MNC, narrowing down the UE's location to a specific region within the country and network.

[0100] The Cell-ID (CID) may be a unique number used to identify each base transceiver station (BTS) or sector of a BTS within a location area. In Global System for Mobile Communications (GSM) networks, the CID may be a 16-bit number, while in universal mobile telecommunications service (UMTS) and longterm evolution (LTE) networks, it may be extended to 28 bits. The CID may offer the most granular level of location information among these identifiers, potentially pinpointing the UE's location to within a few hundred meters in urban areas.

[0101] The location determination module (214) may utilize a hierarchical approach to determine the UE's location using the MCC, MNC, LAC, and CID. This process may be illustrated through the following detailed example:a. Mobile Country Code (MCC): The module first identifies the country. For instance, an MCC of 404 indicates India, while 310 indicates the United States. This narrows down the location to a specific country. b. Mobile Network Code (MNC): Within the identified country, the MNC pinpoints the mobile network operator. For example, in India, an MNC of 10 might represent Jio, while 20 might represent Another service provider. This further narrows the location to areas served by a specific operator within the country. c. Location Area Code (LAC): The LAC identifies a specific group of base stations within the operator's network. For instance, in Mumbai, India, an LAC of 4501 might represent the Bandra area, while 4502 might represent Andheri. This narrows the location to a more specific region, typically covering several square kilometers. d. Cell ID (CID): Finally, the CID identifies the specific cell tower or sector. For example, within the Bandra LAC (4501), a CID of 10234 might represent a particular tower near Bandra station, while 10235 might represent another tower a few hundred meters away.

[0102] By combining these identifiers, the module can determine location with increasing precision. For instance, MCC 404, MNC 10, LAC 4501, and CID 10234 together might indicate that the UE is located within a 100-meter radius of Bandra station in Mumbai, India, connected to the Airtel network.

[0103] The module may also use this information in conjunction with a database that maps these identifiers to geographical coordinates. This allows for even more precise location determination without relying on global positioning system (GPS). For example, the system might determine that the combination of MCC 404, MNC 10, LAC 4501, and CID 10234 corresponds to latitude 19.0596° N and longitude 72.8295° E, with an accuracy radius of approximately 50 meters.

[0104] The location determination module provides a balance between accuracy and efficiency, allowing for location determination without significant battery drain or the need for GPS access. The precision of this method can vary based on the density of cell towers in the area, typically being more accurate in urban areas with a higher density of towers.

[0105] By utilizing these network-specific identifiers, the system (102) may accurately determine the UE's location without relying on GPS or other location services that may drain battery or require additional permissions. This method may be particularly advantageous in situations where GPS signals are weak or unavailable, such as indoors or in urban canyons.

[0106] The combination of these identifiers may allow for a hierarchical approach to location determination. For instance, the MCC and MNC may identify the country and specific mobile network operator, providing a broad geographical context. The LAC may then narrow down the location to a specific area within the network, while the CID may offer the most precise location information available through the cellular network.

[0107] The method of location determination offers several advantages over traditional GPS-based methods. Firstly, it is generally more power-efficient, as it utilizes network information that the UE (108) already maintains as part of its normal operation, rather than activating power-intensive GPS hardware. Secondly, this method can function in areas where GPS signals are weak or unavailable, such as inside buildings or in urban canyons, providing more consistent location data across various environments.

[0108] Regarding permissions and access to identifiers, the situation varies depending on the operating system and device: a. Public Identifiers: Some network information, such as the Mobile Country Code (MCC) and Mobile Network Code (MNC), is oftenpublicly available and may be accessed without special permissions on many devices. b. Protected Identifiers: More precise location data, such as the Location Area Code (LAC) and Cell-ID (CID), typically require location permissions on most modem mobile operating systems. c. Permission Handling: The system is designed to operate with minimal required permissions. It first attempts to use publicly available network information. If more precise location data is needed and not available without permissions, the system prompts the user to grant the necessary location permissions, clearly explaining the benefits of doing so for speed test accuracy. d. Fallback Mechanisms: In cases where full network identifier access is restricted or permissions are not granted, the system employs alternative methods such as IP geolocation or Wi-Fi network information to approximate the user's location, ensuring basic functionality while respecting user privacy choices.

[0109] This multi-tiered approach to location determination allows the system to balance accuracy, functionality, and user privacy, adapting to different device capabilities and user preferences while still providing valuable speed test results.

[0110] However, it's important to note that the accuracy of this method may vary depending on the density of the cellular network and the size of the cells. In urban areas with many small cells, the location accuracy may be quite high, potentially within a hundred meters or less. In rural areas with larger cells, the accuracy may be lower, potentially only accurate to within several kilometres.

[0111] The system (102) may use this location information to select the nearest speed test server, ensuring that the speed test results accurately reflect the user's local network conditions. This location-based server selection may be crucial for providing reliable and relevant speed test results, as it may minimize the impactof geographical distance on the measured network performance. The server selection module (216) is configured to select the nearest speed test server by determining distances between the current location of the UE (108) and each of the plurality of speed test servers (302-1, 302-2. ,.302-n), and then selecting the speed test server with the shortest determined distance. In an aspect, the shortest determined distance represents the minimal measure of proximity between the current location of the UE and the geographic locations of available speed test servers. This approach is similar to methods used by other prominent speed test providers, but with some unique optimizations.

[0112] Examples of server selection implementations by other vendors include: a. Ookla's Speedtest: Ookla uses a combination of IP address geolocation and network topology analysis. They maintain a large network of servers and use ping tests to multiple nearby servers to determine the best one fortesting. b. Fast.com (Netflix): Fast.com selects servers based on the user's ISP and location. It uses Netflix's content delivery network (CDN) servers, which are often already optimized for the user's network path. c. Google's Network Speed Test: Google leverages its extensive network infrastructure and uses a combination of IP geolocation and network routing information to select an appropriate test server.

[0113] Speedtest® is a registered trademark of Ookla, Fast.com® is a registered trademark of Netflix, Inc. Google™ is a trademark of Google. Other trademarks mentioned in this document are the property of their respective owners. The use of these trademarks is for descriptive purposes only and does not imply any affiliation with or endorsement by these companies.

[0114] The present system builds upon these concepts with the following enhancements:a. Dynamic Server Weighting: In addition to distance, the present system considers current server load and historical performance data when selecting a server. b. ISP-Aware Selection: The system takes into account known peering relationships between ISPs and our server network to select servers that are not just physically close, but also network -topologically close. c. Adaptive Selection: The system learns from past test results to continually refine its server selection algorithm.

[0115] Regarding the maximum range for distance, our system implements a tiered approach: a. Ideal Range: < 100 km Servers within this range are preferred as they typically provide the most accurate representation of the user's actual network experience. b. Acceptable Range: 100 km - 300 km If no servers are available within the ideal range, servers in this range are considered. They can still provide reasonably accurate results in most cases. c. Maximum Range: 500 km This is the absolute maximum distance allowed for server selection. Beyond this range, network conditions can vary significantly, potentially leading to less accurate speed test results.

[0116] The server selection module (216) uses these criteria to ensure that the selected speed test server is not only the nearest in terms of physical distance but also the most suitable for providing accurate speed test results. This approach balances geographical proximity with network efficiency, leading to more reliable and representative speed test outcomes.

[0117] Once the UE's location is determined, a server selection module (216) may select the nearest speed test server from a plurality of available servers.This selection process may involve determining the distances between the UE's current location and each of the available speed test servers. The server with the shortest determined distance may then be selected for the speed test. The distance calculation may be based on geographical coordinates, network topology, or a combination of factors.

[0118] The selection of the nearest server may potentially reduce latency and provide more accurate speed test results. By minimizing the physical distance between the UE (108) and the test server, the system (102) may more accurately reflect the network conditions experienced by the user in their specific location. This may be particularly beneficial in large countries or regions with diverse network infrastructures.

[0119] After selecting the appropriate server, a speed test execution module (218) may initiate the speed test. This process may involve transmitting data packets between the UE (108) and the selected speed test server. The transmission of these packets may form the basis for calculating various speed metrics. The data packets may vary in size and content to simulate different types of network traffic. The speed test execution module (218) initiates the speed test by transmitting data packets between the UE (108) and the selected speed test server. It's important to note that these data packets are specifically designed for the purpose of the speed test and do not carry any user information. They are test or pilot packets created solely for measuring network performance.

[0120] These test packets are carefully crafted to simulate various types of network traffic without containing any actual user data. The characteristics of these packets include: a. Standardized size: The packets are of predetermined sizes to ensure consistent measurements across different tests and devices. b. Random data content: The payload of these packets consists of randomly generated data, not real user information. This randomdata mimics the characteristics of actual internet traffic without risking any user's privacy or data security. c. Specific headers: The packets include headers that identify them as speed test packets, allowing the server to process them accordingly. d. Varied protocols: Depending on the specific metrics being tested, the packets may use different internet protocols (e.g., TCP, UDP) to comprehensively assess network performance.

[0121] For example, to test download speed, the server might send a series of large packets (e.g., 1MB each) to the UE, while fortesting upload speed, the UE might send similar packets to the server. For latency tests, smaller packets might be sent back and forth rapidly.

[0122] By using these specialized test packets instead of real user data, the speed test can: a. Ensure consistency and accuracy in measurements across different network conditions and device types. b. Protect user privacy and data security during the testing process. c. Avoid interference with or from actual user traffic on the device. d. Comply with data protection regulations, as no personal information is transmitted during the test.

[0123] A speed metric calculation module (220) may then calculate at least one speed metric based on the transmitted data packets. These speed metrics may include download speed, upload speed, and latency. The calculation of these metrics may provide users with a comprehensive understanding of their network performance. Download and upload speeds may typically be measured in megabits per second (Mbps) or gigabits per second (Gbps), while latency may be measured in milliseconds (ms).

[0124] The speed metric calculation module (220) measures the amount of data received by the UE (108) from the selected speed test server in a predetermined time period to calculate the download speed. This predetermined time period is typically set to ensure accurate results while minimizing the impact on the user's data usage. Examples of how this measurement works: a. Short duration test (10 seconds): The module might measure how much data is downloaded in 10 seconds. If 75 megabytes (MB) of data are received in 10 seconds, the calculated download speed would be 60 Mbps (Megabits per second). Calculation: (75 MB * 8 bits / byte) / 10 seconds = 60 Mbps b. Multiple interval test (30 seconds with 5-second intervals): The test might run for 30 seconds total, but take measurements every 5 seconds. This allows for a more detailed view of speed fluctuations. For example:- 0-5 seconds: 40 MB received (64 Mbps)- 5-10 seconds: 38 MB received (60.8 Mbps)- 10-15 seconds: 42 MB received (67.2 Mbps).The final download speed would be an average of these intervals. c. Adaptive duration test: The test might continue until a certain amount of data (e.g., 100 MB) has been downloaded, with a maximum time limit (e.g., 30 seconds). This ensures sufficient data for accurate measurement while preventing excessive data usage.

[0125] The choice of predetermined time period can be adjusted based on factors such as network conditions, user preferences, and device capabilities to balance accuracy with efficiency.

[0126] The speed metric calculation module (220) uses different sets of data packets for measuring various aspects of network performance: a. First data packets: These are typically small packets used for measuring latency. They are designed to make a round trip from the UE to the server and back as quickly as possible.b. Second data packets: These are used for download speed measurement. They are typically larger packets sent from the server to the UE in a continuous stream during the first predetermined time period. In an aspect, the first predetermined time period refers to the fixed duration during which the system measures the amount of data received by the UE from the selected speed test server to calculate the download speed. c. Third data packets: These are used for upload speed measurement. Similar to the second data packets but sent from the UE to the server during the second predetermined time period. In an aspect, the second predetermined time period refers to the fixed duration during which the system measures the amount of data sent by the UE to the selected speed test server to calculate the upload speed.

[0127] By using distinct sets of packets for each measurement, the system can accurately assess different aspects of network performance while maintaining clarity in the testing process.

[0128] To calculate latency, the speed metric calculation module (220) may measure the time taken for data packets to travel from the UE (108) to the selected speed test server and back. This round-trip time may provide an insight into the responsiveness of the network connection. Lower latency values generally indicate a more responsive connection, which may be crucial for applications like online gaming or video conferencing.

[0129] Download speed may be calculated by measuring the amount of data received by the UE (108) from the selected speed test server in a predetermined time period. Similarly, upload speed may be determined by measuring the amount of data sent by the UE (108) to the selected speed test server in a set timeframe. These measurements may provide users with practical information about their network's data transfer capabilities. For example, a high download speed mayindicate good performance for activities like streaming high-definition video, while a high upload speed may be beneficial for cloud backups or live streaming.

[0130] The calculated speed metrics may then be displayed on the UE (108), allowing users to easily view and interpret their network performance. This immediate feedback may enable users to assess their connection quality and make informed decisions about their network usage. The display may include numerical values, graphical representations, or both, to cater to different user preferences and levels of technical understanding.

[0131] The calculated speed metrics are then displayed on the UE (108), allowing users to easily view and interpret their network performance. This immediate feedback enables users to assess their connection quality and make informed decisions about their network usage. The display includes a combination of numerical values and graphical representations to cater to different user preferences and levels of technical understanding. For example:1. Numerical Display:- Download Speed: 75.6 Mbps- Upload Speed: 15.3 Mbps- Latency: 28 ms2. Graphical Representations: a. Speedometer-style gauges:- A circular gauge for download speed, with color-coded sections (e.g., red for 0-10 Mbps, yellow for 10-50 Mbps, green for 50+ Mbps)- A similar gauge for upload speed b. Bar charts:- Horizontal bars showing download and upload speeds relative to a maximum value (e.g., 100 Mbps)- The bars fill in real-time during the test, providing a visual indication of the speedc. Latency visualization:- A pulsing circle that changes color based on latency (e.g., green for <50ms, yellow for 50-100ms, red for >100ms)3. Comparative Elements:- A line showing the average speed in the user's area- Markers indicating the minimum speeds for common online activities (e.g., SD streaming, HD streaming, online gaming)4. Historical Data:- A small graph showing speed test results over time (e.g., last 7 days)- Arrows indicating whether speeds have improved or declined since the last test5. Interpretive Information:- Text explaining what the speeds mean in practical terms, e.g., "Your download speed is suitable for 4K video streaming on multiple devices simultaneously"- A grading system (e.g., A+ to F) for each metric, giving users a quick understanding of their overall network performance

[0132] This multi-faceted display ensures that users of varying technical backgrounds can understand their network performance at a glance, while also providing detailed information forthose who want a deeper analysis.

[0133] The system (102) may also be configured to store the calculated speed metrics in a database (210). This feature may allow for historical tracking of network performance, potentially enabling users to identify trends or issues over time. Users may be able to view their speed test history, compare results from different times or locations, and potentially detect patterns in network performance fluctuations.

[0134] The system (102) is configured to store the calculated speed metrics in a database (210). This feature allows for historical tracking of network performance, enabling users to identify trends or issues related to network quality overtime. These network -related issues may include:1. Consistent slowdowns during peak usage hours2. Gradual degradation of speed over weeks or months3. Intermittent connectivity problems4. Variations in performance based on device location within a home or office5. Discrepancies between actual speeds and the service level promised by the ISP

[0135] Users can view their speed test history and compare results from different times or locations. The system aids in detecting patterns in network performance fluctuations through various visualization and analysis tools:1. Time Series Graphs:- Line graphs showing download speed, upload speed, and latency overtime- Users can adjust the time range (e.g., last week, month, year) for broader or narrower views2. Heatmaps:- Color-coded calendars showing performance variations by day and hour- Helps identify patterns like regular slowdowns during specific times3. Location-based Performance Maps:- For users who test from multiple locations, a map view showing speed test results at different places- Useful for identifying areas with consistently poor or excellent performance4. Comparative Bar Charts:- Side-by-side comparisons of average speeds during different time periods (e.g., this month vs. last month)- Helps in quickly identifying long-term trends5. Anomaly Detection:- The system uses statistical methods to highlight unusually high or low speed test results- Anomalies are visually marked on graphs and can trigger user notifications6. Performance Breakdown:- Pie charts showing the percentage of time the network performed at different quality levels (e.g., excellent, good, fair, poor)- Helps users understand their overall network experience7. Trend Analysis:- The system calculates and displays trendlines for each metric- Provides projections of future performance based on historical data8. Correlation with External Factors:- Graphs that overlay speed test results with factors like time of day, day of week, or local events- Helps users identify external influences on their network performance

[0136] These visualizations and analyses are presented in an intuitive, interactive dashboard within the application. Users can drill down into specific data points, apply filters, and customize their view to focus on the metrics most relevant to their needs. This comprehensive approach to data presentation allows users to gain deep insights into their network performance over time, enabling them to make informed decisions about their internet usage, troubleshoot recurring issues, or provide concrete data when discussing service quality with their ISP.

[0137] In some implementations, the system (102) compares the calculated speed metrics with predetermined thresholds. The predetermined thresholds are defined performance benchmarks used by the system (102) to evaluate the calculated speed metrics (download speed, upload speed, latency, etc.). These thresholds are derived from multiple sources to ensure they reflect current industry standards and user expectations:1. ISP-Advertised Speeds: Thresholds based on the speeds promised by Internet Service Providers for different service tiers in the user's area.2. Regulatory Standards: Minimum speed requirements set by telecommunications regulatory bodies (e.g., Federal Communications Commission (FCC) in the United States, Telecom Regulatory Authority of India (TRAI) in India).3. Technical Requirements: Thresholds based on the minimum speeds required for various online activities (e.g., video streaming, online gaming, video conferencing).4. Crowd-Sourced Data: Anonymized data from other users in similar geographic areas and with similar network types, providing a realistic benchmark of achievable speeds.5. Historical Performance: The user's own historical data, setting personalized thresholds based on their typical experience.

[0138] Based on the comparison with these thresholds, the system (102) generates a performance assessment of the network. This assessment provides users with a contextualized understanding of their network performance relative to these multi-faceted standards, including ISP-advertised speeds, regulatory standards, technical requirements for various activities, crowd-sourced data, and the user’s historical performance. The system categorizes performance as follows:- "Excellent": Exceeds the top tier of ISP-advertised speeds and is in the top 10% of crowd-sourced speeds for the area.- "Good" : Meets or exceeds the advertised speeds and is above the median of crowdsourced speeds.- "Fair": Falls within 70-90% of advertised speeds and meets minimum regulatory standards.- "Poor" : Falls below 70% of advertised speeds or fails to meet minimum regulatory standards.For example:1. In an urban area with fiber internet:- Download speeds > 500 Mbps might be categorized as "Excellent"- 200-500 Mbps as "Good"- 100-200 Mbps as "Fair"- < 100 Mbps as "Poor"2. In a rural area with Digital Subscriber Line (DSL) internet:- Download speeds > 25 Mbps might be categorized as "Excellent"- 15-25 Mbps as "Good"- 5-15 Mbps as "Fair"- < 5 Mbps as "Poor"

[0139] The system adjusts these thresholds dynamically based on the user's location, network type, and current industry standards. This adaptive approach ensures that the performance assessment remains relevant and meaningful across diverse network environments and as technology evolves.

[0140] Additionally, the system provides context for each category, explaining what the performance level means for common online activities. For instance, it might inform a user with "Good" performance that their connection is suitable for HD video streaming and most online gaming, but might struggle with 4K video or large fde transfers.

[0141] This nuanced, context-aware performance assessment helps users understand not just how their network is performing in absolute terms, but also how it compares to relevant benchmarks and what that performance means for their online experience.

[0142] The system stores and retrieves predetermined thresholds for speed metrics in the following manner: a. Storage: The predetermined thresholds are stored in the database (210) of the system (102). This database may be:- A local database on the UE for quick access- A cloud-based database for centralized management and easy updates- A hybrid system using both local and cloud storage for redundancy and efficiency b. Data Structure:The thresholds are stored in a structured format, such as: {"download_speed": {"excellent": 100, "good": 50, "fair": 25, “poor": 10}, "upload_speed" : {"excellent": 20, "good": 10, "fair": 5, "poor": 2}, "latency": {"excellent": 20, "good": 50, "fair": 100, “poor": 150}} (All speed values are in Mbps, latency in ms) c. Retrieval: The one or more processors (202) retrieve these thresholds:- At the start of each speed test- Periodically (e.g., daily) to ensure up-to-date values- When the app is updated or when network conditions significantly change d. Dynamic Updates: The system may dynamically update these thresholds based on:- Geographic location (e.g., different standards for urban vs. rural areas)- Type of network connection (e.g., 5G, 4G, Wi-Fi)- Time of day (e.g., peak vs. off-peak hours) e. API Integration: The system may also integrate with external APIs to fetch the latest recommended thresholds from ISPs or regulatory bodies.

[0143] This approach ensures that the performance assessment is based on current, relevant standards while allowing for flexibility and customization.

[0144] The performance assessment generated by the system provides a comprehensive evaluation of the network's quality and functionality. This assessment includes: a. Qualitative Rating: The system assigns a qualitative rating to each speed metric and an overall rating for the network. For example:- Excellent: Exceeds all thresholds- Good: Meets or exceeds most thresholds- Fair: Meets minimum thresholds- Poor: Falls below minimum thresholdsExample: Download Speed: 55 Mbps - Rating: Good, Upload Speed: 8 Mbps - Rating: Good, Latency: 30 ms - Rating: Excellent, Overall Rating: Good b. Comparative Analysis: The assessment includes how the user's network performance compares to:- Local averages in their area- Their ISP's advertised speeds- National broadband standardsExample: "Your download speed is 20% above the average for your area, but 10% below your plan's advertised speed." c. Specific Recommendations: Based on the results, the system provides tailored recommendations for improvement. For instance:- "Your upload speed is lower than expected. Try moving your router to a central location in your home."- "Y our latency is high. Consider upgrading to a newer router that supports the latest Wi-Fi standards."- "Your download speed is excellent for general use but may be insufficient for 4K video streaming. Consider upgrading your internet plan for better 4K streaming performance." d. Historical Trend Analysis: The assessment includes a comparison with previous test results to show how the network performance has changed overtime.Example: "Your average download speed has improved by 15% over the past month." e. Use Case Suitability: The system evaluates the network's suitability for various online activities.Example:- Suitable for: Web browsing, HD video streaming, online gaming- May have issues with: 4K video streaming, large file uploads

[0145] The comprehensive performance assessment provides users with a clear understanding of their network's capabilities, areas for improvement, and actionable insights to enhance their internet experience.

[0146] The speed test widget may be designed for user convenience. It may be configured to initiate the speed measurement request upon a single user interaction. This one-click functionality may streamline the process of conducting speed tests, potentially encouraging more frequent network performance checks. The widget may be customizable, allowing users to set their preferred server locations, test frequencies, or notification settings.

[0147] The widget offers a range of customization options, allowing users to tailor the speed test experience to their specific needs and preferences. These customization features include:1. Preferred Server Locations: - Users can select specific server locations for their tests. - Example: A user in New York who frequently connects to servers in London can set London as a preferred test location to assess their connection quality for that specific route.2. Test frequencies: - Users can schedule automatic tests at set intervals. - Example: A user might set the widget to automatically run tests daily at 8 PM, or every Monday at 10 AM.3. Notification Settings: - Users can customize when and how they receive alerts about their network performance. - Example: A user can set up notifications for when their download speed drops below 50 Mbps, or when latency exceeds 100 ms.4. Metric Prioritization: - Users can choose which speed metrics are most important to them and customize the widget display accordingly. - Example: A gamer might prioritize latency and jitter displays, while a content creator might focus on upload speed.5. Quick Test Profiles: - Users can create profiles for different types of speed tests. - Example: A "Quick Check" profile that only tests download speed, and a "Comprehensive" profile that tests all metrics.6. Visual Customization: - Users can adjust the widget's appearance on their home screen. - Example: Choosing between a minimal design showing just the latest speed, or a more detailed view with multiple metrics.7. Threshold Customization: - Users can set personal thresholds for what they consider acceptable performance. - Example: A user might set 100 Mbps as their minimum acceptable download speed, even if this is higher than the local average.8. Network Type Filtering: - Users can set the widget to only run or display results for specific network types. - Example: Only showing results from Wi-Fi connections and ignoring cellular data tests.9. Data Usage Controls: - Users can set limits on how much data the speed tests can use. - Example: Limiting speed tests to use no more than 100 MB of data per month.10. Result Sharing Options: - Users can customize how and where their test results are shared. - Example: Automatically posting results to social media or sending reports to their ISP.

[0148] These customization options make the speed test widget highly adaptable to individual user needs. For instance, a remote worker might configure the widget to run tests every morning before their first video call, prioritize upload speed and latency in the display, and send them a notification if the performance doesn't meet their set thresholds. On the other hand, a casual user might set up a simplified widget that runs weekly tests and only notifies them of significant changes in their download speed. By providing this level of customization, the speed test widget becomes a powerful, user-friendly tool that can be tailored to a wide range of use cases, encouraging regular network performance monitoring and helping users stay informed about their connection quality.

[0149] To ensure wide compatibility, the speed test widget may be implemented using a cross-platform development framework. This framework may be capable of generating compatible versions of the widget for multiple operatingsystems used by different UEs. By doing so, the system (102) may provide consistent functionality across diverse mobile platforms, potentially reaching a broader user base. For example, the same widget may function similarly on iOS, Android, and other mobile operating systems, with only minor adjustments for platform-specific design guidelines.

[0150] The cross-platform nature of the widget may allow users to have a uniform experience regardless of their device's operating system. This consistency may be particularly beneficial in environments where multiple device types are in use, such as in enterprise settings or among family members. It may simplify support and training processes, as the widget's functionality remains consistent across different devices.

[0151] The cross-platform development framework is a set of tools and technologies that allow developers to create applications that can run on multiple operating systems and devices using a single codebase. This approach significantly reduces development time and costs while ensuring consistency across platforms.

[0152] Examples of popular cross-platform development frameworks include: a. Flutter: Developed by Google, Flutter uses the Dart programming language and allows for the creation of natively compiled applications for mobile, web, and desktop from a single codebase. b. React Native: Created by Facebook, React Native uses JavaScript and React to build native mobile applications for iOS and Android. c. Xamarin: A Microsoft-owned framework that uses C# and .NET to develop applications for iOS, Android, and Windows. d. Ionic: An open-source framework that uses web technologies like HTML, CSS, and JavaScript to build hybrid mobile applications. e. Unity: Primarily known for game development, Unity can also be used to create cross-platform mobile applications, especially those with complex graphics or 3D elements.

[0153] Compatible versions of the speed test widget refer to iterations of the widget that are optimized for different operating systems and device types while maintaining core functionality and user experience. These versions ensure that the widget works seamlessly across various platforms. Examples of compatible versions include: a. iOS version: Optimized for iPhones and iPads, adhering to Apple's Human Interface Guidelines. b. Android version: Designed to work on the wide variety of Android devices, following Material Design principles. c. Web version: A browser-based version of the widget for desktop and mobile web users. d. Smart TV version: Adapted for smart TV interfaces, with a focus on remote control navigation. e. Wearable version: A simplified version for smartwatches and other wearable devices.Each version maintains the core speed testing functionality while adapting to the unique interface requirements and capabilities of its target platform.

[0154] The speed test widget is designed to be compatible with multiple operating systems, including but not limited to:1. Mobile OS:- iOS (versions 12 and above)- Android (versions 6.0 Marshmallow and above)- Harmony OS2. Desktop OS:- Windows (versions 10 and above)- macOS (versions 10.14 Mojave and above)- Linux distributions (Ubuntu, Fedora, etc.)3. Smart TV OS:- tvOS- Android TV- Tizen (for Samsung Smart TVs)4. Wearable OS:- watchOS- Wear OS5. Other:- Chrome OS-Firefox OS

[0155] Consistent functionality refers to the widget's ability to perform its core operations and provide a similar user experience across all supported platforms. This includes:1. Uniform speed testing process: The steps to initiate and complete a speed test remain the same across all platforms.2. Consistent metrics: Download speed, upload speed, and latency are measured and presented in the same format on all devices.3. Similar user interface elements: While adhering to platform-specific design guidelines, the widget maintains a recognizable layout and interaction model across all versions.4. Equivalent feature set: Core features such as historical data tracking, server selection, and result sharing are available on all platforms.5. Synchronized data: Test results and user preferences are synchronized across devices when users are logged in.6. Comparable performance: The widget aims to provide similar responsiveness and efficiency across different platforms, accounting for hardware variations.

[0156] Diverse mobile platforms refer to the wide array of mobile devices and operating systems in the market, each with its own unique characteristics, capabilities, and constraints.

[0157] By ensuring compatibility across these diverse mobile platforms, the speed test widget can reach a broader user base and provide a consistent testing experience regardless of the user's chosen device or operating system.

[0158] The system's ability to perform speed tests with minimal user input - potentially just a single click - may lower the barrier to regular network performance monitoring. Users may be more likely to check their network speeds frequently if the process is quick and straightforward. This ease of use may lead to better-informed users and potentially more efficient use of network resources.

[0159] By providing easy access to network speed information, the system (102) may empower users to make informed decisions about their internet usage. For instance, users may choose to defer data-intensive tasks when speeds are low, or troubleshoot their connection if performance is consistently poor. This information may also be valuable when communicating with internet service providers about service quality issues.

[0160] The combination of location-based server selection and comprehensive speed metrics may provide a more accurate representation of a user's real -world network experience. This may be particularly valuable in areas with variable network coverage or during peak usage times. Users may gain insights into how their network performance varies based on their location or time of day, allowing them to adjust their usage patterns accordingly. Examples of insights users might gain include:1. Location-based Performance Variations:- A user might discover that their home office has significantly better upload speeds than their living room, affecting video call quality.- A mobile user might notice that certain areas of their commute have consistently poor connectivity.2. Time-based Performance Patterns:- A user might observe that their download speeds drop by 50% every weekday evening between 7 PM and 10 PM.- A business user might notice that their office internet speeds are slowest during lunch hours.3. ISP Performance Tracking: - Users can compare their actual speeds against their ISP's advertised speeds at different times and locations. - They might discover that they consistently receive only 70% of the promised speed during peak hours.4. Network Type Comparisons: - A user might find that in certain locations, their cellular 5G connection is faster than available Wi-Fi networks.5. Long-term Trends: - Users might observe a gradual decline in their average speeds over several months, indicating potential infrastructure issues.

[0161] Based on these insights, users can adjust their usage patterns in several ways:1. Optimal Location Selection: - A remote worker might choose to set up their home office in the room with the best network performance for video calls. - A student might decide to do their online research in the part of the library with the strongest Wi-Fi signal.2. Time-based Activity Planning: - A user might schedule large file downloads or backups for off-peak hours when speeds are faster. - A gamer might plan their online gaming sessions for times when latency is typically lowest.3. Network Switching: - In areas where cellular data outperforms Wi-Fi, users might switch to mobile data for important tasks. - Users might toggle between different available Wi-Fi networks based on performance data.4. ISP Negotiations: - Armed with data showing consistent underperformance, users can approach their ISP for improvements or compensation. - Users might make more informed decisions when choosing between ISPs or service plans.5. Hardware Upgrades: - If certain devices consistently underperform, users might prioritize upgrading those devices. - Users might invest in Wi-Fi extenders or mesh systems for areas with poor coverage.6. Usage Uimits: - In shared living situations, users might agree on usage limits during peak hours to ensure fair access to bandwidth.7. Application Settings: - Users might adjust video streaming quality settings based on typical speeds at different times of day. - Remote workers might choose different video conferencing quality settings for different locations.8. Travel Planning: - Users who require consistent internet access might plan their routes or accommodate stops in areas with better connectivity.

[0162] By providing these detailed insights and enabling users to adjust their usage patterns, the system empowers users to optimize their network experience. This adaptive approach to internet usage can lead to improved productivity, better quality of service, and a more satisfying online experience overall.

[0163] The system (102) may offer a user-friendly, efficient, and informative approach to network speed testing. By simplifying the process and providing detailed metrics, it may enhance users' understanding and management of their network connections. The system's ability to provide consistent experiences across different devices, coupled with its ease of use and comprehensive data analysis, may make it a valuable tool for both individual users and organizations seeking to monitor and optimize their network performance.

[0164] In an exemplary embodiment, a non-transitory computer-readable medium storing instructions for evaluating network speed is described. When executed by one or more processors (202) of a system (102) for evaluating networkspeed in a network (104), these instructions cause the processors to perform a series of operations. These operations include receiving a speed measurement request through a user-creatable speed test widget, obtaining the UE's location with a single click, selecting the nearest speed test server based on this location, initiating a speed test by transmitting data packets, calculating speed metrics, and displaying the results on the UE (108). This approach combines user-friendly interaction, efficient location-based server selection, and comprehensive speed testing to provide an accurate and convenient method for users to evaluate their network performance. The use of a non-transitory computer-readable medium ensures that this functionality can be easily implemented across various devices and systems, enhancing the accessibility and applicability of the network speed evaluation process.

[0165] FIG. 3 illustrates an exemplary network architecture of a system (102) evaluating a network speed, in accordance with an embodiment of the present disclosure. The network architecture may include a user equipment (UE) (108), a system (102), and a plurality of speed test servers (302-1, 302-2...302-n).

[0166] Widgets are user interface components that serve multiple purposes, with a function of providing quick and convenient access to specific information, functions, and actions, enhancing the user experience, and improving the efficiency of using devices and applications. In some examples, the widgets may be referred to as mini applications that display a small amount of information on screen at all times and interact with the user. In the context of this invention, the speed test widget may be a small, interactive element on the UE's home screen that allows users to initiate network speed tests with minimal effort.

[0167] Creating a speed test widget helps the users by offering a user- friendly and accessible tool for assessing their internet connection. The speed test widget helps the users in perceiving actual functioning and enables them to make informed decisions about their network configurations and troubleshooting efforts.For instance, users may be able to quickly identify if their network is performing below expected levels and take appropriate action. The speed test widget empowers the users to take control of the user's online experience and demand the quality of service the users deserve from their internet service providers (ISPs). The ISPs provide individuals and organizations access to the internet and other related services. By having easy access to speed test results, users may be better equipped to discuss service quality with their ISPs.

[0168] The present disclosure uses application development (for example, mobile app, desktop app) field of technology. The area of use in the present disclosure is cross-platform development with a flutter to create mobile application (app) widgets. The present disclosure may support use of, for example, flutter libraries to implement or develop widgets as per the requirements. Flutter is an open-source UI software development kit created by Google, which allows for the creation of natively compiled applications for mobile, web, and desktop from a single codebase. This cross-platform approach may significantly reduce development time and costs. The present disclosure provides an approach that offers an efficient and cost-effective way to reach a broad user base on both Android and iOS while ensuring a consistent and high-quality user experience.

[0169] The present disclosure provides a quick and convenient way to measure the speed of the network. The present disclosure provides speed test widgets that provide a fast and effortless way to assess the internet speed and require only a few clicks or taps. This ease of use may encourage users to test their network speeds more frequently, leading to better awareness of their network performance over time. Throughout the disclosure, the term speed test refers to a speed test of the internet provided by the internet service provider (ISP).

[0170] The present disclosure provides transparency to the users. The present disclosure offers transparency regarding the actual performance of user's internet connection. Thus, the present disclosure allows the user to verify whetheruser's ISP is delivering the promised speed or not. This transparency may be crucial in helping users understand if they are receiving the service levels they are paying for.

[0171] The present disclosure helps in optimizing the user's activities. A user can determine if the user's connection speed is sufficient for activities like streaming, online gaming, or downloading large files. Thus, the user can optimize the activities. For example, if a user finds that their current network speed is insufficient for high-quality video streaming, they may choose to adjust their streaming quality settings or postpone large downloads to times when network performance is better.

[0172] In an aspect, a user equipment (UE) (108) may be connected to the system (102). The system (102) may include one or more processors (202). The system ( 102) may be connected to a database (210) . In an aspect, the database (210) may reside inside the system (102). The system (102) may be connected to a plurality of speed test servers (302-1, 302-2. . . 302-n). These speed test servers may be distributed geographically to provide accurate speed test results for users in different locations.

[0173] The UE (108) may be configured to initiate a speed measurement request. In an example, a user may be configured to initiate the speed measurement request via a speed test mobile application or a widget app that needs to be installed in the UE (108). In some examples, the widget app (speed test mobile application) may be a software or a mobile application from an application store / application distribution platform. Examples of application distribution platforms include the App Store for iOS provided by Apple, Inc., Play Store for Android OS provided by Google Inc., and such application distribution platforms. This wide availability ensures that users across different mobile platforms can access and use the speed test widget.

[0174] In an example, the speed test mobile application may have access to a number of parameters associated with the UE (108) such as a current location of the UE (108), and fdes stored within the UE (108). In an example, the speed measurement request may include address information of the user equipment, MCC (Mobile Country Code), MNC (Mobile Network Code), LAC (Location Area Code), and Cell-ID (CID) representing the current location of the UE (108). The address information of the UE (108) is the geographical location of the UE (108) and identification information of the UE (108), such as an Internet Protocol (IP) address of the UE (108). In an example, the IP address is a logical address provided by the IP Protocol to each network and each host on the Internet.

[0175] This detailed location information allows the system to select the most appropriate speed test server for accurate results. The concept of the "most appropriate" server is multifaceted:1. Geographical Proximity:- The system prioritizes servers that are geographically close to the UE's location.- This minimizes the impact of physical distance on the speed test, reducing latency and providing a more accurate representation of the user's local network conditions.- Example: For a user in New York City, a server in New Jersey would be preferred over one in California.2. Network Topology:- The system considers the network path between the UE and potential servers.- It selects servers with the most direct and efficient network routes to the UE.- This accounts for internet exchange points, peering arrangements, and potential bottlenecks in the network infrastructure.- Example: A server that's slightly farther in distance but has a more direct network path might be chosen over a closer server with a more convoluted route.3. Server Load:- The system evaluates the current load on each potential server.- It avoids overloaded servers that might skew test results due to their own performance limitations.- Example: During peak usage times, the system might select a slightly more distant server with lower load over a nearer but heavily utilized server.4. ISP Relationships:- The system considers known peering relationships between the user's ISP and the networks hosting the speed test servers.- It prioritizes servers on networks with good peering arrangements with the user's ISP.- Example: If the user's ISP has a direct peering agreement with a particular content delivery network (CDN), a server on that CDN might be preferred.5. Network Type Compatibility:- The system selects servers that are optimized for the user's network type (e.g., 5G, 4G, fiber, cable).- This ensures that the test can fully utilize the capabilities of the user's connection.- Example: For a user on a 5G network, the system would select a server capable of handling the high speeds and low latency of 5G connections.6. Time of Day Considerations:- The system may adjust server selection based on known patterns of network congestion at different times of day.- This helps provide consistent test results regardless of when the user runs the test.- Example: During evening peak hours, the system might select a different set of servers than it would in the early morning.7. Test Type Optimization:- Depending on the specific metrics being tested (e.g., download speed, upload speed, latency), the system may select different servers optimized for each test type.- Example: A server with high upload capacity might be selected for upload tests, while a different server might be chosen for latency tests.8. Reliability and Consistency:- The system tracks the historical performance and reliability of each server.- It prioritizes servers with a track record of consistent, accurate results.- Example: A server that has provided stable results over time might be preferred over a newer, untested server.

[0176] By considering all these factors, the system ensures that the selected server is truly the most appropriate for conducting an accurate speed test. This approach goes beyond simple geographic proximity to account for the complex realities of modem network infrastructure and internet routing. The result is a speed test that provides a highly accurate representation of the user's real-world network performance, accounting for the nuances of their specific location, network conditions, and ISP relationships.

[0177] In an example, the UE (108) may include, but not limited to, personal computers, smartphones, laptops, tablets, smartwatches as well as other loT devices that support a display. This wide range of compatible devices ensures that the speed test widget can be used across various types of internet-connected devices, providing flexibility for users.

[0178] The memory (204) of the system (102) may be configured to store program instructions. The memory (204) is configured to store the data received from the speed test mobile application. The program instructions include a program that implements a method to initiate the speed test in accordance with embodiments of the present disclosure and may implement other embodiments described in this specification. The memory (204) may be configured to store preprocessed data. The memory (204) may include any computer-readable medium known in the art including, for example, volatile memory, such as Static Random Access Memory (SRAM) and Dynamic Random Access Memory (DRAM) and / or nonvolatile memory, such as Read Only Memory (ROM), erasable programmable ROM, flash memories, hard disks, optical disks, and magnetic tapes. This variety of memory types allows for efficient storage and retrieval of speed test data and application instructions.

[0179] In an aspect, the widget app (speed test mobile application) may be configured to fetch and execute computer-readable instructions stored in thememory (204) of the system (102). The one or more processors (202) may be configured to execute a sequence of instructions of the method to initiate the speed test, which may be embodied in a program or software. The instructions can be directed to the one or more processors (202), which may subsequently program or otherwise be configured to implement the methods of the present disclosure. In some examples, the one or more processors (202) are configured to control and / or communicate with large databases, perform high-volume transaction processing, and generate reports from large databases. The one or more processors (202) may be implemented as one or more microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units, state machines, logic circuitries, and / or any devices that manipulate signals based on operational instructions. This powerful processing capability ensures that the speed test can be performed quickly and accurately, even when dealing with large amounts of data or multiple simultaneous users.

[0180] FIG. 4 illustrates an exemplary flow diagram (400) illustrating a method for evaluating a speed test widget, in accordance with an embodiment of the present disclosure.

[0181] Internet speed tests for mobile devices work in a similar way to speed tests on other devices, such as desktop computers. The speed tests measure the speed of the user's mobile data or Wi-Fi connection by assessing how quickly data can be sent and received between the user's device and a remote server. This process provides users with valuable insights into their network performance, enabling them to make informed decisions about their internet usage and service providers.

[0182] At step 402, a speed test mobile application or a widget app is installed in the user equipment (UE) (108). The user installs the speed test mobile application or the widget app from an App Store / Play Store or any other distribution platform. For example, an iOS user might download the app from the Apple App Store, while an Android user would use the Google Play Store. In some examples,the speed test mobile application or a widget app may be provided as a default app for the UE (108). This pre-installation can be particularly useful for users who may not be aware of the need for speed testing or how to obtain such tools. The widget may appear on the home screen of the UE (108), providing easy access for users to initiate speed tests with minimal effort.

[0183] At step 404, a speed test request may be initiated by the user via an interface (e.g., the speed test mobile application, or the widget app) installed in the UE (108). This initiation may be as simple as tapping an icon on the home screen. In an example, the speed measurement request may include the address information of the user equipment (UE) (108), MCC (Mobile Country Code), MNC (Mobile Network Code), LAC (Location Area Code), and Cell-ID (CID) representing the current location of the UE (108). For instance, a user in Mumbai, India, might have an MCC of 404 (indicating India) and an MNC of 20 (indicating a specific mobile network operator in India).

[0184] At step 406, a selection of a testing server is performed. In an aspect, when the user initiates a speed test on the widget, a test service typically selects a testing server for the user. The user may provide a click on the widget and the user's current location may be determined. In an aspect, based on the current location of the user, the nearest server (testing server) may be fetched. The testing server is usually geographically close to the user's location to minimize latency and provide more accurate results. For example, if the user is in New York City, the system might select a server in Newark, New Jersey, rather than one in Los Angeles, California.

[0185] At step 408, the transmission of data is performed. The speed test application or the website may send a specific amount of data to the testing server and measure how long it takes for the data to travel to the testing server and back to the user's device. This process is typically carried out by sending small packets of data to the testing server and measuring the time it takes for the server toacknowledge receiving them. For instance, the app might send a series of 1MB fdes to the server and measure how long it takes for each fde to be uploaded and acknowledged.

[0186] At step 410, a calculation of speed metrics is performed. The speed test may calculate several key metrics based on the data transfer process. For example, the key metrics may be a download speed, an upload speed, and a latency (ping).

[0187] In an aspect, the download speed may measure how quickly data can be downloaded from the server to the user's mobile device. The download speed may be expressed in megabits per second (Mbps). For example, a download speed of 50 Mbps would indicate that the user can download approximately 6.25 megabytes of data per second, which is sufficient for streaming high-definition video content.

[0188] In an aspect, the upload speed may measure how quickly the data can be uploaded from the user's mobile device to the server. The upload speed is also expressed in megabits per second (Mbps). An upload speed of 10 Mbps, for instance, would be adequate for high-quality video calls or quickly sharing large files to cloud storage.

[0189] In an aspect, the latency (ping) may measure the time it takes for a data packet to travel to the server and back. The lower values of latency (ping) are better, and it's usually measured in milliseconds (ms). In an aspect, the latency (ping) may be a latency count. For example, a latency of 20 ms would be excellent for online gaming, while a latency of 100 ms might result in noticeable lag in realtime applications.

[0190] At step 412, the results are displayed on the screen of the user equipment (UE) (108). After the data transfer and calculations are completed, thespeed test application or website displays the user's download and upload speeds, as well as the user's latency. These results give the user an indication of the quality of the user's mobile internet connection. The results might be presented in a user- friendly format, possibly including graphical representations like speedometer-style gauges for download and upload speeds, and a separate indicator for latency.

[0191] In an aspect, the present disclosure reduces the time to fetch the data from the server and show / display the results through minimum file download and upload. This efficiency ensures that users can quickly and easily perform speed tests without significant data usage or time investment. The present disclosure employs several techniques to reduce the time required to fetch data from the server and display results, while minimizing file download and upload. This is achieved through a combination of efficient data sampling, intelligent test duration management, and optimized data transfer protocols. The system uses adaptive sampling rates, adjusting the frequency and volume of data packets based on realtime network conditions. For instance, in high-speed networks, it might use larger data packets sent less frequently, while in slower networks, it opts for smaller, more frequent packets. This approach allows for accurate speed measurement without transferring excessive amounts of data. Additionally, the system employs a progressive testing method, where it can extrapolate overall network performance from a shorter test duration if the results stabilize quickly, further reducing time and data usage. For result display, the system uses lightweight, compressed data formats and incremental updates, showing real-time progress without waiting for the entire test to complete. This might involve sending partial results as the test progresses, updating the user interface dynamically. Moreover, the system caches certain test parameters and historical data locally on the device, reducing the need to download this information repeatedly. These combined strategies ensure that users can perform comprehensive speed tests quickly and efficiently, typically completing a full test in under 30 seconds and using less than 20 MB of data, even for high-speed connections. This efficiency not only saves time and data for the user but alsoreduces load on the testing servers, allowing for more consistent and available service.

[0192] In an aspect, the present disclosure envisages a method (400) for performing speed test in a network. The method (400) comprises receiving, through a speed test widget, a speed measurement request initiated by the UE (108). The method (400) further comprises communicating, by the speed test widget, the received speed measurement request to the system (102). The method (400) also comprises selecting, by the one or more processors (202) of the system (102), a speed test server based on location information of the UE (108). The method (400) additionally comprises executing, by the selected speed test server, the speed measurement request and generating, by the selected speed test server, at least one speed test information.

[0193] In an aspect, the present disclosure may be implemented in a user device serving in a network, allowing for widespread accessibility and use across various types of mobile devices and network configurations.

[0194] FIG. 5 illustrates an exemplary flow diagram of a method (500) for evaluating network speed, in accordance with embodiments of the present disclosure.

[0195] At step (502), the method (500) includes receiving, by a receiving module (212), a speed measurement request initiated by a user equipment (UE) (108) through an interface (e.g., speed test widget displayed on a home screen) of the UE (108), wherein the speed test widget is creatable by a user of the UE (108). This step allows users to easily initiate a network speed test directly from their device's home screen. The speed test widget may be designed as a small, interactive element that provides quick access to the speed testing functionality. Users may create this widget according to their preferences, potentially customizing its appearance or placement on the home screen.

[0196] At step (504), the method (500) includes obtaining, by a location determination module (214), a current location of the UE (108) in response to the speed measurement request, wherein the current location is obtained upon a single input provided to the speed test widget. This step enhances user convenience by automatically determining the device's location with minimal user interaction. The location may be obtained through various means, including retrieving a combination of at least two of : a Mobile Country Code (MCC), a Mobile Network Code (MNC), a Location Area Code (LAC), and a Cell-ID (CID) associated with the UE (108). These identifiers provide accurate location information without relying on GPS, which can be battery intensive.

[0197] At step (504), the method (500) includes obtaining, by a location determination module (214), a current location of the UE (108) in response to the speed measurement request, wherein the current location is obtained upon a single input provided to the speed test widget. This single input mechanism works as follows:1. User Interaction: The user provides a single input, such as tapping the widget icon, swiping on the widget, or using a voice command like "Run speed test."2. Simultaneous Triggering: This single action simultaneously initiates both the speed test and the location determination process.3. Background Processing: The location determination begins immediately in the background, without requiring any additional user interaction.4. Seamless Integration: The user experience is streamlined, as the location determination is integrated into the speed test initiation process.

[0198] The step (504) enhances user convenience by automatically determining the device's location with minimal user interaction. The location may be obtained through various means, including:1. Network-based Methods: - Retrieving at least one of: a Mobile Country Code (MCC), a Mobile Network Code (MNC), a Location Area Code (LAC), and a Cell-ID (CID) associated with the UE (108). These identifiers provide accurate location information without relying on GPS, which can be battery intensive.2. Wi-Fi-based Positioning: - Utilizing nearby Wi-Fi access points to triangulate the device's position. This method is particularly effective in urban areas with high Wi-Fi density.3. IP Geolocation: - Estimating location based on the device's IP address. While less precise, this method requires minimal resources and works across both cellular and Wi-Fi networks.4. Bluetooth Beacons: - In some environments, especially indoors, Bluetooth Low Energy (BLE) beacons can be used for precise location determination.5. Hybrid Positioning: - Combining multiple methods for increased accuracy. For example, using Wi-Fi positioning in conjunction with cell tower information.6. A-GPS (Assisted GPS): - If available and permitted, this method uses both GPS and network resources to determine location more quickly and efficiently than standard GPS.7. Device Sensors: - Utilizing on-device sensors like accelerometers and magnetometers to refine location data, especially when used in combination with other methods.8. Crowd-sourced Location Databases: - Leveraging databases of known Wi-Fi access points and cell towers to quickly estimate location without intensive scanning.

[0199] The system dynamically selects the most appropriate method or combination of methods based on the available data, device capabilities, and user settings. This multi-faceted approach ensures accurate location determination across various environments while minimizing battery drain and respecting user privacy preferences. The seamless integration of location determination with the single-input speed test initiation creates a frictionless user experience, encouraging regular network performance monitoring.

[0200] At step (506), the method (500) includes selecting, by a server selection module (216), a nearest speed test server from a plurality of speed test servers (302-1, 302-2...302-n) based on the obtained current location of the UE (108). This selection process involves determining distances between the current location of the UE (108) and each of the plurality of speed test servers (302-1, 302- 2...302-n), and then selecting the speed test server with the shortest determined distance. By choosing the nearest server, the method ensures more accurate speed test results by minimizing the impact of geographical distance on network performance measurements.

[0201] At step (508), the method (500) includes initiating, by a speed test execution module (218), a speed test by transmitting data packets between the UE (108) and the selected speed test server. This step begins the actual speed testing process, involving the exchange of data between the user's device and the chosen server.

[0202] At step (510), the method (500) includes calculating, by a speed metric calculation module (220), at least one speed metric based on the transmitted data packets. The speed metrics typically comprise a download speed, an upload speed, and a latency based on the transmitted data packets. The calculation process involves measuring the time taken for first data packets to travel from the UE (108) to the selected speed test server and back to calculate the latency, measuring an amount of second data packets received by the UE (108) from the selected speed test server in a first predetermined time period to calculate the download speed, and measuring an amount of third data packets sent by the UE (108) to the selected speed test server in a second predetermined time period to calculate the upload speed.

[0203] At step (512), the method (500) includes displaying the calculated at least one speed metric on the UE (108). This step provides immediate feedback to the user about their network performance.

[0204] In some embodiments, the method further comprises storing the calculated at least one speed metric in a database (210). This allows for historical tracking and analysis of network performance overtime.

[0205] In certain implementations, the method may also include comparing the each of the calculated speed metrics with a respective predetermined thresholds and generating a performance assessment of the network based on the comparison. This provides users with context for their speed test results and helps them understand how their network performance compares to expected standards. The performance assessment may include a qualitative rating and specific recommendations for improvement.

[0206] In certain implementations, the method may also include comparing each of the calculated speed metrics with respective predetermined thresholds and generating a performance assessment of the network based on the comparison. This process involves:1. Threshold Definition:- Download Speed: e.g., Excellent > 100 Mbps, Good 50-100 Mbps, Fair 25-50 Mbps, Poor < 25 Mbps- Upload Speed: e.g., Excellent > 20 Mbps, Good 10-20 Mbps, Fair 5-10 Mbps, Poor < 5 Mbps- Latency: e.g., Excellent < 20 ms, Good 20-50 ms, Fair 50-100 ms, Poor > 100 ms2. Comparison Process:- Each calculated metric is compared against these thresholds.- Example: If a user's download speed is 75 Mbps, it would fall into the "Good" category.3. Performance Assessment Generation:The system creates a comprehensive assessment based on these comparisons. For example:- Overall Rating: Good- Download Speed: 75 Mbps (Good) - Suitable for HD streaming and most online activities- Upload Speed: 15 Mbps (Good) - Adequate for video calls and fde sharing- Latency: 30 ms (Good) - Responsive for online gaming and real-time applicationsThis performance assessment provides users with context for their speed test results. In this case, "context" means:1. Relative Performance:- How the user's network compares to expected standards or typical performance in their area.- Example: "Your download speed is 25% faster than the average in your neighbourhood."2. Practical Implications:- What the measured speeds mean for everyday internet activities.- Example: "Your current speed allows for smooth 4K video streaming on one device but may struggle with multiple 4K streams simultaneously."3. Historical Comparison:- How current performance compares to the user's previous test results.- Example: "Your download speed has improved by 10% since last week."4. ISP Plan Alignment:- How well the measured speeds align with what the user's Internet Service Provider (ISP) promises.- Example: "Your current speed is meeting 95% of your ISP's advertised 100 Mbps plan."5. Technology-specific Benchmarks:- How the performance compares to whafs typically expected for the user's connection type.- Example: "For a fiber connection, your speeds are within the expected range."6. Locality-based Insights:- How the performance compares to what's typical or possible in the user's geographic area.- Example: "Your speeds are in the top 20% for your city."7. Usage Recommendations:- Suggestions for activities that are well-suited to the current network performance.- Example: "Your connection is ideal for online gaming and HD video conferencing."8. Improvement Suggestions:- If performance is below expectations, the system might offer troubleshooting tips.- Example: "Your Wi-Fi signal strength is weak. Try moving closer to your router for better speeds."

[0207] By providing the above context, the system helps users understand how their network performance compares to expected standards and what it means for their online activities. This contextual information transforms raw speed data into actionable insights, enabling users to make informed decisions about their internet usage, troubleshoot issues, or discuss service quality with their ISP. It bridges the gap between technical metrics and practical, everyday internet use, making the speed test results more meaningful and useful for users of all technical levels.

[0208] It's worth noting that the speed measurement request may be initiated upon a single user interaction with the speed test widget, further enhancing the user- friendly nature of the system.

[0209] In another exemplary embodiment, a user equipment (108) communicatively coupled to a system (102) for evaluating network speed in a network (104) is described. The UE (108) may be any device capable of connecting to a network and running the speed test widget, including smartphones, tablets, laptops, and other internet-connected devices with display capabilities.

[0210] The present disclosure provides technical advancement related to network performance evaluation and user experience enhancement. Thisadvancement addresses the limitations of existing solutions by offering a user- friendly, efficient, and accurate method for testing network speeds. The disclosure involves a customizable widget-based approach and intelligent server selection, which offer significant improvements in speed test accuracy and user convenience. By implementing location-based server selection and comprehensive speed metric calculations, the disclosed invention enhances the reliability of network speed assessments, resulting in more informed decision-making by users regarding their internet services and usage patterns.

[0211] FIG. 6 illustrates an example computer system (600) in which or with which the embodiments of the present disclosure may be implemented.

[0212] As shown in FIG. 6, the computer system (600) may include an external storage device (610), a bus (620), a main memory (630), a read-only memory (640), a mass storage device (650), a communication port(s) (660), and a processor (670). A person skilled in the art will appreciate that the computer system (600) may include more than one processor and communication ports. The processor (670) may include various modules associated with embodiments of the present disclosure. The communication port(s) (660) may be any of an RS-232 port for use with a modem-based dialup connection, a 10 / 100 Ethernet port, a Gigabit or 10 Gigabit port using copper or fiber, a serial port, a parallel port, or other existing or future ports. The communication ports(s) (660) may be chosen depending on a network, such as a Local Area Network (LAN), Wide Area Network (WAN), or any network to which the computer system (600) connects.

[0213] In an embodiment, the main memory (630) may be Random Access Memory (RAM), or any other dynamic storage device commonly known in the art. The read-only memory (640) may be any static storage device(s) e.g., but not limited to, a Programmable Read Only Memory (PROM) chip for storing static information e.g., start-up or basic input / output system (BIOS) instructions for the processor (670). The mass storage device (650) may be any current or future massstorage solution, which can be used to store information and / or instructions. Exemplary mass storage solutions include, but are not limited to, Parallel Advanced Technology Attachment (PATA) or Serial Advanced Technology Attachment (SATA) hard disk drives or solid-state drives (internal or external, e.g., having Universal Serial Bus (USB) and / or Firewire interfaces).

[0214] In an embodiment, the bus (620) may communicatively couple the processor(s) (670) with the other memory, storage, and communication blocks. The bus (620) may be, e.g. a Peripheral Component Interconnect PCI) / PCI Extended (PCI-X) bus, Small Computer System Interface (SCSI), Universal Serial Bus (USB), or the like, for connecting expansion cards, drives, and other subsystems as well as other buses, such a front side bus (FSB), which connects the processor (670) to the computer system (600).

[0215] In another embodiment, operator and administrative interfaces, e.g., a display, keyboard, and cursor control device may also be coupled to the bus (620) to support direct operator interaction with the computer system (600). Other operator and administrative interfaces can be provided through network connections connected through the communication port(s) (660). Components described above are meant only to exemplify various possibilities. In no way should the aforementioned exemplary computer system (600) limit the scope of the present disclosure.

[0216] The method and system of the present disclosure may be implemented in a number of ways. For example, the methods and systems of the present disclosure may be implemented by software, hardware, firmware, or any combination of software, hardware, and firmware. The above-described order for the steps of the method is for illustration only, and the steps of the method of the present disclosure are not limited to the order specifically described above unless specifically stated otherwise. Further, in some embodiments, the present disclosure may also be embodied as programs recorded in a recording medium, the programsincluding machine-readable instructions for implementing the methods according to the present disclosure. Thus, the present disclosure also covers a recording medium storing a program for executing the method according to the present disclosure.

[0217] While considerable emphasis has been placed herein on the preferred embodiments, it will be appreciated that many embodiments can be made and that many changes can be made in the preferred embodiments without departing from the principles of the disclosure. These and other changes in the preferred embodiments of the disclosure will be apparent to those skilled in the art from the disclosure herein, whereby it is to be distinctly understood that the foregoing descriptive matter to be implemented merely as illustrative of the disclosure and not as limitation.ADVANTAGES OF THE PRESENT DISCLOSURE

[0218] The present disclosure performs speed tests of a network more accurately, efficiently, and conveniently through an optimized approach. By selecting the nearest speed test server based on the user's location, the system ensures more precise measurements of network performance.

[0219] The present disclosure displays the network download and upload speeds, as well as the network latency, in a clear and easily understandable format on the user equipment. This immediate feedback allows users to quickly assess their network performance.

[0220] The present disclosure reduces time to fetch data from a server and show / display the results to the user through minimum file download and upload. This optimization minimizes the impact of the speed test itself on the network being tested, providing more accurate results.

[0221] The present disclosure provides an approach that offers an efficient and cost-effective way to reach a broad user base while ensuring a consistent andhigh-quality user experience. The use of a cross-platform development framework allows the speed test widget to function across various operating systems and devices.

[0222] The present disclosure provides speed test widgets that offer a fast and effortless way to assess internet speed, requiring only a single user input . The widget's presence on the home screen and its single-click functionality make network speed testing more accessible and user-friendly.

Claims

CLAIMS1. A system (102) for evaluating network speed, comprising: a memory (204); one or more processors (202) configured to execute a set of instructions stored in the memory (204) to: receive, by a receiving module (212), a speed measurement request initiated by a user equipment (UE) (108) through an interface of the UE (108); obtain, by a location determination module (214), a current location of the UE (108) in response to the speed measurement request; select, by a server selection module (216), a nearest speed test server from a plurality of speed test servers (302-1, 302-2... 302- n) based on the obtained current location of the UE (108); initiate, by a speed test execution module (218), a speed test by transmitting data packets between the UE (108) and the selected speed test server; calculate, by a speed metric calculation module (220), at least one speed metric based on the transmitted data packets; and display the calculated at least one speed metric on the UE (108) through the interface.

2. The system (102) as claimed in claim 1, wherein the one or more processors (202) are further configured to store the calculated at least one speed metric in a database (210).

3. The system (102) as claimed in claim 1, wherein the current location is obtained upon a single input provided to the interface of the UE (108), wherein the interface comprises a speed test widget displayed on a home screen of the UE (108).

4. The system (102) as claimed in claim 1, wherein the location determination module (214) is configured to obtain the current location of the UE (108) by retrieving a combination of at least two of: a Mobile Country Code (MCC), a Mobile Network Code (MNC), a Location Area Code (LAC), and a Cell-ID (CID) associated with the UE (108).

5. The system (102) as claimed in claim 1, wherein the server selection module (216) is configured to select the nearest speed test server by: determining distances between the current location of the UE (108) and each of the plurality of speed test servers (302-1, 302-2. . . 302-n); and selecting the speed test server with the shortest determined distance.

6. The system (102) as claimed in claim 1, wherein the at least one speed metric comprising a download speed, an upload speed, and a latency, wherein the speed metric calculation module (220) is configured to: measure a time taken for first data packets to travel from the UE (108) to the selected speed test server and back to the UE (108) to calculate the latency; measure an amount of second data packets received by the UE (108) from the selected speed test server in a first predetermined time period to calculate the download speed; and measure an amount of third data packets sent by the UE (108) to the selected speed test server in a second predetermined time period to calculate the upload speed.

7. The system (102) as claimed in claim 1, wherein the one or more processors (202) are further configured to: compare the each of the calculated speed metrics with respective predetermined thresholds; andgenerate a performance assessment of the network based on the comparison, wherein the performance assessment includes a qualitative rating and specific recommendations for improvement.

8. The system (102) as claimed in claim 1, wherein the speed test widget is implemented using a cross-platform development framework, wherein the cross-platform development framework is configured to generate compatible versions of the speed test widget for multiple operating systems of different UEs, ensuring consistent functionality across diverse mobile platforms.

9. A method (500) for evaluating network speed, comprising: receiving (502), by a receiving module (212), a speed measurement request initiated by a user equipment (UE) (108) through an interface of the UE (108); obtaining (504), by a location determination module (214), a current location of the UE (108) in response to the speed measurement request; selecting (506), by a server selection module (216), a nearest speed test server from a plurality of speed test servers (302-1, 302-2...302-n) based on the obtained current location of the UE (108); initiating (508), by a speed test execution module (218), a speed test by transmitting data packets between the UE (108) and the selected speed test server; calculating (510), by a speed metric calculation module (220), at least one speed metric based on the transmitted data packets; and displaying (512) the calculated at least one speed metric on the UE (108) through the interface.

10. The method (500) as claimed in claim 9, further comprising storing the calculated at least one speed metric in a database (210).

11. The method (500) as claimed in claim 9, wherein the current location is obtained upon a single input provided to the interface of the UE (108), wherein the interface comprises a speed test widget displayed on a home screen of the UE (108).

12. The method (500) as claimed in claim 9, wherein obtaining the current location of the UE (108) comprises retrieving a combination of at least two of: a Mobile Country Code (MCC), a Mobile Network Code (MNC), a Location Area Code (LAC), and a Cell-ID (CID) associated with the UE (108).

13. The method (500) as claimed in claim 9, wherein selecting the nearest speed test server comprises: determining distances between the current location of the UE (108) and each of the plurality of speed test servers (302-1, 302-2...302-n); and selecting the speed test server with the shortest determined distance.

14. The method (500) as claimed in claim 9, wherein the at least one speed metric comprises a download speed, an upload speed, and a latency, and wherein calculating the at least one speed metric comprises: measuring a time taken for first data packets to travel from the UE (108) to the selected speed test server and back to calculate the latency; measuring an amount of second data packets received by the UE (108) from the selected speed test server in a first predetermined time period to calculate the download speed; and measuring an amount of second data packets sent by the UE (108) to the selected speed test server in a second predetermined time period to calculate the upload speed.

15. The method (500) as claimed in claim 9, further comprising:comparing the calculated speed metrics with predetermined thresholds; and generating a performance assessment of the network based on the comparison, wherein the performance assessment includes a qualitative rating and specific recommendations for improvement.

16. The method (500) as claimed in claim 9, wherein the speed test widget is implemented using a cross-platform development framework, wherein the cross-platform development framework is configured to generate compatible versions of the speed test widget for multiple operating systems of different UEs, ensuring consistent functionality across diverse mobile platforms.

17. A user equipment (108) communicatively coupled to a system (102) for evaluating network speed in a network (104), wherein the system (102) comprises: a memory (204); one or more processors (202) configured to execute a set of instructions stored in the memory (204) to perform the method (500) as claimed in claim 9.

18. A non-transitory computer-readable medium storing instructions that, when executed by one or more processors (202) of a system (102) for evaluating network speed in a network (104), cause the one or more processors (202) to perform operations comprising: receiving (502), by a receiving module (212), a speed measurement request initiated by a user equipment (UE) (108) through an interface of the UE (108); obtaining (504), by a location determination module (214), a current location of the UE (108) in response to the speed measurement request;selecting (506), by a server selection module (216), a nearest speed test server from a plurality of speed test servers (302-1, 302-2...302-n) based on the obtained current location of the UE (108); initiating (508), by a speed test execution module (218), a speed test by transmitting data packets between the UE (108) and the selected speed test server; calculating (510), by a speed metric calculation module (220), at least one speed metric based on the transmitted data packets; and displaying (512) the calculated at least one speed metric on the UE (108) through the interface.

Citation Information

Patent Citations

  • Network speed detection

    US20160294656A1

  • Network device, speed test method therefor and speed test system

    US20210211367A1