FIELD OF THE INVENTION

The present invention relates generally to communication networks, and specifically to testing in communication networks using deterministic decentralized scheduling of test agents.

BACKGROUND OF THE INVENTION

Communication networks are in wide use in many technological fields including distributed computing, data exchange and telecommunication applications. Communication networks generally include many nodes, such as bridges, LAN switches, routers, cross-connections and telephone switches. The networks further include communication links, such as cables, point-to-point radio connections and optical fibers, which connect the nodes. The networks also include ports, generally within some of the nodes, for attaching external devices such as computers, terminals, handsets, and multiplexers. These external devices are referred to as end-points, or hosts.

Networks are becoming increasingly complex, especially due to their increasing speeds of operation, the number of units interconnected by a network and the formation of large networks from different types of sub-networks. In addition, networks may transmit concurrently various types of data, such as text, voice, video and other multimedia files. In order to allow for these different types of data, some networks are designed to provide different amounts of bandwidth and different levels of quality of service.

A major issue in both newly-deployed and existing communication networks is testing and trouble-shooting, i.e., checking whether the network is operating according to its specifications and, if not, determining the cause of the network's inadequate performance (for example, the identity of a faulty unit). Dedicated point-to-point testing equipment is a commonly used network-testing tool. Usually, dedicated point-to-point testing equipment requires two users to coordinate their operations in order to identify a misbehaving component of the network. To test a large network, the testing equipment must be moved between many ports of the network.

It is to be appreciate that prior art distributed hardware or software test agents, which performed active testing against a System or Service often suffered from a condition known as the “Thundering Herd” problem. That is, the more test locations that a tester would execute a test from, the more artificial testing load would be imposed on the system/service under test. This testing load often altered the performance of the system/service, and therefore skewed the results. Additionally, certain events, like test configuration changes or system re-starts would often cause the test agents to run tests simultaneously, materially skewing results and potentially overloading the system/service. Therefore, distributed testing from a large number of test agents typically required complex coordination amongst the test agents to spread the testing load across the agents for the duration of the testing interval. This coordination would minimize the artificial testing impact on the system/service under test, thereby providing the most reliable results.

It is noted previous attempts for implementing coordination amongst the test agents to spread the testing load across the agents for the duration of the testing interval included providing centralized coordination where a coordinator would determine which time window each test agent would perform their test and then propagate that information to each test agent. Another attempt included providing decentralized coordination where each test agent would communicate with other agents to determine which test agent would perform their test next.

SUMMARY OF THE INVENTION

The purpose and advantages of the below described illustrated embodiments will be set forth in and apparent from the description that follows. Additional advantages of the illustrated embodiments will be realized and attained by the devices, systems and methods particularly pointed out in the written description and claims hereof, as well as from the appended drawings.

To achieve these and other advantages and in accordance with the purpose of the illustrated embodiments, in one aspect, a software driven mechanism whereby each test agent is operable and configured to determine an optimal time period for executing a test without requiring global knowledge of the system, such as which other network test agents are executing a same or similar test, and/or the other network test agents will execute a test is described. The illustrated embodiments preferably utilize a deterministic decentralized scheduling of test agents, which obviates the need for requiring centralized coordination of individual agent test schedules. In the illustrated embodiments, each test agent is configured and operable to determine a safe test schedule using: 1) a unique identifier for each test agent; and 2) a unique identifier for the test to be executed. Utilizing the aforesaid information (i.e., 1) a unique identifier for each test agent; and 2) a unique identifier for the test to be executed) each test agent determines, with preferably a high degree of certainty, a time to execute a test on a Service in a network without overloading the Service under test.

