• Nenhum resultado encontrado

Os WebLabs de Redes de Computadores baseados na arquitetura SOA oferecem flexibilidade para o desenvolvimento de aplicações distribuídas. A oferta de controle de QoS para os experimentos será explorada no próximo capítulo.

Capítulo 3

WebLabs de Redes com Suporte a DiffServ

Este capítulo faz uma descrição dos requisitos que um WebLab de redes de computadores deve possuir para dar suporte a experimentos DiffServ. O objetivo principal é permitir o controle do com- partilhamento da largura de banda da rede. Esse controle pode ser feito pelos usuários com marcações nos cabeçalhos dos pacotes IP ou por meio de agentes que alocam a banda necessária para o fluxo de acordo com as políticas acordadas para a realização do experimento. A descrição da teoria DiffServ orienta a definição dos requisitos desse tipo de WebLab.

3.1 Teoria de Serviços Diferenciados

Serviços Diferenciados (Differentiated Services - DiffServ - DS) é uma abordagem que busca fornecer serviços distintos e escaláveis na Internet sem a necessidade de tratar cada fluxo e nem de sinalizá-los em cada nó [3]. A arquitetura é baseada em um modelo de rede que é implementada sobre um sistema autônomo ou domínio. Com o controle administrativo é possível prover regras consistentes para tratar o tráfego que transita pelo domínio. Esse tráfego pode ser tratado de forma diferente para aplicações de diferentes usuários ou aplicações de usuários de outros domínios.

A arquitetura DiffServ é implementada com a classificação do tráfego de entrada no domínio em diferentes classes, também conhecidas como comportamentos agregados (Behavior Aggregate - BA) ou agregados. Um agregado é uma coleção de pacotes com a mesma marcação no domínio. Os pa- cotes que pertencem a uma classe são encaminhados de forma diferente dos pacotes que pertencem a outra. Como exemplo, os fluxos de aplicações de clientes autenticados que precisam de mais recursos de rede podem receber tratamento preferencial sobre os fluxos de outros clientes. De maneira seme- lhante, os fluxos de lugares desconhecidos podem trazer vírus, worms, e-mails de spam entre muitos outros, o que provoca um mau uso dos recursos de rede do domínio e prejudica os clientes cadastra- dos. Esses são alguns dos fatores que justificam a atenção do IETF para o tratamento diferenciado nas redes sem a necessidade de violar o conteúdo dos pacotes.

A classificação de fluxos em classes oferece uma característica básica, mas muito importante dos Serviços Diferenciados: o número de classes tende a ser bem menor do que o número de fluxos. Isso reduz significativamente a quantidade de informação que precisaria ser mantida em cada roteador. São tratadas as classes dos fluxos ao invés dos fluxos individuais, o que reduz a quantidade de recursos para a gerência, otimiza o uso de recursos com uma melhor qualidade do serviço de encaminhamento oferecido e promove maior escalabilidade.

O IETF estudou a possibilidade de diferenciar a distribuição de recursos da rede porque novas aplicações como as de tempo-real que utilizam a Internet como meio de integração de serviços de telefonia fixa, difusão de fluxos de áudio e vídeo, laboratórios virtuais, aplicações de teleconferência e outros mais, exigem um nível maior de qualidade de envio e recepção de informações se comparado

com aplicações convencionais. Ainda que a interligação de redes com TCP/IP permita a entrega de pacotes sem duplicações, perdas e erros, não há garantias quanto à vazão, variação do atraso de envio e recepção (jitter), entre outros. Várias propostas de tecnologias foram sugeridas pelo IETF para oferecer QoS na Internet. Dentre elas destacam-se: IntServ/RVSP [55, 56], MPLS (Multi Protocol

Label Switching [57]) e Differentiated Services [58, 59]. DiffServ se destacou por promover maior

escalabilidade em relação às demais porque realiza o tratamento dos pacotes IP contidos nos fluxos da rede ao invés do tratamento individual desses fluxos. Dentre as necessidades das aplicações de redes destacam-se:

• vazão (throughput): considerando dois hosts A e B em uma rede, a vazão instantânea em qualquer instante do tempo é a taxa na qual o host B está recebendo os dados transmitidos pelo

host A, geralmente representada em bits/segundo. Caso o host B leve T segundos para receber

todos os F bits transmitidos pelo host A então a vazão média da transferência do arquivo é representada por F/T bits/segundo. Portanto, vazão é a taxa na qual o processo que envia dados pode entregar bits ao processo que recebe dados [60].

• largura de banda (bandwidth): largura de banda e vazão são conceitos distintos. Como exemplo, pode-se considerar um cenário onde exista uma conexão entre um host servidor e um host cliente intermediados por um roteador. Seja Ts a taxa de transmissão do enlace do servidor

com o roteador e Tc a taxa de transmissão do enlace do roteador com o cliente. A taxa de

envio de dados do servidor não deve ser maior que Ts para evitar perdas de pacotes e atrasos

de conexão. De forma semelhante, o roteador não pode encaminhar dados para o cliente a uma taxa maior que Tc. Em virtude disso, a vazão entre o cliente e o servidor será o min{Ts, Tc}.

Para n outros hosts intermediários na conexão entre a origem e o destino, a mesma afirmação é válida, ou seja, a vazão será o min{T1, T2, ... Tn}. A vazão depende das taxas de transmissão

dos enlaces que mantêm os fluxos de dados. Os hosts da rede e seus elementos de conexão, definem a largura de banda do enlace. Assim, a vazão máxima entre a origem e o destino da conexão pode ser menor ou igual à largura de banda oferecida. Nesse sentido, a largura de banda é a taxa de transmissão máxima oferecida como resultado dos enlaces existentes na comunicação fim-a-fim. Essa taxa é altamente dependente dos elementos intermediários que promovem a conexão [60].

• perda de pacotes: quando um pacote encontra a fila do buffer do host cheia, geralmente ocorre o descarte de pacotes. A fração de perda de pacotes aumenta com a intensidade do tráfego. Isso faz com que a performance de um nó da rede também seja avaliada em função da sua probabilidade de perda de pacotes [60]. Portanto, a perda de pacotes pode ocorrer quando são enviados mais pacotes do que a capacidade de processamento deles nos hosts intermediários e/ou no host destino, superando a capacidade do buffer do host. A perda de pacotes dependerá da carga do tráfego, da velocidade relativa do elemento de comutação, da taxa de transmissão do enlace, de erros no encaminhamento dos pacotes, entre outros fatores. Esse é um fator essencial para a análise de congestionamento.

• atraso fim-a-fim: é uma medida do atraso total entre a origem e o destino. Seja dproco atraso de

processamento do pacote em cada roteador e no host de origem. Seja dtrans o atraso de trans-

missão, cujo valor é L/R, onde L é o tamanho do pacote e R a taxa de transmissão alcançada por cada roteador e pela origem. Finalmente, seja dpropo atraso de propagação em cada enlace. En-

tão, o valor do atraso fim-a-fim é o resultado da fórmula: df imAf im = N(dproc+ dtrans+ dprop),

para N-1 roteadores e o host de origem. Esse valor é uma aproximação do valor real porque existem diferentes atrasos em cada um dos roteadores, no host de origem, e nos enlaces entre a origem e o destino [60].

• atraso de propagação: é o tempo que se leva para propagar um bit de um roteador para o próximo; esse atraso é uma função da distância entre os roteadores, mas nada tem a ver com o tamanho do pacote ou a taxa de transmissão do enlace [60].

• atraso de transmissão: é a quantidade de tempo necessária para o roteador enviar o pacote; esse atraso se dá em função do tamanho do pacote e da taxa de transmissão do enlace, mas nada tem a ver com a distância entre os dois roteadores [60].

• variação do atraso fim-a-fim (jitter): em muitas situações de análise de congestionamento e medição de tráfego é interessante conhecer a flutuação do tempo de quando um pacote é ge- rado na fonte até ele ser recebido no destino. Essa variação do tempo de atraso fim-a-fim é conhecida como jitter e irá depender da capacidade de transmissão dos roteadores, do atraso de envio de pacotes do host de origem, da largura de banda dos enlaces e também do próprio congestionamento da rede entre a origem e o destino [60].

A implementação de Serviços Diferenciados em uma rede considera que o tráfego de pacotes IP seja classificado e atribuído a diferentes comportamentos agregados. Um agregado é uma coleção de pacotes IP com a mesma marcação no cabeçalho. Podem existir diversos agregados de pacotes sendo encaminhados de acordo com regras específicas através dos nós da rede.

Dentro do domínio DS um Acordo de Nível de Serviço (SLA) define quais recursos de rede estarão disponíveis para os usuários. Esse acordo é definido entre o host cliente e o domínio. Também pode ser atribuído um Acordo de Condicionamento de Tráfego (Traffic Conditioning Agreement -

TCA) que estabelece o que deverá ser feito com os tráfegos de pacotes que não respeitarem o SLA.