next up previous contents
Next: Another Example xsim.data Up: The host Entry Previous: Megabyte Stream Test

Background Internet Traffic ( traffic)

 

Like megtest, traffic is an application-level protocol. The traffic protocol simulates typical Internet traffic based on tcplib---a library that models Internet traffic sources that is based on empirical data collected at different Internet gateways.

traffic starts conversations with interarrival times given by an exponential distribution. Each conversation can be of type TELNET, FTP, NNTP or SMTP, and each expects a set of parameters. For example, FTP conversations are parameterized by the number of items to transmit, control segment sizes, and the individual item sizes. All of these parameters are obtained from tcplib and are based on probability distributions obtained from real traffic traces. Finally, each of these conversations runs on top of its own TCP connection.

The startup distribution of traffic conversations is determined solely by the initial seeds given to the traffic protocol, and not by the lower protocols. Therefore, two traffic simulations started with the same seeds will start the same tcplib conversations at the same times. This is important for reproducing experiments, or for guaranteeing that observed behavior difference between protocols is not due to different traffic patterns.

By default, traffic hosts are servers and not clients. In other words, unless otherwise specified, a traffic host will respond to requests to open connections but will not initiate connections. Use the -hosts or -rhosts options to create traffic clients. A traffic host can be both a client and a server.

The following arguments for the traffic protocol may be specified on an args or pargs line.

-cit=<interval>

Specifies the average connection interarrival time (CIT) to be used at equilibrium. This time is used by the traffic protocol to decide when to open new connections; the traffic protocol should space new connections by this interval, on average. Note that a lower CIT means that connections are opened more frequently, leading to a greater overall number of open connections. See the

-begcit, -begdur, and -begint options for opening connections at simulator startup. See Figure 5 for a diagram that illustrates the relationship among these parameters.

  
Figure 5: Interaction of CIT Parameters

-begcit=<integer>

Since there are no open connections at the beginning of a simulation, it is often desirable to open a lot of connections at once; setting this variable to a number lower than that used with the -cit option will allow connections to be opened more quickly. This number is used as the connection interarrival time until the interval specified with -begint has elapsed.

-begdur=<integer>

Specifies the number of seconds to elapse after starting a simulation before the number specified by -cit is used as the connection interarrival time. Between the end of the time specified by

-begint and -begdur, the CIT grows linearly toward the level specified by the -cit option.

-begint=<integer>

Specifies the number of seconds that the CIT specified by

-begcit should be used, before the CIT is allowed to grow linearly towards that specified with the -cit option.

-begkeep=<integer>

Rather than creating a new thread for each new traffic connection and destroying them after the connection closes, the

traffic protocol caches the threads for later use. The number of threads in the cache will be equal to the maximum number of connections that have been open simultaneously. Since a large number of connections may be opened at the beginning of the simulation by the parameters described above, the cache may contain more threads than will be needed by the rest of the simulation. This option allows excess threads to be freed from the cache. It specifies that the simulator should only keep the specified number of threads in cache; if later it needs more, it will reallocate them. This is an optimization feature---it may improve the running time of a simulation, but will not affect its results in any way. The default value is 100.

-db=
-dbStr=

These options are the same as specified in Section 3.5.7.

-ftpBufSize=<integer>

Sets the send buffer size, in kilobytes, for FTP connections generated by the traffic protocol. The default is 20, that is, 20KB.

-hold=[f][n][s][t]

Tells the traffic host never to start a particular kind of connection. The arguments correspond to the first letters of the types of tcplib connections: f is FTP, n is NNTP, s is SMTP, and t is TELNET. Thus -hold=ft specifies that the traffic host should never begin an FTP or a TELNET connection.

-hosts=<integer> <IP addr 1> <IP addr 2> ...

Specifies that this host will be a traffic client, and lists the servers with which the client will randomly establish connections. The first argument is the number of servers, and the remaining arguments specify the IP addresses of the traffic servers.

-otherBufSize=<integer>

Sets the send buffer size, in kilobytes, for non-FTP transfers. The default is 10, that is 10KB.

-reset=<integer>

Resets the information accumulated about traffic transfers after the specified number of seconds. Often, data about transfers is only of interest after the traffic has had a chance to stabilize, which usually takes a few (simulated) seconds.

-rhosts=<integer>

Provides an alternative to the -hosts option when the user does not want to specify the IP addresses of the traffic servers. Like -hosts, this option specifies that the host is a client. At startup, the simulator randomly picks the specified number of hosts out of the pool of traffic hosts, and the client will establish connections to only this subset of hosts. Note that the selection occurs from all traffic hosts, even if they are not servers. Therefore, it is recommended that all hosts are designated as servers if this option is used.

-s

Specifies that the host is a server. This is the default. A host can be both a client and a server.

-s0

Specifies that the host is not a server.

-seed=<integer>

Specifies a seed to be used by that host to begin the random number function that determines the distribution of traffic connections. Usually, this option is not used. Instead, a global seed is specified on the command line, and this seed is automatically modified by the host name to produce one that is unique for each simulated host. See the -seed command-line option.

-showTraffic

When the simulation ends, prints some summary information about the traffic for that simulation; this is the default if there are less than 10 traffic hosts. Otherwise, this option must be specified for each host from which the summary is desired.

-trafficTime=<integer>[unit]

Stops the traffic test after it has been allowed to run for the specified number of time units. The optional unit can be

us (microseconds), ms (milliseconds), or s (seconds). The default unit is seconds.

-trafficTrace=<integer>[:<integer]

Saves trace information generated by the traffic protocols. The meanings of the integer arguments are the same as those of the -ethdTrace option. (See Section 3.5.2.)



next up previous contents
Next: Another Example xsim.data Up: The host Entry Previous: Megabyte Stream Test



Larry Peterson
Mon Jun 24 16:40:03 MST 1996