Packet classification using diagonal-based tuple space search Authors: Fu-Yuan Lee *, Shiuhpyng Shieh Publish: Computer Networks 50 (2006) 1831–1842 Present: Chi-Lu Yang (楊淇祿) Date: October, 30, 2007 Department of Computer Science and Information Engineering National Cheng Kung University, Taiwan R.O.C. 1 Outline 1. Introduction • Problem statement 2. Fundamentals of tuple space • • Fundamentals of the tuple space search (概述,同2001那一篇) Proposed tuple space search strategy 3. Diagonal-based tuple space schema • • • • 3.1 Create Markers (Fig. and alg.) 3.2 Create Conflict Resolvers—auxiliary filter (Fig. and alg.) 3.3 Perform Pre-computation (Fig. and alg.) 3.4 Find TImdt on diagonal tuples 4. Tuple space construction and search algorithm • • • 4.1 Construct Tuple Groups 4.2 Binary search scheme 4.3 Others discussion : Dynamic update of filter sets– Insert, Delete 5. Performance evaluation and comparison 6. Conclusions 2 Introduction Filters are grouped according to prefix lengths. Tuple Space Framework searches on composition of prefix specifications. The number of tuples is generally much smaller than the number of filters. This approach will: • • focus on reducing time for classification, extend the tuple space framework to perform hashbased binary search on the tuple space. 3 Problem statement A packet p is said to match a filter f if and only if prefixes of the selected packet header fields of p are correspondingly the same as the prefixes specified by f. It’s possible that a packet can match more than one filter. Each filter is associated with a priority. The highest priority is selected as the best matched filter. Packet classification is also the process of determining the best matched filter for the packet p. 4 Fundamentals of tuple space Ta(i,j), S(Ta), L(Ta), IC(Ta) L(Ta): leave markers S(Ta): pre-compute best filter for F belong toTa(i,j) 5 Fundamentals of tuple space (cont.) If no matched filter is found in a tuple T for a given packet, filters mapped to tuples in L(T) can be eliminated from the search space. (Fig.2) If the probe in T returns a match, the search space can be restricted to the filters mapped to the tuples in L(T) and IC(T). ( Fig. 3) 6 Define Conflict (overlap) Resolved Definition of Filter conflict resolved: • • (1) For any pair of (fi, fj), fi ≠ fj, fi does not overlap with fj . (2) For each pair of overlapped filters (fi, fj), fi ≠ fj, there must be a filter which is equivalent to the resolver of fi and fj. Definition of Filter-Marker conflict resolved: • For any pair of filter and marker (fi,mj), if fi overlaps with mj then there must be a filter equivalent to the resolver of fj and mj. • where fi denotes a filter in F, and • mj represents a marker of a filter fj, 7 Proposed tuple space search strategy Lemma 1: • Given a filter-marker conflict resolved tuple space, if there is a filter or marker in tuple T which can match a given packet p, then filters mapped to tuples in S(T) and IC(T) can be eliminated from the search space. 8 Diagonal-based tuple space schema 9 3.1 Create Markers A filter f mapped to tuple (i, j). Let s = min(i, j). Then markers of filter f are inserted into tuples from (i, j) to (s, s) and from (s, s) to (1, 1). For example, as shown in Fig. 4, filters mapped to tuple (16, 24) leave markers in tuples (16, 23), (16, 22), (16, 21), . . . , (16, 17), (16, 16), (15, 15), . . . , (2, 2), (1, 1). 10 3.2 Create Conflict Resolvers — auxiliary filters Step1:Resolvers are created for each pair of overlapped filters in the original filter set F. Step2:a resolver is created if there is a filter overlapped with a marker in a diagonal tuple. •Filter f in tuple T(i, j): let i < j. Conflicts only need be examined between f and markers in diagonal tuples from (i+1, i+1) to (j-1, j-1). (Fig.5) 更詳細完整請見p 1413-p1415, Fig.6. –Fig11. 11 3.2 Create Conflict Resolvers (Cont.) — Alg. Create resolvers for F-M 更詳細完整請 見Alg.2. , p 1417左上角與 p1418左上角。 12 3.3 Perform Pre-computation Pre-computation is performed for all the filters. (See Alg.4.) • including the filters in the original classifier F, markers and resolvers. 13 3.4 Find TImdt on diagonal tuples As proved in Lemma 1: (Fig. 12.) If a matched filter is found in a diagonal tuple, then Region 2 can be eliminated from the search space. If no matched filter is found in a diagonal tuple, then there can’t be any matched filters in L(T). Region 1 can be eliminated from the search space. 14 3.4 Find TImdt on diagonal tuples (Cont.) TImdt := T(m, m), last matched diagonal tuple : • • • • (1) If there is a matched filter found in a diagonal tuple T(m, m), AND (2) If there is no matched filter found in tuple T(m + 1, m + 1), ===> then the remaining search space can be restricted to tuples: {(i, j) | i = m, m <= j <= w or j = m, m<= j <= w}. An example (Fig. 13.) : • • If Tlmdt = (16, 16), then the remaining search space includes tuples: (32, 16), (31, 16), (30, 16) . . . , (16, 16), (16, 17), . . . , (16, 31), (16, 32). 15 3.4 Find TImdt on diagonal tuples (Cont.) Tlmdt is determined by: • • (1) a naive search algorithm is to probe all remaining tuples and thus requires O(w) hashes. (2) However, the search time can be further reduced by applying binary search on the remaining tuple. Thus, only O(log(w)) hash probes in total is required. Our improvement is based on observation : All the remaining tuples are either in the same column or row with Tlmdt. 16 4.1 Construct balanced binary search tree for tuple groups TG(i) - Tuple groups: collection of nonempty tuples in the same column or row. • TG(i).col • TG(i).row 17 4.2 Binary search scheme The diagonal-based tuple space search algorithm: (Alg.5.) • (1) First, the algorithm performs binary search • to determines Tlmdt using balanced binary search tree, diagonal-tuple tree. (2) Next, the search algorithm traverses the row tree and column tree corresponding to the Tlmdt. In this way, a best matched filter can be determined in O(log(w)) hash operation. 18 Performance evaluation 19 Conclusions In this paper, authors proposed a algorithm for packet classification: • A binary search algorithm in O(log(w)) hash • operations. The memory usage can reach O(n2) in the worst case. 20
© Copyright 2024 Paperzz