1. Introdução
2. Conceitos Básicos
3. Componentes e Conexões
4. Formato dos Quadros de Dados
5. Operação de uma ELAN
6. Implementação
7. MPOA
8. Conclusão
9. Links
Apêndice: Perguntas
Por outro lado, o ATM apresenta uma série de atrativos com relação ao seu aproveitamento nas redes de comunicações de dados atuais (altas taxas de transmissão, baixa latência, qualidade de serviço etc.). Este aproveitamento está condicionado à capacidade do ATM de interoperar com as redes disponíveis atualmente, porque dificilmente um usuário irá investir em uma rede que não seja capaz de se comunicar com a sua base instalada. Preservar o investimento já feito em suas redes é de grande importância para o usuário, portanto a substituição tem que ser gradual.
Dentro deste contexto, foi criado o LAN Emulation, ou LANE. Este serviço foi concebido para permitir que o maior número possível de aplicações usadas atualmente possa usar o ATM sem necessitar de modificações e ao mesmo tempo, que as estações ligadas nas redes antigas se comuniquem com as ligadas em ATM de forma transparente.
A grande maioria da base instalada de comunicação de dados é baseada em redes locais (LANs) IEEE 802.x, tais como Ethernet e Token Ring. Os serviços oferecidos pelo ATM são bastante diferentes dos oferecidos pelas LANs. As principais diferenças são as seguintes:
O LAN Emulation, ou LANE, é um serviço implementado
por meio de uma camada de software em qualquer estação que
possua uma interface ATM, seja ela um host, switch ou roteador. Sua função
básica é oferecer ao protocolo camada rede uma interface
idêntica à oferecida por uma rede local tradicional. Isto
é feito no sentido de que não seja necessário modificar
os protocolos de rede para se operar uma rede local ATM. Além disso,
o LANE define o bridging entre o ATM e os protocolos LAN, permitindo que
as estações ligadas às duas redes se comuniquem de
forma transparente.
A especificação do LANE define a operação de uma ELAN. Existem dois tipos de ELAN: Ethernet e Token Ring. Uma ELAN é composta por um conjunto de LECs (LAN Emulation Clients) e pelo serviço, que consiste de três servidores distintos: o LECS (LANE Configuration Server), o LES (LANE Server) e o BUS (Broadcast and Unknown Server). A interface entre os clientes e o serviço é definida pelo protocolo LUNI (LAN Emulation User to Network Interface), que é o objeto da norma de LAN Emulation. A interface entre os elementos do serviço será definida na norma LNNI (LANE Network Node Interface), que está em fase final de aprovação no ATM Forum e está prevista para ser concluída em fevereiro de 1999.
A comunicação dentro de uma ELAN é feita através de circuitos virtuais (VCCs - Virtual Channel Connections). Há VCCs de controle e de transmissão de dados. A interface LUNI usa circuitos virtuais comutados (SVCs) ponto a ponto e ponto a multiponto. O LANE não especifica o suporte a circuitos virtuais permanentes (PVCs).
A interface do LEC com os outros níveis de protocolo dentro de uma estação está ilustrada na figura abaixo:
O LEC oferece ao protocolo acima dele um serviço de transmissão e recepção de quadros semelhante ao de uma rede local, de modo a mascarar do protocolo de rede as complexidades da rede ATM subjacente. Abaixo do LEC está a AAL5. O serviço de LAN Emulation usa somente a AAL5, visto que esta é a mais adequada para a transmissão de dados. O LEC passa à AAL5 um frame semelhante ao Ethernet (ou Token Ring), excluindo apenas o campo FCS (Checksum), já que a AAL5 faz um código de correção de erros semelhante.
É importante notar que o LANE é definido acima da camada
ATM, o que o torna transparente para a rede ATM, ou seja, para os switches.
O LANE utiliza os protocolos de sinalização padrões
do ATM (UNI 3.0 ou superior).
Se um LEC deseja transmitir dados para um determinado endereço ATM, ele tem que estabelecer um VCC para aquele endereço. Se este VCC será multiplexado ou não depende se a outra parte suporta esta característica. Se for desejado estabelecer um novo fluxo de dados, ele pode ser alocado no mesmo VCC, se este for multiplexado.
Analogamente, ao encerrar um fluxo de dados, o VCC é mantido, a não ser que ele seja o único fluxo de dados presente naquele VCC. Isto causa um problema: um LEC pode encerrar um fluxo e a outra parte não tem como saber que ele foi encerrado, pois o VCC ainda existe. Assim, a especificação afirma que um LEC tem de ser capaz de receber pacotes por um fluxo mesmo já o tendo encerrado, se o VCC ainda existir.
Pode-se dividir as conexões do LANE basicamente em dois tipos: VCCs de dados e VCCs de controle. Eles podem ser ponto a ponto ou ponto a multiponto, unidirecionais ou bidirecionais. Os tipos de conexão definidos na LUNI estão listados abaixo.
O desenho a seguir descreve a trajetória de um pacote de dados desde a camada rede até a camada ATM:
É fácil perceber que o frame usado pelo LANE é
semelhante ao Ethernet, para facilitar a comunicação com
a LAN tradicional. As diferenças são:
Há também outros tipos de frame usados no LAN Emulation.
Na versão 2, introduziu-se a multiplexação no nível
LLC. Os frames usados para este tipo de transmissão são iguais
aos quadros de dados normais, acrescidos de um cabeçalho específico
do multiplexador LLC.
A fase de ingresso na ELAN se conclui com a conexão ao BUS. Para fazer isto, o LEC manda pelo seu Control Direct um LE_ARP_REQUEST para o endereço MAC de broadcast (todos os bits '1'). O LES responde com um LE_ARP_RESPONSE que informa o endereço ATM do BUS. O cliente então estabelece o Default Multicast Send com o BUS, que cria um ou mais Multicast Forward para o cliente.
Exceto pela conexão ao BUS, se qualquer dos procedimentos acima não tiver sucesso, o LEC deve voltar ao início da fase de configuração. Em caso de falha no estabelecimento das conexões com o BUS, pode-se tentar novamente até um limite de tempo determinado.
Esta função é importante para o anunciar características do LEC que irão afetar o serviço prestado, tais como: qual a versão da sua implementação de LANE, se ele suporta ou não frames multiplexados em LLC e quais as categorias de serviço que ele suporta.
O registro é feito através de frames LE_REGISTER_REQUEST, onde o cliente informa o endereço MAC que quer registrar, o seu endereço ATM e os parâmetros de classe de serviço e de suporte a multiplexação LLC que deseja associar ao endereço. O LES responde com um LE_REGISTER_RESPONSE, apenas confirmando ou negando o pedido.
Um cliente também pode requerer que um endereço seja apagado da tabela do LES. Para isto, ele usa o frame LE_UNREGISTER_REQUEST, informando o endereço que deseja excluir. Novamente, o LES responde com um LE_UNREGISTER_RESPONSE, apenas confirmando ou negando.
Quando um LEC depara com um frame cujo endereço MAC destino é desconhecido para ele, ele deve enviar um frame LE_ARP_REQUEST ao LES pelo Control Direct. Ao receber este frame, se ele reconhecer o endereço MAC pedido, o LES pode escolher uma das seguintes linhas de ação:
O LE_ARP, além de resolver endereços, também é usado pelo cliente para anunciar características que ele deseja que outros clientes conheçam, como classes de serviço que ele suporta. Para isso, o cliente inclui os TLVs desejados nos frames LE_ARP_REQUEST e LE_ARP_RESPONSE.
Cada LEC mantém um cache com as respostas de LE_ARP, e vai eliminando estes registros através de um mecanismo de time-out. Este mecanismo depende do flag Remote Address, presente nos frames LE_ARP_RESPONSE. Este flag, se é igual a zero, indica que o endereço MAC é registrado junto ao LES, e o parâmetro usado é o 'Aging Time' (valor recomendado: mínimo 10s, default 300s, máximo 300s). Se o Remote Address for igual a um, indica um endereço obtido junto a um Proxy. O tempo de vida destes últimos depende do estado do flag Topology Change no cliente. Se o flag estiver em zero, usa-se o 'Aging time'; se tiver valor um, usa-se o 'Forward Delay Time' (valor recomendado: mínimo 4s, default 15s, máximo 30s).
Também são definidos dois tipos de frame que indicam mudanças na topologia, para que os clientes mantenham suas tabelas corretamente. O LE_NARP_REQUEST indica uma mudança em associações de endereços remotos, ou seja, nos endereços que estão atrás de uma bridge LAN. Um cliente o envia para avisar aos outros clientes que uma associação um destino LAN remoto e um enderço ATM não é mais válida. Tipicamente, quando uma LAN muda de um LEC para outro, o novo LEC ao qual a LAN está associada emite o LE_NARP_REQUEST, e os outros clientes reagem alterando em suas tabelas o endereço ATM correspondente àquela LAN para o endereço do LEC que transmitiu o NARP. O LE_TOPOLOGY_REQUEST indica que uma mudança de topologia está ocorrendo na rede. Sua conseqüência é mudar o estado do flag Topology Change no cliente. Se este flag estiver em '1', o cliente não deve usar nenhuma associação a um destino remoto de seu cache ARP, pois estas podem estar erradas. O flag Topology Change volta a '0' se o cliente recebe do LES um LE_TOPOLOGY_REQUST com este flag em zero.
Deve-se notar que o LE_ARP é independente do protocolo ARP do IP. Quando a camada rede tem um pacote para transmitir para um determinado endereço IP, ela faz um ARP em broadcast para descobrir o endereço MAC de destino. Este pacote ARP é enviado pela ELAN como um pacote de dados qualquer. Tendo descoberto o endereço MAC, ela passa ao LEC um pedido de envio, tendo como parâmetros os dados, o endereço MAC destino e outros opcionais. Por sua vez, o LEC faz um LE_ARP para descobrir o endereço ATM do LEC que representa aquele endereço MAC. Somente com este endereço ATM, o LEC passa o frame à AAL5 para que seja segmentado em células e posteriormente à camada ATM para envio.
Enquanto o cliente está resolvendo o endereço de destino ou criando o VCC de transmissão de dados, ele pode enviar seus frames ao BUS, pelo VCC Default Multicast Send, para que o BUS o repasse ao destino. É importante notar que este repasse é feito a no mínimo o cliente desejado, podendo ser enviado a diversos clientes e até a todos os clientes. No caso de um endereço LAN não registrado, o frame é enviado a pelo menos todos os LECs proxy. Isto não é eficiente em termos de consumo de banda. Além disso, os frames enviados pelo BUS não apresentam garantia de QoS.
Outro problema que isto pode ocasionar é o envio de frames fora de ordem. Por exemplo: um LEC inicialmente envia dados a um destino LAN através do BUS. Quando ele consegue estabelecer um VCC para o destino desejado, ele deixa de mandar para o BUS e manda pelo Data Direct. Tendo caminhos diferentes, os frames podem chegar desordenados. Para evitar este problema, existe o protocolo de Flush. O cliente que está transmitindo, ao mudar o caminho, envia ao caminho antigo um frame LE_FLUSH_REQUEST, que é um frame de dados onde o campo LECID tem o valor 'FF00' e não transmite pelo caminho novo. Sendo um frame de dados, ele é transmitido pelo Data Direct ou por um Multicast Send. O LE_FLUSH_RESPONSE, que é o retorno desta mensagem, é recebido por um VCC de controle. Quando o LEC recebe o retorno, isto quer dizer que o caminho antigo já transmitiu todos os frames que tinha para aquele destino, e só então ele pode começar a transmitir pelo caminho novo. Ao invés de usar o Flush, o LEC pode simplesmente esperar por um tempo determinado (parâmetro 'Path Switching Delay', valores recomendados: mínimo 1s, default 6s e máximo 8s) antes de mandar pelo novo caminho. No caso de mudança de trajeto em frames multicast, não se usa o Flush, e sim este último procedimento.
Em caso de frames multicast, o cliente deve sempre tentar o envio por
um VCC Selective Multicast Send, se houver um associado ao endereço
de grupo desejado. Se não houver, ele deve enviar pelo Default Multicast
Send. O BUS possui diversos VCCs do tipo Multicast Forward (ponto a multiponto),
além de poder transmitir pelos Multicast Send (que são bidirecionais).
Como o BUS irá distribuir o tráfego multicast e broadcast
é determinado na implementação, com a única
restrição de não enviar mais de uma vez o mesmo frame
a um cliente. O cliente, ao receber frames do BUS, confere o endereço
MAC destino do frame. Se não for um endereço multicast que
ele deseje receber, ele simplesmente descarta o frame. O cliente também
deve descartar frames cujo LECID seja o seu próprio, pois isso indica
que foi ele mesmo que enviou o quadro. Este é o mecanismo de cancelamento
de eco de multicast definido no LANE. Na versão 1.0, todos os frames
multicast eram enviados a todos os LECs em uma ELAN, e eles descartavam
os indesejados. É um dos principais avanços da versão
2.0 o suporte a multicast seletivo, para evitar o desperdício de
banda acarretado pelo esquema anterior.
O LEC disponibiliza à camada rede uma primitiva para a criação de conjuntos de características de QoS (QoS Sets), que são identificados por um 'qos_handle'. A primitiva de pedido de envio de dados tem como um de seus parâmetros um qos_handle. Os parâmetros configuráveis de QoS e as classes de serviço são os padrões definidos na norma ATM Traffic Management.
O VCC para transmissão é criado pelo LEC. De acordo com o qos_handle especificado, o LEC automaticamente cria uma associação (QoS Binding) deste VCC com um QoS Set. Este QoS Binding só é perdido quando o VCC é encerrado ou se o QoS Set for destruído pelas camadas mais altas. Quando nenhum qos_handle é especificado no pedido de envio, o LEC faz o Binding com o Default QoS Set, que corresponde à classe de serviço UBR. Um LEC não pode criar mais de um VCC para um determinado destino com o mesmo QoS Binding, e sim criar um novo fluxo de dados no VCC existente. Essa restrição visa a limitar de alguma forma o número de VCCs, e o overhead decorrente.
É importante notar que a garantia de QoS vale de LEC para LEC.
Uma estação ligada a uma LAN atrás de um LEC está
sujeita a perda de qualidade pela natureza do serviço da LAN, que
é do tipo "melhor esforço".
Tem-se um backbone composto por switches ATM. Nestes switches são ligados hosts com placas ATM (que em geral serão servidores ou estações com grande necessidade de banda) além de switches LAN com placas de interface ATM, que conectam as LANs tradicionais ao backbone. É importante notar que uma mesma interface ATM pode suportar vários LECs. Um switch LAN com um módulo ATM em geral pode ser configurado com tantos LECs quantas VLANs ele suporta. Como uma VLAN é logicamente idêntica a um segmento de rede, cada LEC será a ponte entre a rede ATM e o segmento LAN associado a ele.
Dentro desta rede ATM podem ser configuradas várias ELANs. O tráfego entre estações em ELANs diferentes tem de ser comutado na camada rede através de um roteador, pela seguinte razão: um host na rede ATM só consegue criar um VCC para outro host se possuir o endereço ATM de destino. A ELAN define um domínio de broadcast, através do BUS. Quando a camada rede tem um pacote para enviar em uma LAN tradicional (em uma ELAN ocorre o mesmo), ela descobre o endereço MAC de destino através de um ARP (no caso do IP). O ARP é um pacote enviado em broadcast com o endereço IP destino, para que o host que possuir aquele endereço responda com seu endereço MAC. Se o host está em uma ELAN diferente, os pacotes ARP não chegarão até ele, e portanto não será possível descobrir o endereço. Deste modo, o host terá que enviar todos os pacotes ao seu Default Gateway para que este calcule a rota e envie o pacote ao roteador da rede onde o host destino estiver. Assim, é necessário que haja roteadores ligados à rede ATM. Como um LEC só pode estar ligado a uma ELAN, o roteador terá de suportar tantos LECs quantas ELANs ele estiver servindo. Os LECs podem estar na mesma interface.
Há algumas particularidades do LANE que impõem restrições
ao equipamento usado. Os switches ATM, por exemplo, têm de ser capazes
de manipular VCCs muito rapidamente, pois o LANE cria e destrói
conexões de forma muito dinâmica. O número de VCCs
em uma ELAN é proporcional ao quadrado do número de clientes,
portanto conforme a rede cresce, as conexões aumentam em progressão
geométrica. Como não há ainda uma norma estabelecendo
redundância entre os servidores LANE, estes se tornam pontos críticos
de falha, portanto têm de ser implementados em equipamentos muito
confiáveis. Além disso, os servidores exigem muito processamento
e grande capacidade de comutação, especialmente o BUS, que
manipula muito tráfego. Em geral os servidores são implementados
nos switches do backbone, mas há quem defenda que isto sobrecarrega
a rede, que já tem que lidar com a parte de sinalização
e transferência de células. Os partidários desta tese
são a favor de implementar o LANE Service em um switch de borda
muito robusto.
O MPOA é um serviço definido pelo ATM Forum para complementar o LANE e que visa a otimizar a transferência do tráfego entre ELANs. Ele faz uso do protocolo de roteamento NHRP (Next Hop Resolution Protocol) para criar atalhos entre as ELANs, evitando o processo de cálculo de rotas no roteador. Cada ELAN é configurada como uma LIS (Logical IP Subnet), ou seja, uma sub-rede IP.
O MPOA possui dois componentes: o MPOA Client (MPC) e o MPOA Server (MPS). O MPC é implementado nas estações e switches de borda, enquanto que o MPS é implementado nos roteadores. Ele funciona da seguinte forma:
Deve-se notar que as entidades do MPOA (MPC e MPS) trocam informações
através do serviço LAN Emulation. Cada MPC e MPS tem de ter
um LEC associado, e a troca de dados do MPOA ocorre como qualquer outra
troca
de dados. Para que uma estação suporte o MPOA, ela tem de
possuir um LEC versão 2.0.
Apesar desta complexidade, os preços dos equipamentos ATM vêm caindo de forma considerável nos últimos anos. Mesmo assim, ainda são maiores que os dos competidores. No caso de backbones corporativos, o principal destes é o Gigabit Ethernet. Este apresenta como sua maior vantagem a simplicidade na migração, já que é uma extensão do Ethernet. Deste modo, ele se integra facilmente à base instalada.
Por outro lado, o ATM deverá ter mais facilidade de se integrar às MANs e WANs, à medida que as operadoras e provedores de serviço forem oferecendo redes públicas ATM a preços cada vez mais competitivos. Além disso, já está sendo desenvolvida (esperada para junho/99) a interface que permitirá que se use como nível físico do ATM o OC-48, que roda a 2.5 Gbps, superando a banda oferecida pelo Gigabit Ethernet.
O grande argumento em favor do ATM, no entanto, é a garantia
de QoS. Foi um grande avanço da versão 2.0 disponibilizar
esta característica. Entretanto, os protocolos e aplicações
existentes ainda têm de ser modificados para poderem usar esse serviço.
O desenvolvimento de APIs que usam ATM em modo nativo também é
promissor, pois assim poderão ser criados aplicativos que usem diretamente
os benefícios do ATM.
Normas
em andamento no ATM Forum
Bob Klessig (3Com): LAN
Emulation
Este paper é específico sobre LAN Emulation, descrevendo
sua operação e seus benefícios. Fala sobre a versão
1.0.
2. Numa estação rodando LANE, o que acontece com um
pacote de dados desde a camada rede até a transmissão?
Na camada LANE, recebe um cabeçalho semelhante ao Ethernet mas
sem o preâmbulo, o delimitador de início de quadro e o FCS
(código corretor de erros). Então é passado à
camada AAL5, onde recebe um ‘trailer’ que inclui o comprimento do quadro,
um ‘padding’ e um CRC. A AAL5 fragmenta o frame em células de 48
bytes e passa-o à camada ATM, que acrescenta a cada célula
um cabeçalho ATM de 5 bytes, passando as células à
camada física para transmissão.
3. Qual é a principal função do LES (LAN Emulation
Server)?
Mapeamento de endereços MAC em endereços ATM. O LES mantém
uma tabela relacionando os endereços MAC (inclusive os multicast)
aos endereços ATM dos LECs (LAN Emulation Clients) que as representam.
Quando um LEC deseja transmitir um pacote a um determinado endereço
MAC, ele faz um pedido de resolução de endereços ao
LES, que responde fornecendo o endereço ATM do destino.
4. Em que situações um LEC envia um frame ao BUS (Broadcast
and Unknown Server)?
Nos seguintes casos: no envio de frames multicast e quando o endereço
ATM de destino ainda não é conhecido. O frame é enviado
ao BUS para que ele o repasse ao destino ou destinos (se for multicast).
5. O que acontece com o tráfego entre ELANs diferentes e qual
o papel do MPOA (Multiprotocol over ATM)?
Como um host não consegue descobrir o endereço de outro
que não esteja na mesma ELAN, o tráfego entre estações
em ELANs diferentes tem de ser comutado na camada rede, ou seja, transmitido
através de um roteador. O MPOA permite otimizar esta transmissão
através da criação de atalhos na rede ATM, contornando
assim os roteadores.