• Nenhum resultado encontrado

4.3 Justi¸ca em redes de computadores

4.3.2 Mecanismos de escalonamento

Um mecanismo de escalonamento implementa uma pol´ıtica que ´e associada a um sistema de filas. Em redes de computadores, quando um canal de comunica¸c˜ao est´a ocupado, pacotes s˜ao armazenados em buffers. Quando este canal estiver pronto para transmitir, se dois ou mais pacotes estiverem em espera, ent˜ao a pol´ıtica de escalonamento determina qual pacote deve ser escolhido para transmiss˜ao, baseado em algum crit´erio de desempenho ou justi¸ca.

Escalonadores s˜ao projetados para assegurar que todos os fluxos tenham acesso aos recursos da rede (canais de comunica¸c˜ao e buffers) tamb´em de maneira justa. Se por um lado, um administrador de rede deve escolher os mecanismos de escalonamento que sejam eficientes e menos complexos, por outro lado, a flexibilidade de um mecanismo n˜ao deve comprometer o acesso de alguns fluxos aos recursos da rede. Se inicialmente as redes de computadores tinham como objetivo permitir igualdade de direitos no acesso aos recursos da rede, com a diferencia¸c˜ao de servi¸cos ´e preciso definir como os recursos devem ser compartilhados, j´a que os requisitos de cada aplica¸c˜ao s˜ao diferentes.

A aloca¸c˜ao de banda em redes de computadores pode ser definida por administra- dores de rede a partir de esquemas est´aticos, onde um especialista recomenda como o recurso pode ser dividido. A aloca¸c˜ao ´e realizada segundo algum conhecimento pr´evio das necessidades das aplica¸c˜oes. Mas, `a medida que novas aplica¸c˜oes s˜ao inseridas na rede, fica dif´ıcil prever o comportamento sem que sejam observados compromissos entre o uso eficiente e a justi¸ca no acesso aos recursos.

Aplica¸c˜oes de v´ıdeo, por exemplo, demandam grande quantidade de banda, mas a reserva de uma grande quantidade de recursos para essas aplica¸c˜oes pode ser conside- rada ineficiente em per´ıodos de baixa demanda, onde o recurso de banda desperdi¸cado poderia melhorar a QoS para as aplica¸c˜oes com requisitos de alta vaz˜ao. Por outro lado, se uma grande quantidade de largura de banda for atribu´ıda para aplica¸c˜oes

CAP´ITULO 4. JUSTIC¸ A 71

el´asticas em detrimento das aplica¸c˜oes de v´ıdeo, a satisfa¸c˜ao dos usu´arios que pa- garam pelo servi¸co de v´ıdeo com QoS pode ficar seriamente comprometida, enquanto que far´a pouca diferen¸ca para os demais usu´arios de aplica¸c˜oes mais tolerantes.

A diferen¸ca nos requisitos das aplica¸c˜oes imp˜oe `as arquiteturas de rede a necessi- dade de novos mecanismos de aloca¸c˜ao, com a defini¸c˜ao de novos princ´ıpios de justi¸ca que n˜ao se restringem `a divis˜ao equitativa de recursos. Esquemas de aloca¸c˜ao devem ser flex´ıveis com rela¸c˜ao aos requisitos de QoS, mas n˜ao devem comprometer a justi¸ca na aloca¸c˜ao. Isto ´e, alguns poucos usu´arios de uma classe de servi¸co n˜ao podem degradar a QoS das demais classes (PAREKH; GALLAGER, 1993).

Os algoritmos de escalonamento determinam a aloca¸c˜ao de trˆes tipos de recursos

(DEMERS; KESHAV, 1989):

1. largura de banda – determinando qual pacote deve ser enviado; 2. prontid˜ao – determinando quando os pacotes devem ser enviados e 3. espa¸co em buffer – determinando quais pacotes devem ser descartados.

O gerenciamento destes recursos s˜ao diretamente relacionados `a QoS pois afetam a vaz˜ao, o atraso, as perdas e a varia¸c˜ao de atraso (jitter ) dos fluxos de pacotes.

O algoritmo de escalonamento ´e um ponto chave para redes com QoS e por isso um grande n´umero de trabalhos tem sido produzido, com o intuito de propor novos algoritmos para aloca¸c˜ao de banda com fairness (LENZINI; MINGOZZI; STEA, 2004;

CHEN e outros, 2004;MILLET; MAMMERI, 2004;ZENG e outros, 2004;STOICA; SHENKER;

ZHANG, 2003). Zhang (ZHANG, 1995) apresenta uma vis˜ao geral das pol´ıticas para

QoS absoluto por fluxo.

No servi¸co melhor-esfor¸co, em um n´o agregador de tr´afego, pacotes de fluxos diferentes s˜ao multiplexados de acordo com a ordem em que chegaram. O primeiro a entrar no sistema ´e o primeiro a sair (FIFO). Neste caso, a QoS de um fluxo ´e vari´avel durante o tempo de transmiss˜ao, dependendo do comportamento do tr´afego gerado

CAP´ITULO 4. JUSTIC¸ A 72

pelos demais fluxos. A instabilidade da QoS pode causar insatisfa¸c˜ao aos usu´arios que podem procurar outros servi¸cos de comunica¸c˜ao mais est´aveis.

A diferencia¸c˜ao de servi¸cos ´e implementada a partir de filas dedicadas a cada PHB e nessas filas, pol´ıticas que se adequam ao comportamento esperado definido pelo PHB, s˜ao adotadas. As pol´ıticas s˜ao adotadas pelo fabricante com base em um equil´ıbrio entre caracter´ısticas de complexidade, controle e justi¸ca.

Em arquiteturas DiffServ, dois tipos b´asicos de sistemas de filas s˜ao utilizados: filas com prioridades e filas baseadas em taxas (rate-based ) (BABIARZ; CHAN; BAKER, 2006).

Um mecanismo de aloca¸c˜ao que adota filas com prioridades (PQ — Priority Queue) ´e uma combina¸c˜ao de um conjunto de filas e um escalonador que esvazia essas filas seguindo uma ordem de prioridades. O tr´afego com prioridade mais alta ´e sempre servido antes do tr´afego com prioridade inferior. Filas com prioridades al- tas sofrem atrasos e jitter com um certo limite e s˜ao adequadas para tr´afego que exija garantias estritas de QoS. No entanto, deve haver um mecanismo de controle de admiss˜ao para evitar que uma grande quantidade de tr´afego de alta prioridade invia- bilize por completo o tr´afego de prioridades mais baixas, caracterizando o fenˆomeno denominado starvation. Um grande volume de tr´afego alta prioridade pode tamb´em causar atrasos significativos inclusive para o tr´afego dos outros fluxos que comparti- lham a mesma fila.

Mecanismos que adotam filas baseadas em taxas garantem uma quantidade m´ınima de recursos para as classes de servi¸co. Estes mecanismos tamb´em utilizam um con- junto de filas e o escalonador esvazia a fila a uma taxa espec´ıfica. Esquemas de aloca¸c˜ao baseado em taxas s˜ao flex´ıveis porque variando as taxas de servi¸co atribu´ıdas a cada fila ´e poss´ıvel tratar os fluxos diferenciadamente de acordo com as carac- ter´ısticas da classe a que pertencem. A um fluxo de uma aplica¸c˜ao insens´ıvel ao atraso e que requer banda alta, por exemplo, pode ser atribu´ıda uma taxa de servi¸co

CAP´ITULO 4. JUSTIC¸ A 73

bem menor em rela¸c˜ao `a sua taxa m´edia, reservando um melhor tratamento para os demais fluxos de outras classes com requisitos mais estritos de atraso.

Os mecanismos de aloca¸c˜ao baseados em taxas s˜ao associados a mecanismos de controle de congestionamento para que seja poss´ıvel dar garantias de QoS. O esca- lonador deve ser associado a mecanismos de gerenciamento de fila, condicionamento de tr´afego e controle de admiss˜ao para que fluxos com taxa de chegada alta n˜ao prejudiquem o desempenho dos demais fluxos. Uma fila onde a taxa de chegada ´e bem menor do que a taxa de servi¸co, tende a estar sempre vazia, sofrendo atraso m´ınimo. Quando a taxa de chegada se aproxima ou excede a taxa de servi¸co, pacotes s˜ao acumulados na fila causando atrasos. O escalonador pode impor uma taxa m´ınima e uma taxa m´axima e quando o tr´afego n˜ao estiver em conformidade com estes valores, algum mecanismo de gerenciamento da fila como o RED (Random Early Discard )

(FLOYD; JACOBSON, 1993), por exemplo, deve ser utilizado para controlar o tamanho

da fila, limitando o atraso de enfileiramento que o fluxo pode sofrer.

De uma maneira geral, os PHBs podem ser implementados a partir de uma s´erie de mecanismos de escalonamento associados a mecanismos de controle de congestio- namento para que sejam garantidos o isolamento de fluxo, eficiˆencia e justi¸ca.

Entre os algoritmos de escalonamento se destacam a prioridade estrita (PQ) e os esquemas baseados em taxas tais como: (WFQ — Weighted Fair Queue) e varia¸c˜oes como WF2Q — Worst-Case Fair Weighted Fair Queueing , WF2Q+, CSFQ — Core Stateless Fair Queueing (STOICA; SHENKER; ZHANG, 2003), DRR — Deficit Round Robin, H-PFQ — Hierarchical Packet Fair Queueing (BENNETT; ZHANG, 1997), WRR — Weighted Round Robin e varia¸c˜oes como DWRR — Deficit Weighted Round Robin.

`

A medida que aumenta o n´umero de requisitos que s˜ao atendidos por estes algoritmos de escalonamento, aumenta a quantidade de parˆametros que devem ser configurados. A configura¸c˜ao envolve v´arias filas separadas onde devem ser configurados parˆametros como prioridades, pesos, tamanho m´edio e m´aximo da fila, preferˆencia de descarte,

CAP´ITULO 4. JUSTIC¸ A 74

etc.

A pol´ıtica de Fair Queue (FQ), definida por Nagle (NAGLE, 1985) em 1985, deu

origem a uma classe de pol´ıticas de escalonamento que evitam que fluxos consumam mais largura de banda do que a fra¸c˜ao justa que lhe ´e cab´ıvel. Com base em um princ´ıpio de justi¸ca de que cada fonte tem direito a uma fra¸c˜ao igual de recursos da rede, Nagle defendia a ideia de que a capacidade da rede deve ser compartilhada equitativamente entre todos os usu´arios do sistema. Com FQ, a QoS ´e por fluxo. Os fluxos s˜ao alocados em filas individuais e cada pacote ´e atendido um por vez de forma circular (RR — Round-Robin). Se durante um ciclo uma fila estiver vazia, ent˜ao esta fila ´e desconsiderada.

A separa¸c˜ao do tr´afego em filas individuais, para cada fonte que gera fluxos in- dividuais, evitava que essas fontes prejudicassem o desempenho das demais fontes, aumentando arbitrariamente o uso de recursos. Com o isolamento de fluxos, se uma fonte aumenta a taxa de envio, diante de uma aloca¸c˜ao justa, apenas a fila da fonte com taxa alta aumenta de tamanho sem prejudicar as demais.

Em FQ, a largura de banda ´e dividida igualmente entre os fluxos que compartilham uma conex˜ao comum, apenas quando os pacotes em todas as filas tiverem tamanhos iguais. Devido `a pol´ıtica RR, fluxos onde predominam pacotes de tamanho maior do que os demais tendem a obter uma parcela maior de banda do que os fluxos com pacotes menores, j´a que o tamanho do pacote n˜ao importa nessa pol´ıtica.

Aloca¸c˜ao baseada em classes de servi¸co tamb´em podem adotar o FQ. Neste caso, cada classe de servi¸co pode dividir uma porcentagem da banda dispon´ıvel. Este esquema permite que cada classe seja isolada e a parcela de banda atribu´ıda para cada classe seja dividida igualmente entre os fluxos da mesma classe. Em uma rede DiffServ, por exemplo, uma classe de VoIP pode compartilhar 20% da banda enquanto as demais classes compartilham os 80% restantes. FQ garante que o tr´afego VoIP n˜ao interfira com as demais classes, mas n˜ao d´a garantias com rela¸c˜ao ao atraso entre os

CAP´ITULO 4. JUSTIC¸ A 75

fluxos da mesma classe de VoIP.

Para dar suporte a classes de servi¸co com requisitos de largura de banda diferentes, em 1989 foi desenvolvido em paralelo por dois grupos de pesquisadores (DEMERS;

KESHAV, 1989) o algoritmo Weighted Fair Queue (WFQ). WFQ utiliza pesos que

s˜ao atribu´ıdos a cada uma das filas e que correspondem `a propor¸c˜ao de banda alocada a cada uma delas na porta de sa´ıda.

A aloca¸c˜ao com justi¸ca para fluxos com tamanhos vari´aveis ´e uma tarefa complexa, visto que pacotes maiores tendem a segurar mais recursos do que os demais.

Mecanismos como o WFQ emulam o comportamento de um mecanismo de aloca¸c˜ao te´orico denominado GPS (Generalized Processor Sharing). O WFQ aproxima a im- plementa¸c˜ao do modelo te´orico calculando o tempo e atribuindo o tempo previsto de t´ermino da transmiss˜ao de cada pacote. O escalonador seleciona e repassa o pacote com o menor tempo de t´ermino entre todos os pacotes enfileirados. O tempo virtual calculado representa a ordem com que os pacotes devem ser transmitidos na porta de sa´ıda.

O c´alculo do tempo virtual equivalente ao GPS ´e bastante complexo. Alguns algoritmos de escalonamento como o Self-clocking Fair Queue (SFCQ) e o Virtual- Clock (VC) s˜ao variantes do WFQ que prop˜oem aproxima¸c˜oes mais simples do tempo de partida equivalente do GPS.

O WFQ e variantes pertencem a um grupo de pol´ıticas de escalonamento classifi- cados como conservadores de trabalho (work-conserving). O escalonador est´a sempre ocupado enquanto houver pacotes enfileirados, significando que quando uma fila es- tiver vazia, ent˜ao o recurso ´e dividido entre as demais filas que compartilham uma conex˜ao.

Os algoritmos conservadores de trabalho s˜ao classificados por ordem de prioridades ou por quadros (LENZINI; MINGOZZI; STEA, 2004). O WFQ e varia¸c˜oes pertencem ao grupo de ordem de prioridades porque associam uma marca de tempo a cada fila e

CAP´ITULO 4. JUSTIC¸ A 76

ordenam a transmiss˜ao dos pacotes com base nessa marca de tempo. Na categoria de algoritmos baseados em quadros, s˜ao inclu´ıdos os algoritmos que atendem as filas de maneira c´ıclica, controlando a divis˜ao de recursos justa atrav´es de um limite do tempo de atendimento denominado quantum.

O Weighted Round-Robin (WRR) ´e um exemplo de mecanismo de aloca¸c˜ao baseado em quadros. Assim como o WFQ, pesos atribu´ıdos `as filas correspondem `a propor¸c˜ao de banda que deve ser alocada para cada fila. No entanto, a ordem de atendimento ´e mais simples porque ´e round-robin.

O WRR tem como objetivo suplantar o desempenho de mecanismos como FQ e PQ. A principal vantagem em rela¸c˜ao ao mecanismo PQ ´e que filas com baixa prioridade tˆem garantia de que pelo menos um pacote seja removido de cada fila ocupada ao menos uma vez durante um ciclo. Com rela¸c˜ao ao FQ, o WRR traz como vantagem o fato de que as filas podem utilizar percentuais diferentes de largura de banda.

A principal limita¸c˜ao da fam´ılia de mecanismo do tipo WRR ´e que o c´alculo do percentual correto da banda de cada fila ´e realizado apenas se todas as filas tiverem o mesmo tamanho e o tamanho m´edio do pacote for conhecido antecipadamente. Se uma classe de servi¸co possuir um tamanho m´edio de pacote maior do que uma segunda classe de servi¸co, a classe com pacote m´edio maior obter´a acesso a uma parcela de banda maior do que a parcela justa.

O mecanismo WRR tamb´em ´e conhecido como CBQ (Class-Based Queue) porque a pol´ıtica ´e utilizada para implementar CBQ. Mas, o CBQ envolve outros mecanismos al´em da pol´ıtica de atendimento. A estrutura de filas do CBQ, por exemplo, pode ser definida como uma estrutura hier´arquica para o compartilhamento de banda. O administrador de rede utiliza essa estrutura hier´arquica para definir como a banda excedente, advinda de classes menos sobrecarregadas, pode ser distribu´ıda entre as classes de tr´afego que est˜ao com filas em atividade (backlogged ). Floyd e Jacobson

CAP´ITULO 4. JUSTIC¸ A 77

(1995) afirmam que a defini¸c˜ao do percentual de banda n˜ao pode ser realizado de maneira arbitr´aria pelo administrador da rede, mas deve seguir alguma regra de aloca¸c˜ao, considerando as restri¸c˜oes impostas pelos mecanismos de escalonamento implementados.

Paridade, proporcionalidade e prioridade s˜ao as concep¸c˜oes de equidade adotadas por pol´ıticas de FQ, WFQ e PQ, respectivamente. Os mecanismos de equidade adota- dos em gerenciamento de filas devem ser adequados `a escala de tempo da transmiss˜ao de pacotes e, como tal, decis˜oes que envolvem equidade devem ser tomadas com o m´ınimo de informa¸c˜ao dispon´ıvel, para n˜ao ocasionar atrasos circunstanciais.

Para adequar o mecanismo de equidade da escala de tempo de fluxos para a escala de pacotes, as pol´ıticas de atendimento s˜ao implementadas juntamente com mecanismos de controle de admiss˜ao e controle de fluxo. Por exemplo, a disciplina FQ adota o princ´ıpio Max-min para a aloca¸c˜ao. Em FQ, pacotes s˜ao primeiro classificados em fluxos pelo sistema e ent˜ao atribu´ıdos `a fila espec´ıfica dedicada `aquele fluxo. As filas s˜ao atendidas um pacote por vez de forma c´ıclica, desviando de filas vazias. Com FQ, todos os fluxos que tiverem pacotes em espera na fila recebem uma parcela igual de tempo de atendimento. Este atendimento favorece tr´afego com taxas menores. Le Boudec (2005) afirma que FQ implementa justi¸ca Max-Min quando atua em conjunto com mecanismos de janelas deslizantes com valores grandes para o tamanho da janela. A justi¸ca em pol´ıticas de atendimento evolui a partir da ideia de que a pol´ıtica FIFO ´e uma pol´ıtica justa quando todos os agentes que competem pelo recurso s˜ao iguais. No entanto, quando h´a diferencia¸c˜ao, os mecanismos de aloca¸c˜ao considerados justos dividem os recursos em filas separadas. As pol´ıticas de atendimento conside- radas justas para estes casos s˜ao as pol´ıticas que atendem cada fila individual com pol´ıtica FIFO, mas utilizam pol´ıticas trabalho-conservativas para o compartilhamento de recursos entre as classes de servi¸co (KLEINROCK, 1976).

CAP´ITULO 4. JUSTIC¸ A 78