Nicola Ciulli

Transcript

Nicola Ciulli
Tecniche per la garanzia di qualità in
reti di telecomunicazioni multiservizi
MQOS Workshop 2000
Courmayeur, 12 - 14 Gennaio 2000
A ttività im p lem en ta tiva
e sp erim en tale n ell’am b ito In tS erv - D iffS erv
p resso l’U n iversità d i P isa
Nicola Ciulli ([email protected])
Università degli Studi di Pisa
Dipartimento di Ingegneria della Informazione:
Elettronica, Informatica, Telecomunicazioni
Gruppo di Ricerca Reti di Telecomunicazioni
wwwtlc.iet.unipi.it
C o m po nen ti fo nda m en tali d i reti IP con Q o S (1/2 )
Funzionalità aggiuntive di un “next generation router”:
piano di Controllo:
• (RC.1) gestione della segnalazione adottata nella rete (es. RSVP in IntServ)
• (RC.2) algoritmi efficienti di Admission Control delle connessioni
• (RC.3) interfaccia per il monitoraggio di statistiche relative al funzionamento
• (RC.4) interfaccia di management
• (RC.5) gestione della segnalazione ATM
• (RC.6) traduzione degli indirizzi IP → ATM
• (RC.7) traduzione della segnalazione (RSVP) in UNI x.x
piano Dati:
• (RD.1) classificatore di pacchetto in flussi (o connessioni)
• (RD.2) policer (LBAP o di peak-rate)
• (RD.3) scheduler di pacchetto efficienti e fair
• (RD.4) acquisizione di parametri statistici packet-by-packet
• (RD.5) associazione tra connessione a livello di pacchetto e VC ATM
• (RD.6) meccanismi di trasporto IP over ATM
• (RD.7) scheduler di celle
C o m po nen ti fo nda m en tali d i reti IP con Q o S (2/2 )
Funzionalità aggiuntive di un “next generation host”:
piano di Controllo:
• (HC.1) interfaccia per la gestione user-friendly della segnalazione
adottata nella rete (es. RSVP in IntServ)
• (HC.2) specifica user-friendly delle applicazioni per la quali si desidera la
QoS
• (HC.3) se sorgente: stima automatica del Sender TSpec del traffico
generato
• (HC.4) se ricevitore: specifica user-friendly del livello di QoS desiderato
piano Dati:
• (HD.1) classificatore di pacchetto
• (HD.2) Token Bucket shaper
• (HD.3) scheduler di pacchetto
A ttività im plem enta tiva sulle fun zion i C ontrol-plan e del route r
Funzionalità
Attività svolta
Integrazione del demone SolarisRSVP 0.4.11 con varie modifiche di
natura:
Segnalazione RSVP
•
Correttiva (per l’eliminazione di bug)
•
Funzionale (per il supporto RSVP-over-ATM e di management
locale)
Admission Control
Integrazione del meccanismo di CAC di SolarisRSVP 0.4.11
Implementazione ex-novo di un’applicazione (qvc) per il
Raccolta Statistiche
campionamento periodico di un set di parametri statistici
Implementazione ex-novo di un’interfaccia di management locale
(locresv) delle reservation RSVP e di gestione remota (via Web)
Management
dell’intero router
Integrazione della segnalazione UNI 3.1 sviluppata da FORE, con
Segnalazione ATM
piccole modifiche per il supporto di VC VBR
Traduzione indirizzi IP- Integrazione del meccanismo di traduzione della Classical IP over ATM
ATM
(RFC 1577)
Traduzione della
segnalazione RSVP in Implementazione ex-novo del meccanismo
UNI 3.1
% di
“impleme
ntatività”
20 %
0%
100 %
100 %
5%
0%
100 %
A ttività im plem enta tiva sulle fun zion i D ata-plan e de l rou ter
Funzionalità
Attività svolta
Classificatore di
pacchetto
Integrazione del classificatore del CBQ v2.0
Policer
Packet Scheduler
Modulo statistico
Associazione
connessione a livello di
pacchetto - VC
Meccanismi di
trasporto IP-over-ATM
Scheduler di cella
Implementazione ex-novo di un policer Token Bucket e peak-rate (per
connessione RSVP)
Inizialmente: integrazione e modifiche “bug-fixing” al CBQ 2.0;
soluzione finale: implementazione ex-novo degli algoritmi Weighted
Round Robin (WRR) e Worst-case Fair Weighted Fair Queuing
(WF²Q+)
Implementazione ex-novo di un modulo statistico che aggiorna il set di
parametri statistici per ogni connessione e per ogni evento (partenza o
arrivo di un pacchetto da/all’interfaccia di uscita)
Implementazione di un modulo per l’associazione efficiente (senza
doppia classificazione) di un pacchetto IP con la sua VC dedicata
% di
“impleme
ntatività”
0%
100 %
100 %
100 %
100 %
Integrazione del client Classical IP over ATM e AAL 5
0%
assente
0%
A ttività im plem enta tiva sulle fun zion i C ontrol & D ata -p la ne d ell’h ost
Funzionalità
gestione user-friendly
della segnalazione
RSVP
specifica user-friendly
delle connessioni
Stima automatica del
Sender TSpec
Scelta user-friendly del
livello di QoS
desiderato
Classificatore
Shaper
Scheduler
Attività svolta
Implementazione ex-novo del tool Rsvp Manager Module (RMM) per
Sun Sparc (Solaris 2.5.1), SGI Indy (IRIX 6.2 / 6.4) e PC (Linux 2.1.104)
Implementazione ex-novo di un modulo di scelta semi-automatica delle
connessioni, integrato in RMM
Implementazione ex-novo del modulo Automatic Tspec Retrieval (ATR),
integrato in RMM
Implementazione ex-novo di un modulo dedicato, integrato in RMM
assente
assente
assente
% di
“impleme
ntatività”
100 %
100 %
100 %
100 %
0%
0%
0%
Lista de lle a ttività
La nostra attività implementativa:
• Implementazione di nuovi scheduler di pacchetto (UPISA WRR e WF²Q+)
• modifiche di tipo “bug fixing” e funzionali (per il supporto di ATM) al demone
RSVP (compatibilità con RFC 2379, 2380, 2381)
• caratterizzazione LBAP del traffico e sviluppo di un policer LBAP e peak-rate
• Sviluppo di un’applicazione (qvc) per l’estrazione dei parametri statistici dall’HED
e per la gestione locale delle reservation (locresv)
• evoluzione di RMM alla versione 3.0 (gestione user-friendly delle
connessioni e nuovi algoritmi di stima automatica del TSpec);
• Interfaccia Web per la gestione remota dell’HED;
• meccanismo di “TCP Cheating”
La nostra attività di sperimentazione:
• Test funzionali e prestazionali degli scheduler di pacchetto (WF²Q+);
• Confronto di scalabilità tra scheduler FIFO e WF²Q+
• Sperimentazione sul “TCP Cheating"
C o nfigurazion e de l tria l In tS e rv-over-A T M
Jebediah
HED20
Sun Sparc 20
Radiology
department
subnet
100baseTX
Kernelsul
- level
Misure
CBQ
traffic probes
FORE
ATM NIC
Krusty
HED5
Sun Sparc 5
FORE
ATM NIC
Newbridge
RSVP host
CS 3000 Workgroup
switch
Linux/Windows PC
(Background traffic source:
MGEN / NETPERF / VIC / VAT
on CLIP or native ATM;
Netmeeting on CLIP)
TLC lab
subnet
10baseT
CS 1000 WGS
remote link
Stanley
RSVP host
(receiver)
Sun UltraSparc 5
(Advantage Windows;
Osiris)
(source)
Sun UltraSparc 1
(Advantage Windows;
Osiris)
Barney
HP Internet
Advisor
FORE
ATM NIC
HP BSTS
Background
cell flow
source/receiver
Itchy
FORE
ATM NIC
Linux/Windows PC
(Background
traffic receiver:
DREC / NETSERVER /
VIC/ VAT on CLIP or
native ATM;
Netmeeting)
A rchitettu ra softw are de l rou te r H yb rid E dg e D e vice (H E D )
User-level
Kernel-level
IWF
QoS
mapping
)C
T(
lo
rt
no
C
cif
fa
rT
DE
H
locresv
rsvpd
rsvpd
)C Admission Control
A( (Packet level)
lo
rt
no
C
no
is
si
m
dA
DE fore_clip
H Admission Control
RSVP
daemon
local reserv.
manager
cbq
IP
LBAP+peak
policer
packet
classifier+
scheduler
Statistic
module
cbq,
fore_clip
cbq
pkt.sch.-CLIP
integration
cbq,
fore_clip
fore_clip
fore_clip
UNI 3.1
= Control interaction
= Data interaction
Statistic
application(s)
(ATM level)
fore_clip
Flow-Table
Manager
ip
qvc
fore_sdapi
fore_uni
CLIP client
FORE sba200e
ATM card driver
Ethernet card
driver(s)
fore_sba200e
le0, hme0
S ch em a del servizio su lle if di uscita dell’H E D
bBE
ϕBE
PP
= Peak-rate Policer
TB
= Token Bucket
rs,1
bs,1
b1
PP
ϕ1
TB
classifier
rs,2
CLIP queue
WF²Q+ rate
WRR limiter
bs,2
b2
PP
ϕ2
TB
rs,N
bs,N
bN
PP
TB
ϕN
tx
c
T est sul W F ²Q +
Tre fasi principali nelle attività di test sul WF²Q+:
• (1) fase iniziale di test automatici su trial ridotto con traffico sintetico;
• (2) test sul trial completo con traffici reali;
• (3) test sulla scalabilità dell’implementazione del W F ²Q +.
C o n figu ra zio n e “rid o tta” d el tria l (s c en a rio d e lle fa si d i tes t 1 e 3):
script con
mgen, qvc,
locresv
le0
hme0
ci1
HED
20
drec
flussi MGEN
ci0
ATM network
(CS1000 and
CS3000)
Raccolta
statistiche
ci0
HED
5
le0
ci1
C o nfigurazion e de i test sul W F ²Q + su l trial IntS erv-over-A T M
Brockman
Linux PC
(MPEG-1 video server)
MPEG-1
VBR / CBR
traffic
le0
hme0
Ethernet
hub
ci1
Ethernet
switch
video traffic
monitoring
HED
20
packet scheduler
statistics sampling
ci0
HED
5
ci0
Ethernet
hub
le0
ci1
Barney
Linux PC
(MPEG-1 video client)
MGEN
QoS traffic
Stanley
Sun UltraSparc 5
(MGEN QoS traffic source)
remote link
CS 3000 WGS
CS 1000 WGS
Meaning of symbols:
MGEN
Best Effort
traffic
le0
hme0
Itchy
Scratchy
Linux PC
(CLIP client;
MGEN BE traffic source)
Linux PC
(CLIP client;
MGEN BE receiver)
= 10baseT if.
= 100baseTX if.
ci1
= CLIP if.
ci0
= RSVP over ATM if.
= congested if.
U n a no ta ai test su gli sched uler
•i molti test su uno scheduler richiedono uno stato di congestione
dell’interfaccia di uscita. Nel caso delle interfacce CLIP (standard e RSVPover-ATM) si è reso necessario sviluppare dei meccanismi di limitazione del
rate di servizio:
Algoritmo
Com portam ento
Token Bucket tra lo scheduler e
il servizio di TX
Preciso, ma peggiora le worstcase fairness dello scheduler
Allungamento del tem po di
servizio a livello CBQ
Tempo di servizio allungato più
del necessario
Allungamento del tem po di
servizio a livello CLIP
Molto preciso, m a non c’è più
tempo di CPU a disposizione
del livello di applicazione
quando l’interfaccia è
congestionata
Allungamento del tem po di
servizio a livello CBQ m ediante
un TB
Preciso; attualm ente in uso
C a ra tteristich e de side ra bili di u no sch ed uler
• Limitazione del rate di servizio (operata dal TB policer: tiene ciascun flusso
nei limiti della descrizione fornita alla rete)
• redistribuzione della banda inutilizzata (la banda libera dovrebbe essere
riassegnata alle connessioni attive proporzionalmente alle loro quote di banda
riservata)
• Isolamento dei flussi (una connessione dovrebbe essere protetta - in
termini di rate di servizio e ritardo di coda sperimentati - dal comportamento
delle altre connessioni)
• ritardo di coda basso e limitato (lo scheduler dovrebbe garantire ritardi di
coda relativamente bassi per ciascuna connessione, e un limite superiore per
il ritardo sperimentato da ciascun pacchetto di una connessione)
• Fairness (il servizio offerto dallo scheduler alle varie connessioni dovrebbe
essere proporzionale alla quota di banda prenotata anche su scale temporali
piccole - es. pochi tempi di pacchetto)
P erch é il W F ²Q + ?
Scheduler
WRR
(Weighted
Round Robin)
WFQ
(Weighted Fair
Queuing)
Vantaggi
• Facilità di implementazione
• Work-conserving
svantaggi
• Non work-conserving ( =
spreco di banda del link)
• Bassa fairness
• Delay bound dipendente dal
numero di connessioni
• Difficile da implementare
• Delay bound e fairness
dipendente dal numero di
connessioni
• Work-conserving
• La più alta fairness attualmente
(Worst-case Fair
disponibile
• Difficile da implementare
Weighted Fair
• Delay bound indipendente dal
Queuing)
numero di connessioni
• Work-conserving
• La più alta fairness attualmente
disponibile
• Non è ancora lo “scheduler
• Delay bound indipendente dal
WF²Q+
ideale”…
numero di connessioni
• Relativamente facile da
implementare
WF²Q
E sito d ei test sul W F ²Q +
Proprietà
• limitazione del rate di servizio
• redistribuzione della banda
• isolamento dei flussi
• ritardi di coda (medi e massimi) limitati e
relativamente bassi
risultato
YES
YES
YES
Note
1
YES
• Fairness
YES
2
•➏ scalabilità
?
3
Notes:
• (1) la banda ottenuta da una sessione con peso ϕ¡ è ϕ¡/ ϕB, dove ϕB è la somma dei pesi delle
sessioni backlogged.
• (2) La fairness è stata misurata con il Worst-case Fair Index (WFI):
k
k
k
WFI = d i ≤ ai + Qi ,s (ai ) / ri + Ci ,s
• (3) Il verdetto sulla scalabiltà del WF²Q+ è arduo, in quanto è influenzato contemporaneamente dall’
algoritmo, la sua implementazione e la piattaforma hardware sulla quale essa gira. Le prestazioni del
WF²Q+ sono mantenute per un numero di reservation intorno a 400 (di cui, però, solo poche sono
attive) o fino a 50 ÷100 reservation tutte attive contemporaneamente.
W F ²Q +: lim itazio ne d el ra te di se rvizio
W F ²Q +: rid istribuzione della ba nda
W F ²Q +: isolam e nto de i flu ssi (rate d i servizio)
W F ²Q +: isolam e nto de i flu ssi (drop ra te)
W F ²Q +: isolam e nto de i flu ssi (rita rd o m e dio di coda )
W F ²Q +: isolam e nto de i flu ssi (rita rd o m a ssim o d i cod a)
C a ra tterizzazio ne L B A P del traffico : p ano ra m ica del prob le m a
• Possibili scenari in un ambiente IntServ:
• la sorgente di traffico fa lo shaping sul flusso generato per renderlo
conforme al TSpec (dunque il traffico immesso in rete e’ conforme);
• la sorgente di traffico non fa shaping ma stima (on-line) una descrizione
Token Bucket del traffico e la usa per l’emissione del TSpec (il traffico
immesso in rete e’ conforme se la caratterizzazione e’ buona);
• la sorgente di traffico non fa shaping, ne’ si preoccupa di stimare il TB
del traffico, e i boundary router operano un reshaping del flusso (poiche’
il traffico puo’ essere non conforme).
• Il minimo descrittore LBAP (ρ, σ) per un dato traffico non e’ unico
ρ
token
bucket
(r, b)
regulator
bucket
σ
good
non conf.
d
U n esem p io di ca ra tte rizzazio ne L B A P
r
rif-1
d(t)
[t1 , t2 ] ⊆ [t S , t E ]
r ⋅ (t 2 − t1 ) + b ≥ d (t 2 ) − d (t1 )
∀ t1 , t 2 |
b(0, t x )
rif-2
b(0, t x )
30000
0
ta
tb
28000
tx
26000
24000
22000
20000
18000
16000
Due tipi di
caratterizzazione LBAP:
14000
12000
10000
8000
6000
4000
2000
774400
739200
704000
668800
633600
598400
563200
528000
492800
457600
422400
387200
352000
316800
281600
246400
211200
176000
140800
105600
70400
35200
0
0
• Off-line
• On-line
N e ce ssità di un enfo rcem ent sui param etri d i T o ke n B ucke t
ρ
token
bucket
(r, b)
σ
good
σ
ρ
non conf.
discard
Un meccanismo di enforcement dei parametri di TB dichiarati nel Sender
TSpec è necessario in quanto:
• lo scheduler puo’ essere Work Conserving: un aumento del rate di servizio
permette burst maggiori della burst size dichiarata dalla sorgente
• i parametri TB usati per dimensionare la coda non sono necessariamente
copiati dal Sender TSpec
P olice r LB A P e pe ak-rate
Due tipi di policer possono essere attivati separatamente per ogni
connessione WRR / WF²Q+:
• LBAP (Linear Bounded Arrival Process) policing:
fa rispettare i parametri r e b dichiarati nel Sender TSpec; i test hanno
mostrato una buona precisione nella limitazione del rate medio (errore
inferiore all’1%).
• Peak rate policing:
fa rispettare la distanza minima (intervallo di peak-rate) tra i pacchetti
conformi (non tra tutti i pacchetti entranti):
Tn = Tn-1 + Ln / p
(dove Tn è timestamp dell’ultimo pacchetto conforme e Ln la sua
dimensione, Tn-1 è il timestamp dell’ultimo pacchetto conforme e p è il
peak rate sottoposto a policing).
P olice r LB A P e pe ak-rate: d ia gram m a di flu sso
K-th
K-th Packet
Packet arrival:
arrival:
•• timestamp:
timestamp: t(k)
t(k)
•• size:
size: s(k)
s(k)
peak-rate
peak-rate
policing
policing
isis enabled
enabled
??
No
No
LBAP
LBAP polici
policinngg
isis enabled
enabled
??
Yes
Yes
Yes
Yes
No
No
TB_level
TB_level <-<-- min
min {TB_depth,
{TB_depth,
TB_level
+
r
*
[t(k)
TB_level + r * [t(k) -- t(k-1)]
t(k-1)] }}
t(k)
t(k) ≥≥
ot(k-1)
ot(k-1) ++ s(k)
s(k) // pp
??
Yes
Yes
TB_level
TB_level -- s(s(k)
k) ≥≥ 00
??
No
No
non
non conformant
conformant
packet:
packet: discard
discard
ot(k)
ot(k) == t(k)
t(k)
Yes
Yes
TB_level
TB_level <-<-TB_level
TB_level -- s(s(k)
k)
the
the packet
packet isis
conformant:
conformant: try
try to
to
queue
it
queue it
No
No
qvc e locresv (1/2): due app licazioni pe r la g estio ne d ell’H E D
•i comandi per la gestione locale delle reservation (locresv) attualmente disponibili:
- creare una nuova reservation (set)
qvc command:
- modificare una reservation (mod)
qvc: usage: qvc [-h | -I <if> | -f <log file> |
-i <interval(ms)> | -s <# of samples>
- rimuovere una reservation (del)
-d <duration(s)> | -p <cbq priority> | -m]
qvc dumps a number of CLIP and CBQ statistics.
- elencare le reservation attive (sho)
NOTES:
……….
- attivare il policing su una reservation (pol)
(3) <if> ::= [+]<interface name> (+ is the RSVP
over ATM indicator).
- creare una reservation “fantasma” (gst)
(4) <cbq priority> is for non-ROA ifs and specify
- attivare il “TCP Cheating” su una reservation (cht) the priority level whose classes must be looked
at; default value is 3.
• I meccanismi di policing e TCP Cheating possono essere automaticamente abilitati
per ogni reservation instaurata (manualmente o via segnalazione RSVP) usando
appositi comandi nel file di configurazione rsvpd.conf (rispettivamente:
police_lbap, police_peak, police_all, cheat_tcp)
locresv command:
locresv: usage:
locresv set <resv name> <if> <nhop> <class> <r> <b> <p> <m> <M> <R> <S>
<proto> <src ip> <src port> <dst ip> <dst port>
locresv del <if> {<tc handle> | <resv name>}
locresv mod <if> {<tc handle> | <resv name>} <class> <r> <b> <p> <m> <M> <R> <S>
<proto> <src ip> <src port> <dst ip> <dst port>
locresv pol <if> {<tc handle> | <resv name>} {all | lbap | peak | off}
locresv cht <if> {<tc handle> | <resv name>} {on | off}
locresv sho
NOTES: (1)
(2)
(3)
(4)
<class> ::= {cls | gs}, <proto> ::= {udp | tcp}
<tc handle> is hex value (0x...), <resv name> ::= {<name> | anon}
rates are in Kb/s, sizes are in B
'cht' (cheat tcp) command applies to FF reservations only
qvc e locresv (2/2): param etri statistici d isp onibili
Level
Parameter
•
HED CLIP and ATM-driver
level (for each outgoing VC)
•
•
•
•
•
•
•
•
•
•
•
HED packet scheduler level
(for each schduler’s
connection)
•
•
•
•
•
•
•
•
•
•
•
•
Number of packets and bytes sent on the VC
Average packet and bit rate (each one got with two different algorithms)
number of times the DMA queue was found full
number of free places in the DMA queue
Other parameters related to the inner workings of the HED CLIP and the ATM-driver
number of packets sent for a class
number of packets dropped
average service rate (kb/s and p/s)
average dropping rate (kb/s and p/s)
number of times the class went over-limit (CBQ)
number of over-actions and delay-actions for that class (CBQ)
Number of borrowings (CBQ)
the allocated byte transmission time (WRR)
the allocated number of bytes for each round of the WRR scheduler (WRR)
the class queue occupancy (in terms of packets and bytes)
Average queue occupancy (packets/bytes)
Average number of packets/bytes in queue just before an accepted packet enters
Average number of packets/bytes in queue found by any arrived packet
Average number of packets/bytes in queue just after a packet exits
Average queue occupancy (packets/bytes) for each flow of a set sharing the BE queue
Average number of tokens in the Token Bucket
Worst-case Fair Index (WFI)
Average queuing delay (µs)
Maximum queuing delay in a sampling period (µs)
R svp M a nag er M od ule (R M M ) 3.0 : caratte ristiche p rin cipa li
• Doppio modo operativo: “support mode” (interfaccia user-friendly con minima conoscenza
dei meccanismi RSVP richiesta) e “raw testing mode” (gestione completa e dettagliata della
segnalazione RSVP)
• In entrambe le modalità, una GUI intuitiva aiuta l’utente a definire le sessioni RSVP, ad
abilitarle o disabilitarle (PATH & RESV or PATH-TEAR / RESV-TEAR) o a chiuderle.
• Modulo Automatic Tspec Retrieval (ATR): per ogni sessione aperta come “Sender”, è
possibile attivare un filtro per il monitoraggio del traffico emesso su quella data connessione;
tale informazione viene poi elaborata per fornire una stima on-line automatica dei parametri
del Sender TSpec da includere nei messaggi PATH); tali messaggi subiscono un refresh se i
parametri cambiano.
• Scelta semi-automatica della sessione RSVP: una nuova interfaccia a disposizione degli
utenti incapaci o non intenzionati ad aver a che fare con indirizzi IP e (soprattutto) con numeri
di porte TCP / UDP. Questa interfaccia elenca automaticamente tutte le connessioni
associate a una data applicazione o a un dato peer remoto, ovvero fornisce una lista
completa di tutte le connessioni TCP / UDP cui l’host partecipa.
• Scelta user-friendly del livello di QoS: nella modalità “support”, l’utente può decidere di
utilizzare i parametri del Sender TSpec per specificare la reservation (richiedendola anche
automaticamente all’arrivo del primo PATH), oppure di modificare agendo su due slider-bar
dal significato piuttosto intuitivo (“banda” e “ritardo”).
• RMM è disponibile su Linux 2.1.104, Solaris 2.5.1, Irix 6.2/6.4.
R svp M a nag er M od ule (R M M ) 3.0 : u na p ano ra m ica
Defining a new
RSVP session
RMM main window
Sender session
management
(with Auto-Tspec
capability)
Receiver
session
management
in the support
mode
Receiver session
management
in the testing mode
User-friendly selection of UDP/TCP connections
RSVP events tracing
Inte rfaccia W e b pe r la g estio ne rem o ta de ll’H E D
Caratteristiche dell’interfaccia Web:
• pagine HTML “leggère” per ridurre l’impatto sulle
prestazioni del Data-plane;
• accesso semplificato ai file di log dell’HED;
• interfaccia grafica per i comandi dell’HED (locresv e qvc);
• fruizione remota dei dump delle statistiche dell’HED;
• visitabile presso http://jebediah.pisa.ccr.it:100
Il m eccanism o d i “T C P C h eating ” (1/2): intro du zion e
Sender
Receiver
host
host
TCP
connection
TCP ACKable
segment (1)
real ACK (2)
fake ACK
fake
segment (3)
Legacy
internet
Ingress
router (A)
QoS capable
(e.g. IntServ)
IP network
Egress
Legacy
internet
router (B)
Note:
(1) un “ACKable segment” è un segmento TCP con una (o più) delle seguenti caratteristiche:
• payload non nullo;
• contiene informazioni di controllo TCP (uno dei bit SYN, FIN or RST è settato).
(2) l’ACK vero, una volta raggiunto il router A, subirà le seguenti azioni:
• nel suo campo “ACK number” sarà scritto il valore dell’ultimo “fake ACK number” generato, e quindi sarà inoltrato - se
ha un payload non nullo o contenga informazione di controllo TCP;
• sarà scartato - altrimenti.
(3) Per risolvere il problema dei “buchi” nel flusso di byte del ricevitore (che costringe il ricevitore stesso a uno stallo e alla
reiterazione dell’ACK sul numero d’ordine del primo byte del “buco”), il router B dovrebbe spedire al ricevitore un segmento TCP
falso, con un sequence number settato sul valore del più alto ACK number passato. Il contenuto del payload del “fake segment”
non è rilevante (es. tutti zero).
(4) L’emissione di “fake ACK” richiede che il router d’ingresso (A) tenga traccia non solo dell’ultimo ACK number passato, ma
anche dell’ultimo IP identification number passato (o generato). Questo secondo campo deve essere aggiornato (a cura di A) in
ogni pacchetto scambiato tra i due host in questione.
Il m eccanism o d i “T C P C h eating ”: prim i test
Pochi esperimenti sono stati condotti al momento sulla prima versione del
meccanismo di TCP Cheating (che imbroglia la sorgente TCP ma non
ancora il ricevitore). I primi risultati sono:
• Il carico di questo meccanismo dipende linearmente dal numero di
connessioni TCP e cresce rapidamente quando si aggiunge una
connessione tra una nuova coppia di host (questa seconda caratteristica
sussiste soltanto se l’IP identification number deve essere aggiornato).
• Il cheating sul sender TCP funziona bene: il rate di trasmissione non
diminuisce anche quando viene creata congestione sulle interfacce di uscita
lungo il path e una tecnologia di networking half-duplex riflette gli effetti della
congestione sul reverse path (causando perdite e ridardi sugli ACK).
D ifferen tia ted S ervices
Attività nel contesto dei DiffServ:
❋
integrazione del trial DiffServ
❋
Configurazione
❋
implementazione di un modulo statistico
❋
test funzionali e prestazionali del PHB EF
C o nfigurazion e de l tria l d i b ase
Background traffic source
Stanley (192.168.5.3) SUN
Solaris 2.5.1 (plain IP host)
Brockman (131.114.32.168)
Linux 2.2.6 (plain IP host)
192.168.5.2
131.114.32.130
Bart Linux 2.2.10
+ DS6 patch
+ Jack’s Patch
(DiffServ Marker
and Internal
Router)
Moleman (192.168.5.4)
Linux 2.2.10 + DS6
Background traffic
destination
E F e B E : m o du li di T raffic C ontrol co involti
tc_index
filter
tc_index
0x2e (EF)
Expedited Forward
Class
pFIFO queue
RED queue
Best Effort
Class
CBQ 2:0
DS mark 1:0
Il m od ulo sta tistico (1 /2)
DS router
qdisc_restart
do_gettimeofday
do_gettimeofday
timestamp1
timestamp2
net_if_rx
eth (in)
stats eth (out)
Per ogni classe e disciplina di coda:
• Tempo di coda per ogni pacchetto
• Timestamp di uscita per N pacchetti
• Lunghezza di N pacchetti
• Contatore byte complessivi
Il m od ulo sta tistico (2 /2)
Alcune caratteristiche del meccanismo di misura:
❋
acquisizione dati statistici provenienti dal kernel mediante applicazione a linea
di comando (TC), passati tramite RT-NetLink
❋
calcolo di tempi di coda e rate a livello di applicazione
❋
due diversi metodi per la misura del rate, attualmente
❋
richiede la modifica della q_dequeue per ogni disciplina di coda da analizzare
under test
(per ora solo in CBQ)
❋
statistiche ottenute per ogni disciplina e per ogni classe
C o nfigurazion e di alcuni test su ll’E F P H B
Background traffic source
Stanley (192.168.5.3) SUN
Solaris 2.5.1 (plain IP host)
Brockman (131.114.32.168)
Linux 2.2.6 (plain IP host)
marking
scheduling
& statistics
192.168.5.2
131.114.32.130
Bart Linux 2.2.10
+ DS6 patch
+ Jack’s Patch
(DiffServ Marker
and Internal
Router)
Hans_moleman (192.168.5.4)
Linux 2.2.10 + DS6
Background traffic
destination
N o te sui test
Tipologie di prove effettuate:
❋
verifica dell’isolamento tra classi CBQ in presenza di più traffici contemporanei
in competizione sull’interfaccia di uscita:
– isolamento tra i rate
– corretta limitazione sul rate
❋
analisi prestazioni dello schema “EF”
– classificazione dei pacchetti già marcati dalla sorgente
– limitazione dei tempi di coda per la classe EF grazie al
pfifo
– isolamento rispetto alle classe best effort
❋
streaming di due video MPEG-1 in presenza di disturbo
– stream MPEG-1 marcati “EF”
– traffico di disturbo
best effort
– verificato il corretto isolamento degli stream
G ra fici rela tivi ad a lcun i te st: rate di servizio E F /B E
G ra fici rela tivi ad a lcun i te st: rita rd o m ed io/m assim o B E
G ra fici rela tivi ad a lcun i te st: rita rd o m ed io/m assim o E F
P rim i risultati “co m po rtam enta li” su l C B Q di Linu x
Problemi
:
• Il meccanismo di limitazione del rate di servizio (“bounded class”) applicato a 1
o piu’ classi, in presenza di 3 o piu’ classi attive contemporaneamente (es. EF, AF
e BE), causa un significativo “ripple” sul rate di servizio concesso a ciascuna
classe.
• Occasionalmente, il CBQ non garantisce il rate di servizio minimo a una classe
nei primi secondi seguenti il suo istante di attivazione.
Possibile causa
:
• il meccanismo di limitazione del rate di servizio è basato sul rinvio dell’istante
di schedulazione di un pacchetto per una certa classe; la decisioni di scheduling
sono possibili in conseguenza di eventi ben precisi (arrivo o partenza di un
pacchetto al router). -> Questo comporta errori nella posticipazione dello
scheduling, che vengono compensati in modo da rispettare mediamente il rate di
servizio accordato
P ro ssim e ta ppe nell’e vo luzio ne d el trial
BB
BB
DS domain #1
DS domain #2
Prossime tappe:
❋
implementazione di un Data-plane funzionalmente completo e corretto
❋
CAC sulle connessioni entranti nel dominio da parte dell’
❋
Monitoraggio e controllo sullo stato della rete da parte del
❋
Comunicazione tra BB appartenenti a domini diversi, negoziazione degli SLA
❋
Configurazione dinamica degli SLA
Edge Router
Bandwidth Broker