Как решить кратчайший путь в ячеистой сети?

В настоящее время я работаю над проектом со своим другом, имеющим много узлов в сети, и хотел бы адаптировать его из p2p в ячеистую сеть.

Некоторые сведения о приложении:

  • мы не делаем ничего сложного, мы только начинаем с клиента чата, отправляя сообщения отдельным лицам или группам.
  • независимость от языка (я пишу своего "клиента" на ruby, а мой друг пишет его на python)
  • в настоящее время у нас есть прослушивающий сокет (который всегда активен), и только открытые сокеты для отправки, поэтому нет соединения "всегда включено" со всеми нашими узлами (хотя из вики кажется, что они предпочитают постоянные соединения)
  • Я также читал это о масштабируемой маршрутизации от источника, но он более или менее излагает "а" алгоритм и не обязательно определяет какой-либо протокол для связи.

Итак, мои вопросы:

  • Какой лучший (или сравнительный) сетевой протокол (ы) для поиска кратчайшего пути? (Я знаю, что есть пара, определенная IEEE и другими)
    • Допустим, вы хотите отправить сообщение тому, к кому вы не подключены напрямую
      • у вас есть список всех узлов в сети и поиск, какой из ваших подключенных узлов имеет кратчайший путь к намеченному целевому узлу? - будет ли это означать, что при каждом изменении сети вам придется обновлять график каждого узла сети?
      • в качестве альтернативы, будет ли у узла просто список, какой из его подключенных узлов имеет кратчайший путь к желаемому месту назначения? (таким образом ответственность за кратчайший путь ложится на следующий в линии узел)?
  • Как вы решаете, с какими соседними узлами поддерживать соединения?

Спасибо!

0 ответов

Другие вопросы по тегам