This implementation of PackMimeHTTP provides several ns RandomVariable objects for specifying distributions of PackMimeHTTP connection variables. The implementations were taken from source code provided by Bell Labs and modified to fit into the ns RandomVariable framework. This allows PackMimeHTTP connection variables to be specified by any type of ns RandomVariable, which now include PackMimeHTTP-specific random variables. If no RandomVariables are specified in the TCL script, PackMimeHTTP will set these automatically.

The PackMimeHTTP-specific random variable syntax for TCL scripts is as follows:

`$ns [new RandomVariable/PackMimeHTTPFlowArrive <rate>]`, where`rate`is the specified PackMimeHTTP connection rate (number of new connections per second)`$ns [new RandomVariable/PackMimeHTTPReqSize <rate>]`, where`rate`is the specified PackMimeHTTP connection rate`$ns [new RandomVariable/PackMimeHTTPRspSize <rate>]`, where`rate`is the specified PackMimeHTTP connection rate`$ns [new RandomVariable/PackMimeHTTPPersistRspSize]``$ns [new RandomVariable/PackMimeHTTPPersistent <probability>]`, where`probability`is the probability that the connection is persistent`$ns [new RandomVariable/PackMimeHTTPNumPages <probability> <shape> <scale>]`, where`probability`is the probability that there is a single page in the connection and`shape`and`scale`are parameters to the Weibull distribution to determine the number of pages in the connection.`$ns [new RandomVariable/PackMimeHTTPSingleObjPages <probability>]`, where`probability`is the probability that there is a single object on the current page.`$ns [new RandomVariable/PackMimeHTTPObjsPerPage <shape> <scale>]`, where`shape`and`scale`are parameters to the Gamma distribution to determine the number of objects on a single page.`$ns [new RandomVariable/PackMimeHTTPTimeBtwnObjs]``$ns [new RandomVariable/PackMimeHTTPTimeBtwnPages]``$ns [new RandomVariable/PackMimeHTTPServerDelay <shape> <scale>]`, where`shape`and`scale`are paramters to the Weibull distribution to determine server delay.`$ns [RandomVariable/PackMimeHTTPXmit <rate> <type>]`, where`type`is 0 for client-side delays and 1 for server-side delays. Note: This random variable is only used in conjunction with DelayBox. It returns 1/2 of the actual delay because it is meant to be used with 2 DelayBox nodes, each of which should delay the packets for 1/2 of the actual delay.

Tom Henderson 2011-11-05