Não probabilísticos

Em muitas aplicações, as principais causas atreladas à desconexão da rede não são fenômenos naturais ou outros eventos imprevisíveis. Por vezes, DTNs podem depender de algum nó com intervalos de funcionamento específico ou de pontos móveis que podem ser deslocados em solo para se conectar a sub redes distintas. Ou ainda, a rede pode tornar-se conectada apenas no momento em que um satélite está apontado na direção da Terra e a próxima oportunidade de transmitir dados se dará após ele completar mais uma volta em torno de um corpo celeste. Para todos esses casos, as janelas de tempo nas quais a rede encontra-se em plena operação são bem definidas e bem comportadas. Mesmo que não possamos escolher o horário em que a próxima oportunidade de rotear pacotes adiante irá ocorrer, como é o caso de uma missão espacial, ainda é possível calculá-lo com certas acurácia e precisão. De maneira análoga ao momento em que a oportunidade de transmissão ocorrerá, também é possível prever a duração dessa janela de tempo.

Nessas circunstâncias, é possível utilizar algoritmos de roteamento que otimizem a escolha de pacotes, a ordem em que serão transmitidos e em quais rotas, baseando-se que as informações sobre conexões futuras estão corretas. Tais algoritmos, que podem contar com certo grau de confiança sobre as informações de conexões e atrasos na rede, são chamados de algoritmos não probabilísticos, ou algoritmos determinísticos.

Algoritmos não probabilísticos não restringem-se em considerar apenas as informações de conexão e atraso do próximo salto. Por exemplo, se um nó da rede identifica que, daqui a três saltos, um pacote A terá que aguardar mais 5 horas para ser transmitido para o salto seguinte enquanto o pacote B poderá ser transmitido imediatamente por, pode ser dada preferência à transmissão de B em detrimento de A. Adicionalmente, tal roteador pode computar uma previsão de quanto tempo A levará para chegar ao salto em que ficará armazenado por 5 horas e obter em qual momento ele deverá começar a transmitir A para o próximo salto para que A chegue no momento em que há oportunidade ser transmitido até o destino. Até tal instante, o roteador pode se ocupar de transmitir todos os outros pacotes, que não precisarão aguardar tanto tempo. Quando momento de transmitir o pacote A adiante chegar, ele pode dar a A maior prioridade do que os demais pacotes.

Roteadores podem, também, otimizar suas rotas com base em informações que possuem sobre toda a rede. Um salto A->B que passa por um enlace extremamente veloz seria preferível em relação a, por exemplo, a dois saltos A->X->B passando por enlaces mais lentos, caso não os intervalos de conexão na rede não fossem determinísticos ou conhecidos. No entanto, algoritmos determinísticos de DTN são capazes de, caso detectado que a próxima A->B ocorrerá após muito tempo e A->X->B apresentam oportunidades mais próximas do presente, a decisão pela rota A->X->B pode ser tomada, se calculado que o atraso maior continue entregando os pacotes ao destino em um instante anterior ao que tivéssemos se fosse escolhido A->B.

Exemplo de topologia com atrasos diferentes entre nós


Exemplo de topologia com atrasos diferentes entre nós. Ao conhecer esse atraso, o algoritmo pode, por exemplo, priorizar o envio de pacotes para nós do outro lado a faixa de intermitência (em azul) em detrimento a nós na mesma componente conexa.
Imagem extraída de researchgate.net.