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