An Algorithm for Fitting MMPP to IP Traffic Traces

Abstract—A method for fitting very long IP traffic traces to a Markov Modulated Poisson

Process (MMPP) model is proposed in this paper. We compare our method to a previously

published technique using several 24 hour traces. Our method is useful when the traces are

very long and exhibit diurnal traffic changes.


Matlab Code

Save the trace file with the name packsPerSec in the same directory as the Matlab code.

packsPerSec is a text file with number of packets received per time unit in each line



This is an implementation of algorithm LAMBDA that was proposed in [1]. Once the MMPP

states are determined using algorithm LAMBDA, the code determines transition probability

matrix and then generates data using the transition probability matrix. Finally, it compares

generated data with trace data using quantile-quantile plot. The code is divided into 5 parts

(see comments in matlab code).

Part 1:  Determine MMPP states from the trace using algorithm LAMBDA.

Part 2:  Assign each sample in trace to the corresponding MMPP state and find state transition


Part 3:  Find state transition probability matrix and infinitesimal generator matrix (Q matrix) from

state transition matrix.

Part 4: Generate a MMPP state sample from Q-Matrix.

Part 5: Generate a packet trace from MMPP state sample.



This is an implementation of the algorithm that we proposed in this paper. This code is also

Divided into 5 parts and all parts are similar to Algorithm 1 except parts 1 and 2. In part 1,

algorithm LAMBDA is used only to generate the rates (not states). In part 2, data is divided into

state sets (regions that can be modeled using the same set of states). Then states are assigned

with rates that were determined using algorithm LAMBDA.  



This code takes two traces as input: one is original traffic trace and other is the trace generated

from MMPP model using one of the two program Algorithm1.m or NewAlgorithm.m. It uses the

fluid-flow simulation model to find the mean waiting time in queue. Packet arrivals to the queue

are determined using the two traces and service rate depends on the load which varies from

0.1 to 0.9 in the simulation.



This code uses the same fluid-flow simulation model as the code Meandelay.m but compares mean

packet loss rates for the two traces instead of mean delays.




[1].  Daniel P. Heyman and David Lucantoni, “Modeling Multiple IP Traffic Streams with Rate

Limits,” IEEE/ACM Transactions on Networking, Vol. 11, No. 6, pp. 948-958, December 2003.