You are on page 1of 8

Scientific Journal of Control Engineering

June 2013, Volume 3, Issue 3, PP.147-154

IPv6 Routing Search Algorithm by Applying


Trie and Binary Search
Chao Chen
Network Management Center, Sichuan University of Technology & Engineering, Sichuan Zigong 643000, China
#

Email: cynet525@139.com

Abstract
Because of increase of the address length under IPv6, the treatment burden of router is heavier; it is unable to meet the new
demand to a lot of algorithms that is existing after expanding to IPv6 at present. So, for reaching very good adaptability to IPv6,
routing search algorithms must have very good performance to buffering tactics, compressing tactics, prefix expanding,
independent prefix to transform etc. This paper briefly analyzed the binary routing search algorithm based on prefix length and the
routing search algorithm based on Trie. After then, it proposed an improved routing search algorithm and presented corresponding
implementation schemes under IPv6. Combined the binary routing search algorithm based on prefix length and the routing search
algorithm based on Trie, the improved algorithm supports MVRF dynamic to update, has higher search speed and better scalability
of prefix length. Simulation results show that this algorithm can well satisfy the requirements of IPv6.
Keywords: Binary Search; IPv6; Routing Search Algorithm; MVRF

Trie IPv6 *

643000
IPv6 IPv6
IPv6
Trie
IPv6 Trie

IPv6
IPv6MVRF

IPv4 [1] Internet


IPv4 Internet
[2]IPv6 IP
IPv6 128 [3]
32 128 4
IPv6 [4] IPv6
Trie
*

(2013GZ0030)(2011RYY06)
(2011PY05)
- 147 http://www.sj-ce.org/

IPv6

1
1.1 Trie
Trie retrievalRadix Trie Trie
bit [5]
Trie IPv4
32
IPv4 IPv6 128
4 Trie
IPv6 [6]

1.2

[7]

W W/2 W/2+W/4
W/2-W/4 () 1/2
O(log2W) IPv4 log232 =5 IPv6
log2128 = 7

IPv4 5
IPv6 7 IPv6
Hash
Hash Hash
Hash [8]

2
Trie IPv4
IPv6
Hash Hash
Hash Hash Hash

2.1
k (k>1) Lk k-1 Lk-1 L=|Lk-Lk-1|
k L0=0
k Lk k-1 Lk-1
Lk-1<Lk k-1 ()(
)
- 148 http://www.sj-ce.org/

NLi L i
ELij L i j
Li 0

NW/2i Li=0 0
W/2
iIP () Li
Lj= L- Li
jIP () Li+ 1 Li+Lj

Le

2.2
Trie IP
W IP IP W/2 bit
W/2 IP W/2+1~W/2+W/4 bit
W/2+W/4 W/2 bit IP IP W/4 bit
W/4 1

W/2

W/4

3W/4

W/8

3W/8

5W/8

7W/8

1 Trie

backward(B)

backward_address(BA)

prefix_valid(PV) forward(F) backtrack(T)


nexthop_address(NHA) forward_address(FA)

backward(B)
backward_address(BA) backward prefix_valid(PV)
forward(F)backtrack(T)
nexthop_address(NHA) prefix_valid backtrack forward_
- 149 http://www.sj-ce.org/

address(FA) forward
Trie
Le 2w/aa=2Le
2w/2 Nw/2.0
1/2
2w/a
W/2 j 1~W/2bit
j prefix_valid 1 nexthop_address

W/2+W/4 Li=0
i=0 Lj=W/2 jw/2 1~W/2bit 3W/4
Li=W/2 i 1~W/2bit Lj=W/4 j3w/4
W/2+1~3W/4bit jw/2 forward
3W/4 N3w/4i i forward_
address j3w/4 prefix_valid nexthop_address

W/4 backward
W/4 Nw/4i Li=0 i=0 Lj=W/4
j 1~W/4bit backward_address
j prefix_valid nexthop_address

2.3
Trie

(1)
log2W IPv4
5 IPv6 7
(2)

(3)

(4) IP Hash ;

Hash Hash
Hash Hash Hash
IP Hash

IPv6

3.1 IPv6
IPv6 128bit IPv6 264
- 150 http://www.sj-ce.org/

232 Table-64Table-32
Table-96 IPv6 3 Table-64 64bit
64bitTable-96 96bit 96bit 96bitTable-32
32bit 32 64 32bit CAM
4 1~31bit33~63bit65~95bit 97~128bit IPv4

IPv6

Table-64

Table-32

Table-96

Trie

3 IPv6

Table-32Table-64 Table-96 prefix_validforwardbacktracknexthop_address


forward_address forward_address Table64 forward_address Trie Trie 64bit 96bit 64bit
TrieTable-32 forward_address Trie 32bit
64bit 32bit Table-96 forward_address Trie
96bit 96bit Trie

3.2
64bit Table-64 64
prefix_valid 1 nexthop_address 64 96
forward 1 64 96 64bit Trie Trie
forward_address
96bit Table-64 Table-96
Table-64 forward 1 96 Table-96 prefix_valid 1
nexthop_address 96 Table-96 forward 1
96bit 96bit Trie Trie forward_address
64bit

3.3
D128
success nexthop_address
forward_address Trie DTrie
D128 64bit Table-64
prefix_valid=1forward=0success=1nexthop_address= nexthop_address

- 151 http://www.sj-ce.org/

prefix_valid=1 forward=1 prefix_valid=0 forward=1 backtrack=1


success=1nexthop_address= nexthop_addressforwardes_address= forwardee_address
Table-96
prefix_valid=0forward=1backtrack=0 Forward_address= forward_address
Table-96
Table-32
D128 96bit Table-96
prefix_valid=1forward=0success=1nexthop_address= nexthop_address

prefix_valid=1 forward=1 prefix_valid =0 forward=1 backtrack=1


success=1 nexthop_address= nexthop_address forward_address= forward_address
DTrie=D128 97~128bit
prefix_valid=0forward=1backtrack=0 Forward_address= forward_address
DTrie=D128 97~128bit
DTrie=D128 65~95bit
D128 32bit Table-32
prefix_valid=1forward=0success=1nexthop_address= nexthop_address

prefix_valid=1 forward=1 prefix_valid =0 forward=1 backtrack=1


success=1 nexthop_address= nexthop_address forward_address= forwardes_address
DTrie=D128 33~63bit
prefix_valid=0forward=1backtrack=0 Forward_address= forward_address
DTrie=D128 33~63bit
DTrie=D128 1~31bitForward_address= 32 Trie

forward_address Trie DTrie IPv4

4.1
log2W IPv4
5 IPv6 7 50ns DRAM 4M
lookups/s 20M
lookups/s

4.1
AADS Mae-West 1
1 2 3
AADS 1913956 26889 Mae-West
1787658 23612 DRAM 56bit
prefix_validforward backtrack lbitnexthop_address 22bitforward_address 31bit
32bit AADS 13485KBMae-West 12595KB

- 152 http://www.sj-ce.org/

8
9
10
11
12
13
14
15
16
17
18
19
20

AADS
MaeWest
9
10
2
3
2
3
1
4
7
12
31
37
58
65
112
122
2630
2324
611
532
1009
876
2778
2259
2459
2030

AADS
MaeWest
1593
1393
2304
1962
2598
2252
17336
15728
46
25
40
2
29
2
21
1
6
1
12
2
0
0
0
1
33694
29636

21
22
23
24
25
26
27
28
29
30
31
32

2 AADS

1
65536

2
256

3
16

4
4

5
2

6219

8079

5688

6902

3 Mae-West

1
65536

2
256

3
16

4
4

5
2

5937

7194

4981

5499

4.2

8
9
10
11
12
13
14
15
16
17
18

242
135
67
34
17
11
6
5
1
135
67

21
22
23
24
25
26
27
28
29
30
31

11
2
5
2
11
6
5
2
5
5
9

19
20

34
17

32

5
- 153 http://www.sj-ce.org/

AADS
Mae-West

1
31996
28169

2
409
429

3
625
597

4
230
151

5
224
140

>5
137
129

95% 99%
5

Trie
IPv6

REFERENCES
[1]

, , . IPv6 IPv4 [J]. , 2003, 39(2): 167-168,226

[2]

, , . IPv4 IPv6 [J]. , 2005, 13(11): 106-107

[3]

. IPv6 [M]. : , 2008

[4]

, , , . [J]. , 2002, 13(1): 42-50

[5]

, , . Trie [J]. , 2003, 4(3): 10-13

[6]

, . Trie IP [J]. , 2005, 41(9): 156-158

[7]

, , . [J]. , 2001, 24(12): 1272-1278

[8]

, . IPv6 [J]. , 2010, 18(2): 60-61

1980-
Email: cynet525@139.com

- 154 http://www.sj-ce.org/

You might also like