Lookup e Classificazione ad Alte Prestazioni

Transcript

Lookup e Classificazione ad Alte Prestazioni
Ottobre 2006
Lookup e Classificazione ad Alte
Prestazioni
Olivier Morandi
[email protected]
Ottobre 2006
Packet Switching & Forwarding
Switching
Dato l’indirizzo di destinazione di un pacchetto,
decidere attraverso quale interfaccia deve essere
inviato
Negli switch Ethernet tale funzionalità è implementata
tramite algoritmi di lookup a match esatto
Nei router IP tale funzionalità fa parte delle decisioni di
forwarding
Forwarding
Dato l’indirizzo di destinazione di un pacchetto,
decidere a quale altro router (e attraverso quale
interfaccia) deve essere inoltrato
Nei router IP tale funzionalità è implementata tramite
algoritmi di lookup con longest prefix match
Lookup & Classification - 2
Ottobre 2006
RFC 1812:
Requirements for IPv4 Routers
An Internet router performs the following functions:
Interfaces to two or more packet networks.
Receives Internet datagrams and sends them to an
appropriate output interface
Chooses a next-hop destination for each IP datagram,
based on the information in its routing database
(Usually) supports an interior gateway protocol. In
addition, some routers will need to support an exterior
gateway protocol (EGP)
Provides network management and system support
facilities, including loading, debugging, status
reporting, exception reporting and control
Optionally: a router MAY choose to perform special
processing on incoming packets
Lookup & Classification - 3
Ottobre 2006
Special processing
Esempi
Scarto di pacchetti per ragioni di sicurezza (firewalling,
Access Control Lists, ecc.)
Funzionalità di NAT
QoS:
Consegna dei pacchetti in base a requisiti di latenza
prestabiliti
Consegna dei pacchetti in base a criteri di priorità
prestabiliti
Acquisizione di dati statistici sulle caratteristiche del
traffico che attraversa il router (e.g. Flow Monitoring)
Funzionalità
avanzate
di
Intrusion
Detection/Prevention
Tali funzionalità si basano sull’identificazione di
flussi di traffico, cioè su funzionalità di
classificazione dei pacchetti
Lookup & Classification - 4
Ottobre 2006
Outline
Di cosa parliamo?
Tecnologie e algoritmi per il lookup
Soluzioni
per Exact Match (per L2 switching,
MPLS)
Soluzioni
per Longest
switching/forwarding)
Prefix
Match
Tecnologie e algoritmi di Classificazione
Flow
Lookup & Classification - 5
Based Processing
(IP
Ottobre 2006
Line-rate per I router di backbone
ANNO
Line-Rate
Aggregato
(Gbps)
1999
2.5
6.25
28,62
2001
10
25
32,15
2003
40
100
8,04
2006
80
200
2,04
Packet-Rate per
Tempo di
pacchetti di 40 byte inter-arrivo
(Mpps)
(ns)
P. Gupta - 2006
Lookup & Classification - 6
Ottobre 2006
Tecnologie per le memorie (2006)
Tecnologia
Densità max
per chip
$/chip
($/MByte)
Latenza
DRAM
64 MB
$30-$50
($0.50-$0.75)
40-80ns
0.5-2W
SRAM
8 MB
$50-$60
($5-$8)
3-4ns
2-3W
TCAM
2 MB
$200-$250
($100-$125)
4-8ns
15-30W
Watts/chip
P. Gupta - 2006
Lookup & Classification - 7
Ottobre 2006
Metriche di valutazione degli
algoritmi di lookup
Velocità (proporzionale al numero di accessi a memoria)
Occupazione di memoria
Velocità di update
Scalabilità nelle dimensioni della tabella di lookup
Flessibilità dell’implementazione
Lookup & Classification - 8
Ottobre 2006
Label Swapping (ATM/MPLS)
Lookup & Classification - 9
Ottobre 2006
Label Swapping
Direct Lookup
RAM
2n-1
(n + k + m)
Data
(Output Label + QoS + Output Port)
MPLS
MPLS
1
•• 20
20 bit/label
bit/label == 1M
1M addresses
addresses
0
•Ogni
•Ogni riga
riga (24-32
(24-32 bit):
bit):
Address
n
Label (n bit)
La label indirizza direttamente un
elemento di una tabella in RAM
Lookup & Classification - 10
•Out
•Out Label
Label (20
(20 bit)
bit)
•QoS
•QoS (3
(3 bit)
bit)
•Out
•Out port
port (log
(log22 NPorts
NPorts bit)
bit)
•In
•In tutto
tutto max
max 32
32 MB
MB
Ottobre 2006
Ethernet Switching
Exact Lookup
L’indirizzo MAC-Destination Ethernet (48 bit) viene
utilizzato per scegliere la porta di destinazione verso
la quale inoltrare un frame
Gli indirizzi MAC sono globali
L’insieme degli indirizzi conosciuti da uno switch è
“sparso” e di dimensioni molto inferiori a 248
Un meccanismo di lookup diretto non è praticabile,
né auspicabile
Input Ports
Output Ports
11
22
33
ADDR
PORT
…
…
00C049F45B94
3
…
…
00-C0-49-F4-5B-94
DST
DST
nn
Lookup & Classification - 11
11
3
22
33
SRC
SRC
Ethernet Frame
nn
Ottobre 2006
Memorie CAM
Content Addressable Memories
Memorie associative: dato un valore in ingresso,
restituiscono l’indirizzo della cella che lo contiene
Il dato viene ricercato parallelamente in ogni locazione della
memoria
RAM
vs.
CAM
Matching
ADDRESS
DATA
ADDRESS
Lookup & Classification - 12
DATA
Ottobre 2006
Memorie CAM
Struttura
Ad ogni bit è associato un circuito di comparazione per verificare
la presenza di un match tra il bit registrato ed il corrispondente
bit in input
Un match completo su una riga attiva un segnale che viene
codificato per indicare la posizione della riga stessa
Per gestire match multipli si utilizzano encoder a priorità (righe
ad indirizzo più basso hanno priorità maggiore)
Spesso è presente una linea aggiuntiva che segnala l’effettiva
presenza di un match
Word w-2
Word w-1
Search Data Register
n bit
Search Word
Lookup & Classification - 13
Encoder
Word 0
Word 1
Match
Location
log2 w bit
Ottobre 2006
Ethernet Switching
Lookup Associativo tramite CAM
0
00-0A-8B-CD-A6-E3
00-00-00-00-00-00
w-1
Encoder
1
MAC TABLE
00-0A-8A-FA-98-26
00-0E-23-EF-77-34
RAM
log2 w
bit
00-00-00-00-00-00
Decoder
CAM
PORT TABLE
4
3
48 bit
Destination MAC Address
00-0E-23-EF-77-34
Lookup & Classification - 14
1
6
0
0
w-1
match
Search Data Register
0
Output Data Register
8 bit
Output PORT
3
Ottobre 2006
Lookup tramite CAM
Vantaggi
Ricerca
O(1)
Latenza comparabile con quella delle SRAM
Svantaggi
Densità
di bit è circa la metà rispetto alle SRAM
(18 Mbit/Chip nel 2005)
Costo per bit elevato
Elevata dissipazione di potenza
Lookup & Classification - 15
Ottobre 2006
Ethernet Switching
Lookup tramite hashing
2n-1
h=f(k)
n bit
MAC Address (K)
48 bit
0
L’indirizzo a 48 bit viene mappato su un indirizzo a n
bit, con n << 48 (e.g. 16 bit)
L’operazione di hashing è O(1)
Bisogna gestire le collisioni di chiavi diverse sullo
stesso hash (e.g. open hashing, double hashing)
Il numero degli accessi a memoria necessari per il
lookup non è predicibile
Lookup & Classification - 16
Ottobre 2006
Ethernet Switching
Lookup tramite hashing
Vantaggi:
Semplice
da implementare
Svantaggi
Utilizzo
inefficiente della memoria
Tempo di lookup non deterministico
Può essere una buona soluzione per switch
implementati in software
Lookup & Classification - 17
Ottobre 2006
Ethernet Switching
Lookup tramite Binary Search
Key = 9
N
N == 88
hh == O(log
N)
O(log22 N)
11
11
<
Storage:
Storage: O(N)
O(N)
<
Lookup
Lookup Speed:
Speed: O(log2
O(log2 N)
N)
66
h
<
44
<
33
Lookup & Classification - 18
14
14
<
99
<
12
12
<
17
17
Balanced Binary Search Tree
Un albero di ricerca binario può sempre essere
riarrangiato, in modo da minimizzarne l’altezza
L’elemento mediano dell’insieme viene posto alla
radice, ottenendo un albero bilanciato
Ottobre 2006
Binary Search Tree
Array con puntatori impliciti
L’albero può essere rappresentato attraverso un
array
Si può risparmiare lo spazio dei puntatori ai nodi
figli
Ogni elemento a[i] è padre di due figli
Cell: 0
2
1
11
h:
a[2*i + 1]
a[2*i + 2]
6
0
Lookup & Classification - 19
14
1
3
5
4
4
9
6
12
2
7
17
3
3
Ottobre 2006
Binary Search Tree
Implementazione a pipeline
Le prestazioni logaritmiche del BST spesso sono insufficienti
E’ possibile ottenere prestazioni O(1) sfruttando una pipeline di
elementi di elaborazione che operano ciascuno su un dato
diverso
Lo stadio al livello h confronta il dato in ingresso con uno tra 2h
valori
Ogni stadio comunica al successivo l’indice dell’elemento col
quale dovrà essere effettuato il confronto
Il throughput massimo è dato dalla velocità di elaborazione del
singolo elemento
La latenza (ritardo ingresso - uscita) dipende dal numero di
elementi nella pipeline
0
1
11
11
Lookup & Classification - 20
2
14
14
66
3
17
17
12
12
99
44
33
Ottobre 2006
Lookup in un router IP
H
E
A
D
E
R
Dst
Addr
Incoming
Packet
Forwarding Engine
Next Hop Computation
Forwarding Table
Dst-prefix
Next Hop
-------
-------
----
----
Unicast destination address based lookup
Lookup & Classification - 21
Next
Hop
Ottobre 2006
IPv4 Forwarding
Spazio di indirizzamento Classful
A
B
128.0.0.0
0.0.0.0
Classe
Range
C
D
E
192.0.0.0
MS bits
Net ID
Host ID
A
0.0.0.0
128.0.0.0
0
bits 1-7
bits 8-31
B
128.0.0.0
191.255.255.255
10
bits 2-15
bits 16-31
C
192.0.0.0
223.255.255.255
110
bits 3-23
bits 24-31
D (multicast)
224.0.0.0
239.255.255.255
1110
-
-
E (reserved)
240.0.0.0
255.255.255.255
11110
-
-
Lookup & Classification - 22
Ottobre 2006
IPv4 Forwarding
Class-Based Lookup
Network
Next Hop
if
27.0.0.0
130.192.16.1
1
172.34.0.0
130.192.25.4
2
193.34.10.0
130.192.16.1
1
IP
IP Address
Address
193.34.10.1
193.34.10.1
&
&
Natural
Natural Netmask
Netmask
255.255.255.0
255.255.255.0
193.34.10.0
Exact Match
Lookup
Lookup & Classification - 23
Ottobre 2006
IPv4 Forwarding
Longest Prefix Match
CIDR ha permesso di risolvere alcuni problemi propri del
routing class-based:
Spreco di indirizzi
Crescita esponenziale delle tabelle di routing
Con CIDR l’indirizzo perde ogni informazione riguardo alla
classe di appartenenza
E’ impossibile distinguere a priori la porzione di Net ID da
quella di Host ID
La routing table contiene un insieme di prefissi associati
ai link che permettono di raggiungere le destinazioni
corrispondenti
L’indirizzo di destinazione del pacchetto viene confrontato
con tutti i prefissi disponibili e viene scelto quello col
quale c’è un match di lunghezza maggiore (longest prefix
match)
Il pacchetto viene quindi inviato sul link corrispondente
Lookup & Classification - 24
Ottobre 2006
Longest Prefix Match
Esempio
Indirizzi a 8 bit
P1
P2
P3
P4
Prefix
Next-hop
111*
10*
1010*
10101*
H1
H2
H1
H4
Address: 10100101
Lookup & Classification - 25
Output
Link
1
3
1
2
Next Hop: H1, Out Link: 1
Ottobre 2006
Longest Prefix Match
Osservazioni
Osservazione
Conseguenza
~250.000 flussi contemporanei
sul backbone
50% dei pacchetti sono TCP
ACK (40 byte)
Lookup dominati dagli accessi
a memoria
~ 150.000 prefissi sulle tabelle
di routing (backbone)
Instabilità nei protocolli di
routing, multicast
Impossibilità di utilizzo di
tecniche di caching
Operazioni di lookup devono
essere effettuate a wire-speed
Velocità di lookup è misurata
dal numero di accessi a mem.
In crescita, si arriverà a
500.000 - 1 milione di prefissi
Tempi di update compresi tra
1ms e 1s
Lookup & Classification - 26
Ottobre 2006
Longest Prefix Match
Linear Search
Prefissi e dati accessori in un array o una
linked-list
Storage:
O(N)
Tempo di lookup: O(N)
Update: O(1)
Mantenendo la lista ordinata si
migliorare il tempo medio di ricerca
Il caso peggiore non è accettabile
Numero
Lookup & Classification - 27
degli accessi a memoria O(N)
può
Ottobre 2006
Longest Prefix Match
Ternary CAM
Memorie CAM in cui ogni bit può essere impostato a 0, 1, oppure X
(DON’T CARE)
Le operazioni di lookup si svolgono come nelle CAM, tranne che i bit
impostati a X non vengono confrontati
Se vi è più di un match, quello più lungo ottiene la priorità più alta
TCAM
RAM
Encoder
11XXXXXX
10XXXXXX
1010XXXX
10101XXX
NEXT HOP/LINK
log2 w
bit
Decoder
PREFIX TABLE
H1
H2
H1
H4
1
3
1
2
match
Search Data Register
Output Data Register
8 bit
Destination Address
10100101
Lookup & Classification - 28
Next Hop - Output Link
H1
1
Ottobre 2006
Longest Prefix Match
Ternary CAM
I vantaggi e gli svantaggi di un approccio
basato su TCAM sono paragonabili a quelli
dell’utilizzo delle CAM per l’exact match:
+
-
Lookup O(1) ~ 10ns
Bassa densità di bit/chip
Alta dissipazione di potenza
Costo per chip elevato
Lookup & Classification - 29
Ottobre 2006
Longest Prefix Match
Uni-bit Trie
Struttura di un nodo
A
next-hop-ptr (if prefix)
1
P1
111*
H1
P2
10*
H2
P3
1010*
H3
P4
10101
H4
Lookup 10111010
C
P2
G
P3
0
Add P5=1110*
D
1
E
0
0
P5
1
Lookup & Classification - 30
B
1
1
right-ptr
left-ptr
H
P4
I
F
P1
Ottobre 2006
Longest Prefix Match
Uni-bit Trie
I bit dell’indirizzo da ricercare vengono valutati uno
alla volta partendo dal MSbit
Partendo dalla radice dell’albero trie, per ogni nodo
si procede verso il ramo corrispondente al valore del
bit corrente
Durante il parsing si registra il valore contenuto
nell’ultimo nodo attraversato
Il processo termina quando si raggiunge un nodo
foglia, oppure quando non si ottiene un match per il
bit corrente
L’ultimo valore registrato è il puntatore al next hop
corrispondente al prefisso che offre il match di
lunghezza maggiore
Lookup & Classification - 31
Ottobre 2006
Longest Prefix Match
Uni-bit Trie
Prefissi lunghi al massimo W bit
Lookup:
O(W)
Storage: O(NW)
Update: O(W)
Vantaggi
Semplicità
di implementazione
Approccio utilizzabile anche per exact match
Svantaggi
Il
caso peggiore è lento (nell’ordine di 24 accessi
a memoria)
Spreco di memoria per mantenere i puntatori
Lookup & Classification - 32
Ottobre 2006
Longest Prefix Match
Multi-bit Trie
Binary trie
W
Profondità = W
Archi/Nodo= 2
Porzione = 1 bit
Multi-ary trie
W/k
Lookup & Classification - 33
Profondità = W/k
Archi/Nodo = 2k
Porzione = k bit
Ottobre 2006
Multi-bit Trie
Espansione dei prefissi
Se la porzione da valutare deve essere lunga
k bit, i prefissi con lunghezze che non sono
multiple di k devono essere espansi
k=2
Prefisso
Prefissi Espansi
0*
00*, 01*
11*
11*
Il numero massimo di prefissi espansi,
corrispondenti ad un prefisso non espanso è 2k-1
Lookup & Classification - 34
Ottobre 2006
Multi-bit Trie (k=2)
Struttura di un nodo
next-hop-ptr (if prefix)
A
ptr00
10
11
B
D
P3
P1
111*
H1
P2
10*
H2
P3
1010*
H3
P4
10101
H4
Lookup & Classification - 35
10
10
G
P411
ptr10
ptr11
C
P2
10
ptr01
E
P111
11
11
F
P122
H
P422
Lookup 10111
Ottobre 2006
Multi-bit Trie
Espansione prefissi aumenta occupazione
in memoria
Replicazione
dei puntatori di next hop
Incremento dei puntatori ai nodi successori
Incremento dei puntatori null in un nodo
Time ~ W/k
Storage ~ NW/k * 2k-1
Lookup & Classification - 36
Ottobre 2006
Multi-Bit Trie
Compressione dei livelli con k=8
MAX 4 accessi a memoria!
L8
L16
L24
L32
Lookup & Classification - 37
Ottobre 2006
Multi-bit Trie
Generalizzazione
Un partizionamento diverso ad ogni livello
(ki bit)
16-8-8
split
4-10-10-8 split
24-8 split
21-3-8 split
Come scegliere il partizionamento ottimale,
cioè che minimizzi il numero massimo degli
accessi a memoria?
Dipende
Lookup & Classification - 38
dalla distribuzione dei prefissi
Ottobre 2006
Controlled Prefix Expansion
Un algoritmo di programmazione lineare
che, data una tabella di forwarding ed il
numero massimo di accessi a memoria
desiderato (profondità dell’albero) per il
caso peggiore calcola la sequenza ottimale
di partizionamenti (ki) che minimizzano i
requisiti di storage
Vantaggi
Occupazione
di memoria ottimale
Svantaggi
Gli
update creano una situazione sub-ottimale
Implementazione in hardware difficoltosa
Lookup & Classification - 39

Documenti analoghi

ricerca dei percorsi ip - Università degli Studi di Modena e Reggio

ricerca dei percorsi ip - Università degli Studi di Modena e Reggio un certo nodo: tutti gli indirizzi IP (foglie) nel sottoalbero avente questo nodo come radice dovrebbero essere instradati allo stesso modo Conseguenza: ogni entry alla routing table definisce un i...

Dettagli

Lookup e Classificazione ad Alte Prestazioni (II)

Lookup e Classificazione ad Alte Prestazioni (II) soluzione deve supportare regole generiche, con la possibilità di utilizzare prefissi, operatori di confronto, range e wildcard

Dettagli