mirror of
				https://git.proxmox.com/git/mirror_iproute2
				synced 2025-11-03 14:14:16 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			161 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			161 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
.TH RED 8 "13 December 2001" "iproute2" "Linux"
 | 
						|
.SH NAME
 | 
						|
red \- Random Early Detection
 | 
						|
.SH SYNOPSIS
 | 
						|
.B tc qdisc ... red
 | 
						|
.B limit
 | 
						|
bytes
 | 
						|
.B [ min
 | 
						|
bytes
 | 
						|
.B ] [ max
 | 
						|
bytes
 | 
						|
.B ] avpkt
 | 
						|
bytes
 | 
						|
.B [ burst
 | 
						|
packets
 | 
						|
.B ] [ ecn ] [ harddrop] [ bandwidth
 | 
						|
rate
 | 
						|
.B ] [ probability
 | 
						|
chance
 | 
						|
.B ] [ adaptive ]
 | 
						|
 | 
						|
.SH DESCRIPTION
 | 
						|
Random Early Detection is a classless qdisc which manages its queue size
 | 
						|
smartly. Regular queues simply drop packets from the tail when they are
 | 
						|
full, which may not be the optimal behaviour. RED also performs tail drop,
 | 
						|
but does so in a more gradual way.
 | 
						|
 | 
						|
Once the queue hits a certain average length, packets enqueued have a
 | 
						|
configurable chance of being marked (which may mean dropped). This chance
 | 
						|
increases linearly up to a point called the
 | 
						|
.B max
 | 
						|
average queue length, although the queue might get bigger.
 | 
						|
 | 
						|
This has a host of benefits over simple taildrop, while not being processor
 | 
						|
intensive. It prevents synchronous retransmits after a burst in traffic,
 | 
						|
which cause further retransmits, etc.
 | 
						|
 | 
						|
The goal is to have a small queue size, which is good for interactivity
 | 
						|
while not disturbing TCP/IP traffic with too many sudden drops after a burst
 | 
						|
of traffic.
 | 
						|
 | 
						|
Depending on if ECN is configured, marking either means dropping or
 | 
						|
purely marking a packet as overlimit.
 | 
						|
.SH ALGORITHM
 | 
						|
The average queue size is used for determining the marking
 | 
						|
probability. This is calculated using an Exponential Weighted Moving
 | 
						|
Average, which can be more or less sensitive to bursts.
 | 
						|
 | 
						|
When the average queue size is below
 | 
						|
.B min
 | 
						|
bytes, no packet will ever be marked. When it exceeds
 | 
						|
.B min,
 | 
						|
the probability of doing so climbs linearly up
 | 
						|
to
 | 
						|
.B probability,
 | 
						|
until the average queue size hits
 | 
						|
.B max
 | 
						|
bytes. Because
 | 
						|
.B probability
 | 
						|
is normally not set to 100%, the queue size might
 | 
						|
conceivably rise above
 | 
						|
.B max
 | 
						|
bytes, so the
 | 
						|
.B limit
 | 
						|
parameter is provided to set a hard maximum for the size of the queue.
 | 
						|
 | 
						|
.SH PARAMETERS
 | 
						|
.TP
 | 
						|
min
 | 
						|
Average queue size at which marking becomes a possibility. Defaults to
 | 
						|
.B max
 | 
						|
/3
 | 
						|
 | 
						|
.TP
 | 
						|
max
 | 
						|
At this average queue size, the marking probability is maximal. Should be at
 | 
						|
least twice
 | 
						|
.B min
 | 
						|
to prevent synchronous retransmits, higher for low
 | 
						|
.B min.
 | 
						|
Default to
 | 
						|
.B limit
 | 
						|
/4
 | 
						|
.TP
 | 
						|
probability
 | 
						|
Maximum probability for marking, specified as a floating point
 | 
						|
number from 0.0 to 1.0. Suggested values are 0.01 or 0.02 (1 or 2%,
 | 
						|
respectively). Default : 0.02
 | 
						|
.TP
 | 
						|
limit
 | 
						|
Hard limit on the real (not average) queue size in bytes. Further packets
 | 
						|
are dropped. Should be set higher than max+burst. It is advised to set this
 | 
						|
a few times higher than
 | 
						|
.B max.
 | 
						|
.TP
 | 
						|
burst
 | 
						|
Used for determining how fast the average queue size is influenced by the
 | 
						|
real queue size. Larger values make the calculation more sluggish, allowing
 | 
						|
longer bursts of traffic before marking starts. Real life experiments
 | 
						|
support the following guideline: (min+min+max)/(3*avpkt).
 | 
						|
.TP
 | 
						|
avpkt
 | 
						|
Specified in bytes. Used with burst to determine the time constant for
 | 
						|
average queue size calculations. 1000 is a good value.
 | 
						|
.TP
 | 
						|
bandwidth
 | 
						|
This rate is used for calculating the average queue size after some
 | 
						|
idle time. Should be set to the bandwidth of your interface. Does not mean
 | 
						|
that RED will shape for you! Optional. Default : 10Mbit
 | 
						|
.TP
 | 
						|
ecn
 | 
						|
As mentioned before, RED can either 'mark' or 'drop'. Explicit Congestion
 | 
						|
Notification allows RED to notify remote hosts that their rate exceeds the
 | 
						|
amount of bandwidth available. Non-ECN capable hosts can only be notified by
 | 
						|
dropping a packet. If this parameter is specified, packets which indicate
 | 
						|
that their hosts honor ECN will only be marked and not dropped, unless the
 | 
						|
queue size hits
 | 
						|
.B limit
 | 
						|
bytes. Recommended.
 | 
						|
.TP
 | 
						|
harddrop
 | 
						|
If average flow queue size is above
 | 
						|
.B max
 | 
						|
bytes, this parameter forces a drop instead of ecn marking.
 | 
						|
.TP
 | 
						|
adaptive
 | 
						|
(Added in linux-3.3) Sets RED in adaptive mode as described in http://icir.org/floyd/papers/adaptiveRed.pdf
 | 
						|
.nf
 | 
						|
Goal of Adaptive RED is to make 'probability' dynamic value between 1% and 50% to reach the target average queue :
 | 
						|
.B (max - min) / 2
 | 
						|
.fi
 | 
						|
 | 
						|
.SH EXAMPLE
 | 
						|
 | 
						|
.P
 | 
						|
# tc qdisc add dev eth0 parent 1:1 handle 10: red
 | 
						|
 limit 400000 min 30000 max 90000 avpkt 1000
 | 
						|
 burst 55 ecn adaptive bandwidth 10Mbit
 | 
						|
 | 
						|
.SH SEE ALSO
 | 
						|
.BR tc (8),
 | 
						|
.BR tc-choke (8)
 | 
						|
 | 
						|
.SH SOURCES
 | 
						|
.TP
 | 
						|
o
 | 
						|
Floyd, S., and Jacobson, V., Random Early Detection gateways for
 | 
						|
Congestion Avoidance. http://www.aciri.org/floyd/papers/red/red.html
 | 
						|
.TP
 | 
						|
o
 | 
						|
Some changes to the algorithm by Alexey N. Kuznetsov.
 | 
						|
.TP
 | 
						|
o
 | 
						|
Adaptive RED  : http://icir.org/floyd/papers/adaptiveRed.pdf
 | 
						|
 | 
						|
.SH AUTHORS
 | 
						|
Alexey N. Kuznetsov, <kuznet@ms2.inr.ac.ru>,  Alexey Makarenko
 | 
						|
<makar@phoenix.kharkov.ua>, J Hadi Salim <hadi@nortelnetworks.com>,
 | 
						|
Eric Dumazet <eric.dumazet@gmail.com>.
 | 
						|
This manpage maintained by bert hubert <ahu@ds9a.nl>
 |