# Novas Tecnologias de Internet/I3

A Infra-estrutura de Indireção para a Internet (Internet Indirection Infrastructure ou I3) é uma rede sobreposta (overlay network) de propósito geral para facilitar a implantação de serviços como multicast, anycast e mobilidade. Ao invés de enviar pacotes explicitamente para o destinatário, cada pacote é associado a um identificador (rótulo), o qual é usado pelo receptor para receber o pacote. Este nível de indireção introduzido pela rede i3, portanto, desacopla o ato de enviar do ato de receber e permite que a rede suporte uma variedade de serviços de comunicação.
Este modelo de serviços pode ser visto como uma abstração do modelo de comunicação baseado em Rendezvous. Pacotes formam um par (id, dados) onde id um identificador de m bits e dados consiste da carga útil do pacote. Para indicar seu interesse nos pacotes, os receptores usam "gatilhos" (triggers) na forma (id, addr), onde id representa o identificador do gatilho e addr representa o endereço de uma estação, consistindo de um endereço IP e uma porta. Um gatilho (id, addr) é "registrado" na rede i3 para indicar que todos os pacotes com um identificador id devem ser encaminhados (no nível IP) pela rede i3 para a estação identificada como addr.
Baseado neste modelo, a criação de um grupo multicast, por exemplo, é equivalente a fazer com que todos os interessados no grupo registrem "gatilhos" com o mesmo identificador. A proposta da rede i3 também inclui uma forma mais complexa de pacotes e gatilhos com empilhamento de identificadores (ao invés de um simples identificador), como meio para suportar níveis adicionais de indireção e permitir a implantação de outros serviços.
A rede i3 trata a mobilidade das estações e consegue manter a conectividade fim-a-fim entre as estações móveis da seguinte forma. Quando uma estação se move de uma sub-rede para outra e troca o endereço E1 para outro endereço E2, ela deve atualizar os gatilhos de (id, E1) para (id, E2). A estação emissora não precisa tomar conhecimento da mobilidade do receptor, uma vez que os pacotes são roteados com base no identificador. Dessa forma, ambas as estações emissora e receptora podem se mover simultaneamente. A proposta não discute o mecanismo para troca o endereço E1 para outro endereço E2 durante a mobilidade, pois esta é uma questão tratada no nível IP.
Quanto ao seu funcionamento, a rede i3 consiste de um conjunto de servidores e sistemas finais. Os servidores que armazenam gatilhos e encaminham pacotes (usando IP) para outros servidores i3 e para sistemas finais. Identificadores e gatilhos possuem significado apenas na rede i3 e cada servidor armazena um subconjunto de gatilhos. Em um determinado instante, um gatilho está armazenado em apenas um servidor e cada sistema final conhece um ou mais servidores. Sistemas finais contactam a rede i3 apenas para enviar pacotes ou inserir gatilhos.
Quando uma estação deseja enviar um pacote, ele o encaminha para um dos servidores conhecidos e se o servidor contatado não contém um gatilho que dispara a entrega do pacote para alguma estação interessada, o pacote é encaminhado para outro servidor. Este processo continua até que o pacote alcança um servidor que armazena um gatilho que casa com o pacote, quando então o pacote é entregue ao sistema final através do IP. Para saber para qual estação encaminhar o pacote, a rede i3 usa DHT para indexar o identificador (os autores usaram o esquema de busca Chord, mas argumentam que outros mecanismos como CAN, Pastry, Tapestry ou outros podem ser usados). Dessa forma, o pacote é encaminhado pela rede i3 até o servidor responsável pelo identificador. No nível d roteamento IP, nenhuma mudança é necessária. É importante mencionar que a rede i3 não armazena pacotes: ela apenas os encaminha. A rede i3 provê um serviço do tipo "melhor esforço", tal como na Internet atual, e não implementa confiabilidade sobre a rede IP.
Na Internet atual um nome DNS é mapeado para uma estação como o resultado de uma consulta explícita que precede transferência Na rede i3, o mapeamento identificador estação é integrado e automático (não requer consult explícita): quando uma estação deseja acessar outra, o identificador do receptor pode ser obtido através de um hash sobre o nome DNS (ou URL ou uma chave publicamente conhecida) associado ao receptor. Dessa forma, o envio do pacote consiste em computar o identificador do receptor e encaminhar para um servidor i3. Uma implementação da rede i3, feita pelos autores da proposta, usa um identificador de 256 bits, dos quais 128 são usados pela aplicação e demonstrou-se que esta escolha é suficiente para obter hashes disjuntos, com baixa probabilidade de colisão (ou seja, que aplicações em estações diferentes obtenham o mesmo identificador). Por se tratar de uma rede de sobreposição, não há necessidade de mudança no endereçamento do nível IP e a implantação da rede i3 em escala da Internet poderia se dar de forma gradativa e incremental.
* Esta página é somente um esboço. Ampliando-a você ajudará a melhorar a Wikiversidade.