1. Introdução:
- Nomes, endereços e identificadores desempenham papéis essenciais em sistemas de computador, usados para compartilhar recursos, identificar entidades de forma única e referenciar localizações.
- A resolução de nomes permite que um processo acesse a entidade nomeada, sendo fundamental para o funcionamento dos SD.
- Objetivo em SD: permitir que entidades sejam conhecidas e acessadas independente dos seus endereços.
2. Nomes, Endereços e Identificadores:
- Nomes: Sequências de caracteres usadas para referir-se a entidades.
- Endereços: Pontos de acesso das entidades.
- Identificadores: Strings de bits que identificam de forma única uma entidade.
- Identificadores verdadeiros são independentes de localização e garantem a referência única a uma entidade.
- IP (192.168.1.1) -> MAC (00-1B-63-84-45-E6)
Host name (serv01.company.com) -> IP (23.214.165.132)
Service (ftp) -> Port (21)
3. Nomeação Simples (Flat):
- Para resolução de identificadores (nomes simples, não estruturados, não contendo nenhuma info sobre como localizar endereço da entidade) para endereços.
- EX: Nome de Serviço (www, ftp, rpc)
- Broad/Multicasting: tipicamente usada em redes do tipo LAN. O host envia uma mensagem de broadcast (para todos os hosts da rede) com a consulta (query) para resolver um dado nome. O host que tem esse nome responde diretamente para o requisitante com o seu endereço Ex: resolução IP->MAC, via protocolo ARP, em que um host deseja obter o MAC address para um dado endereço IP
- Forwarding Pointers: quando uma entidade move de um host A para um host B, esta deixa uma referência no host A para o seu novo endereço (B), de forma que todas as consultas de resolução destinando a entidade no host A retornarão o ponteiro para seu novo destino. Nesse método, a resolução de nome ocorre por meio de um processo recursivo.
- Native Location: cada host móvel usa um endereço IP fixo. A comunicação é inicialmente direcionada ao home agent (HA) do host móvel. O HA encaminha o tráfego para o endereço temporário (care-of address) do host móvel.
- Distributed Hash Table (DHT): Um sistema distribuído que fornece um serviço de lookup. As entidades são mapeadas para chaves em um espaço de identificadores, e cada nó na rede é responsável por uma faixa de identificadores. Exemplo: Chord, onde cada entidade com chave k é gerenciada pelo nó com a menor identificação id ≥ k.
- Chord: usa um espaço de identificação de m bits para atribuir identificadores aleatórios aos nós e chaves de entidade. Cada nó mantém uma tabela de dedos (finger table) para rotear consultas. A consulta por uma chave k é direcionada ao nó q com o índice j na finger table do nó p. Ele oferece uma resolução de chave eficiente em O(log N), onde N é o número de nós no sistema.
4. Nomeação Estruturada:
- Organização hierárquica de nomes em namespaces. Usa-se um grafo direcionado com nós de diretório e folhas para representar entidades e diretórios. Resolução de nomes inicia-se a partir de um ponto de fechamento conhecido. Aliases e montagem de namespaces permitem a combinação de diferentes namespaces.