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

Вниз

Как работает Hamachi?   Найти похожие ветки 

 
@!!ex ©   (2009-10-02 12:32) [0]

Hamachi соединяет два компа без внешнего IP через свой сервер.
Как это делается?


 
dmk ©   (2009-10-02 13:07) [1]

Создаешь свою сетку. Ставишь пароль и пользуешь. Только нужно 2 человека минимум. Если Интернет быстрый с двух сторон, то вполне юзабельно. К сетке можно подключать много народу. Я отказался, т.к. быстрее скинуть файлы через файлообменник. Hamachi подтормаживает слегка.


 
tesseract ©   (2009-10-02 13:08) [2]

Туннелирование наверно. Два компа присоединяются к серваку - коннект есть, а дальше тупо туннелируем.


 
tesseract ©   (2009-10-02 13:09) [3]


> dmk ©   (02.10.09 13:07) [1]


Вопрос как физически это происходит. Я кстати ошибся - там VPN + UDP.


 
dmk ©   (2009-10-02 13:17) [4]

У Hamachi свой протокол. Когда сетку делаешь у нее есть уникальный номер. Вот он скорее всего и является ее собственным уникальным IP. Как работет ее протокол я к сожалению не знаю.


 
dmk ©   (2009-10-02 13:22) [5]

Тут немного описано
http://www.p2pinside.ru/node/85


 
@!!ex ©   (2009-10-02 13:28) [6]

Вот это я знаю:
Как это все работает
Hamachi - система организации виртуальных защищенных сетей на основе протокола UDP. В такой сети узлы для установления соединения между собой используют третий узел, который помогаем им лишь обнаружить друг друга, а передача информации производится между узлами уже непосредственно. При этом взаимодействующие узлы могут находиться за NAT’ом или фаерволом.


Я хочу понять, как это реализовано.
Нужно тоже самое сделать. Нужно установить p2p соединение между компами без внешнего IP.


 
tesseract ©   (2009-10-02 13:34) [7]


> Я хочу понять, как это реализовано.


"Не внешний" IP - явно играемся с nat. Если я правильно помню спецификации, то nat организует соединение - теперь достаточно его перебросить между узлами. SKYPE и google talk то-же же организуют прямой коннект между двумя узлами с неважно каким IP.


 
@!!ex ©   (2009-10-02 13:35) [8]

> [7] tesseract ©   (02.10.09 13:34)

Угу. И как они это делают??


 
Sha ©   (2009-10-02 14:11) [9]

google + пробивание NAT


 
Eraser ©   (2009-10-02 15:54) [10]

> [6] @!!ex ©   (02.10.09 13:28)

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


 
DVM ©   (2009-10-02 15:57) [11]


> Eraser ©   (02.10.09 15:54) [10]

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


 
Pavia ©   (2009-10-02 16:06) [12]

Происходит так.
1 комп используя протоколы UPnP или NAT-PMP просит роутер на котором стоит NAT выделить порт. Этот процесс называется мэпированием портов.
Теперь у вас есть свой порт на внешнем общественно IP. И все(UDP или TCP) пакеты приходящий на этот порт будут поробрасываться на внутренний IP адрес.
2 комп делает тоже самое.

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


> Нужно тоже самое сделать. Нужно установить p2p соединение
> между компами без внешнего IP.


Я вот тут народ тоже спрашивал исходник на Delphi все молчат как партизаны.
Вообще бери libtorrent он на Си. Там есть нужный код.

С протоколом UPnP не советую разбираться такая гадость.


 
Сергей М. ©   (2009-10-02 16:27) [13]


> как они это делают?

http://ru.wikipedia.org/wiki/STUN


 
Eraser ©   (2009-10-02 17:43) [14]

> [11] DVM ©   (02.10.09 15:57)

эх, если бы это было так просто.
такой вариант тоже есть, но чаще всего провайдеры не поддрижвают никакие UPnP и прочее. весь трафик идет именно через их сервак, в случае когда оба клиента находятся за NAT, что не редкость.


 
Eraser ©   (2009-10-02 17:45) [15]

> [11] DVM ©   (02.10.09 15:57)

эх, если бы это было так просто.
такой вариант тоже есть, но чаще всего провайдеры не поддрижвают никакие UPnP и прочее. весь трафик идет именно через


 
Pavia ©   (2009-10-02 18:03) [16]


> http://ru.wikipedia.org/wiki/STUN

И сколько роутеров NAT поддерживают данный протокол?

UPnP поддерживают большинство.


 
Pavia ©   (2009-10-02 18:18) [17]


> эх, если бы это было так просто.такой вариант тоже есть,
>  но чаще всего провайдеры не поддрижвают никакие UPnP и
> прочее. весь трафик идет именно через

Это касается США. А у нас UPnP как раз таки не режут и он спокойно доступен. Отсюда и популярность Torrent"ов.


 
Сергей М. ©   (2009-10-02 20:15) [18]


> сколько роутеров NAT поддерживают данный протокол?


Роутеры не занимаются поддержкой STUN вообще.


> UPnP поддерживают большинство


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

STUN хорош тем, что на довольно малом кол-ве пограничных (между публ. и лок. сетями) маршрутизаторов используетсят NAT типа "симметричный конус" - это единственный из 4-х основных распространенных типов, при котором STUN бессилен.


 
Сергей М. ©   (2009-10-02 20:45) [19]

Вот здесь хорошая иллюстрация

http://aoz.com.ua/2009/01/26/nat-types/

для тех кто хочет понять, как работает тот или иной распространенный тип NAT - кратко, внятно и на огурцах)


 
Anatoly Podgoretsky ©   (2009-10-02 22:46) [20]

> Сергей М.  (02.10.2009 20:15:18)  [18]

Как системный администратор я автоматически запрещаю UPnP дыра, дырой


 
Pavia ©   (2009-10-03 03:15) [21]


> Во-вторых, UPnP, даже если он разрешен, решает проблему
> прохождения через NAT только данного маршрутизатора, в то
> время как на он сам в свою очередь может находиться за NAT
> другого маршрутизатора, на котором UPnP либо запрещен либо
> не поддерживается.

Практика показывает что пробивает и внешний адрес узнает. Похоже внутренний роутер обращается к внешнему.

Хотя каких либо пояснений в протоколе я не нашёл.

А да со STUN не до разумение. Я думал он NAT пробирает. А он предназначен для исследования NAT.  Правда это любой программист и сам сможет сделать. Я вот что-то не понял помимо определения NAT он еще чем то занимается?


 
Сергей М. ©   (2009-10-03 10:19) [22]


> это любой программист и сам сможет сделать


Без "помощника" по ту сторону NAT, т.е. в публичной сети, сделать это все равно не удастся. Таким "помощником" как раз и является STUТ-сервер.


> помимо определения NAT он еще чем то занимается?


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


 
Сергей М. ©   (2009-10-03 10:53) [23]


> пробивает и внешний адрес узнает. Похоже внутренний роутер
> обращается к внешнему


емнип, UPnP базируется на мультикасте.
Форвардинг же мультикаст-пакетов из одной подсети в другую - право и/или обязанность файрвола, а не NAT.
Если файрвол не реализует такой форвардинг, либо он административно запрещен, и на маршрутизирующем устройстве отсутствует/неактивен мултикаст-прокси-сервис, то в этом случае трансляция UPnP-дейтаграмм из одной подсети в другую попросту невозможна.


 
Сергей М. ©   (2009-10-03 10:59) [24]

Идеальным вариантом для приличного прикладного софта, конечно же, является реализация комплекса программно-технологических средств прохождения межсетевых шлюзов, включающий в т.ч. и STUN, и UPnP, и NAT-T (при использовании IPSec)


 
Eraser ©   (2009-10-03 14:01) [25]

> [24] Сергей М. ©   (03.10.09 10:59)

.. и выделенного сервера.

к сожалению, многие провайдеры, чаще всего, не поддерживают эти разные красивые технологии, т.е. NAT полностью не пробиваемый из вне.


 
Pavia ©   (2009-10-03 14:50) [26]


> Без "помощника" по ту сторону NAT, т.е. в публичной сети,
>  сделать это все равно не удастся. Таким "помощником" как
> раз и является STUТ-сервер.

И что ?  Я так и написал нужен внешний сервер. А STUN или это будет или другой не важно.


> емнип, UPnP базируется на мультикасте.Форвардинг же мультикаст-
> пакетов из одной подсети в другую - право и/или обязанность
> файрвола, а не NAT.Если файрвол не реализует такой форвардинг,
>  либо он административно запрещен, и на маршрутизирующем
> устройстве отсутствует/неактивен мултикаст-прокси-сервис,
>  то в этом случае трансляция UPnP-дейтаграмм из одной подсети
> в другую попросту невозможна.

Я не понимаю ваших фантазий.
Если роутер\хост поддерживает UPnP то он пошлет широко вещательный пакет в свои под сети. Тоже сделают и выше стоящие роутеры.



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

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

Наверх





Память: 0.52 MB
Время: 0.006 c
3-1230124390
interbase
2008-12-24 16:13
2009.11.29
без sp_executeSQL не обойтись?


2-1255599480
ford
2009-10-15 13:38
2009.11.29
Получить последнюю папку из пути


8-1190043138
<A~kiber}{ aka a.k.>
2007-09-17 19:32
2009.11.29
как сделать элемент управления неправильной формы


2-1255420651
И. Павел
2009-10-13 11:57
2009.11.29
Нужна ли проверка InTransaction в однопоточном приложении?


15-1254493319
Кто б сомневался
2009-10-02 18:21
2009.11.29
Как антивирус не дает терминировать себя из диспетчера?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский