|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
18.11.2016, 21:12 | #1 |
Пользователь
Регистрация: 14.12.2014
Сообщений: 13
|
P2P Без (явного) проброса портов
Привет всем. Только что написал небольшие скриптики для p2p соединения двух машин за NAT. Собственно пока писал их впервые и познакомился с этими NAT'ами и STUN'ами, так что в этом не шарю. Для соединения этих машин пришлось на роутерах прокинуть порты, которые используются скриптом. И после того, как уже все заработало, возник у меня вопрос - а как skype, torrent, teamviewer и другие софтины работают без необходимости явной проброски портов?
|
18.11.2016, 21:15 | #2 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,760
|
|
18.11.2016, 21:40 | #3 |
Пользователь
Регистрация: 14.12.2014
Сообщений: 13
|
Ага, понял. Локальный хост без аутентификации может попросить роутер прокинуть порт. А что, если UPnP выключен на роутере? Выключил сейчас на своем, а все эти программы все равно работают.
|
18.11.2016, 21:44 | #4 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
Skype работает через "суперноды" - ноды, которые не скрыты за NAT, т.е. находит посредника.
Торрент не работает если оба за NAT. TeamViewer работает через сервер, ему вообще фиолетово. |
18.11.2016, 21:44 | #5 |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
teamviewer работает через сервер.
TCP - всегда двунаправленный протокол. UDP - хотя и однонаправленный, но все межсетевые экраны создают правила для так называемого возвратного канал. Он временный. skype, torrent. Можно вежливо попросить роутер открыть порт. https://ru.wikipedia.org/wiki/UPnP https://en.wikipedia.org/wiki/Portmap https://en.wikipedia.org/wiki/NAT_Port_Mapping_Protocol и др. Если это не помогает, то начинают пробовать пробить защиту. Возвратный канал UDP и TCP имеют уязвимости если сервер с белым IP будет генерировать исходящие пакеты с подменённым Dest.IP то он сможет выдавать себя за пиры закрытые натом, но при этом для второго пира и его защиты всё будет выглядеть так как будто первые пиры находятся в глобальной сети. После установления связи общение продолжается без сервера. Сервер с белым IP участвует только на этапе соединения. Torrent и Skype - это сети в них много компьютеров и всегда найдётся такой пир который не закрыт защитой. Вот он и будет выступать сервером. Подробнее про пробивание защиты можно прочитать в протоколе STUN. http://www.cyberguru.ru/networks/net...t-details.html https://en.wikipedia.org/wiki/UDP_hole_punching http://www.brynosaurus.com/pub/net/p2pnat/ http://www.ds.ewi.tudelft.nl/reports...S-2010-007.pdf А вообще проще посмотреть исходники тех же торрентов http://sourceforge.net/projects/delphibt/ - компонент для работы с BitTorrent http://sourceforge.net/projects/torrenttorque/ - торрент-клиент на Delphi http://sourceforge.net/projects/azureus/ - исходники Vuse (Azureus) http://sourceforge.net/softwaremap/t...c&form_cat=265 - много чего полезного Если пробить защиту не удаётся, то работа идет через сервера с белыми IP. А если в сети и их не оказывается тогда облом.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . Последний раз редактировалось Pavia; 18.11.2016 в 21:47. |
19.11.2016, 13:23 | #6 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
UPnP - не работает в большинстве случаев (наверно, в 70-80%). Говорю как человек, который понимает, что говорит.
Любой мобильный интернет: все эти USB-свистки, йота и так далее. Заведомо проигрышный вариант: там Symmetric NAT и там вообще нечего ловить, ибо никакой функционал проброса порта не поддерживается. Также можно заведомо отсечь все корпоративные сети и прочее подобное. Там тоже по нескольку NAT, вложенных друг в друга На проводном домашнем интернете роутер твой домашний конечно же поддерживать будет UPnP, но от этого никакого толку, ибо сам роутер будет находится за другим роутером (провайдерским), который ничего подобного не поддерживает. Такое возможно в редких случаях, как например у Билайна (корбина), тебе дают белый IP-адрес, который смотрит сразу в интернет, без посредников. Там у тебя динамический IP, но он всегда голый и смотрит сразу в интернет. А также в случае покупки услуги "постоянный IP". Последний раз редактировалось rpy3uH; 19.11.2016 в 13:34. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как парсить сайт без явного указания города | Parallelogram | PHP | 4 | 02.08.2015 18:46 |
Подключение без проброски портов | Shouldercannon | Работа с сетью в Delphi | 3 | 18.08.2011 15:54 |
p2p клиент | Ntlegend | Работа с сетью в Delphi | 2 | 02.09.2010 09:13 |
Имя кнопки без явного указания | A_L_E_X | Microsoft Office Excel | 5 | 13.03.2010 17:49 |
P2P сеть | Nemez | Работа с сетью в Delphi | 2 | 08.09.2008 07:22 |