SlideShare a Scribd company logo
1 of 38
Poptrie:)A)Compressed)Trie)with)
Popula5on)Count)for)Fast)and)Scalable)
So<ware)IP)Rou5ng)Table)Lookup
Hirochika)Asai)(The)University)of)Tokyo))
Yasuhiro)Ohara)(NTT)Communica5ons)Corpora5on))
)
ACM)SIGCOMM)2015,)Aug.)18,)2015
Brief)Summary)of)Poptrie
•  Mul5way)trie)for)IP)rou5ng)table)lookup)in)
so<ware)
– Small)memory)footprint)with)popula5on)count)
•  e.g.,)2.4)MiB)for)a)global)5erV1)ISP’s)full)route)
– Good)performance)through)comprehensive)
evalua5on)
•  4–578%)faster)than)other)stateVofVtheVart)technologies)
–  Private)and)public)IPv4/IPv6)rou5ng)tables)
–  FutureVenvisioned)800K+)IPv4)routes)
•  Advantageous)for)longer)prefixes)
–  demonstrated)through)perVlookup)performance)analysis)
Aug.)18,)2015
Poptrie:)A)Compressed)Trie)with)Popula5on)Count)
for)Fast)and)Scalable)So<ware)IP)Rou5ng)Table)Lookup
IP)Rou5ng)Table)Lookup
•  Principle)
– Longest)prefix)match)
•  Challenges)
1.  Large)and)growing)rou5ng)table)
•  IPv4:)500K+)entries)
•  IPv6:)20K+)entries)
2.  High)lookup)rate)requirement)
•  e.g.,)148.8)Mpps)!)6.7)ns)per)lookup)
(at)the)wireVrate)on)100)GbE)of)minimumVsize)frames)))
Aug.)18,)2015
Poptrie:)A)Compressed)Trie)with)Popula5on)Count)
for)Fast)and)Scalable)So<ware)IP)Rou5ng)Table)Lookup
Radix)Tree)(Revisited)
Aug.)18,)2015
Poptrie:)A)Compressed)Trie)with)Popula5on)Count)
for)Fast)and)Scalable)So<ware)IP)Rou5ng)Table)Lookup
d
c
b
0
1
e
0
1
a
0
0.0.0.0/0
128.0.0.0/1
0.0.0.0/2 64.0.0.0/2
64.0.0.0/3
Radix&Tree&Example
Problems)with)the)radix)tree)
•  Depth)up)to)32)(for)IPv4))
•  requires)a)number)of)
memory)access)
•  Large)memory)footprint)
due)to)many)pointers)
•  causes)CPU)cache)misses)
")Bad&performance)
Prefix)length)
=)Priority
Prefix
Fundamental)data)structure)and)algorithm)for)longest)prefix)match
Related)Work:)Fast)IP)Rou5ng)Table)
Lookup)Algorithms
Approach Feature
Tree)BitMap)[1] Trie)(partly)
mul5way)
Succinct)data)structure)within)
CPU)cache)size
SAIL)[2] Trie)(mul5way) Op5mized)mul5Vlevel)trie)(3V
level)for)IPv4)
DXR)[3] Range Small)memory)footprint)and)
high)L1)cache)efficiency
Aug.)18,)2015
Poptrie:)A)Compressed)Trie)with)Popula5on)Count)
for)Fast)and)Scalable)So<ware)IP)Rou5ng)Table)Lookup
[1])W.)Eatherton)et)al.,)“Tree)Bitmap:)Hardware/So<ware)IP)Lookups)with)Incremental)Updates,”)ACM)SIGCOMM)CCR,)2004)
[2])T.)Yang)et)al.,)“Guarantee)IP)Lookup)Performance)with)FIB)Explosion,”)ACM)SIGCOMM)2014)
[3])M.)Zec)et)al.,)“DXR:)Towards)a)Billion)Rou5ng)Lookups)Per)Second)in)So<ware,”)ACM)SIGCOMM)CCR,)2012)
Key)Ideas)for)High)Lookup)Rate
1.  Reduce)instruc5ons)including)memory)access)
– Reduce)the)lookup)depth)of)the)trie)
2.  Increase)CPU)cache)efficiency)
– Compress)the)data)structure)for)small)memory)
footprint)within)CPU)cache)size)
Aug.)18,)2015
Poptrie:)A)Compressed)Trie)with)Popula5on)Count)
for)Fast)and)Scalable)So<ware)IP)Rou5ng)Table)Lookup
Poptrie&
V  Extended)from)the)mul5way)trie))
V  Compressed)with)popula5on)count)(CPU)instruc5on))
At)a)Glance:)Radix)Tree
0.0.0.0
255.255.255.255 128.0.0.0
Root
mul5cast/reserved)
/24 /16
Aug.)18,)2015
(*))IPv4)Rou5ng)table)from)
an)AS)border)router)of)
WIDE)Project)(Jan.)3,)2015)
At)a)Glance:)Poptrie
0.0.0.0
255.255.255.255 128.0.0.0
mul5cast/reserved)
/24
Aug.)18,)2015
(*))IPv4)Rou5ng)table)from)
an)AS)border)router)of)
WIDE)Project)(Jan.)3,)2015)
Root
Poptrie
•  Basic)algorithm)
– Mul5way)trie)
– Pointer)compression)with)popula5on)count)
•  Extensions)
– Compression)with)leaf)bitVvector)
– Route)aggrega5on)
– Direct)poin5ng
Aug.)18,)2015
Poptrie:)A)Compressed)Trie)with)Popula5on)Count)
for)Fast)and)Scalable)So<ware)IP)Rou5ng)Table)Lookup
Poptrie
•  Basic&algorithm&
– Mul5way)trie)
– Pointer)compression)with)popula5on)count)
•  Extensions)
– Compression)with)leaf)bitVvector)
– Route)aggrega5on)
– Direct)poin5ng
Aug.)18,)2015
Poptrie:)A)Compressed)Trie)with)Popula5on)Count)
for)Fast)and)Scalable)So<ware)IP)Rou5ng)Table)Lookup
Poptrie)(basic):)2kVary)Mul5way)Trie
Aug.)18,)2015
Poptrie:)A)Compressed)Trie)with)Popula5on)Count)
for)Fast)and)Scalable)So<ware)IP)Rou5ng)Table)Lookup
	
	
d
c
b
0
1
e
0
1
a
0
0.0.0.0/0
128.0.0.0/1
64.0.0.0/2
64.0.0.0/3
Radix&Tree
b c c
a a e e
Internal)node
Leaf)node
00 01 10 11
00 01 10 11
2k=ary&Mul@way&Trie&(k=2)
Push)the)next)hop)informa5on)in)the)internal)nodes)
to)leaf)nodes
0.0.0.0/2
X)X)X)X)X)X
Key)IP)address
MSB
00
01
10
11
chunk
b
Poptrie)(basic):)Pointer)Compression)
with)Popula5on)Count)(1/2)
Aug.)18,)2015
Poptrie:)A)Compressed)Trie)with)Popula5on)Count)
for)Fast)and)Scalable)So<ware)IP)Rou5ng)Table)Lookup
	
0 1 0 0
vector)†
b
Internal)node
pointer pointer
base0 base1
c c
b
0 0 0 0
vector
pointer pointer
base0 base1
Internal)node
Array)of)descendant)
internal)nodes
Array)of)descendant)
leaf)nodes
00 01 10 11
b c c
a a e e
Internal)node
Leaf)node
00 01 10 11
00 01 10 11
2k=ary&Mul@way&Trie&(k=2) Pointer&compression&with&bit=vector&and&array
†)in)lisle)endian
00 01 10 11
b
Poptrie)(basic):)Pointer)Compression)
with)Popula5on)Count)(2/2)
Aug.)18,)2015
Poptrie:)A)Compressed)Trie)with)Popula5on)Count)
for)Fast)and)Scalable)So<ware)IP)Rou5ng)Table)Lookup
	
0 1 0 0
vector)†
b
Internal)node
pointer pointer
base0 base1
c c
Internal
Leaf
00 01 10 11
Pointer&compression&with&bit=vector&and&array
b
0 1 0 0
vector)†
b
Internal)node
pointer pointer
base0 base1
c c
Internal
Leaf
Array&compression&with&popula@on&count
†)in)lisle)endian
Index:)#)of)1’s)bits)in)the)least)
significant)N+1)bits)of)vector)(V1)
Index:)#)of)0’s)bits)in)the)least)
significant)N+1)bits)of)vector)(V1)
Coun5ng)#)of)1s:)Use)x86’s)popcnt)instruc5on
N:)Value)of)the)chunk
N= 00 01 10 11 00 01 10 11N=
Poptrie
•  Basic)algorithm)
– Mul5way)trie)
– Pointer)compression)with)popula5on)count)
•  Extensions&
– Compression)with)leaf)bitVvector)
– Route)aggrega5on)
– Direct)poin5ng
Aug.)18,)2015
Poptrie:)A)Compressed)Trie)with)Popula5on)Count)
for)Fast)and)Scalable)So<ware)IP)Rou5ng)Table)Lookup
Poptrie:)Compression)with)LeafVVector
Aug.)18,)2015
Poptrie:)A)Compressed)Trie)with)Popula5on)Count)
for)Fast)and)Scalable)So<ware)IP)Rou5ng)Table)Lookup
	
d
c
b
0
1
e
0
1
a
0
0.0.0.0/0
128.0.0.0/1
64.0.0.0/2
64.0.0.0/3
Radix&Tree
b c c
a a e e
Internal)node
Leaf)node
00 01 10 11
00 01 10 11
2k=ary&Mul@way&Trie&(k=2)
A)problem)with)the)basic)data)structure:)Redundant)leaf)nodes)
V  for)prefixes)that)do)not)match)kVbit)boundary)
V  e.g.,)/1)(/7,)etc.)as)well))may)create)32)redundant)leaf)nodes)when)k=6)
V  for)holeVpunched)prefixes)
0.0.0.0/2
Poptrie:)Compression)with)LeafVVector
Aug.)18,)2015
Poptrie:)A)Compressed)Trie)with)Popula5on)Count)
for)Fast)and)Scalable)So<ware)IP)Rou5ng)Table)Lookup
	
b
0 1 0 0
vector)†
b
Internal)node
pointer pointer
base0 base1
c c
Internal
Leaf
Poptrie&(basic)
†)in)lisle)endian
b
0 1 0 0
vector)†
b
Internal)node
pointer pointer
base0 base1
c c
Internal
Leaf
Poptrie&with&leaf=vector&(leafvec)
1 0 1 0
leafvec)†
Index:)#)of)1’s)bits)in)the)least)
significant)N+1)bits)of)leafvec'(V1)
Poptrie:)Route)Aggrega5on
Aug.)18,)2015
Poptrie:)A)Compressed)Trie)with)Popula5on)Count)
for)Fast)and)Scalable)So<ware)IP)Rou5ng)Table)Lookup
	
b
0 1 0 0
vector)†
b
Internal)node
pointer pointer
base0 base1
c
Internal
Leaf
Poptrie&with&leaf=vector&(leafvec)
1 0 1 0
leafvec)†
b
0 1 0 0
vector)†
x’
Internal)node
pointer pointer
base0 base1
Internal
Leaf
1 0 0 0
leafvec)†
Poptrie&with&route&aggrega@on
When)the)next)hop)info.)of)b)and)c)is)iden5cal;)
e.g.,)
)b:)prefix)0.0.0.0/2,)next)hop)X)
)c:)prefix)128.0.0.0/1,)next)hop)X
Aggregate)b)and)c)to)x’)
(x’:)prefix)aggregated)[0.0.0.0/0],)next)hop)X)
†)in)lisle)endian
Poptrie:)Direct)Poin5ng
Aug.)18,)2015
Poptrie:)A)Compressed)Trie)with)Popula5on)Count)
for)Fast)and)Scalable)So<ware)IP)Rou5ng)Table)Lookup
	
Extract)and)lookup)s)bits)at)the)first)stage)(like)other)algorithms)such)as)DXR)
0.0.0.0/18
0.0.64.0/18
192.0.0.0/18
N.B.,)illustrated)the)case)of)s)=)18
0.0.128.0/18
1
1
0
flag:)leaf)(0))or)internal)node)(1)
leaf0
pointer
pointer
leaf
TopVlevel)array:)Array)of)length)2s
Internal)node
Internal)node
Poptriex):)Poptrie)with)s'=)x
Implementa5on
•  Data)size)
– Internal)node)(with)leafvec):)24)bytes)
•  vector,)leafvec:)8)bytes)(k=6))
•  base0,)base1:)4)bytes)
–  Index)in)the)con5guous)array†)instead)of)memory)address)
– Leaf)node:)2)bytes)
– Direct)poin5ng)entry:)4)bytes)
•  Code)in)C:)hsps://github.com/pixos/poptrie)
Aug.)18,)2015
Poptrie:)A)Compressed)Trie)with)Popula5on)Count)
for)Fast)and)Scalable)So<ware)IP)Rou5ng)Table)Lookup
	
†)The)con5guous)arrays)of)the)internal)and)leaf)nodes)are)managed)by)the)buddy)
memory)allocator)to)allocate)an)array)of)descendant)nodes.)
Evalua5ons
•  Effect)of)Extensions)in)Poptrie)
•  Mul5core)Scalability)
•  Comparison)with)Other)Algorithms)
–  Average)lookup)rate)
•  Traffic)pasern:)Sequen5al,)repeated,)random,)real)trace)
•  Rou5ng)tables:)3)private,)32)public,)4)synthe5c)
–  CPU)cycles)per)lookup)
•  Update)
•  Performance)in)IPv6
Aug.)18,)2015
Poptrie:)A)Compressed)Trie)with)Popula5on)Count)
for)Fast)and)Scalable)So<ware)IP)Rou5ng)Table)Lookup
Equipment)for)the)evalua5ons:)
Intel(R))Core)i7)4770K)(3.9)GHz,)8)MiB)cache))
with)four)8)GB)DDR3V1866)RAM)
(using)a)single)core))
Effect)of)Extensions)in)Poptrie
Algorithm&/&
Extensions
s #&of&internal&
nodes
#&of&leaves Memory&
[MiB]&
Rate&[Mlps]
Radix – – – 30.48 8.82
Poptrie)(basic))
without)route)
aggrega5on
0 64,009 4,032,568 8.67 87.71
16 172,110 10,862,901 23.60 130.72
18 61,282 3,911,422 9.40 170.69
Poptrie)(leafvec))
without)route)
aggrega5on
0 64,009 280,673 2.00 89.15
16 172,110 347,449 4.85 154.33
18 61,282 269,320 2.91 191.95
Poptrie 0 43,191 263,381 1.49 96.27
16 86,171 274,145 2.75 198.28
18 40,760 245,034 2.40 240.52
1.)leafvec)significantly)contributes)the)memory)footprint)reduc5on.
Rou5ng)table:)Backbone)core)router)of)5erV1)ISP)(Jan.)9,)2015),)Traffic)pasern:)Random
2.)Route)aggrega5on)contributes)to)reduce)the)internal)nodes)(i.e.,)average)depth).
Mlps)
=)Million)lookups)
)))per)second
Comparison)with)Other)Algorithms)
(for)random)traffic)pasern)
Algorithm Memory&[MiB] Rate&[Mlps]
Radix 30.48 8.82
Tree)BitMap 2.62 56.24
Tree)BitMap)(64Vary) 3.10 61.61
SAIL 44.24 158.22
D16R 1.16 116.63
D18R 1.91 179.92
Poptrie16 2.75 198.28
Poptrie18 2.40 240.52
Aug.)18,)2015
Poptrie:)A)Compressed)Trie)with)Popula5on)Count)
for)Fast)and)Scalable)So<ware)IP)Rou5ng)Table)Lookup
Rou5ng)table:)Backbone)core)router)of)5erV1)ISP)(Jan.)9,)2015),)Traffic)pasern:)Random
Poptrie18)runs)1.34–27.3x)faster)than)the)other)algorithms
PerVLookup)Performance)Analysis
Aug.)18,)2015
Poptrie:)A)Compressed)Trie)with)Popula5on)Count)
for)Fast)and)Scalable)So<ware)IP)Rou5ng)Table)Lookup
Performance)evalua5on)machine)
with)my)singleVtask)opera5ng)system
c0)=)rdpmc()
c1)=)rdpmc()
r)=)lookup(key)
key)=)recv()
send(r,)c1)V)c0)
Rx
Tx
NIC
UDP)
header
key
UDP)
header
r,)c1)V)c0
Linux)machine
rdpmc):)read)performance)monitoring)counter)
(i.e.,)CPU)cycles))
UDP)packet
UDP)packet
Measured)CPU)cycles)(c1)V)c0))
for)224)random)keys)
(with)the)same)random)seed)
for)different)algorithms))
PerVLookup)Performance)Analysis:)
Cumula5ve)Distribu5on)of)CPU)Cycles
Aug.)18,)2015
Poptrie:)A)Compressed)Trie)with)Popula5on)Count)for)Fast)and)
Scalable)So<ware)IP)Rou5ng)Table)Lookup
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0 50 100 150 200 250 300 350
CDF
CPU cycles per lookup
Poptrie18
D18R
Poptrie16
D16R
SAIL
It)is)worth)to)analyze)perVlookup)performance)than)the)average!
PerVLookup)Performance)Analysis:)
Binary)Radix)Depth
Aug.)18,)2015
Poptrie:)A)Compressed)Trie)with)Popula5on)Count)for)Fast)and)
Scalable)So<ware)IP)Rou5ng)Table)Lookup
d
c
b
0
10
1
a
0
0.0.0.0/0
128.0.0.0/1
64.0.0.0/3
Radix&Tree
0.0.0.0/2
Binary)radix)depth)=)Search)depth)in)the)radix)tree)
•  0.0.0.0/2):)2
•  64.0.0.0/3):)3)
•  96.0.0.0/3&:&2&&(matching)0.0.0.0/0)&
•  128.0.0.0/1):)1
0 4 8 12 16 20 24 28 32
Prefix length
4
8
12
16
20
24
28
32
Binaryradixdepth
100
101
102
103
104
105
106
10
7
10
8
109
Rou5ng)table:)Backbone)core)router)of)5erV1)ISP)(Jan.)9,)2015)
PerVLookup)Performance)
at)Different)Binary)Radix)Depth
Aug.)18,)2015
Poptrie:)A)Compressed)Trie)with)Popula5on)Count)
for)Fast)and)Scalable)So<ware)IP)Rou5ng)Table)Lookup
0
50
100
150
200
250
300
350
2 4 6 8 10 12 14 16 18 20 22 24 26
CPUcyclesperlookup
Binary radix depth
D16R
0
50
100
150
200
250
300
350
2 4 6 8 10 12 14 16 18 20 22 24 26
CPUcyclesperlookup
Binary radix depth
D18R
0
50
100
150
200
250
300
350
2 4 6 8 10 12 14 16 18 20 22 24 26
CPUcyclesperlookup
Binary radix depth
Poptrie16
0
50
100
150
200
250
300
350
2 4 6 8 10 12 14 16 18 20 22 24 26
CPUcyclesperlookup Binary radix depth
Poptrie18
0
50
100
150
200
250
300
350
2 4 6 8 10 12 14 16 18 20 22 24 26
CPUcyclesperlookup
Binary radix depth
SAIL
Wicks:)5th/95th)percen5les)
Bodies:)25th/75th)percen5les)
Internal)bar:)Median
(3Vlevel)trie) (RangeVbase) (RangeVbase)
Rou5ng)table:)Backbone)core)router)of)5erV1)ISP)(Jan.)9,)2015)
PerVLookup)Performance)
at)Different)Binary)Radix)Depth
Aug.)18,)2015
Poptrie:)A)Compressed)Trie)with)Popula5on)Count)
for)Fast)and)Scalable)So<ware)IP)Rou5ng)Table)Lookup
0
50
100
150
200
250
300
350
2 4 6 8 10 12 14 16 18 20 22 24 26
CPUcyclesperlookup
Binary radix depth
D16R
0
50
100
150
200
250
300
350
2 4 6 8 10 12 14 16 18 20 22 24 26
CPUcyclesperlookup
Binary radix depth
D18R
0
50
100
150
200
250
300
350
2 4 6 8 10 12 14 16 18 20 22 24 26
CPUcyclesperlookup
Binary radix depth
Poptrie16
0
50
100
150
200
250
300
350
2 4 6 8 10 12 14 16 18 20 22 24 26
CPUcyclesperlookup Binary radix depth
Poptrie18
0
50
100
150
200
250
300
350
2 4 6 8 10 12 14 16 18 20 22 24 26
CPUcyclesperlookup
Binary radix depth
SAIL
Wicks:)5th/95th)percen5les)
Bodies:)25th/75th)percen5les)
Internal)bar:)Median
(3Vlevel)trie) (RangeVbase) (RangeVbase)
Rou5ng)table:)Backbone)core)router)of)5erV1)ISP)(Jan.)9,)2015)
O(1) O(1) O(1)
O(1) O(1)
binary)search binary)
search
2nd)level
Rou5ng)table:)Backbone)core)router)of)5erV1)ISP)(Jan.)9,)2015)
PerVLookup)Performance)
at)Different)Binary)Radix)Depth
Aug.)18,)2015
Poptrie:)A)Compressed)Trie)with)Popula5on)Count)
for)Fast)and)Scalable)So<ware)IP)Rou5ng)Table)Lookup
0
50
100
150
200
250
300
350
2 4 6 8 10 12 14 16 18 20 22 24 26
CPUcyclesperlookup
Binary radix depth
D16R
0
50
100
150
200
250
300
350
2 4 6 8 10 12 14 16 18 20 22 24 26
CPUcyclesperlookup
Binary radix depth
D18R
0
50
100
150
200
250
300
350
2 4 6 8 10 12 14 16 18 20 22 24 26
CPUcyclesperlookup
Binary radix depth
Poptrie16
0
50
100
150
200
250
300
350
2 4 6 8 10 12 14 16 18 20 22 24 26
CPUcyclesperlookup Binary radix depth
Poptrie18
0
50
100
150
200
250
300
350
2 4 6 8 10 12 14 16 18 20 22 24 26
CPUcyclesperlookup
Binary radix depth
SAIL
Wicks:)5th/95th)percen5les)
Bodies:)25th/75th)percen5les)
Internal)bar:)Median
≤)172)cycles
>)234)cycles
Average)Lookup)Rate:)
Random)vs.)Real)Traffic
Aug.)18,)2015
Poptrie:)A)Compressed)Trie)with)Popula5on)Count)
for)Fast)and)Scalable)So<ware)IP)Rou5ng)Table)Lookup
0
50
100
150
200
250
300
350
Tree BitMap SAIL D16R Poptrie16 D18R Poptrie18
Lookuprate[Mlps]
Data Structure and Algorithm
0
50
100
150
200
250
300
350
Tree BitMap SAIL D16R Poptrie16 D18R Poptrie18
Lookuprate[Mlps]
Data Structure and Algorithm
For)random)traffic For)real)traffic
(*))Rou5ng)table)is)dumped)at)an)AS)border)router)of)WIDE)project,)
and)traffic)trace)is)captured)at)the)transit)link)of)the)router.
Good)for)
repeated)paserns
Not)good)for)longer)
prefixes)(IGP)routes)
Bad)for)random
Binary&radix&depth Random Real
>18 22.1% 32.5%
>24 1.7% 21.8% Many)packets)
go)to)IGP)routes.
Performance)on)Large)Rou5ng)Tables
Algorithm SYN1&(with&764,847&routes) SYN2&(with&885,645&routes)
SAIL 102.86)Mlps N/A)(Overflowed)
D18R)(modified) 115.45)Mlps 102.59)Mlps
Poptrie18 188.02)Mlps 174.42)Mlps
Aug.)18,)2015
Poptrie:)A)Compressed)Trie)with)Popula5on)Count)
for)Fast)and)Scalable)So<ware)IP)Rou5ng)Table)Lookup
SYN1:)
•  /0V15):)split)into)four)prefixes)
•  /16V23):)split)into)two)prefixes)
SYN2:)
•  /0V15):)split)into)eight)prefixes)
•  /16V19):)split)into)four)prefixes)
•  /20V23):)split)into)two)prefixes)
Two)synthe5c)datasets)from)the)rou5ng)table)of)a)backbone)
core)router)of)5erV1)ISP
Poptrie18)is)1.63–1.70x)faster)than)D18R.)
Traffic)pasern:)Random
Conclusion
•  Poptrie:)Mul5way)trie)for)IP)rou5ng)table)
lookup)in)so<ware)
– Small)memory)footprint)with)popula5on)count)
•  e.g.,)2.4)MiB)for)a)global)5erV1)ISP’s)full)route)
– Good)performance)through)comprehensive)
evalua5on)
•  4–578%)faster)than)other)stateVofVtheVart)technologies)
–  Private)and)public)IPv4/IPv6)rou5ng)tables)
–  FutureVenvisioned)800K+)IPv4)routes)
•  Advantageous)for)longer)prefixes)
–  demonstrated)through)perVlookup)performance)analysis)
Aug.)18,)2015
Poptrie:)A)Compressed)Trie)with)Popula5on)Count)
for)Fast)and)Scalable)So<ware)IP)Rou5ng)Table)Lookup
BACKUP&SLIDES
Aug.)18,)2015
Poptrie:)A)Compressed)Trie)with)Popula5on)Count)
for)Fast)and)Scalable)So<ware)IP)Rou5ng)Table)Lookup
Tree)BitMap:)Succinct)Data)Structure
Aug.)18,)2015
Poptrie:)A)Compressed)Trie)with)Popula5on)Count)for)Fast)and)
Scalable)So<ware)IP)Rou5ng)Table)Lookup
1
0 1
1 1
1
d
c
b
0
1
e
0
1
a
0
0.0.0.0/0
128.0.0.0/1
0.0.0.0/2 64.0.0.0/2
64.0.0.0/3
Radix&Tree
d c b e
0 0 Result)pointer
Child)pointer
)Mul5way)trie
Node)array
Mul5Vbit)node
Tree&BitMap
SAIL:)3Vlevel)Mul5way)Trie
Aug.)18,)2015
Poptrie:)A)Compressed)Trie)with)Popula5on)Count)for)Fast)and)
Scalable)So<ware)IP)Rou5ng)Table)Lookup
2nd)level:)28Vary)
/0V16
/17V24
/25V32
3rd)level:)28Vary
1st)level:)216Vary
#)in)L1/L2)cache
#)in)L3)cache/DRAM
#)in)DRAM
")Slow&when&cache&miss&occurs)
DXR:)Binary)Search)in)Range)Table
Aug.)18,)2015
Poptrie:)A)Compressed)Trie)with)Popula5on)Count)for)Fast)and)
Scalable)So<ware)IP)Rou5ng)Table)Lookup
0.0.0.0/18
0.0.64.0/18
192.0.0.0/18 192.0.0.0 a
192.0.2.0 b
192.0.3.0 a
Next)hopStar5ng)at
Directly&indexed&table
=)192.0.0.0V192.0.1.255
=)192.0.2.0V192.0.2.255
=)192.0.3.0V192.0.63.255
1))O(1))lookup
2))Binary)search)
for)matching)range)
(within)L1)cache)line(s)))
Range&table
N.B.,)illustrated)the)case)of)X)=)18
" Slow&for&large&range&tables&
(e.g.,)a)cluster)of)IGP)routes))
LockVfree)Update)Procedure
Internal node
1 1 0 0
vector base0
N[2048] N[2049] N[2050]
31290 0 0 1
leafvec base1
2048
N
L
1
L[3129]
base1
1024
Node array (X) Top of the marked internal nodes
Parent to be replaced
Figure 6: The lock-free update procedure to th
internal node.
Updated prefix
Updated leaves
Replace these
internal nodes
Top of the marked triangles
Mul5core)Scalability)Evalua5on)for)
Random)Traffic
Aug.)18,)2015
Poptrie:)A)Compressed)Trie)with)Popula5on)Count)for)Fast)and)
Scalable)So<ware)IP)Rou5ng)Table)Lookup
0
100
200
300
400
500
600
700
800
900
1000
1 2 3 4
Lookuprate[Mlps]
# of threads
REAL-Tier1-A
REAL-Tier1-B
REALVTier1VA:)Global)TierV1’s)BGP)Router)
REALVTier1VB:)Domes5c)ISP’s)BGP)Router
Performance)on)IPv6)Rou5ng)Table
Aug.)18,)2015
Poptrie:)A)Compressed)Trie)with)Popula5on)Count)
for)Fast)and)Scalable)So<ware)IP)Rou5ng)Table)Lookup
Algorithm Average&Lookup&
rate&[Mlps]
SAIL N/A)(no)support)for)more)
specific)routes)than)/64)
D16R 163.07
D18R 169.91
Poptrie16 209.84
Poptrie18 211.32
•  On)a)rou5ng)table)dumped)at)a)5erV1)ISP)(with)20,440)prefixes))
•  For)2^32)random)addresses)within)2000::/8)
Poptrie18)is)1.24x)faster)than)D18R.)

More Related Content

What's hot

TCP/IP Ağlarda Parçalanmış Paketler ve Etkileri
TCP/IP Ağlarda Parçalanmış Paketler ve EtkileriTCP/IP Ağlarda Parçalanmış Paketler ve Etkileri
TCP/IP Ağlarda Parçalanmış Paketler ve EtkileriBGA Cyber Security
 
Putting Firepower Into The Next Generation Firewall
Putting Firepower Into The Next Generation FirewallPutting Firepower Into The Next Generation Firewall
Putting Firepower Into The Next Generation FirewallCisco Canada
 
SCYTHE Purple Team Workshop with Tim Schulz
SCYTHE Purple Team Workshop with Tim SchulzSCYTHE Purple Team Workshop with Tim Schulz
SCYTHE Purple Team Workshop with Tim SchulzJorge Orchilles
 
NATS Connect Live!
NATS Connect Live!NATS Connect Live!
NATS Connect Live!NATS
 
Cloud Native Networking & Security with Cilium & eBPF
Cloud Native Networking & Security with Cilium & eBPFCloud Native Networking & Security with Cilium & eBPF
Cloud Native Networking & Security with Cilium & eBPFRaphaël PINSON
 
Suricata ile siber tehdit avcılığı
Suricata ile siber tehdit avcılığıSuricata ile siber tehdit avcılığı
Suricata ile siber tehdit avcılığıKurtuluş Karasu
 
Opentelemetry - From frontend to backend
Opentelemetry - From frontend to backendOpentelemetry - From frontend to backend
Opentelemetry - From frontend to backendSebastian Poxhofer
 
TRex Traffic Generator - Hanoch Haim
TRex Traffic Generator - Hanoch HaimTRex Traffic Generator - Hanoch Haim
TRex Traffic Generator - Hanoch Haimharryvanhaaren
 
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線Motonori Shindo
 
DockerCon 2017 - Cilium - Network and Application Security with BPF and XDP
DockerCon 2017 - Cilium - Network and Application Security with BPF and XDPDockerCon 2017 - Cilium - Network and Application Security with BPF and XDP
DockerCon 2017 - Cilium - Network and Application Security with BPF and XDPThomas Graf
 
Adopting Open Telemetry as Distributed Tracer on your Microservices at Kubern...
Adopting Open Telemetry as Distributed Tracer on your Microservices at Kubern...Adopting Open Telemetry as Distributed Tracer on your Microservices at Kubern...
Adopting Open Telemetry as Distributed Tracer on your Microservices at Kubern...Tonny Adhi Sabastian
 
Cilium - API-aware Networking and Security for Containers based on BPF
Cilium - API-aware Networking and Security for Containers based on BPFCilium - API-aware Networking and Security for Containers based on BPF
Cilium - API-aware Networking and Security for Containers based on BPFThomas Graf
 
VyOSで作るIPv4 Router/IPv6 Bridge
VyOSで作るIPv4 Router/IPv6 BridgeVyOSで作るIPv4 Router/IPv6 Bridge
VyOSで作るIPv4 Router/IPv6 BridgeKLab Inc. / Tech
 
Beyaz Şapkalı Hacker CEH Eğitimi - Pasif Bilgi Toplama (OSINT)
Beyaz Şapkalı Hacker CEH Eğitimi - Pasif Bilgi Toplama (OSINT)Beyaz Şapkalı Hacker CEH Eğitimi - Pasif Bilgi Toplama (OSINT)
Beyaz Şapkalı Hacker CEH Eğitimi - Pasif Bilgi Toplama (OSINT)PRISMA CSI
 
Hardware-assisted Isolated Execution Environment to run trusted OS and applic...
Hardware-assisted Isolated Execution Environment to run trusted OS and applic...Hardware-assisted Isolated Execution Environment to run trusted OS and applic...
Hardware-assisted Isolated Execution Environment to run trusted OS and applic...Kuniyasu Suzaki
 
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 19
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 19Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 19
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 19BGA Cyber Security
 

What's hot (20)

Building active directory lab for red teaming
Building active directory lab for red teamingBuilding active directory lab for red teaming
Building active directory lab for red teaming
 
TCP/IP Ağlarda Parçalanmış Paketler ve Etkileri
TCP/IP Ağlarda Parçalanmış Paketler ve EtkileriTCP/IP Ağlarda Parçalanmış Paketler ve Etkileri
TCP/IP Ağlarda Parçalanmış Paketler ve Etkileri
 
Putting Firepower Into The Next Generation Firewall
Putting Firepower Into The Next Generation FirewallPutting Firepower Into The Next Generation Firewall
Putting Firepower Into The Next Generation Firewall
 
SCYTHE Purple Team Workshop with Tim Schulz
SCYTHE Purple Team Workshop with Tim SchulzSCYTHE Purple Team Workshop with Tim Schulz
SCYTHE Purple Team Workshop with Tim Schulz
 
Graylog
GraylogGraylog
Graylog
 
NATS Connect Live!
NATS Connect Live!NATS Connect Live!
NATS Connect Live!
 
Cloud Native Networking & Security with Cilium & eBPF
Cloud Native Networking & Security with Cilium & eBPFCloud Native Networking & Security with Cilium & eBPF
Cloud Native Networking & Security with Cilium & eBPF
 
Suricata ile siber tehdit avcılığı
Suricata ile siber tehdit avcılığıSuricata ile siber tehdit avcılığı
Suricata ile siber tehdit avcılığı
 
Opentelemetry - From frontend to backend
Opentelemetry - From frontend to backendOpentelemetry - From frontend to backend
Opentelemetry - From frontend to backend
 
TRex Traffic Generator - Hanoch Haim
TRex Traffic Generator - Hanoch HaimTRex Traffic Generator - Hanoch Haim
TRex Traffic Generator - Hanoch Haim
 
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線
 
DockerCon 2017 - Cilium - Network and Application Security with BPF and XDP
DockerCon 2017 - Cilium - Network and Application Security with BPF and XDPDockerCon 2017 - Cilium - Network and Application Security with BPF and XDP
DockerCon 2017 - Cilium - Network and Application Security with BPF and XDP
 
Adopting Open Telemetry as Distributed Tracer on your Microservices at Kubern...
Adopting Open Telemetry as Distributed Tracer on your Microservices at Kubern...Adopting Open Telemetry as Distributed Tracer on your Microservices at Kubern...
Adopting Open Telemetry as Distributed Tracer on your Microservices at Kubern...
 
Kali Linux Hakkında Herşey
Kali Linux Hakkında HerşeyKali Linux Hakkında Herşey
Kali Linux Hakkında Herşey
 
Cilium - API-aware Networking and Security for Containers based on BPF
Cilium - API-aware Networking and Security for Containers based on BPFCilium - API-aware Networking and Security for Containers based on BPF
Cilium - API-aware Networking and Security for Containers based on BPF
 
VyOSで作るIPv4 Router/IPv6 Bridge
VyOSで作るIPv4 Router/IPv6 BridgeVyOSで作るIPv4 Router/IPv6 Bridge
VyOSで作るIPv4 Router/IPv6 Bridge
 
Beyaz Şapkalı Hacker CEH Eğitimi - Pasif Bilgi Toplama (OSINT)
Beyaz Şapkalı Hacker CEH Eğitimi - Pasif Bilgi Toplama (OSINT)Beyaz Şapkalı Hacker CEH Eğitimi - Pasif Bilgi Toplama (OSINT)
Beyaz Şapkalı Hacker CEH Eğitimi - Pasif Bilgi Toplama (OSINT)
 
Zoned Storage
Zoned StorageZoned Storage
Zoned Storage
 
Hardware-assisted Isolated Execution Environment to run trusted OS and applic...
Hardware-assisted Isolated Execution Environment to run trusted OS and applic...Hardware-assisted Isolated Execution Environment to run trusted OS and applic...
Hardware-assisted Isolated Execution Environment to run trusted OS and applic...
 
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 19
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 19Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 19
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 19
 

Similar to Poptrie: Fast IP Routing Table Lookup

#MENT: Online & Mobile Trends - India & Worldwide by Gurmit Singh, MD Yahoo I...
#MENT: Online & Mobile Trends - India & Worldwide by Gurmit Singh, MD Yahoo I...#MENT: Online & Mobile Trends - India & Worldwide by Gurmit Singh, MD Yahoo I...
#MENT: Online & Mobile Trends - India & Worldwide by Gurmit Singh, MD Yahoo I...tiemumbai
 
ใบความรู้ที่ 1 ความรู้เกี่ยวกับเว็บไซต์
ใบความรู้ที่ 1 ความรู้เกี่ยวกับเว็บไซต์ใบความรู้ที่ 1 ความรู้เกี่ยวกับเว็บไซต์
ใบความรู้ที่ 1 ความรู้เกี่ยวกับเว็บไซต์พ่อ รักน้องต้นข้าว
 
Python gis mapping
Python gis mappingPython gis mapping
Python gis mappingkikocorreoso
 
Software libre y modelos de programación en la investigación con supercomputa...
Software libre y modelos de programación en la investigación con supercomputa...Software libre y modelos de programación en la investigación con supercomputa...
Software libre y modelos de programación en la investigación con supercomputa...Andrés Gómez
 
Estándares tecnológicos para la interoperabilidad en la administración inteli...
Estándares tecnológicos para la interoperabilidad en la administración inteli...Estándares tecnológicos para la interoperabilidad en la administración inteli...
Estándares tecnológicos para la interoperabilidad en la administración inteli...Luis Bermudez
 
Reutilización de datos procedentes de tarjetas sin contacto en el ámbito del ...
Reutilización de datos procedentes de tarjetas sin contacto en el ámbito del ...Reutilización de datos procedentes de tarjetas sin contacto en el ámbito del ...
Reutilización de datos procedentes de tarjetas sin contacto en el ámbito del ...Luis Criado
 
Klink-2: integrating multiple web sources to generate semantic topic networks
 Klink-2: integrating multiple web sources to generate semantic topic networks Klink-2: integrating multiple web sources to generate semantic topic networks
Klink-2: integrating multiple web sources to generate semantic topic networksFrancesco Osborne
 
Website qualityaddressingqualitygaps2014
Website qualityaddressingqualitygaps2014Website qualityaddressingqualitygaps2014
Website qualityaddressingqualitygaps2014Luisa Mich
 
Situación de las iniciativas de Open Data internacionales (y algunas recomen...
Situación de las iniciativas de Open Data internacionales (y algunas recomen...Situación de las iniciativas de Open Data internacionales (y algunas recomen...
Situación de las iniciativas de Open Data internacionales (y algunas recomen...Oscar Corcho
 
Las TIC y su aporte al Desarrollo de la Sociedad de la Informacion
Las TIC y su aporte al Desarrollo de la Sociedad de la InformacionLas TIC y su aporte al Desarrollo de la Sociedad de la Informacion
Las TIC y su aporte al Desarrollo de la Sociedad de la InformacionProGobernabilidad Perú
 
Training Autocad Indonesia
Training Autocad IndonesiaTraining Autocad Indonesia
Training Autocad IndonesiaEdi Supriyanto
 
Esri Open Platform
Esri Open PlatformEsri Open Platform
Esri Open PlatformEsri España
 

Similar to Poptrie: Fast IP Routing Table Lookup (19)

#MENT: Online & Mobile Trends - India & Worldwide by Gurmit Singh, MD Yahoo I...
#MENT: Online & Mobile Trends - India & Worldwide by Gurmit Singh, MD Yahoo I...#MENT: Online & Mobile Trends - India & Worldwide by Gurmit Singh, MD Yahoo I...
#MENT: Online & Mobile Trends - India & Worldwide by Gurmit Singh, MD Yahoo I...
 
ใบความรู้ที่ 1 ความรู้เกี่ยวกับเว็บไซต์
ใบความรู้ที่ 1 ความรู้เกี่ยวกับเว็บไซต์ใบความรู้ที่ 1 ความรู้เกี่ยวกับเว็บไซต์
ใบความรู้ที่ 1 ความรู้เกี่ยวกับเว็บไซต์
 
Python gis mapping
Python gis mappingPython gis mapping
Python gis mapping
 
Software libre y modelos de programación en la investigación con supercomputa...
Software libre y modelos de programación en la investigación con supercomputa...Software libre y modelos de programación en la investigación con supercomputa...
Software libre y modelos de programación en la investigación con supercomputa...
 
Estándares tecnológicos para la interoperabilidad en la administración inteli...
Estándares tecnológicos para la interoperabilidad en la administración inteli...Estándares tecnológicos para la interoperabilidad en la administración inteli...
Estándares tecnológicos para la interoperabilidad en la administración inteli...
 
Reutilización de datos procedentes de tarjetas sin contacto en el ámbito del ...
Reutilización de datos procedentes de tarjetas sin contacto en el ámbito del ...Reutilización de datos procedentes de tarjetas sin contacto en el ámbito del ...
Reutilización de datos procedentes de tarjetas sin contacto en el ámbito del ...
 
Klink-2: integrating multiple web sources to generate semantic topic networks
 Klink-2: integrating multiple web sources to generate semantic topic networks Klink-2: integrating multiple web sources to generate semantic topic networks
Klink-2: integrating multiple web sources to generate semantic topic networks
 
HP E INTEL CONMEMORAN LOS 20 AÑOS DEL CENTRO DE SUPERCOMPUTACIÓN DE GALICIA
 HP E INTEL CONMEMORAN LOS 20 AÑOS DEL CENTRO DE SUPERCOMPUTACIÓN DE GALICIA HP E INTEL CONMEMORAN LOS 20 AÑOS DEL CENTRO DE SUPERCOMPUTACIÓN DE GALICIA
HP E INTEL CONMEMORAN LOS 20 AÑOS DEL CENTRO DE SUPERCOMPUTACIÓN DE GALICIA
 
Website qualityaddressingqualitygaps2014
Website qualityaddressingqualitygaps2014Website qualityaddressingqualitygaps2014
Website qualityaddressingqualitygaps2014
 
CO2 Re-use
CO2 Re-use CO2 Re-use
CO2 Re-use
 
Situación de las iniciativas de Open Data internacionales (y algunas recomen...
Situación de las iniciativas de Open Data internacionales (y algunas recomen...Situación de las iniciativas de Open Data internacionales (y algunas recomen...
Situación de las iniciativas de Open Data internacionales (y algunas recomen...
 
Análisis de datos en mundos virtuales educativos
Análisis de datos en mundos virtuales educativosAnálisis de datos en mundos virtuales educativos
Análisis de datos en mundos virtuales educativos
 
Presentacion3
Presentacion3Presentacion3
Presentacion3
 
Las TIC y su aporte al Desarrollo de la Sociedad de la Informacion
Las TIC y su aporte al Desarrollo de la Sociedad de la InformacionLas TIC y su aporte al Desarrollo de la Sociedad de la Informacion
Las TIC y su aporte al Desarrollo de la Sociedad de la Informacion
 
Azael FernáNdez1
Azael FernáNdez1Azael FernáNdez1
Azael FernáNdez1
 
Training Autocad Indonesia
Training Autocad IndonesiaTraining Autocad Indonesia
Training Autocad Indonesia
 
Esri Open Platform
Esri Open PlatformEsri Open Platform
Esri Open Platform
 
R project nube (1)
R project nube (1)R project nube (1)
R project nube (1)
 
Novedades en CATNIX
Novedades en CATNIXNovedades en CATNIX
Novedades en CATNIX
 

Recently uploaded

S.3 El debate Impacto de la Inteligencia Artificial en la Sociedad Moderna
S.3 El debate Impacto de la Inteligencia Artificial en la Sociedad ModernaS.3 El debate Impacto de la Inteligencia Artificial en la Sociedad Moderna
S.3 El debate Impacto de la Inteligencia Artificial en la Sociedad ModernaRodrigoReynaldo1
 
Presentación conformación brigada de emergencia.ppt
Presentación conformación brigada de emergencia.pptPresentación conformación brigada de emergencia.ppt
Presentación conformación brigada de emergencia.pptaletapiaapr
 
Figuas de Dicción.pptx ,definición, clasificación, ejemplos importantes de...
Figuas de Dicción.pptx ,definición, clasificación, ejemplos   importantes  de...Figuas de Dicción.pptx ,definición, clasificación, ejemplos   importantes  de...
Figuas de Dicción.pptx ,definición, clasificación, ejemplos importantes de...marisolmendieta1310
 
PRESENTACION GESTION DE PROYECTOS GRUPO 4 INVIERTE PE.pdf
PRESENTACION GESTION DE PROYECTOS GRUPO 4 INVIERTE PE.pdfPRESENTACION GESTION DE PROYECTOS GRUPO 4 INVIERTE PE.pdf
PRESENTACION GESTION DE PROYECTOS GRUPO 4 INVIERTE PE.pdfRubenBrayanVQ
 
HISTORIA Y EVOLUCIÓN DE LA ARTILLERIA-1.pptx
HISTORIA Y EVOLUCIÓN DE LA ARTILLERIA-1.pptxHISTORIA Y EVOLUCIÓN DE LA ARTILLERIA-1.pptx
HISTORIA Y EVOLUCIÓN DE LA ARTILLERIA-1.pptxenyereduardo27
 
CURSO DE INICIACIÓN Á ASTRONOMÍA: O noso lugar no universo
CURSO DE INICIACIÓN Á ASTRONOMÍA: O noso lugar no universoCURSO DE INICIACIÓN Á ASTRONOMÍA: O noso lugar no universo
CURSO DE INICIACIÓN Á ASTRONOMÍA: O noso lugar no universoanoiteenecesaria
 
Diapositiva del JUICIO VALORATIVO - 2024
Diapositiva del JUICIO VALORATIVO - 2024Diapositiva del JUICIO VALORATIVO - 2024
Diapositiva del JUICIO VALORATIVO - 2024KellySue4
 
CURSO DE INICIACIÓN Á ASTRONOMÍA Eclipses na Coruña
CURSO DE INICIACIÓN Á ASTRONOMÍA Eclipses na CoruñaCURSO DE INICIACIÓN Á ASTRONOMÍA Eclipses na Coruña
CURSO DE INICIACIÓN Á ASTRONOMÍA Eclipses na Coruñaanoiteenecesaria
 
GESTOS Y POSTURAS EN LA MISA PARA LOS MONAGUILLOS.pptx
GESTOS Y POSTURAS EN LA MISA PARA LOS MONAGUILLOS.pptxGESTOS Y POSTURAS EN LA MISA PARA LOS MONAGUILLOS.pptx
GESTOS Y POSTURAS EN LA MISA PARA LOS MONAGUILLOS.pptxCarlosRizos
 

Recently uploaded (9)

S.3 El debate Impacto de la Inteligencia Artificial en la Sociedad Moderna
S.3 El debate Impacto de la Inteligencia Artificial en la Sociedad ModernaS.3 El debate Impacto de la Inteligencia Artificial en la Sociedad Moderna
S.3 El debate Impacto de la Inteligencia Artificial en la Sociedad Moderna
 
Presentación conformación brigada de emergencia.ppt
Presentación conformación brigada de emergencia.pptPresentación conformación brigada de emergencia.ppt
Presentación conformación brigada de emergencia.ppt
 
Figuas de Dicción.pptx ,definición, clasificación, ejemplos importantes de...
Figuas de Dicción.pptx ,definición, clasificación, ejemplos   importantes  de...Figuas de Dicción.pptx ,definición, clasificación, ejemplos   importantes  de...
Figuas de Dicción.pptx ,definición, clasificación, ejemplos importantes de...
 
PRESENTACION GESTION DE PROYECTOS GRUPO 4 INVIERTE PE.pdf
PRESENTACION GESTION DE PROYECTOS GRUPO 4 INVIERTE PE.pdfPRESENTACION GESTION DE PROYECTOS GRUPO 4 INVIERTE PE.pdf
PRESENTACION GESTION DE PROYECTOS GRUPO 4 INVIERTE PE.pdf
 
HISTORIA Y EVOLUCIÓN DE LA ARTILLERIA-1.pptx
HISTORIA Y EVOLUCIÓN DE LA ARTILLERIA-1.pptxHISTORIA Y EVOLUCIÓN DE LA ARTILLERIA-1.pptx
HISTORIA Y EVOLUCIÓN DE LA ARTILLERIA-1.pptx
 
CURSO DE INICIACIÓN Á ASTRONOMÍA: O noso lugar no universo
CURSO DE INICIACIÓN Á ASTRONOMÍA: O noso lugar no universoCURSO DE INICIACIÓN Á ASTRONOMÍA: O noso lugar no universo
CURSO DE INICIACIÓN Á ASTRONOMÍA: O noso lugar no universo
 
Diapositiva del JUICIO VALORATIVO - 2024
Diapositiva del JUICIO VALORATIVO - 2024Diapositiva del JUICIO VALORATIVO - 2024
Diapositiva del JUICIO VALORATIVO - 2024
 
CURSO DE INICIACIÓN Á ASTRONOMÍA Eclipses na Coruña
CURSO DE INICIACIÓN Á ASTRONOMÍA Eclipses na CoruñaCURSO DE INICIACIÓN Á ASTRONOMÍA Eclipses na Coruña
CURSO DE INICIACIÓN Á ASTRONOMÍA Eclipses na Coruña
 
GESTOS Y POSTURAS EN LA MISA PARA LOS MONAGUILLOS.pptx
GESTOS Y POSTURAS EN LA MISA PARA LOS MONAGUILLOS.pptxGESTOS Y POSTURAS EN LA MISA PARA LOS MONAGUILLOS.pptx
GESTOS Y POSTURAS EN LA MISA PARA LOS MONAGUILLOS.pptx
 

Poptrie: Fast IP Routing Table Lookup