Двунаправленный туннель UDP - PullRequest
0 голосов
/ 06 февраля 2020

Рассмотрим process A, который выполняет двунаправленную связь UDP с некоторыми HOST на PORT1. И IP, и PORT1 настраиваются. Более того, process A связывается с PORT1, я не могу это контролировать.

Возможно ли создать UDP tunnel, который маршрутизирует трафик c из process A из localhost в HOST, т.е. вместо оригинального

process A <-> HOST:PORT1 у нас есть

process A <-> localhost:PORT2 <-> tunnel <-> HOST:PORT1 тип связи?

Проблема, с которой я сталкиваюсь, заключается в том, что process A и tunnel связываются с одним и тем же localhost:PORT2, что приводит к ошибке Address already in use.

1 Ответ

0 голосов
/ 18 февраля 2020

Можно ли создать UDP-туннель, который направляет трафик c процесса A от локального хоста к HOST

Конечно, вы можете написать (или найти) программу, которая получает UDP-пакеты из одного местоположения и отправка их копии во второе местоположение (и наоборот).

Проблема, с которой я сталкиваюсь, заключается в том, что и процесс A, и туннель связаны с одним и тем же локальным узлом: PORT2 в результате адрес уже используется ошибка.

Ваш туннель должен привязать к порту, который процесс A отправляет пакеты на , а не к порту, который процесс A является получение пакетов на . (предположительно это разные порты, так как если бы процесс А связывал свой сокет UDP с тем же портом, на который он отправлял пакеты UDP, то он мог бы отправлять только пакеты UDP самому себе, что было бы не очень полезным делом)

Обратите внимание, что ваша удаленная программа должна быть достаточно умной, чтобы отправлять свои UDP-пакеты на порт, к которому привязана ваша туннельная программа, а не на порт, к которому привязан процесс A; в противном случае пакеты из удаленной программы будут go направляться в процесс A, а не через вашу туннельную программу.

...