Abstract: ABSTRACT METHOD AND SYSTEM FOR PREVENTING NETWORK TRAFFIC FAILURE IN A COMMUNICATION NETWORK The present disclosure relates to a system (108) and a method (400) for preventing network traffic failure in a communication network (106). The system (108) includes a monitoring unit (310) configured to monitor an existing connection between a client (102) and a destination (104). Further, the system (108) includes a replacement unit (312) configured to replace the existing connection with a new connection between the client (102) and the destination (104) in response to occurrence of one or more pre-defined events. Further, the system (108) includes a retaining unit (314) configured to retain the existing connection subsequent to replacing the existing connection with the new connection until at least one of, an expiration of a pre-defined time period or completion of transmission of one or more pending client requests between the client (102) and the destination (104) utilizing the existing connection. Ref. Fig. 3
DESC:
FORM 2
THE PATENTS ACT, 1970
(39 of 1970)
&
THE PATENTS RULES, 2003
COMPLETE SPECIFICATION
(See section 10 and rule 13)
1. TITLE OF THE INVENTION
METHOD AND SYSTEM FOR PREVENTING NETWORK TRAFFIC FAILURE IN A COMMUNICATION NETWORK
2. APPLICANT(S)
NAME NATIONALITY ADDRESS
JIO PLATFORMS LIMITED INDIAN OFFICE-101, SAFFRON, NR. CENTRE POINT, PANCHWATI 5 RASTA, AMBAWADI, AHMEDABAD 380006, GUJARAT, INDIA
3.PREAMBLE TO THE DESCRIPTION
THE FOLLOWING SPECIFICATION PARTICULARLY DESCRIBES THE NATURE OF THIS INVENTION AND THE MANNER IN WHICH IT IS TO BE PERFORMED.
FIELD OF THE INVENTION
[0001] The present invention relates to a prevention of traffic failure, and, more particularly, relates to a method and system for preventing network traffic failure in a communication network.
BACKGROUND OF THE INVENTION
[0002] In general, a network protocol for example the TCP (Transmission Control Protocol) is a protocol for establishing connection between a source and a destination, such as a client and a server or different nodes or different network functions in a 5G core network, respectively and ensuring secure data transmission therebetween. A client is a computer running a program that requests the service from a server which offers network resources and provides service to the computer (client).
[0003] In a normal functioning scenario between the client and the server, the client generally transmits a client request to the server. The client request may be at least one of the services that the client may require from the server. Each of the client requests is identified by, for example a stream ID specific to a Http2 protocol.
[0004] Multiple client requests may be transmitted on a single TCP connection concurrently from the client to the server using HTTP2 protocol. Generally, the life cycle of the TCP connection may depend on the number of pre-defined client requests and the associated stream IDs assigned. Once these pre-defined number of client requests and the associated stream IDs have been exhausted, the TCP connection cannot be used for sending new client requests. Therefore, the network traffic between the client and the server also comes to a standstill, i.e., there is a network traffic failure when the client requests and the associated stream IDs are exhausted. Subsequently, there is a need for the establishment of new TCP connections for further communication between the client and the server.
[0005] The process of establishing new TCP connections after the existing TCP connection has been terminated is a cumbersome and time-consuming task. During this time interval of establishing a new TCP connection, the entire system stops functioning, in other words the system can’t process any client requests sent from the client to the server and the network traffic failure occurs, that may lead to the reduction in the efficiency of the system, thereby creating latency in the system and also affects the throughput of the system.
[0006] In view of the above, there is a dire need for a system and method for prevention of traffic failure in a communication network during the intermediate time interval of termination of the existing TCP connection and establishment of a new TCP connection.
SUMMARY OF THE INVENTION
[0007] One or more embodiments of the present disclosure provide a method and system for preventing network traffic failure in a communication network.
[0008] In one aspect of the present invention, a system for preventing network traffic failure in a communication network is disclosed. The system includes a monitoring unit configured to monitor an existing connection between a client and a destination. Further, the system includes a replacement unit configured to replace the existing connection with a new connection between the client and the destination in response to occurrence of one or more pre-defined events. Further, the system includes a retaining unit configured to retain the existing connection subsequent to replacing the existing connection with the new connection until at least one of, an expiration of a pre-defined time period or completion of transmission of one or more pending client requests between the client and the destination utilizing the existing connection.
[0009] In an embodiment, the existing connection and the new connection is at least one of, a Transmission Control Protocol (TCP) connection. In an embodiment, the one or more pre-defined events include at least one of a count of stream identifiers associated with the client requests has reached a pre-defined threshold limit for the existing connection and the existing connection between the client and the destination is inactive for a pre-defined time period.
[0010] In an embodiment, when the count of the stream identifiers reaches the pre-defined threshold limit, the replacement unit triggers a replace job signal in order to create the new connection in real time. In an embodiment, the stream identifier is a unique identifier number representative of a data stream including at least one of, client requests, wherein the stream identifiers range from about 1 to 2147483647 which only contain odd numbers, such as stream ID 3, stream ID 5, etc.
[0011] In an embodiment, the monitoring unit is further configured to determine, status of the replaced new connection as one of, success or failure. Further, in an embodiment, subsequent to determining status of the replaced new connection as success, the monitoring unit is configured to update the status of the said replaced new connection as available at a database, simultaneously.
[0012] In an embodiment, the replacing unit is further configured to replace the existing connection with one or more subsequent new connections until expiration of a pre-defined count, when the existing connection has failed.
[0013] In an embodiment, the retaining unit retains, the existing connection subsequent to replacing the existing connection with the new connection, by terminating, the existing connection subsequent to at least one of, the expiration of a pre-defined time period or completion of transmission of one or more pending client requests. Further, in an embodiment, the replacement unit is further configured to remove, the existing connection from the database once at least the pre-defined time period expires or the transmission of one or more pending client requests between the client and the destination is completed.
[0014] In another aspect of the present invention, a method for preventing network traffic failure in a communication network is disclosed. The method includes the steps of monitoring an existing connection between a client and a destination. The method further includes the steps of replacing the existing connection with a new connection between the client and the destination in response to occurrence of one or more pre-defined events. The method further includes the steps of retaining the existing connection subsequent to replacing the existing connection with the new connection until at least one of, an expiration of a pre-defined time period or completion of transmission of one or more pending client requests between the client and the destination utilizing the existing connection.
[0015] Other features and aspects of this invention will be apparent from the following description and the accompanying drawings. The features and advantages described in this summary and in the following detailed description are not all-inclusive, and particularly, many additional features and advantages will be apparent to one of ordinary skill in the relevant art, in view of the drawings, specification, and claims hereof. Moreover, it should be noted that the language used in the specification has been principally selected for readability and instructional purposes and may not have been selected to delineate or circumscribe the inventive subject matter, resort to the claims being necessary to determine such inventive subject matter.
BRIEF DESCRIPTION OF THE DRAWINGS
[0016] The accompanying drawings, which are incorporated herein, and constitute a part of this disclosure, illustrate exemplary embodiments of the disclosed methods and systems in which like reference numerals refer to the same parts throughout the different drawings. Components in the drawings are not necessarily to scale, emphasis instead being placed upon clearly illustrating the principles of the present disclosure. Some drawings may indicate the components using block diagrams and may not represent the internal circuitry of each component. It will be appreciated by those skilled in the art that disclosure of such drawings includes disclosure of electrical components, electronic components or circuitry commonly used to implement such components.
[0017] FIG. 1 is an exemplary block diagram of an environment for preventing network traffic failure in a communication network, according to one or more embodiments of the present invention;
[0018] FIG. 2 is an exemplary block diagram of a system architecture for preventing network traffic failure in a communication network, according to one or more embodiments of the present invention;
[0019] FIG. 3 is an exemplary block diagram of the system for preventing network traffic failure in a communication network, according to one or more embodiments of the present invention;
[0020] FIG. 4 is a flow diagram of a method for preventing network traffic failure in a communication network, according to one or more embodiments of the present invention; and
[0021] FIG. 5 is a flow diagram for preventing network traffic failure in a communication network, according to one or more embodiments of the present invention.
[0022] The foregoing shall be more apparent from the following detailed description of the invention.
DETAILED DESCRIPTION OF THE INVENTION
[0023] Some embodiments of the present disclosure, illustrating all its features, will now be discussed in detail. It must also be noted that as used herein and in the appended claims, the singular forms "a", "an" and "the" include plural references unless the context clearly dictates otherwise.
[0024] Various modifications to the embodiment will be readily apparent to those skilled in the art and the generic principles herein may be applied to other embodiments. However, one of ordinary skill in the art will readily recognize that the present disclosure including the definitions listed here below are not intended to be limited to the embodiments illustrated but is to be accorded the widest scope consistent with the principles and features described herein.
[0025] A person of ordinary skill in the art will readily ascertain that the illustrated steps detailed in the figures and here below are set out to explain the exemplary embodiments shown, and it should be anticipated that ongoing technological development will change the manner in which particular functions are performed. These examples are presented herein for purposes of illustration, and not limitation. Further, the boundaries of the functional building blocks have been arbitrarily defined herein for the convenience of the description. Alternative boundaries can be defined so long as the specified functions and relationships thereof are appropriately performed. Alternatives (including equivalents, extensions, variations, deviations, etc., of those described herein) will be apparent to persons skilled in the relevant art(s) based on the teachings contained herein. Such alternatives fall within the scope and spirit of the disclosed embodiments.
[0026] As per various embodiments depicted, the present invention discloses the system and method for preventing network traffic failure in a communication network.
[0027] FIG. 1 illustrates an exemplary block diagram of an environment 100 for preventing network traffic failure in a communication network 106, according to one or more embodiments of the present disclosure. In this regard, environment 100 includes a User Equipment (UE) 102, a server 104, the communication network 106 and a system 108 communicably coupled to each other for preventing network traffic failure in the communication network 106.
[0028] As per the illustrated embodiment and for the purpose of description and illustration, the UE 102 includes, but not limited to, a first UE 102a, a second UE 102b, and a third UE 102c, and should nowhere be construed as limiting the scope of the present disclosure. Accordingly, in alternate embodiments, the UE 102 may include a plurality of UEs as per the requirement. For ease of reference, each of the first UE 102a, the second UE 102b, and the third UE 102c, will hereinafter be collectively and individually referred to as the “User Equipment (UE) 102”.
[0029] In an embodiment, the UE 102 is not limited to, any electrical, electronic, electro-mechanical or an equipment and a combination of one or more of the above devices such as virtual reality (VR) devices, augmented reality (AR) devices, laptop, a general-purpose computer, desktop, personal digital assistant, tablet computer, mainframe computer, or any other computing device.
[0030] The environment 100 includes the server 104 accessible via the communication network 106. The server 104 may include by way of example but not limitation, one or more of a standalone server, a server blade, a server rack, a bank of servers, a server farm, hardware supporting a part of a cloud service or system, a home server, hardware running a virtualized server, one or more processors executing code to function as a server, one or more machines performing server-side functionality as described herein, at least a portion of any of the above, some combination thereof. In an embodiment, the entity may include, but is not limited to, a vendor, a network operator, a company, an organization, a university, a lab facility, a business enterprise side, a defence facility side, or any other facility that provides service.
[0031] The communication network 106 includes, by way of example but not limitation, one or more of a wireless network, a wired network, an internet, an intranet, a public network, a private network, a packet-switched network, a circuit-switched network, an ad hoc network, an infrastructure network, a Public-Switched Telephone Network (PSTN), a cable network, a cellular network, a satellite network, a fiber optic network, or some combination thereof. The communication network 106 may include, but is not limited to, a Third Generation (3G), a Fourth Generation (4G), a Fifth Generation (5G), a Sixth Generation (6G), a New Radio (NR), a Narrow Band Internet of Things (NB-IoT), an Open Radio Access Network (O-RAN), and the like.
[0032] The communication network 106 may also include, by way of example but not limitation, at least a portion of one or more networks having one or more nodes that transmit, receive, forward, generate, buffer, store, route, switch, process, or a combination thereof, etc. one or more messages, packets, signals, waves, voltage or current levels, some combination thereof, or so forth. The communication network 106 may also include, by way of example but not limitation, one or more of a wireless network, a wired network, an internet, an intranet, a public network, a private network, a packet-switched network, a circuit-switched network, an ad hoc network, an infrastructure network, a Public-Switched Telephone Network (PSTN), a cable network, a cellular network, a satellite network, a fiber optic network, a VOIP or some combination thereof.
[0033] The environment 100 further includes the system 108 communicably coupled to the server 104 and the UE 102 via the network 106. The system 108 is configured to prevent network traffic failure in the communication network 106. As per one or more embodiments, the system 108 is adapted to be embedded within the server 104 or embedded as an individual entity. However, for the purpose of description, the system 108 is described as an integral part of the server 104, without deviating from the scope of the present disclosure.
[0034] Operational and construction features of the system 108 will be explained in detail with respect to the following figures.
[0035] FIG. 2 is an exemplary block diagram of the system 108 architecture 200 for preventing network traffic failure in the communication network 106, according to one or more embodiments of the present invention.
[0036] As per the illustrated embodiment, the system 108 architecture 200 includes a virtual machine, but not limited to, a Virtual Machine (VM) 202. The VM enables the UE 102 to run programs written in Java as well as programs written in other languages that are compiled to bytecode. In the illustrated embodiment, the VM 202 is the environment in which an application 204 and a protocol stack 206 run.
[0037] In one embodiment, the application 204 is at least one of, but not limited to, a java application which utilizes the protocol stack 206 to communicate between a client and a destination via the one or more network protocol connections. The application 204 includes, but not limited to, desktop applications, web applications, mobile applications, and enterprise applications. The client refers to, but not limited to, the UE 102 and the destination refers to but not limited to the server 104. Accordingly, the client will hereinafter be referred to as “client 102” and the destination will hereinafter be referred to as “destination 104”.
[0038] In an embodiment of the present invention, the protocol stack 206 is a library based on one or more programming languages which interacts within the communication network 106 to communicate between the client 102 and the destination 104 via one or more network protocol connections.
[0039] In an embodiment, the one or more network protocol connections is the establishment and management of communication between two or more UE 102 over the communication network 106 using a specific protocol or set of protocols. The one or more network protocol connection includes, but not limited to, Transmission Control Protocol (TCP), User Datagram Protocol (UDP), File Transfer Protocol (FTP), Hypertext Transfer Protocol (HTTP), Simple Network Management Protocol (SNMP), Internet Control Message Protocol (ICMP), Hypertext Transfer Protocol Secure (HTTPS) and Terminal Network (TELNET).
[0040] The protocol stack 206 provides abstracted APIs (Application Programming Interface) for developers to build an application around it with inbuilt features like connection management, log management, transport HTTP2 messages, overload protection, rate limit protection, etc. Further, the protocol stack 206 has the capability to create one or more new connections and replace the existing connections with the new connections. The replacement of existing connection with new connections between the client 102 and the destination 104 is performed by one or modules of a processor 302 (as shown in FIG. 3). The one or more modules of the processor includes at least a replacement unit 312, which replaces the existing connection with the new connection between the client 102 and the destination 104. The replacement is performed based on one or more pre-defined events as explained in FIG. 3. Further, in one embodiment, the protocol stack 206 comprises a submodule i.e., stream overflow module that helps the application 204 to have seamless connectivity with destination in the event of stream exhaustion.
[0041] Further, the system 108 architecture 200 includes a network layer 208. The network layer 208 is capable of transmitting network packets from the client 102 to the destination 104. In particular, the network packets are the data or requests transmitted via the communication network 106 from the client 102 to the destination 104. The request includes, but is not limited to, data, service, Hypertext Transfer Protocol (HTTP) requests and the like
[0042] FIG. 3 is an exemplary block diagram of the system 108 for preventing network traffic failure in the communication network 106, according to one or more embodiments of the present invention.
[0043] As per the illustrated embodiment, the system 108 includes one or more processors 302, a memory 304, a user interface 306 and a database 308. For the purpose of description and explanation, the description will be explained with respect to one processor 302 and should nowhere be construed as limiting the scope of the present disclosure. In alternate embodiments, the system 108 may include more than one processors 302 as per the requirement of the communication network 106. The one or more processors 302, hereinafter referred to as the processor 302 may be implemented as one or more microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units, state machines, logic circuitries, single board computers, and/or any devices that manipulate signals based on operational instructions.
[0044] As per the illustrated embodiment, the processor 302 is configured to fetch and execute computer-readable instructions stored in the memory 304. The memory 304 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 304 may include any non-transitory storage device including, for example, volatile memory such as RAM, or non-volatile memory such as disk memory, EPROMs, FLASH memory, unalterable memory, and the like.
[0045] In an embodiment, the user interface 306 includes a variety of interfaces, for example, interfaces for a graphical user interface, a web user interface, a Command Line Interface (CLI), and the like. The user interface 306 facilitates communication of the system 108. In one embodiment, the user interface 306 provides a communication pathway for one or more components of the system 108. Examples of such components include, but are not limited to, the UE 102 and the database 308.
[0046] The database 308 is one of, but not limited to, a centralized database, a cloud-based database, a commercial database, an open-source database, a distributed database, an end-user database, a graphical database, a No-Structured Query Language (NoSQL) database, an object-oriented database, a personal database, an in-memory database, a document-based database, a time series database, a wide column database, a key value database, a search database, a cache databases, and so forth. The foregoing examples of database 308 types are non-limiting and may not be mutually exclusive e.g., a database can be both commercial and cloud-based, or both relational and open-source, etc.
[0047] In order for the system 108 to prevent network traffic failure in the communication network 106, the processor 302 includes the one or more modules. In one embodiment, the one or more modules includes, but not limited to, a monitoring unit 310, the replacement unit 312 and a retaining unit 314 communicably coupled to each other to prevent network traffic failure in the communication network 106. In an embodiment, the system 108 is located at, at least one of the client 102 or the destination 104.
[0048] The monitoring unit 310, the replacement unit 312 and the retaining unit 314, is an exemplary embodiment, may be implemented as a combination of hardware and programming (for example, programmable instructions) to implement one or more functionalities of the processor 302. In the examples described herein, such combinations of hardware and programming may be implemented in several different ways. For example, the programming for the processor 302 may be processor-executable instructions stored on a non-transitory machine-readable storage medium and the hardware for the processor may comprise a processing resource (for example, one or more processors), to execute such instructions. In the present examples, the memory 304 may store instructions that, when executed by the processing resource, implement the processor 302. In such examples, the system 108 may comprise the memory 304 storing the instructions and the processing resource to execute the instructions, or the memory 304 may be separate but accessible to the system 108 and the processing resource. In other examples, the processor 302 may be implemented by electronic circuitry.
[0049] In an embodiment, a connection is established between the client 102 and the destination 104 when the client requests are transmitted from the client 102 to the destination 104 via the communication network 106. The client requests are the requests pertaining to one or more services that the client 102 may require from the destination 104. The connection is at least one of the one or more network protocol connections. In an embodiment, the request is at least one of Hypertext Transfer Protocol (HTTP) request. Further, the client 102 transmits the HTTP request over a Transfer Control Protocol (TCP) connection.
[0050] In one embodiment, the monitoring unit 310 of the processor 302 is configured to monitor an existing connection between the client 102 and the destination 104. The existing connection corresponds to the connection already present between the client 102 and the destination 104.
[0051] On monitoring the existing connection, the replacement unit 312 is configured to replace the existing connection with a new connection between the client 102 and the destination 104. The new connection corresponds to the recent connection present between the client 102 and the destination 104. In an embodiment, each of the existing and the new connections are a part of the one or more network protocol connection and is at least one of, but not limited to, a Transmission Control Protocol (TCP) connection.
[0052] Further, the replacement of the existing connection with the new connection between the client 102 and the destination 104 is in response to occurrence of one or more pre-defined events. In an embodiment, the pre-defined events refer to specific occurrences or situations that are predetermined or established in advance within a system, process, or framework. These events are typically defined based on certain criteria or conditions and serve as triggers for predetermined actions or responses.
[0053] In the present disclosure, the one or more pre-defined events includes at least one of, but not limited to, a count of stream identifiers associated with the client requests that has reached a pre-defined threshold limit for the existing connection and the existing connection between the client 102 and the destination 104 is inactive for a pre-defined time period. Further, the pre-defined threshold limit refers to but not limited to a predetermined value set for specific network performance metrics or conditions of the existing connection.
[0054] In an embodiment, the stream identifier is a unique identifier number representative of a data stream including at least one of, client requests. Further, in one embodiment, the stream identifiers range from about 1 to 2147483647. More specifically, the stream identifiers of the data stream, including at least one of, client requests contain odd numbers, such as stream ID 3, stream ID 5, etc. In an embodiment, the stream identifier is expressed as an unsigned 31-bit integer. The value (0*00) is reserved for frames that are associated with the connection as a whole as opposed to an individual stream.
[0055] Accordingly, when the count of the stream identifiers reaches the pre-defined threshold limit, the replacement unit 312, triggers a replace job signal in order to create the new connection in real time. The job signal refers to a notification or indication within the communication network 106 that a particular task or job has to be replaced with the new connection.
[0056] Upon triggering the replace job signal, the replacement unit 312 creates the new connection. Upon creating the new connection, the monitoring unit 310 is further configured to determine whether the status of creating the new connection is success or failure. If the status of the creating the new connection is failure, then the replacement unit 312 retries creating of new connection for specific times. If the status of the creation of new connection is success, then the replacing unit 312 is configured to replace the old connection with the new connection. Thereafter, the monitoring unit 310 updates the status of the creation of the new connection as success at the database 308.
[0057] Once the status of the creation of the new connection is updated in the database 308, the replacement unit 312 replaces the existing connection with one or more subsequent new connections. Further, the existing connection is replaced with one or more subsequent new connections until expiration of a predefined count, when the existing connection has failed. Upon replacing the existing connections with one or more subsequent new connections, if the new connection is ready to use, then the client 102 uses the new connections directly from the map by searching for the key i.e. the target destination 104. Thereafter, the client 102 transmits the upcoming requests to the new connection. More specifically, the HTTP requests are transmitted over the TCP connection.
[0058] Subsequent to replacing the existing connection with the new connection by the replacement unit 312, the existing connection is retained by the retaining unit 314. The existing connection is retained by the retaining unit 314 until at least one of an expiration of a pre-defined time period or completion of transmission of one or more pending client requests between the client 102 and the destination 104 utilizing the existing connection. Further, the existing connection retained by the retaining unit 314 terminates the existing connection subsequent to at least one of, the expiration of a pre-defined time period or completion of transmission of one or more pending client requests.
[0059] On terminating the existing connection by the retaining unit 314, the replacement unit 312 removes the existing connection from the database 308. The existing connection from the database 308 is removed at least when the pre-defined time period expires or the transmission of one or more pending client requests between the client 102 and the destination 104 is completed.
[0060] FIG. 4 is a flow diagram of a method 400 for preventing network traffic failure in the communication network 106, according to one or more embodiments of the present invention. For the purpose of description, the method is described with the embodiments as illustrated in FIG. 3 and should nowhere be construed as limiting the scope of the present disclosure.
[0061] At step 402, the method 400 includes the step of monitoring the existing connection between the client 102 and the destination 104. In one embodiment, the monitoring unit 310 of the processor 302 is configured to monitor the existing connection between the client 102 and the destination 104.
[0062] At step 404, the method 400 includes the step of replacing the existing connection with the new connection between the client 102 and the destination 104 in response to occurrence of one or more pre-defined events. Further, the existing connection and the new connection is at least one of, but not limited to, the TCP connection. Further, the replacement of the existing connection with the new connection between the client 102 and the destination 104 is in response to occurrence of one or more pre-defined events. The one or more pre-defined events includes at least one of, but not limited to the count of stream identifiers associated with the client requests that has reached the pre-defined threshold limit for the existing connection and the existing connection between the client 102 and the destination 104 is inactive for the pre-defined time period.
[0063] In an embodiment, the stream identifier is a unique identifier number representative of a data stream including at least one of, client requests. Further, in one embodiment the stream identifiers range from about 1 to 2147483647. More specifically, the stream identifiers of the data stream, including at least one of, client requests contain odd numbers, such as stream ID 3, stream ID 5, etc. Further, when the count of the stream identifiers reaches the pre-defined threshold limit, the replacement unit 312, triggers a replace job signal in order to create the new connection in real time.
[0064] Upon triggering the replace job signal, the replacement unit 312 creates the new connection. Upon creating the new connection, the monitoring unit 310 is further configured to determine whether the status of creating the new connection is success or failure. If the status of the creating the new connection is failure, then the replacement unit 312 retries creating of new connection for specific times. If the status of the creation of new connection is success, then the replacing unit 312 is configured to replace the old connection with the new connection. Thereafter, the monitoring unit 310 updates the status of the creation of the new connection as success at the database 308. Once the status of the replaced new connection is updated in the database 308, the replacement unit 312 replaces the existing connection with one or more subsequent new connections. Further, the existing connection is replaced with one or more subsequent new connections until expiration of a predefined count, when the existing connection has failed.
[0065] At 406, the method 400 includes the step of retaining the existing connection subsequent to replacing the existing connection with the new connection until at least one of, the expiration of the pre-defined time period or completion of transmission of one or more pending client requests between the client 102 and the destination 104 utilizing the existing connection. In an embodiment, the retaining unit 314 configured to retain the existing connection subsequent to replacing the existing connection with the new connection until at least one of, an expiration of the pre-defined time period or completion of transmission of one or more pending client requests between the client 102 and the destination 104 utilizing the existing connection. Further, retaining the existing connection subsequent to replacing the existing connection with the new connection, includes the step of terminating the existing connection subsequent to at least one of, the expiration of a pre-defined time period or completion of transmission of one or more pending client requests. Further, the method 400 includes the step of removing the existing connection from the database once at least the pre-defined time period expires or the transmission of one or more pending client requests between the client 102 and the destination 104 is completed.
[0066] FIG. 5 is a flow diagram for preventing network traffic failure in the communication network 106, according to one or more embodiments of the present invention.
[0067] At step 502, the stream overflow job is triggered by the system 108. The stream overflow job is a signal to commence the job of monitoring of network traffic between the client 102 and the destination 104 in terms of stream IDs.
[0068] At step 504, upon monitoring the network traffic between the client 102 and the destination 104, the count of stream identifiers associated with the client requests are calculated.
[0069] At step 506, upon calculating the stream identifiers, determining whether the count of stream identifiers associated with the client requests has reached the pre-defined threshold limit for the existing connection. If the count of the stream identifiers reaches the pre-defined threshold limit, the replace job signal is triggered in order to create the new connection in real time.
[0070] At step 508, thereafter, the new connection is created between the client 102 and the destination 104 in response to the number of stream identifiers utilized reaches or exceeds the pre-defined threshold limit.
[0071] At step 510, subsequently, checking the status and integrity of the new connection whether, the creation of new connection is success or failure. If the status of the creation of the new connection is failure, then the creation of new connection is retried for specific times and creates the new connection for the target destination 104.
[0072] At step 512, if the status of the creation of the new connection is success, then the new connection created by the system is added to an availability list of the connections. In an embodiment, the availability list is a pre-set number of connections assigned to the client 102 and the respective destination 104.
[0073] At step 514, upon adding the new connections to the availability list of the connections, the existing connections that have no pending client requests and associated stream IDs from the availability list of the connections are removed. The availability list is stored at the memory such as the database 308.
[0074] At step 516, the system 108 monitors and waits for the pending client requests being transmitted by the existing connections to be completed or timed out. Further, after adding the new connection, the system waits for the existing connections to complete or serve the pending client requests.
[0075] At step 518, thereafter terminating the existing connection subsequent to at least one of, the expiration of the pre-defined time period or completion of transmission of one or more pending client requests. Further, the existing connection is also terminated from the list of connections at the database 208. Subsequently, the client requests are now transmitted to the new connection.
[0076] The present invention further discloses a non-transitory computer-readable medium having stored thereon computer-readable instructions. The computer-readable instructions are executed by the processor 302. The processor 302 is configured to monitor, an existing connection between the client 102 and the destination 104. The processor 302 is further configured to replace the existing connection with the new connection between the client 102 and the destination 104 in response to occurrence of one or more pre-defined events. The processor 302 is further configured to retain, the existing connection subsequent to replacing the existing connection with the new connection until at least one of, the expiration of the pre-defined time period or completion of transmission of one or more pending client requests between the client 102 and the destination 104 utilizing the existing connection.
[0077] A person of ordinary skill in the art will readily ascertain that the illustrated embodiments and steps in description and drawings (FIG.1-4) are set out to explain the exemplary embodiments shown, and it should be anticipated that ongoing technological development will change the manner in which particular functions are performed. These examples are presented herein for purposes of illustration, and not limitation. Further, the boundaries of the functional building blocks have been arbitrarily defined herein for the convenience of the description. Alternative boundaries can be defined so long as the specified functions and relationships thereof are appropriately performed. Alternatives (including equivalents, extensions, variations, deviations, etc., of those described herein) will be apparent to persons skilled in the relevant art(s) based on the teachings contained herein. Such alternatives fall within the scope and spirit of the disclosed embodiments.
[0078] The present disclosure incorporates technical advancement of improved performance and user experience during stream exhaustion and prevents network failure due to abrupt connection termination due to stream exhaustion. Further, the present disclosure incorporates a mechanism to replace old connections with newly created ones without breaking the communication and at run time. Further, the present disclosure incorporates a mechanism to terminate old connections when all pending requests have been completed to avoid resource leakage. Further, the change in the latency will be negligible because of old connections and new connections are simultaneously satisfy the requests rate. Thus, there will be degradation of network quality.
[0079] The present invention offers multiple advantages over the prior art and the above listed are a few examples to emphasize on some of the advantageous features. The listed advantages are to be read in a non-limiting manner.
REFERENCE NUMERALS
[0080] Environment- 100
[0081] User Equipment (UE)/ Client- 102
[0082] Server/ Destination- 104
[0083] Communication Network- 106
[0084] System -108
[0085] Java Virtual Machine (JVM)- 202
[0086] Application- 204
[0087] Protocol Stack- 206
[0088] Network Layer- 208
[0089] Processor- 302
[0090] Memory- 304
[0091] User Interface- 306
[0092] Database- 308
[0093] Monitoring Unit- 310
[0094] Replacement Unit- 312
[0095] Retaining Unit – 314
,CLAIMS:CLAIMS:
We Claim:
1. A method (400) for preventing network traffic failure in a communication network (106), the method (400) comprises the steps of:
monitoring, by one or more processors (302), an existing connection between a client (102) and a destination (104);
replacing, by the one or more processors (302), the existing connection with a new connection between the client (102) and the destination (104) in response to occurrence of one or more pre-defined events; and
retaining, by the one or more processors (302), the existing connection subsequent to replacing the existing connection with the new connection until at least one of, an expiration of a pre-defined time period or completion of transmission of one or more pending client requests between the client (102) and the destination (104) utilizing the existing connection.
2. The method (400) as claimed in claim 1, wherein the existing connection and the new connection is at least one of, a Transmission Control Protocol (TCP) connection.
3. The method (400) as claimed in claim 1, wherein the one or more pre-defined events include at least one of:
a count of stream identifiers associated with the client requests has reached a pre-defined threshold limit for the existing connection; and
the existing connection between the client (102) and the destination (104) is inactive for a pre-defined time period.
4. The method (400) as claimed in claim 3, wherein when the count of the stream identifiers reaches the pre-defined threshold limit, the one or more processors (302), triggers a replace job signal in order to create the new connection in real time.
5. The method (400) as claimed in claim 1, wherein the stream identifiers is a unique identifier number representative of a data stream including at least one of, client requests, wherein the stream identifiers range from about 1 to 2147483647 which only contain odd numbers, such as stream ID 3, stream ID 5, etc.
6. The method (400) as claimed in claim 1, wherein the method (400) further comprises the steps of:
determining, by the one or more processors (302), status of the replaced new connection as one of, success and failure.
7. The method (400) as claimed in claim 6, wherein subsequent to determining status of the replaced new connection as success, the one or more processors (302) is configured to, update the status of the said replaced new connection as available at a database, simultaneously.
8. The method (400) as claimed in claim 1, wherein the method (400) further comprises the step of:
replacing, by the one or more processors (302), the existing connection with one or more subsequent new connections until expiration of a pre-defined count, when the existing connection has failed.
9. The method (400) as claimed in claim 1, wherein the step of, retaining, the existing connection subsequent to replacing the existing connection with the new connection, includes the step of:
terminating, by the one or more processors (302), the existing connection subsequent to at least one of, the expiration of a pre-defined time period or completion of transmission of one or more pending client requests.
10. The method (400) as claimed in claim 1, wherein the method (400) further comprises the step of:
removing, by the one or more processors (302), the existing connection from the database once at least the pre-defined time period expires or the transmission of one or more pending client requests between the client (102) and the destination (104) is completed.
11. A system (108) for preventing network traffic failure in a communication network, the system comprising:
a monitoring unit (310) configured to, monitor, an existing connection between a client and a destination;
a replacement unit (312) configured to, replace, the existing connection with a new connection between the client (102) and the destination (104) in response to occurrence of one or more pre-defined events; and
a retaining unit (314) configured to, retain, the existing connection subsequent to replacing the existing connection with the new connection until at least one of, an expiration of a pre-defined time period or completion of transmission of one or more pending client requests between the client (102) and the destination (104) utilizing the existing connection.
12. The system (108) as claimed in claim 11, wherein the existing connection and the new connection is at least one of, a Transmission Control Protocol (TCP) connection.
13. The system (108) as claimed in claim 11, wherein the one or more pre-defined events include at least one of:
a count of stream identifiers associated with the client requests has reached a pre-defined threshold limit for the existing connection; and
the existing connection between the client (102) and the destination (104) is inactive for a pre-defined time period.
14. The system (108) as claimed in claim 13, wherein when the count of the stream identifiers reaches the pre-defined threshold limit, the replacement unit, triggers a replace job signal in order to create the new connection in real time.
15. The system (108) as claimed in claim 11, wherein the stream identifiers is a unique identifier number representative of a data stream including at least one of, client requests, wherein the stream identifiers range from about 1 to 2147483647 which only contain odd numbers, such as stream ID 3, stream ID 5, etc.
16. The system (108) as claimed in claim 11, wherein the monitoring unit (310) is further configured to:
determine, status of the replaced new connection as one of, success or failure.
17. The system (108) as claimed in claim 16, wherein subsequent to determining status of the replaced new connection as success, the monitoring unit (310) is configured to, update the status of the said replaced new connection as available at a database (308), simultaneously.
18. The system (108) as claimed in claim 11, wherein the replacing unit (312) is further configured to:
replace, the existing connection with one or more subsequent new connections until expiration of a pre-defined count, when the existing connection has failed.
19. The system (108) as claimed in claim 11, wherein the retaining unit (314) retains, the existing connection subsequent to replacing the existing connection with the new connection, by:
terminating, the existing connection subsequent to at least one of, the expiration of a pre-defined time period or completion of transmission of one or more pending client requests.
20. The system (108) as claimed in claim 11, wherein the replacement unit (312) is further configured to:
remove, the existing connection from the database (308) once at least the pre-defined time period expires or the transmission of one or more pending client requests between the client (102) and the destination (104) is completed.
| # | Name | Date |
|---|---|---|
| 1 | 202321059738-STATEMENT OF UNDERTAKING (FORM 3) [05-09-2023(online)].pdf | 2023-09-05 |
| 2 | 202321059738-PROVISIONAL SPECIFICATION [05-09-2023(online)].pdf | 2023-09-05 |
| 3 | 202321059738-FORM 1 [05-09-2023(online)].pdf | 2023-09-05 |
| 4 | 202321059738-FIGURE OF ABSTRACT [05-09-2023(online)].pdf | 2023-09-05 |
| 5 | 202321059738-DRAWINGS [05-09-2023(online)].pdf | 2023-09-05 |
| 6 | 202321059738-DECLARATION OF INVENTORSHIP (FORM 5) [05-09-2023(online)].pdf | 2023-09-05 |
| 7 | 202321059738-FORM-26 [17-10-2023(online)].pdf | 2023-10-17 |
| 8 | 202321059738-Proof of Right [12-02-2024(online)].pdf | 2024-02-12 |
| 9 | 202321059738-DRAWING [02-09-2024(online)].pdf | 2024-09-02 |
| 10 | 202321059738-COMPLETE SPECIFICATION [02-09-2024(online)].pdf | 2024-09-02 |
| 11 | Abstract 1.jpg | 2024-09-24 |
| 12 | 202321059738-Power of Attorney [24-01-2025(online)].pdf | 2025-01-24 |
| 13 | 202321059738-Form 1 (Submitted on date of filing) [24-01-2025(online)].pdf | 2025-01-24 |
| 14 | 202321059738-Covering Letter [24-01-2025(online)].pdf | 2025-01-24 |
| 15 | 202321059738-CERTIFIED COPIES TRANSMISSION TO IB [24-01-2025(online)].pdf | 2025-01-24 |
| 16 | 202321059738-FORM 3 [29-01-2025(online)].pdf | 2025-01-29 |
| 17 | 202321059738-FORM 18 [20-03-2025(online)].pdf | 2025-03-20 |