Content deleted Content added
Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5) (Whoop whoop pull up - 16638 |
|||
(44 intermediate revisions by 21 users not shown) | |||
Line 1:
'''Robust random early detection''' ('''RRED''') is a queueing discipline for a [[network scheduler]]. The existing
[http://sites.google.com/site/cwzhangres/home/posts/recentpublicationsinactivequeuemanagementaqmschemes Recent Publications in Active Queue Management (AQM) schemes]▼
A detection and filter block is added in front of a regular RED block on a router. The basic idea behind the RRED is to detect and filter out LDoS attack packets from incoming flows before they feed to the RED algorithm. How to distinguish an attacking packet from normal TCP packets is critical in the RRED design.
Within a benign TCP flow, the sender will delay sending new packets if loss is detected (e.g., a packet is dropped). Consequently, a packet is suspected to be an attacking packet if it is sent within a short-range after a packet is dropped. This is the basic idea of the detection algorithm of Robust RED (RRED).<ref name="RRED"/>
▲===The Design of Roust RED (RRED)===
▲A detection and filter block is added in front of a regular RED block on a router. The basic idea behind the RRED is to detect and filter out LDoS attack packets from incoming flows before they feed to the RED algorithm. How to distinguish an attacking packet from normal TCP packets is critical in the RRED design. [http://sites.google.com/site/cwzhangres/home/files/RREDRobustREDAlgorithmtoCounterLow-rateDenial-of-ServiceAttacks.pdf?attredirects=0 More Details]
'''algorithm''' RRED-ENQUE(pkt)▼
05 '''else'''
11 T2 ← pkt.arrivaltime
12 '''else'''
*''f.T1'' is the arrival time of the last packet from flow ''f'' that is dropped by the detection and filter block.
▲===Pseudo codes of the Roust RED (RRED) algorithm===
*''T2'' is the arrival time of the last packet from any flow that is dropped by the [[random early detection]] (RED) block.
*''Tmax = max(f.T1, T2)''.
▲RRED-ENQUE(pkt)
*''T*'' is a short time period, which is empirically chosen to be 10 ms in a default RRED algorithm.<ref name="RRED"/>
==The simulation code of the Robust RED (RRED)==
▲01 f←RRED-FLOWHASH(pkt)
The simulation code of the RRED algorithm is published as an [[active queue management]] and [[denial-of-service attack]] (AQM&DoS) simulation platform. The [http://sites.google.com/site/cwzhangres/home/posts/aqmdossimulationplatform AQM&DoS Simulation Platform] is able to simulate a variety of DoS attacks (Distributed DoS, Spoofing DoS, Low-rate DoS, etc.) and active queue management (AQM) algorithms ([[random early detection|RED]], RRED, SFB, etc.). It automatically calculates and records the average throughput of normal TCP flows before and after DoS attacks to facilitate the analysis of the impact of DoS attacks on normal TCP flows and AQM algorithms.
==References==▼
{{reflist}}▼
==External links==
▲02 Tmax←MAX(Flow[f].T1, T2)
*[http://sites.google.com/site/cwzhangres/home/posts/aqmdossimulationplatform AQM&DoS Simulation Platform]
*[http://sites.google.com/site/cwzhangres/home/posts/recentpublicationsinlow-ratedosattacks Recent Publications in Low-rate Denial-of-Service (LDoS) attacks ]
*[http://sites.google.com/site/cwzhangres/home/posts/recentpublicationsinrandomearlydetectionredschemes Recent Publications in Random Early Detection (RED) schemes] {{Webarchive|url=https://web.archive.org/web/20160917055738/http://sites.google.com/site/cwzhangres/home/posts/recentpublicationsinrandomearlydetectionredschemes |date=2016-09-17 }}
▲*[http://sites.google.com/site/cwzhangres/home/posts/recentpublicationsinactivequeuemanagementaqmschemes Recent Publications in Active Queue Management (AQM) schemes]
{{DEFAULTSORT:Random Early Detection}}
▲03 if pkt.arrivaltime [Tmax, Tmax+T*] then
[[Category:Network performance]]
[[Category:Packets (information technology)]]
▲04 reduce local indicator by 1 for each bin corresponding to f
[[Category:Denial-of-service attacks]]
[[Category:Computer network security]]
▲06 increase local indicator by 1 for each bin of f
▲07 Flow[f].I←maximum of local indicators from bins of f
▲08 if Flow[f].I >=0 then
▲09 RED-ENQUE(pkt) //pass pkt to the RED block
▲10 if RED drops pkt then
▲13 Flow[f].T1←pkt.arrivaltime
▲14 drop(pkt)
▲15 return
▲==References==
▲{{reflist}}
|