Страницы

Поиск по вопросам

пятница, 10 января 2020 г.

Можно ли присоединить пользователя к другому tcp соединению, используя текущее?

#linux #tcp


Ситуация такая, что пользователь подключается к определенному адресу и порту, и я
не могу управлять его клиентом-программой, то есть повторно ещё одно соединение сделать,
потому что разорвется текущее соединение, и ему снова вручную придется подключится
уже к новому адресу, а мне нужно, чтобы он не отключался, но при этом сначала был подсоединен
к одному серверу, а потом, после того как получил с него данные, присоединился к другому,
так чтобы для него это было незаметно.
Как вариант можно сделать прокси и уже с него направлять трафик то туда, то сюда.
Но вариант с прокси не устраивает, потому что канал прокси перегрузится, а канал остальных
серверов будет почти пустовать.
Не знаю, доступно ли объяснил ситуацию. Сейчас только начинаю знакомство с сетями,
чтобы решить потом эту проблему, но даже без знаний с самого начала не понимал, как
можно иначе сделать, кроме как через прокси. Получается, клиент установил соединение
с ip сервера и портом, и, используя это соединение, я не могу сказать машине клиента,
чтобы она присоединилась к другому серверу?    


Ответы

Ответ 1



ответ из комментария: Насколько мне известно -- нет. Я знаю, что можно передать открытый сокет (файловый дескриптор) от одного процесса другому на том же хосте (через sendmsg()), но это отличается от того, что Вы описываете. По сути Вы хотите динамически управлять подменой dst-адреса установленного tcp соединения у клиента.

Комментариев нет:

Отправить комментарий