wiki:TmixDetails

Version 10 (modified by Ben Newton, 12 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. 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, each including 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 ith ADU sent from the connection initiator to the connection acceptor, bi, the size of the ith ADU sent from the connection acceptor to the connection initiator, and ti, the "think" or processing time between the receipt of the ith "response" ADU and the transmission of the (i+1)st "request".

Note that Tmix does not require any knowledge about what the application layer, or application layer headers.

Note that the data units used in this model are not packets or TCP segments, but rather objects or protocol elements.