NESTA PÁGINA
Entendendo as filas de saída virtual (VOQs) de CoS
O método tradicional de encaminhamento de tráfego por meio de um switch é baseado no buffer do tráfego de entrada em filas de entrada em interfaces de entrada, no encaminhamento do tráfego através da malha de switches para filas de saída em interfaces de saída e, em seguida, no buffer de tráfego novamente nas filas de saída antes de transmitir o tráfego para o próximo salto. O método tradicional de enfileiramento de pacotes em uma porta de entrada é armazenar o tráfego destinado a diferentes portas de saída na mesma fila de entrada (buffer).
Durante períodos de congestionamento, o switch pode descartar pacotes na porta de saída, de modo que o switch pode gastar recursos transportando tráfego através da malha de switches para uma porta de saída, apenas para descartar esse tráfego em vez de encaminhá-lo. E como as filas de entrada armazenam o tráfego destinado a diferentes portas de saída, o congestionamento em uma porta de saída pode afetar o tráfego em uma porta de saída diferente, uma condição chamada bloqueio de cabeçalho de linha (HOLB).
A arquitetura de fila de saída virtual (VOQ) adota uma abordagem diferente:
-
Em vez de buffers físicos separados para filas de entrada e saída, o switch usa os buffers físicos no pipeline de entrada de cada chip de Mecanismo de Encaminhamento de Pacotes (PFE) para armazenar o tráfego de cada porta de saída. Cada fila de saída em uma porta de saída tem espaço de armazenamento de buffer em cada pipeline de entrada em todos os chips PFE no switch. O mapeamento do espaço de armazenamento do pipeline de entrada para filas de saída é de 1 para 1, portanto, cada fila de saída recebe espaço de buffer em cada pipeline de entrada.
-
Em vez de uma fila de entrada contendo tráfego destinado a várias filas de saída diferentes (um mapeamento de um para muitos), cada fila de saída tem um VOQ dedicado composto pelos buffers de entrada em cada chip de encaminhamento de pacotes dedicados a essa fila de saída (um mapeamento de 1 para 1). Essa arquitetura impede que a comunicação entre duas portas afete outra porta.
-
Em vez de armazenar o tráfego em uma fila de saída física até que ele possa ser encaminhado, um VOQ não transmite o tráfego da porta de entrada pela malha para a porta de saída até que a porta de saída tenha os recursos para encaminhar o tráfego.
Um VOQ é uma coleção de filas de entrada (buffers) que recebem e armazenam o tráfego destinado a uma fila de saída em uma porta de saída. Cada fila de saída em cada porta de saída tem seu próprio VOQ dedicado, que consiste em todas as filas de entrada que estão enviando tráfego para essa fila de saída.
Arquitetura VOQ
Um VOQ representa o buffer de entrada para uma fila de saída específica. Um ID de buffer exclusivo identifica cada fila de saída em um chip PFE. Cada um dos seis chips PFE usa o mesmo ID de buffer exclusivo para uma fila de saída específica. O tráfego armazenado usando um ID de buffer específico nos seis chips PFE compreende o tráfego destinado a uma fila de saída específica em uma porta e é o VOQ para essa fila de saída.
Um switch com 72 portas de saída com 8 filas de saída em cada porta tem 576 VOQs em cada chip PFE (72 x 8 = 576). Como o switch tem seis chips PFE, ele tem um total de 3.456 VOQs (576 x 6 = 3.456).
Um VOQ é distribuído em todos os chips PFE que estão enviando tráfego ativamente para essa fila de saída. Cada fila de saída é a soma do total de buffers atribuídos a essa fila de saída (por sua ID de buffer exclusiva) em todos os chips PFE. Portanto, a fila de saída em si é virtual, não física, embora a fila de saída seja composta por filas de entrada físicas.
Buffer de tempo de ida e volta
Embora não haja buffer de fila de saída durante períodos de congestionamento (sem armazenamento de longo prazo), há um pequeno buffer de fila de saída física nas placas de linha de saída para acomodar o tempo de ida e volta do tráfego para atravessar a malha de comutação da entrada à saída. O tempo de ida e volta consiste no tempo que a porta de entrada leva para solicitar recursos da porta de saída, receber uma concessão da porta de saída para recursos e transmitir os dados pela malha de switches.
Isso significa que, se um pacote não for descartado na entrada do switch e o switch encaminhar o pacote pela malha para a porta de saída, o pacote não será descartado e será encaminhado para o próximo salto. Todas as quedas de pacotes ocorrem no pipeline de entrada.
O switch tem 4 GB de DRAM externa para usar como buffer de largura de banda de atraso (DBB). O DBB fornece armazenamento para portas de entrada até que as portas possam encaminhar o tráfego para as portas de saída.
Solicitando e concedendo largura de banda da porta de saída
Quando os pacotes chegam a uma porta de entrada, o pipeline de entrada armazena o pacote na fila de entrada com a ID de buffer exclusiva da fila de saída de destino. O switch toma a decisão de buffer depois de executar a pesquisa de pacotes. Se o pacote pertencer a uma classe para a qual o limite máximo de tráfego foi excedido, o pacote pode não ser armazenado em buffer e pode ser descartado. Para transportar pacotes pela malha de switches para as portas de saída:
-
O agendador de solicitação PFE da placa de linha de entrada envia uma solicitação ao agendador de concessão PFE da placa de linha de saída para notificar o PFE de saída de que os dados estão disponíveis para transmissão.
-
Quando há largura de banda de saída disponível, o agendador de concessão de placa de linha de saída responde enviando uma concessão de largura de banda para o PFE da placa de linha de entrada.
-
A placa de linha de entrada PFE recebe a concessão da placa de linha de saída PFE e transmite os dados para a placa de linha de saída.
Os pacotes de entrada permanecem no VOQ nas filas de entrada da porta de entrada até que a fila de saída esteja pronta para aceitar e encaminhar mais tráfego.
Na maioria das condições, a malha de switches é rápida o suficiente para ser transparente para políticas de classe de serviço (CoS) de saída, de modo que o processo de encaminhamento de tráfego do pipeline de entrada, através da malha de switches, para portas de saída, não afeta as políticas de CoS configuradas para o tráfego. A malha só afeta a política de CoS se houver uma falha de malha ou se houver um problema de justiça de porta.
Quando um pacote entra e sai do mesmo chip PFE (comutação local), o pacote não atravessa a malha de comutação. No entanto, o switch usa o mesmo mecanismo de solicitação e concessão para receber largura de banda de saída que os pacotes que cruzam a malha, de modo que os pacotes comutados localmente e os pacotes que chegam a um chip PFE após cruzar a malha de switches são tratados de forma justa quando o tráfego está competindo pela mesma fila de saída.
Vantagens da VOQ
A arquitetura VOQ oferece duas vantagens principais:
Elimine o bloqueio no início da fila
A arquitetura VOQ elimina problemas de bloqueio de cabeçalho de linha (HOLB). Em switches não-VOQ, o HOLB ocorre quando o congestionamento em uma porta de saída afeta uma porta de saída diferente que não está congestionada. O HOLB ocorre quando a porta congestionada e a porta não congestionada compartilham a mesma fila de entrada em uma interface de entrada.
Um exemplo de um cenário HOLB é um switch que tem fluxos de tráfego entrando em uma porta de entrada (IP-1) destinados a duas portas de saída diferentes (EP-2 e EP-3):
-
O congestionamento ocorre na porta de saída EP-2. Não há congestionamento na porta de saída EP-3, conforme mostrado na Figura 1.
Figura 1: Ocorre congestionamento no EP-2
-
A porta de saída EP-2 envia um sinal de contrapressão para a porta de entrada IP-1, conforme mostrado na Figura 2.
Figura 2: Contrapressões EP-2 IP-1
-
O sinal de contrapressão faz com que a porta de entrada IP-1 pare de enviar tráfego e armazene o tráfego em buffer até receber um sinal para retomar o envio, como mostrado na Figura 3. O tráfego que chega à porta de entrada IP-1 destinada à porta de saída não congestionada EP-3 é armazenado em buffer junto com o tráfego destinado à porta congestionada EP-2, em vez de ser encaminhado para a porta EP-3.
Figura 3: A contrapressão do EP-2 faz com que o IP-1 armazene o tráfego em buffer em vez de enviar tráfego, afetando o EP-3
-
A porta de entrada IP-1 transmite tráfego para a porta de saída EP-3 não congestionada somente quando a porta de saída EP-2 é limpa o suficiente para permitir que a porta de entrada IP-1 retome o envio de tráfego, conforme mostrado na Figura 4.
Figura 4: O congestionamento no EP-2 é eliminado, permitindo que o IP-1 retome o envio de tráfego para ambas as portas
de saída
Dessa forma, a porta de saída congestionada EP-2 afeta negativamente a porta de saída não congestionada EP-3, porque ambas as portas de saída compartilham a mesma fila de entrada na porta de entrada IP-1.
A arquitetura VOQ evita o HOLB criando uma fila virtual dedicada diferente para cada fila de saída em cada interface, conforme mostrado na Figura 5.
Como filas de saída diferentes não compartilham a mesma fila de entrada, uma fila de saída congestionada em uma porta não pode afetar uma fila de saída em uma porta diferente, como mostra a Figura 6. (Pelo mesmo motivo, uma fila de saída congestionada em uma porta não pode afetar outra fila de saída na mesma porta — cada fila de saída tem sua própria fila de saída virtual dedicada composta por filas de entrada da interface de entrada.)
não congestionada
A execução do buffer de fila na interface de entrada garante que o switch só envie tráfego pela malha para uma fila de saída se essa fila de saída estiver pronta para receber esse tráfego. Se a fila de saída não estiver pronta para receber tráfego, o tráfego permanecerá armazenado em buffer na interface de entrada.
Aumente a eficiência e a utilização da malha
A arquitetura de fila de saída tradicional tem algumas ineficiências inerentes que a arquitetura VOQ aborda.
-
Buffer de pacotes — a arquitetura de enfileiramento tradicional armazena cada pacote em buffer duas vezes no armazenamento DRAM de longo prazo, uma vez na interface de entrada e outra na interface de saída. A arquitetura VOQ armazena em buffer cada pacote apenas uma vez no armazenamento DRAM de longo prazo, na interface de entrada. A malha de switches é rápida o suficiente para ser transparente para políticas de CoS de saída, portanto, em vez de armazenar pacotes em buffer uma segunda vez na interface de saída, o switch pode encaminhar o tráfego a uma taxa que não requer buffers de saída profundos, sem afetar as políticas de CoS de saída configuradas (agendamento).
-
Consumo de recursos — a arquitetura de enfileiramento tradicional envia pacotes da fila de entrada da interface de entrada (buffer), através da malha de switches, para a fila de saída da interface de saída (buffer). Na interface de saída, os pacotes podem ser descartados, mesmo que o switch tenha gasto recursos transportando os pacotes pela malha e armazenando-os na fila de saída. A arquitetura VOQ não envia pacotes pela malha para a interface de saída até que a interface de saída esteja pronta para transmitir o tráfego. Isso aumenta a utilização do sistema porque nenhum recurso é desperdiçado transportando e armazenando pacotes que são descartados posteriormente.
Independentemente da arquitetura VOQ, a arquitetura de comutação da Juniper Networks também oferece melhor utilização da malha, pois o switch converte pacotes em células. As células têm um tamanho previsível, o que permite que o switch pulverize as células uniformemente pelos elos de malha e utilize mais plenamente os elos de malha. Os pacotes variam muito em tamanho, e o tamanho do pacote não é previsível. As malhas baseadas em pacotes não podem oferecer mais do que 65-70 por cento de utilização devido à variação e imprevisibilidade dos tamanhos dos pacotes. As malhas baseadas em células da Juniper Networks podem oferecer uma taxa de utilização de malha de quase 95% devido à previsibilidade e ao controle sobre o tamanho da célula.