Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Объясните принцип работы связи в TeamViewer [D7, WinXP]


Intranull ©   (2010-09-24 16:27:00) 

Приветствую. Прошу объяснить на пальцах как строится связь между клиентом и сервером когда у обоих динамические ip адреса но есть 1 сервер со статическим адресом.

т.е по сути как я понимаю на сервере стоит програма. в програме 2 порта 1 для клиента 1 для сервера. И эта програма как то завязывает жти порты друг на друга создавая что то в виде туннеля.

Подскажите на сколько верно мое предположение или каким образом сделать правельно.

Для чего это нужно:

Например мне нужно удаленно подключится к клиенту за натом. Все равно что это будет за софт, чат или удаленное управление.

Интересуют протокол TCP/IP для примера на стандартных компонентах.


Сергей М.   (2010-09-24 21:34:00) [1]


> dyndns спасёт орд


Не спасет, если хост глобально не маршрутизируемый.


Плохиш   (2010-09-24 21:23:00) [2]

dyndns спасёт орд


Intranull   (2010-09-24 21:16:00) [3]

В принципе понятно, либо завязваем на друг друга если есть возможность - например нет Firewall для входящих подключений.

Либо с помощью мапирования портов на сервере вяжем 2 порта между клиентом и оператором и тогда весь трафик идет черз сервер.


Сергей М.   (2010-09-24 20:30:00) [4]

А кто тебе сказал, что после установления соединения с TW-сервером два его клиента продолжают работать именно через этот сервер вплоть до завершения сеанса ?
Работают они через него jn yfxfkf b lj rjywf лишь в том случае, если сервер не смог скоординировать действия двух своих клиентов по установлению P2P-канала.
В иных случаях сервер выступает лишь посредником инициации P2P-канала, после чего клиенты ощаются друг с другом напрямую, т.е. их "междусобойчик" никак не касается сервера.


Intranull   (2010-09-24 20:07:00) [5]

Может быть я неверно объяснил что то..

У нас есть сервер со статическим ip

клиент который находится за натом ( без разницы за каким ) соеденяется с софтом на сервере по статическому адресу, он может посылать и получать любые данные так как Ip сервера статический.

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

Вопрос: Как связать клиентское приложение за натом и операторское приложение за натом с помощью сервера у которого есть статический ip ?

Как это делает например TeamViewer у которого через его сервер работают клиентское и операторское приложение которые находятся за натом.


Сергей М.   (2010-09-24 19:57:00) [6]

При симметричном НАТе ты их обделаешься связывать.
Это, надеюсь, тебе уже стало понятно ?
И речь при этом о TCP не идет вообще.
Борьба за выживание за НАТ идет под флагом UDP)


Intranull   (2010-09-24 19:10:00) [7]

Проблема аренды сервера не стоит. Это может быть как моя машина с 256 мб стоящаю в углу и имеющая выделеный Ip так и арендованый виндовый сервер.

Вопрос именно в том как на этом удаленом сервере связать программно клиентское и серверное приложение. ( С учетом того что может быть 10 клиентов и 10 серверов ) например тот же удаленный доступ для помощи корпоративным клиентам. Через VNC или Radmin


Eraser   (2010-09-24 18:36:00) [8]

> [2] Intranull   (24.09.10 17:58)

ну свяжешь ты 2 порта, а выделенные сервера кто арендовать будет?


Intranull   (2010-09-24 17:58:00) [9]

> Сергей М.

нет. Идея как раз в другом.

Клиент подключается к серверу, Серверное приожение подключается к серверу

А на сервере софт их соеденяет. В итоге у нас клиент и серверное приложение могут переправлять друг другу данные.

Вопрос именно не в создании трехзвенной архитектуры, а именно в том как реализовать связываение двух портов друг на друга на сервере.


Сергей М.   (2010-09-24 16:40:00) [10]


> Например мне нужно удаленно подключится к клиенту за натом


За каким конкретно ?
За симметричным упаришься подключаться.

http://users.i.com.ua/~sipnet/NAT0.htm


Наверх

Титульная страница Поиск, карта сайта Написать письмо