packet implementation: discretization
DESCRIPTION
Packet implementation: discretization. Rates Control:. or. Packet implementation: discretization. ECN based price control:. Link:. Source:. Shift-register to save the last N ECN bits. Equilibrium:. Window dynamics:. Packet implementation: Source Side. - PowerPoint PPT PresentationTRANSCRIPT
Packet implementation: discretization
1( ) ( ) 0
( )1
( ) ( ) 0
y C if p tCp t
y C if p tC
'( ) ( ( )) ( )t K U x t q t
( )( )
( )q t
Mmx t X e
1( ) log( )U x K x
Rates Control:
1 ( )( ) ( 1)
( ) s
K q kk k K T
x k
( )( ) exp ( )m
q kx k W k
M
VirtualQueue
VirtualCapacityp
( )( ) ( 1) 1 , 0s
y kp k p k T
C
or
Window dynamics:
1
( )( ) ( ) ( )
Kq tx t KK x t q t
M
Packet implementation: discretization
Equilibrium:
0 ,( )
Cx
N of sources
1
00
,K
qx
01 p0Prob
ECN based price control:Link:
-pMarkingProb=1-
Source: Shift-register to save the last N ECN bits
MarkedFractionProb ,
N
log(1-Prob)Price=-
log(Φ)
1
Every seconds:
* * ;
**exp ;
*
On each ACK arrival:
Estimate using last N ACKs
log(1
m
intInterval
K estPriceK intInterval
expWnd baseRTT
estPriceexpWnd W
M baseRTT
estProb
estPrestPrice
);
log( )
exp ;
ob
CWnd Wnd
Packet implementation: Source Side
Variables:
state variable
: estimated price from the marking probability
: expected congestion window
Parameters:
: stability element; 0.37
: constant, 1~10
: constant, 100
:from utility1
:
estPrice
expWnd
K
K
function
: integral period1K log(x)
intInterval
Every packet enque:
++;
Every seconds:
;
r 1 * ;
1
0
Every packet de
price
pktCounter
updInterval
pktCounteraveInput
updInterval
aveInputp ice price updInterval
virtCap
prob
pktCounter
que:
uniform();
if marking the packet
temp
temp prob
Packet implementation: Link Side
Variables:
Parameters:
: constant, 100
: Virtual Capacity,
: constant,0.95
: update Interval
price, prob, pktCounter
virtCap
* Capacity (pkts/sec)
updInterval
Ns Simulation: two-way, long-lived traffic
2Gbps, delay=20ms
32 ftps
32 ftps
64ftps
128 ftps
256 ftps
32 ftps
32 ftps
64ftps
128 ftps
256 ftps
Duplex linkstd1 td1
td2
td3td4
td5
td2td3td4
td5
td_i=(i-1)*10ms
2^6, 2^6, 2^7,2^8,2^9 sources started at 0, 20, 40, 60, 80 secondsRTTs 40, 80,120,160, 200ms,link capacity 2Gbps (250pkts/ms)
Scenario:
Ns Simulation: two-way, long-lived traffic
MarkingProb
Utilization
EstimatedProb
Queue
Cwnds
Rates
(pkts)
(pkts/sec)
Parameters: 100, EWnd=31, 0.37, =0.95 i
New Protocol
0 20 40 60 80 100 120 140 160 180 2000
100
200
300
400
500
0 20 40 60 80 100 120 140 160 180 2000
500
1000
1500
2000
0 20 40 60 80 100 120 140 160 180 2000
0.5
1
0 20 40 60 80 100 120 140 160 180 2000
100
200
300
400
500
0 20 40 60 80 100 120 140 160 180 2000
500
1000
1500
2000
0 20 40 60 80 100 120 140 160 180 2000
0.5
1
NewReno/RED NewReno/AdaptiveRED
Utilization
Queue
Cwnds
(pkts)
Utilization
Queue
Cwnds
(pkts)
Ns Simulation: two-way, long-lived traffic
Paremeters: Thresh_ 100, maxthresh_ 2500
0 20 40 60 80 100 120 140 160 180 2000
100
200
300
400
500
0 20 40 60 80 100 120 140 160 180 2000
500
1000
1500
2000
0 20 40 60 80 100 120 140 160 180 2000
0.5
1
0 20 40 60 80 100 120 140 160 180 2000
100
200
300
400
500
0 20 40 60 80 100 120 140 160 180 2000
500
1000
1500
2000
0 20 40 60 80 100 120 140 160 180 2000
0.5
1
NewReno/VQ
Utilization
Queue
Cwnds
(pkts)
Utilization
Queue
Cwnds
(pkts)
NewReno/PI
Ns Simulation: two-way, long-lived traffic
Paremeters: qref_=100
Ns Simulation: small marking Prob
MarkingProb
Utilization
EstimatedProb
Queue
Cwnds
Rates
(pkts)
(pkts/sec)
Parameters: 1.65, EWnd=31, 0.37, =0.95 i
New Protocol
2)()(
)2/()/)(log( 22
x
exf
mx
Power law
[ ] when , , 0P X x cx x c
[ ] when P X x c x x c
Pareto law
lognormal: log X normally distr., (q,s,m)
Ns Simulation: “heavy-tailed” traffic
Long/heavy-tailed distributions
Crovella data set, 36208 files
0 5 10 15 20 250
0.01
0.02
0.03
0.04
0.05
0.06
0.07
0.08
0 5 10 15 20 250
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0 5 10 15 20 25-16
-14
-12
-10
-8
-6
-4
-2
0
0 5 10 15 20 250
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Ns Simulation: “heavy-tailed” traffic
flow size(pkts, log2(x)) flow size(pkts, log2(x))
flow size(pkts, log2(x))flow size(pkts, log2(x))
Ex:
Pareto(100,1.0)
Count contribution of the flows
packet contribution of the flows
34078 flows
3.33e+7 pkts
Median size 200.5pkts
Prob(X<x)
Log2(Prob[X>x])
Pareto(scale,shape):
1( [2 , 2 ])
Totalpkts
n npkts x , 2
Totalpkts
nx x
0 10 20 30 40 50 60 70 80 90 1000
50
100rtt 100ms
0 10 20 30 40 50 60 70 80 90 1000
200
400
600
800
0 10 20 30 40 50 60 70 80 90 1000
0.5
1
0 10 20 30 40 50 60 70 80 90 1000
0.5
1
1.5
0 5 10 15 20 25 300
0.2
0.4
0.6
0.8
1
0 5 10 15 20 25 300
0.2
0.4
0.6
0.8
1
33855 files
Marking Prob
Utilization
Queue
Cwnds
Scenario: 1024 sources started at [0,10] with RTT 100ms, link capacity 1Gbps (125pkts/ms)
Percentage of the sessions
Percentage of the packets
Flow size (log2(x))
Cumulative Distribution of the flows
Ns Simulation: “heavy-tailed” trafficNew Protocol
0 10 20 30 40 50 60 70 80 90 1000
100
200rtt 40msrtt 200msrtt 120ms
0 10 20 30 40 50 60 70 80 90 1000
200
400
600
800
0 10 20 30 40 50 60 70 80 90 1000
0.2
0.4
0 10 20 30 40 50 60 70 80 90 1000
0.5
1
1.5
0 5 10 15 20 25 300
0.2
0.4
0.6
0.8
1
0 5 10 15 20 25 300
0.2
0.4
0.6
0.8
1
Marking Prob
Utilization
Queue
Cwnds
(pkts)
Percentage of the sessions
Percentage of the packets
Flow size (log2(x))
Cumulative Distribution of the flows
Scenario: 2^6, 2^6, 2^7,2^8,2^9 sources started uniformly in [0,10] secs with RTTs 40, 80, 120,160, 200ms,link capacity 1Gbps (125pkts/ms)
Ns Simulation: “heavy-tailed” trafficNew Protocol
0 5 10 15 20 25 30 35 40 45 500
100
200
300
400
500rtt 120msrtt 200ms
0 5 10 15 20 25 30 35 40 45 500
500
1000
1500
0 5 10 15 20 25 30 35 40 45 500
0.5
1
0 5 10 15 20 25 30 35 40 45 500
100
200
300
400
500RTT 80msRTT 120ms
0 5 10 15 20 25 30 35 40 45 500
500
1000
1500
0 5 10 15 20 25 30 35 40 45 500
0.5
1
Utilization
Queue
Cwnds
(pkts)
Utilization
Queue
Cwnds
(pkts)
Ns Simulation: “heavy-tailed” traffic
NewReno/RED NewReno/AdaptiveRED
Paremeters: Thresh_ 100, maxthresh_ 2500
0 5 10 15 20 25 30 35 40 45 500
100
200
300
400
500
0 5 10 15 20 25 30 35 40 45 500
500
1000
1500
0 5 10 15 20 25 30 35 40 45 500
0.5
1
0 5 10 15 20 25 30 35 40 45 500
100
200
300
400
500
0 5 10 15 20 25 30 35 40 45 500
500
1000
1500
0 5 10 15 20 25 30 35 40 45 500
0.5
1
NewReno/VQ NewReno/PI
Utilization
Queue
Cwnds
(pkts)
Utilization
Queue
Cwnds
(pkts)
Ns Simulation: “heavy-tailed” traffic
Packet implementation: tricks ?
Noise and additional delaySimplification:
1 ( ) ( 1)sKTq k q k
M M
1
1( ) ( 1) sW k W k KK T
1
( )( ) ( ) ( )
Kq tx t KK x t q t
M
W x
Window management
Price estimation: log(1- ), =-
log( )
Marks ProbProb Price
N
Pacing output
Capping the change of the cwnd
Penalizing the real queue above a threshold
Smoothing the average arrival rate of the queue
Conclusion:
Equation-based implementation has the desirable performance.
--scalable stable, fair, high utilization, small queue
--especially for the high bandwidth links
Price feedback and estimation is the main obstacle.
Improvement may be made to be more efficient.
To be done...
-- packet-drop and timeout
-- optimal parameter set
-- new price estimation and transmission scheme
-- more practical implementation
Packet implementation: Source Side
Every seconds:
1 * * ;
1;
;
On each ACK arrival with :
update , estimation window
intInterval
a estPrice b oldPrice
expWnd expWnd c
oldPrice estPrice
newEcn
oldEcn
ecnBits ecnBits+newEcn - oldEcn
estPrice It
[ ];
exp ;
Variables:
: estimated price from the marking probability
: expected congestion window
emPrice ecnBits
CWnd Wnd
estPrice
expWnd
Parameters:
: stability element; 0.37
: constant, 1~10
:from utility function ,50
: constant, 100
:the size of the estimation window
: integral period
*a:constant,
1 1
K
K K log(x)
N
intInterval
K intInterval
baseRT
1
*
: constant, *
: constant, * *
log(1 )ItemPrice[i] : constant, - , 1...
log( )
T M baseRTT
bM baseRTT
c K K intInterval
iN i N
Ns Simulation: “heavy-tail” traffic