Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


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

1 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: 2008.10.15 1

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

3 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

4 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

5 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

6 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

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

8 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

9 MOST SPECIFIC PREFIX TREE address length = 5 prefix P1P1 0* P2P2 0101* P3P3 100* P4P4 1001* P5P5 10111 P6P6 11* P7P7 0001* P8P8 01* P9P9 00111 P 10 001* P 11 0011* 9

10 MOST SPECIFIC PREFIX TREE - SEARCHING dstIP = 00110 10

11 MOST SPECIFIC PREFIX TREE - SEARCHING dstIP = 00110 11

12 MOST SPECIFIC PREFIX TREE - SEARCHING dstIP = 00110 12

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

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

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

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

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

18 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

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

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

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

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

23 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

24 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

25 MOST SPECIFIC PREFIX TREE - DELETION (1/4) Deletion of a non-most specific prefix delete a prefix P8 = 01* 25 P 9 : 00111 b P 3 : 100* enclosure(a) P 7 : 0001* d P 2 : 0101* e P 5 : 10111 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)

26 MOST SPECIFIC PREFIX TREE - DELETION (2/4) Deletion of a most specific prefix (leaf node) delete a prefix P2 = 0101* 26 P 9 : 00111 b P 3 : 100* enclosure(a) P 7 : 0001* d P 2 : 0101* e P 5 : 10111 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*

27 MOST SPECIFIC PREFIX TREE - DELETION (3/4) Deletion of a most specific prefix (internal node) (degree = 1) delete a prefix P5 = 10111 27 P 9 : 00111 b P 3 : 100* enclosure(a) P 7 : 0001* d P 2 : 0101* e P 5 : 10111 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.

28 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 : 00111 b P 3 : 100* enclosure(a) def P 4 : 1001* a P 7 : 0001* P 5 : 10111 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*

29 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)

30 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)

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

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

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

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

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

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

37 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 38


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

Similar presentations


Ads by Google