Qualidade de Serviço Requisitos das aplicações Técnicas para obter boa qualidade de serviço Sobredimensionamento da rede Memorização de pacotes Suavização do tráfego (Traffic shaping) O algoritmo Leaky Bucket O algoritmo Token Bucket Reserva de recursos Controlo de admissão Encaminhamento proporcional Fila de espera pesada e justa Serviços integrados (intserv) RSVP Resource reservation Protocol Serviços diferenciados (diffserv) Envio expedito Envio assegurado Label switching
Qualidade de Serviço A técnicas de controlo de congestão procuram minimizar ou evitar a congestão Mas não oferecem garantias. Requisitos das aplicações Necessidades de QoS para fluxos de dados Aplicação Fiabilidade Atraso Jitter Larg. Banda Correio Electrónico Alta Baixa Baixa Baixa Transferência de ficheiros Alta Baixa Baixa Média Web Alta Média Baixa Média Terminal Remoto Alta Média Média Baixa Áudio on demand Baixa Baixa Alta Média Vídeo on demand Baixa Baixa Alta Alta Telefonia IP Baixa Alta Alta Baixa Videoconferência Baixa Alta Alta Alta Nas redes ATM definem-se cinco categorias de serviço: Classe Descrição Exemplo CBR Ritmo constante Telefonia RT-VBR Ritmo variável; tempo real Videoconferência NRT-VBR Ritmo variável; s/tempo real Vídeo on-demand ABR / UBR Ritmo disponível Navegação na Web QoS-1 Luis Bernardo & Paulo Pinto
Técnicas para obter boa qualidade de serviço Sobredimensionamento da rede Sobredimensionando a capacidade dos encaminhadores (memória e processador) e a largura de banda. Memorização de pacotes Introduzir um tampão de memória entre a recepção das mensagens e o reprodutor do fluxo, que compensa o jitter na ligação. Partida de pacotes na fonte Pacotes chegam ao tampão Remoção de pacotes do tampão A reprodução tem um corte do pacote 7 para o pacote 8. Se o atraso tivesse sido de 11 segundos QoS-2 Luis Bernardo & Paulo Pinto
Suavização de tráfego (Traffic shaping) Os burts são uma das maiores causas de congestão Tentar que a transmissão dos pacotes seja mais predictível traffic shaping regular o ritmo médio (e a burstiness) da transmissão Os algoritmos de janela deslizante limitam a quantidade de dados em trânsito de cada vez. Não limitam o ritmo a que são enviados. A ideia é os hosts e a rede concordarem com um certo padrão de tráfego para o circuito. Se o host cumprir, a rede entrega os dados de um modo pronto. Acordo de nível de serviço (Service Level Agreement). A partir dos vários padrões, a rede pode gerir-se melhor, sem provocar congestão (muito importante para tráfego de tempo real) Mas como é que a rede pode saber que o host está a cumprir aquilo que negociou? A monitorização do fluxo de tráfego chama-se traffic policing QoS-3 Luis Bernardo & Paulo Pinto
O Algoritmo Leaky Bucket Um balde com um furo A saída é constante, não interessando a que ritmo entra no balde. Quando o balde está vazio a saída é zero! Se estiver muito cheio a água começa a sair por cima, perdendo-se Um sistema de filas de espera, com um só servidor, e com serviço determinístico. Computador Fluxo não regulado Fluxo regulado Os efeitos práticos é que suaviza os bursts. Quando os pacotes têm tamanhos diferentes, a unidade de contagem deve ser o byte e não a célula. QoS-4 Luis Bernardo & Paulo Pinto
Exemplo: Um computador gera 25 MB/s. A rede opera a essa velocidade, mas os routers só aguentam durante um certo tempo. A velocidade sustentável deles é de 2 MB/s. Se o leaky bucket for de 2 MB/s e uma capacidade de 1 MB, os bursts de 1 MB são absorvidos e espalhados por 500 mseg 25 MB/seg por 40 ms 0 500 2 MB/seg por 500 ms 0 500 O Algoritmo Token Bucket O leaky bucket força a um ritmo muito rígido, a volta da média Seria melhor deixar passar alguns bursts controladamente, de modo a melhorar a velocidade. Um balde contém testemunhos gerados por um relógio a um ritmo de um a cada T seg Pode existir um máximo de testemunhos que se podem guardar Para os pacotes poderem seguir têm de capturar e destruir testemunhos que estejam no balde. QoS-5 Luis Bernardo & Paulo Pinto
Exemplo: Computador Computador O formato do tráfego gerado é diferente do gerado pelo leaky bucket (em que os hosts não podem ir guardando testemunhos) Outra diferença é que o token bucket deita fora testemunhos, mas não deita fora pacotes. Pode-se também inventar uma variante em que testemunhos se relacionam com bytes e não com pacote Na sua essência, o token bucket deixa passar bursts até uma certa dimensão. Imaginando um ritmo de geração de testemunhos de 2 MB/seg e uma capacidade de 250 KB. Assumindo que o balde está cheio, pode-se transmitir a 25 MB/seg durante 11 mseg. Depois é a 2 MB/seg QoS-6 Luis Bernardo & Paulo Pinto
25 MB/seg por 40 ms 0 500 2 MB/seg por 500 ms 0 500 25 MB/seg por 11 ms 2 MB/seg por 364 ms 0 500 25 MB/seg por 22 ms 2 MB/seg por 228 ms 0 500 25 MB/seg por 33 ms 2 MB/seg por 92 ms 0 500 10 MB/seg por 62 ms 2 MB/seg por 190 ms 0 500
Qual é a dimensão do maior burst? Enquanto está a ser despachado entram mais testemunhos comprimento do burst capacidade de testemunhos taxa de entrada de testemunhos ritmo máximo de saída S seg C bytes ρ bytes/seg M B/seg burst de saída C + ρs bytes número de bytes enviados à velocidade máxima MS C + ρs = MS S = C / (M - ρ) Para C = 250 KB, M = 25 MB/seg ρ = 2 MB/seg 11 mseg C = 500 KB e C = 750 KB Um problema é que voltamos a ter bursts Haverá uma solução intermédia? Colocar um leaky bucket depois de um token bucket. o ritmo do leaky bucket deve ser maior do que o ρ,mas menor do que o ritmo máximo da rede. O problema do policiamento começa a ser complicado, pois tem de se simular todos estes algoritmos. QoS - 8 Luis Bernardo & Paulo Pinto
Reserva de recursos A especificação do padrão de tráfego de cada fonte define quantos recursos são necessários para tratar o fluxo Para haver garantias é necessário definir um circuito virtual por onde passem todos os pacotes É necessário reservar três tipos de recursos: Largura de banda Espaço em memória nos encaminhadores Ciclos de CPU Largura de banda Não ultrapassar total de largura de banda disponível (valores médios ou máximos?) Espaço em memória Quando um encaminhador recebe um pacote, copia-o para memória RAM e coloca-o na fila de espera da linha de saída. Se não houver memória, o pacote é descartado. Quanto é necessário? QoS - 9 Luis Bernardo & Paulo Pinto
Ciclos de CPU O processamento de um pacote ocupa alguns ciclos de CPU. e.g. µ = 1 µseg = 10-6 seg A capacidade de processamento total do encaminhador não é 1/µ porque vai haver flutuações na distribuição da carga no tempo, originando períodos de inactividade. Teoria das filas de espera (modelo M/M/1) Se: a carga tiver um valor médio de λ pacotes/seg as distribuições do tempo de processamento e do intervalo de chegada dos pacotes foram processos de Poisson Então o tempo médio de espera de um pacote num encaminhador é: T 1 1 1 1 = = µ 1 λ µ µ 1 ρ e.g. λ= 950 000 pacotes/seg µ= 1 000 000 pacotes/seg T= 20 µseg Se forem 6 encaminhadores numa rota QoS - 10 Luis Bernardo & Paulo Pinto
Controlo de Admissão Antes de aceitar uma ligação, um encaminhador tem de saber se tem ou não recursos para ela. Especificação do padrão de tráfego de um modo preciso (e.g. RFC 2210 e 2211). Um estrutura de dados que descreva tudo. Antes de se estabelecer a ligação, o emissor dá essa estrutura à aplicação para aprovação. Aceite Recusada Negociada Depois de haver acordo o receptor é questionado para saber se concorda Parâmetros ritmo do testemunho (bytes/seg) tamanho do balde em testemunhos (bytes) ritmo máx. de transmissão (bytes/seg) tamanho máx. de um pacote (bytes) tamanho mín. de um pacote (bytes) ritmo do testemunho ritmo médio parâmetros balde testemunhos pico máximo de pacotes tamanho mínimo limitações de processamento de pacotes (nº pacotes máximo por segundo) tamanho máximo limitações da MTU da rede QoS - 11 Luis Bernardo & Paulo Pinto
Encaminhamento Proporcional Pode-se melhorar a qualidade de serviço utilizando várias rotas em paralelo, em vez de usar apenas a rota mais curta. Usar apenas informação disponível localmente (e.g. largura de banda disponível para cada rota) Fila de espera pesada e justa Um fluxo de dados muito intenso pode perturbar todos os outros fluxos num router. As filas justas consistem em ter não uma, mas várias filas por linha de saída, que são servidas por round robin por pacote, ou por byte por byte: A B C D E 1 6 111519 20 2 7 1216 3 8 4 9 1317 5 101418 O Pacotes tempo de terminação C 8 B 16 D 17 E 18 A 20 Todos os utilizadores têm a mesma prioridade Pode-se dar mais bytes a uns do que a outros ficando o algoritmo de fila de espera pesada e justa QoS - 12 Luis Bernardo & Paulo Pinto
Serviços integrados (intserv) Desde a década de 90 que a IETF leva a cabo um esforço para desenvolver técnicas para oferecer garantias de qualidade de serviço, de forma a transportar feixes multimédia (áudio e vídeo). O serviço básico oferecido tem uma semântica de "melhoresforço" Técnicas de reserva adiantada de largura de banda não funcionam pois os utilizadores podem sair e entrar nos grupos Desenvolvido principalmente entre 1995 e 1997 pela IETF, suporta a reserva de recursos baseada em fluxo. São alocados recursos para cada feixe multimédia, em todos os encaminhadores atravessados. É usado o protocolo RSVP para reservar recursos. RSVP Resource reservation Protocol O protocolo usa spanning trees. É atribuído um endereço de grupo a cada grupo, que é usado quando se quer transmitir para esse grupo. O algoritmo normal de multicast forma a spanning tree cobrindo todos os membros do grupo. QoS - 13 Luis Bernardo & Paulo Pinto
O RSVP, na verdade, só coloca certa informação que é distribuída periodicamente ao grupo, para dizer aos routers para manterem certas estruturas de dados. 1 2 1 2 1 2 A B C A B C A B C D E F D E F D E F G H I G H I G H I J K L J K L J K L 3 4 5 3 4 5 3 4 5 Os receptores podem enviar uma mensagem de reserva ao emissor (é usado o reverse path forwarding). Cada router pelo caminho vai reservando largura de banda. Se não houver suficiente reporta a falha ao emissor. Quando a mensagem chega ao emissor foi guardada largura de banda ao longo da spanning tree. QoS - 14 Luis Bernardo & Paulo Pinto
1 2 1 2 1 2 A B C A B C A B C D E F D E F D E F G H I G H I G H I J K L J K L J K L 3 4 5 3 4 5 3 4 5 Quando está a fazer uma reserva, o receptor pode especificar mais do que um emissor. se são fixos pela duração da reserva, ou pode mudar (só se partilham rotas se eles não quiserem mudar) Assim consegue-se que se o receptor mudar de emissor ainda pode usar parte da reserva que tenha interesse na nova rota. QoS - 15 Luis Bernardo & Paulo Pinto
Serviços diferenciados (diffserv) A abordagem baseada na reserva de recursos por fluxo não escala para grandes redes, com milhões de feixes activos. E.g. O netmeeting cria uma reserva RSVP em todos os encaminhadores da rede que suportarem o protocolo. Desenvolvidos a partir de 1997, suportam a classificação do tráfego em classes, encaminhadas de forma distinta. Os recursos são reservados por classe e não por feixe. Os serviços diferenciados oferecem uma abordagem mais simples, com uma realização local aos encaminhadores, sem necessitarem de informação sobre os feixes activos. É definido um conjunto de tipos de serviço, com regras diferenciadas de encaminhamento. Actualmente estão definidos três tipos de serviço: envio expedito [RFC 3246] envio assegurado [RFC 2597] melhor esforço Cada tipo de serviço pode definir várias classes de tráfego. Os pacotes são classificados ao entrar na rede, sendo marcados com o código da classe de tráfego nos campos tipo de serviço (ToS) do IPv4 ou classe de tráfego do IPv6. Os comutadores da rede usam estes campos para realizar o encaminhamento dos pacotes dos fluxos de cada classe, de acordo com a especificação do nível de serviço. QoS - 16 Luis Bernardo & Paulo Pinto
A divisão do tráfego por classes de tráfego permite atribuir diferentes prioridades ao tráfego, possivelmente com diferentes tarifários para os utilizadores. Os comutadores reservam largura de banda para cada classe de tráfego. Envio expedito Pretende oferecer um serviço tipo circuito virtual, com uma largura de banda garantida, taxa de descarte de pacotes baixa, atraso baixo e jitter baixo. O utilizador contrata uma largura de banda de pico (validada por um suavizador de tráfego no encaminhador de entrada, que classifica os pacotes). Os encaminhadores suportam uma fila de espera para tráfego expedito, que tem prioridade face ao restante, dentro da largura de banda reservada para a classe. Melhor esforço Corresponde ao serviço já existente, sem quaisquer garantias, que é seleccionado por omissão. QoS - 17 Luis Bernardo & Paulo Pinto
Envio assegurado Pretende oferecer um serviço em que os pacotes que não excedam o ritmo negociado são entregues com elevada prioridade, estando os restantes sujeitos à prioridade de descarte do tráfego de melhor esforço. O utilizador contrata uma largura de banda correspondente ao ritmo médio, podendo especificar um ritmo de pico. Estão definidas quatro classes de tráfego (com recursos privados) e três níveis de probabilidade de descarte para cada classe. Os pacotes são classificados num dos quatro níveis de prioridade no encaminhador de acesso à rede, ou no emissor. O campo TOS do pacote (8 bits) é marcado com o nível de prioridade correspondente (classe de tráfego). Os pacotes são passados por um suavizador/descartador que pode atrasar ou mesmo descartar alguns pacotes de forma a obedecer ao ritmo médio negociado. QoS - 18 Luis Bernardo & Paulo Pinto
Comutação de etiquetas (Label Switching) Enquanto o IETF andava a definir o intserv e o diffserv, os fabricantes de equipamentos criaram uma terceira abordagem para oferecer garantias de qualidade de serviço para o mundo IP: Usar os mecanismos de reserva de recursos na rede que suporta o IP. Inicialmente, usando sistemas ATM, baseados em circuitos virtuais. Posteriormente, evoluindo para sistemas de comutação de etiquetas, posteriormente normalizados como MPLS. Este conjunto de protocolos vai ser estudado após se estudar o nível rede da Rede ATM. QoS - 19 Luis Bernardo & Paulo Pinto