Abstract: Disclosed is a system (200) and a method (500) for performing a network speed test. The method comprises controlling an application interface of a user device (110) to display options related to configurability of speed test parameters. The speed test parameters are then configured in response to the input corresponding to the displayed options. The speed test parameters are provided to a backend service deployed on a server of the servers (250). The network speed test is then performed, using a microservice (240) associated with the backend service, on a transport layer protocol. A result of the network speed test is transmitted to a port of the user device (110). FIG. 5
DESC:FORM 2
THE PATENTS ACT, 1970 (39 OF 1970)
&
THE PATENT RULES, 2003
COMPLETE SPECIFICATION
(See section 10 and rule 13)
SYSTEM AND METHOD FOR PERFORMING A NETWORK SPEED TEST
Jio Platforms Limited, an Indian company, having registered address at Office -101, Saffron, Nr. Centre Point, Panchwati 5 Rasta, Ambawadi, Ahmedabad - 380006, Gujarat, India
The following specification particularly describes the invention and the manner in which it is to be performed.
TECHNICAL FIELD
The embodiments of the present disclosure generally relate to the field of communication networks and systems. More particularly, the present disclosure relates to a system and a method for performing a network speed test.
BACKGROUND OF THE INVENTION
The subject matter disclosed in the background section should not be assumed or construed to be prior art merely because of its mention in the background section. Similarly, any problem statement mentioned in the background section or its association with the subject matter of the background section should not be assumed or construed to have been previously recognized in the prior art.
In the realm of wireless communication and networking environments, rapid evolution of mobile and broadband technologies has significantly transformed the way in which network users connect and interact digitally. With increased usage of smartphones and a rising demand for high-speed internet connectivity, a need for testing applications for testing a network speed has also increased. This necessity arises not only from consumer demand for the high-speed internet connectivity but also from the increasing reliance on real time applications such as video conferencing, online gaming, and cloud computing, all of which require robust network performance,
Conventional methods for testing the network speed generally utilize a Transmission Control Protocol (TCP) to measure a downloading and an uploading speed of the network. In context of a computing network, the TCP refers to a transport layer protocol of the Internet Protocol (IP) suite, which is used for reliable communication over a network. The TCP operates at a transport layer of the IP and is responsible for ensuring that data sent from one device to another arrives intact and in correct order. However, despite usage of the protocols such as the TCP, the conventional methods suffered from various limitations and were not accurate and efficient enough to assess the speed of the network.
While the conventional methods for testing the network speed are effective for TCP-based assessments, these methods encounter inherent limitations and lead to inaccurate representations of network performance for critical applications. Further, factors such as network congestion, server responsiveness, and inherent limitations of the TCP introduce discrepancies affecting the performance of the network.
One of the primary limitations of TCP based speed tests is sensitivity to network conditions. For instance, the TCP is designed to manage congestion control and flow control, which can inadvertently lead to packet loss or high latency, thereby resulting in speed test outcomes that do not accurately reflect the actual user experience, particularly under conditions that are representative of typical usage patterns. Consequently, the users may be led to believe that their Internet connections are performing better or worse than they actually are, leading to dissatisfaction or misguided troubleshooting efforts.
Moreover, the TCP-based speed tests may face unique challenges owing to reliance on a connection-oriented approach means that it often fails to account for the various factors that influence network performance in real time applications. Metrics such as packet loss (loss of data packets during transmission), jitter (variability in packet arrival times), and latency (delay before the data transfer begins) are essential for evaluating a quality and reliability of modern internet connections. However, the TCP-based speed tests do not adequately address these metrics, thus rendering them less effective for applications that demand high quality, and low latency communication.
Therefore, to overcome aforementioned challenges and limitations associated with the conventional TCP-based methods for testing the network speed, there lies a need for a system and a method that is capable of measuring the network speed of modern internet connections accurately and efficiently.
SUMMARY
The following embodiments present a simplified summary to provide a basic understanding of some aspects of the disclosed invention. This summary is not an extensive overview, and it is not intended to identify key/critical elements or to delineate the scope thereof. Its sole purpose is to present some concepts in a simplified form as a prelude to the more detailed description that is presented later.
According to an aspect of the present disclosure, disclosed herein is a method for performing a network speed test by a server of a plurality of servers. The method comprises receiving, by an acquisition module via an application interface of a user device, an input for performing the network speed test. The method further comprises providing, by an execution module, one or more speed test parameters to a backend service deployed on the server and performing, by the execution module using a microservice associated with the backend service, the network speed test on a transport layer protocol. Thereafter, the method comprises transmitting, by a data processing module, a result of the network speed test to the user device.
In one or more implementations, the input comprises configurability of the one or more speed test parameters corresponding to an application installed on the user device. The input is received at the server selected by a user among the plurality of servers.
In one or more implementations, the method further comprises enabling, by the data processing module, the user device to display a plurality of options associated with the configurability of the one or more speed test parameters and receiving, by the acquisition module, the input corresponding to the plurality of options.
In one or more implementations, the one or more speed test parameters includes at least one of a buffer size, a test duration, a test time, a connection type, measurement units, size of test packets, and a protocol to be used for performing the network speed test.
In one or more implementations, for performing the network speed test on the transport layer protocol, the method comprises enabling, by the execution module, the user device to receive data packets over the transport layer protocol in accordance with the configured one or more speed test parameters and determining, by the execution module, a volume of data packets received during the test duration.
In one or more implementations, the method further comprises transmitting, by the data processing module, the result of the network speed test to a port of the user device in form of bytes and enabling, by the data processing module, the user device to display the result of the network speed test in form of megabits.
According to another aspect of the present disclosure, disclosed is a system for performing a network speed test. The system comprises an acquisition module, an execution module, and a data processing module. The acquisition module is configured to receive, via an application interface of a user device, an input for performing the network speed test. The input comprises configurability of one or more speed test parameters corresponding to an application installed on the user device. The input is received at a server selected by a user among a plurality of servers. The one or more speed test parameters include at least one of a buffer size, a test duration, a test time, a connection type, measurement units, size of test packets, or a protocol to be used for performing the network speed test. The execution module is further configured to provide the one or more speed test parameters to a backend service deployed on the server. The execution module is further configured to perform, using a microservice associated with the backend service, the network speed test on a transport layer protocol. The data processing module is configured to transmit a result of the network speed test to the user device.
In one or more implementations, the data processing module is configured to enable the user device to display a plurality of options associated with the configurability of the one or more speed test parameters. The acquisition module is configured to receive the input corresponding to the plurality of options.
In one or more implementations, to perform the network speed test on the transport layer protocol, the execution module is configured to enable the user device to receive data packets over the transport layer protocol in accordance with the configured one or more speed test parameters and determine a volume of data packets received during the test duration.
In one or more implementations, the data processing module is further configured to transmit the result of the network speed test to a port of the user device in form of bytes and enable the user device to display the result of the network speed test in form of megabits.
BRIEF DESCRIPTION OF DRAWINGS
Various embodiments disclosed herein will become better understood from the following detailed description when read with the accompanying drawings. The accompanying drawings constitute a part of the present disclosure and illustrate certain non-limiting embodiments of inventive concepts. Further, components and elements shown in the drawings are not necessarily to scale, emphasis instead being placed upon clearly illustrating the principles of the present disclosure. For consistency and ease of understanding, similar components and elements are annotated by reference numerals in the exemplary drawings.
FIG. 1 illustrates a block diagram of an example system architecture depicting interaction between a user device and a server executing the network speed test, in accordance with an embodiment of the present disclosure.
FIG. 2 illustrates a block diagram depicting an example system for performing the network speed test, in accordance with an embodiment of the present disclosure.
FIG. 3 illustrates a block diagram depicting an architecture of a test server, in accordance with an embodiment of the present disclosure.
FIG. 4 illustrates a block diagram depicting various components of a processor of the test server, in accordance with an embodiment of the present disclosure.
FIG. 5 illustrates a flowchart depicting a method for performing the network speed test, in accordance with an embodiment of the present disclosure.
FIG. 6 illustrates a schematic architecture diagram depicting a computing system, in accordance with an embodiment of the present disclosure.
DETAILED DESCRIPTION OF THE INVENTION
Inventive concepts of the present disclosure will now be described more fully hereinafter with reference to the accompanying drawings, in which examples of one or more embodiments of inventive concepts are shown. Inventive concepts may, however, be embodied in different forms and should not be construed as limited to the embodiments set forth herein. Further, the one or more embodiments disclosed herein are provided to describe the inventive concept thoroughly and completely, and to fully convey the scope of each of the present inventive concepts to those skilled in the art. Furthermore, it should be noted that the embodiments disclosed herein are not mutually exclusive concepts. Accordingly, one or more components from one embodiment may be tacitly assumed to be present or used in any other embodiment.
The following description presents various embodiments of the present disclosure. The embodiments disclosed herein are presented as teaching examples and are not to be construed as limiting the scope of the present disclosure. The present disclosure should in no way be limited to the illustrative implementations, drawings, and techniques illustrated below, including the exemplary design and implementation illustrated and described herein, but may be modified, omitted, or expanded upon without departing from the scope of the present disclosure.
The following description contains specific information pertaining to embodiments in the present disclosure. The detailed description uses the phrases “in some embodiments” or “some implementations” which may each refer to one or more or all of the same or different embodiments or implementations. The term “some” as used herein is defined as “one, or more than one, or all.” Accordingly, the terms “one,” “more than one,” “more than one, but not all” or “all” would all fall under the definition of “some.” In view of the same, the terms, for example, “in an embodiment” or “in an implementation” refers to one embodiment or one implementation and the term, for example, “in one or more embodiments” refers to “at least one embodiment, or more than one embodiment, or all embodiments.” Further, the term, for example, “in one or more implementations” refers to “at least one implementation, or more than one implementation, or all implementations.”
The term “comprising,” when utilized, means “including, but not necessarily limited to;” it specifically indicates open-ended inclusion in the so-described one or more listed features, elements in a combination, unless otherwise stated with limiting language. Furthermore, to the extent that the terms “includes,” “has,” “have,” “contains,” and other similar words are used in either the detailed description, such terms are intended to be inclusive in a manner similar to the term “comprising.”
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.
The description provided herein discloses exemplary embodiments only and is not intended to limit the scope, applicability, or configuration of the present disclosure. Rather, the foregoing description of the exemplary embodiments will provide those skilled in the art with an enabling description for implementing any of the exemplary embodiments. Specific details are given in the following description to provide a thorough understanding of the embodiments. However, it may be understood by one of the ordinary skilled in the art that the embodiments disclosed herein may be practiced without these specific details.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the disclosure. As used herein the description, the singular forms "a", "an", and "the" include plural forms unless the context of the invention indicates otherwise.
The terminology and structure employed herein are for describing, teaching, and illuminating some embodiments and their specific features and elements and do not limit, restrict, or reduce the scope of the present disclosure. Accordingly, unless otherwise defined, all terms, and especially any technical and/or scientific terms, used herein may be taken to have the same meaning as commonly understood by one having ordinary skill in the art.
The present disclosure relates to a system and a method for performing a network speed test. An aspect of the present disclosure is to provide a system and a method for performing the network speed test on a transport layer protocol such as a User Datagram Protocol (UDP) that can enable next-generation networks to meet industry expectations. In context of a computing network, the UDP refers to a communication protocol, which is part of the Internet Protocol (IP) suite, operating at the transport layer. Unlike Transmission Control Protocol (TCP), the UDP refers a connectionless protocol that provides a simpler and faster way to transmit data between devices over a network.
Another aspect of the present disclosure is to provide a system and a method that can test the network speed on the UDP without requiring a connection before sending data.
Another aspect of the present disclosure is to provide a system and a method for testing the network speed on the UDP which does not require mechanisms for acknowledgement, retransmission of data, or error correction while sending the data.
In order to facilitate an understanding of the disclosed invention, a number of terms are defined below.
A Network Element (NE) refers to any individual device or logical entity within a telecommunication network, such as a router, a switch, or a base station, which are monitored and managed by the EMS. The NE is the lowest manageable unit in a network and supports execution of specific network functions.
A network speed test refers to a procedure to evaluate performance of a mobile or broadband network in terms of data throughput, latency, jitter, and packet loss. In the context of the present disclosure, the network speed test corresponds to a method that measures a speed at which data packets are transmitted between a server and a user device over a transport layer protocol.
A communication network or a network corresponds to a communication medium (e.g., Long Term Evolution (LTE), Fifth Generation (5G), Wireless Fidelity (Wi-Fi), private enterprise networks, or the like) that facilitates data exchange between a messaging server, UEs, clients, and cloud-based messaging services.
The transport layer protocol refers to a protocol that operates at a transport layer (layer 4) of an Open Systems Interconnection (OSI) model for providing end to end communication services for applications. Common transport layer protocols include Transmission Control Protocol (TCP), User Datagram Protocol (UDP), etc.
The OSI model refers a set of rules that explains how different computer systems communicate over a network. The OSI Model consists of 7 layers and each layer has specific functions and responsibilities.
The TCP refers to a transport layer protocol that provides reliable, connection-oriented data transmission over IP networks. The TCP ensures ordered delivery, error checking, retransmission of lost packets, and the like.
The UDP corresponds to a transport layer protocol that provides a connectionless data transfer service over IP networks, prioritizing low latency and minimum protocol overhead. In the context of the present disclosure, the UDP is the primary protocol used for performing network speed tests due to its high-speed transmission and low latency characteristics. The UDP based network speed test measures network throughput by sending data packets without stablishing a connection allowing for faster data transfer rates compared to the TCP.
A server refers to a network entity responsible for providing services and handling data processing or storage. The server typically hosts applications and interacts with client devices.
A user device refers to any terminal equipment used by an end user to access network services, such as a smartphone, tablet, laptop, or the like. In context of the present disclosure, the user device corresponds to a device that runs a client application to input speed test parameters and display test results received from the server.
A microservices framework corresponds to a network architecture, where independent microservices communicate over Application Programming Interfaces (APIs), enabling modular, scalable, and resilient network management applications.
A microservice refers to individual components that perform specific tasks within a system, for example, a test execution microservice could be responsible for running the network tests, while data processing microservice could handle data transformation and storage.
A data packet corresponds to a formatted unit of data transmitted over a network, including a payload and header. In the context of the present disclosure, the data packet refers to a unit of data sent and received during the network speed test, where packet size, buffer size, transmission time, etc. are configurable parameters.
Speed test parameters correspond to parameters that define how the network speed test is performed, including throughput, latency, jitter, or the like. In the context of the present disclosure, the speed test parameters refer to configurable parameters used to customize the network speed test, including buffer size, test duration, test time, connection type, measurement units, packet size, protocol, or the like.
An application interface corresponds to a standardized interface that allows applications to interact with network services. In the context of the present disclosure, the application interface refers to an interface on the user device that collects inputs from the user and sends the input to the server for network speed testing.
A backend service refers to a server-side application or service that handles core processing in data management. In the context of the present disclosure, the backend service refers to a microservice associated with network speed testing, performing data acquisition and test result processing.
Configurability refers to a capability to modify or adjust system settings based on user requirements. In the context of the present disclosure, the configurability refers to an ability to select and configure test parameters, such as buffer size, test duration, or the like according to application requirements.
A communication interface corresponds to an interface facilitating transmission and reception of data between different network entities.
Data throughput corresponds to an amount of data successfully transmitted over the communication channel per unit time. In the context of the present disclosure, the data throughput refers to a key performance indicator calculated based on the number of data packets received within the test duration.
Latency refers to a delay between sending and receiving data over a network connection typically measured in milliseconds (ms). In the context of the present disclosure, the latency corresponds to time taken for a data packet to travel from the server to the user device and back, measured during the network speed test.
Jitter corresponds to variation in packet arrival times, leading to inconsistent data transmission rates. In the context of the present disclosure, the jitter is measured as part of the network speed test to assess the stability of data transfer.
A packet loss refers to number of data packets that fail to reach their destination, usually expressed as a percentage.
Embodiments of the present disclosure will be described below in detail with reference to the accompanying drawings. FIG. 1 to FIG. 6, discussed below, and the one or more embodiments used to describe the principles of the present disclosure are by way of illustration only and should not be construed in any way to limit the scope of the present disclosure. Those skilled in the art will understand that the principles of the present disclosure may be implemented in any suitably arranged system or device.
FIG. 1 illustrates a block diagram of an example system architecture 100 (hereinafter may also be interchangeably referred to as a “system architecture 100” or an “architecture 100”) depicting interaction between a user device 110 and a server 150 executing the network speed test, in accordance with an embodiment of the present disclosure.
The architecture 100 is structured around a client-server model where an application 112 (client) installed on the user device 110 communicates with a backend service (deployed on the server 150) to measure network performance metrics such as upload speeds, download speeds, etc.
The application 112 is configured to enable the user to select a dedicated server from a list of available servers deployed at different geographical locations. The application 112 provides an interface where users can initiate the network speed test. The application 112 allows the users to send a speed test command to the backend service and may provide additional configuration options such as a test duration, a buffer size, protocol selection (TCP/UDP), etc. When a user triggers the network speed test, the application 112 sends a command to the server 150. The command is transmitted over a network connection using a predefined communication protocol such as a Hypertext Transfer Protocol (HTTP), a custom Application Programming Interface (API), or the like.
The server 150 responds by transmitting a stream of data packets (bytes) back to the application 112. The application 112 continuously receives the data packets. The server 150 is configured to calculate a volume of the data packets transmitted and received during the specified test duration. In an implementation, the specified test duration (or the test duration) may be configurable depending on speed test methodology, network conditions, user requirements, and the like. The test duration may be fixed (predefined time interval, commonly used in commercial speed test implementations), adaptive (dynamic adjusting test duration based on real-time network conditions such as until throughput stabilizes, or until a predefined volume of data is transferred or until a specific number of data packets are lost, or the like), user defined, or continuous testing mode. The calculated volume and corresponding metrics such as a download speed, an upload speed, a latency etc. are then transmitted to the user device 110 for display on the application 112. The application 112 receives the network speed test results, which are displayed on a user interface of the user device 110 in a user-friendly format (for example graphical speed meter, charts, numerical values, etc.).
In an implementation, the system architecture 100 may include multiple network test servers configured specifically for performing speed test and performance monitoring. The server 150 may be dedicated servers, cloud-based virtual machines, edge servers, or the like. The dedicated servers may be high performance servers exclusively set up for network testing, ensuring consistent results without interference from other services. The cloud-based virtual machines may be deployed on cloud platforms to provide geographical diversity and scalability. The edge severs may be located close to an end user to reduce latency.
The server 150 may be monitored using a combination of automated monitoring tools and microservices (to be described later in detail with reference to FIG. 2). The automated monitoring tools may be configured to monitor server health and uptime, aggregate and analyze server logs and to periodically check server responsiveness and log performance data. The microservice(s) may be configured to continuously check the performance of each test server. In case the server 150 fails or underperforms, the microservice(s) diverts the network test traffic from the server 150 to a next available server. The microservice also handles server reintegration once the performance issue is resolved.
The server(s) may be strategically located in multiple geographical regions to ensure accurate speed measurement and reduced latency. In an implementation, typical locations of the servers may include data centers, edge locations, cloud regions, and the like.
FIG. 2 illustrates a block diagram depicting an example system 200 (hereinafter may also be referred to as the system 200) for performing the network speed test, in accordance with another embodiment of the present disclosure. The embodiment of the system 200 shown in FIG. 2 is for illustration only. Other embodiments of the system 200 may be used without departing from the scope of this disclosure.
As shown in FIG. 2, the system 200 includes the user device 110, a network 220, a load balancer 230, a microservice(s) 240, and test servers 250-1, 250-2, …, 250-n (hereinafter may be collectively referred to as “test servers 250-1 through 250-n” or “test servers 250” or “servers 250” or a “test server 250” or a “server 250”). The server 250 is similar to the server 150 depicted in FIG. 1, hence a detailed description of the same is not included herein for sake of brevity.
The user device 110 communicates with the microservice 240 via the network 220. The user device 110 may include an application interface 112-1 and a communication unit 114. In one or more embodiments, applications are installed on the user device 110 to communicate with the microservice 240. The user device 110 may include smartphones, tablets, Internet of Thing (IoT) devices, smartwatches, laptops, desktop computers, workstations, Personal Digital Assistants (PDAs), and the like.
Additionally, the user device 110 may further include circuitry, programing, applications, or a combination thereof. Further, the term “user device” may refer to any component such as “mobile station,” “subscriber station,” “remote terminal,” “wireless terminal,” “receive point,” or “end user device.” For the sake of convenience, the term “user device” used herein refers to a remote wireless equipment that wirelessly accesses the microservice 240 via the network 220.
The application interface 112-1 of the user device 110 provides a mechanism for initiation of the network speed test, The user opens the application 112 (the speed test application) on the user device 110. The application 112 initiates a request for testing the network speed. The application 112 queries a nearest server API to determine the best speed test server from the servers 250. The application interface 112-1 facilitates display of options for selecting dedicated servers (such as test servers 250-1 through 250-n) and receiving inputs related to the configurability of the speed test parameters. Once assigned a test server out of the test servers 250, the user device 110 communicates with the test server to perform the network speed test. The application interface 112-1 is configured to facilitate communications between the user device 110 and the microservice 240 for performing the network speed test.
The application interface 112-1 is configured to send requests to and receive data communications from the microservice 240 via the communication unit 114 of the user device 110. The application interface 112-1 is further configured to send, via the communication unit 114, requests to the microservice 240 for performing the network speed test. The application interface 112-1 is further configured to cause the user device 110 to output a signal instructing the microservice 240 to initiate a process for performing the network speed test. The application interface 112-1 is configured to receive the measured network speed from the microservice 240 and display the measured network speed in form of bytes.
The application interface 112-1 may be a part of the application 112 installed on the user device 110, which may work as a speed test client and configured to send speed test command to backend services deployed on the servers 250.
The communication unit 114 may include antennas, Radio Frequency (RF) transceivers, a transmit processing circuitry, and a receive processing circuitry. The communication unit 114 enables communication between the user device 110 and external systems such as the server 250. The communication unit 114 supports mobile communication protocols (for e.g., Long Term Evolution (LTE), Fifth Generation (5G), Wireless Fidelity (Wi-Fi), and the like) for wireless devices, and internet-based communications for web applications through HTTP, or other APIs. The communication unit 114 is further configured to maintain a seamless connection between the user device 110 and the server 250 for efficient data communication.
The network 220 enables transmission of data/messages and acts as a communication medium between components of the system 200. The network 220 may correspond to one of an Internet, a proprietary Internet Protocol (IP) network, or other data network. The network 220 may include wired and/or wireless networks. For example, the network 220 may include a cellular network for e.g., a 5G network, an LTE network, a Third Generation (3G) network, a Code Division Multiple Access (CDMA) network, etc.), a Public Land Mobile Network (PLMN), a Local Area Network (LAN), a Wide Area Network (WAN), a Metropolitan Area Network (MAN), a telephone network (e.g., the Public Switched Telephone Network (PSTN)), a private network, an ad hoc network, an intranet, the Internet, a fiber optic-based network, or the like, and/or a combination of these or other types of networks.
The load balancer 230 is an intermediary between the network 220 and the microservice 240. The load balancer 230 is configured to distribute, via the microservice 240, incoming requests received from the user device 110 across multiple test servers 250 for performing the network speed test. The load balancer 230 is configured to ensure that the incoming requests is balanced among available servers to maintain optimal performance and reduce latency in network speed tests. The load balancer 230 may use algorithms such as round robin, least connections, IP hashing, etc. to determine an appropriate server for handling each speed test request. In one or more implementations, the incoming requests for performing the network speed test may be received from various user devices. In one or more implementations, backend services may be deployed on the servers 250 across different locations to measure the speed of the network in a particular geographical location.
The microservice 240 acts as a centralized controller that manages and coordinates operations of the multiple test servers. The microservice 240 is configured to dynamically allocate the servers 250 based on network congestion, server availability, geographic proximity, or the like. The microservice 240 facilitates collection and aggregation of network speed test results from various servers.
The test servers 250-1 through 250-n are responsible for executing the network speed test. Each test server runs the backend service on a specific port and response to the speed test command from the user device 110. The test servers 250 are configured to send the data packets to the user device 110 and accurately measure upload and download speeds. The test servers 250 are strategically deployed across the different geographical locations to ensure accurate and location-specific network speed testing.
Although FIG. 2 illustrates an example of the system 200 for performing the network speed test, various changes may be made to FIG. 2. For example, the system 200 may include any number of user devices and test servers in any suitable arrangement. Further, in another example, the system 200 may include any number of components in addition to the components shown in FIG. 2. Further, various components in FIG. 2 may be combined, further subdivided, or omitted and additional components may be added according to particular needs.
FIG. 3 illustrates a block diagram depicting an architecture of the test server 250, in accordance with an embodiment of the present disclosure. The embodiment of the test server 250 as shown in FIG. 3 is for illustration only. However, the test server 250 may come in a wide variety of configurations, and FIG. 3 does not limit the scope of the present disclosure to any particular implementation of the test server 250.
The test server 250 includes various components including a memory 252, a processor 256 and a communication interface 258. The various components of the test server 250 are coupled to each other via a communication bus 254.
The memory 252 stores a set of instructions required by the processor 256 of the server 250 for controlling its overall operations. Specifically, the memory 252 stores a microservices framework (not shown in FIG. 3). The microservices framework represents individual services for specific tasks, such as handling requests and processing data. The microservices framework within the memory 252 allows the server 250 to break down entire operations of the server 250 into smaller, independent services that may be developed, deployed, and scaled independently. Each of the microservices framework may adhere to a well-defined API.
A part of the memory 252 may include a Random Access Memory (RAM), a Cache memory, or a Read Only Memory (ROM). Further, the memory 252 may include non-volatile storage elements. Examples of such non-volatile storage elements may include magnetic hard discs, optical discs, floppy discs, flash memories, or forms of Electrically Programmable Memories (EPROM) or Electrically Erasable and Programmable Memories (EEPROM). In addition, the memory 252 may, in some examples, be considered a non-transitory storage medium. The "non-transitory" storage medium is not embodied in a carrier wave or a propagated signal. However, the term "non-transitory" should not be interpreted as the memory 252 is non-movable. In some examples, the memory 252 may be configured to store larger amounts of information. In certain examples, a non-transitory storage medium may store data that can, over time, change (e.g., in the RAM or cache). The memory 252 may be an internal storage unit or an external storage unit of the server 250, cloud storage, or any other type of external storage.
The processor 256 may include various processing circuitry and communicate with the memory 252, and the communication interface 258 via the communication bus 254. The processor 256 is configured to execute instructions 252-1 (hereinafter also referred to as “a set of instructions 252-1”) stored in the memory 252 and to perform various processes. The processor 256 may also include a plurality of processing engines. For example, the processor 256 is configured to execute programs and other processes stored in the memory 252. The processor 256 is further configured to fetch the data from the memory 252 or store the data into the memory 252 as required by an execution process.
The processor 256 may include one or a plurality of processors, including a general-purpose processor, such as, for example, and without limitation, a Central Processing Unit (CPU), an Application Processor (AP), a dedicated processor, a graphics-only processing unit such as a Graphics Processing Unit (GPU) or the like, a programmable logic device, or any combination thereof.
The communication interface 258 includes an electronic circuit specific to a standard that enables wired or wireless communication. The communication interface 258 is configured for communicating internally between internal hardware components and with external devices via the network 220. The communication interface 258 may be configured to enable the server 250 to communicate with various entities of the system 200 via the network 220. Examples of the communication interface 258 may include, but are not limited to, a modem, a network interface such as an Ethernet card, a communication port, and/or a Personal Computer Memory Card International Association (PCMCIA) slot and card, an antenna, a Radio Frequency (RF) transceiver, one or more amplifiers, a Coder-Decoder (CODEC) chipset, a Subscriber Identity Module (SIM) card, and a local buffer circuit. It will be apparent to a person of ordinary skill in the art that the communication interface 258 may include any device and/or apparatus capable of providing wireless or wired communications between the server 250 and various other entities of the system 200.
FIG. 4 illustrates a block diagram depicting various components of the processor 256 of the test server 250, in accordance with an embodiment of the present disclosure.
The processor 256 may include units/modules selected from any of an acquisition module 256-1, an execution module 256-2 and a data processing module 256-3. The processor 256 may include, but are not limited to, other modules such as a generation module, an analytics module, a monitoring module, and the like. Each of the modules of the processor 256 may be communicatively connected to one another.
In an implementation, the processor 256, using the acquisition module 256-1, is configured to receive, via the application interface 112-1 of the user device 110, an input for performing the network speed test. The input comprises configurability of speed test parameters corresponding to an application installed on the user device 110. The input is received at the server selected by a user among the servers 250. The speed test parameters can be configured and customized based on user inputs or predefined settings. The speed test parameters, such as buffer size, test duration, or the like are configured or customized according to application requirements by adjusting or modifying system settings.
The speed test parameters may be configured on the user device 110 through the application interface 112-1. The speed test parameters include at least one of a buffer size, a test duration, a test time, a connection type, measurement units, size of test packets, and a protocol to be used for performing the network speed test.
The processor 256, using the execution module 256-2 is configured to provide speed test parameters to the backend service deployed on the server 250. The backend service may typically be a software component running on a server responsible for executing the network speed test and handling network data. The backend service may to a microservice associated with network speed testing, performing data acquisition and test result processing. The backend service can be hosted on various server environments (cloud servers, edge servers, or dedicated servers) as part of a distributed system architecture.
The processor 256, using the execution module 256-2 may further encode the configured speed test parameters and transmit the same to the backend service running on the server 250. The backend service receives the speed test parameters, validates the speed test parameters, and initializes the network speed test with the provided configurations.
The processor 256, using the execution module 256-2 is further configured to perform, using the microservice 240 associated with the backend service, the network speed test on a transport layer protocol. The microservice 240 initializes the network speed test based on received configuration parameters. The server 250 starts sending and/or receiving the data packets. For performing the network speed test, the processor 256, using the execution module 256-2 is configured to enable the user device 110 to receive the data packets over the transport layer protocol in accordance with the configured speed test parameters. In an implementation, the transport layer protocol may be the UDP for low latency, high-speed transmission (suitable for real-time speed tests). The execution module 256-2 of the processor monitors and determines a volume of data packets received by the user device 110 during the test duration. The execution module 256-2 calculates total bytes received by the user device 110. Further, if packet loss occurs, the execution module 256-2 identifies missing sequence numbers and determines the network speed (in Mbps) using the formula:
Speed = ((Total bytes received X 8)/(Test duration (in seconds)X 1000000)) ……………………………….(1)
The processor 256, using the data processing module 256-3, is configured to enable the user device 110 to display the options associated with the configurability of the speed test parameters on the application interface 112-1. The options are rendered dynamically based on user preferences stored locally or in backend, device capabilities and compatibility, test configuration profiles predefined or created by the users, or the like. In an implementation, the options that are made available for configuring the speed test parameters include test type configuration (download test only, upload test only, combined test, latency measurement. jitter test, packet loss test, or the like), protocol configuration (UDP test, TCP test, hybrid test), server selection (automatic server selection, manual server selection, region-based selection), test duration and frequency configuration, and the like.
The processor 256, using the acquisition module 256-1, is further configured to receive the input corresponding to the options. The input may be provided by selecting test types from drop down menus or buttons provided on the application interface 112-1 of the user device 110. The input may be further provided by entering numerical values such as test duration, test frequency, or the like. The input may also be provided as toggle inputs (enabling or disabling specific tests), adjusting thresholds for parameters such as latency or jitter. In an example implementation, the input may include network parameter settings, server configuration details, QoS preferences, test scheduling preferences or the like.
Furthermore, the processor 256, using the data processing module 256-3, is configured to transmit the result of the network speed test to a port of the user device 110 in form of bytes and enable the user device 110 to display the result of the network speed test in form of megabits. The processor 256, using the data processing module 256-3, is configured to compile the result in a structured format and send the result of the network speed test from the backend service to the user device 110 via a secure protocol for display, analysis, or storage. The result may include one or more of a download speed, an upload speed, latency, packet loss, network stability metrics, network connection quality metrics, and the like.
FIG. 5 illustrates a flowchart depicting a method 500 (hereinafter may also be interchangeably referred to as a “process 500”) for performing the network speed test, in accordance with an embodiment of the present disclosure. The method 500 comprises a series of operation steps indicated by blocks 502 through 510. Although the method 500 shows example blocks of steps 502 to 510, in some embodiments, the method 500 may include additional steps, fewer steps or steps in different order than those depicted in FIG. 5. In other embodiments, the steps 502 to 510 may be combined or may be performed in parallel. The method 500 starts at block 502.
At block 502, the data processing module 256-3 of the processor 256 enables the application interface 112-1 of the user device 110 to display the plurality of options related to the configurability of the speed test parameters. The speed test parameters include the buffer size, the test duration, the test time, the connection type, the measurement units, the size of test packets, or the protocol to be used for performing the network speed test.
At block 504, the acquisition module 256-1 of the processor 256 receives the input associated with the configurability of the speed test parameters corresponding to the application installed on the user device 110. At least one dedicated server is selected from the servers 250 by the user. The execution module 256-2 of the processor 256 configures the speed test parameters, in response to the reception of the input corresponding to the displayed options.
At block 506, the execution module 256-2 of the processor 256 provides the speed test parameters to the backend service deployed on the test server 250.
At block 508, the execution module 256-2 of the processor 256 performs, using the microservice 240 associated with the backend service, the network speed test on the transport layer protocol. In an implementation, the transport layer protocol corresponds to the UDP. The execution module 256-2 of the processor 256 enables the user device 110 to receive data packets over the UDP in accordance with the configured speed test parameters and determine the volume of data packets received during the test duration.
At block 510, the data processing module 256-3 of the processor 256 transmits the result of the network speed test to the port of the user device 110 in form of bytes. The data processing module 256-3 of the processor 256 enables the user device 110 to display the result of the network speed test in form of megabits.
FIG. 6 illustrates a schematic architecture diagram depicting a computing system 600, in accordance with an embodiment of the present disclosure. The computing system 600 includes a network 602, a network interface 604, a processor 606 (similar in functionality to the processor 256 of FIG. 4), an Input/Output (I/O) interface 608 and a non-transitory computer readable storage medium 610 (hereinafter may also be referred to as the “storage medium 610” or the “storage media 610”).
The network interface 604 includes wireless network interfaces such as Bluetooth, Wi-Fi, Worldwide Interoperability for Microwave Access (WiMAX), General Packet Radio Service (GPRS), or Wideband Code Division Multiple Access (WCDMA) or wired network interfaces such as Ethernet, Universal Serial Bus (USB), or Institute of Electrical and Electronics Engineers-864 (IEEE-864).
The processor 606 may include various processing circuitry and communicate with the storage medium 610 and the I/O interface 608. The processor 606 is configured to execute instructions stored in the storage medium 610 and to perform various processes. The processor 606 may include an intelligent hardware device including a general-purpose processor, such as, for example, and without limitation, the CPU, the AP, the dedicated processor, or the like, the graphics-only processing unit such as the GPU, the microcontroller, the FPGA, the programmable logic device, the discrete hardware component, or any combination thereof. The processor 606 may be configured to execute computer-readable instructions 610-1 stored in the storage medium 610 to cause the server 250 to perform various functions.
The storage medium 610 stores a set of instructions i.e., computer program instructions 610-1 (hereinafter may also be referred to as instructions 610-1) required by the processor 606 for controlling its overall operations and a microservices framework 610-2.
The storage media 610 may include an electronic storage medium, a magnetic storage medium, an optical storage medium, a quantum storage medium, or the like. For example, the storage media 610 may include, but are not limited to, hard drives, floppy diskettes, optical disks, ROMs, RAMs, EPROMs, EEPROMs, flash memory, magnetic or optical cards, solid-state memory devices, or other types of physical media suitable for storing electronic instructions. In one or more embodiments, the storage media 610 includes a Compact Disk-Read Only Memory (CD-ROM), a Compact Disk-Read/Write (CD-R/W), and/or a Digital Video Disc (DVD).
In one or more implementations, the storage medium 610 stores computer program code configured to cause the computing system 600 to perform at least a portion of the processes and/or methods. Accordingly, in at least one implementation, the computing system 600 performs the method for performing the network speed test.
Embodiments of the present disclosure have been described above with reference to flowchart illustrations of methods and systems according to embodiments of the disclosure, and/or procedures, algorithms, steps, operations, formulae, or other computational depictions, which may also be implemented as computer program products. In this regard, each block or step of the flowchart, and combinations of blocks (and/or steps) in the flowchart, as well as any procedure, algorithm, step, operation, formula, or computational depiction can be implemented by various means, such as hardware, firmware, and/or software including one or more computer program instructions embodied in computer-readable program code. As will be appreciated, any such computer program instructions may be executed by one or more computer processors, including without limitation a general-purpose computer or special purpose computer, or other programmable processing apparatus to perform a group of operations comprising the operations or blocks described in connection with the disclosed method.
Further, these computer program instructions, such as embodied in computer-readable program code, may also be stored in one or more computer-readable memory or memory devices (for example, the memory 252 or the storage medium 610) that can direct a computer processor or other programmable processing apparatus to function in a particular manner, such that the instructions 610-1 stored in the computer-readable memory or memory devices produce an article of manufacture including instruction means which implement the function specified in the block(s) of the flowchart(s).
It will further be appreciated that the term “computer program instructions” as used herein refer to one or more instructions that can be executed by the one or more processors (for example, the processor 256 or the processor 606) to perform one or more functions as described herein. The instructions 610-1 may also be stored remotely such as on a server, or all or a portion of the instructions can be stored locally and remotely.
Now, referring to the technical abilities and advantageous effect of the present disclosure, operational advantages that may be provided by one or more embodiments may include providing the system and the method for measuring the network speed on the transport layer protocol that enables the next-generation networks to meet the industry expectations. A further potential advantage of the one or more embodiments disclosed herein may include performing the speed test on the transport layer protocol, which does not require a connection before sending data. Another noteworthy advantage of the present disclosure may include but not limited thereto, performing the speed test on the transport layer protocol which does not require mechanisms for acknowledgement, retransmission of data, or error correction while sending the data.
Those skilled in the art will appreciate that the methodology described herein in the present disclosure may be carried out in other specific ways than those set forth herein in the above disclosed embodiments without departing from essential characteristics and features of the present invention. The above-described embodiments are therefore to be construed in all aspects as illustrative and not restrictive.
The drawings and the forgoing description give examples of embodiments. Those skilled in the art will appreciate that one or more of the described elements may well be combined into a single functional element. Alternatively, certain elements may be split into multiple functional elements. Elements from one embodiment may be added to another embodiment. For example, orders of processes described herein may be changed and are not limited to the manner described herein. Any combination of the above features and functionalities may be used in accordance with one or more embodiments.
In the present disclosure, each of the embodiments has been described with reference to numerous specific details which may vary from embodiment to embodiment. The foregoing description of the specific embodiments disclosed herein may reveal the general nature of the embodiments herein that others may, by applying current knowledge, readily modify and/or adapt for various applications such specific embodiments without departing from the generic concept, and, therefore, such adaptations and modifications are intended to be comprehended within the meaning of the disclosed embodiments. It is to be understood that the phraseology or terminology employed herein is for the purpose of description and is not limited in scope.
LIST OF REFERENCE NUMERALS
The following list is provided for convenience and in support of the drawing figures and as part of the text of the specification, which describe innovations by reference to multiple items. Items not listed here may nonetheless be part of a given embodiment. For better legibility of the text, a given reference number is recited near some, but not all, recitations of the referenced item in the text. The same reference number may be used with reference to different examples or different instances of a given item. The list of reference numerals is:
100 – System Architecture/System
110 – User Device
112 - Application
112-1- Application Interface
114- Communication Unit
150 – Server
200 – System
220 – Communication Network/Network
230 – Load Balancer
240 - Microservice
250 – Test Server(s)/Server(s)
252 – Memory
252-1 - Instructions
254 – Communication Bus
256 – Processor
256-1 – Acquisition Module
256-2 – Execution Module
256-3 –Data Processing Module
258 – Communication Interface
500 – Method for performing network speed test
600 - Computing System
602 - Network
604 - Network interface
606 - Processor
608 – I/O Interface
610 - Storage Medium
610-1 – Instructions
610-2 – Microservices framework
,CLAIMS:We Claim:
1. A method (500) for performing a network speed test by a server of a plurality of servers, the method (500) comprising:
receiving, by an acquisition module (256-1) via an application interface (112-1) of a user device (110), an input for performing the network speed test;
providing, by an execution module (256-2), one or more speed test parameters to a backend service deployed on the server (250);
performing, by the execution module (256-2) using a microservice (240) associated with the backend service, the network speed test on a transport layer protocol; and
transmitting, by a data processing module (256-3), a result of the network speed test to the user device (110).
2. The method (500) as claimed in claim 1, wherein the input comprises configurability of the one or more speed test parameters corresponding to an application (112) installed on the user device (110), and wherein the input is received at the server selected by a user among the plurality of servers (250).
3. The method (500) as claimed in claim 1, further comprising:
enabling, by the data processing module (256-3), the user device (110) to display a plurality of options associated with the configurability of the one or more speed test parameters; and
receiving, by the acquisition module (256-1), the input corresponding to the plurality of options.
4. The method (500) as claimed in claim 1, wherein the one or more speed test parameters include at least one of a buffer size, a test duration, a test time, a connection type, measurement units, size of test packets, and a protocol to be used for performing the network speed test.
5. The method (500) as claimed in claim 1, wherein for performing the network speed test on the transport layer protocol, the method (500) comprises:
enabling, by the execution module (256-2), the user device (110) to receive data packets over the transport layer protocol in accordance with the configured one or more speed test parameters; and
determine, by the execution module (256-2), a volume of data packets received during the test duration.
6. The method (500) as claimed in claim 1, further comprising:
transmitting, by the data processing module (256-3), the result of the network speed test to a port of the user device (110) in form of bytes; and
enabling, by the data processing module (256-3), the user device (110) to display the result of the network speed test in form of megabits.
7. A system (200) for performing a network speed test, the system comprising:
an acquisition module (256-1) configured to receive, via an application interface (112-1) of a user device (110), an input for performing the network speed test;
an execution module (256-2) configured to:
provide one or more speed test parameters to a backend service deployed on the server; and
perform, using a microservice associated with the backend service, the network speed test on a transport layer protocol; and
a data processing module (256-3) configured to transmit a result of the network speed test to the user device (110).
8. The system (200) as claimed in claim 7, wherein the input comprises configurability of the one or more speed test parameters corresponding to an application (112) installed on the user device (110), and wherein the input is received at the server selected by a user among the plurality of servers (250).
9. The system (200) as claimed in claim 7, wherein
the data processing module (256-3) is configured to enable the user device (110) to display a plurality of options associated with the configurability of the one or more speed test parameters; and
the acquisition module (256-1) is configured to receive the input corresponding to the plurality of options.
10. The system (200) as claimed in claim 7, wherein the one or more speed test parameters include at least one of a buffer size, a test duration, a test time, a connection type, measurement units, size of test packets, or a protocol to be used for performing the network speed test.
11. The system (200) as claimed in claim 6, wherein to perform the network speed test on the transport layer protocol, the execution module (256-2) is configured to:
enable the user device (110) to receive data packets over the transport layer protocol in accordance with the configured one or more speed test parameters; and
determine a volume of data packets received during the test duration.
12. The system as claimed in claim 7, wherein the data processing module (256-3) is configured to:
transmit the result of the network speed test to a port of the user device (110) in form of bytes; and
enable the user device (110) to display the result of the network speed test in form of megabits.
| # | Name | Date |
|---|---|---|
| 1 | 202421029805-STATEMENT OF UNDERTAKING (FORM 3) [12-04-2024(online)].pdf | 2024-04-12 |
| 2 | 202421029805-PROVISIONAL SPECIFICATION [12-04-2024(online)].pdf | 2024-04-12 |
| 3 | 202421029805-POWER OF AUTHORITY [12-04-2024(online)].pdf | 2024-04-12 |
| 4 | 202421029805-FORM 1 [12-04-2024(online)].pdf | 2024-04-12 |
| 5 | 202421029805-DRAWINGS [12-04-2024(online)].pdf | 2024-04-12 |
| 6 | 202421029805-DECLARATION OF INVENTORSHIP (FORM 5) [12-04-2024(online)].pdf | 2024-04-12 |
| 7 | 202421029805-Proof of Right [07-08-2024(online)].pdf | 2024-08-07 |
| 8 | 202421029805-Request Letter-Correspondence [25-02-2025(online)].pdf | 2025-02-25 |
| 9 | 202421029805-Power of Attorney [25-02-2025(online)].pdf | 2025-02-25 |
| 10 | 202421029805-Form 1 (Submitted on date of filing) [25-02-2025(online)].pdf | 2025-02-25 |
| 11 | 202421029805-Covering Letter [25-02-2025(online)].pdf | 2025-02-25 |
| 12 | 202421029805-ORIGINAL UR 6(1A) FORM 1-060325.pdf | 2025-03-10 |
| 13 | 202421029805-FORM 18 [08-04-2025(online)].pdf | 2025-04-08 |
| 14 | 202421029805-DRAWING [08-04-2025(online)].pdf | 2025-04-08 |
| 15 | 202421029805-CORRESPONDENCE-OTHERS [08-04-2025(online)].pdf | 2025-04-08 |
| 16 | 202421029805-COMPLETE SPECIFICATION [08-04-2025(online)].pdf | 2025-04-08 |
| 17 | Abstract-1.jpg | 2025-05-16 |