NetEm - Network Emulator


   tc qdisc ... dev DEVICE ] add netem OPTIONS


   LIMIT := limit packets

          [ distribution { uniform | normal | pareto |  paretonormal } ]

   LOSS := loss { random PERCENT [ CORRELATION ]  |
                  state p13 [ p31 [ p32 [ p23 [ p14]]]] |
                  gemodel p [ r [ 1-h [ 1-k ]]] }  [ ecn ]






   NetEm is an enhancement of the Linux traffic  control  facilities  that
   allow   to   add   delay,  packet  loss,  duplication  and  more  other
   characteristics to packets outgoing from a selected network  interface.
   NetEm  is  built  using  the  existing  Quality  Of  Service  (QOS) and
   Differentiated Services (diffserv) facilities in the Linux kernel.


   netem has the following options:

   limit packets
   limits the effect of selected options to the indicated number  of  next

   adds  the  chosen  delay  to  the  packets  outgoing  to chosen network
   interface.  The  optional  parameters  allows  to  introduce  a   delay
   variation  and a correlation.  Delay and jitter values are expressed in
   ms while correlation is percentage.

   allow the user to choose the delay distribution. If not specified,  the
   default distribution is Normal. Additional parameters allow to consider
   situations in which network has variable delays  depending  on  traffic
   flows  concurring on the same path, that causes several delay peaks and
   a tail.

   loss random
   adds an independent loss probability to the packets outgoing  from  the
   chosen network interface. It is also possible to add a correlation, but
   this option is now deprecated due to the noticed bad behavior.

   loss state
   adds packet losses according to the 4-state Markov using the transition
   probabilities  as  input parameters. The parameter p13 is mandatory and
   if  used  alone  corresponds  to  the  Bernoulli  model.  The  optional
   parameters  allows  to  extend the model to 2-state (p31), 3-state (p23
   and p32) and 4-state (p14).  State 1  corresponds  to  good  reception,
   State  4  to independent losses, State 3 to burst losses and State 2 to
   good reception within a burst.

   loss gemodel
   adds packet losses according to the Gilbert-Elliot loss  model  or  its
   special  cases  (Gilbert,  Simple  Gilbert  and  Bernoulli). To use the
   Bernoulli model, the only needed parameter is p while the  others  will
   be  set  to  the  default values r=1-p, 1-h=1 and 1-k=0. The parameters
   needed for the Simple Gilbert model are two  (p  and  r),  while  three
   parameters (p, r, 1-h) are needed for the Gilbert model and four (p, r,
   1-h and 1-k) are needed for the Gilbert-Elliot model. As known, p and r
   are  the  transition probabilities between the bad and the good states,
   1-h is the loss probability in the  bad  state  and  1-k  is  the  loss
   probability in the good state.

   can be used optionally to mark packets instead of dropping them. A loss
   model has to be used for this to be enabled.

   allows the emulation of random noise introducing an error in  a  random
   position  for a chosen percent of packets. It is also possible to add a
   correlation through the proper parameter.

   using this option the chosen percent of packets  is  duplicated  before
   queuing  them.  It  is  also  possible to add a correlation through the
   proper parameter.

   to use reordering, a delay option must be specified. There are two ways
   to use this option (assuming 'delay 10ms' in the options list).

   reorder 25% 50% gap 5
   in  this  first  example,  the first 4 (gap - 1) packets are delayed by
   10ms and subsequent packets are sent immediately with a probability  of
   0.25  (with correlation of 50% ) or delayed with a probability of 0.75.
   After a packet is reordered, the  process  restarts  i.e.  the  next  4
   packets  are  delayed  and  subsequent  packets are sent immediately or
   delayed based on reordering probability. To cause a repeatable  pattern
   where  every 5th packet is reordered reliably, a reorder probability of
   100% can be used.

   reorder 25% 50%
   in this second example  25%  of  packets  are  sent  immediately  (with
   correlation of 50%) while the others are delayed by 10 ms.

   delay  packets based on packet size and is a replacement for TBF.  Rate
   can  be  specified   in   common   units   (e.g.   100kbit).   Optional
   PACKETOVERHEAD  (in  bytes)  specify  an per packet overhead and can be
   negative. A positive value can be  used  to  simulate  additional  link
   layer  headers.  A  negative  value can be used to artificial strip the
   Ethernet  header  (e.g.  -14)  and/or  simulate  a  link  layer  header
   compression  scheme.  The third parameter - an unsigned value - specify
   the cellsize. Cellsize can be used to simulate link layer schemes.  ATM
   for  example  has  an  payload cellsize of 48 bytes and 5 byte per cell
   header. If a packet is 50 byte then ATM must use  two  cells:  2  *  48
   bytes payload including 2 * 5 byte header, thus consume 106 byte on the
   wire. The last optional value CELLOVERHEAD can be used to  specify  per
   cell  overhead  - for our ATM example 5.  CELLOVERHEAD can be negative,
   but use negative values with caution.

   Note that rate throttling is limited by  several  factors:  the  kernel
   clock  granularity  avoid  a  perfect shaping at a specific level. This
   will show up in an  artificial  packet  compression  (bursts).  Another
   influence  factor  are  network  adapter  buffers  which  can  also add
   artificial delay.


   The main known limitation of Netem are related  to  timer  granularity,
   since Linux is not a real-time operating system.


   tc qdisc add dev eth0 root netem rate 5kbit 20 100 5
       delay  all  outgoing packets on device eth0 with a rate of 5kbit, a
       per packet overhead of 20 byte, a cellsize of 100 byte  and  a  per
       celloverhead of 5 byte:


    1. Hemminger   S.  ,  "Network  Emulation  with  NetEm",  Open  Source
       Development    Lab,    April    2005    (http://devresources.linux-

    2. Netem          page          from         Linux         foundation,

    3. Salsano S., Ludovici F., Ordine A., "Definition of  a  general  and
       intuitive  loss model for packet networks and its implementation in
       the   Netem   module   in   the   Linux   kernel",   available   at


   tc(8), tc-tbf(8)


   Netem was written by Stephen Hemminger at Linux foundation and is based
   on NISTnet.  This manpage was created by Fabio Ludovici <fabio.ludovici
   at yahoo dot it> and Hagen Paul Pfeifer <>


Personal Opportunity - Free software gives you access to billions of dollars of software at no cost. Use this software for your business, personal use or to develop a profitable skill. Access to source code provides access to a level of capabilities/information that companies protect though copyrights. Open source is a core component of the Internet and it is available to you. Leverage the billions of dollars in resources and capabilities to build a career, establish a business or change the world. The potential is endless for those who understand the opportunity.

Business Opportunity - Goldman Sachs, IBM and countless large corporations are leveraging open source to reduce costs, develop products and increase their bottom lines. Learn what these companies know about open source and how open source can give you the advantage.

Free Software

Free Software provides computer programs and capabilities at no cost but more importantly, it provides the freedom to run, edit, contribute to, and share the software. The importance of free software is a matter of access, not price. Software at no cost is a benefit but ownership rights to the software and source code is far more significant.

Free Office Software - The Libre Office suite provides top desktop productivity tools for free. This includes, a word processor, spreadsheet, presentation engine, drawing and flowcharting, database and math applications. Libre Office is available for Linux or Windows.

Free Books

The Free Books Library is a collection of thousands of the most popular public domain books in an online readable format. The collection includes great classical literature and more recent works where the U.S. copyright has expired. These books are yours to read and use without restrictions.

Source Code - Want to change a program or know how it works? Open Source provides the source code for its programs so that anyone can use, modify or learn how to write those programs themselves. Visit the GNU source code repositories to download the source.


Study at Harvard, Stanford or MIT - Open edX provides free online courses from Harvard, MIT, Columbia, UC Berkeley and other top Universities. Hundreds of courses for almost all major subjects and course levels. Open edx also offers some paid courses and selected certifications.

Linux Manual Pages - A man or manual page is a form of software documentation found on Linux/Unix operating systems. Topics covered include computer programs (including library and system calls), formal standards and conventions, and even abstract concepts.