Держите сетевое соединение, хотя IP-адрес меняется - PullRequest
2 голосов
/ 20 мая 2010

Можно ли удерживать открытое TCP-соединение с клиентом, в то время как IP-адрес клиента изменяется извне? Например, соединение устанавливается по адресу X, но иногда, когда соединение открыто, пользователь на стороне клиента запрашивает обновление IP и получает другой IP-адрес. Может ли соединение остаться живым в этом случае?

Заранее спасибо.

Ответы [ 3 ]

3 голосов
/ 20 мая 2010

Нет, не может.

Даже если местная сторона может быть массирована, чтобы понять, что соединение вдруг между разными адресами, удаленная сторона не поймет и откажется работать с ним.

Для продолжения использования соединения вам потребуется повторно добавить старый IP-адрес.


Для этого:

Linux: ip addr add 172.16.10.20/22 dev bond0
Windows: сделать острый клик или **fill in command here**

0 голосов
/ 22 мая 2010

Что я знаю, так это то, что при использовании UDP соединение можно сохранить, одно из моих приложений - изменить адрес удаленного сетевого адаптера через UDP.

Для TCP, я согласен с Soonts, вам следуетваш сервер и клиентское приложение, чтобы разрешить переподключение прозрачным способом.

0 голосов
/ 22 мая 2010

Это возможно с соединениями tcp v6, если вы используете, например, tunnelbrocker.net. Каждый раз, когда изменяется ваш IPv4-адрес, соединение между вашим IP4-адресом и IP4-адресом туннельного посредника прерывается, а затем восстанавливается, однако адрес IP6 остается прежним, и все соединения TCP / IPv6 с вашего IP6-адреса на конечные IP6-адреса все еще остаются здесь.

Или, если вы разрабатываете как клиент, так и сервер, вы можете разработать свой протокол, позволяющий клиенту прозрачным образом переподключиться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...