The present invention relates to a network simulation for testing network performance. In particular, the present invention relates to bulk call generation and application emulation for purposes of testing and simulation for evaluating the performance of a network.
A computer network includes a set of communication channels interconnecting a set of computing devices or nodes that can communicate with each other. These nodes may be computers, terminals, workstations, or communication units of various kinds distributed over different locations. They communicate over communications channels that can be leased from common carriers (e.g. telephone companies) or are provided by the owners of the network. These channels may use a variety of transmission media, including optical fibers, coaxial cable, twisted copper pairs, satellite links, or digital microwave radio. The nodes may be distributed over a wide area (distances of hundreds or thousands of miles) or over a local area (distances of a hundred feet to several miles), in which case the networks are called wide area (WAN) or local area (LAN) networks, respectively. Combinations of LANs and WANs are also possible in the case of widely separated LANs in branch offices located via a WAN to the LAN in corporate headquarters.
Recently, modem computer networks have greatly increased in number and geographical area, in the number and variety of devices interconnected, and in the scope of applications supported. A modem network may consist of thousands of computing devices made by various manufacturers connected by a variety of transmission media spanning international and intercontinental boundaries.
FIG. 1 is a block diagram illustrating interactions between users and a network. FIG. 1 shows users 100A-100C who are attempting to make calls to various Internet protocol addresses in the network 106. Users 100A-100C may be any entity attempting to access network 106, such as an individual user, a server, or a corporation. Users 100A-100C typically call into a central office, such as Pacific Bell, which in turn calls an Internet service provider 104, such as Netcom. The call typically terminates with an Internet service provider 104. A router then typically uses a network protocol connection, such as a transmission control protocol/Internet protocol (TCP/IP), to distribute the calls made by the users 100A-100C to the appropriate Internet protocol (IP) addresses in the network 106.
For testing and simulation purposes, it is often useful to simulate users 100A-100C and the central office 102 to determine the quality and performance of the network 106. For instance, it may be useful for the Internet service provider 104 to determine how many number of calls it can handle within a given amount of time. With that information, the Internet service provider 104 could determine whether its infrastructure is adequate to provide services for its customers. Another instance in which testing and simulation may be required is if a customer does not wish to build its own network, but contracts for a service agreement to utilize someone else""s private network. Typically, these service level agreements agree to provide availability for a certain percent of time. In order to monitor the contracts, simulations can occur which mimics the customers"" access to provide proof that the network can simultaneously handle a given number of calls and that the agreed percentage of availability is actually being provided.
FIG. 2 shows a block diagram of a system for testing a network. FIG. 2 shows a bulk call generator 200, such as the bulk call generator manufactured by Abacus, making calls to the network 106. The bulk call generator 200 simulates the users 100A-100C and the central office 102 of FIG. 1 by generating a large number of calls into the network 106. The bulk call generator 200 typically generates a large number of calls into the network 106 to be rerouted back to the bulk call generator 200. In other words, the bulk call generator 200 makes a large number of calls to itself through the network 106. In this manner, the bulk call generator 200 simulates the users 100A-100C and the central office 102 of FIG. 1 to test the performance of the network 106. These conventional bulk call generators 200 are typically a device with dedicated hardware specifically designed to create bulk calls. The conventional bulk call generators 200 typically range in price from $100,000 to $500,000.
Although simulation and testing can be accomplished with conventional bulk call generators, they tend to be extremely expensive. Additionally, conventional bulk call generators typically do not include a variety of IP addresses as part of the test scenario.
It would be desirable to have a bulk call generator which does not require dedicated hardware, which can be manufactured at a reasonable price, and which includes a variety of IP addresses as part of the test scenario. The present invention addresses such a need.
The present invention is a system and method for generating bulk calls and emulating applications. According to an embodiment of the present invention, a router is converted into a bulk call generator which generates packets with Internet protocol (IP) addresses for the purpose of simulating network traffic. These packets may be initially either captured or created. When the packets are captured, they may be captured from actual network traffic and rerouted to various selected IP addresses which are used for simulation purposes. Alternatively, when the packets are created, they may be created within the converted router and various selected IP addresses, reserved for simulation purposes, are assigned to the packets. The various selected IP addresses may be in a range which is user configurable. The IP addresses may be selected from this range by any method, such as incrementation, decrementation, or random selection. Connections may be set up according to a routing table based on the IP addresses of the various data packets.
According to an embodiment of the present invention, a set of parameters is assigned to each data packet. Examples of parameters include an interface assignment, packet issuance rate, duration for the rate, number of times to repeat this set of parameters, and a modification scheme for modifying the IP address. A send engine in the converted router may receive the set of parameters and send the data packet according to the instructions in the set of parameters associated with the data packet.
A method according to an embodiment of the present invention for generating a plurality of calls to a network is presented. The method comprising a step of providing a data packet with an address, wherein the address identifies a location within a network, the device being configurable to perform as a router. The method also comprising providing a record with at least one traffic parameter; and sending the data packet to the network for a simulation purpose, the data packet being sent according to the at least one traffic parameter.
A system according to an embodiment of the present invention for generating a plurality of calls to a network is also presented. The system comprising a packet generator subsystem included in a device, wherein the device is configurable to perform as a router, and wherein the packet generator subsystem provides a data packet with an address, wherein the address identifies a location within a network. The system also comprising a dial shelf coupled to the packet generator subsystem, wherein the packet generator subsystem is configured to request the dial shelf to prepare to send a predetermined number of calls for a simulation purpose.
Another system according to an embodiment of the present invention for generating a plurality of calls to a network is presented. The system comprising a means for providing a data packet with an address, wherein the address identifies a location within a network, the device being configurable to perform as a router. The system also comprising a means for providing a record with at least one traffic parameter; and a means for sending the data packet to the network for a simulation purpose, the data packet being sent according to the at least one traffic parameter.