Version 16 (modified by Ben Newton, 9 years ago) (diff)


Details of Tmix

Tmix generates realistic TCP traffic by "replaying" a TCP/IP header trace collected from a real link. This page will give more details on Tmix, and how it generates traffic.

The a-b-t Model

A TCP/IP header trace is obtained from a real-world link, and is then "reverse compiled" into a higher-level representation. For every TCP/IP connection in the trace a connection vector is generated. The connection vector represents an entire single connection between "a", the connection initiator, and "b", the connection acceptor. The connection vector also stores the start time "T" of the connection.

Rather than modeling the individual packets or TCP segments, Tmix instead uses inferences to characterize connections as a sequence of request-response exchanges between "a" and "b". Each request or response transfers one application-data unit (ADU), which is a generic term for the object or protocol element being transferred. Further, each exchange (request then response) is called an epoch, and includes the sizes of the ADUs transferred, and the requester side "think" or processing time, "t".

More formally, a simulation would consist of a set of n connection vectors C1...n, starting at times T1...n. Each connection vector includes a set of k epochs, Ci=<E1,E2,..., Ek>, where each epoch is defined by Ei = (ai,bi,ti). Each epoch includes ai, the size of the i th ADU sent from the connection initiator to the connection acceptor, bi, the size of the i th ADU sent from the connection acceptor to the connection initiator, and ti, the "think" or processing time between the receipt of the i th "response" ADU and the transmission of the (i+1)st "request". Note that Tmix does not require the any information from application layer headers.

Workload Generation