Upload
russell-mason
View
212
Download
0
Tags:
Embed Size (px)
Citation preview
A Static Data Structure for Discrete Advance Bandwidth Reservations on the Internet
Andrej Brodnik
Andreas Nilsson
CSEE Luleå University of Technology
Introduction• Differentiated services
• Quality of service (QoS)
• Bandwidth brokers
Bandwidth brokers• Manages the bandwidth reservations on one
link
N etw o rk 1 N e tw o rk 2
B an d w id th b ro k e r
Interaction between bandwidth brokers
• Usually the route between two computers consists of several links
• Entire route has to be reserved
B an d w id th b ro k e r
N e tw o rk 4
B an d w id th b ro k e r
N e tw o rk 3
B an d w id th b ro k e r
N e tw o rk 1 N e tw o rk 2
B an d w id th b ro k e r
N e tw o rk 5
Definitions
• A reservation R is a time interval during which constant amount of bandwidth B is allocated throughout the entire interval I
• In the data structure D we use slotted time, that is fixed granularity g to gain aggregation
• Bounded universe, maximum interval size |M| has the interval of the root M
Operations
• Insert(D,R) increases the reserved bandwidth during the interval I for B
• Delete(D,R) decreases the reserved bandwidth during the interval I for B
• MaxReserved(D,I) returns the maximum reserved bandwidth during the interval I
Advanced Segment Tree (AST)
• Modified segment tree• The tree is static, i.e. it is
– only built once, and in advance, no nodes are added or deleted and therefore the tree is always perfectly balanced
• All nodes on a level l – have the same number of children– represents a time interval– cover intervals of the same size– have intervals that mutually don't intersect– have intervals which’s union is M– have an interval that is contained within one interval on
level l’, where l’<l
Nodes in the AST
• Each node n– has a pointer to each child– has a value nv – the amount of bandwidth
reserved exactly the interval covered by n– has a value mv – the maximum amount of
bandwidth reserved on the interval covered by n
Tim e
n o d e v a lu e = 0m ax v a lu e = = 2 2 0m a x(0 + 3 0 ,2 0 + 2 0 0 )
n o d e v a lu e = 6 0m ax v a lu e = 9 0
9 00
00
00
00
00
3 00
2 0 00
n o d e v a lu e = 0m ax v a lu e = 3 0
n o d e v a lu e = 2 0m ax v a lu e = 2 0 0
n o d e v a lu e = 1 0m ax v a lu e = = 2 5 0m a x(5 0 + 2 0 0 ,0 + 2 2 0 )
n o d e v a lu e = 5 0m ax v a lu e = = 2 0 0m a x(6 0 + 9 0 ,1 2 0 + 8 0 )
n o d e v a lu e = 1 2 0m ax v a lu e = 8 0
8 00
Nodes and their values
Insert(D,R)
nOspace
nOtime
log
5 0RB =
Tim e
n v = 1 0m v = = 3 0 0m a x(1 00 + 2 0 0 ,0 + 2 2 0 )
n v = 5 0 +m v = = 2 0 0
50m a x(6 0+ 90 ,1 2 0 + 8 0 )
n v = 0m v = = 2 2 0m a x(5 0+ 30 ,2 0 + 2 0 0 )
n v = 6 0m v = 9 0
n v = 1 2 0m v = 8 0
n v = 9 0m v = 0
0 +0
5000
00
00
3 00
2 0 00
8 00
n v = 0 +m v = 3 0
50 n v = 2 0m v = 2 0 0
MaxReserved(D,I)
QI
nOspace
nOtime
log
QI
Tim e
n v = 1 0m v = 3 0 0
n v = 1 0 0m v = 2 0 0
n v = 0m v = 8 0
n v = 6 0m v = 9 0
t0
t1
t2
t3
t 4 t5 t6 8t
M ax R ese rv ed = 0 + M ax R ese rv ed (t ,t ))= 0 + 8 0 = 8 0
M ax R ese rv ed = 5 0 + (3 0 + 0 )= 8 0
M ax R ese rv ed = 1 0 + m ax (1 0 0 + 2 0 0 , M ax R ese rv ed (t ,t ))= 1 0 + m ax (3 0 0 ,8 0 )= 1 0 + 3 0 0 = 3 1 054
54
t7
n v = 1 2 0m v = 8 0
n v = 9 0m v = 0
5 00
00
00
00
3 00
2 0 00
8 00
n v = 2 0m v = 2 0 0
n v = 5 0m v = 3 0
Implicit data structure
LlX
ll
j
j
ii
l 11
11
2
1
1
3 l
L
l+1
1
x
x
l
nOspace
nOtime
log
Implicit data structuren v = 1 0m v = 2 5 0
n v = 5 0m v = 2 0 0
n v = 0m v = 2 2 0
n v = 6 0m v = 9 0
n v = 1 2 0m v = 8 0
n v = 0m v = 3 0
n v = 2 0m v = 2 0 0
n v = 9 0m v = 0
n v = 0m v = 0
n v = 8 0m v = 0
n v = 0m v = 0
n v = 3 0m v = 0
n v = 0m v = 0
n v = 0m v = 0
n v = 2 0m v = 2 0 0
n v = 0m v = 0
n v = 0m v = 0
n v = 2 0m v = 2 0 0
n v = 1 0m v = 2 5 0
n v = 5 0m v = 2 0 0
n v = 0m v = 2 2 0
n v = 6 0m v = 9 0
n v = 1 2 0m v = 8 0
n v = 0m v = 3 0
n v = 2 0m v = 2 0 0
n v = 9 0m v = 0
n v = 0m v = 0
n v = 8 0m v = 0
n v = 0m v = 0
n v = 3 0m v = 0
Conclusions
• Easily implemented as an implicit data structure
• AST is generic solution• Worst case time complexity for all
operations is O(log n) (where n is the number of leaves)
• The solution is used in the real world
Time for questions
[email protected]@sm.luth.se
http://www.sm.luth.se/~andreas/publications/
Thank you