Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Entender as filas de saída virtual cos (VOQs)

O método tradicional de encaminhamento do tráfego por um switch baseia-se no buffer de tráfego de entrada em filas de entrada em interfaces de entrada, encaminhando o tráfego pela malha do switch para as filas de saída em interfaces de saída e, em seguida, buffering 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 está armazenando tráfego destinado a diferentes portas de saída na mesma fila de entrada (buffer).

Durante períodos de congestionamento, o switch pode soltar pacotes na porta de saída, de modo que o switch possa gastar recursos transportando tráfego através da malha do switch para uma porta de saída, apenas para soltar esse tráfego em vez de encaminhá-lo. E como as filas de entrada armazenam 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 de bloqueio de cabeça de linha (HOLB).

A arquitetura da 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 PFE (Packet Forwarding Engine) para armazenar tráfego para cada porta de saída. Cada fila de saída em uma porta de saída tem espaço de armazenamento de buffer em todos os pipelines de entrada em todos os chips PFE do switch. O mapeamento do espaço de armazenamento de pipeline de entrada para filas de saída é de 1 a 1, de modo que 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 a 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 a 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 tráfego da porta de entrada pela malha até 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 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, o switch 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 seu ID de buffer exclusivo) em todos os chips PFE. Assim, 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 viagem de ida e volta

Embora não haja buffer de fila de saída durante períodos de congestionamento (sem armazenamento a longo prazo), existe um pequeno buffer de fila de saída física nas placas de linha de saída para acomodar o tempo de viagem de ida e volta para o tráfego atravessar a malha do switch da entrada à saída. O tempo de viagem de ida e volta consiste no tempo que leva a porta de entrada para solicitar recursos de porta de saída, receber uma doação da porta de saída para recursos e transmitir os dados pela malha do switch.

Isso significa que, se um pacote não for descartado na entrada do switch, e o switch encaminhar o pacote pela malha até 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 externo para usar como um buffer de largura de banda (DBB). O DBB fornece armazenamento para portas de entrada até que as portas possam encaminhar o tráfego para portas de saída.

Solicitação e concessão de 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 o ID de buffer exclusivo da fila de saída de destino. O switch toma a decisão de buffer depois de realizar a busca do pacote. 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 buffered e pode ser descartado. Para transportar pacotes pela malha do switch até portas de saída:

  1. O agendador de solicitação de PFE da placa de linha de entrada envia uma solicitação ao agendador de concessão de 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.

  2. 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 doação de largura de banda para o PFE da placa de linha de entrada.

  3. O PFE da placa de linha de entrada recebe a concessão do PFE da placa de linha de saída 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 do switch é rápida o suficiente para ser transparente para obter políticas de classe de serviço (CoS), de modo que o processo de encaminhamento do tráfego do pipeline de entrada, pela malha do switch, para portas de saída não afete as políticas de CoS configuradas para o tráfego. A malha só afeta a política de CoS se houver uma falha na malha ou se houver uma questão de equidade de portas.

Quando um pacote entra e egressa o mesmo chip PFE (comutação local), o pacote não atravessa a malha do switch. No entanto, o switch usa o mesmo mecanismo de solicitação e concessão para receber largura de banda de saída como pacotes que cruzam a malha, de modo que pacotes e pacotes comuados localmente que chegam a um chip PFE após cruzar a malha do switch são tratados de forma justa quando o tráfego está lutando pela mesma fila de saída.

Vantagens do VOQ

A arquitetura VOQ oferece duas grandes vantagens:

Elimine o bloqueio de cabeça de linha

A arquitetura VOQ elimina problemas de bloqueio de cabeça 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 incongestada compartilham a mesma fila de entrada em uma interface de entrada.

Um exemplo de cenário HOLB é um switch que tem fluxos de tráfego entrando em uma porta de entrada (IP-1) destinadas a duas portas de saída diferentes (EP-2 e EP-3):

  1. O congestionamento ocorre na porta de saída EP-2. Não há congestionamento na porta de saída EP-3, como mostrado na Figura 1.

    Figura 1: O congestionamento ocorre no EP-2 Congestion Occurs on EP-2
  2. A porta de saída EP-2 envia um sinal de backpressure para a porta de entrada IP-1, como mostrado na Figura 2.

    Figura 2: Backpressures EP-2 IP-1 EP-2 Backpressures IP-1
  3. O sinal de backpressure faz com que a porta de entrada IP-1 pare de enviar tráfego e tampone o tráfego até receber um sinal para retomar o envio, como mostrado na Figura 3. O tráfego que chega à porta de entrada IP-1 destinado à porta de saída EP-3 não protegida é buffer, juntamente com o tráfego destinado à porta congestionada EP-2, em vez de ser encaminhado para a porta EP-3.

    Figura 3: o backpressure do EP-2 faz com que o IP-1 tampone o tráfego em vez de enviar tráfego, afetando o EP-3 Backpressure from EP-2 Causes IP-1 to Buffer Traffic Instead of Sending Traffic, Affecting EP-3
  4. A porta de entrada IP-1 transmite o tráfego para a porta de saída ep-3 sem acordo somente quando a porta de saída EP-2 liberar o suficiente para permitir que a porta de entrada IP-1 retome o tráfego de envio, como mostrado na Figura 4.

    Figura 4: Congestionamento nas saídas ep-2, permitindo que o IP-1 retome o envio de tráfego para ambas as portas Congestion on EP-2 Clears, Allowing IP-1 to Resume Sending Traffic to Both Egress Ports de saída

Dessa forma, a porta de saída congestionada EP-2 afeta negativamente a porta de saída 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, como mostrado na Figura 5.

Figura 5: Cada porta de saída tem uma fila de saída virtual separada no IP-1 Each Egress Port Has a Separate Virtual Output Queue on IP-1

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 mostrado na Figura 6. (Pela mesma razão, 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 de interface de entrada.)

Figura 6: O congestionamento no EP-2 não afeta a porta EP-3 Congestion on EP-2 Does Not Affect Uncongested Port EP-3 não afetada

Realizar 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á protegido 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 fila tradicional faz buffers de cada pacote duas vezes no armazenamento DRAM de longo prazo, uma vez na interface de entrada e uma vez na interface de saída. A arquitetura VOQ buffers de cada pacote apenas uma vez no armazenamento DRAM de longo prazo, na interface de ingresso. A malha de switches é rápida o suficiente para ser transparente de saída das políticas de CoS, portanto, em vez de buffer de pacotes pela segunda vez na interface de saída, o switch pode encaminhar tráfego a uma taxa que não requer buffers de saída profundos, sem afetar as políticas de CoS de saída configurada (agendamento).

  • Consumo de recursos — a arquitetura tradicional de fila envia pacotes da fila de entrada (buffer) da interface de entrada para a fila de saída (buffer) da interface de entrada 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 mais tarde.

Independentemente da arquitetura VOQ, a arquitetura de comutação da Juniper Networks também oferece uma melhor utilização da malha porque 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 nos enlaces de malha e utilize mais completamente os enlaces de malha. Os pacotes variam muito de tamanho, e o tamanho dos pacotes não é previsível. As malhas baseadas em pacotes não podem fornecer melhor do que 65-70 por cento de utilização devido à variação e imprevisibilidade dos tamanhos de pacotes. As malhas baseadas em células da Juniper Networks podem fornecer uma taxa de utilização de malha de quase 95 por cento devido à previsibilidade e controle sobre o tamanho das células.