ATM Asynchronous Transfer Mode FEUP/DEEC/RBL – 2005/06 José Ruela ATM – Princípio de funcionamento • O Modo de Transferência Assíncrono (Asynchronous Transfer Mode - ATM) é uma tecnologia rápida de comutação de pacotes, orientada à conexão – a unidade de transmissão e comutação designa-se por Célula (pacote de comprimento fixo e pequeno) – as Células são transportadas em Circuitos Virtuais (Comutados ou Permanentes) – o processo de comutação é simplificado, uma vez que não são suportados nos nós da rede mecanismos complexos de controlo de erros e de fluxo • Os fluxos de células de vários Circuitos Virtuais são multiplexados e competem pelos recursos da rede – são necessárias filas de espera para arbitrar o acesso aos recursos partilhados (resolução de conflitos de curto prazo) – visto que uma rede ATM suporta serviços com diferentes características e diferentes requisitos de Qualidade de Serviço (QoS), são necessários mecanismos de controlo de tráfego que permitam diferentes tipos de reserva e atribuição de recursos aos fluxos em competição, com exploração de multiplexagem estatística quando tal for possível ATM – multiplexagem e comutação fila de espera fonte fonte aa fluxo multiplexado de células fonte fonte bb fonte fonte cc b y c c a z c 1 comutação 1 espacial 2 comutação N M de etiqueta y t cabeçalho dados a, b, c, ... indicador de canal virtual k n n k Entrada m g h Saída Porta CV Porta CV g 1 a b c 2 1 N n n g M y z c 1 N 2 k h m t controlo controlo de de comutação comutação Tabela de translação de portas / canais virtuais ATM – Multiplexagem Estatística • É inerente ao modo de operação do ATM que a ocupação de células de um CV seja irregular (assíncrona), não obedecendo a um padrão pré-definido • A multiplexagem e comutação de células ATM origina variações de débito e atraso, pelo que a ocupação de células num CV depende do próprio padrão de tráfego (débito constante ou variável) submetido ao CV, mas também da disponibilidade e modo de atribuição dos recursos objecto de competição • A importância das variações instantâneas do débito e do atraso depende dos requisitos de Qualidade de Serviço; a existência de tráfego com débito variável possibilita a exploração de Multiplexagem Estatística – a multiplexagem estatística permite aumentar a eficiência na utilização de recursos – a multiplexagem estatística aumenta a probabilidade de conflitos no acesso a recursos, originando situações de sobrecarga que agravam os atrasos e podem mesmo originar perdas (overflow de buffers) • O grau de multiplexagem estatística (ganho estatístico) resulta assim de um compromisso entre eficiência e QoS – o que exige negociação de contratos por CV e uma caracterização rigorosa do tráfego e dos objectivos de QoS ATM – Reserva e Atribuição de Recursos • A necessidade de satisfazer diferentes requisitos de QoS exige que numa rede ATM se considerem classes de tráfego que serão objecto de tratamento diferenciado no que se refere à reserva e atribuição de recursos – a reserva de recursos está associada ao processo de aceitação de uma chamada – a atribuição de recursos é um processo dinâmico face ao tráfego em competição • Podemos considerar genericamente três tipos de requisitos de QoS a que correspondem três possíveis estratégias diferentes de reserva de recursos – Reserva Determinística, que permite oferecer garantias estritas (e.g., atraso máximo não excedido) a serviços com requisitos de tempo real – Reserva Estatística, que permite oferecer garantias expressas em termos probabilísticos a serviços com débito variável sem requisitos de tempo real (e.g., garantia de débitos e atrasos médios, mas atraso máximo não controlado) – Ausência de Reserva, para serviços best-effort aos quais não são oferecidas quaisquer garantias • As estratégias de atribuição de recursos procuram satisfazer os requisitos de QoS de cada classe de tráfego face ao tráfego instantâneo, à atribuição corrente de recursos às várias classes e à disponibilidade de recursos Transparência Temporal • Idealmente caracteriza a possibilidade de a rede transportar informação num tempo mínimo (atraso mínimo e variação do atraso nula) – Esta propriedade é importante em serviços com requisitos de tempo real, caracterizados pelo envio de fluxos contínuos de informação (com débito constante ou variável), de modo a preservar as caracteríticas temporais da informação trocada entre emissor e receptor • Na prática traduz a possibilidade de a rede transportar informação com atrasos controlados (isto é, com controlo quer do atraso máximo quer da variação do atraso) – O receptor pode assim compensar a variação do atraso (delay jitter), reconstituindo um fluxo contínuo com propriedades temporais idênticas às do fluxo gerado pelo emissor Componentes do Atraso • Numa rede ATM existem vários factores que contribuem para o atraso, sendo alguns específicos da tecnologia ATM – Atraso de propagação – depende da distância – Atraso de transmissão – corresponde ao tempo de transmissão das células – Atraso de comutação – corresponde ao atraso nos comutadores • Atraso fixo de comutação – é inerente à arquitectura de comutação, mas em geral é pequeno (representa o atraso mínimo de comutação, que ocorre quando a fila de espera se encontra vazia) • Atraso de fila de espera – resulta da necessidade de usar filas de espera para arbitrar o acesso a recursos partilhados e reduzir a probabilidade de perda de pacotes; esta componente do atraso é variável e depende da carga na rede – Atraso de empacotamento – esta componente do atraso está presente em serviços de tempo real e representa o tempo necessário para acumular os bits a transmitir numa célula; depende do débito do serviço e do tamanho do campo de informação (payload) da célula – Atraso de desempacotamento – esta componente do atraso existe nos serviços de tempo real e resulta da necessidade de compensar a variação do atraso (delay jitter); a soma dos atrasos de desempacotamento e de fila de espera deve ser constante (coincidindo com o atraso máximo de fila de espera) Atraso em serviços de tempo real Probability Density 1-α α Cell Transfer Delay Fixed Delay Peak-peak CDV maxCTD Cells Delivered Late or lost Controlo do atraso • Os serviços de tempo real requerem controlo estrito do atraso por parte da rede – A reserva de recursos e a atribuição de prioridade mais elevada no escalonamento permite usar filas de espera pequenas e garantir uma pequena probabilidade de perdas – O atraso em fila de espera é tanto menor quanto menor for o tamanho da célula • O atraso de empacotamento é tanto menor quanto menor for o tamanho da célula e maior o débito do serviço – O serviço de voz constitui um caso crítico (por exemplo, a norma G.164 especifica a utilização de canceladores de eco quando o atraso excede 25 ms, numa direcção) – Considerando o caso de um serviço de voz com um débito igual a 64 kbit/s e um payload da célula ATM de 48 octetos, o atraso de empacotamento é igual a 6 ms (este valor do atraso deve ser contabilizado na rede de acesso) Transparência Semântica • Idealmente caracteriza a possibilidade de a rede transportar informação sem erros, garantindo a sua integridade • Na prática traduz a possibilidade de a rede transportar informação com um número de erros limitado, cujo valor aceitável depende do serviço – Os serviços de dados requerem integridade total da informação (transparência semântica) • a estratégia de não recuperação de erros em redes ATM remete o controlo para os sistemas terminais, que efectuam retransmissão extremo-a-extremo • embora os atrasos não sejam críticos, é vantajoso reduzir a taxa de perdas na rede e evitar avalanches de retransmissões, pois a perda de uma única célula determina a perda do respectivo pacote (e a inutilidade das outras células do mesmo pacote) e a necessidade da sua completa retransmissão – Os serviços de tempo real não toleram os atrasos inerentes a mecanismos de retransmissão extremo-a-extremo • a taxa de perdas na rede deve ser controlada de acordo com os requisitos do serviço; do ponto de vista do serviço, pacotes entregues com atrasos que excedam um valor pré-definido são descartados pelo receptor, pelo que têm o mesmo efeito que pacotes perdidos na rede Perda de células em redes ATM • Possíveis causas de perda de células em redes ATM – Erros de transmissão • Torna-se necessário definir uma estratégia de protecção do cabeçalho e/ou do payload da célula e possíveis acções • A estratégia de protecção deve ter em conta os tipos de erros • As consequências dos erros de transmissão dependem da estratégia de detecção e/ou correcção adoptada – uma consequência possível é naturalmente o descarte de células – erros de interpretação do cabeçalho podem causar perda e inserção errada de células (entrega num destino diferente do pretendido) – Congestionamento nos nós da rede • O overflow de buffers tem como consequência o descarte de células • O descarte de células pode ser feito de forma selectiva e inteligente – Atrasos na rede • Para serviços de tempo real, células recebidas com atraso superior a um valor crítico são consideradas perdidas pelo serviço Erros de transmissão em redes ATM • A estratégia de protecção de células adoptada em redes ATM foi definida tendo em conta o impacto dos erros de transmissão no cabeçalho e no payload das células – Erros simples – são erros não correlacionados, com frequência de ocorrência muito baixa (o que não impede que possam ocorrer múltiplos erros simples e independentes numa célula) • Não se justifica o overhead de detectar erros simples no payload, dada a sua muito baixa frequência de ocorrência • A importância do cabeçalho da célula no seu encaminhamento justifica a detecção (e eventual correcção) de erros simples no cabeçalho, com o objectivo de evitar a entrega de células no destino errado (misrouting) – Erros em burst – ocorrem normalmente durante operações de manutenção; podem afectar o cabeçalho e o payload de uma célula e eventualmente de múltiplas células • Não se justifica a detecção deste tipo de erros no payload, já que a célula será provavelmente descartada devido a erros no cabeçalho • Não se justifica a complexidade da correcção do cabeçalho, pois para além do risco de correcção errada, o payload estará provavelmente afectado; é preferível detectar este tipo de erros e descartar a célula Estratégia de protecção do cabeçalho • O cabeçalho das células deve ser protegido para evitar encaminhamento errado (misrouting) • Justifica-se um mecanismo de correcção de erros simples, pela simplicidade e vantagens que oferece • Erros em burst devem ser detectados mas não corrigidos – Uma tentativa de correcção pode agravar o problema, pois existe o risco de misrouting devido a uma correcção errada – A correcção, mesmo se bem sucedida, seria possivelmente inútil, dada a elevada probabilidade de erro no payload • Torna-se assim necessário um mecanismo que – detecte erros simples e os corrija (excepto em casos excepcionais) – detecte erros em burst e os distinga de erros simples, permitindo o descarte das células em vez duma tentativa de correcção – se adapte ao tipo de erro Detecção/correcção de erros no cabeçalho • O cabeçalho das células é protegido por um código cíclico • A ocorrência de erros no cabeçalho de células consecutivas, ainda que sejam erros simples, é tratada como no caso de um burst de erros – os erros simples apenas são corrigidos se ocorrerem em células não consecutivas ou na primeira célula de uma sequência (burst) de células com erro(s) no cabeçalho • O sistema alterna entre dois estados (modos) – Modo de correcção • Na ausência de erros, o sistema encontra-se no modo de correcção • Se for detectado um erro simples, o erro é corrigido, a célula é aceite e o sistema passa para o modo de detecção • Se for detectado um erro múltiplo, o erro não é corrigido, a célula é descartada e o sistema passa para o modo de detecção – Modo de detecção • Enquanto forem detectados erros (simples ou múltiplos), as células são descartadas e o sistema mantém-se no modo de detecção • Quando for detectada uma célula sem erro, esta é aceite e o sistema passa para o modo de correcção Detecção/correcção de erros no cabeçalho célula sem erros • célula válida modo de correcção (normal) célula sem erros • célula válida célula com 1 erro • correcção cabeçalho • célula válida célula com erro(s) • célula rejeitada modo de detecção célula com múltiplos erros • célula rejeitada Consequências da estratégia de protecção • Erros no payload – Eventuais erros no payload não são detectados – Uma célula que apenas tenha erro(s) no payload não será descartada e será entregue no destino correcto; a detecção e recuperação compete a protocolos de mais alto nível • Erros no cabeçalho – No caso de se tratar de erro simples, o erro é detectado e pode ser correctamente corrigido (se no modo de correcção), pelo que a célula será entregue no destino correcto – No caso de se tratar de erro múltiplo • Se o erro for detectado como erro múltiplo, não há qualquer tentativa de correcção e a célula é descartada • O erro pode não ser detectado ou pode ser detectado como erro simples e corrigido erradamente – se o cabeçalho resultante for “válido”, a célula é mal encaminhada (misrouting) – se o cabeçalho resultante não for “válido”, a célula é descartada Células erradas, perdidas e mal inseridas • Célula errada – Entregue no destino correcto, mas apenas com erro no payload • Célula perdida – Descartada pela rede • Overflow • Erro no cabeçalho detectado e decisão de não corrigir • Erro no cabeçalho não detectado ou detectado e mal corrigido, mas cabeçalho “inválido” – Descartada pelo destinatário • Célula inútil para o serviço por ter excedido o atraso máximo • Célula perdida / mal inserida – Célula mal encaminhada (misrouting) • Erro no cabeçalho não detectado ou detectado e mal corrigido, mas cabeçalho “válido” Campo de Informação das células ATM • Na definição do campo de Informação (payload) das células ATM consideraram-se vários aspectos e diversos critérios na avaliação das possíveis alternativas – Opção entre comprimento fixo ou variável – Especificação da dimensão do payload (definição do valor máximo, no caso de se optar por comprimento ser variável) Payload fixo ou variável – critérios – Eficiência • Pacotes de comprimento variável requerem um cabeçalho maior (suporte à função de delineação), mas a eficiência aumenta com o tamanho do pacote • Ao fragmentar pacotes de dados para transporte em células ATM de comprimento fixo, a última célula ficará em geral parcialmente cheia • As vantagens de pacotes de comprimento variável são marginais, se se considerar a necessidade de limitar o seu tamanho (em particular com o objectivo de reduzir os atrasos) • A utilização de pacotes de muito pequena dimensão compromete a eficiência (visto o overhead do cabeçalho ser fixo) • Considerando valores mínimos e máximos relativamente próximos acaba por não se tirar partido de usar comprimentos variáveis Fragmentação de pacotes em células • A figura representa a eficiência associada ao processo de fragmentação de pacotes, em função do seu comprimento • Considera-se uma célula ATM com 5 octetos de cabeçalho e 48 de payload • Consideram-se tramas AAL5 que acrescentam 8 octetos ao pacote a fragmentar 160 Physical (155,520) SONET/SDH (149,760) Throughput (Mbit/s) 140 ATM (135,632) 120 AAL5 100 80 60 40 0 400 800 User data (bytes) 1200 1600 Payload fixo ou variável – critérios – Velocidade de operação • Processamento do cabeçalho – Se o comprimento da célula for fixo, o tempo disponível para processar o cabeçalho é constante e conhecido (por exemplo, 2.7 μs com células ATM com 53 octetos e transmissão a 155 Mbit/s) – Se o comprimento for variável, o tempo crítico de processamento é definido pela dimensão do pacote mais pequeno • Gestão de memória – A gestão de memória é simples se as células tiverem comprimento fixo (a memória é atribuída em unidades do mesmo tamanho) – A atribuição e gestão de blocos de memória é mais complexa com pacotes de comprimento variável Payload fixo ou variável – critérios – Tamanho de memória (filas de espera) • O dimensionamento do espaço em memória requerido pelas filas de espera depende da carga na rede e da probabilidade de perda de pacotes aceitável; no caso de pacotes de comprimento fixo o dimensionamento da memória é simples (número de pacotes multiplicado pelo respectivo tamanho) • No caso de pacotes de comprimento variável seria necessário conhecer a distribuição dos tamanhos dos pacotes e a combinação de serviços para um dimensionamento eficiente do espaço em memória; a alternativa simples e conservadora consiste em fazer o dimensionamento tendo em conta o comprimento máximo dos pacotes (o que provoca desperdício) – Atraso • A redução dos atrasos em fila de espera requer a redução do tamanho dos pacotes • A necessidade de reduzir o tamanho dos pacotes reduz a sua possível gama de variação, pelo que se perdem os efeitos associados ao tamanho variável Opção por payload fixo • Pesando o compromisso entre os critérios de eficiência e de atraso, concluiu-se pela vantagem de reduzir os atrasos, sacrificando um aumento marginal da eficiência – A consequente redução do tamanho dos pacotes implicaria uma gama de tamanhos relativamente pequena, caso se optasse por pacotes de comprimento variável • Neste contexto, o ITU-T optou por uma dimensão fixa do payload das células ATM (e portanto das próprias células), dadas as vantagens adicionais – Menor complexidade da gestão de memória e de buffers das filas de espera – Requisitos de processamento conhecidos, pois o intervalo de tempo entre células é constante • Uma vez tomada esta decisão, tornava-se necessário definir um valor para a dimensão do payload das células ATM Dimensão do payload – critérios – Eficiência • Tamanhos elevados têm teoricamente a vantagem duma maior eficiência – Como contrapartida, o processo de fragmentação de pacotes de dados causa um maior desperdício na ocupação da última célula – Igualmente poderia obrigar ao envio de células parcialmente cheias, no caso de serviços de voz, para reduzir o tempo de empacotamento – Complexidade de implementação • Com o aumento do tamanho das células diminui a velocidade de processamento requerida, enquanto que com a redução do tamanho diminui a quantidade de memória necessária – Atraso • A diminuição do tamanho das células tem como consequência a diminuição do tempo de empacotamento, do tempo de comutação (forwarding) e do tempo de transmissão • A fragmentação de pacotes longos permite reduzir os tempos de espera de pacotes curtos, permitindo maior flexibilidade na multiplexagem de vários tipos de tráfego Dimensão do payload • A eficiência e o tempo de processamento do cabeçalho são favorecidos com células de maior dimensão • A necessidade de controlar os atrasos, especialmente os de empacotamento, requer células pequenas – O serviço de voz (64 kbit/s) assumiu um papel importante na escolha da dimensão do payload • Um tamanho de 32 octetos dispensaria o recurso a canceladores de eco • Um tamanho de 64 octetos exigiria canceladores de eco ou o envio de células parcialmente cheias • O ITU-T acabou por optar, como compromisso, por um tamanho do payload das células ATM de 48 octetos Funcionalidade do cabeçalho • O cabeçalho das células ATM tem uma funcionalidade reduzida, com o objectivo de simplificar o processamento e assim aumentar a velocidade de comutação • Principais funções associadas ao cabeçalho – Identificação de conexões (circuitos) virtuais – Protecção do cabeçalho (detecção e correcção de erros) • Outras funções possíveis – – – – Delineação de células Indicação do tipo de célula Indicação de prioridades Controlo de acesso múltiplo Identificação de circuitos virtuais • Um circuito virtual tem associado um caminho fixo na rede – um circuito virtual forma-se pela concatenação de canais virtuais entre nós da rede – os identificadores de circuitos virtuais têm significado local, isto é, identificam os canais virtuais que formam o circuito virtual – numa rede ATM, circuitos virtuais diferentes podem partilhar o mesmo caminho (se estabelecidos entre os mesmos pontos de acesso) ou podem ter partes dos seus caminhos comuns • Pode ser vantajoso tratar em conjunto grupos de canais virtuais que pertençam a circuitos virtuais com caminho ou parte do caminho comum; uma forma de conseguir este objectivo consiste em estruturar os identificadores de circuito virtual em duas partes – VPI – Virtual Path Identifier (Identificador de Caminho Virtual) – VCI – Virtual Channel Identifier (Identificador de Canal Virtual) Canais e Caminhos Virtuais • Um Caminho Virtual (VP – Virtual Path) constitui uma forma de agrupar (encapsular) Canais Virtuais (VC – Virtual Channel), permitindo que sejam tratados em conjunto • Esta estruturação e a exploração do conceito de VP requer dois tipos de equipamento de comutação – Comutadores de VP (VP Switches) • comutam grupos de canais virtuais (não alteram o valor de VCI) • estes comutadores são tipicamente cross-connects – Comutadores de VC (VC Switches) • comutam individualmente canais virtuais • a comutação de VC implica que estes comutadores realizem igualmente comutação de VP – os canais virtuais são desencapsulados, comutados e novamente encapsulados noutro VP Comutador de VP Comutador de VP e VC Ligações / conexões de Canal Virtual • Canal Virtual (Virtual Channel) – termo que designa uma capacidade de transporte unidireccional de células ATM relacionadas por um identificador comum (VCI / VPI) • Ligação de Canal Virtual (Virtual Channel Link – VCL) – meio de transporte unidireccional de células ATM de um canal virtual, entre um ponto em que um VCI é atribuído e outro em que esse valor é traduzido ou removido – um VCL termina em end-systems ATM ou em comutadores de VC – um VC Link é identificado num VPC por um VCI próprio • Conexão Virtual (Virtual Channel Connection – VCC) – concatenação de VC Links – definida entre VCC endpoints, isto é, pontos em que a camada ATM é acedida (a partir de AAL) Ligações / conexões de Caminho Virtual • Caminho Virtual (Virtual Path) – termo que designa uma capacidade de transporte unidireccional de células ATM pertencentes a canais virtuais relacionados por um identificador comum (VPI) • Ligação de Caminho Virtual (Virtual Path Link – VPL) – meio de transporte unidireccional de células ATM de vários canais virtuais agrupados num VPC, entre um ponto em que um VPI é atribuído e outro em que esse valor é traduzido ou removido – um VPL termina em end-systems ATM ou em comutadores de VP – um VP Link é identificado por um VPI próprio • Conexão de Caminho Virtual (Virtual Path Connection – VPC) – concatenação de VP Links – definida entre VPC endpoints em end-systems ou comutadores de VC (pontos em que um VCI é atribuído, traduzido ou removido) Exemplo • A figura representa três conexões virtuais (VCC) entre dois end-systems ATM • • • • as três conexões virtuais partilham o mesmo caminho cada um dos VCC forma-se pela concatenação de VCL (realizada pelos comutadores VC) cada grupo de VCL é encapsulado num VPC um VPC pode encapsular VCLs de outras conexões virtuais (não representadas) AAL AAL VCI = 1, 3, 4 VCI = 5, 1, 2 VC VCI = 3, 6, 1 VC VP VP VP VP VPI = 2 VPI = 5 VPI = 3 VPI = 4 VPL VPL VPL VPL VPC VCL VC VC VP VP VPI = 6 VPL VPC VCL VPC VCL VCC Comutação de Caminhos Virtuais VPI=8 VCI=1, 2, 3 VPI=7 VCI=1, 2, 3 VPI=5 VCI=1, 2, 3 comutador VP VPI=9 VCI=3, 4 comutador VP VPin VPout 7 5 9 6 VPin VPout 5 8 VPI=6 VCI=3, 4 VPin VPout 6 3 comutador VP VPI=3 VCI=3, 4 Gestão de Caminhos Virtuais • O controlo de VPs envolve o cálculo de rotas, a atribuição de capacidade e a manutenção de informação de estado das conexões • O estabelecimento de uma conexão / circuito virtual (VCC) pressupõe a existência de VPCs com capacidade disponível – é necessário guardar a informação de estado do circuito virtual e o mapeamento dos valores VPI/VCI • A comutação de VPs oferece diversas vantagens – encaminhamento mais eficiente – novos VCs podem usar VPs existentes, sendo apenas necessário atribuir valores de VCI livres; pode ser necessário escolher entre VPs alternativos – comutação mais simples – é necessário comutar apenas o valor VPI em todos os canais virtuais que partilham o mesmo VP – comutação conjunta de grupos de VCs, o que permite • reencaminhamento mais fácil em caso de falhas • agrupamento de circuitos virtuais por Qualidade de Serviço • constituição de redes privadas virtuais • VPs constituem um instrumento de gestão dos operadores, permitindo reduzir os custos com o controlo da rede – as acções de gestão são aplicadas a grupos de conexões agregadas numa entidade única e não a um número elevado de conexões individuais Hierarquia de transmissão camada ATM nível canal virtual nível caminho virtual camada física nível caminho transmissão nível secção digital nível secção regenerador ponto terminal do nível respectivo ponto intermédio do nível respectivo conexão de canal virtual (VCC) ligação VC (VCL) conexão de caminho virtual (VPC) ligação VP (VPL) caminho de transmissão secção digital secção regenerador Protecção do cabeçalho • O cabeçalho das células ATM inclui um campo HEC (Header Error Control) de oito bits, com capacidade de correcção de erros simples e detecção de erros múltiplos • O polinómio gerado pelos bits do cabeçalho é multiplicado por x8 e dividido por x8 + x2 + x + 1 (polinómio gerador) • Ao padrão resultante do resto da divisão é adicionado pelo emissor o padrão fixo 01010101 Delineação de células • Foram consideradas (e rejeitadas) várias alternativas para delineação de células ATM – inserção de flags e bit stuffing – uso de células vazias (idle) – uso de células regulares de sincronização • Sem prejuízo de mecanismos específicos de algumas interfaces físicas, o método geral de delineação de células baseia-se na correlação entre os bits do cabeçalho a proteger e os bits do HEC; para aumentar a robustez do método, o payload da célula é sujeito a scrambling bit a bit HEC correcto célula a précélula sincron. procura α HECs incorrectos consecutivos HEC incorrecto δ HECs correctos consecutivos sincron. célula a célula α= 7 δ = 6 (SDH) 8 (células) ATM – Modelo Protocolar de Referência Planos Plano C Plano U Protocolos de camadas superiores Camada de Adaptação ATM Gestão de camadas Plano G Camada ATM Camada física • U Utilizador • Transferência de dados das aplicações • C Controlo • Sinalização • Controlo de chamadas e conexões • G Gestão • Gestão do sistema • Gestão de camadas • Operação e Manutenção (OAM) Funções das camadas Camadas AAL ATM Adaptation Layer ATM CS Convergence Sublayer SAR Segmentation and Reassembly Sublayer Funções • dependente do serviço • segmentação das unidades de dados de serviço em células e vice-versa • controlo de fluxo genérico • extracção / geração dos cabeçalhos das células • tradução de indicadores de canal virtual (VPI/VCI) • multiplexagem / desmultiplexagem de células ATM Layer TC Transmission Convergence Sublayer • adaptação do débito do fluxo de células à capacidade do sistema de transmissão (cell rate decoupling) • geração / verificação do HEC (Header Error Control) • delineação de células • mapeamento de células na trama de transmissão • geração / recuperação da trama de transmissão PM Physical Medium Sublayer • sincronização de bit e codificação • interface eléctrica / óptica dependente do meio físico PHY Physical Layer Interfaces de rede UNI pública B-ICI NNI pública redes públicas MAN / WAN rede privada UNI pública NNI privada (P-NNI) UNI privada rede privada INI UNI NNI B-ICI INI User Network Interface Network Node Interface Broadband Inter Carrier Interface Internetwork Interface Tipos de células • Do ponto de vista da camada física as células designam-se por – Células vazias (idle) – células inseridas / extraídas pela camada física para adaptar o débito do fluxo de células à capacidade do sistema de transmissão (cell rate decoupling) – Células inválidas – células com erro(s) no cabeçalho, que não foi modificado pelo processo de controlo de erros (HEC), sendo descartadas – Células válidas – células cujo cabeçalho não tem erro ou foi modificado pelo processo de controlo de erros (HEC) • As células válidas podem pertencer à camada física (por exemplo, células OAM) ou à camada ATM (células de sinalização, OAM e de gestão de recursos, para além de células com dados do utilizador) • Do ponto de vista da camada ATM as células designam-se por – Células atribuídas (assigned) – células que fornecem serviço a aplicações que usam o serviço da camada ATM – Células não atribuídas (unassigned) – células da camada ATM que não são células atribuídas (mas que são submetidas ao nível físico); garantem um fluxo contínuo de células na interface com a camada física Adaptação ao sistema de transmissão • O transporte de células ATM pode realizar-se usando diversas interfaces físicas, o que requer a especificação das respectivas funções de convergência (transmission convergence sublayer) • No caso de sistemas que usam estruturas de transmissão baseadas em tramas (SDH/SONET, PDH), o fluxo de células é mapeado no payload das tramas, sendo também necessário realizar adaptação do débito à capacidade do sistema, bem como delineação de células • Em alternativa, a transmissão pode consistir num fluxo (contínuo ou descontínuo) de células, sem recurso a qualquer estrutura (trama) – sistema baseado em células • A adaptação do débito pode ser feita de dois modos – Inserção de células vazias (idle) pela camada física – Inserção de células não atribuídas (unassigned) pela camada ATM (neste caso, a interface entre a camada ATM e o sistema de transmissão providencia um sinal para geração de células ATM) Interfaces a 155 520 kbit/s (UNI) • Baseada em tramas (frame based) – – – – Interface física: SDH/SONET As células ATM são mapeadas no contentor virtual VC-4 Débito útil: 149 760 kbit/s (26/27 do débito total) Fluxos OAM: transportados nos octetos OAM da estrutura (SOH e POH) • Baseada em células (cell based) – Por razões de compatibilidade foi definida uma interface baseada em células com o mesmo débito total e o mesmo débito útil que no caso da transmissão baseada em tramas SDH/SONET – A estrutura de transmissão é baseada num fluxo contínuo de células, devendo garantir-se no mínimo uma célula da camada física por cada 27 células • A camada física deve gerar no máximo uma célula OAM por cada 27 células e no mínimo uma por cada 513 • A inserção de células vazias (idle) ocorre em dois casos: se no momento de transmitir uma célula da camada física (uma em 27) não for possível gerar uma célula OAM ou para adaptação do débito (cell rate decoupling) quando não existir uma célula ATM disponível Trama SDH a 155 520 kbit/s (UNI) OH 9 carga de transporte 261 VC-4 RSOH apontadores 9 6 3 carga ATM: 149 760 kbit/s MSOH célula ATM VC-4 POH Trama SDH a 622 080 kbit/s (UNI) 261 X 4 9X4 VC-4-4C RSOH apontadores 9 6 3 carga ATM: 599 040 kbit/s MSOH célula ATM VC-4-4C POH octetos nulos Interface baseada em FDDI • Interface privada a 100 Mbit/s baseada na interface física do FDDI – É usado o código 4B5B, explorando-se a utilização de alguns símbolos do código • A transmissão é baseada em células, mas as células não são transmitidas necessariamente de forma contígua – Na ausência de células a transmitir, são inseridos símbolos JK entre células (11000 10001) – Cada célula é precedida por um octeto formado pelos símbolos TT (01101 01101) Interface baseada em Fiber Channel • Interface privada a 155.52 Mbit/s baseada na interface física do Fiber Channel – É usado o código 8B10B • A transmissão é baseada numa trama constituída por 27 células e com um período de 73.61 μs – A primeira célula da trama tem um formato especial • Um delimitador constituído por 5 octetos, usados para sincronismo a nível de octeto e de trama (as células são alinhadas em relação à trama) • Um payload constituído por 48 octetos reservados para funções OAM da camada física – As restantes 26 células constituem o payload da trama com capacidade 149.76 Mbit/s, idêntica às das restantes interfaces a 155.52 Mbit/s – A adaptação de débito (cell rate decoupling) é realizada com células não atribuídas (unassigned) da camada ATM Camada ATM – As principais funções da camada ATM são a multiplexagem e a comutação de células de diferentes conexões virtuais • Células de uma mesma conexão transportam um identificador comum, que tem significado local em cada interface e que, por essa razão, é normalmente alterado no processo de comutação • O identificador de conexão é estruturado em duas partes – VPI – Virtual Path Identifier – VCI – Virtual Channel Identifier – Células atribuídas (assigned) da camada ATM podem ser de vários tipos, sendo identificadas por combinações específicas de valores de VPI/VCI e PT • • • • Células com dados de utilizador Células de sinalização Células OAM da camada ATM Células de Gestão de Recursos Cabeçalho das células ATM (UNI e NNI) 8 7 6 5 4 3 GFC VPI 2 1 VPI VCI VCI UNI VCI PT CLP HEC 8 7 6 5 4 3 2 1 VPI VPI VCI VCI NNI VCI PT CLP HEC CLP GFC PT Cell Loss Priority Generic Flow Control Payload Type HEC VPI VCI Header Error Control Virtual Path Identifier Virtual Channel Identifier Octet 1 2 3 4 5 Octet 1 2 3 4 5 Payload Type Bits 432 000 User data cell, congestion not experienced. ATM user-to-ATM-user indication = 0 001 User data cell, congestion not experienced. ATM-user-to-ATM-user indication = 1 010 User data cell, congestion experienced. ATM-user-to-ATM-user indication = 0 011 User data cell, congestion experienced. ATM-user-to-ATM-user indication = 1 100 OAM F5 segment associated cell 101 OAM F5 end-to-end associated cell 110 Resource management cell 111 Reserved for future VC functions Camada AAL – ATM Adaptation Layer • A camada AAL acrescenta funcionalidade aos serviços fornecidos pela camada ATM, de forma a satisfazer diferentes requisitos das camadas superiores • A diversidade de aplicações e respectivos requisitos requer diferentes protocolos AAL, que são realizados extremo-a-extremo, em hosts ATM ou em elementos de rede – bridges e routers – que usam ATM para comunicar entre si (e.g., IP sobre ATM e emulação de LANs em ATM) • A camada AAL é dividida em duas sub-camadas – CS – Convergence Sublayer – SAR – Segmentation and Reassembly Sublayer Estrutura das camadas AAL e ATM AAL-SAP CS-PDU header CS-PDU trailer CS-PDU payload AAL Convergence Sublayer (CS) CS AAL-SDU CS-PDU Segmentation and Reassembly (SAR) sublayer SAR-PDU header SAR-PDU payload SAR-PDU trailer SAR No SAP defined between CS and SAR SAR-PDU ATM-SAP ATM ATM-SDU ATM layer Cell header Cell information field (cell payload) ATM-PDU = Cell Exemplos de Funções da Camada AAL • Empacotamento / Desempacotamento (e.g., amostras de voz, áudio, vídeo) • Fragmentação / Reassemblagem – SAR (e.g., pacotes de dados) • Multiplexagem /Desmultiplexagem de fluxos AAL sobre uma conexão ATM • Recuperação de erros extremo-a-extremo • Extracção de relógio de serviço (e.g., emulação de circuitos) • Eliminação do jitter do atraso (e.g., serviços de tempo real que requerem preservação da relação temporal entre fonte e destino) AAL – Classes de Serviço • O ITU-T propôs um modelo de classificação de serviços, baseado num grupo restrito de classes, com o objectivo de identificar protocolos AAL capazes de suportar os requisitos funcionais de cada classe • A classificação baseou-se em três parâmetros – Relação temporal entre fonte e destino, com dois valores possíveis: Requerida / Não requerida • a manutenção da relação temporal entre fonte e destino é um requisito dos serviços de tempo real (transparência temporal) – Débito, com valores possíveis: constante / variável – Modo de conexão, com valores possíveis: orientado à conexão (connection oriented) / sem conexão (connectionless) • o modo connectionless está normalmente associado a serviços de dados que não requerem a reserva de recursos na rede e que, por isso, dispensam o estabelecimento de conexões • este parâmetro acabou por revelar-se de interesse discutível do ponto de vista da especificação de protocolos AAL AAL – Classes de Serviço • Da combinação de valores dos três parâmetros seria possível definir oito classes, mas – serviços de tempo real são tipicamente orientados à conexão – serviços de dados sem requisitos de tempo real são tipicamente de débito variável • Foram definidas quatro classes correspondentes às combinações mais usuais dos valores dos parâmetros Parâmetro Classe A Classe B Classe C Classe D Relação temporal Requerida Requerida Não requerida Não requerida Débito Constante Variável Variável Variável Modo de conexão Orientado à conexão Orientado à conexão Orientado à conexão Sem conexão Classes de Serviço e Protocolos AAL • Considerou-se inicialmente a necessidade de especificar um tipo de protocolo por cada classe – pode ser necessário especificar mais do que um protocolo por classe – pode fazer sentido usar o mesmo protocolo em mais do que uma classe • Previram-se protocolos AAL1, AAL2, AAL3 e AAL4 correspondentes às classes A, B, C e D – inicialmente foram especificados protocolos AAL1, AAL3 e AAL4 e mais recentemente o protocolo AAL2 – os protocolos AAL3 e AAL4 acabaram por ser fundidos num único que passou a ser designado por AAL3/4, para uso das classes C e D – a complexidade do AAL3/4 justificou a especificação dum protocolo mais simples, designado por AAL5, inicialmente previsto como alternativa a AAL3/4, mas que acabou por ter um âmbito de aplicação mais geral Protocolos AAL • AAL1 – o protocolo AAL1 é usado por serviços de classe A que requerem extracção do relógio de serviço na camada AAL (por exemplo, emulação de circuitos) • AAL2 – o protocolo AAL2 é usado por alguns serviços de classe B que geram tráfego de baixo débito constituído por pacotes de pequeno comprimento e que beneficiam da multiplexagem de conexões AAL sobre uma conexão ATM • AAL3/4 – o protocolo AAL3/4 é usado por serviços de dados (classes C e D); permite multiplexar fluxos de pacotes numa conexão ATM, intercalando fragmentos de pacotes diferentes (multiplexagem ao nível de célula) • AAL5 – o protocolo AAL5 é usado por serviços de dados (classes C e D), de preferência a AAL3/4, e pode também ser usado por serviços de tempo real (classes A e B) que não requeiram extracção do relógio de serviço na camada AAL; é mais simples e eficiente do que AAL3/4, mas não permite intercalar fragmentos de diferentes pacotes na mesma conexão ATM (a multiplexagem é realizada ao nível de tramas AAL5 e não ao nível de célula) Categorias de Serviço • O conceito de Categorias de Serviço foi introduzido com o objectivo de relacionar características de tráfego e requisitos de Qualidade de Serviço com o comportamento da rede, que é determinado pelos respectivos mecanismos de controlo de tráfego e pelas estratégias de reserva e atribuição de recursos • As Categorias de Serviço não devem ser confundidas nem com as Classes de Serviço nem com os protocolos AAL – As Categorias de Serviço representam características de serviços oferecidos pela rede, em função da forma como os recursos são atribuídos às conexões – As Classes de Serviço e os protocolos AAL estão relacionados com as funções realizadas extremo-a-extremo (entre end-systems ATM) com o objectivo de satisfazer requisitos funcionais de serviços – A realização de determinadas funções na camada AAL (por exemplo a recuperação do sinal de relógio do serviço ou a compensação do delay jitter) pode, no entanto, requerer a negociação com a rede de uma Categoria de Serviço apropriada AAL1 – Funções • Serviços disponibilizados pelo AAL1 – – – – • Transferência de unidades de dados de serviço com um débito constante e entrega com o mesmo débito Transferência de informação de temporização entre fonte e destinatário Transferência de informação de estrutura entre fonte e destinatário Indicação de informação errada ou perdida Funções do AAL1 – – – – – – Segmentação e reassemblagem de informação do utilizador Empacotamento e desempacotamento de informação do utilizador (constituição de blocos de 47 octetos a partir do AAL-SDU) Tratamento da variação do atraso de células (cell delay variation) e do atraso de empacotamento de células Tratamento de células perdidas ou mal inseridas Recuperação no receptor da frequência de relógio da fonte Recuperação no receptor da estrutura de dados da fonte AAL1 – exemplo de operação Camadas superiores fluxo de bits do serviço de utilizador CS-SDU 1 bit CS Convergence Sublayer 376 bits CS-PDU 47 octetos SAR-SDU 48 octetos SAR-PDU AAL-SDU AAL 1 SAR Segmentation and Reassembly Sublayer AAL-PDU 48 octetos ATM célula ATM 53 octetos Payload Header AAL1 – SAR-PDU header SAR-PDU SN 4 bits CSI 1 bit SN SC 3 bits Sequence Number SNP Sequence Number Protection SAR-PDU (48 octetos) SNP 4 bits payload 47 octetos CRC 3 bits CSI SC PAR 1 bit CS Indication Sequence Count informação específica da camada de convergência contador sequencial de SAR-PDUs enviadas CRC Cyclic Redundancy Check PAR Parity protege o campo SN protege os campos SN e CRC SC ímpar CSI transporta bits para recuperação de relógio (mecanismo Residual Time Stamp) SC par CSI = 0 indica que o payload transporta 47 octetos com informação do utilizador (transmissão não estruturada) CSI = 1 indica que a transmissão é estruturada; o payload do SAR-PDU transporta no primeiro octeto um apontador para o início da próxima mensagem, seguindo-se 46 octetos com informação do utilizador AAL2 – Objectivos e Organização • O protocolo AAL2 foi especificado com o objectivo de permitir a transmissão eficiente de tráfego de aplicações sensíveis ao atraso caracterizadas por gerarem fluxos com débitos baixos e variáveis, constituídos por pacotes pequenos e com comprimento variável • O protocolo AAL2 suporta multiplexagem de várias conexões AAL numa única conexão ATM • As funções do protocolo AAL2 organizam-se em duas sub-camadas – Service Specific Convergence Sublayer (pode ser nula) – Common Part Sublayer (CPS) AAL2 – Funções • Funções do CPS – O CPS-SDU tem comprimento variável; o valor máximo por omissão é 45 octetos (valor máximo opcional: 64 octetos) – Um CPS-Packet forma-se acrescentando um cabeçalho com três octetos ao CPS-SDU • O cabeçalho identifica o canal (conexão AAL) a que pertence o CPS-Packet – CPS-Packets sucessivos (da mesma ou de diferentes conexões AAL) são multiplexados e mapeados no payload de CPS-PDUs • Um CPS-PDU é constituído por um cabeçalho com um octeto e um payload com 47 octetos, ocupando portanto o payload de uma célula ATM • O payload de um CPS-PDU pode transportar zero, um ou mais CPS-Packets (parciais ou completos); o payload pode ser completado com padding • Um CPS-Packet pode distribuir-se por mais do que uma célula AAL2 – CPS-Packet CID LI UUI HEC CPS-INFO CPS-Packet Header CPS-Packet Payload CPS-Packet CID LI UUI HEC CPS-INFO Channel Identifier Length Indicator User-to-User Indication Header Error Control Information 8 bits 6 bits 5 bits 5 bits 1...45/64 octetos • O campo LI é codificado com um vlaor binário igual ao número de octetos transportados no payload do CPS-Packet (CPS-SDU / CPS-INFO) menos 1 AAL2 – CPS-PDU OSF SP N Start Field PAD CPS-PDU Payload CPS-PDU OSF SN P PAD Offset Field Sequence Number Parity Padding 6 bits 1 bit 1 bit 0...46 octetos • O valor de OSF indica a posição do primeiro CPS-Packet que se inicia no CPS-PDU ou, na sua ausência, o início do campo PAD • o offest é medido em octetos em relação ao fim do Start Field • o valor 47 indica que não se verifica nenhum dos casos indicados AAL2 – exemplo 1 AAL2 – exemplo 2 AAL3/4 – Funções • Encapsulamento de pacotes de dados de comprimento variável (de protocolos orientados à conexão ou sem conexão) em CS-PDUs (tramas AAL3/4) – AAL3 foi inicialmente previsto para protocolos orientados à conexão e AAL4 para protocolos sem conexão • Fragmentação de tramas AAL3/4 e respectivo mapeamento no payload de SAR-PDUs, com preservação da integridade das tramas AAL3/4 e manutenção da sua sequência numa conexão SAR • Transmissão concorrente de tramas AAL3/4 na mesma conexão ATM – permite multiplexar SAR-PDUs de diferentes pacotes numa conexão ATM – esta característica pode ser explorada em serviços sem conexão, em que diferentes fluxos de pacotes partilham uma conexão ATM • Detecção de erros nos SAR-PDUs AAL3/4 – CS-PDU CS-PDU payload 1-65535 octetos Header 4 octetos PAD 0-3 octetos Trailer 4 octetos CPI Btag BA size AL Etag Length 1 1 2 1 1 2 O tamanho do CS-PDU é múltiplo de 4 octetos, pelo que está previsto um campo de padding com um máximo de 3 octetos • CPI Common Part Indicator – permite redefinir o significado do cabeçalho por conexão; o valor zero atribui aos restantes campos o significado descrito a seguir • Btag, Etag Etiquetas que têm o mesmo valor em cada CS-PDU, permitindo associar o header e o trailer de cada pacote; o valor é incrementado por cada novo pacote • BA size Buffer Allocation size – número máximo de octetos necessários para armazenar o pacote • AL Alignment – octeto de zeros para garantir que o tamanho do trailer é 4 octetos • Length Número de octetos de dados enviados, excluindo PAD (inferior ou igual a BA size) AAL3/4 – SAR-PDU Header 2 octetos • ST Trailer 2 octetos SAR-PDU payload 44 octetos ST SN MID LI CRC 2 4 10 6 10 Segment Type BOM COM EOM SSM 10 00 01 11 Beginning of Message Continuation of Message End of Message Single Segment Message (combina BOM e EOM) • SN Sequence Number – numeração sequencial dos fragmentos (SAR-PDU) de cada pacote • MID Multiplexing Identification – identificador comum a todos os fragmentos do mesmo pacote; permite intercalar fragmentos de diferentes pacotes na mesma conexão ATM • LI Length Indication – número de octetos de dados no payload (pode ser inferior a 44 em segmentos SSM e EOM, o que requer padding) • CRC Cyclic Redundance Check – código com capacidade de correcção de erros simples polinómio gerador: x10 + x9 + x5 +x4 + x + 1 AAL3/4 – Segmentação e Reassemblagem CS-PDU (n x 4 octetos) H T BOM T H COM T H COM H Header – 2 octetos T COM H Trailer – 2 octetos PAD – 0-40 octetos EOM PAD T AAL5 – Funções • A complexidade e overhead do AAL3/4 justificaram a especificação dum protocolo mais simples e mais eficiente (AAL5), embora sacrificando algumas funções – não existe detecção de erros nos SAR-PDUs mas apenas no CS-PDU – não existe a possibilidade de multiplexar fragmentos de diferentes pacotes na mesma conexão ATM (isto é, só é possível a multiplexagem a nível de tramas AAL5 numa conexão ATM) • O único overhead consiste na adição dum trailer ao pacote (CS-SDU) submetido ao AAL5 e um eventual padding para garantir que a trama AAL5 (CS-PDU) tem um comprimento múltiplo de 48 octetos – não existe qualquer overhead nos SAR-PDUs • A delineação dum CS-PDU é realizada com recurso ao bit 2 do campo PT (Payload Type) no cabeçalho das células ATM – este bit assume o valor 1 na célula que contém o último SAR-PDU de uma trama AAL5 AAL5 – operação Camadas superiores dados do serviço de utilizador CS Convergence Sublayer 1 - 65 535 octetos CS-SDU n × 48 octetos CS-PDU SAR Segmentation and Reassembly Sublayer n × 48 octetos SAR-SDU AAL-SDU AAL 5 SAR-PDU AAL-PDU 48 octetos ATM célula ATM 53 octetos Payload Header Trailer AAL5 – CS-PDU trailer CS-PDU CS-PDU (n × 48 octetos) payload 1 - 65 535 octetos PAD 0 - 47 octetos Ctrl LI 2 octetos 2 octetos T 8 octetos CRC 4 octetos T Trailer Ctrl Control LI Length Indicator CRC Cyclic Redundancy Check funções de controlo comprimento do campo de carga, excluindo PAD protege os campos restantes PAD Padding preenchimento variável, de modo que o total de octetos de CS-PDU seja múltiplo de 48 O campo de controlo (Ctrl) divide-se em • UUI – User-to-User Information (um octeto) • CPI – Common Part Indicator (um octeto), para interpretação dos restantes campos do trailer Sinalização ATM – Princípios • Capacidades de sinalização requeridas – suporte da função de controlo de admissão de conexões (CAC) • estabelecimento de conexões de canal virtual (VCC) • estabelecimento de conexões de caminho virtual (VPC) – túneis VP – (re)negociação de atributos duma conexão • parâmetros de tráfego e de Qualidade de Serviço – suporte de chamadas com múltiplas conexões • possibilidade de remover uma ou mais conexões durante a chamada • possibilidade de adicionar conexões à chamada em curso – suporte de chamadas multiparty • estabelecimento e terminação de conexões envolvendo mais do que dois endpoints • adição e remoção de parceiro(s) durante a chamada – suporte de diversas configurações • unidireccional / bidireccional • simétrico / assimétrico • ponto-a-ponto / ponto-a-multiponto – interfuncionamento com outras redes Canais Virtuais de Sinalização • Ponto-a-ponto – suporta sinalização entre entidades de sinalização – bidireccional, com o mesmo VPI/VCI em cada sentido – pré-definido ou atribuído por procedimentos de meta-sinalização • valor pré-definido: VPI = 0 VCI = 5 • Meta-sinalização – gere os canais virtuais de sinalização no respectivo VP • gere a atribuição de recursos a canais de sinalização • estabelece, liberta e verifica o estado de canais de sinalização – bidireccional e pré-definido para cada VP • gestão de canais de sinalização para a central local: • gestão de canais de sinalização de outras entidades: VPI = 0 VCI = 1 VPI ≠ 0 VCI = 1 • Difusão (Broadcast) – unidireccional (rede Æ utilizador) – permite enviar mensagens de sinalização a todos os endpoints de sinalização ou a um grupo seleccionado • General Broadcast (existe sempre): VPI = 0 VCI = 2 • Selective Broadcast (opcional) SAAL – Signalling ATM Adaptation Layer • Funções – Gestão de conexões da camada AAL • estabelecimento, libertação e resincronização de conexões SSCOP (Service Specific Connection Oriented Protocol, parte integrante do Service Specific Convergence Sublayer) – Mapeamento das mensagens em PDUs da camada AAL • baseado em AAL5 – Reordenação de PDUs – Correcção de erros por retransmissão selectiva – Controlo de fluxo – Indicação de erros ao plano de gestão – Segmentação e reassemblagem de PDUs em blocos de 48 octetos