Если оба клиента (текстовые мессенджеры) находятся за NAT-ами, то как я понял, есть два варианта:
А) мессенджер делает проброс портов с помощью UPNP. Но это вроде в интернете-через-сотовый -нереально
Б) с помощью stun-сервера делается UDP прокол NAT-a. Ок, голосовой трафик идет по udp.
но как быть если надо отослать р2р (т.е. без сервера-релея) тестовое сообщение? вроде как надо делать костыли (гарантирующие доставку udp-пакетов) над протоколом udp и туда засовывать текст?
С одной стороны много мессенджеров утверждают, что гоняют текст р2р, не подключая сервер. С другой стороны для этого tcp протокол нужен, а это сложно сделать если оба за nat-ами. Скорее всего где то я ошибаюсь, но где?