Arquitetura DTN

Como foi dito na introdução, para que duas redes diferentes se comuniquem é necessário que haja um agente fazendo o intermédio da comunicação.

Redes Regionais

Na arquitetura DTN é usado o conceito de regiões que define a área de atuação de redes com características de comunicação homogêneas. A rede DTN é construída como uma rede overlay em cima das redes regionais, que são redes diferentes, com características distintas. A rede DTN provê interoperabilidade entre as redes regionais, servindo como uma espécie de buffer para acomodar as diferentes latências entre as redes e possíveis falta de conectividade. Com isso a DTN também pode resolver os problemas de mobilidade e bateria limitada de dispositivos sem-fio.

Figura 1. Exemplo de redes regionais interconectadas por uma rede DTN (*)


Comutação de Mensagens

A rede DTN é uma rede de comutação de mensagens, diferentemente da Internet que é baseada em comutação de pacotes. A comutação de mensagens não foi desenvolvida agora, ela é uma das formas mais simples de se trocar mensagens e é usada até hoje em muitos lugares como, serviços de correio, e-mail e correio de voz. Uma mensagem numa rede DTN pode ser um bloco de inteiro de dados de um aplicativo ou um segmento dele. A comutação de mensagens da rede DTN é do tipo store-and-foward, ou seja, ela primeiro recebe toda a mensagem, guarda em um buffer e depois encaminha para o próximo nó ou destino. A figura abaixo ilustra melhor esse processo.


Figura 2. Comutação de Mensagens Store-and-Foward (*)


A comutação de mensagens embora seja muito simples, exige que os responsáveis por encaminhar as mensagens - os roteadores e gateways - tenham de possuir grande capacidade de armazenamento. Isso porque as mensagens têm que ser armazenadas por completo até que seja possível encaminhá-las. Esse tipo de armazenamento é dito persistente em oposição ao armazenamento feito em roteadores convencionais da Internet, que guardam os pacotes em chips de memória de curto prazo, por tempos da ordem de milisegundos, até que os pacotes sejam encaminhados. Os roteadores DTN precisam de armazenamento persistente pelos seguintes motivos:
  • A comunicação com o próximo salto pode ficar indisponível por um grande período de tempo.
  • Um dos nós da comunicação pode enviar dados muito mais rápido que o outro.

  • O receptor da mensagem encaminhada pode detectar um erro e pedir a retransmissão dela.
Por armazenar as mensagens por inteiro, a técnica de comutação de mensagens pode avisar ao próximo salto os requisitos de banda e tamanho livre necessário em memória para armazenar a mensagem nos nós intermediários.
Outro problema que também é resolvido com a comutação de mensagens é o da conectividade intermitente. Para ilustrar esse cenário, considere uma comunicação interplanetária entre a Terra e Marte, aonde os dispositivos têm limitação de bateria e por isso não podem ficar tentando enviar mensagens o tempo todo. O cenário está mostrado na figura abaixo.



Figura 3. Comunicação Interplanetária (*)
 

O que a rede DTN faz no caso de conectividade intermitente, como é o caso da figura acima, é esperar até que o link seja restabelecido e então envia a mensagem. Se fosse utilizado o TCP/IP, por exemplo, o que iria acontecer é que o mecanismo de janelas deslizantes do TCP iria diminuindo, em decorrência dos erros que aconteceriam, até eventualmente devido ao tempo de inatividade do link dar um timeout e encerrar a seção.

Contatos Oportunistas

Contatos oportunista são contatos que acontecem sem estarem previamente combinados. Suponha que uma pessoa deseje falar algo com outra, mas por algum motivo não consegue se comunicar com ela. Se, por sorte essas pessoas se encontrarem fisicamente no centro da cidade, elas vão ter a oportunidade de se comunicarem, e como existe o interesse de uma delas de fazê-lo, então ela o fará. Isto é considerado um contato oportunista, já que nenhuma das pessoas havia marcado um encontro com a outra. Esse é um exemplo que pode acontecer entre ser humanos, no entanto, hoje em dia está cada vez mais comum este tipo de contato acontecer entre dispositivos eletrônicos sem-fio. Imagine que uma pessoa programou seu PDA (Personal Digital Assistant)  para fazer o download de um arquivo. Porém no momento em que o indivíduo programou o seu PDA ele não tinha como acessar a Internet. Dessa maneira, uma vez que o PDA está programado, assim que ele tiver a oportunidade de se conectar com um ponto de acesso e baixar o arquivo, ele o fará. A figura abaixo ilustra outros tipos de contato oportunistas entre dispositivos móveis.


Figura 4. Contatos Oportunistas (*)


Contatos Agendados

Os contatos agendados são aqueles nos quais as entidades que desejam se comunicar sabem de alguma forma quando o contato ocorrerá. Novamente pensando em comunicação espacial, pode se contar com a previsibilidade do movimento dos corpos celestes para prever quando haverá uma janela de comunicação disponível. No entanto não basta poder prever quando o contato ocorrerá, também é necessário que os nós estejam sincronizados para realizarem a comunicação. Outro fator importante é que, não necessariamente a mensagem tem que ser enviada diretamente para o destino final, mas pode ser enviada para um nó intermediário que por sua vez tem condições de encaminhar a mensagem para o destino final. A figura abaixo ilustra um contato agendado.

Figura 5. Contato Agendado (*)

Na figura acima o nó origem envia uma mensagem para um nó intermediário, antes que este estivesse na sua linha de visada direta. Como ele sabe que o tempo necessário para a mensagem atingir o seu destino é suficiente para que o nó intermediário se posicione de forma a poder receber a mensagem, a comunicação ocorre com sucesso. Após o nó intermediário receber a mensagem ele a armazena e encaminha para o destino final, com o qual ele possui uma conexão direta.

Camada de Empacotamento (Bundle Layer)

Esta é a principal diferença entre as redes DTN e a Internet. A camada de empacotamento é uma camada específica da rede DTN e que não existe na Internet. Ela é quem possibilita a solução dos problema citados no início desta página. A camada de empacotamento se situa acima das camadas heterogêneas e especificas de cada região. Com isso é possível conectar aplicações que estão em regiões diferentes e que possuem camadas inferiores distintas, cada uma com as suas características. A figura abaixo ilustra a posição da camada de empacotamento.

Figura 6. Representação das Camadas (*)

Desde de o início desta página menciona se a transmissão de mensagens entre as redes DTN, porém existe uma camada de empacotamento ao invés de uma camada de mensagens. Bem, o que acontece é que os "pacotes" criados pela camada de empacotamento são as mensagens que vêm sendo citadas durante todo este documento. Portanto é na camada de empacotamento que são "criadas" as mensagens.
A camada de empacotamento também é a responsável por armazenar e encaminhar (store-and-foward) as mensagens entre as redes DTN. Ela é a mesma em todas as redes das diferentes regiões. Porém as camadas inferiores a ela, são específicas para cada região e devem ser as mais apropriadas possíveis para o ambiente de cada região.

Pacotes DTN (mensagens) e Empacotamento

As mensagens ou pacotes DTN, consistem em três itens:
  1. Dados do aplicativo de usuário

  2. Informação de controle do aplicativo de usuário

  3. Cabeçalho de Empacotamento DTN, adicionado pela Camada de Empacotamento
Assim como os dados do usuário, pacotes DTN podem ter tamanho arbitrário. Os pacotes DTN são mais uma extensão na hierarquia de encapsulamento dos dados do usuário realizada pelos protocolos da Internet, por exemplo. Abaixo pode se ver como fica a hierarquia de encapsulamento dos dados do usuário com a camada de empacotamento.





Existe a possibilidade de uma mensagem DTN ser quebrada em fragmentos, assim como acontece com os datagramas IP, e a camada de empacotamento é a responsável por fragmentar e juntar novamente os fragmentos.
O protocolo usado pelas redes DTN é um protocolo não-conversacional (não-interativo), isto é, as camadas de empacotamento homólogas comunicam se usando sessões simples, com pouco ou nenhum tipo de troca de parâmetros para estabelecimento de conexão e reconhecimento. Qualquer tipo de reconhecimento ou estabelecimento de conexão é opcional e depende da classe de serviço desejada. É necessário que a utilização de reconhecimento seja opcional, pois as condições dos ambientes aonde as DTNs ficam inseridas podem ser muito hostis e devido à grandes atrasos ou até mesmo falta de conectividade, a espera por uma mensagem de reconhecimento ou troca de parâmetros torna se inviável. Isto não impede que os protocolos abaixo da camada de empacotamento sejam conversacionais, como o TCP. A figura abaixo ilustra o conceito descrito acima.


Figura 8. Estrutura DTN (*)

Nós DTN

Nas redes DTN um nó é uma entidade que possui uma camada de empacotamento. Um nó pode ser um host, roteador ou gateway (ou alguma combinação destes) e atuar como fonte, destino ou encaminhador de mensagens. 
  • Host - Envia e/ou recebe mensagens, mas não as encaminha. Um host pode ser uma fonte ou destino de uma transferência de mensagens. A camada de empacotamento dos hosts que operam em links com grandes atrasos requerem armazenamento persistente para quando não for possível transmitir imediatamente a mensagem ela possa ser armazenada para futura transmissão. Os hosts podem opcionalmente implementar transferência em cústodia (ver abaixo).
  • Roteador - Encaminha mensagens dentro de uma única região DTN e pode ser eventualmente um host. A camada de empacotamento dos roteadores que operam em links com grandes atrasos requerem armazenamento persistente para quando não for possível encaminhar imediatamente a mensagem ela possa ser armazenada para futuro encaminhamento. Os roteadores podem opcionalmente implementar transferência em cústodia.





  • Gateway - Encaminha mensagens entre duas ou mais regiões DTN e pode eventualmente ser um host. As camadas de empacotamento dos gateways devem possuir armazenamento persistente e suportar transferência em custódia.


    Figura 9. Pilha de Protocolos (*)


    Funcionamento DTN

    A partir de agora será mostrado o funcionamento das redes DTN. O tipo de mais básico de transmissão de mensagens numa rede DTN é o envio de mensagem sem a necessidade de qualquer reconhecimento ou classe de serviço. A fonte apenas envia a sua mensagem para o próximo nó. Outros tipo de classe de serviço são:






    • Transferência em Custódia (ver abaixo)
    • Confirmação de recepção da mensagem - confirmação para a fonte ou responsável pela retransmissão da mensagem, de que a mensagem foi recebida pela aplicação de destino.
    • Notificação de aceitação de custódia - notificação para a fonte ou responsável pela retransmissão da mensagem, toda vez que um nó aceitar ser o novo custodiante de uma mensagem.
    • Notificação de encaminhamento - notificação para a fonte ou responsável pela retransmissão da mensagem, toda vez que a mensagem for encaminhada.
    • Prioridade de entrega - muito volume de dados (pouca prioridade), normal (média prioridade) e importantes (alta prioridade).
    • Autenticação - Indica o método de autenticação, se for especificado algum (e.g. assinatura digital) este será usado para verificar a autenticidade da fonte e a integridade dos dados.





Para resolver o problema de diferença entre as latências das regiões, as redes DTN realizam a terminação dos protocolos de transporte, que ocorre na camada de empacotamento dos roteadores e gateways. Já que os protocolos de transporte (e.g., TCP) são os responsáveis pela garantia da confiabilidade na comunicação fim-a-fim, e é a confiabilidade na comunicação, exatamente um dos desafios encontrados nos ambientes aonde as redes DTN se propõem a situar. Com isso, a camada de empacotamento age como substituta da camada de transporte na função de garantir a comunicação fim-a-fim. Essa medida, de terminar os protocolos de transporte, faz com que as camadas inferiores à camada de empacotamento que se situam em redes de baixa latência fiquem isoladas de seus pares homólogos em outras redes com alta latência. Resolvendo assim o problema de atraso.
A camada de empacotamento suporta sozinha a troca de mensagens fim-a-fim. As mensagens são tipicamente entregues separadamente, de um nó para o próximo, independentemente das outras mensagens, exceto mensagens de resposta opcionais. Mesmo que as mensagens sejam quebradas em fragmentos, como já foi dito acima que pode acontecer, elas viajam independentemente uma da outra.

Transferência em Custódia

Quando é necessário um maior grau de confiabilidade na transmissão de mensagens, podem ser usadas as transferências em custódia. Esse tipo de transferência ocorre entre camadas de empacotamentos de nós sucessivos no caminho da mensagem, da seguinte forma: a camada de empacotamento custodiante da mensagem envia a mensagem para a próxima camada de empacotamento e inicia um temporizador para esperar uma mensagem de reconhecimento. Se a camada receptora da mensagem aceitar ser a nova custodiante da mensagem, então ela envia de volta um reconhecimento positivo. Caso o tempo de espera pelo reconhecimento expire antes do transmissor receber o reconhecimento, o transmissor envia novamente a mensagem. O tempo de espera pelo reconhecimento pode ser distribuído para os nós através das informações de roteamento ou localmente através de experiências passadas em transmitir para o próximo nó. O custodiante da mensagem deve armazenar a mensagem até que outro nó aceite ser o novo custodiante da mensagem ou o tempo de vida da mensagem expire. As transferência em custódia não garantem confiabilidade, a não ser que a fonte peça a confirmação da entrega da mensagem. Em poucas palavras o conceito por trás das transferências em custódia é delegar para o próximo nó a responsabilidade de retransmitir a mensagem até que está atinja o seu destino, o que pode ser considerado uma maneira, ainda que não muito boa, de garantir confiabilidade.


Figura 10. Transferências em custódia (*)

Com as transferências em custódias existe a possibilidade da diminuição do número de saltos necessários para atingir o destino final de uma mensagem, já que os custodiantes da mensagem podem estar em movimento, indo em direção ao destino final. Além de diminuir o número de saltos, essa técnica também possibilita um menor sobrecarregamento da rede. Outro benefício trazido por essa característica é a que as redes com muitas dificuldade para transmissão de dados, tais como redes com grande latência e links instáveis, acabam conseguindo um aumento na vazão. A figura abaixo ilustra exatamente a idéia acima.



Figura 11. Pontos de retransmissão em movimento (*)


Roteamento em Redes DTN

A diferença entre o roteamento em redes DTN e a Internet (TCP/IP) é que a mensagem precisa chegar até a camada de empacotamento para ser roteada, diferentemente da Internet aonde o pacote IP só chega até a camada de rede. Por esse motivo, os roteadores e gateways DTN precisam implementar todas as camadas até a camada de empacotamento. Outro detalhe é a diferença entre os roteadores e gateways DTN, nos roteadores as camadas abaixo da camada de empacotamento possuem os mesmo protocolos, uma vez que pertencem a uma mesma região DTN, já os gateways DTN podem ter camadas inferiores diferentes. Isso pode ser observado na figura abaixo.

Figura 12. Roteamento Internet x Roteamento DTN (*)


Nomes e Endereços

Nas redes DTN o endereço é composto de duas partes. A primeira identifica unicamente a região a qual o nó pertence, e a segunda parte é um identificador do próprio nó também chamado de entidade. O roteamento entre regiões se baseia somente nos identificadores de entidade, que são ligados ao seu correspondente endereço somente naquela região. Portanto, cada região usa um mapeamento diferente entre entidades e endereços e não é necessário que as regiões fiquem trocando seus mapeamentos entre si, economizando banda passante.
Gateways pertencem a pelo menos duas redes, e por isso, possuem múltiplos IDs de região. IDs de região usam a mesma sintaxe de nomes que o DNS (Domain Name System) da Internet.

Segurança

Atualmente, a maioria dos métodos de segurança em redes é baseada em autenticar os usuários e a integridade das mensagens. No entanto os roteadores que encaminham as mensagens não são autenticados. Nas redes DTN os roteadores e gateways também têm que ser autenticados, conservando a rede, o mais cedo possível, de ficar trafegando informações não autorizadas. Criptografia assimétrica, chaves públicas, é usada nas redes DTN, e também autoridades certificadoras (CA). Abaixo está um exemplo de como isto pode ser feito:





  1. O usuário envia a sua mensagem, juntamente com a assinatura da mensagem, para o nó adjacente. Se o nó adjacente ainda não tiver o certificado do usuário ele o obtém através do próprio usuário ou de uma CA.









  2. O primeiro nó adjacente ao usuário que enviou a mensagem, verifica a identidade do usuário. Se estiver correta, o nó adjacente coloca a sua assinatura na mensagem e manda para o próximo nó.









  3. Cada nó no caminho da mensagem verifica apenas a assinatura do nó anterior e depois coloca a sua, se tudo estiver correto, até que a mensagem chegue ao destinatário.



    Figura 13. Esquma de Segurança DTN (*)