# Layered Naming Architecture

A Arquitetura de Nomes em Camadas ( do inglês Layered Naming Architecture – LNA ) é uma tecnologia que se propõe a flexibilizar a associação de um nome na rede do equipamento computacional onde está.

## Como funciona o Domain Name System

O DNS ( do inglês Domain Name System - Sistema de Nomes de Domínios) é um sistema de gerenciamento de nomes hierárquico e distribuído operando segundo duas definições:
* Examinar e atualizar seu banco de dados.
* Resolver nomes de servidores em endereços de rede (IPs).
Existem 13 servidores DNS raiz no mundo todo e sem eles a Internet não funcionaria. Destes, dez estão localizados nos Estados Unidos da América, um na Ásia e dois na Europa. Para aumentar a base instalada destes servidores, foram criadas réplicas localizadas por todo o mundo, inclusive no Brasil desde 2003.
O servidor DNS traduz nomes para os endereços IP e endereços IP para nomes respectivos, e permitindo a localização de hosts em um domínio determinado, ou seja, o DNS possui apenas um nível de direcionamento apontando para o IP da estação onde a informação está localizada. Se a informação é movida ou replicada para outro lugar, ela não pode ser automaticamente localizada, de modo que o DNS e o IP são fortemente conectados entre si.

## Como funciona o Layered Naming Architecture (LNA)

A Arquitetura de Nomes em Camadas (Layered Naming Architecture – LNA) propõe a divisão semântica entre a identificação da informação e o local onde ela está . Essa divisão é alcançada com a adoção de um Identificador de Serviço (service identifier – SID) e de um Identificador de Ponto-Final (endpoint identifier – EID). Os dois identificadores separam a identificação do ser viço das sistemas finais onde eles estão residentes. Nesse esquema, o usuário somente precisa obter o identificador do serviço que deseja acessar (SID) e sua localização (EID) é obtida automaticamente.
A arquitetura LNA, portanto, requer a introdução de níveis adicionais para a resolução de nomes. Agora, a resolução de nomes deve ser executada em três níveis. O primeiro envolve converter uma informação do nível do usuário para o identificador do serviço, ou seja, obter o SID. O segundo nível envolve converter o identificador do serviço (SI D) para o identificador da sistema final (EID). O terceiro e último nível converte e o EID para o endereço IP.

### Camadas de Resolução da LNA : Primeiro Nível

Esta camada é utilizada para realizar a conversão do nível do usuário para um SID que pode ser alcançado através de algum serviço de busca.
Por exemplo: ao invés de diretórios de busca retornarem URLs (como atualmente) eles retornariam SIDs.

### Camadas de Resolução da LNA : Segundo Nível

Esta camada inclui o envolvimento da aplicação, incluindo o "resolvedor". Quando uma aplicação deseja acessar uma informação de um SID, a camada de resolução de SID, contata a infra-estrutura de resolução e retorna um ou mais triplas do tipo (EID,transporte,porta). De posse das triplas mencionadas, a aplicação se comunica com o EID retornado usando o protocolo de transporte e portas indicados.
Os protocolos de transporte, agora vinculados ao EID (e não mais a endereços IP) poderiam usar o EID da aplicação como "origem" e o EID de uma das triplas como "destino". Dependendo do tipo de aplicação, a aplicação pode usar múltiplas triplas para conexões simultâneas em caso de falha da conexão atual.

### Camadas de Resolução da LNA : Terceiro Nível

No terceiro nível, o protocolo de transporte prepara pacotes e os repassa para a camada EID. A camada EID resolve o EID e obtém um ou mais endereços IP (mais de um quando a estação for multi-homed 3 ou quando a estação é uma representação lógica de um conjunto de máquinas). A camada EID adota o IP do emissor como origem e um dos endereços como IP de destino e repassa os pacotes para a camada IP. Se o IP destino não for alcançável, a camada EID pode usar um dos outros IP obtidos no processo de resolução. Se nenhum IP funcionar, a camada re-invoca a resolução do EID para obter novos endereços IP.
Em alguns casos, a entidade destinatária não quer manusear diretamente o tráfego recebido, preferindo direcionar a conexão (delegar) para outra estação de sua escolha. A arquitetura LNA prevê uma forma mais genérica para resolução que permite suportar esse tipo de delegação. Os autores argumentam que este tipo de delegação não altera essencialmente a confiabilidade do relacionamento entre a origem e o destino (se X confia em Y, então também confia nos delegados de Y). Esta delegação pode se dar tanto no nível de SID (serviço) quanto no nível de EID (estação), permitindo a interposição de intermediários no nível de serviços e aplicações (ex: gateways) ou no nível de rede (ex: firewall, NAT e VPN).

## Vantagens de implantação do LNA

* Nomear dados e serviços com SIDs, soluciona o problema de usar a URL para tal finalidade e amarrar o serviço ou dado com a estação onde reside.
* Com o SID as aplicações são nomeadas permanentemente, independentemente da sua localização e estabelece a idéia de que serviços e dados são os objetos de "primeiro nível" na Internet.
* Nomear estações com EIDs fornece uma solução natural para mobilidade e multi-homing: Se uma estação identificada por um EID e muda seu endereço IP, então a camada de resolução EID resolve e para obter o novo endereço IP. Esta religação automática permite a operação contínua na presença de mobilidade e provê redirecionamento IP em caso de falha em estações multi-homed. Por último, permite integrar middleboxes como NAT e Firewall na arquitetura da Internet, sem violar o princípio fim-a-fim ou a semântica do IP.

## Problemas de implantação do LNA

* O SID, ao contrário de uma URL, não apresenta uma estrutura hierárquica de domínios. O SID é na verdade uma seqüência de bits, ou um número. A explicação para isso diz respeito à escolha do mecanismo DHT para conferir eficiência ao processo de resolução.
* Como o SID é um identificador que representa o endereço de um serviço ou informação, o usuário pode desejar retê-lo, tal como o faz atualmente com uma URL. O SID não traz nenhuma associação mnemônica, o que torna inadequado para usuários.
* A adoção da arquitetura LNA requer modificações nas camadas de transporte e aplicação, devido à nova infra-estrutura de resolução de nomes, embora praticamente preserve todo o comportamento do IP. Sua implementação não é simples, mas pode se dar de forma incremental e as mudanças nas aplicações de sistemas operacionais podem manter compatibilidade com o mecanismo antigo para permitir transição suave.

## Bibliografia e referências

* A Layered Naming Architecture for the Internet -Balakrishnan, H. et al., ACM SIGCOMM, Setembro de 2004.
* Arquiteturas de Rede para a Próxima Geração da Internet - Carlos Kamienski, Dênio Mariz, Djamel Sadok, Stênio Fernandes
* IP Operations and Management - Por Deepankar Medhi, SpringerLink.
* Layered Naming Architecture - lição de Novas Tecnologias de Internet da Wikiversidade.