Apparatus for simulating internet traffic

Electrical computers and digital processing systems: multicomput – Computer network managing – Computer network monitoring

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C709S226000, C709S250000, C714S001000

Reexamination Certificate

active

06295557

ABSTRACT:

CROSS REFERENCE TO RELATED APPLICATIONS
BACKGROUND OF THE INVENTION
1. Field of the Invention
This invention relates generally to testing the ability of a site which is accessible over the Internet to handle multiple TCP connections from a number of different sources. Specifically, the invention relates to a system and method for simulating a large quantity of Internet traffic in an efficient manner and recording information about how a site that is under test handles the simulated traffic.
2. Description of the Related Art
The increased popularity of the Internet means that a popular site on the Internet may receive a large quantity of traffic from a vast number of IP address over the Internet. It has become increasingly important to determine the ability of a site to handle such a large volume of traffic so that the ability of whatever load balancing and traffic distribution scheme that may be used by a site to distribute connections among a group of servers (sometimes referred to as a “server farm”) is operating in an efficient manner. Also, it is important to evaluate the ability of an individual web server that is servicing a site to handle connections when the volume of traffic is high.
In order to adequately test the ability of an Internet site to handle a large number of connections, it is necessary to generate a large number of TCP connections to the site from difference IP addresses. Under real conditions, it is possible that a site may receive a large number of connections almost simultaneously from a number of different sites on the Internet that wish to connect to the site being evaluated. Handling the burstiness of such traffic is essential, since a large volume or burst of traffic that occurs during a very short period of time is often the cause of degraded performance and the inability of a server or a group of servers to adequately service customers.
One way to adequately test a site would be to use a large number of connection sources which could generate a large volume of Internet traffic from a number of different IP addresses in a short period of time. Such a system would be able to produce a large number of packets in parallel which would simulate real conditions when a number of users attempt to connect to a site. However, it may be impractical to use a large number of connection sources to test a site. Furthermore, coordinating the collection of data evaluating the site under test performance under the large burst of connections would be difficult since data would be obtained at a number of different sites.
It would be useful if an efficient method of creating a large number of TCP connections from a single TCP connection simulator could be developed that could both simulate a large number of connections from a large number of different IP addresses and could also simulate the large number of connections in a very short period of time so that the ability of the site under test to handle bursts of traffic could be evaluated.
Typically, when an application layer writes data to or reads data from a TCP layer, the application layer requests a TCP channel and then waits while data is read from or written to the channel. For example, in a UNIX implementation of TCP, a thread may either write data to a TCP channel or attempt to read data from a TCP channel. It should be understood that when the term thread is used, referring to a UNIX implementation, that other non-UNIX embodiments would use whatever appropriate type of process is available under whatever operating system is being used. For purposes of this description, the terms thread and process will be used interchangeably.
While TCP is handling the data, the thread is generally blocked, waiting for the data. Such an application would not be able to generate a large burst of traffic as described above without requiring a large number of threads to be simultaneously executing data read and data write operations to a TCP channel. The ability of such a device to generate the required volume of traffic in a short period of time would be limited by the ability of the device to handle a large number of threads in parallel to create a large number of connections. This limitation prevents the amount of bursty traffic that is desired from being generated by a single machine. Therefore, what is needed is a more efficient way to generate a large number of TCP connections from a large number of IP addresses using as few threads or active parallel processes as possible. Ideally, many connections could be generated in parallel without requiring the generation of an unwieldy number of threads.
SUMMARY OF THE INVENTION
Accordingly, the present invention provides a system and method for quickly generating a large number of TCP connections to a site under test. A producer thread generates a large number of TCP connections and places data in the TCP resend buffer without blocking, waiting for data to be sent, or checking for a response from the TCP channel. A limited number of consumer threads are defined which are activated upon the occurrence o f an event on any TCP channel. TCP passes to each newly activated consumer thread a pointer to a data structure which provides information to the thread about the IP address and port that are being simulated across the TCP channel on which the event occurred. Thus, a single producer thread generates a large number of TCP connections and a small number of consumer threads are able to handle events that occur on the connections. The consumer threads also collect data regarding the ability of the site under test to handle the volume of traffic generated. A second producer thread may be used to replace connections generated in a burst by the first producer thread when those connections are closed either by a consumer thread or by the site under test.
In one embodiment, a system and method are disclosed for simulating a plurality of TCP connections directed toward an Internet site under test. The method includes activating a producer thread process. The producer thread process includes randomly determining an IP address and requesting a TCP layer process to make a TCP connection to the randomly determined IP address. The producer thread process does not block or wait for the TCP connection to be established. A consumer thread process is activated upon the occurrence of an event on the TCP connection. The consumer thread process includes retrieving information from the TCP connection and recording statistics related to the information.
These and other features and advantages of the present invention will be presented in more detail in the following specification of the invention and the accompanying figures which illustrate by way of example the principles of the invention.


REFERENCES:
patent: 5826014 (1998-10-01), Coley et al.
patent: 5896498 (1999-04-01), Dent et al.
patent: 5907704 (1999-05-01), Gudmundson et al.
patent: 6006264 (1999-12-01), Colby et al.
patent: 6014698 (2000-01-01), Griffiths
patent: 6028848 (2000-02-01), Bhatia et al.
patent: 6029203 (2000-02-01), Bhatia et al.
patent: 6052803 (2000-04-01), Bhatia et al.
patent: 6134588 (2000-10-01), Guenthner et al.

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Apparatus for simulating internet traffic does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Apparatus for simulating internet traffic, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Apparatus for simulating internet traffic will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2521864

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.