Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2004.07.04;
Скачать: [xml.tar.bz2];

Вниз

Как теоретически соединяються два клиента которые оба за NAT-ом   Найти похожие ветки 

 
undersun   (2004-05-08 14:57) [0]

Как теоретически соединяються два клиента которые оба за NAT-ом


 
undersun   (2004-05-08 14:58) [1]

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


 
Alex Konshin ©   (2004-05-08 19:14) [2]

Конечно.
NAT не обязательно динамический.
Можно назначить переадресацию определенных портов на определенные порты машин внутри локальной сети. Это как раз-таки обычное решение.


 
Anatoly Podgoretsky ©   (2004-05-08 19:33) [3]

Пара адрес:порт переправляется на другую пару адрес:порт
Пара может быть и диапазоном.


 
Mentat   (2004-05-09 11:21) [4]

Без port-forwarding"а только через внешний сервер.


 
undersun   (2004-05-09 11:46) [5]

А как это выглядит с программной точки зрения. Я вот имею локальный (в своей сети) адрес я на нём открываю слушающий сокет, а второй товарищь в другой сети, к какому ему адресу коннектица


 
Anatoly Podgoretsky ©   (2004-05-09 12:11) [6]

Соединяться ему с твоим слушающим сокетом, он должен быть доступен для него.


 
Piter ©   (2004-05-09 12:12) [7]

undersun   (08.05.04 14:57)
Как теоретически соединяються два клиента которые оба за NAT-ом


В общем случае это невозможно. Поэтому у тебя как раз в PnP системах бывает статус LowID, то есть коннекты к тебе невозможны, только когда коннект инициализируешь ты.
Два клиента с LowID не могут сконнектиться никак :(

Есть решение правда:

"Можно назначить переадресацию определенных портов на определенные порты машин внутри локальной сети"

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


 
undersun   (2004-05-09 12:19) [8]

А как же это работает в ICQ: Там передеча файлов идёт по прямому соединению между двумя клиентами, как же в этом случае соединяють два клиента подключенные по диалапу с динамическим да ещё и внутренними (для каждого из клиентов)адресами. Это работает я проверял.


 
undersun   (2004-05-09 12:24) [9]

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


 
Anatoly Podgoretsky ©   (2004-05-09 12:25) [10]

undersun   (09.05.04 12:19) [8]
Там передача идет через установления соединиения изнутри и поддержания сокета активным. Соединение идет через внешний сервер и твой прокси/NAT, никаких локальных IP не фигурирует.
Таже самая проброска внешнего сокета на локальный.

Пара адрес:порт переправляется на другую пару адрес:порт [3]


 
undersun   (2004-05-09 12:45) [11]

Anatoly Podgoretsky
Хорошо. Как это програмно выглядит. Как мне сделать клиент и сервер и соединить их. На какой адрес вешать сервер и к какому соединяться клиенту.


 
Anatoly Podgoretsky ©   (2004-05-09 13:01) [12]

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


 
Anatoly Podgoretsky ©   (2004-05-09 13:03) [13]

Для работы без сервера, нужно на внешнем соединении открыть сокет и перебрасывать его уже тебе. Port Forwardig. В любом случае задействовано как минимум три компьютера. Клиент, Сервер и твой компьютер.


 
undersun   (2004-05-09 13:54) [14]

Спасибо. Всё ясно.



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2004.07.04;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.048 c
4-1085032389
Elysium
2004-05-20 09:53
2004.07.04
Регион формы по маске


1-1087497524
lelik
2004-06-17 22:38
2004.07.04
свойства файла


1-1087496319
lelik
2004-06-17 22:18
2004.07.04
закрытие приложения


1-1087487286
sherbacov
2004-06-17 19:48
2004.07.04
Как в TTreeNode добавить Tag?.


1-1087501008
lelik
2004-06-17 23:36
2004.07.04
закрытие





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский