Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C/C++ Сетевое программирование
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.09.2009, 11:19   #1
Acharia
Пользователь
 
Регистрация: 14.07.2009
Сообщений: 11
По умолчанию Соединение через два NAT

Возникла задача написания ПО для установки соединения двух компьютеров для обмена данными через интернет.
Проблема заключается в том, что оба компьютера находятся за NAT, и следовательно, не имеют "прямых" IP адресов по которым можно было бы осуществить соединения, используя, например, библиотеку WinSock. В связи с этим у меня возникло подозрение, что придется использовать WinPCap. Но я совершенно не представляю каким образом это можно осуществить. Пожалуйста подскажите, есть ли какие-нибудь протоколы способные реализовать такую связь.

Хотелось бы сделать что-то по типу Hamachi или Skype. Как я понял - процесс установки соединения между машинами происходит через их сервер, а уже данные они передают без его участия друг другу...

Буду очень благодарен, если подскажите какую литературу на эту тему почитать, или какие-нибудь ссылки полезные дадите.

Заранее спасибо.
Acharia вне форума Ответить с цитированием
Старый 11.09.2009, 12:14   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Хотелось бы сделать что-то по типу Hamachi или Skype. Как я понял - процесс установки соединения между машинами происходит через их сервер, а уже данные они передают без его участия друг другу...
Верно.
Цитата:
оба компьютера находятся за NAT
Всмысле?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.09.2009, 12:19   #3
Acharia
Пользователь
 
Регистрация: 14.07.2009
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение

Всмысле?
Дело в том, что я рассматриваю случай, когда два компьютера находятся в разных сетях (например, разные провайдеры), при этом каждая сеть "отгорожена" от внешнего мира NAT`ом. Т.е. У эти компьютеры не имеют прямых глобальных IP адресов, по которым можно было бы осуществить обычное TCP соединение.
Acharia вне форума Ответить с цитированием
Старый 11.09.2009, 12:21   #4
Acharia
Пользователь
 
Регистрация: 14.07.2009
Сообщений: 11
По умолчанию

При этом настройки NAT я менять не могу. Т.е. нужно именно как-то осуществить соединение "не стандартным" путем.
Acharia вне форума Ответить с цитированием
Старый 11.09.2009, 12:27   #5
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Гугли upnp port-mapping
тут ещё можно глянуть http://msdn.microsoft.com/en-us/libr...03(VS.85).aspx
пыщь
JTG вне форума Ответить с цитированием
Старый 11.09.2009, 13:33   #6
Acharia
Пользователь
 
Регистрация: 14.07.2009
Сообщений: 11
По умолчанию

Цитата:
Сообщение от JTG Посмотреть сообщение
Гугли upnp port-mapping
тут ещё можно глянуть http://msdn.microsoft.com/en-us/libr...03(VS.85).aspx
Спасибо, буду смотреть
Acharia вне форума Ответить с цитированием
Старый 11.09.2009, 13:50   #7
Acharia
Пользователь
 
Регистрация: 14.07.2009
Сообщений: 11
По умолчанию

Почитал, ознакомился. Возник еще 1 вопрос: а что делать, если роутер не поддерживает UPnP или эта возможность на нем просто заблокирована?
Acharia вне форума Ответить с цитированием
Старый 11.09.2009, 15:02   #8
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Посыпать голову пеплом и меняться данными через внешний сервер в пассивном режиме, наверно
Вот тут про UPD между двумя машинами с серыми IP http://ru.wikipedia.org/wiki/STUN, собственно скайп его и использует в особо тяжёлых случаях

Вот тут подробнее: http://www.cyberguru.ru/networks/net...ils-page2.html
А это надстройка TCP над ним http://nutss.gforge.cis.cornell.edu/stunt.php
пыщь

Последний раз редактировалось JTG; 11.09.2009 в 15:16.
JTG вне форума Ответить с цитированием
Старый 11.09.2009, 15:36   #9
Acharia
Пользователь
 
Регистрация: 14.07.2009
Сообщений: 11
По умолчанию

Цитата:
Сообщение от JTG Посмотреть сообщение
Посыпать голову пеплом и меняться данными через внешний сервер в пассивном режиме, наверно
Вот тут про UPD между двумя машинами с серыми IP http://ru.wikipedia.org/wiki/STUN, собственно скайп его и использует в особо тяжёлых случаях

Вот тут подробнее: http://www.cyberguru.ru/networks/net...ils-page2.html
А это надстройка TCP над ним http://nutss.gforge.cis.cornell.edu/stunt.php
огромное спасибо! Вот это, видимо, то, что я искал.
Acharia вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Соединение с мускулом из Delphi через объект TMySqlClient CyberJohn БД в Delphi 0 05.04.2009 22:18
Dial Up соединение через модем sato_2005 Работа с сетью в Delphi 3 16.07.2008 22:00
соединение 2х компов через web-server BlackOmen Свободное общение 1 01.03.2008 01:43
соединение с сервером через FTP magpro Работа с сетью в Delphi 6 19.09.2007 13:56
Соединение с БД через Интернет Kate Работа с сетью в Delphi 1 08.06.2007 08:49