DESIGN AND IMPLEMENTATION OF DYNAMIC ROUTING TABLES Author: Yeim-Kuan Chang and Dung-Jiun Lin Publisher/Conf.: The graduation paper of CIAL master student,

Slides:



Advertisements
Similar presentations
An On-Chip IP Address Lookup Algorithm Author: Xuehong Sun and Yiqiang Q. Zhao Publisher: IEEE TRANSACTIONS ON COMPUTERS, 2005 Presenter: Yu Hao, Tseng.
Advertisements

Augmenting Data Structures Advanced Algorithms & Data Structures Lecture Theme 07 – Part I Prof. Dr. Th. Ottmann Summer Semester 2006.
A Fast and Memory Efficient Dynamic IP Lookup Algorithm Based on B-Tree Author:Yeim-Kuan Chang and Yung-Chieh Lin Publisher: 2009 International Conference.
IP Routing Lookups Scalable High Speed IP Routing Lookups.
Binary Trees, Binary Search Trees CMPS 2133 Spring 2008.
Balanced Binary Search Trees
CS 171: Introduction to Computer Science II
An Efficient IP Address Lookup Algorithm Using a Priority Trie Authors: Hyesook Lim and Ju Hyoung Mun Presenter: Yi-Sheng, Lin ( 林意勝 ) Date: Mar. 11, 2008.
IP Address Lookup for Internet Routers Using Balanced Binary Search with Prefix Vector Author: Hyesook Lim, Hyeong-gee Kim, Changhoon Publisher: IEEE TRANSACTIONS.
The CPBT: A Method for Searching the Prefixes Using Coded Prefixes in B-Tree Author: Mohammad Behdadfar and Hossein Saidi Publisher: LNCS 2008 Presenter:
6/14/2015 6:48 AM(2,4) Trees /14/2015 6:48 AM(2,4) Trees2 Outline and Reading Multi-way search tree (§3.3.1) Definition Search (2,4)
Power Efficient IP Lookup with Supernode Caching Lu Peng, Wencheng Lu*, and Lide Duan Dept. of Electrical & Computer Engineering Louisiana State University.
Scalable IPv6 Lookup/Update Design for High-Throughput Routers Authors: Chung-Ho Chen, Chao-Hsien Hsu, Chen -Chieh Wang Presenter: Yi-Sheng, Lin ( 林意勝.
1 Geometric Solutions for the IP-Lookup and Packet Classification Problem (Lecture 12: The IP-LookUp & Packet Classification Problem, Part II) Advanced.
Data Structures Data Structures Topic #8. Today’s Agenda Continue Discussing Table Abstractions But, this time, let’s talk about them in terms of new.
張 燕 光 資訊工程學系 Dept. of Computer Science & Information Engineering,
1 A Fast IP Lookup Scheme for Longest-Matching Prefix Authors: Lih-Chyau Wuu, Shou-Yu Pin Reporter: Chen-Nien Tsai.
Basic Data Structures for IP lookups and Packet Classification
AVL Trees ITCS6114 Algorithms and Data Structures.
Fast binary and multiway prefix searches for pachet forwarding Author: Yeim-Kuan Chang Publisher: COMPUTER NETWORKS, Volume 51, Issue 3, pp , February.
1 Section 9.2 Tree Applications. 2 Binary Search Trees Goal is implementation of an efficient searching algorithm Binary Search Tree: –binary tree in.
A longest prefix first search tree for IP lookup Authors: Lih-Chyau Wuu, Tzong-Jye Liu, Kuo-Ming Chen Presenter: Chen-Yu Chung Date: 2008/09/24 Publisher/Conf.:
Binary Search Trees Section Trees Trees are efficient Many algorithms can be performed on trees in O(log n) time. Searching for elements.
1 Efficient packet classification using TCAMs Authors: Derek Pao, Yiu Keung Li and Peng Zhou Publisher: Computer Networks 2006 Present: Chen-Yu Lin Date:
PARALLEL TABLE LOOKUP FOR NEXT GENERATION INTERNET
Chapter 19: Binary Trees. Objectives In this chapter, you will: – Learn about binary trees – Explore various binary tree traversal algorithms – Organize.
LayeredTrees: Most Specific Prefix based Pipelined Design for On-Chip IP Address Lookups Author: Yeim-Kuau Chang, Fang-Chen Kuo, Han-Jhen Guo and Cheng-Chien.
Binary Trees, Binary Search Trees RIZWAN REHMAN CENTRE FOR COMPUTER STUDIES DIBRUGARH UNIVERSITY.
Multi-Field Range Encoding for Packet Classification in TCAM Author: Yeim-Kuan Chang, Chun-I Lee and Cheng-Chien Su Publisher: INFOCOM 2011 Presenter:
2-3 Tree. Slide 2 Outline  Balanced Search Trees 2-3 Trees Trees.
Starting at Binary Trees
1 Tree Indexing (1) Linear index is poor for insertion/deletion. Tree index can efficiently support all desired operations: –Insert/delete –Multiple search.
Lecture1 introductions and Tree Data Structures 11/12/20151.
1 Power-Efficient TCAM Partitioning for IP Lookups with Incremental Updates Author: Yeim-Kuan Chang Publisher: ICOIN 2005 Presenter: Po Ting Huang Date:
Segment Trees Basic data structure in computational geometry. Computational geometry.  Computations with geometric objects.  Points in 1-, 2-, 3-, d-space.
Memory-Efficient IPv4/v6 Lookup on FPGAs Using Distance-Bounded Path Compression Author: Hoang Le, Weirong Jiang and Viktor K. Prasanna Publisher: IEEE.
Data Structure II So Pak Yeung Outline Review  Array  Sorted Array  Linked List Binary Search Tree Heap Hash Table.
R-Trees: A Dynamic Index Structure For Spatial Searching Antonin Guttman.
Rooted Tree a b d ef i j g h c k root parent node (self) child descendent leaf (no children) e, i, k, g, h are leaves internal node (not a leaf) sibling.
Author: Haoyu Song, Murali Kodialam, Fang Hao and T.V. Lakshman Publisher/Conf. : IEEE International Conference on Network Protocols (ICNP), 2009 Speaker:
Copyright © 2012 Pearson Education, Inc. Chapter 20: Binary Trees.
Updating Designed for Fast IP Lookup Author : Natasa Maksic, Zoran Chicha and Aleksandra Smiljani´c Conference: IEEE High Performance Switching and Routing.
Parallel tree search: An algorithmic approach for multi- field packet classification Authors: Derek Pao and Cutson Liu. Publisher: Computer communications.
Packet Classification Using Dynamically Generated Decision Trees
A NOVEL LEVEL-BASED IPV6 ROUTING LOOKUP ALGORITHM Author: Xiaohong Huang, Xiaoyu Zhao, Guofeng Zhao, Wenjian Jiang, Dongqu Zheng, Qiong Sun and Yan Ma.
SCALAR PREFIX SEARCH: A NEW ROUTE LOOKUP ALGORITHM FOR NEXT GENERATION INTERNET Author: Mohammad Behdadfar, Hossein Saidi, Hamid Alaei and Babak Samari.
1 Trees. 2 Trees Trees. Binary Trees Tree Traversal.
Lecture 15 Nov 3, 2013 Height-balanced BST Recall:
AA Trees.
Tries 07/28/16 11:04 Text Compression
IP Routers – internal view
AN ON-CHIP IP ADDRESS LOOKUP ALGORITHM
Binary search tree. Removing a node
Binary Search Tree (BST)
Multiway range trees: scalable IP lookup with fast updates
Introduction Applications Balance Factor Rotations Deletion Example
Lecture 22 Binary Search Trees Chapter 10 of textbook
Digital Search Trees & Binary Tries
Tree data structure.
Chapter 20: Binary Trees.
Chapter 21: Binary Trees.
Tree data structure.
Height Balanced Trees 2-3 Trees.
(2,4) Trees /26/2018 3:48 PM (2,4) Trees (2,4) Trees
B-Trees.
CSE 373: Data Structures and Algorithms
Digital Search Trees & Binary Tries
(2,4) Trees /24/2019 7:30 PM (2,4) Trees (2,4) Trees
A Small and Fast IP Forwarding Table Using Hashing
ITCS6114 Algorithms and Data Structures
Presentation transcript:

DESIGN AND IMPLEMENTATION OF DYNAMIC ROUTING TABLES Author: Yeim-Kuan Chang and Dung-Jiun Lin Publisher/Conf.: The graduation paper of CIAL master student, 2005 Speaker: Han-Jhen Guo Date:

OUTLINE Introduction Most Specific Prefix Tree Searching Insertion Deletion Balance and Adjustment Performance Memory Consumption Search Time Update Time Conclusion 2

INTRODUCTION - DEFINITIONS (1/5) Definition 1 ( prefix representation ) A prefix P is really a range r of addresses from b to e. It can be represented as P = r = [ b, e ], b  e. b is the start address of prefix P and e is the finish address of prefix P. eg. P = 100* = [16, 19] if address length = 5 3

INTRODUCTION - DEFINITIONS (2/5) Definition 2 ( relation ): Let A = [b, e], b  e and B = [u, v], u  v be the ranges of two prefixes. Enclosure : A and B are enclosure iff the address space covered by one range is a subset of that covered by the other, i.e., B  A or A  B. Disjoint : A and B are said to be disjoint if none of them is enclosed by the other, i.e., A ∩B = Ø. The relation A B only occurs when A and B are disjoint. The relation A B iff b > v (the start address of A is larger than the finish address of B). 4

INTRODUCTION - DEFINITIONS (3/5) eg. (address length = 5) P1 = 1111* = [30, 31] P2 = 0101* = [10, 11] P3 = 100* = [16, 19] P4 = 1001* = [18, 19] P1, P2 and (P3 or P4) are disjoint P2 < (P3 or P4) < P1 both P3 and P4 are enclosures (ie. P3  P4) 5

INTRODUCTION - DEFINITIONS (4/5) Definition 3 (Most Specific Prefix) A prefix is called a most specific prefix if it does not enclose any other prefixes in the routing table. Otherwise, it is called a non-most specific prefix. 6

INTRODUCTION - DEFINITIONS (5/5) eg. routing table prefix P1P1 0* P2P2 0101* P3P3 100* P4P4 1001* P5P P6P6 11* P7P7 0001* P8P8 01* P9P P * P * P1P1 P2P2 P3P3 P4P4 P5P5 P6P6 P7P7 P8P8 P9P9 P 10 P 11 7

MOST SPECIFIC PREFIX TREE Features balanced binary search tree all specific prefix nodes in MSPT must be disjoint MSPT constraint each non-most specific prefix p is allocated to the enclosure set of the most specific prefix node x which is nearest to the root node of MSPT and is enclosed by this non-most specific prefix p. 8

MOST SPECIFIC PREFIX TREE address length = 5 prefix P1P1 0* P2P2 0101* P3P3 100* P4P4 1001* P5P P6P6 11* P7P7 0001* P8P8 01* P9P P * P * 9

MOST SPECIFIC PREFIX TREE - SEARCHING dstIP =

MOST SPECIFIC PREFIX TREE - SEARCHING dstIP =

MOST SPECIFIC PREFIX TREE - SEARCHING dstIP =

MOST SPECIFIC PREFIX TREE - SEARCHING dstIP = P10 is matched → BMP = P10 13

MOST SPECIFIC PREFIX TREE - SEARCHING dstIP = P11 is matched → BMP = P11 14

MOST SPECIFIC PREFIX TREE - SEARCHING dstIP = P7 is a leaf node of MSPT → stop and return BMP 15

MOST SPECIFIC PREFIX TREE - INSERTION (1/3) Insertion of the non-most specific prefix case 1 insert a prefix P6 = 001* 16

MOST SPECIFIC PREFIX TREE - INSERTION (1/3) Insertion of the non-most specific prefix case 1 insert a prefix P6 = 001* P6  P2 17

MOST SPECIFIC PREFIX TREE - INSERTION (1/3) Insertion of the non-most specific prefix case 1 insert a prefix P6 = 001* P6  P2 → store P6 in the enclosure of P2 18

MOST SPECIFIC PREFIX TREE - INSERTION (2/3) Insertion of the non-most specific prefix case 2 insert a prefix P7 =

MOST SPECIFIC PREFIX TREE - INSERTION (2/3) Insertion of the non-most specific prefix case 2 insert a prefix P7 = P2  P7 20

MOST SPECIFIC PREFIX TREE - INSERTION (2/3) Insertion of the non-most specific prefix case 2 Insert a prefix P7 = P2  P7 → store P2 in the enclosure replace original location of P2 with P7 21

MOST SPECIFIC PREFIX TREE - INSERTION (3/3) Insertion of the most specific prefix Insert a prefix P8 = 110* 22

MOST SPECIFIC PREFIX TREE - INSERTION (3/3) Insertion of the most specific prefix Insert a prefix P8 = 110* P8 still cannot enclose or be enclosed 23

MOST SPECIFIC PREFIX TREE - INSERTION (3/3) Insertion of the most specific prefix Insert a prefix P8 = 110* add a new MSPT node as child node of P7 24

MOST SPECIFIC PREFIX TREE - DELETION (1/4) Deletion of a non-most specific prefix delete a prefix P8 = 01* 25 P 9 : b P 3 : 100* enclosure(a) P 7 : 0001* d P 2 : 0101* e P 5 : c P 6 : 11* f P 4 : 1001* a P 8 : 01* enclosure(e) P 1 : 0* P 10 : 001* P 11 : 0011* enclosure(b)

MOST SPECIFIC PREFIX TREE - DELETION (2/4) Deletion of a most specific prefix (leaf node) delete a prefix P2 = 0101* 26 P 9 : b P 3 : 100* enclosure(a) P 7 : 0001* d P 2 : 0101* e P 5 : c P 6 : 11* f P 4 : 1001* a P 1 : 0* P 10 : 001* P 11 : 0011* enclosure(b) enclosure(e) P 8 : 01*

MOST SPECIFIC PREFIX TREE - DELETION (3/4) Deletion of a most specific prefix (internal node) (degree = 1) delete a prefix P5 = P 9 : b P 3 : 100* enclosure(a) P 7 : 0001* d P 2 : 0101* e P 5 : c P 6 : 11* f P 4 : 1001* a P 1 : 0* P 10 : 001* P 11 : 0011* enclosure(b) enclosure(e) P 8 : 01* If enclosure(c) is not empty, redistributing all prefixes in enclosure(c) into node f (subtree of node c) and then follows delete binary search tree algorithm.

MOST SPECIFIC PREFIX TREE - DELETION (4/4) Deletion of a most specific prefix (internal node) (degree = 2) delete a prefix P4 = 1001* 28 P 9 : b P 3 : 100* enclosure(a) def P 4 : 1001* a P 7 : 0001* P 5 : c P 6 : 11* P 1 : 0* P 10 : 001* P 11 : 0011* enclosure(b) enclosure(e) P 8 : 01* P 2 : 0101* insert P 3 : 100*

MOST SPECIFIC PREFIX TREE - BALANCE AND ADJUSTMENT (1/2) rotation 29 b ( P 2, 0010*) ( P 1, 0001* ) (P 3, 00*) (P 4, 0*) (P 5, 000*) a enclosure(a ) ( P 6, 100*) c Insert a new prefix P 6 rotation ( P 2, 0010*) ( P 6, 100*)( P 1, 0001*) a b c ( P 3, 00*) ( P 4, 0*) ( P 5, 000*) enclosure(a)

MOST SPECIFIC PREFIX TREE - BALANCE AND ADJUSTMENT (2/2) adjustment 30 ( P 2, 0010*) ( P 6, 100*)( P 1, 0001*) a b c ( P 3, 00*) ( P 4, 0*) ( P 5, 000*) enclosure(a) adjust ( P 2, 0010*) ( P 6, 100*)( P 1, 0001*) a b c ( P 5, 000*) enclosure(a) ( P3, 00*) ( P4, 0*) Enclosure(b)

PERFORMANCE - MEMORY CONSUMPTION (1/2) Memory requirement for IPv4

PERFORMANCE - MEMORY CONSUMPTION (2/2) 32 Total Memory requirement (in KB) for IPv6

PERFORMANCE - SEARCH TIME (1/2) Search time (in Microsecond) for IPv4 33

PERFORMANCE - SEARCH TIME (2/2) Search time (in Microsecond) for IPv6 34

PERFORMANCE - UPDATE TIME (1/2) Update time (in Microsecond) for IPv4 35

PERFORMANCE - UPDATE TIME (2/2) Update time (in Microsecond) for IPv6 36

CONCLUSION MSPT is to be preferred over PBOB, MRT and BTRIE for the representation of dynamic routing tables This scheme also can scales well to IPv6 and large routing tables 37

38