М.Двач / Программы

Этого треда уже нет.
Это копия, сохраненная 23 января 2024 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

252 Кб, 1240x641
как пиры подключаются друг к другу? /sav/ Linux: Яндекс браузер # OP 21 ноя, 06:35 3390152 В конец треда | Веб

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

Ответы155247492

sage Windows 10: Firefox based 2 21 ноя, 06:37 2 3390155

>>3390152 (OP)
>все их IP же серые
Не все.

Ответы156

Linux: Яндекс браузер 3 21 ноя, 06:38 3 3390156

>>3390155
ну я знаю, что трекеры это те же самые обычные сервера, а что насчет обычных пользователей с раздечей?

Ответы161

sage Windows 10: Firefox based 4 21 ноя, 06:50 4 3390161

>>3390156
>что насчет обычных пользователей с раздечей?
Что насчёт них?

Ответы162

Linux: Яндекс браузер 5 21 ноя, 06:53 5 3390162

>>3390161
как они передают файлы другим пирам?

Ответы163

sage Windows 10: Firefox based 6 21 ноя, 06:58 6 3390163

>>3390162
Подключаются к ним и передают. Или подключаются и скачивают.

Ответы164

Linux: Яндекс браузер 7 21 ноя, 07:00 7 3390164

>>3390163
так если оба пира я серыми ip, то как они подключаются?

Ответы165

sage Windows 10: Firefox based 8 21 ноя, 07:01 8 3390165

>>3390164
>если оба пира я серыми ip, то как они подключаются?
Никак.

Ответы167224

Linux: Яндекс браузер 9 21 ноя, 07:04 9 3390167

>>3390165
а. ну лан

Linux: Яндекс браузер 10 21 ноя, 09:52 10 3390224

>>3390165
я просто хотел сделать децентрализованную сеть, типа торрента, где будет явное разделение ролей: будут узлы хранящие данные, а будут узлы, которые будут распространять между собой пакеты с запросами

Windows XP: Firefox based 11 21 ноя, 10:21 11 3390247

>>3390152 (OP)
Сначала изучи, как компьютер, не имея ничего, кроме случайного адреса из диапазона локальной сети, вообще связывается с произвольным устройством с публичным адресом в интернете, потом поймёшь, как могут (или не могут) это сделать два таких компьютера из разных сетей.

Теоретически всё просто: IPv4 предполагал, что всем устройствам, входящим в Интернет, будут выданы уникальные адреса, а локальные сети — это локальные сети, они сбоку. В те времена это было логично: на всё предприятие один сервер почты, он несколько раз в день как-то общается с внешним миром, что вам ещё нужно-то? На практике оказалось удобнее, быстрее и дешевле использовать NAT, он же файвол, он же маршрутизатор, там, где теоретически должна была начинаться подсеть организации, и пользоваться всего одним или несколькими IP-адресами вместо неё.

IPv6 предполагает, что всем устройствам выданы уникальные адреса, и это происходит, только сеть IPv6 не всем устройствам доступна.

Ответы759

Linux: Chromium based 12 21 ноя, 18:38 12 3390492

>>3390152 (OP)
Если хочешь делать P2P приложение предполагая что все пиры серые - можешь закрывать проект сразу и ждать ipv6. Де факто тебе нужен хотя бы один пир к которому могут подключиться (трекер у торрентов) и от него узнать о других пирах.

А вот общение между двумя пирами происходит интереснее, тут надо указать как NAT работает когда ты подключаешься к какому-нибудь серверу:
1) В NAT-е есть табличка, которая указывает от какого локального IP и порта исходит подключение на какой IP и какой порт.
2) По этой табличке NAT, когда приходит соединение извне от конкретного IP и порта перенаправляет трафик
3) Спустя N времени и/или по другим условиям запись в таблице стирается

А теперь собственно фокус подключения двух серых пиров, так называемый Hole punching:
1) Пир А соеденяется с белым пиром, узнает список пиров в сети.
2) Через белого пира отправляет сообщение пиру B о том, что хочет подключиться, а также свой серый IP и порт.
3) Пир B подтверждает что согласен на подключение, и отправляет также через сервер ответ пиру А, заодно с IP и портом подключения.
4) Пир А, получив ответ замеряет время которое прошло с момента отправки сообщения в пункте 2 до получения ответа
5) Пир А отправляет пиру Б через сервер сообщение типа "Давай пытайся подключиться к моему IP"
6) Через половину времени вычисленного в пункте 4, пир А создает отправляет подключение напрямую к пиру Б, создавая в своем NAT-е запись типа от меня к пиру B.
7) Пир Б тем временем, получив сообщение СРАЗУ отправляет подключение к пиру А напрямую, создавая аналогичную запись в своем NAT-е

К тому моменту как сигналы доходят до тех к кому должны дойти, в соответствующих NAT-ах стоят записи о том, что сообщения с этого IP надо перенаправит на такой-то адресс и поэтому сигнал проходит. Happy end, пиры подключены напрямую, сервер больше (пока) не нужен.

В описании опущено пару подробностей, например NAT-ы бывают разными но в целом все так.

Ответы758

Linux: Яндекс браузер 13 22 ноя, 06:51 13 3390758

>>3390492
спасибо за инфу

Linux: Яндекс браузер 14 22 ноя, 06:52 14 3390759

>>3390247
так можно использовать пакеты широкого вещания

Тред утонул или удален.
Это копия, сохраненная 23 января 2024 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

« /s/В начало тредаВеб-версияНастройки

/a//b//mu//s//vg/Все доски

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.gq, m2ch.cf, m2ch.fapp.in, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion