NS by Example 笔记(13)Pareto On/Off

本文介绍了一种名为Pareto On/Off Traffic Generator的网络流量生成器,该生成器通过遵循Pareto分布来模拟突发和空闲期的网络流量。它能够生成具有长程依赖性的聚合流量,适用于模拟Web流量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Mini-HOWTO: Pareto On/Off Traffic Generator

 

描述 Description

 

Pareto(柏拉图) On/Off Traffic Generator (POO_Traffic) 是一种流量生成器traffic generator (一种应用程序) 包含在OTcl类Application/Traffic/Pareto。 POO_Traffic产生网络流量依照Pareto On/Off distribution。 数据包在闭合周期(on periods)内以固定的速率发送, 并且在间歇期间(off period)停止发包。 on和off periods由固定的数据包大小的Pareto distribution得到。 这些数据源可以用来产生聚集的呈现long range dependency的流量(aggregate traffic that exhibits long range dependency)。 详见NS manual.

 

 

 

实例 Usage Example

下面是建立一个新的Pareto On/Off traffic generator的代码:

        set p [new Application/Traffic/Pareto]
        $p set burst_time_ 500ms
        $p set idle_time_ 500ms
        $p set rate_ 200k
        $p set packetSize_ 210
        $p set shape_ 1.5

 


详细解释 Detailed Explanation
  1. 输入参数 Input parameters:
      burst_time_ : Mean On (burst) time
      idle_time_  : Mean Off (idle) time
      rate_       : Send rate during burst
      packetSize_ : Packet size (fixed application frame size)
      shape_      : Pareto shape parameter
      
  2. 起始计算 Initial computation:
      interval = packetSize_ * 8 / rate_
      burstlen = burst_time_ / interval (in packets of given packetSize_)
      
  3. 在每个On/Off round循环, 计算2个独立的(independent) Pareto random variables:
      next_burstlen  : # of packets to be transmitted in the next burst period
                       (ex: next Web object size in packets of given packetSize_)
      next_idle_time : next idle period length in seconds
                       (ex: next think time)
      
  4. Pareto Traffic Generator 算法:
     
    1. Compute next_burstlen given the mean burstlen and the Pareto shape_ parameter.
    2. Send all next_burstlen packets (each packet transmission interval is interval seconds).
    3. Compute the next_idle_time using the mean idle_time_ and the Pareto shape_ parameter.
    4. Go to sleep for next_idle_time and go back to step 1.
       
  5. Pareto Distribution 分布:

    In general, if X is a random variable from a Pareto distribution
    (let f be the pdf, and E be the expected value)

    f(x) = a *ba / xa + 1 for xb

    E(X) = b *a / (a − 1) if a > 1

    where, a is called the Pareto "shape parameter" (shape_) and b is called the Pareto "scale parameter".

  6. How Pareto is used in the Pareto Traffic Generator:
    (The Pareto shape_ parameter is denoted as a in the following equations.)

    burstlen    = E(X) = b1 *a / (a − 1)
    idle_time_ = E(Y) = b2 *a / (a − 1)

    Therefore:

    b1 = burstlen * (a − 1) / a
    b2 = idle_time_ * (a − 1) / a

    NS has a Pareto random number generator that takes the scale and shape parameter:

     

          double pareto(double scale, double shape)
      
    When the Pareto traffic generator needs to compute next_burstlen, it does:
          int next_burstlen = int(pareto(b1, a) + 0.5);
          /* next_burstlen should be at least 1 packet */
          if(next_burstlen == 0) next_burstlen = 1;
      
    When the Pareto traffic generator needs to compute next_idle_time, it does:
          double next_idle_time = pareto(b2, a);
      

Discussion

The Pareto traffic generator can be used as a Web traffic generator assuming that Web object sizes form a Pareto distribution. The NS default Pareto shape_ parameter (or a) is 1.5. However, it is uncertain if that 1.5 makes sense for Web object size distribution.

To find a reasonable Pareto shape_ parameter for Web object sizes, one should sample Web object sizes during transmissions (or borrow the results other research), draw the pdf of the samples and compute the mean object size (i.e., E(X)). Since E(X) can be computed from the collected data, the theoretical f(x) should be:

f(x) = g(x, a)

Then, one should be able to find a that makes the f(x) closest to the pdf of the measured Web object samples.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值