Я хочу развернуть приложение на мобильных устройствах, участвующих в специальной сети Wi-Fi, что повышает надежность информации. Основная задача довольно проста: отправка данных (может быть большего размера) с узла S (источник) на узел D (пункт назначения). Вот мой пример топологии:
--- N1 ---
/ | \
/ | \
S ----- N2 ----- N4 ----- D
\ | /
\ | /
--- N3 ---
Просто используя TCP, я могу установить надежный канал связи от S через N2 и N4 до D. Это нормально.
Моя проблема сейчас: я хочу, чтобы N1 и N3 могли также получать (подслушивать) сообщения, отправленные S, N2 и N4, но им не нужно получать их надежно. Вы можете думать об этом как о потоке пакетов. Например, S хочет отправить пакет на D. Но этот пакет также может быть полезен для N [1-4] - и поэтому должен храниться.
Это, конечно, возможно при использовании беспорядочного режима WiFi на всех узлах, но это было бы излишним - потому что это означало бы, что каждый узел должен был бы проанализировать все пакеты, чтобы увидеть, могут ли они их сохранить.
Простым решением будет отправка пакетов UDP:
- S отправляет широковещательный пакет UDP с временем жизни от 1 до N2 с дополнительной информацией.
- N1, N2 и N3 могут принимать и сохранять пакет, но только N2 повторно отправляет информацию в N4.
- Это поведение повторяется, пока D не получит пакет.
Но тогда мне нужно каким-то образом переопределить TCP с точки зрения упорядочения пакетов, контроля перегрузки и надежной связи - что плохо.
Итак, мой вопрос: знаете ли вы о протоколе, который поддерживает это поведение?