# US 6,295,557 B1 · Apparatus for simulating internet traffic

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 6,295,557 B1
- Document ID: US6295557B1
- Status: Granted
- Kind: B1
- Application number: 09/107,256
- Filed: 1998-06-30
- Granted: 2001-09-25
- Earliest claimed: 1998-06-30
- Assignees: Cisco Technology, Inc.
- Inventors: Andrew L. Foss; Richard A. Howes; William M. Leblanc; Edward C. Kersey
- Web page: https://patentgrep.com/patent/US6295557B1

## CPC

- H04L 41/145: {involving simulating, designing, planning or modelling of a network}
- H04L 69/16: Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

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.

## Claims

### Claim 1

An internet traffic simulator comprising:
an application layer connection producer configured to produce a TCP connection by randomly determining an IP address and requesting a TCP layer process to make a TCP connection to the randomly determined IP address wherein the application layer connection producer thread process does not block or wait for the TCP connection to be established;
an application layer TCP connection event consumer configured to retrieve information from the TCP connection, record statistics related to the information and end without blocking or waiting for another TCP connection event to occur.

### Claim 2

A system of simulating a plurality of TCP connections directed toward an Internet site under test comprising:
a processor configured to activate a producer thread process, the producer thread process including:
randomly determining an IP address; and
requesting a TCP layer process to make a TCP connection to the randomly determined IP address;
wherein the producer thread process does not block or wait for the TCP connection to be established;
the processor also configured to activate a consumer thread process upon the occurrence of an event on the TCP connection, the consumer thread process including:
retrieving information from the TCP connection;
recording statistics related to the information; and
ending the consumer thread process; and
a memory coupled with the processor to provide the processor with instructions.

### Claim 3

A system of simulating a plurality of TCP connections directed toward an Internet site under test comprising:
means for activating a producer thread process, the producer thread process including:
randomly determining an IP address; and
requesting a TCP layer process to make a TCP connection to the randomly determined IP address;
wherein the producer thread process does not block or wait for the TCP connection to be established;
means for activating a consumer thread process upon the occurrence of an event on the TCP connection, the consumer thread process including:
retrieving information from the TCP connection;
recording statistics related to the information; and
ending the consumer thread process.

### Claim 4

A computer program product for simulating a plurality of TCP connections directed toward an Internet site under test, comprising:
computer code activating a producer thread process, the producer thread process including:
randomly determining an IP address; and
requesting a TCP layer process to make a TCP connection to the randomly determined IP address;
wherein the producer thread process does not block or wait for the TCP connection to be established;
computer code activating a consumer thread process upon the occurrence of an event on the TCP connection, the consumer thread process including:
retrieving information from the TCP connection;
recording statistics related to the information; and
ending the consumer thread process; and
a computer readable medium that stores the computer codes.

### Claim 5

A method of simulating a plurality of TCP connections directed toward an Internet site under test comprising:
activating a producer thread process, the producer thread process including:
randomly determining an IP address; and
requesting a TCP layer process to make a TCP connection to the randomly determined IP address;
wherein the producer thread process does not block or wait for the TCP connection to be established;
activating a consumer thread process upon the occurrence of an event on the TCP connection, the consumer thread process including:
retrieving information from the TCP connection;
recording statistics related to the information; and
ending the consumer thread process.

### Claim 6 (depends on 1)

A method of simulating a plurality of TCP connections as recited in claim 1 wherein the consumer thread process does not block or wait for another TCP connection event to occur.

### Claim 7 (depends on 1)

A method of simulating a plurality of TCP connections as recited in claim 1 wherein recording statistics related to the information includes determining whether the information includes an http return code.

### Claim 8 (depends on 1)

A method of simulating a plurality of TCP connections as recited in claim 1 wherein recording statistics related to the information includes recording a type of http return code that is received.

### Claim 9 (depends on 1)

A method of simulating a plurality of TCP connections as recited in claim 1 wherein the consumer thread process further includes determining that the TCP connection has been closed and activating a second producer thread process to create a connection to replace the closed connection.

### Claim 10 (depends on 1)

A method of simulating a plurality of TCP connections as recited in claim 1 wherein requesting a TCP layer process to make a TCP connection to the randomly determined IP address includes creating a TCB that is part of a select group.

### Claim 11 (depends on 1)

A method of simulating a plurality of TCP connections as recited in claim 1 wherein activating a consumer thread process upon the occurrence of an event on the TCP connection includes detecting a connection event for a TCB that is part of a select group.

### Claim 12 (depends on 1)

A method of simulating a plurality of TCP connections as recited in claim 1 wherein activating a consumer thread process upon the occurrence of an event on the TCP connection includes passing a connection ID pointer to the consumer thread process.

### Claim 13 (depends on 12)

A method of simulating a plurality of TCP connections as recited in claim 12 wherein the connection ID pointer points to a connection ID object.

### Claim 14 (depends on 13)

A method of simulating a plurality of TCP connections as recited in claim 13 wherein the connection ID object includes the simulated source IP address of the connection.

### Claim 15 (depends on 13)

A method of simulating a plurality of TCP connections as recited in claim 13 wherein the connection ID object includes the simulated source port number of the connection.

### Claim 16 (depends on 1)

A method of simulating a plurality of TCP connections as recited in claim 1 wherein the consumer thread process that is activated is the first process in a sleeping consumer thread queue.

### Claim 17 (depends on 1)

A method of simulating a plurality of TCP connections as recited in claim 1 wherein a plurality of consumer thread processes are activated and wherein an active consumer thread queue determines the order of execution of the consumer thread processes.

### Claim 18 (depends on 1)

A method of simulating a plurality of TCP connections as recited in claim 1 wherein the producer thread process is an application layer process.

### Claim 19 (depends on 1)

A method of simulating a plurality of TCP connections as recited in claim 1 wherein randomly determining an IP address includes checking the randomly determined IP address against a table of excluded IP addresses.

### Claim 20 (depends on 19)

A method of simulating a plurality of TCP connections as recited in claim 19 wherein the table of excluded IP addresses includes a subnet mask.
