System for performing speed test in a network and a method thereof

The system addresses server overload and proximity issues in network speed tests by using a load balancer to select the nearest server based on user location parameters, ensuring accurate and efficient speed test results.

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

Patent Information

Application Number
PCT/IN2025/050081
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-03-20
Filing Date
2025-01-23
Publication Date
2025-09-25

AI Technical Summary

Technical Problem

Existing network speed test systems rely on single servers, leading to overload and inaccurate results due to server proximity issues, especially in complex networks with diverse user locations.

Method used

A system utilizing a load balancer to select the nearest speed test server based on user location parameters like MNC, MCC, and Cell ID, distributing requests efficiently and ensuring accurate speed test results through a processing engine, messaging queue, and database analysis.

Benefits of technology

This approach reduces server overload and enhances accuracy by selecting the nearest speed test server, providing real-time, reliable network speed metrics to user equipment.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure IN2025050081_25092025_PF_FP_ABST
    Figure IN2025050081_25092025_PF_FP_ABST
Patent Text Reader

Abstract

The present disclosure envisages a system and method of performing speed test in a network by selecting a nearest speed test server based on a user location. At least one load balancer (424) receives a speed measurement request initiated by at least one UE (422). The at least one load balancer (424) communicates the received speed measurement request to at least one application server (426). The at least one application server (426) selects at least one nearest speed test server (428) based on one or more parameters. The selected at least one nearest speed test server (428) executes the speed measurement request to generate a speed test information. The selected at least one nearest speed test server (428) communicates the generated speed test information to the at least one UE (422).
Need to check novelty before this filing date? Find Prior Art

Description

SYSTEM FOR PERFORMING SPEED TEST IN A NETWORK AND A METHOD THEREOFRESERVATION 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 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 present disclosure relates generally to the field of telecommunications. More particularly, the present disclosure relates to systems and methods for performing speed test in a network.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] Load balancer refers to a component that optimizes the distribution of incoming traffic across multiple servers or resources. Its primary function is to enhance system performance and ensure high availability by evenly distributing workload demands.

[0005] Mobile network code (MNC) refers to a component of the International Mobile Subscriber Identity (IMSI) used to uniquely identify mobile network operators within a country.

[0006] International Mobile Subscriber Identity (IMSI) is a unique identifier assigned to a mobile network subscriber. It consists of a 15-digit numeric code that includes information about the country code, network code, and subscriber identification number.

[0007] International Mobile Equipment Identity (IMEI) is a unique identifier assigned to every mobile device globally. Unlike the IMSI, which identifies the subscriber, the IMEI uniquely identifies the mobile device itself.

[0008] Mobile Station International Subscriber Directory Number (MSISDN) is essentially the telephone number assigned to a mobile device in a GSM (Global System for Mobile Communications) or UMTS (Universal Mobile Telecommunications System) network. The MSISDN includes the country code, area code (if applicable), and the subscriber number.

[0009] Mobile country code (MCC) refers to a component of the International Mobile Subscriber Identity (IMSI) used to uniquely identify mobile network operators (MNOs) at the international level.

[0010] Cell identifier (ID) refers to a unique identifier assigned to a specific cell (base station or tower) within a mobile network.BACKGROUND

[0011] 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.

[0012] Networks are becoming more complex due to higher speeds, increased interconnected units, and the integration of various sub-networks into larger ones. Users can now send different types of data simultaneously, such as text, voice, video, and multimedia files. In both new and existing communication networks, a major challenge is testing and troubleshooting to ensure the network operators identify the causes of any performance issues.

[0013] 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 a speed of the network. Speed tests are commonly done on individual devices. However, when many devices perform speed tests at once, it can overload the server and affect background operations and result processing.

[0014] In the existing network speed measurement method, a user equipment (client) establishes a connection with a server, and sends a connection request, and initiates communication through a three-way handshake based on TCP / IP protocol. The client sends a test data packet, starts a timer, and outputs a corresponding speed measurement result according to whether a feedback data packet returned from the server is received or not and the timing duration when the feedback data packet is received. However, relying on a single speed measuring server can cause errors, especially across different regions. Additionally, sending data packets through the client increases application load, impacting user experience. Many existing application performance measurement tools have been introduced for evaluating the performance of existing or new applications. However, these tools do not test the network independently. Further, the existing application performance measurement tools fail to provide an accurate speed test measurement results.

[0015] Therefore, there is a need for a system that overcomes the limitations of the prior art and accurately performs speed test in the network.OBJECTIVES OF THE DISCLOSURE

[0016] Some of the objectives of the present disclosure, which at least one embodiment herein satisfies, are as follows:

[0017] An objective of the present disclosure is to provide a system and a method that performs a speed test in a network.

[0018] Another objective of the present disclosure is to provide a system and a method that uses a dedicated server for a location (area), thereby reducing the response time considerably.

[0019] Another objective of the present disclosure is to provide a system and a method that employs the diversion of requests using a load balancer, thereby preventing overload on a particular server.

[0020] Other objectives and advantages of the present disclosure will be more apparent from the following description, which is not intended to limit the scope of the present disclosure.SUMMARY OF THE DISCLOSURE

[0021] In an exemplary embodiment, the present disclosure relates to a method for performing speed test in a network by selecting a nearest speed test server based on a user location. The method includes receiving, by at least one load balancer, a speed measurement request initiated by at least one user equipment (UE). The method includes communicating, by the at least one load balancer, the received speed measurement request to at least one application server. The method includes selecting, by the at least one application server, at least one nearest speed test server based on one or more parameters. The method includes executing, by the selected at least one nearest speed test server, the speed measurement request to generate a speedtest information. The method includes communicating, by the selected at least one nearest speed test server, the generated speed test information to the at least one UE.

[0022] In some embodiments, the method further comprising communicating by the at least one UE, the generated speed test information to the at least one load balancer.

[0023] In some embodiments, the method further comprising communicating, by the at least one load balancer, the generated speed test information to a messaging queue.

[0024] In some embodiments, the method further comprising analyzing, by the messaging queue, the generated speed test information and storing the analyzed speed test information in a database.

[0025] In some embodiments, the one or more parameters comprises at least one of a mobile network code (MNC), mobile country code (MCC), and a cell identifier (ID).

[0026] In an exemplary embodiment, the present disclosure relates to a system for performing speed test in a network by selecting a nearest speed test server based on a user location. The system comprises a processing engine and a memory coupled to the processing engine. The memory includes instructions to configure the processing engine to receive, by at least one load balancer, a speed measurement request initiated by at least one user equipment (UE). The processing engine is configured to communicate, by the at least one load balancer, the received speed measurement request to at least one application server. The processing engine is configured to select, by the at least one application server, at least one nearest speed test server based on one or more parameters. The processing engine is configured to execute, by the selected at least one nearest speed test server, the speed measurement request to generate a speed test information. The processing engine is configured tocommunicate, by the selected at least one nearest speed test server, the generated speed test information to the at least one UE.

[0027] In an exemplary embodiment, the present disclosure relates to a user equipment (UE) communicatively coupled with a network. The coupling comprises steps of receiving, by the network, a connection request from the UE, sending, by the network, an acknowledgment of the connection request to the UE and transmitting a plurality of signals in response to the connection request. The speed test in the network by selecting a nearest speed test server based on a user location is performed by a method that includes receiving, by at least one load balancer, a speed measurement request initiated by the UE. The method includes communicating, by the at least one load balancer, the received speed measurement request to at least one application server. The method includes selecting, by the at least one application server, at least one nearest speed test server based on one or more parameters. The method includes executing, by the selected at least one nearest speed test server, the speed measurement request to generate a speed test information. The method includes communicating, by the selected at least one nearest speed test server, the generated speed test information to the at least one UE.

[0028] In yet another exemplary embodiment, the present disclosure discloses a computer program product comprising a non-transitory computer-readable medium comprising instructions that, when executed by one or more processors, cause the one or more processors to perform a method for performing speed test in a network by selecting a nearest speed test server based on a user location. The method includes receiving, by at least one load balancer, a speed measurement request initiated by at least one user equipment (UE). The method includes communicating, by the at least one load balancer, the received speed measurement request to at least one application server. The method includes selecting, by the at least one application server, at least one nearest speed test server based on one or more parameters. The method includesexecuting, by the selected at least one nearest speed test server, the speed measurement request to generate a speed test information. The method includes communicating, by the selected at least one nearest speed test server, the generated speed test information to the at least one UE.

[0029] 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.BRIEF DESCRIPTION OF THE ACCOMPANYING DRAWING

[0030] 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 is 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 disclosure of electrical components, electronic components, or circuitry commonly used to implement such components.

[0031] FIG. 1 illustrates an exemplary network architecture of a system for performing speed test in a network by selecting a nearest speed test server based on a user location, in accordance with embodiments of the present disclosure.

[0032] FIG. 2 illustrates an exemplary block diagram of the system, in accordance with embodiments of the present disclosure.

[0033] FIG. 3 illustrates an exemplary system architecture of the system, in accordance with an embodiment of the present disclosure.

[0034] FIG. 4 illustrates an exemplary flow chart illustrating a method of performing the speed test in the network by selecting a nearest speed test server based on a user location, in accordance with an embodiment of the present disclosure.

[0035] FIG. 5 illustrates an example computer system in which or with which the embodiments of the present disclosure may be implemented.

[0036] FIG. 6 illustrates another exemplary flow chart illustrating the method, in accordance with an embodiment of the present disclosure.

[0037] The foregoing shall be more apparent from the following more detailed description of the disclosure.LIST OF REFERENCE NUMERALS100 Network Architecture102 A plurality of User(s)104 User Equipment(s) / Computing Device(s)106 Network108 System200 Block Diagram202 Processor(s)204 Memory206 Interface(s)208 Processing Engine(s)210 Database300 System Architecture302 User Equipment (UE)304 Load Balancer 306 Speed Test Mobile Application308 Plurality of Speed Test Servers310 Plurality of Application Servers312 Plurality of Producer Servers314 Messaging queue 316 Database318 Consumers tool400 Flow chart500 A computer system510 External Storage Device 520 Bus530 Main Memory540 Read Only Memory550 Mass Storage Device560 Communication Port570 Processor600 Flow chartDETAILED DESCRIPTION

[0038] 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 any 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. Example embodiments of the present disclosure are described below, as illustrated in various drawings in which like reference numerals refer to the same parts throughout the different drawings.

[0039] 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.

[0040] 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 thesespecific 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.

[0041] Also, it is noted that individual embodiments may be described as a process that is depicted as a flowchart, a flow diagram, a data flow diagram, a structure diagram, or a block diagram. Although a flowchart may describe the operations 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.

[0042] 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 construed 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 like the term “comprising” as an open transition word without precluding any additional or other elements.

[0043] 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.

[0044] The terminology used herein is to describe particular embodiments only and is not intended to be limiting the disclosure. As used herein, the singular forms “a”, “an”, and “the” are intended to include the plural forms as well, unless the context 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 combinations of one or more of the associated listed items. It should be noted that the terms “mobile device”, “user equipment”, “user device”, “communication device”, “device” and similar terms are used interchangeably for the purpose of describing the invention. These terms are not intended to limit the scope of the invention or imply any specific functionality or limitations on the described embodiments. The use of these terms is solely for convenience and clarity of description. The invention is not limited to any particular type of device or equipment, and it should be understood that other equivalent terms or variations thereof may be used interchangeably without departing from the scope of the invention as defined herein.

[0045] While considerable emphasis has been placed herein on the components and component parts of 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 embodiment as well as other 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 is to be interpreted merely as illustrative of the disclosure and not as a limitation.

[0046] 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 a speed of the network. Speed tests are commonly done on individual devices. However, when many devices perform speed tests at once, it can overload the server and affect background operations and result processing.

[0047] The existing speed test systems are configured to measure the latency, jitter, download, and upload bandwidth of the network connection between a device and one or more speed test servers. A speed test can be performed on various platforms such as the web, mobile phones, tablets, desktop computers, TVs, and routers. During the speed test, a number of lost packets and bi-directional traceroutes are measured, and device and network information is collected. The objective of the speed test 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.

[0048] However, these existing speed test systems often fall short due to the absence of nearby speed test servers. The reliability and functionality of these speed test 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.

[0049] Accordingly, there is a need for systems and methods for performing speed tests in a network more accurately and efficiently.

[0050] Hereinafter, exemplary embodiments of the present disclosure will be described with reference to the accompanying drawings.

[0051] FIG. 1 illustrates an exemplary network architecture (100) of a system (108) for performing speed test in a network (106) by selecting a nearest speed test server based on a user location, in accordance with embodiments of the present disclosure.

[0052] As illustrated in FIG. 1, the network architecture (100) may include one or more computing devices or user equipments (UEs) (104-1, 104-2, .... 104-N) associated with one or more users (102-1, 102-2, ...., 102-N) in an environment. A person of ordinary skill in the art will understand that one or more users (102-1, 102- 2, ...102-N) may be individually referred to as the user (102) and collectively referred to as the users (102). Similarly, a person of ordinary skill in the art will understand that one or more UEs (104-1, 104-2, ....104-N) may be individually referred to as the UE (104) and collectively referred to as the UEs (104). A person of ordinary skill in the art will appreciate that the terms “computing device(s)” and “user equipment” may be used interchangeably throughout the disclosure. Although three UEs (104) are depicted in FIG. 1, however any number of the user equipments (104) may be included without departing from the scope of the ongoing description. In an embodiment, each of the UE (104) may have a unique identifier attribute associated therewith. In an embodiment, the unique identifier attribute may be indicative of at least one of a Mobile Station International Subscriber Directory Number (MSISDN), International Mobile Equipment Identity (IMEI) number, an International Mobile Subscriber Identity (IMSI), a Subscriber Permanent Identifier (SUPI), and the like.

[0053] In an embodiment, the UE (104) may include smart devices operating in a smart environment, for example, an Internet of Things (loT) system. In such an embodiment, the UE (104) may include, but is not limited to, smart phones, smart watches, smart sensors (e.g., mechanical, thermal, electrical, magnetic, etc.), networked appliances, networked peripheral devices, a networked lighting system, communication devices, networked vehicle accessories, networked vehicular devices, smart accessories, tablets, smart television (TV), computers, a smart security system, a smart home system, other devices for monitoring or interacting with or for the users (102) and / or entities, or any combination thereof. A person of ordinary skill in the art will appreciate that the UE (104) may include, but is not limited to, intelligent, multisensing, network-connected devices, that can integrate seamlessly with each other and / or with a central server or a cloud-computing system or any other device that is network-connected.

[0054] In an embodiment, the UE (104) may include, but is not limited to, a handheld wireless communication device (e.g., a mobile phone, a smart phone, a phablet device, and so on), a wearable computer device (e.g., a head-mounted display computer device, a head-mounted camera device, a wristwatch computer device, and so on), a Global Positioning System (GPS) device, a laptop computer, a tablet computer, or another type of portable computer, a media playing device, a portable gaming system, and / or any other type of computer device with a wireless communication capabilities, and the like. In an embodiment, the UE (104) may include, but is not limited to, any electrical, electronic, electro-mechanical, or an equipment, or a combination of one or more of the above devices such as virtual reality (VR) devices, augmented reality (AR) devices, a laptop, a general-purpose computer, a desktop, a personal digital assistant, a tablet computer, a mainframe computer, or any other computing device. In addition, the UE (104) may include one or more in-built or externally coupled accessories including, but not limited to, a visual aid device such as a camera, an audio aid, a microphone, a keyboard, and inputdevices for receiving input from the user (102) or an entity such as touch pad, a touch enabled screen, an electronic pen, and the like. A person of ordinary skill in the art will appreciate that the UE (104) may not be restricted to the mentioned devices and various other devices may be used.

[0055] In FIG. 1, the UE (104) may communicate with the system (108) via the network (106) for enabling the system (108) to perform speed test in the network (106). In an embodiment, the network (106) may include at least one of a second generation (2G), third generation (3G), fourth generation (4G), fifth generation (5G) network, a sixth generation (6G) network, or the like. The network (106) may enable the UEs (104) to communicate with other devices in the network architecture (100) and / or with the system (108). The network (106) may include a wireless card or some other transceiver connection to facilitate this communication. In another embodiment, the network (106) may be implemented as, or include any of a variety of different communication technologies such as a wide area network (WAN), a local area network (LAN), a wireless network, a mobile network, a Virtual Private Network (VPN), the Internet, the Public Switched Telephone Network (PSTN), or the like. In an embodiment, the network (106) 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. In an embodiment, the UE (104) may be communicatively coupled with the network (106). The network (106) may receive a connection request from the UE (104). The network (106) may send an acknowledgment of the connection request to the UE (104). The UE (104) may transmit a plurality of signals in response to the connection request.

[0056] Although FIG. 1 shows exemplary components of the network architecture (100), in other embodiments, the network architecture (100) may includefewer 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).

[0057] FIG. 2 illustrates an exemplary block diagram (200) of the system (108), in accordance with embodiments of the present disclosure.

[0058] In an embodiment, the system (108) 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 (108). 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 create or share data packets over a network service. 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.

[0059] In an embodiment, the system (108) 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 (I / O), storage devices, and the like. The interface(s) (206) may facilitate communication through the system (108). The interface(s) (206) may also provide a communication pathway for one or more components of the system (108). Examples of such components include, but are not limited to, a processing engine (208) and a database (210).

[0060] In an embodiment, the processing engine (208) may be implemented as a combination of hardware and programming (for example, programmable instructions) to implement one or more functionalities of the processing engine (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 engine (208) may be processor-executable instructions stored on a non- transitory machine -readable storage medium and the hardware for the processing engine (208) may comprise a processing 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 engine (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 engine (208) may be implemented by electronic circuitry.

[0061] In an embodiment, the database (210) may store data that may be generated as a result of functionalities implemented by any of the components of the processor (202) or the processing engine (208). In an embodiment, the database (210) may be indicative of including, but not limited to, a relational database, a distributed database, a cloud-based database, or the like. In an exemplary embodiment, the processing engine (208) may include one or more units having functions that may include, but are not limited to, testing, storage, and peripheral functions, such as a wireless communication unit for remote operation, and the like.

[0062] In an embodiment, the processing engine (208) is configured to receive, by at least one load balancer, a speed measurement request initiated by at least one user equipment (UE). When a speed measurement request is initiated by theUE, it may include parameters such as the request type (e.g., download or upload speed test), the specific UE identifier (ID) (e.g., the IMSI or device ID), and possibly location-based information (e.g., MNC, MCC, or Cell ID). The load balancer acts as the first point of contact for these requests, intercepting and directing them to the appropriate application servers equipped to handle speed test operations. In an embodiment, the load balancer may receive the speed measurement request via a common method using HyperText Transfer Protocol (HTTP) and HyperText Transfer Protocol Secure (HTTPS) requests. In the HTTP / HTTPS, the UE sends a request to a server via the web, and the load balancer receives and forwards the request to other resources / servers for processing. Further, real-time communication protocols such as Real-Time Transport Protocol (RTP) or Real-Time Control Protocol (RTCP) can be used for speed measurement in applications like video streaming or Voice Over Internet Protocol (VoIP), allowing the load balancer to handle time-sensitive data. Further, network management protocols like Simple Network Management Protocol (SNMP) can also be employed for more structured measurement and network monitoring, with the load balancer acting as the intermediary. Additionally, RESTful Application Programming Interface (APIs) allows the UE to send a structured request to the load balancer.

[0063] The processing engine (208) is configured to communicate, by the at least one load balancer, the received speed measurement request to at least one application server. The load balancer facilitates the communication of the received speed measurement request to application servers within the network infrastructure, ensuring efficient distribution and processing of requests across the server instances. In an embodiment, once the load balancer receives the speed measurement request, the load balancer forwards the request to the application server using a predefined communication protocol, such as HTTP, HTTPS, Transmission Control Protocol (TCP), User Datagram Protocol (UDP), or WebSocket, depending on the architecture and configuration of the system. The protocols ensure that the request is transmittedefficiently and reliably, with TCP offering reliability, UDP providing speed, and WebSocket enabling persistent communication between the load balancer and the application server.

[0064] The processing engine (208) is configured to select, by the at least one application server, at least one nearest speed test server based on one or more parameters. In some embodiments, the one or more parameters comprises at least one of a mobile network code (MNC), mobile country code (MCC), and a cell identifier (ID). The application server may employ algorithms to select the nearest speed test server(s) by evaluating parameters such as the MNC, MCC, and the cell ID. For example, the application server may employ a geographical proximity algorithm to select the nearest speed test server(s) based on the MNC, MCC, and the cell ID. The algorithm uses the MNC, MCC, and Cell ID to calculate the geographic location of the UE in relation to the available speed test servers. By determining the coordinates of the mobile network tower (based on the Cell ID) and combining this information with the network operator’s location (using MNC and MCC), the application server can pinpoint the UE’s approximate location. The algorithm then calculates the distance between the UE and each available speed test server, taking into account geographic coordinates (latitude and longitude) and minimizing the number of network hops or latency. The application server evaluates available speed test servers, which are distributed geographically, and uses the proximity algorithm to select the one that is closest to the UE, thereby reducing latency. The server also checks the load on each test server to ensure it has sufficient capacity to handle the request efficiently. Additionally, the server considers network conditions such as bandwidth and overall server health to ensure that the chosen server can provide the most accurate measurement. Once the most suitable server is selected, the application server forwards the speed measurement request to that server.

[0065] The processing engine (208) is configured to execute, by the selected at least one nearest speed test server, the speed measurement request to generate a speed test information. The selected nearest speed test server executes the speed measurement request to generate the speed test information. This process involves conducting a series of data transfers between the nearest speed test server and the UE. The server initiates data uploads and downloads, measuring the transfer speeds and latency experienced during these operations. The generated speed test information includes metrics such as download speed, upload speed, latency, and possibly other parameters like packet loss and jitter. In an embodiment, once the selected nearest speed test server receives the speed measurement request, it executes the request by conducting various network performance tests to generate the speed test information. The speed test server begins by establishing a connection with the UE that initiated the request. The speed test measures download speed by sending data to the UE and assessing the rate at which data is received, and upload speed by testing the rate at which the UE can send data back to the server. Additionally, the speed test server checks latency by calculating the round-trip time for data to travel from the UE to the server and back. The generated speed test information includes metrics such as download speed, upload speed, latency, and possibly other parameters like packet loss and jitter (variations in delay).

[0066] The processing engine (208) is configured to communicate, by the selected at least one nearest speed test server, the generated speed test information to the at least one UE. Once the selected nearest speed test server has generated the speed test information, it initiates communication to transmit this data to the UE. The processing engine (208) is configured to communicate, by the UE, the generated speed test information to the at least one load balancer. This process involves sending the collected metrics such as the download speed, the upload speed, the latency, and other relevant performance indicators (e.g., packet loss and jitter) from the speed test session. In an embodiment, after the selected nearest speed test server generates thespeed test information, it communicates this data to the UE by sending the results through the network. The server first packages the generated speed test information comprising metrics like download speed, upload speed, latency, packet loss, and jitter into a suitable format, using protocols such as HTTP, HTTPS, or WebSocket, depending on the system’s architecture and configuration. The speed test server then transmits this information over the network, addressing the request to the UE’s internet protocol (IP) address or designated endpoint. In some cases, the speed test server may also use real-time protocols like UDP or MQTT for quicker transmission, particularly in applications that require low-latency communication. Once the data reaches the UE, the UE processes the information, displaying the results in a user- friendly format, allowing the user to view network performance metrics. The communication ensures that the UE receives accurate, real-time network speed data generated by the speed test server. The load balancer acts as a central point for receiving and aggregating speed test results from multiple speed test servers. By relaying this information to the load balancer, the nearest speed test server ensures that the test results are consolidated and centrally managed. This enables the load balancer to perform further analysis, distribute workload efficiently, and make informed decisions to optimize network performance based on the aggregated data received from various speed test servers.

[0067] In some embodiments, the processing engine is further configured to communicate, by the at least one UE, the generated speed test information to the at least one load balancer. In some embodiments, once the generated speed test information is processed by the selected speed test server, the processing engine is configured to communicate this data back to the load balancer via the UE. The UE, after receiving the speed test results from the test server, forwards the generated speed test information, which includes metrics such as download speed, upload speed, latency, packet loss, and jitter, to the load balancer. The communication occurs over the same network connection established for the initial speed test request. Theload balancer then processes the received data and may route it to other systems or components for further handling, such as analytics platforms, reporting services, or storage systems.

[0068] In some embodiments, the processing engine (208) is further configured to communicate, by the at least one load balancer, the generated speed test information to a messaging queue. In an embodiment, after the selected nearest speed test server generates the speed test information, the load balancer communicates this data to a messaging queue by first receiving the results from the speed test server. The load balancer then formats the generated speed test information, which includes metrics such as download speed, upload speed, latency, packet loss, and jitter, into a message suitable for the messaging queue. The load balancer places this message into the queue, which serves as an intermediary to manage the flow of data between different system components. Common examples of messaging queue protocols used for this purpose include AMQP (Advanced Message Queuing Protocol), STOMP (Streaming Text Oriented Messaging Protocol), XMPP (Extensible Messaging and Presence Protocol), MQTT (Message Queuing Telemetry Transport), and JMS (Java Message Service). The protocols ensure reliable and efficient message delivery, helping to decouple system components and provide better scalability, fault tolerance, and asynchronous processing. The messaging queue temporarily stores the information before it is delivered to other systems or services (such as data storage systems, analytics platforms, user interfaces, or notification services that process or display the speed test information) for further processing or storage, ultimately ensuring that the speed test information is handled in an organized and efficient manner. In an embodiment, the messaging queue may contain various types of messages that support communication between system components. In the context of a speed test system, the messaging queue may store speed test results, including metrics like download speed, upload speed, latency, packet loss, and jitter, as well as request messages with parameters for initiating a speed test, such as UE location andnetwork conditions. Additionally, the messaging queue may hold status messages indicating the progress or completion of a test, error messages describing any issues encountered, metadata like timestamps and identifiers, and log messages tracking the test’s execution and system performance. By utilizing the messaging queue, the load balancer ensures that the speed test information is efficiently passed on for further processing and analysis. The messaging queue’s distributed architecture allows for real-time data streaming, enabling seamless integration of speed test results into downstream applications for monitoring network performance.

[0069] In some embodiments, the processing engine (208) is further configured to analyze, by the messaging queue, the generated speed test information and storing the analyzed speed test information in the database (210). The messaging queue analyzes the generated speed test information. In an embodiment, the process of analyzing the generated speed test information and storing it in a database begins when the messaging queue receives the test data, which includes metrics such as download speed, upload speed, latency, packet loss, and jitter. The messaging queue then forwards this data to an analysis component that processes the information, calculating additional performance indicators, identifying trends, and detecting anomalies like high latency or packet loss. After analysis, the processed data, along with the raw metrics and any derived insights, is sent to a database for structured storage. The database organizes the information for easy retrieval, allowing it to be used for generating reports, monitoring network performance, or triggering alerts. The messaging queue utilizes its distributed architecture to efficiently handle realtime data streams, aggregating and organizing the speed test data. Once analyzed, the messaging queue then stores the processed speed test information in the database.

[0070] FIG. 3 illustrates an exemplary system architecture (300) of the system (108), in accordance with an embodiment of the present disclosure.

[0071] In some embodiments, the system (108) may include the UE (302), a load balancer (304), a plurality of application servers (310-1, ..., 310-4), a plurality of speed test servers (308-1, ..., 308-N), a plurality of producer servers (312-1, ..., 312- N), a messaging queue (314), a database (316), and a consumer tool (318).

[0072] In some embodiments, the UE 302 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 (306) installed in the UE (302). In some examples, the speed test mobile application (306) may be a software or a mobile application from an application distribution platform. In an example, the speed test mobile application (306) may have access to a number of parameters associated with the UE (302) such as current location of the UE (302), and files stored within the UE (302). In an example, the speed measurement request may include an address information of the UE (302), the MCC, the MNC, LAC (Location Area Code), and Cell ID representing current location of the UE (302). The address information of the UE (302) is a geographical location of the UE (302) and an identification information of the UE (302), such as an Internet Protocol (IP) address of the UE (302).

[0073] In some embodiments, the load balancer (dedicated load balancer) (304) may be configured to receive the speed measurement request initiated by the UE (302). The load balancer (304) may be configured to distribute incoming speed measurement request(s) across the plurality of application servers (310-1, ..., 310-N), ensuring no single server is overburdened. The load balancer (304) may be configured to distribute incoming network traffic across the application servers (310- 1, ..., 310-N). The load balancer (304) may be configured to adjust the distribution of requests dynamically to ensure optimal resource utilization.

[0074] In some embodiments, the application server (310-1, ..., 310-N) may be configured to receive the speed measurement request from the load balancer (304).In an example, the application servers (310-1, ..., 310-N) may be configured to extract the location information of the UE (302), and based on the extracted location information, the application server may be configured to select a speed test server (308-1, ..., 308-N). The speed test server (308-1, ..., 308-N) may be selected according to a distance between the UE (302) and each speed test server. In an example, the address corresponding to the selected speed test server (308-1, ..., 308- N) may be added to a repository (in-memory cluster) associated with the at least one determined application server (310-1...,310-N). In an example, the repository may be configured to store structured data for the plurality of application servers (310-1, ...,310-N). The repository may be configured to handle data retrieval, storage, and modification operations based on requests from the application servers.

[0075] In some embodiments, the application server (310-1,...,310-N) may be configured to receive the speed measurement request (a scheduled speed test request along with latched MNC-CELL ID from the user. The application server (310-1,..., 310-N) may be configured to select the nearest speed test server (308-l,...,308-N) based on the latched MNC-CELL ID. In an example, the application server (310-1,..., 310-N) may be configured to first check, via an application programming interface (API), the MNC-CELL ID in the ‘in-memory cluster’ (cache memory of the application server(s)). If the MNC-CELL ID is found in ‘in-memory cluster’, then the application server (310-1,..., 310-N) may respond with ‘No Speed test required’. If the MNC-CELL ID is not found in ‘in-memory cluster’, then the application server (310-1,..., 310-N) may insert the MNC-CELL ID in the ‘in-memory cluster’ with a time to live (TTL). In an example, the TTL may be of 2 minutes. Eurther, the application server (310-1,..., 310-N) may respond back to the load balancer (304) and the UE (302) with details of the selected speed test server (308-1, ..., 308-N).

[0076] In an example, the selected speed test server (308-1, ..., 308-N) may be a nearest test server for the UE (302). In an example, the application server (310-1, ...,310-N) may be configured to determine the nearest server based on a latitude and longitude of the UE (302). In another aspect, the nearest test server for the UE (302) may be selected on the MCC as well as MNC.

[0077] The plurality of speed test servers (308-1, ..., 308-N) may be configured to receive the request from the application server (310-1, ..., 310-N) and is further configured to execute the speed measurement request. The speed test server ((308-1, ..., 308-N) may be used for measuring the speed of the UE (302). The speed test server (308-1, ..., 308-N) may be configured to simulate various network conditions to evaluate the speed and responsiveness of the system (108). The speed test server (308-1, ..., 308-N) may be further configured to collect and analyze performance metrics, such as latency, throughput, and response times. The speed test server (308-1, ..., 308-N) may be configured to offer a standardized environment for users to assess their network or application performance. After executing the speed measurement request, the selected speed test server (308-1, ..., 308-N) may be configured to generate speed test information (result test or active data). In an example, the speed test server (308-1, ..., 308-N) may be configured to transmit the speed test information (result test) to the UE (302) via the speed test mobile application (306). The speed test server (308-1, ..., 308-N) may be configured to analyze the speed generated test information. The speed test server (308-1, ..., 308-N) may be configured to store the analyzed test information in the database (316) via the messaging queue (314).

[0078] After completion of the speed test, the speed test server (308-1, ..., 308-N) may be configured to synchronize the result data using a Data Synchronize API to the database (316) using a configuration having the plurality of producer servers (312-1,...312-N), the messaging queue (314) and a consumer tool (318). After receiving the result test from the speed test server (308-1, ..., 308-N), the UE (302) may be configured to share the speed test result with the load balancer (304).The UE (302) may be configured to synchronize the active data (speed test result) with the dedicated load balancer (304). The dedicated load balancer (304) may be further configured to synchronize the active data (speed test result) with the plurality of producer servers (312-1,..., 312-N). The dedicated load balancer (304) may be configured to share the data received from the UE (302) to at least one producer server from the plurality of producer servers (312-1,..., 312-N). In an example, the plurality of producer servers (312-1,..., 312-N) may be connected with the messaging queue (314).

[0079] The plurality of producer servers (312-1, ..., 312-N) may be configured to receive active data (result of speed test generated by various speed test servers) and generate published or streamed data. In an example, the plurality of producer servers (312-1,..., 312-N) is a computing device communicatively coupled to the messaging queue (314).

[0080] The plurality of producer servers (312-1, ..., 312-N) is located externally to the messaging queue (314) and may additionally be external to the physical computing clusters or data centers upon which the messaging queue (314) resides. For example, a producer server might be a computing device connected to a plurality of UE (302) and the load balancer (304) for generating streamed data, such that the computing device uses a wired or wireless communication network or series of networks to stream the active data from each UE (302) to the messaging queue (314).

[0081] The messaging queue (314) may be configured to manage an efficient and reliable transfer of data between different components of the system (108). In an example, the messaging queue (314) may be configured to enable real-time communication and data transfer. The messaging queue (314) may be configured to facilitate real-time communication between different components, such as the UE, the application servers, and the load balancer (304). In an example, the messaging queue(314) is used for receiving the streamed data from the plurality of producer servers (312-1, 312-N) and storing the received streamed data in a specific partition corresponding to a plurality of topics.

[0082] The consumer is configured to read or consume messages from the messaging queue (314) via a consumer tool (318). There can be several consumers consuming different types of data form the messaging queue that include atopic and a data hub. A topic is a common heading given to represent a similar type of data. There can be multiple topics in which each specifies different types of messages. In an aspect of the present disclosure, the plurality of producer servers (312-1, ..., 312- N) places the streamed data into a topic. Further, the data hub may be configured to consume the streamed data and directly store the consumed synchronized data in the database (316) or in a distributed database management system .

[0083] In an aspect, the published messages or streamed data can be divided into one or more topics, such that a stream of messages belonging to a particular category is assigned the same topic. For example, in the context of the example above, the active data from each UE (302) of the plurality of UEs connected to the plurality of producers servers (312-1, ..., 312-N) might be assigned its own topic. Alternatively, the active data from each UE (302) might be assigned to a single topic.

[0084] The present system (108) may be configured to employ a distributed architecture, thereby enhancing scalability, fault tolerance, and overall system performance, suitable for handling varying loads and ensuring a smooth user experience. The present system (108) may be configured to provide a backend architecture having an important feature used for the speed test in various mobile applications. In an aspect, the present system (108) may be applicable to 2G, 3G, 4G, 5G, 6G and beyond all generation of mobile technology with multiple bands and carriers of telecom operators.

[0085] By employing the various dedicated speed test servers (308-1, 308-N) at different location for speed test, the present system (108) may be configured to reduce latency of the mobile applications considerably. As a dedicated speed test server (308-1, ..., 308-N) is available for handling the request, the present system (108) may be configured to respond fast, hence the mobile application response time reduce considerably. Further, since the requests are diverted to various application servers (310-1, ..., 310-N) (e.g., using a round robin algorithm), therefore no application server get overloaded with the requests.

[0086] In an aspect, multiple application servers and speed test servers may be added with the system (108) as per requirement without changing in the system architecture.

[0087] The present system (108) may be configured to provide an accurate internet speed of the network to a customer (user), and a network operator, thereby helping in real time troubleshooting of network issues. In an aspect, the system (108) may be configured to monitor network performance on global area.

[0088] By using the architecture, the system (108) may be configured to improve latency as well as the accuracy of speed test data using the nearest test server. The speed test data can be used by the network operator or organization to troubleshoot any customer centric issue (by running speed test in their area).

[0089] FIG. 4 illustrates an exemplary flow chart illustrating a method (400) of performing the speed test by selecting a nearest speed test server based on a user location, in accordance with an embodiment of the present disclosure.

[0090] At step 402, the dedicated load balancer (424) may be configured to receive the speed measurement request initiated by the UE (422). In an example, the speed measurement request may include an address information of the UE (422), the MCC, the MNC, the LAC, and the Cell ID.

[0091] At step 404, the received speed measurement request may be forwarded by the load balancer (424) to the application servers (426).

[0092] At step 406, the application server (426) may be configured to select a nearest speed test server (428) based on one or more parameters. In an embodiment, the one or more parameters comprises at least one of the MNC, the MCC, and the cell ID. In an embodiment, the application server (426) may be configured to select the nearest speed test server (428) based on the latched MNC-CELL ID. In an example, the application server (426) may be configured to first check, the MNC-CELL ID in the ‘in-memory cluster’ (cache memory of the application server(s)). If the MNC- CELL ID is found in ‘in-memory cluster’, then the application server (426) may respond with ‘No Speed test required’. If the MNC-CELL ID is not found in ‘inmemory cluster’, then the application server (426) may insert the MNC-CELL ID in the ‘in-memory cluster’ with a time to live (TTL). In an example, the TTL may be of 2 minutes. Further, the application server (426) may respond back to the UE (422) with details of the selected speed test server (428).

[0093] At step 408, after establishing the connection with the speed test server (428), the UE (422) may be configured to send the speed measurement request to the selected speed test server (428) directly.

[0094] At step 410, the speed test server (428) may be configured to execute the received speed measurement request and generate speed test information (result test). In an example, the speed test server (428) may be configured to transmit the speed test information (result test) to the UE (422). The speed test server (428) may be configured to analyze the generated speed test information.

[0095] At step 412, the UE (422) may be configured to synchronize the active data (speed test result) with the dedicated load balancer (424). The active data refersto the speed test results or performance metrics that are dynamically collected and transmitted from the UE to the load balancer in real-time.

[0096] At step 414, the dedicated load balancer (424) may be configured to share the data received from the UE (422) with any of the plurality of the producer servers (430).

[0097] At step 416, the producer server (430) may be configured to place the data into a topic (application active data).in the messaging queue (432).

[0098] At step 418, the messaging queue (432) may be configured to link the data in the database (434) or in a database management system.

[0099] At step 420, the application servers (426) may be configured to periodically heartbeat check with the speed test server (428). This process involves the application servers (426) sending small, periodic messages or requests to the speed test server (428) at predetermined intervals, typically to verify its availability and responsiveness. The heartbeat messages serve as a simple health check mechanism, ensuring that the speed test server (428) is operational and able to respond to requests from the application servers (426). If the speed test server (428) fails to respond within a specified timeframe or returns an error, the application servers (426) may initiate predefined actions, such as alerting network administrators or attempting to reconnect to an alternate server. This periodic heartbeat check helps maintain the reliability and continuous operation of the speed test server (428) within the network (106).

[0100] FIG. 5 illustrates an example computer system (500) in which or with which the embodiments of the present disclosure may be implemented.

[0101] As shown in FIG. 5, the computer system (500) may include an external storage device (510), a bus (520), a main memory (530), a read-only memory(540), a mass storage device (550), a communication port (560), and a processor (570). A person skilled in the art will appreciate that the computer system (500) may include more than one processor (570) and communication ports (560). Processor (570) may include various modules associated with embodiments of the present disclosure.

[0102] In an embodiment, the communication port (560) 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 port (560) may be chosen depending on a network, such a Local Area Network (LAN), Wide Area Network (WAN), or any network to which the computer system (500) connects.

[0103] In an embodiment, the memory (530) may be Random Access Memory (RAM), or any other dynamic storage device commonly known in the art. Read-only memory (540) may be any static storage device(s) e.g., but not limited to, a Programmable Read Only Memory (PROM) chips for storing static information e.g., start-up or Basic Input / Output System (BIOS) instructions for the processor (570).

[0104] In an embodiment, the mass storage device (550) may be any current or future mass storage solution, which may 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 Lirewire interfaces), one or more optical discs, Redundant Array of Independent Disks (RAID) storage, e.g., an array of disks (e.g., SATA arrays).

[0105] In an embodiment, the bus (520) communicatively couples the processor(s) (470) with the other memory, storage, and communication blocks. The bus (520) 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 (570) to the computer system (500).

[0106] Optionally, operator and administrative interfaces, e.g., a display, keyboard, joystick, and a cursor control device, may also be coupled to the bus (520) to support direct operator interaction with the computer system (500). Other operator and administrative interfaces may be provided through network connections connected through the communication port (560). The components described above are meant only to exemplify various possibilities. In no way should the aforementioned exemplary computer system (500) limit the scope of the present disclosure.

[0107] FIG. 6 illustrates another exemplary flow chart illustrating the method (600), in accordance with an embodiment of the present disclosure.

[0108] At step 602, the method (600) includes receiving, by at least one load balancer (424), a speed measurement request initiated by at least one user equipment (UE) (422). When a speed measurement request is initiated by the UE, it may include parameters such as the request type (e.g., download or upload speed test), the specific UE identifier (ID) (e.g., the IMSI or device ID), and possibly location-based information (e.g., a mobile network code (MNC), mobile country code (MCC), and a cell identifier (ID)). The load balancer acts as the first point of contact for these requests, intercepting and directing them to the appropriate application servers equipped to handle speed test operations.

[0109] At step 604, the method (600) includes communicating, by the at least one load balancer (424), the received speed measurement request to at least one application server (426). Depending on the network configuration, the load balancer may employ algorithms to determine which application server should handle the request based on factors such as current server load, response times, and geographic proximity to the requesting UE. For example, the algorithms may include Round Robin, Least Connections, or Weighted Round Robin to distribute incoming requests among backend servers efficiently. The Round Robin algorithm sequentially routes requests to each server in turn, ensuring an equitable distribution of workload without considering server load or performance. In contrast, algorithms like Least Connections prioritize sending requests to servers with the fewest active connections, aiming to balance the load dynamically based on current server capacity. Weighted Round Robin assigns higher weights to servers with greater processing capabilities, thereby directing more requests to these servers to maximize throughput. Once the load balancer identifies the optimal destination for the speed measurement request, it forwards the request to the designated application server or servers.

[0110] At step 606, the method (600) includes selecting, by the at least one application server (426), at least one nearest speed test server (428) based on one or more parameters. In an embodiment, the one or more parameters comprises at least one of the MNC, the MCC, and the cell ID. The application server may employ an algorithm to select the nearest speed test server(s) by evaluating parameters such as the MNC, MCC, and the cell ID. For example, the application server may employ a geographical proximity algorithm to select the nearest speed test server(s) based on the MNC, MCC, and the cell ID. The geographical proximity algorithm calculates the geographical distance between the user’s location, identified by MCC and the cell ID, and the locations of available speed test servers. By using latitude and longitude coordinates associated with each server, the geographical proximity algorithm determines the server(s) closest to the user’s geographical position.

[0111] At step 608, the method (600) includes executing, by the selected at least one nearest speed test server (428), the speed measurement request to generate a speed test information. The selected nearest speed test server executes the speed measurement request to generate the speed test information. This process involves conducting a series of data transfers between the nearest speed test server and the UE (104). The server initiates data uploads and downloads, measuring the transfer speeds and latency experienced during these operations. The generated speed test information typically includes metrics such as download speed, upload speed, latency, and possibly other parameters like packet loss and jitter.

[0112] At step 610, the method (600) includes communicating, by the selected at least one nearest speed test server (428), the generated speed test information to the at least one UE (422). In an embodiment, the method further includes communicating, by the at least one UE (422), the generated speed test information to the at least one load balancer (424). The load balancer acts as a central point for receiving and aggregating speed test results from multiple speed test servers.

[0113] In an embodiment, the method further includes communicating, by the at least one load balancer (424), the generated speed test information to a messaging queue (432). The load balancer facilitates the transmission of the generated speed test information to the messaging queue. By utilizing the messaging queue, the load balancer ensures that the speed test information is efficiently passed on for further processing and analysis. The messaging queue’s distributed architecture allows for real-time data streaming, enabling seamless integration of speed test results into downstream applications for monitoring network performance.

[0114] In an embodiment, the method further includes analyzing, by the messaging queue (432), the generated speed test information and storing the analyzed speed test information in a database (434). The messaging queue analyzes the generated speed test information. This analysis involves processing metrics such asthe download speed, the upload speed, the latency, and other performance indicators collected from multiple speed test servers. The messaging queue utilizes its distributed architecture to efficiently handle real-time data streams, aggregating and organizing the speed test data. Once analyzed, the messaging queue then stores the processed speed test information in the database. This database serves as a centralized repository for storing and accessing historical speed test results. By storing the analyzed information in the database, the system enables network administrators and analysts to perform in-depth analysis, generate performance reports, and derive insights into network performance trends over time.

[0115] In another exemplary embodiment, the present disclosure relates to a user equipment (UE) (422) communicatively coupled with a network (106). The coupling comprises steps of receiving, by the network (106), a connection request from the UE (422), sending, by the network (106), an acknowledgment of the connection request to the UE (422), and transmitting a plurality of signals in response to the connection request. A speed test in the network (106) by selecting a nearest speed test server based on a user location is performed by a method (600) that includes receiving (602), by at least one load balancer (424), a speed measurement request initiated by at least one UE (422). The method (600) includes communicating (604), by the at least one load balancer (424), the received speed measurement request to at least one application server (426). The method (600) includes selecting (606), by the at least one application server (426), at least one nearest speed test server (428) based on one or more parameters. The method (600) includes executing (608), by the selected at least one nearest speed test server (428), the speed measurement request to generate a speed test information. The method (600) includes communicating (610), by the selected at least one nearest speed test server (428), the generated speed test information to the at least one UE (422).

[0116] In yet another exemplary embodiment, the present disclosure discloses a computer program product comprising a non-transitory computer-readable medium comprising instructions that, when executed by one or more processors, cause the one or more processors to perform a method for performing speed test in a network by selecting a nearest speed test server based on a user location. The method includes receiving, by at least one load balancer, a speed measurement request initiated by at least one user equipment (UE). The method includes communicating, by the at least one load balancer, the received speed measurement request to at least one application server. The method includes selecting, by the at least one application server, at least one nearest speed test server based on one or more parameters. The method includes executing, by the selected at least one nearest speed test server, the speed measurement request to generate a speed test information. The method includes communicating, by the selected at least one nearest speed test server, the generated speed test information to the at least one UE.

[0117] The present disclosure provides technical advancement related to performing a speed test in a network. This advancement addresses the limitations of existing solutions by offering precise internet speed measurements to both customers and network operators, facilitating real-time troubleshooting of network issues. By monitoring network performance on a global scale, the system provides comprehensive insights into network conditions across different geographic areas. This architecture enhances latency and ensures the accuracy of speed test data by utilizing the nearest available test servers. The speed test results empower network operators and organizations to address customer-centric issues by conducting localized speed tests, thereby improving service quality and customer satisfaction. Ultimately, the integrated approach enables proactive network management, timely problem resolution, and enhanced overall performance of the network infrastructure.TECHNICAL ADVANCEMENTSThe present disclosure described herein above has several technical advantages including, but not limited to, the realization of the system and the method that:1. performs an accurate speed test in a network; 2. uses a dedicated server for a location (area), thereby reducing the response time considerably; and3. employs diversion of requests using a load balancer, thereby preventing overload on a particular speed test server.

Claims

CLAIMS1. A method (600) for performing speed test in a network (106) by selecting a nearest speed test server based on a user location, the method (600) comprising: receiving (602), by at least one load balancer (424), a speed measurement request initiated by at least one user equipment (UE) (422); communicating (604), by the at least one load balancer (424), the received speed measurement request to at least one application server (426); selecting (606), by the at least one application server (426), at least one nearest speed test server (428) based on one or more parameters; executing (608), by the selected at least one nearest speed test server (428), the speed measurement request to generate a speed test information; and communicating (610), by the selected at least one nearest speed test server (428), the generated speed test information to the at least one UE (422).

2. The method (600) as claimed in claim 1, further comprising communicating, by the at least one UE (422), the generated speed test information to the at least one load balancer (424).

3. The method (600) as claimed in claim 2, further comprising communicating, by the at least one load balancer (424), the generated speed test information to a messaging queue (432).

4. The method (600) as claimed in claim 3, further comprising analyzing, by the messaging queue (432), the generated speed test information and storing the analyzed speed test information in a database (434).

5. The method (600) as claimed in claim 1, wherein the one or more parameters comprises at least one of a mobile network code (MNC), mobile country code (MCC), and a cell identifier (ID).

6. A system (108) for performing speed test in a network (106) by selecting a nearest speed test server based on a user location, the system (108) comprising: a processing engine (208); a memory (204) coupled to the processing engine (208), wherein the memory (204) includes instructions to configure the processing engine (208) to: receive, by at least one load balancer (424), a speed measurement request initiated by at least one user equipment (UE) (422); communicate, by the at least one load balancer (424), the received speed measurement request to at least one application server (426); select, by the at least one application server (426), at least one nearest speed test server (428) based on one or more parameters; execute, by the selected at least one nearest speed test server (428), the speed measurement request to generate a speed test information; and communicate, by the selected at least one nearest speed test server (428), the generated speed test information to the at least one UE (422).

7. The system (108) as claimed in claim 6, further configured to communicate, by the at least one UE (422), the generated speed test information to the at least one load balancer (424).

8. The system (108) as claimed in claim 7, further configured to communicate, by the at least one load balancer (424), the generated speed test information to a messaging queue (432).

9. The system (108) as claimed in claim 8, further configured to analyze, by the messaging queue (432), the generated speed test information and storing the analyzed speed test information in a database (434).

10. The system (108) as claimed in claim 6, wherein the one or more parameters comprises at least one of a mobile network code (MNC), mobile country code (MCC), and a cell identifier (ID).

11. A user equipment (UE) (422) communicatively coupled with a network (106), the coupling comprises steps of: receiving, by the network (106), a connection request from the UE (422); sending, by the network (106), an acknowledgment of the connection request to the UE (422); and transmitting a plurality of signals in response to the connection request, wherein speed test in the network (106) by selecting a nearest speed test server based on a user location is performed by a method as claimed in claim 1.

12. A computer program product comprising a non-transitory computer-readable medium comprising instructions that, when executed by one or more processors, cause the one or more processors to perform a method (600) for performing speed test in a network (106) by selecting a nearest speed test server based on a user location, the method (600) comprising: receiving (602), by at least one load balancer (424), a speed measurement request initiated by at least one user equipment (UE) (422); communicating (604), by the at least one load balancer (424), the received speed measurement request to at least one application server (426); selecting (606), by the at least one application server (426), at least one nearest speed test server (428) based on one or more parameters; executing (608), by the selected at least one nearest speed test server (428), the speed measurement request to generate a speed test information; and communicating (610), by the selected at least one nearest speed test server (428), the generated speed test information to the at least one UE (422).