ip-lookup and packet classification computational geometry, ws 2007/08 lecture 14 prof. dr. thomas...
Post on 21-Dec-2015
224 views
TRANSCRIPT
![Page 1: IP-Lookup and Packet Classification Computational Geometry, WS 2007/08 Lecture 14 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für](https://reader035.vdocuments.mx/reader035/viewer/2022062421/56649d625503460f94a44e96/html5/thumbnails/1.jpg)
IP-Lookup and Packet Classification
Computational Geometry, WS 2007/08Lecture 14
Prof. Dr. Thomas Ottmann
Algorithmen & Datenstrukturen, Institut für InformatikFakultät für Angewandte WissenschaftenAlbert-Ludwigs-Universität Freiburg
![Page 2: IP-Lookup and Packet Classification Computational Geometry, WS 2007/08 Lecture 14 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für](https://reader035.vdocuments.mx/reader035/viewer/2022062421/56649d625503460f94a44e96/html5/thumbnails/2.jpg)
Computational Geometry, WS 2007/08Prof. Dr. Thomas Ottmann 2
Overview
• The IP-Lookup problem
• Generalisations of IP-Lookup:
Dynamisation, conflict-free ranges
• Packet classification
• Category 1 solutions: Structure the universe
• Category 2 solutions: Structure the prefix set
• Priority Search Trees
![Page 3: IP-Lookup and Packet Classification Computational Geometry, WS 2007/08 Lecture 14 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für](https://reader035.vdocuments.mx/reader035/viewer/2022062421/56649d625503460f94a44e96/html5/thumbnails/3.jpg)
Computational Geometry, WS 2007/08Prof. Dr. Thomas Ottmann 3
Dstn Addr
--------
---- ----
--------
Dstn-prefix Next Hop
Forwarding Table
Forwarding EngineHEADER
Lookup in an IP Router
Next-Hop-Computation
![Page 4: IP-Lookup and Packet Classification Computational Geometry, WS 2007/08 Lecture 14 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für](https://reader035.vdocuments.mx/reader035/viewer/2022062421/56649d625503460f94a44e96/html5/thumbnails/4.jpg)
Computational Geometry, WS 2007/08Prof. Dr. Thomas Ottmann 4
0 224
232-1
128.9.0.0/16
65.0.0.0
142.12.0.0/19
65.0.0.0/8
65.255.255.255
Destination IP Prefix
Outgoing Port
(Next-Hop)
65.0.0.0/ 8 3
128.9.0.0/16 1
142.12.0.0/19 7
IP prefix: 0-32 bits
128.9.16.14
Example Forwarding Table
![Page 5: IP-Lookup and Packet Classification Computational Geometry, WS 2007/08 Lecture 14 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für](https://reader035.vdocuments.mx/reader035/viewer/2022062421/56649d625503460f94a44e96/html5/thumbnails/5.jpg)
Computational Geometry, WS 2007/08Prof. Dr. Thomas Ottmann 5
128.9.16.0/21128.9.172.0/21
128.9.176.0/24
0 232-1
128.9.0.0/16142.12.0.0/19
65.0.0.0/8
Nested intervalls
Sets of intervalls corresponding to sets of prefixes of IP-addressesare nested:Any two intervalls are either disjoint or one is contained in the other!
Overlaps are impossible!
![Page 6: IP-Lookup and Packet Classification Computational Geometry, WS 2007/08 Lecture 14 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für](https://reader035.vdocuments.mx/reader035/viewer/2022062421/56649d625503460f94a44e96/html5/thumbnails/6.jpg)
Computational Geometry, WS 2007/08Prof. Dr. Thomas Ottmann 6
128.9.16.0/21128.9.172.0/21
128.9.176.0/24
Routing lookup: Find the longest matching prefix (the most specific route) among all prefixes that match the destination address.
0 232-1
128.9.0.0/16142.12.0.0/19
65.0.0.0/8
128.9.16.14
LMP-Matching
![Page 7: IP-Lookup and Packet Classification Computational Geometry, WS 2007/08 Lecture 14 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für](https://reader035.vdocuments.mx/reader035/viewer/2022062421/56649d625503460f94a44e96/html5/thumbnails/7.jpg)
Computational Geometry, WS 2007/08Prof. Dr. Thomas Ottmann 7
Example of an IP-Lookup Table
Prefix Next-hop
P1 111* H1
P2 10* H2
P3 101* H3
P4 10101 H4
P5 * H5
Prefixes may be considered as bitstrings of a maximal length W.
Example: W = 5, p = 10111
![Page 8: IP-Lookup and Packet Classification Computational Geometry, WS 2007/08 Lecture 14 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für](https://reader035.vdocuments.mx/reader035/viewer/2022062421/56649d625503460f94a44e96/html5/thumbnails/8.jpg)
Computational Geometry, WS 2007/08Prof. Dr. Thomas Ottmann 8
Generalisations of IP-Lookup
• Dynamisation: Insertion, deletion of prefixes (intervalls)• Conflict free sets of intervalls (not nested)
• Priority matching instead of LMP lookup:
Prefix Next-hop
R1 10* H3
R2 1001* H2
R3 01100 H5
R4 0* H4
R5 010* H1
R6 * H6
Determine the prefix with highestpriority matching a given bitstring
10011
![Page 9: IP-Lookup and Packet Classification Computational Geometry, WS 2007/08 Lecture 14 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für](https://reader035.vdocuments.mx/reader035/viewer/2022062421/56649d625503460f94a44e96/html5/thumbnails/9.jpg)
Computational Geometry, WS 2007/08Prof. Dr. Thomas Ottmann 9
Extension to higher dimensions
Classify incoming packages into different flows according to different services.
Service Example
Traffic Shaping
Ensure that ISP3 does not inject more than 50Mbps of total traffic on interface X, of which no more than 10Mbps is email traffic
Packet Filtering
Deny all traffic from ISP2 (on interface X) destined to E2
Policy Routing
Send all voice-over-IP traffic arriving from E1 (on interface Y) and destined to E2 via a separate ATM network
PAYLOADL4-SP16b
L4-DP16b
PROTO8b
L3-SA32b
L3-DA32b
L3-Proto8b
L2-SA48b
L2-DA48b
![Page 10: IP-Lookup and Packet Classification Computational Geometry, WS 2007/08 Lecture 14 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für](https://reader035.vdocuments.mx/reader035/viewer/2022062421/56649d625503460f94a44e96/html5/thumbnails/10.jpg)
Computational Geometry, WS 2007/08Prof. Dr. Thomas Ottmann 10
Example Classifier
Rule Destination Address
Source Address
R1 0* 10*
R2 0* 01*
R3 0* 1*
R4 00* 1*
R5 00* 11*
R6 10* 1*
R7 * 00*
Field 1 Field 2
IP-Lookup is a special case of the packet classification problem.
Example: (00101, 11011)
![Page 11: IP-Lookup and Packet Classification Computational Geometry, WS 2007/08 Lecture 14 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für](https://reader035.vdocuments.mx/reader035/viewer/2022062421/56649d625503460f94a44e96/html5/thumbnails/11.jpg)
Computational Geometry, WS 2007/08Prof. Dr. Thomas Ottmann 11
R1
R2
R3R4
2-dim Classifier
![Page 12: IP-Lookup and Packet Classification Computational Geometry, WS 2007/08 Lecture 14 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für](https://reader035.vdocuments.mx/reader035/viewer/2022062421/56649d625503460f94a44e96/html5/thumbnails/12.jpg)
Computational Geometry, WS 2007/08Prof. Dr. Thomas Ottmann 12
R1
R2
R3
{R1, R2}
{R2, R3}
{R1, R2, R3}
7 regions
For a given point p: Find the rule (region) with highest priority containing p.
2-dim Classifier
![Page 13: IP-Lookup and Packet Classification Computational Geometry, WS 2007/08 Lecture 14 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für](https://reader035.vdocuments.mx/reader035/viewer/2022062421/56649d625503460f94a44e96/html5/thumbnails/13.jpg)
Computational Geometry, WS 2007/08Prof. Dr. Thomas Ottmann 13
Solution stategies
• Structure the universe of all bitstrings of length W:
Trie based methods
+ Lookup becomes dependent only on the length of the given prefix
- Updates expensive
• Structure the current set of n prefixes:
Geometry based methods
+ Efficient updates
- Lookup dependent on n
• Hardware-based solutions
• Hybrid methods
![Page 14: IP-Lookup and Packet Classification Computational Geometry, WS 2007/08 Lecture 14 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für](https://reader035.vdocuments.mx/reader035/viewer/2022062421/56649d625503460f94a44e96/html5/thumbnails/14.jpg)
Computational Geometry, WS 2007/08Prof. Dr. Thomas Ottmann 14
Binary Tries
0
0
1
1 10
00
A full binary tree of height W is a possible raster for storing all prefixes and bitstrings of length ≤ W.
LMP: For a given bitstring p find the deepest node representing a prefixon the search path to leaf p!Time: O(W)
{*, 00*, 010*, 10*,100*}
0000 1111
![Page 15: IP-Lookup and Packet Classification Computational Geometry, WS 2007/08 Lecture 14 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für](https://reader035.vdocuments.mx/reader035/viewer/2022062421/56649d625503460f94a44e96/html5/thumbnails/15.jpg)
Computational Geometry, WS 2007/08Prof. Dr. Thomas Ottmann 15
Compression (1)
0
0
1
1 0
00
![Page 16: IP-Lookup and Packet Classification Computational Geometry, WS 2007/08 Lecture 14 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für](https://reader035.vdocuments.mx/reader035/viewer/2022062421/56649d625503460f94a44e96/html5/thumbnails/16.jpg)
Computational Geometry, WS 2007/08Prof. Dr. Thomas Ottmann 16
Compression (2)
0
0
10
10
0
The number of nodes in a contracted binary trie storing n prefixes is ≤ 2n.CBT are similar to Ukkonen‘s implicit suffix trees.Lookup, insertion and deletion of prefixes in time O(W).
Many possible variations:Increase branching factor in order to decrease height.Adapt branching factor on each level to number of prefixes.……
![Page 17: IP-Lookup and Packet Classification Computational Geometry, WS 2007/08 Lecture 14 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für](https://reader035.vdocuments.mx/reader035/viewer/2022062421/56649d625503460f94a44e96/html5/thumbnails/17.jpg)
Computational Geometry, WS 2007/08Prof. Dr. Thomas Ottmann 17
Increasing the branching factor
00 01 10 11
0000 1111
Trie based structures are set- and order-unique, hence,oblivious structures!
![Page 18: IP-Lookup and Packet Classification Computational Geometry, WS 2007/08 Lecture 14 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für](https://reader035.vdocuments.mx/reader035/viewer/2022062421/56649d625503460f94a44e96/html5/thumbnails/18.jpg)
Computational Geometry, WS 2007/08Prof. Dr. Thomas Ottmann 18
Geometric view of IP-table lookup
Find a representation of a (dynamic) set of intervals such that the following operations can be carried out efficiently:
• Insertion of an interval• Deletion of an interval• For a given point p: Find the smallest interval stabbed by p (LMP-
query)
Assumptions:
Set of intervals is nested (but not necessarily a prefix set).
Every newly inserted interval does not overlap with any interval in the set.
Conflict test: For a given interval test whether or not it overlaps (is in conflict) with any interval already in the set.
![Page 19: IP-Lookup and Packet Classification Computational Geometry, WS 2007/08 Lecture 14 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für](https://reader035.vdocuments.mx/reader035/viewer/2022062421/56649d625503460f94a44e96/html5/thumbnails/19.jpg)
Computational Geometry, WS 2007/08Prof. Dr. Thomas Ottmann 19
0 5 10 15 0 5 10 15
A
BC
D
A
B
C
D
p = (d, d)
10
5d
0 5 10 15 0 5 10 15
A
BC
D
A
B
C
D
p = (d, d)
10
5d
Mapping intervals to points
Assumption: All points have pairwise distinct x-coordinates Map point (x, y) to ((x, – y), y)
Interval (l, r) is mapped to point (r, l) below the main diagonal.
![Page 20: IP-Lookup and Packet Classification Computational Geometry, WS 2007/08 Lecture 14 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für](https://reader035.vdocuments.mx/reader035/viewer/2022062421/56649d625503460f94a44e96/html5/thumbnails/20.jpg)
Computational Geometry, WS 2007/08Prof. Dr. Thomas Ottmann 20
B
A
B
A
X and Y represent disjoint intervals⇔ There is no point p on the diagonal, s.t. p ≼ X und p ≼ Y
Disjoint intervals
![Page 21: IP-Lookup and Packet Classification Computational Geometry, WS 2007/08 Lecture 14 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für](https://reader035.vdocuments.mx/reader035/viewer/2022062421/56649d625503460f94a44e96/html5/thumbnails/21.jpg)
Computational Geometry, WS 2007/08Prof. Dr. Thomas Ottmann 21
A
B
A
B
A ⊒ B Interval A = (lA, rA) includes interval B = (lB, rB) iff. point A is right below point B, A B ⋟
B ⊑ A ⇔ A ⊒ B ⇔ point B left above point A ⇔ B ≼ A
Geometric interpretation of interval-inclusion
![Page 22: IP-Lookup and Packet Classification Computational Geometry, WS 2007/08 Lecture 14 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für](https://reader035.vdocuments.mx/reader035/viewer/2022062421/56649d625503460f94a44e96/html5/thumbnails/22.jpg)
Computational Geometry, WS 2007/08Prof. Dr. Thomas Ottmann 22
C
p
D
C
D
X and Y represent overlapping intervals⇔ There is a point p on the diagonal, s.t. p ≼ X and p ≼ Y , but X and Y are incomparable with resp. to ≼
Overlapping intervals
![Page 23: IP-Lookup and Packet Classification Computational Geometry, WS 2007/08 Lecture 14 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für](https://reader035.vdocuments.mx/reader035/viewer/2022062421/56649d625503460f94a44e96/html5/thumbnails/23.jpg)
Computational Geometry, WS 2007/08Prof. Dr. Thomas Ottmann 23
BB
p
A
D
C
X is smallest intervall, that contains point p⇔ p ≼ X and for all Y with p ≼ Y : X ≼ Y
Observation: Sets of nested intervals stabbed by a point are totally ordered with resp. to ≼ Points closer to the diagonal represent smaller intervals.
Nested intervals
![Page 24: IP-Lookup and Packet Classification Computational Geometry, WS 2007/08 Lecture 14 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für](https://reader035.vdocuments.mx/reader035/viewer/2022062421/56649d625503460f94a44e96/html5/thumbnails/24.jpg)
Computational Geometry, WS 2007/08Prof. Dr. Thomas Ottmann 24
Equivalent Query
For a given p, find the leftmost point whose x-value is greater than or equal to p and whose y-value is less than or equal to p.
p
p
Since the original intervals are nested, the topmost-leftmost point is also the leftmost one!
![Page 25: IP-Lookup and Packet Classification Computational Geometry, WS 2007/08 Lecture 14 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für](https://reader035.vdocuments.mx/reader035/viewer/2022062421/56649d625503460f94a44e96/html5/thumbnails/25.jpg)
Computational Geometry, WS 2007/08Prof. Dr. Thomas Ottmann 25
Geometric version of the IP-lookup-problem
Maintain a set of points in the plane (below the main diagonal) s.t. the following operations can be carried out efficiently:
• insertion of points• deletion of points• minXinRectagle queries (corresponds to topmost-leftmost queries)
minXinRectangle(l, r, y0)
Data structures used:
• Priority-search-trees (Lu/Sahni, IEEE TC, 2004)• Min-augmented-search-trees• Priority-search-pennats
(Lauer, Ottmann, Datta: Update efficient data structures for dynamic IP router tables, International Journal of Foundations of Computer Science, 18(1):139--161, Feb. 2007. World Scientific Publishing Company. )
![Page 26: IP-Lookup and Packet Classification Computational Geometry, WS 2007/08 Lecture 14 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für](https://reader035.vdocuments.mx/reader035/viewer/2022062421/56649d625503460f94a44e96/html5/thumbnails/26.jpg)
Computational Geometry, WS 2007/08Prof. Dr. Thomas Ottmann 26
Priority Search Trees
Priority Search trees are a 1.5-dim structure for the storage of points, they support the following operations :
Insertion of a point Deletion of a point South-grounded range queries
![Page 27: IP-Lookup and Packet Classification Computational Geometry, WS 2007/08 Lecture 14 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für](https://reader035.vdocuments.mx/reader035/viewer/2022062421/56649d625503460f94a44e96/html5/thumbnails/27.jpg)
Computational Geometry, WS 2007/08Prof. Dr. Thomas Ottmann 27
83, 8
32 4 56, 9
6 71
2, 41
4, 53
5, 45 7
1, 22
8, 36
7, 14
Priority search trees are - binary leaf search trees for the x-coordinates of the points. - min heaps for the y-coordinates of the points.
Priority Search Tree
![Page 28: IP-Lookup and Packet Classification Computational Geometry, WS 2007/08 Lecture 14 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für](https://reader035.vdocuments.mx/reader035/viewer/2022062421/56649d625503460f94a44e96/html5/thumbnails/28.jpg)
Computational Geometry, WS 2007/08Prof. Dr. Thomas Ottmann 28
l
y0
r
Executable in O(log n) time.
Find topmost leftmost (orleftmost topmost) point inthe range (l, r , y0)
p
l
y0
Well defined, if intervalls are nested,otherwise not!
r
minXinRectangle(l, r, y0)
![Page 29: IP-Lookup and Packet Classification Computational Geometry, WS 2007/08 Lecture 14 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für](https://reader035.vdocuments.mx/reader035/viewer/2022062421/56649d625503460f94a44e96/html5/thumbnails/29.jpg)
Computational Geometry, WS 2007/08Prof. Dr. Thomas Ottmann 29
15,1
40
4,2
9
33,4
28
1
1,3
1
6,10
1317,35
302,4
2
17 28
17,9
17
Finding topmost leftmost points in PST
![Page 30: IP-Lookup and Packet Classification Computational Geometry, WS 2007/08 Lecture 14 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für](https://reader035.vdocuments.mx/reader035/viewer/2022062421/56649d625503460f94a44e96/html5/thumbnails/30.jpg)
Computational Geometry, WS 2007/08Prof. Dr. Thomas Ottmann 30
Finding leftmost topmost points in PST