"Asynchronous Transfer Mode" (ATM)

André Moreira (andre@dei.isep.ipp.pt)
Professor Adjunto do Departamento de Engenharia Informática do ISEP

A introdução da fibra óptica veio revolucionar a tecnologia de transmissão. A fibra óptica permite comunicações a longa distância com taxas de erros muito inferiores às cablagens de cobre a curta distância.

Este avanço provocou necessariamente uma inadequação da tecnologia de nível superior existente. Tradicionalmente uma das grandes preocupações era lidar de uma forma eficiente com taxas de erros relativamente elevadas. A definição do ATM teve em consideração este facto adoptando a técnica Cell Relay.

A designação "Modo de Transferência Assíncrono" provém do facto de se utilizar comutação de pacotes e não comutação de circuitos. Isto não é novidade, o “standard” X.25 já utiliza esta técnica à muito tempo, contudo em termos de performance está totalmente esgotado. Sob este ponto de vista o ATM pode ser visto como o seu sucessor.

Devido à facilidade de transportar qualquer tipo de dados, o ATM foi adoptado pelo ITU como tecnologia base para a implementação da B-ISDN ("Broadband Integrated Services Digital Network").

O ATM utiliza "Cell Relay" que envolve diversas simplificações, nomeadamente relativamente ao X.25, as suas principais características são as seguintes:

  • Não há controlo de erros ou fluxo, tudo isto é deixado a cargo dos níveis superiores.
  • Tal como o X.25 opera normalmente em modo “CO” (orientado à conexão) segundo o modelo de circuitos virtuais.
  • Pode ser usado para o transporte de virtualmente qualquer tipo de dados incluído som e imagem podendo também operar em modo “CL” (não orientado à conexão).
  • Os pacotes que tomam a designação de células são de dimensão reduzida e fixa, com um cabeçalho também reduzido.

Alguns deste factores são preponderantes na eficiência geral:

  • Com células de comprimento fixo, a alocação de “buffers” nas interfaces e comutadores torna-se muito mais eficiente.
  • Como as funções implementadas se limitam ao encaminhamento por circuitos virtuais, a dimensão do cabeçalho é muito reduzida (5 octetos), mesmo assim, como as células são muito pequenas (53 octetos) o “overhead” é superior a 9,4 %.
  • A pequena dimensão das células (tempo de transmissão) e a ausência de controlo de erros e fluxo (tempo de processamento) reduz significativamente os atrasos nos comutadores.

Uma rede ATM implementa a sua funcionalidade segundo o já habitual modelo de camadas. Os serviços disponibilizados pela camada mais elevada não atingem os requesitos do nível 2 do MR-OSI já que proporcionam um serviço não fiável.

O esquema seguinte apresenta a estrutura de camadas das redes ATM:

Nível AAL
Nível ATM
Nível Físico

O nível AAL ("ATM Adaptation Layer") tem por missão proceder a adapta

Nível Físico

O nível físico ATM é constituido por dois sub-níveis:

"Transmission Convergence" (TC)
"Physical Medium" (PM)

"Physical Medium" (PM)

O sub-nível "Physical Medium" (Meio Físico) define as caracteristicas da transmissão de sequências de bits, nomeadamente a taxa de transmissão, e o tipo de cablagem e conectores usados.

A definição do PM, baseada em células, refere três modos para as taxas de transmissão:

  • 155 Mbps Simétrico "Full-Duplex" disponível também sobre cobre
  • 622/155 Mbps Assimétrico (155 Mbps do nó para a rede e 622 Mbps da rede para o nó)
  • 622 Mps Simétrico "Full-Duplex"

Foram previstas diversas outras implementações do meio físico de modo a respeitar a diversidade tecnológica disponível através do conceito de UNI ("User-Network Interface"). O sub-nível "Transmission Convergence" (TC) tem de adaptar as células que são regra no nível ATM às estruturas particulares usadas neste sub-nível.

Os principais UNI previstos são:

  • 155 Mbps (STS-3)
  • 100 Mbps
  • 45 Mbps (DS-3)
  • 25 Mbps

As implementações UNI a 155 Mbps (STS-3) são várias:

  • Uma hipótese é a utilização de fibra-óptica monómodo idêntica à implementação SONET, com o formato de "trama" SDH ("Synchronous Digital Hierarchy") no sub-nível TC.
  • Uma alternativa mais barata é a utilização de fibra óptica multímodo.
  • Finalmente existe ainda a alternativa de pares de cabos de cobre entrançados e blindados, idêntico ao CDDI adaptado da FDDI.

A taxa de transmissão de 100 Mbps utiliza fibra óptica multímodo com o "chip set" TAXI da AMD, o sub-nível PM é neste caso idêntico ao nível físico das redes FDDI.

A taxa de transmissão de 45 Mbps corresponde às redes publicas de dados nos EUA e Japão.

A taxa de transmissão de 25 Mbps (25,6 Mbps) pode usar diversos tipos de cablagem incluindo UTP categoria 3 e destina-se a fazer chegar a rede ATM a conjuntos númerosos de postos de trabalho, de uma forma mais economica.

"Transmission Convergence" (TC)

Este sub-nível define uma interface baseada em células com o nível ATM.

O sub-nível TC é responsavel pela gestão do cabeçalho das células no que diz respeito à detecção de erros e correcção de erros em um único bit.

Numa implementação totalmente baseada em células, estas são transmitidas num fluxo continuo, este sub-nível é responsável pela inserção e eliminação de células vazias de modo a adaptar o fluxo de células do nível ATM à taxa de transmissão praticada.

Quando é usada uma UNI, o sub-nível "Transmission Convergence" tem de adaptar o formato de células da interface com a camada ATM às estruturas particulares usadas.

Um caso comum é a utilização de uma UNI SONET/SDH a 155 Mbps.

O SONET é um meio físico em fibra-óptica monómodo e utiliza o formato de trama SDH. Esta técnologia é usada em ligações WAN onde a capacidade de um meio de transmissão deve ser dividida por vários utilizadores.

O SDH usa TDM ("Time Division Multiplexing"), cada trama SDH transporta informação com diversas origens e destinos.

Uma trama SDH é constituida por um total de 2430 bytes que estão organizados em 9 estruturas idênticas com um total de 270 bytes cada. Estas 9 estruturas correspondem a dados totalmente independentes, potencialmente com origens e destinos distintos, logo cada uma possui a sua informação de controlo independente, contituida por 10 bytes ficando os restantes 260 bytes para dados.

Quando uma rede ATM é implementada sobre SONET/SDH o sub-nível "Transmission Convergence" tem por missão encaixar as células ATM de 53 bytes nos 270 bytes disponibilizados pelas tramas SDH, (como 270 não é múltiplo de 53 uma célula pode ser distribuída por mais do que uma trama SDH).

Nível ATM

Canais virtuais e caminhos virtuais

O nível ATM gere canais virtuais ("Virtual Channel") e caminhos virtuais ("Virtual Path"):

"Virtual Channel"
"Virtual Path"

Um canal virtual é uma ligação lógica entre dois nós finais (utilizadores da rede), em tudo semelhante a um circuito virtual da norma X.25. Um canal virtual fornece uma taxa de transmissão variável, em "full-duplex" para células de comprimento fixo. Para troca de informação de controlo entre os nós finais e a rede são também usados canais virtuais.

O conceito de caminho virtual agrupa todos os canais virtuais que têm a mesma origem e destino. A definição de caminhos virtuais tem a vantagem de simplificar o funcionamento interno da rede, aumentando a eficiência e fiabilidade.

As caracteristicas que se esperam dos canais virtuais e caminhos virtuais estão definidos na recomendação I.150, em sintese:

  • Os canais virtuais devem ter uma qualidade de serviço (QOS - "Quality Of Service") garantida à partida e devidamente quantificada por parâmetros tais como a taxa de perda de células ou o atraso de propagação médio.
  • Num canal virtual a sequência das células é mantida.
  • Deverão ser proporcionados canais virtuais comutados e semi-permanentes.
  • Num canal virtual, os parâmetros relativos à taxa de transmissão devem ser negociados: taxa de transmissão média, máxima, duração dos máximos, etc. A rede deve monitorizar os parâmetros negociados para garantir que não são violados.

Para os canais virtuais as especificações são exactamente do mesmo tipo, acrescentando-se que a rede pode reservar para uso próprio alguns identificadores de canal virtual relativos a um dado caminho virtual.

O nível ATM é responsável pela criação de células e extracção dos dados das mesmas, gerindo nomeadamente os identificadores de canal virtual (VCI - "Virtual Channel Identifier") e os identificadores de caminho virtual (VPI - "Virtual Path Identifier").

Uma célula ATM contém 53 bytes (o valor 53 bytes é um compromisso entre os 64 bytes pedidos pelos EUA e os 32 bytes pretendidos pela Europa e Japão). As células possuem um cabeçalho de 5 bytes e os restantes 48 para transporte de dados. A estrutura do cabeçalho é a seguinte:

O formato dos cabeçalhos varia ligeiramente conforme se trate de uma transmissão entre um nó final (UNI) e um comutador (parte superior da figura) ou se trate de transmissões entre comutadores no interior da rede (NNI - "Network Node Interface") (parte inferior da figura).

Os significados dos campos são os seguintes:

GFCGeneric Flow ControlApenas existe nos nós UNI, será futuramente usado para implementação de controlo de fluxo entre a rede e um nó final.
VPIVirtual Path IdentifierIdentificador de caminho virtual com 8 bits (máximo 256 caminhos por nó). Os VPI são atribuidos nó a nó, o valor não se mantém ao longo da rede. Nas UNI o VPI não é geralmente usado, sendo colocado a zero. Numa célula NNI o VPI é de 12 bits (4096 caminhos virtuais)
VCIVirtual Channel IdentifierIdentificador de canal virtual com 16 bits (máximo 65536 canais por nó). Os VCI são atribuidos nó a nó, o valor não se mantém ao longo da rede.
PTPayload TypeÉ geralmente combinado com o bit seguinte (RES) dando origem a um identificador de 3 bits (PTI - "Payload Type Identifier"). Indica se os 48 bits de dados contêm informação do utilizador ou informação de controlo da rede, no primeiro caso o valor para este campo é 0.
RESReservedVer anterior
CLPCell Loss PriorityTrata-se de um campo de um bit que define prioridades na eliminação de células. Em caso de saturação de um nó da rede, algumas células podem ter de ser eliminadas. As células com CLP=1 são eliminadas em primeiro lugar.
HECHeader Error ControlDetecçao de erros no cabeçalho, o código é auto-corrector para erros de 1 bit e detecta erros de mais de um bit.

Estabelecimento de canais e caminhos virtuais

A recomendação I.150 indica também métodos para o estabelecimento de canais virtuais e caminhos virtuais. O grande problema é a necessidade de um canal prévio para comunicar com a rede ATM para que esta estableça o canal pretendido.

Para resolver o problema existe geralmente um canal permanente (assim que o nó é activado está automaticamente disponível) de baixa capacidade conhecido por "meta-signaling channel".

O canal permanente "meta-signaling" (VPI=0; VCI=1) pode ser usado para establecer um canal virtual de controlo ("signaling virtual cannel") entre o utilizador (nó final) e a rede.

O canal virtual de controlo pode ser então usado para definir canais e caminhos virtuais.

Encaminhamento de células na rede

O encaminhamento das células através dos nós da rede baseia-se nas combinações VPI/VCI que cada célula possui. Como já foi referido nem o VPI nem o VCI são os mesmos ao longo da rede, este identificadores são definidos de modo privado entre dois nós da rede quando se estabelece o canal ou o caminho.

Isto já acontecia com os identificadores de circuito virtual das redes X.25 e as razões são obvias: para arranjar um identificador disponível em todos os nós pelo qual o canal passa seria necessário um algoritmo de negociação complexo e moroso.

Nível AAL ("ATM Adaptation Layer")

O Nível AAL tem por missão adaptar a informação dos protocolos de nível superior ao formato de células das redes ATM, devido ao reduzido tamanho das células a informação dos níveis superiores tem de ser geralmente fragmentada e dividida por várias células, sendo mais tarde reconstituida no receptor, esta função é asseguradas pelo sub-nível SAR ("Segmentation and Reassembly Sublayer"). Para permitir a utilização de protocolos de comunicação mais antigos sobre a camada AAL a sub-camada CS efectua uma conversão prévia para um formato intermédio. A estrutura da camada AAL é a seguinte:

"Convergence Sublayer" (CS)
"Segmentation and Reassembly Sublayer" (SAR)

As implementações das sub-camada SAR e CS estão fortemente relacionadas entre sí e dependem do tipo serviço disponibilizado pela camada AAL. Os formatos das estruturas usadas pelos protocolos SAR e CS (PDU´s - Protocol Data Unit) dependem do tipo de camada AAL. Estão definidos quatro tipos de serviço:

  • Classe A (AAL 1) - serviço orientado à conexão com taxa de transmissão constante, em tempo real.
  • Classe B (AAL 2) - serviço orientado à conexão com taxa de transmissão variável, em tempo real.
  • Classe C (AAL 3/4 e 5) - serviço orientado à conexão com taxa de transmissão variável, sem tempo real.
  • Classe D (AAL 3/4 e 5) - serviço não orientado à conexão com taxa de transmissão variável, sem tempo real.

AAL 1

Fornece um serviço orientado à conexão com taxa de transmissão constante e relação temporal entre emissor e receptor, é por isso adequada para som, imagem e tráfego similar. A estrutura das unidades do protocolo SAR (SAR PDU) é constituida por um cabeçalho de 8 bits, dividido em dois campos de 4 bits, designados por SN ("Sequence Number") e SNP ("Sequence Number Protection").

O campo SN é usado para detectar perda de células, o campo SNP é usado para detectar e corrigir erros no campo SN. O campo de dados contém portanto 47 octetos.

AAL 2

Difere do AAL 1 pelo facto de fornecer uma taxa de transmissão variável. É adquado para o mesmo tipo de aplicações que o AAL 1, mas devido à taxa variável os dados devem ser previamente comprimidos.

O SAR PDU para o AAL 2 contém os seguintes campos:

  • SN - "Sequence Number" idêntico ao do AAL 1
  • IT - "Information Type", indica se se trata do inicio de uma mensagem (BOM), continuação de uma mensagem (COM) ou fim de uma mensagem (EOM).
  • LI - "Length Indicator", contém o número de octetos de dados transportados pela célula.
  • CRC - "Cyclic Redundancy Check" de todo o PDU (48 octetos).
  • DADOS

AAL 3/4

Os serviços de classe C são serviços de transporte de dados provenientes de protocolos de nível superior, por esta razão torna-se necessária a implementação da sub-camada CS.

Na sub-camada CS os pacotes de tamanho variável do nível superior são transformados na estrutura CS PDU, o comprimento do CS PDU deve ser múltiplo de 4, logo pode ser necessário acrescentar 1 a 3 octetos ("padding").

A estrutura do CS PDU no AAL 3/4 é a seguinte:

  • CPI (1 byte) - "Common Part Indicator",
  • BTag (1 byte) - "Beginning Tag", trata-se de um contador de PDU´s do protocolo CS, é também colocado no fim do PDU servindo de controlo relativamente à ordem dos CS PDU.
  • BAsize (2 bytes) - "Buffer Allocation Size Indicator", indica ao receptor o tamanho do "buffer" necessário para receber o CS PDU.
  • DADOS (0 a 65535 bytes)
  • PADDING (0 a 3 bytes) - Usado para garantir que o tamanho total do CS PDU é multiplo de 4.
  • AL (1 byte) - "Alignment", o colocado a zero e destina-se a garantir o alinhamento da cauda ("trailer"), constituida pelos campos (AL + ETAG).
  • ETag (1 byte) - "End Tag", é uma cópia do valor BTag, permite associar o cabeçalho à cauda e controlar perdas de PDU´s do sub-nível SAR.

A sub-camada SAR fragmenta os CS PDU para os colocar nos seus próprios PDU´s de 48 bytes, com a seguinte estrutura:

  • ST (2 bits) - "Segment Type", indica o tipo de PDU: 01="Beginning Of Message" (BOM); 00="Continuation Of Message" (COM); 01="End Of Message" (EOM); 11="Single Segment Message" (SSM)
  • SN (4 bits) - "Sequence Number", indica o número de sequência dentro de um CS PDU, é usado para detectar perdas de SAR PDU's e manutenção da sequência.
  • MID (10 bits) - "Multiplexing Identification", equivalente a números de porta, no AAL 3 este campo não é usado e estes bits são reservados.
  • DADOS (44 bytes)
  • LI (6 bits) - "Length Indicator", indica o números de octetos de informação útil presentes no campo de DADOS, o máximo é 44 bytes. O valor de LI deve ser multiplo de 4, na prática apenas os tipos EOM e SSM podem conter menos do que 44 bytes.
  • CRC (10 bits) - "Cyclic Redundancy Check" sobre todo o SAR PDU.

AAL 5

O nome original desta implementação é SEAL ("Simple and Efficient AAL"), trata-se de uma implementação parcial do AAL 3/4.

O CS PDU do AAL 5 não possui cabeçalho, o formato é o seguinte:

  • DADOS (0 a 65535 bytes)
  • PADDING (0 a 47 bytes), usado para garantir que o comprimento total do CS PDU é multiplo de 48.
  • Control (1 byte), reservado a implementações futuras, por agora é colocado a zero.
  • Length (2 bytes), comprimento dos dados (sem PADDING).
  • CRC-32 (4 bytes), "Cyclic Redundancy Check" sobre todo o CS PDU.

O SAR PDU do AAL 5 apenas contém dados, todas as funções foram transferidas para a sub-camada CS, note-se que não há multiplexagem com o AAL 5.

Serviços de Classe D