Atilla
@Atilla

Как надежно передать данные между двух компьютеров через NAT?

Есть задача: нужно передавать видеопоток по RTP используя gstreamer и передавать сырые данные по TCP от одного компьютера сидящего за NAT/firewall к другому компьютеру сидящему за NAT/firewall. Имеется внешний сервер с белым адресом. И хорошо бы без надобности не загружать этот сервер.

Вопрос: как решить эту проблему надежнее всего?
Будет хорошо, если это будет библиотека на python для сервера и клиентов.
  • Вопрос задан
  • 447 просмотров
Решения вопроса 1
Вам нужен протокол STUN - он использует внешний сервер только для установления соединения, а дальше обмен идет "точка-точка". Можете поискать его готовые реализации, либо разработать что-то самостоятельно по его подобию.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
leahch
@leahch
3D специалист. Dолго, Dорого, Dерьмово.
Есть gstreamer-rtsp-server, библиотека для gstreamer. В ней, если взять исходники, есть пример для rtsp/rtp proxy. На его основе можно сделать свой прокси, который будет жить на белом сервере.
https://github.com/GStreamer/gst-rtsp-server/tree/...
Ответ написан
@silverjoe
> Вопрос: как решить эту проблему надежнее всего?
OpenVPN с шифрованием.
Ответ написан
@sled
1. Получить внешний IP адрес и порт для ПК1 и ПК2
2. Через общий аккаунт соцсети (ВК) обменяться IP адресами и портами
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы