Color-Aware

Transcrição

Color-Aware
Métricas para Medida de QoS
(1) Disponibilidade do serviço (availability)
– Confiabilidade da conexão do usuário à rede
(2) Atraso fim-a-fim (one way delay)
– Atraso ida e volta (round trip time ou RTT)
(3) Jitter
– Variação do tempo entre chegadas de pacotes de um
mesmo fluxo
(4) Vazão (throughput)
(5)Taxa de perda de pacotes (packet loss rate)
– Taxa com que pacotes são descartados, perdidos ou
corrompidos ao trafegar pela rede
Tentar eliminar 3 e 5, minimizar 2 e maximizar 1 e 4
Aumentar banda é alternativa a
QoS?
Com os protocolos de hoje, como TCP, não
garante que a banda extra contratada vá
atender adequadamente à aplicação crítica
– Mas tem sido a solução mais adotada, inclusive
nos backbones da Internet2
Possíveis Ações para QoS
Limitar tráfego na rede
– Controle implícito pelo comportamento dos protocolos, reagindo a
congestionamento ou perda
Exemplo: TCP
Problema: tráfego multimídia segue via RTP sobre UDP
– Controle explícito por mecanismo de admissão (CAC)
Descoberta de rota, reserva de recursos, e negociação de qualidade no
estabelecimento de chamadas ou sessões virtuais
– Ex: ATM
Priorizar filas
– Implica em classificar ou marcar tráfego
– Adotar disciplinas de filas que não FIFO, aplicando ao tráfego classificado
Roteamento com QoS?
– Roteamento IP não leva em conta QoS, embora engenharia de tráfego
pode ser explorada em redes MPLS
Evolução das Arquiteturas de
QoS
Serviço IP Best-Effort: 1981, RFC-791
– Compare ao serviço regular de correio
Serviços Integrados (IntServ)/RSVP: 1997
– Imagine um serviço personalizado de correio
Serviços Diferenciados (DiffServ): 1998/99
– Compare a classes de serviço de correio
(Expresso, Prioritário, Registrado, Regular,etc..)
Arquitetura de Serviços
Diferenciados (Diffserv)
Marcação Relativa de Prioridade
Nível 2
– Prioridade em classes de tráfego 802.1p
Prioridade em Token Ring e FDDI
Campo de precedência IP (TOS)
– Marcação de Classe de Serviço (COS)
Classificação estática hop-a-hop
QoS no Ethernet
IEEE 802.1Q/p
preâmbulo
7 bytes
SFD
1
DA
6
SA
6
TAG LEN
4
2
TPID
2
– Tagged Protocol Identifier (TPID)
0x8100 denota quadro IEEE 802.1Q
– Tagged Control Information (TCI)
3-bit de IEEE 802.1p (PRI)
1-bit CFI (canonical format identifier)
12-bit identificador de VLAN (VLAN ID)
LLC
?
FCS
4
TCI
2
PRI CFI
VLAN ID
Marcação e Classificação de
Forma Escalável em IPv4
Pacotes são marcados na borda, para finalidades de
classificação no centro da rede
Version
Version ToS
ToS Len
Len
Length
Length 11 Byte
Byte
ID
ID
offset
offset TTL
TTL Proto
Proto FCS
FCS IP-SA
IP-SA IP-DA
IP-DA Data
Data
Cabeçalho do IPv4 e campo
Type of Service (ToS)
COS em IPv4 (RFC-1349)
Usa os 3 bits mais significativos do campo TOS
–
–
–
–
–
–
–
–
0 - routine: comum
1 – priority: prioridade
2 – immediate: imediato
3 – flash
4 – flash-override
5 – critical
6 – internet: controle e gerência inter-rede
7 – network: controle e gerência de rede
Default é marcar com 0
Em roteadores, a precedência pode ser alterada através de
listas de acesso (access lists) ou mapas de rotas (route maps);
em gateways VOIP, pode ser alterada em cada interface lógica
dial peer
Uso dos outros bits do campo
TOS (RFC-2328)
Seta somente um dos bits 4 (D), 3(T), 2 (R), e 1 (C) do campo
byte TOS
–
–
–
–
D=1, minimiza atraso
T=1, maximiza vazão
R=1, maximiza confiabilidade
C=1, minimiza custo
Em total desuso
Funcionamento Básico da
Arquitetura Diffserv
Tráfego de rede é classificado, condicionado na entrada da
rede e associado a um agregado de comportamento
diferenciado (diffserv aggregate ou diffserva)
Cada agregado é associado a um único código DS (Diffserv
codepoint ou DSCP), no campo DS do IPv4 ou IPv6
Na rede, os pacotes são encaminhados usando um
comportamento de encaminhamento a cada nó (per-hop
behavior – PHB), associado ao código DSCP
Campo DS
O mesmo byte usado como TOS no IPV4 e como
Traffic Class Octet no IPv6
Apenas roteadores suportando Diffserv interpretarão
corretamente os 6 bits de DSCP
0
1
2
3
4
5
6
7
+---------+---------+---------+---------+---------+---------+---------+---------+
|
Campo DS
|
Campo
|
| DSCP (code point para serviços diferenciados) |
ECN
|
+---------+---------+---------+---------+---------+---------+---------+---------+
Arquitetura Diffserv
Domínio Diffserv (DS)
DS
Nó de
Borda
SLA
Nó interior
PHB
SLA
SLA
DS
DS
Service Level Agreement
(SLA)
Domínios interoperam segundo um acordo de
serviço SLA, especificando as características e
desempenho requerido do serviço oferecido, bem
como o acordo de condicionamento de tráfego TCA
TCA (Traffic Conditioning Agreement)
– Especifica a classificação dos pacotes, a política de
marcação, os perfis de tráfego permitidos, bem como as
ações que serão aplicadas aos fluxos dentro e fora destes
perfis
Nós de Borda (Boundary Nodes)
Nós de Entrada (Ingress Nodes) ou de Saída (Egress
Nodes)
– Conectam a nuvem DS a outros domínios DS ou não
Na entrada do tráfego, responsável pela
classificação e verificação de aderência aos acordos
de condicionamento de tráfego TCA entre domínios
Para o tráfego que sai do domínio, pode aplicar um
condicionamento na direção de um domínio parceiro,
de acordo com TCA acordado
Esta função pode ser exercida por um host
Nós Interiores (Interior Node)
Encaminham segundo PHB associado ao DSCP
Podem ser também responsáveis pela execução de
algumas tarefas simples de condicionamento de
tráfego, como a remarcação de códigos (codepoints)
Codepoint DSCP
O codepoint deverá ser usado como um índice de
uma tabela de associação a um PHB
– Um mesmo valor de codepoint pode representar PHB’s
diferentes em diferentes domínios DS
Cada domínio deve ter um codepoint default
– Usual usar best effort com DSCP=“00000” (RFC-1812)
Se algum nó recebe um codepoint inválido, o pacote
deverá receber um tratamento equivalente ao
comportamento default do domínio, mas não deverá
ter seu campo DS remarcado para o DSCP default
Classes de Serviço
Oito classes de serviço representadas com DSCP = “XXX000”
– Visa compatibilizar com o uso do campo de precedência do
cabeçalho IP (IP precedence), onde apenas os 3 bits mais
significativos são analisados por roteadores que não suportam
Diffserv
Roteadores antigos considerarão apenas os 3 bits mais
significativos, que correspondem à precedência IP
Roteadores com suporte a Diffserv operarão normalmente
usando o DSCP de forma integral
DiffServ Per-Hop Behaviors
DiffServ Code Points
(DSCP)
Per-Hop Behaviors (PHB)
Expedited
Forwarding
101110 ≡ 32+8+4+2+0=46
EF
Assured
Forwarding
Low
Drop
Pref
Med
Drop
Pref
High
Drop
Pref
Class 1
AF11
AF12
AF13
001010 001100 001110
10
Class 2
AF21
AF22
AF23
Class 4
AF31
AF41
20
22
AF32
AF33
011010 011100 011110
AF42
AF43
100010 100100 100110
26
34
Best
Effort
14
010010 010100 010110
18
Class 3
12
000000
28
36
30
38
DSCP
Tipo de Tráfego
DSCP PHB
DSCP Decimal
IP Precedence
MPLS EV
Voice
EF
46
5
5
Vídeo
AF41
34
4
4
Voice-Control
AF31
26
3
3
Aplicação 1
AF21
18
2
2
Aplicação 2
AF22
20
2
2
Aplicação 3
AF23
22
2
2
Aplicação 1
AF11
10
1
1
Aplicação 2
AF12
12
1
1
Aplicação 3
AF13
14
1
1
BE
0
0
0
Aplicação 1
-
2
0
0
Aplicação 2
-
4
0
0
Aplicação 3
-
6
0
0
Dados (GOLD)
Dados (SILVER)
Best-Effort
Less-than-best-effort
Blocos de Controle de Tráfego
(TCB)
Classificador: identifica pacotes para associar a classes
Medidor: checa aderência aos parâmetros de tráfego (Token Bucket) e
passa resultado ao Marcador and Moldador/Decartador para disparar
ações particulares para pacotes dentro ou fora do perfil
Marcador: escreve/reescreve o valor do DSCP
Moldador: atrasa alguns pacotes para se tornarem conformes ao perfil
Descartador: descarta pacotes que excedem o perfil (Bc or Be)
Tráfego
Tráfego
Medição Policiamento
(Descarte/Moldagem)
Taxa de Tráfego
Taxa de Tráfego
Policiamento
Tempo
Taxa de Tráfego
Moldagem
Tempo
Tráfego
Tráfego
Tempo
Taxa de Tráfego
Tempo
Policiamento x Moldagem
Moldagem
Taxa de Tráfego
Tráfego
Tráfego
Policiamento
Tempo
Em ambas as direções
Pacotes fora do perfil são
descartados
Causa retx de TCP
Suporta marcação de pacote
para alterar prioridade
Não responde a BECNs ou
FECNs
Taxa de Tráfego
Tempo
Somente na direção de saída
Pacotes fora do perfil são
enfileirados até que buffer
transborde
Minimiza retx de TCP
Não suporta marcação/remarcação
Adaptável a congestionamento
(BECN e FECN)
Perfil de Comportamento de Tráfego
Define as propriedades temporais de um fluxo de
tráfego, como taxa ou tamanho de rajada, que serão
aplicadas a um agregado
Fornece regras que serão usadas para definir se um
fluxo é aderente ou não
Normalmente definido com base em características
de um balde de tokens (token bucket)
Controle de Tráfego por
Baldes de Tokens
RFC 2697
– Single Rate Three Color Marker (SRTCM)
RFC 2698
– Two Rate Three Color Marker (TRTCM)
RFC 2697: Single Rate Three
Color Marker (SRTCM)
Uso típico: Frame-Relay
Usa três parâmetros de tráfego
– Committed Information Rate (CIR)
Taxa média acordada (bytes/s)
– Committed Burst Size (CBS)
Tamanho acordado da rajada em bytes
– Excess Burst Size (EBS)
Excesso de rajada ainda tolerável em bytes
Parâmetros de Tráfego em FR
Commited Information Rate (CIR) em bytes/s
– Taxa garantida para o DLCI (circuito virtual)
Excess Information Rate (EIR) em bytes/c
– Taxa máxima do DLCI, sempre menor ou igual à taxa de acesso
Commited Rate Measurement Interval (Tc) em segundos
– Default de 1s para EBT, mas usuário pode alterar
Commited Burst Size (CBS) em bytes
– CBS = CIR x Tc
Excess Burst Size (EBS) em bytes
– Quantidade máx. de bytes, durante Tc, que pode exceder CBS
– EBS = EIR x Tc – CBS = (EIR – CIR) x Tc
– EIR = (CBS+EBS)/Tc
Cenário de Frame Relay
DLCI
CIR = 256 kbps
EIR = 1 Mbps
1 Mbps
Frame Relay
2 Mbps
DLCI
34 Mbps
CIR = 1 Mbps
EIR = 2 Mbps
Cenário de Frame Relay
SRTCM, Tc= 1s
SRTCM
CIR = 256 kbps = 32 kbytes/s
EIR = 1 Mbps = 128 kbytes/s
CBS = 32 kbytes
EBS = 96 kbytes
1 Mbps
Frame Relay
2 Mbps
SRTCM
34 Mbps
CIR = 1 Mbps = 128 kbytes/s
EIR = 2 Mbps
CBS = 128 kbytes
EBS = 128 kbytes
SRTCM: Cores de Marcação
Verde
– Conforme
– Dentro do CIR e CBS
Amarelo
– Parcialmente conforme
– Viola CIR e/ou CBS, mas dentro do EBS
Vermelho
– Completamente não conforme
– Viola EBS e também CIR e/ou CBS
Baldes no SRTCM
Usa dois baldes de tokens
– Balde C (Bc) com tamanho CBS
Balde C alimentado com tokens à taxa CIR e transborda
tokens para balde E
– Balde E (Be) com tamanho EBS
Baldes inicializados cheios
Funcionamento Básico do SRTCM
Tc: tokens presentes em Bc
Te: tokens presentes em Be
CIR
overflow
Bc
pacote com
B bytes
B > Tc
sim
não
Be
B > Te
sim
não
conforme
excede
decrementa
apenas o
balde Bc
decrementa
apenas o
balde Be
viola
Não
decrementa
nenhum balde
SRTCM: Exemplo
CIR = 8000 bps
1000bytes
= 1000bytes
t=0
1000B
t=0
500 bytes
500 bytes
t=0.25
t=250ms
800 bytes
1000 - 500
= 500B
0.25x8000/8 = 250B
800 bytes
250
+500
=750B
1000 - 800
=200B
SRTCM: Exemplo
t=0.20
t=450ms
0.20x8000/8 = 200B
1000 bytes
não conforme
1000 bytes
200
+750
=950B
0B
0
+200
=200B
SRTCM: Exemplo
t=0.20
t=650ms
1000 bytes
0.20x8000/8 = 200B
1000 bytes
200
+950
=1000B
1000 - 1000
= 0B
150B
150
+200
=350B
SRTCM: Modos de Operação
Dois modos de colorir ou marcar,
dependendo de como vê a cor do tráfego
entrante
– Insensível a cor (operação color-blind)
– Sensível a cor (operação color-aware)
Princípio da operação Color-Aware
Um pacote vermelho continua vermelho
Um pacote amarelo pode continuar amarelo ou se
tornar vermelho
Um pacote verde pode continuar verde ou se tornar
amarelo ou vermelho
Explicação: fluxos conformes na entrada de uma
rede podem passar por gargalos dentro da rede e o
fluxo combinado pode não ficar conforme; alguns
pacotes verdes podem ser marcados de amarelo ou
mesmo de vermelho.
SRTCM color-aware
Tc: tokens presentes em Bc
Te: tokens presentes em Be
CIR
overflow
Bc
pacote com
B bytes
B > Tc
sim
não
Be
B > Te
sim
não
conforme
excede
decrementa
apenas o
balde Bc
decrementa
apenas o
balde Be
viola
Não
decrementa
nenhum balde
SRTCM color-aware
Tc: tokens presentes em Bc
Te: tokens presentes em Be
CIR
overflow
Bc
pacote com
B bytes
B > Tc
sim
não
Be
B > Te
sim
não
conforme
excede
decrementa
apenas o
balde Bc
decrementa
apenas o
balde Be
viola
Não
decrementa
nenhum balde
SRTCM color-aware
Tc: tokens presentes em Bc
Te: tokens presentes em Be
CIR
overflow
Bc
pacote com
B bytes
B > Tc
sim
não
Be
B > Te
sim
não
conforme
excede
decrementa
apenas o
balde Bc
decrementa
apenas o
balde Be
viola
Não
decrementa
nenhum balde
SRTCM: Operação Color-Blind
Algoritmo
se Tc ≥ B,
pacote é marcado verde e Tc decrementado de B;
senão,
se Te ≥ B,
pacote é marcado amarelo e
Te decrementado de B;
senão,
pacote é marcado vermelho e baldes ficam
inalterados;
SRTCM: Operação Color-Aware
Algoritmo
se pacote é verde e Tc ≥ B,
pacote é marcado verde e Tc decrementado de B;
senão,
se o pacote é verde ou amarelo e Te ≥ B,
pacote é marcado amarelo e
Te decrementado de B;
senão,
pacote é marcado vermelho e baldes ficam
inalterados;
SRTCM: Operação Color-Aware
Decrementa apenas um dos dois baldes
– Tokens Bc consumidos apenas com pacotes verdes
– Tokens Be consumidos apenas com pacotes amarelos
O tamanho máximo de um pacote é limitado pelo
tamanho do balde correspondente
Pacote verde pode continuar verde ou ser marcado
amarelo ou vermelho; pacote amarelo pode continuar
amarelo ou ser marcado de vermelho; pacote
vermelho continua vermelho.
Rajadas
Verde
– Controlada pelo Balde C
– O intervalo entre pacotes verdes dependerá do intervalo
entre chegadas de pacotes ao balde
Amarela
– Controlada pelo Balde E
– O intervalo entre pacotes amarelos dependerá da taxa de
chegada dos pacotes ao balde
Tratamento de Cor com SRTCM
Pode ser usado para marcar pacotes quando
diferentes níveis de serviço (absoluto ou
relativo) são dados aos pacotes coloridos
Exemplo
– Serviço pode descartar pacotes vermelhos, pois
eles violam os limites de rajada (tanto CBS como
EBS); podem encaminhar pacotes amarelos como
best effort; e podem encaminhar pacotes verdes
com baixa probabilidade de descarte
RFC 2698: Two Rate Three
Color Marker (TRTCM)
Usa quatro parâmetros de tráfego
– Peak Information Rate (PIR)
Taxa máxima de pico (bytes/s)
– Peak Burst Size (PBS)
Rajada máxima do tráfego de pico (em bytes)
– Committed Information Rate (CIR)
Taxa média acordada (bytes/s)
– Committed Burst Size (CBS)
Rajada máxima do tráfego na taxa média (em bytes)
Cenário de Frame Relay
SRTCM, Tc= 1s
SRTCM
TRTCM, Tc= 1s
CIR = 256 kbps = 32 kbytes/s
EIR = 1 Mbps
TRTCM
CBS = 32 kbytes
EBS = 96 kbytes
CIR = 256 kbps = 32 kbytes/s
PIR = 1 Mbps
CBS = 32 kbytes
PBS = 128 kbytes
1 Mbps
Frame Relay
2 Mbps
SRTCM
34 Mbps
CIR = 1 Mbps = 128 kbytes/s
EIR = 2 Mbps
CBS = 128 kbytes
EBS = 128 kbytes
TRTCM
CIR = 1 Mbps = 128 kbytes/s
PIR = 2 Mbps
CBS = 128 kbytes
PBS = 256 kbytes
TRTCM: Cores de Marcação
Verde
– Conforme
– Não viola nem as condições de pico (PIR, PBS) ou as
condições médias (CIR, CBS)
Amarelo
– Parcialmente conforme
– Viola as condições médias, mas não viola as condições de
pico
Vermelho
– Não conforme
– Viola as condições de pico
TRTCM: Controle
Usa dois baldes de tokens: balde P com tamanho
PBS e balde C com tamanho CBS
– Baldes inicializados cheios
– Balde P é alimentado com tokens à taxa PIR e balde C é
alimentado com tokes à taxa CIR
Situação inicial
– Pacote com B bytes chega num dado instante
– Tp é o # de tokens encontrados no balde P
– Tc é o # de tokens encontrados no balde C
TRTCM: Modos de Operação
Dois modos de colorir (ou marcar),
dependendo de como vê a cor do tráfego
entrante
– Insensível a cor (operação color-blind)
– Sensível a cor (operação color-aware)
Operação TRTCM (color blind)
PIR
CIR
PBS
pacote com
tamanho B
B > Tp
sim
não
CBS
B > Tc
não
sim
viola
excede
baldes
inalterados
decrementa
apenas o
balde P
conforme
decrementa os
dois baldes
TRTCM: Operação Color-Blind
Algoritmo
se B > Tp,
pacote é marcado vermelho, e baldes ficam inalterados;
% Este pacote viola a taxa de pico ou rajada máxima PBS
senão,
se B > Tc,
pacote é marcado amarelo e Tp é decrementado de B;
% Pacote adere às condições de taxa de pico, mas
conflita com condições de taxa média e rajada nesta taxa
senão,
pacote é marcado verde e ambos os baldes são
decrementados de B tokens;
% Este pacote está dentro do CIR e CBS
Operação TRTCM (color aware)
PIR
CIR
PBS
pacote com
tamanho B
continua
vermelho
baldes
inalterados
CBS
Operação TRTCM (color aware)
PIR
CIR
PBS
pacote com
tamanho B
B > Tp
CBS
não
sim
viola
baldes
inalterados
continua
amarelo
decrementa
apenas o
balde P
Operação TRTCM (color aware)
PIR
CIR
PBS
pacote com
tamanho B
B>Tp
sim
não
CBS
B>Tc
não
sim
viola
excede
baldes
inalterados
decrementa
apenas o
balde P
continua
verde
decrementa os
dois baldes
TRTCM: Operação Color-Aware
Algoritmo
se pacote é vermelho ou se B > Tp,
pacote é marcado vermelho;
% pacote já é vermelho ou viola as condições de pico
senão,
se o pacote é amarelo ou B > Tc,
pacote é marcado amarelo e Tp é decrementado de B;
% pacote é amarelo ou não viola condições médias
senão,
pacote é verde e ambos os baldes são decrementados de
B tokens;
% Pacote já era verde e continua aderente às condições médias
Rajadas
Verde
– Influenciada pelos dois baldes
– O intervalo entre pacotes verdes dependerá das
condições dos baldes e da taxa de chegada de
pacotes ao controle
Amarela
– Controlada pelo balde P
– O intervalo entre pacotes amarelos dependerá da
taxa de chegada dos pacotes ao controle
Tratamento de Cor com TRTCM
TRTCM pode ser usado para marcar pacotes
quando diferentes níveis de serviço (ou
absoluto ou relativo) são dados aos pacotes
coloridos
Exemplo
– Serviço pode descartar pacotes vermelhos, pois
eles violam a taxa de pico; podem encaminhar
pacotes amarelos como best effort; e podem
encaminhar pacotes verdes com baixa
probabilidade de descarte
Referências para DiffServ
RFC-2474, Definition of the Differentiated Services Field (DS
Field) in the IPv4 and IPv6 Headers
RFC-2475, An Architecture for Differentiated Service
RFC-2998, A Framework for Integrated Services Operation over
Diffserv Networks
RFC-2597, Assured Forwarding PHB Group
RFC-3140, Per Hop Behavior Identification Codes
RFC-3260, New Terminology and Clarifications for Diffserv
Outras Referências
Srinivas Vegesna, IP Quality of Service, Cisco Press, 2001

Documentos relacionados