Aulas 17 & 18
Comutação Rápida a Pacote
Eytan Modiano
MIT
1
Comutador a Pacote
Etiqueta
•
•
Um comutador a pacote consiste de uma máquina de roteamento (table lookup), um escalonador e uma máquina de comutação.
A máquina de roteamento procura pelos endereços dos pacotes na tabela de
roteamento e determina para qual porta de saída enviar o pacote.
– O pacote é etiquetado com o número da porta.
– O comutador utiliza a etiqueta para enviar o pacote para a devida porta de
saída.
2
Comutadores de Primeira Geração
• Computador com múltiplas interfaces;
– CPU interroga a interface.
• Simples mas o desempenho é limitado pela velocidade do processador
e do barramento.
• Exemplos: Pontes Ethernet.
3
Comutadores de Segunda Geração
LC - Interfaces
•
•
•
•
A maioria do processamento é feito na interface,
– Procura nas tabelas de roteamento, etc;
– Armazenamento doa pacotes;
– A interface envia os pacotes para as saídas apropriadas.
Vantagens: CPU e Memória Principal não são mais os gargalos.
Desvantagens: Desempenho limitado pela velocidade do barramento.
– A largura de faixa do barramento precisa ser N vezes a velocidade da interface (N
portas).
Exemplo: Roteador CISCO 7500.
4
Comutadores de Terceira Geração
• Substitui o barramento compartilhado por uma máquina de comutação.
• O desempenho depende da máquina de comutação, que pode
potencialmente aliviar o gargalo do barramento.
5
Arquiteturas dos Comutadores
• Buffer distribuído
• Buffer de saída
• Buffer de entrada
6
Buffer Distribuído
• Arquitetura modular
Módulo básico é um comutador 2x2, que pode estar tanto em posição
através como cruzada.
• Buffers do comutador: nenhum, na entrada, ou na saída de cada
módulo.
A máquina de comutação consiste de vários módulos 2x2.
7
Interconexão de Redes
•
•
N entradas
Log(N) estágios com N/2 módulos por estágio;
Exemplo: Omega (rede de troca misturada).
•
Observe que a ordem das entradas em um estágio é uma mistura das saídas do
estágio prévio: (0, 4, 1, 5, 2, 6, 3, 7).
Facilmente estendido para outros estágios
Qualquer saída pode ser alcançada a partir de qualquer entrada, setando
apropriadamente a comutação:
– Nem todas as rotas podem ser feitas simultaneamente;
– Exatamente uma rota entre cada par fonte-destino;
– Rede self-routing.
•
•
8
Auto Roteamento
• Use uma etiqueta: seqüência de n bit um bit por estágio da rede:
– Por ex.: Tag = b3 b2 b1 da etiqueta (bi), e envia o pacote para cima
se bi=0 e para baixo se bi=1.
• Em uma rede Omega, para portas de destino com endereço binário abc
a etiqueta é cba,
– Exemplo: saída 100 => etiqueta = 001;
– Observe que não importando a porta de entrada, a etiqueta 001
levará para a saída 100.
9
Rede de Base
• Um outro exemplo de uma rede multi-estágio de interconexão.
• Construída usando um módulo comutado básico.
• Construção recursiva,
– Construa um comutador N por N usando comutadores N/2 por N/2
e um novo estágio do N/2 básico módulo (2x2);
– Comutador N por N tem L(N) estágios cada com N/2 módulos
(2x2) básicos.
10
Contenção
• Dois pacotes podem querer usar o mesmo enlace ao mesmo
tempo (mesma porta de saída de um módulo).
• Efeito Hot Spot
• Solução: Armazenamento.
11
Análise da Vazão da Interconexão de Redes
• Suponha que não haja armazenamento nos comutadores.
• Se dois pacotes querem usar a mesma porta um deles é descartado.
• Suponha que o comutador tenha m estágios.
• Tempo de transmissão de um pacote = 1 slot (entre estágios).
• Chegada de um novo pacote na entrada, em todos os intervalos de
tempo,
– Análise da saturação (para máxima vazão);
– Distribuição uniforme dos destinos independente de um pacote para
outro pacote.
12
Vazão da Interconexão, continuação
• Seja P(m) a probabilidade de um pacote ser transmitido no enlace do
estágio m P(m)
• P(0) = 1
• P(m+1) = 1 – P (nenhum pacote no enlace do estágio m+1 (enlace c))
= 1 – P (nenhuma entrada para o estágio m+1 escolhe esta saída)
• Cada entrada tem um pacote com uma probabilidade P(m) e o pacote
irá escolher o enlace com probabilidade 1/2. Portanto,
 1

P (m + 1) = 1 − 1 − P ( m) 
 2

2
• Agora podemos determinar P(m) recursivamente.
• Para uma rede de m estágios, a vazão (por enlace de saída) é P(m), que
é a probabilidade que existe um pacote na saída.
13
Vazão
Vazão da Interconexão, continuação
• A vazão pode ser significantemente aumentada adicionando buffers
nos estágios.
– Buffers aumentam o atraso;
– Há um compromisso entre atraso e vazão.
14
Vantagens / Desvantagens da Arquitetura Multi-Estágio
• Vantagens
– Modular
– Escalável
– Barramento (enlaces) somente precisam ser tão rápidos quanto as
interfaces.
• Desvantagens
– Atraso devido à passagem por vários estágios.
• Cut-through possível quando os buffers estão vazios.
– Decréscimo da vazão devido ao bloqueio interno.
• Alternativas: Buffers externos a máquina de comutação.
– Buffers de saída
– Buffers de entrada
15
Arquitetura do Buffer de Saída
• Tão logo o pacote chega, é transferido para um buffer de saída
apropriado.
• Suponha um sistema que aloca fatias de tempo para o processamento.
• Durante cada fatia de tempo à máquina de comutação transfere um
pacote de cada entrada (se disponível) para a saída apropriada.
– Deve ser hábil em transferir N pacotes em cada fatia de tempo;
– A velocidade do barramento deve ser N vezes a taxa da linha;
– Não há filas nos buffers de entrada no máximo um pacote na
entrada para uma fatia de tempo.
16
Análise das Filas
• Se as chegadas em cada entrada são Poisson (taxa média A ), cada fila
de saída comporta-se como uma fila M/D/1.
– a duração de um pacote é igual a uma fatia do tempo X = X 2 = 1 .
• O número médio de pacotes em cada saída é dado por (M/G/1
fórmula):
2 A − ( A)2
NQ =
2(1 − A )
• Observe que o único atraso é devido à fila nas saídas e não a máquina
de comutação.
17
Vantagens /Desvantagens da Arquitetura
com Buffer de Saída
• Vantagem
– Não há atraso ou bloqueio dentro do comutador.
• Desvantagens
– A velocidade do barramento deve ser N vezes a velocidade da
linha.
– Impõe limites práticos no tamanho e capacidade do comutador.
• Buffers de saída compartilhados:
Buffers de saída são implementados em memória compartilhada
usando listas concatenadas.
– Requer menos memória (devido a multiplexação estatística).
– a memória deve ser rápida.
18
Arquitetura com Buffer de Entrada I
•
Pacotes armazenados na entrada em vez da saída.
– A máquina de comutação não deve ser tão rápida.
•
Durante cada intervalo de tempo, o escalonador estabelece as conexões crossbar para
transferir os pacotes da entrada para a saída.
– Máximo de um pacote a partir de cada entrada.
– Máximo de um pacote para cada saída.
Bloqueio do pacote na cabeça da fila (HOL - Head Of Line blocking) quando o pacote
na cabeça de duas ou mais filas é destinado para a mesma saída, somente um pode ser
transferido e os outros são bloqueados.
•
19
Análise da Vazão dos Comutadores Com Filas na Entrada
• Bloqueio HOL limita a vazão pois algumas entradas
(conseqüentemente saídas) são mantidas não ativas durante um
intervalo de tempo mesmo quando existam pacotes em suas filas para
serem enviados.
• Considere um comutador NxN e suponha que as entradas são saturadas
(sempre tem um pacote para enviar).
• Tráfego uniforme ⇒ cada pacote é destinado para cada saída com igual
probabilidade (1/N).
• Agora, considere somente aqueles pacotes na cabeça de suas filas
(existem N deles!).
20
Análise da Vazão, continuação
i
• Seja Qm o número de pacotes HOL destinados ao nó I no fim do mth
intervalo de tempo.
Qmi = max(0, Qmi −1 + Ami − 1)
• Onde
Ami = número de novas mensagens HOL endereçadas ao nó I que chegam
HOL durante o intervalo m. Agora,
l
C
−l


P ( Ami = l ) =  C m −1 (1 N ) (1 − 1 N ) M −1
 l 
• Onde
Cm −1 = número de mensagens HOL que saem durante o intervalo m-1 =
número de novas chegadas HOL.
• Quando N se aproxima de infinito, Ami torna-se Poisson com taxa C/N
onde C é o número médio de saídas por intervalo de tempo.
21
Análise da Vazão, continuação
• No estado estável Qi comporta-se como uma M/D/1 e portanto.
2
2
A
−
(
A
)
Qi =
2(1 − A )
• Observe contudo que o número total de pacotes endereçados para as
saídas é N (numero de pacotes HOL) e portanto,
N
i
Q
∑ =N
i =1
⇒
2
2
A
−
(
A
)
Qi =
2(1 − A )
Utilizando a forma quadrática:
A = utilização 2 − 2 ≈ 0,58
22
Resumo dos Comutadores Com Fila na Entrada
• A vazão máxima de um comutador com fila na entrada, é limitada pelo
bloqueio HOL a 58% (para N grande).
• Vantagens da fila na entrada:
– Simples
– Taxa no barramento = Taxa na linha
• Desvantagem
– Limitação na vazão
23
Evitando o Bloqueio HOL
• Se as entradas tiverem a permissão de transferir os pacotes que não
estão na cabeça de suas filas, a vazão pode ser bastante melhorada (não
FCFS).
• Exemplo:
• Como, o escalonador faz sua decisão de que entrada transferir para
qual saída?
24
Matriz de Backlog
•
•
Cada entrada na matriz de backlog representa o número de pacotes na fila de
entrada i que estão destinados à saída j.
Durante cda intervalo o escalonador pode transferir no máximo um pacote de
cada entrada para cada saída.
– O escalonador escolhe o pacote a partir de cada linha, e coluna da matriz
de backlog.
– Isto pode ser feito a partir de um algoritmo gráfico de casamento bipartite.
– O gráfico bi-partite consiste de N nós representando as entradas e N nós
representando as saídas.
25
Representação do Gráfico Bi-Partite
•
Existe um limite no gráfico de uma entrada para uma saída se existe um
pacote na matriz de backlog que deve ser transferido a partir daquela entrada
para a aquela saída.
– Para a matriz de backlog anterior o gráfico bi-partite é:
•
Definição: Um casamento é um conjunto de limites, tal que nenhum par de
limites compartilhe um nó.
– Achar um casamento no gráfico bi-partite é equivalente a encontrar um
conjunto de pacotes tal que nenhum par de pacotes compartilha uma linha
ou coluna na matriz de backlog.
Definição: Um casamento máximo é um casamento com o máximo possível
de limites.
– Achar um casamento máximo é equivalente a achar o maior conjunto de
pacotes que podem ser transferidos simultaneamente.
•
26
Casamentos Máximos
• Algoritmos para achar casamentos máximos existem.
• O algoritmo mais conhecido faz O(N2.5) operações.
– Muito longo para N grande.
• Alternativas
– Soluções sub-ótimas
– Casamento máximo: Um casamento que não pode ser feito maior
ainda para uma dada matriz de backlog.
– Para o exemplo anterior:
(1-1, 3-3) é máximo.
Fato: O número de limites num casamento máx ≥ 1/2 o número de
limites num casamento máximo.
27
Obtendo 100% de Vazão Em Um Comutador
Com Fila na Entrada
• Achando um casamento máximo durante cada intervalo de tempo não
elimina o efeito do bloqueio HOL.
– Deve olhar além dos intervalos no momento a tomar uma decisão
de escalonamento.
• Definição: Um gráfico bi-partite com pesos é um gráfico bi-partite com
custos associados a cada limiar.
• Definição: U casamento máximo com pesos é um casamento com os
limiares de maior peso.
• Teorema: Um escalonador que escolhe durante cada intervalo o
máximo casamento com pesos onde o peso do enlace (i, j) é igual ao
comprimento da fila (i,j) obtém uma utilização plena (100% da vazão).
– Prova: veja “Achieving 100% throughput in an input queued
switch” by N. McKeown, et. al., IEEE Transactions on
Communications, Aug. 1999.
28
Download

N - MIT