REDES TOLERANTES A ATRASO OU DESCONEXÕES (DTNs)

EEL879 - REDES DE COMPUTADORES 2 - 2023.2

Aqui temos a explicação de o que é e como se usam as DTNs. Esse trabalho foi feito pelos seguintes alunos:

  • Filipe Braga Ferreira
  • Pedro Francisco Ignácio Achcar
  • Tiago Borzino Rocha

  • INTRODUÇÃO

    As Redes Tolerantes a Atrasos e Desconexões (DTNs) combinam um conjunto de protocolos padrão que usa informações que trafegam no fluxo de dados (como cabeçalhos) para realizar entregas de dados de forma fim-a-fim entre os nós da rede. Por meio de uma abordagem “store-and-forward” nos nós da rede, as DTNs permitem a entrega de dados em condições adversas como:

  • Desconexões
  • Atrasos na transmissão
  • Taxas de transmissão variáveis pelo caminho
  • Por que a internet como conhecemos não serve nesses casos?

    O TCP/IP (Transfer Control Protocol/Internet Protocol) é normalmente caracterizado por conexões com baixa latência de propagação, grandes taxas de transmissão, comunicação bidirecional e conectividade fim-a-fim contínua. Essas características conflitam com as particularidades das situações em que redes tolerantes a atrasos são utilizadas uma vez que estas são empregadas em situações em que pode se verificar atrasos de minutos até dias, conectividade intermitente entre diferentes nós da rede, taxas variáveis de transmissão em um mesmo nó, conectividade unidirecional e apagões de energia em nós.

    O funcionamento dessas redes pode ser comparado a outros tipos que estamos acostumados a lidar; essa é uma estratégia didática para observar semelhanças e diferenças em relação a protocolos já estudados. A seguir, serão avaliados mais alguns exemplos de aplicações onde as DTN's fazem sentido, observando especificamente os diferentes tipos de conexões que podem ser feitas usando esta abordagem.


    TIPOS DE CONEXÃO DTN

    A conexão DTN não é necessariamente bidirecional como no TCP/IP. Se considerarmos um conjunto de tipos de sensor conectados a uma rede como esta, sua função pode não exigir o recebimento de mensagens, apenas um envio periódico de dados, ou mesmo um envio que sequer tenha uma taxa de transmissão específica. Essa aplicação ilustra a necessidade de redes como essa abarcar diversos tipos de conexões.

    Dentre os tipos de conexão DTN, podemos citar:

  • Conexão persistente: uma conexão que está sempre disponível. Um exemplo seria uma conexão internet
  • Conexão sob demanda: uma conexão que é iniciada por um pedido de comunicação de uma entidade com outra, e se torna uma conexão persistente até que ela seja encerrada. Um exemplo de conexão sob demanda é uma chamada telefônica
  • Conexão agendada: uma conexão que é iniciada em um horário pré-determinado por um tempo limitado, respeitando um acordo previamente estabelecido entre as duas entidades. Um exemplo são conexões com satélites em órbita
  • Conexão oportunística: Uma conexão que é estabelecida em uma oportunidade inesperada. Um exemplo são conexões Ad-Hoc
  • Conexão prevista: Uma conexão que é estabelecida em um dado instante de tempo tprevisto, para um contato Dprevisto, calculado usando como base informações estatísticas que provém confiança elevada de que uma comunicação de sucesso será feita naquele momento e durante aquele contato. Recursos são alocados para esse conexão, sempre levando em conta a probabilidade de que não será feita com sucesso ou sequer estabelecida

  • PROTOCOLO DE AGREGAÇÃO

    Funcionamento básico

    A construção dos pacotes que transitam nessas redes é feito através do Protocolo de Agregação (Bundling Protocol). Como o próprio envio de informações não é feito sobre uma linha direta entre fonte e destino; a informação em si, os metadados, demais informações de controle e mecanismos de segurança são todos agregados em uma única mensagem a ser enviada pela rede. A essa mensagem dá-se o nome de agregado (bundle).

    Regiões

    Um caminho em uma rede DTN pode passar por nós em diversas regiões - esse nome é dado para áreas da rede que possuem seus próprios protocolos e padrões. Em cada região podem haver tantos saltos quanto forem necessários, a depender da distância entre os nós, de seu alcance, etc.

    Além disso, ao transitar pelas regiões, é necessário que os agregados passem pelos chamados Nós de Gateway, que ficam na fronteira entre elas. Tais nós precisam ter uma interface para se comunicar com os protocolos específicos de cada tipo de região, adequando os agregados para cada uma delas.

    Fragmentação

    Como é possível que os agregados trafeguem ao longo de diferentes regiões com diferentes especificações, pode ser que seja necessário fragmentar o agregado devido à possíveis limites de tamanho para diferentes regiões do percurso. Um outro motivo que pode requerer a fragmentação de bundles é a capacidade do canal de transmissão ser limitada, de forma que se torna impossível transferir o agregado sem reduzir seu tamanho, diminuição conseguida através do uso da fragmentação.

    Em redes tolerantes a atrasos e desconexões são definidos dois tipos de fragmentação. A fragmentação proativa é feita antes da abertura de uma conexão que possui capacidade de canal conhecida assim como sua duração. A segunda definição é a fragmentação reativa, que ocorre quando camadas inferiores indicam que apenas parte de um agregado será transmitido.

    No cabeçalho do agregado existe um campo “Fragment Offset” que indica o offset e sua posição relativa ao bundle original. Além disso, fragmentos de um agregado são apenas desfragmentados no destino final utilizando como informações de identificação os EIDs (Endpoint Identifiers - identificadores dos nós da rede) de quem envia e de quem recebe e a hora de criação do agregado. Como não existem regras e convenções sobre a rota que os fragmentos de um determinado agregado devem seguir, é possível que diferentes fragmentos sejam tratados por diferentes nós ao longo da trajetória até o destino final.


    TRANSFERÊNCIA DE CUSTÓDIA

    Com os agregados (bundles) gerados e fragmentados, eles estão prontos para serem enviados através da rede. O mecanismo da transferência de custódia é aquele responsável por garantir com confiabilidade a característica store-and-forward que está presente nos nós da rede, conforme foi visto.

    A confiabilidade aqui funciona com a mesma ideia estudada para o TCP/IP, mas há uma grande diferença. Enquanto que no modelo comum da internet a confiabilidade é implementada com mensagens de “acknowledgements” (ACKs) da origem dos pacotes para o destino; nas DTNs, os ACKs serão enviados entre cada um dos saltos, já que cada salto é independente das conexões estarem disponíveis ou não.

    Quando a transferência de custódia é utilizada, algum nó da rede será responsável por manter o agregado salvo em memória não-volátil até que o pacote chegue em seu destino final ou ocorra uma transferência de custódia para algum outro nó. Caso algum outro nó receba a custódia do bundle em questão, ele envia a mensagem de confirmação do recebimento (ACK) para o antigo dono da custódia, permitindo que o antigo libere sua memória.

    A existência de um mecanismo como o da transferência de custódia se mostra importante para o funcionamento de redes tolerantes a atrasos, pois não existe garantia de que o nó da rede que enviou os dados esteja alcançável ou ligado a todo momento até que a entrega seja realizada.

    É importante ressaltar que nem todo nó de uma rede possui obrigação de oferecer a possibilidade de transferência de custódia, seja por questões de implementação ou políticas ou pois não possui ou está sem espaço necessário para poder armazenar novos agregados.


    PILHA DE PROTOCOLOS PARA DTNS

    Ao observar a pilha de protocolo da internet em comparação à pilha DTN, fica evidente que uma nova camada é adicionada à segunda. Na camada de agregação é executado o protocolo de agregação que foi discutido anteriormente. Esse protocolo tem funções tão específicas no contexto das DTNs que é explicitado na pilha de protocolo dessas redes.

    A figura abaixo ilustra um aspecto importante do funcionamento da tecnologia. Para que um agregado chegue ao seu destino, ele deve passar por alguns nós. Sabendo que a origem e o destino correspondem à camada de aplicação, os nós intermediários da rede vão executar os protocolos até a camada de agregação. Além disso, o percurso entre cada par de nós sempre passa por todas as camadas anteriores.

    A existência das demais camadas na pilha DTN revela que redes tolerantes a atrasos não são capazes de entregar as mensagens aos destinatários finais por si só. Nesse sentido, o protocolo de agregação depende de outros protocolos, como TCP e UDP (User Datagram Protocol), das regiões pelas quais o pacote transita para poder ser entregue ao destino final.

    As camadas abaixo da camada do protocolo de agregação, que possuem seus vários protocolos diferentes, recebem o nome de Camadas de Convergência. Dentro das camadas de convergência, existe um conjunto de protocolos específicos responsáveis por guiar os agregados DTN pelos processos pelos quais eles precisam passar dentro das respectivas regiões. Esse conjunto de protocolos recebe o nome de Adaptadores da Camada de Convergência (CLAs).

    Pilha de Protocolos DTN

    Exemplo de aplicação

    Exemplo adaptado de KHABBAZ, 2012


    CONCLUSÃO

    As redes DTN foram apresentadas com relação ao seu uso básico, e contemplando alguns aspectos da sua implementação. Dentre os pontos abordados, o Protocolo de Agregação e o conceito de Transferência de Custódia apresentam-se como peças fundamentais para o funcionamento das redes tolerantes a desconexões.

    Apesar de ter um grau maior de complexidade na implementação, a tecnologia é capaz de realizar a comunicação em cenários voláteis que antes não tinham soluções adequadas, permitindo também a integração entre outras tecnologias.

    Portanto, é importante focar nas formas de implementação de tais pontos para especializar-se na tecnologia DTN.

    Um outro assunto relevante a ser estudado sobre as DTNs, e que será coberto por outro grupo de estudos, é o roteamento. Os algoritmos de roteamento estudados até o momento atual no curso foram aplicados em redes com poucas interrupções. No cenário repleto de desconexões e interrupções das redes aqui estudadas, o cálculo das rotas precisará de alterações em seu algoritmo.


    PERGUNTAS FINAIS

    1. O que significa a sigla DTN, e do que se trata?

    DTN é a sigla em inglês para Redes Tolerantes a Atrasos ou Desconexões, e categoriza esses tipos de rede que não podem ser implementadas com protocolos comuns que se baseiam em conexões estáveis.

    2. O que a transferência de custódia garante e como ela funciona?

    A transferência de custódia é utilizada para prover confiabilidade em redes tolerantes a atrasos. Ela utiliza ACKs entre nós intermediários da rede que ficam responsáveis por guardar uma cópia do agregado em memória não volátil até que outro nó aceite a custódia do agregado e possa apagar as informações de sua memória.

    3. As conexões DTN precisam ser necessariamente bidirecionais?

    Não. As DTNs conseguem lidar com situações onde a conexão é intermitente ou unidirecional. Isso quer dizer que a comunicação pode ocorrer em apenas uma direção, sem a necessidade de uma resposta na mesma hora.

    4. O que são os agregados ou bundles? Por que não são chamados simplesmente de “pacotes”?

    Os bundles são as unidades de dados nas DTNs. Eles contêm informações como os dados em si, metadados e informações de roteamento. A característica fundamental dos bundles é que podem ser armazenados temporariamente nos nós intermediários até que uma rota de comunicação esteja disponível. Ou seja, são perfeitos para os ambientes das DTNs, onde a conexão não necessariamente é intermitente.

    5. Por que as DTN precisam de uma camada a mais na pilha de protocolos?

    Nas DTNs, a comunicação não é constante. Por isso, é fundamental ter uma camada específica de encaminhamento, essa é chamada de Camada de Agregação. Ela é necessária para cuidar de uma forma eficaz do armazenamento temporário de dados e determinar quando e como enviá-los para chegar ao destino correto no tempo correto.


    REFERÊNCIAS BIBLIOGRÁFICAS

  • K. Fall and S. Farrell, "DTN: an architectural retrospective," in IEEE Journal on Selected Areas in Communications, vol. 26, no. 5, pp. 828-836, June 2008, doi: 10.1109/JSAC.2008.080609.
  • KHABBAZ, M. J. KHABBAZ; ASSI, C. M.; FAWAZ, W. F.; "Disruption-Tolerant Networking: A Comprehensive Survey on Recent Developments and Persisting Challenges," in IEEE Communications Surveys & Tutorials, vol. 14, no. 2, pp. 607-640, Second Quarter 2012, DOI: 10.1109/SURV.2011.041911.00093.
  • Kevin Fall. 2003. A delay-tolerant network architecture for challenged internets. In Proceedings of the 2003 conference on Applications, technologies, architectures, and protocols for computer communications (SIGCOMM '03). Association for Computing Machinery, New York, NY, USA, 27-34. https://doi.org/10.1145/863955.863960
  • MONAGHAN, Heather. Delay/Disruption Tolerant Networking Overview. NASA, [S. l.], p. 1-1, 19 nov. 2020. Disponível em: https://www.nasa.gov/directorates/heo/scan/engineering/technology/disruption_tolerant_networking_overview. Acesso em: 13 set. 2023.
  • MONAGHAN, Heather. “Who Can DTN Benefit?”. NASA, [S. l.], p. 1-1, 10 dez. 2020. Disponível em: https://www.nasa.gov/directorates/heo/scan/engineering/technology/disruption_tolerant_networking_benefits. Acesso em: 13 set. 2023.
  • S. Burleigh et al., "Delay-tolerant networking: an approach to interplanetary Internet," in IEEE Communications Magazine, vol. 41, no. 6, pp. 128-136, June 2003, doi: 10.1109/MCOM.2003.1204759.