SRED: Stabilized RED
description
Transcript of SRED: Stabilized RED
SRED: Stabilized RED
T. Ott, T.V. Lakshman, L. Wong
Presented by
King-Shan Lui
Diff. With RED
• SRED estimates number of active flows
• Misbehaving flows can be identified without keeping per-flow state
• Drop probabilities are adjusted according to number of active flows
• No computation of average queue length
• Assume TCP flows
Main Idea
• Number of active flows number of different flows in the buffer
• A misbehaving flow has a lot of packets in the buffer
• When a packet arrives, compare it with a packet arrived before. If they belong to the same flow, a hit occurs.
Zombie List
• A list of M recently seen flows, zombies
• Longer memory than the buffer alone
• Information for each zombie: – Count: number of packets of this zombie
received– timestamp: arrival time of the most recently
received packet
Zombie List Operations
• Zombie list is not full– Insert the flow with count = 0, timestamp = ta
• Zombie list is full– Randomly pick a zombie
• Hit: count += 1, timestamp = ta
• No hit: with prob. p that the zombie is replaced
• The arrived packet may be dropped no matter there was a hit or not
Hits & Number of Active Flows
• Zombie list loses memory once every M/p packets
• Few active flows more hits
• Misbehaving flows cause more hits than well-behaved flows
Hit Frequency
• P(t) – hit frequency around the time of the tth packet arrives at the buffer
• Hit(t) = 1 when hit; Hit(t) = 0, otherwise
• P(t) = (1 – )P(t – 1) + *Hit(t)
• Proposition: P(t)-1 is a good estimate for the effective number of active flows
Proposition Argument
• P(arrival packet belongs to flow i) = i
• P(Hit(t)=1) = i2
• 1/N i2 1
• Symmetric case: N flows, i = 1/N
– P(t) = 1/N (exact estimate)
• Asymmetric case: infinite flows, i = 2-i
– P(t) = 3/16 (effective number of active flows)
Simple Stabilized RED
• Target buffer occupation – QTarget buffer occupation – Q00
• Set a drop probability – pSet a drop probability – p
• Square root law: congestion window of each flow, cwnd p-1/2
• Sum of N congestion windows – N * p-1/2
• Q0 = N*p-1/2 p = (N/Q0)2
• p is proportional to N2
• Buffer capacity – B
• Current buffer size – q
• pzap = psred(q) *
• psred(q) = pmax if 1/3*B q < B
= ¼ * pmax if 1/6*B q < 1/3*B
= 0 if 0 q < 1/6*B
Simple Stablized RED (cont.)
2(256*P(t))
11,min
psred(q)
• Depends on current q, not history of q
• Three levels psred
q
pmax
B
1
B3
1B
6
1
• Ratio 4: halving the
congestion windows
pzap
• When number of flows 256
pzap ~ psred/65356 * (number of flows)2
• When number of flows > 256
pzap = psred
• Avoid pzap becomes too large
• pzap depends on q and P(t)
Full SRED
)(
)(1**
tP
tHit
(256*P(t))
11,minpp
2sredzap
Increase the drop probabilities of
misbehaving flows
Simulation Results
Simulation Results
• SRED stablilizes the buffer occupancy when N 256 as q is independent of N
• q increases slightly when N = 1000
• Buffer occupation almost never decreases below B/6– could narrow the band where psred(q) = pmax/4
Contributions
• SRED provides a mechanism to estimate number of active flows and identify misbehaving flows
• SRED controls buffer occupancy by adjusting drop probabilities using estimated number of active flows
Remaining Issues
• Many parameters to be tuned: psred, pmax, , M, p, magic 256.
• Extra storage: Zombie list vs. per-flow state– M ~ 1000 > 256