Прямые соединения в р2р сетях
От: Barbar1an Украина  
Дата: 14.06.22 09:48
Оценка:
Если у нас два узла у которых есть только исходящие соединения, а входящие он не может потому, что раутер не настроен или это вообще невозможно(мобильная связь?)
то пусть один из них по р2р протоколу узнал, что у второго есть файл который ему нужен , а как он может скачать его напрямую, если он ни сам не может подключиться ни запросить входящее соединеие у другого?
пересылвать через посредников? както расточительно, а как в файлообменных делают?
Я изъездил эту страну вдоль и поперек, общался с умнейшими людьми и я могу вам ручаться в том, что обработка данных является лишь причудой, мода на которую продержится не более года. (с) Эксперт, авторитет и профессионал из 1957 г.
Re: Прямые соединения в р2р сетях
От: watchmaker  
Дата: 14.06.22 10:04
Оценка: 6 (1) +2
Здравствуйте, Barbar1an, Вы писали:

B> а как в файлообменных делают?


По разному:
1. Никак — требуют чтобы хотя бы один абонент мог принимать соединения;
2. Пересылают через посредника;
3. Делают hole punching.

Третий способ, точнее целое семейство способов, конечно, самое интересное. Правда, работает не всегда, в отличии от первых двух.
Начать знакомится стоит со STUN.
Отредактировано 14.06.2022 10:08 watchmaker . Предыдущая версия .
Re[2]: Прямые соединения в р2р сетях
От: Barbar1an Украина  
Дата: 14.06.22 10:39
Оценка:
Здравствуйте, watchmaker, Вы писали:

W>3. Делают hole punching.



а как он реализуется на уровне софта? вот я хочу поддержать это в совем ПО, то что мне нужно? это ж вроде тока на уровне драйвера Udp/Tcp только можно сделать
Я изъездил эту страну вдоль и поперек, общался с умнейшими людьми и я могу вам ручаться в том, что обработка данных является лишь причудой, мода на которую продержится не более года. (с) Эксперт, авторитет и профессионал из 1957 г.
Re[2]: Прямые соединения в р2р сетях
От: vsb Казахстан  
Дата: 14.06.22 10:41
Оценка:
Ещё добавлю что в теории существует технология upnp, с помощью которой программа может попросить роутер создать для неё перенаправление порта. Я в живую роутеров с такой технологией не видел, но наверняка где-то есть. Рассчитывать на это не стоит, но как один из способов — почему бы и нет.
Re[3]: Прямые соединения в р2р сетях
От: vsb Казахстан  
Дата: 14.06.22 10:42
Оценка:
Здравствуйте, Barbar1an, Вы писали:

W>>3. Делают hole punching.



B>а как он реализуется на уровне софта? вот я хочу поддержать это в совем ПО, то что мне нужно? это ж вроде тока на уровне драйвера Udp/Tcp только можно сделать


Нет, на уровне софта делается (обычно с участием третьего сервера для пробивки дырки, для последующей коммуникации он уже не нужен).
Re: Прямые соединения в р2р сетях
От: Maniacal Россия  
Дата: 14.06.22 12:16
Оценка: -1
Здравствуйте, Barbar1an, Вы писали:

B>Если у нас два узла у которых есть только исходящие соединения, а входящие он не может потому, что раутер не настроен или это вообще невозможно(мобильная связь?)

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

B>то пусть один из них по р2р протоколу узнал, что у второго есть файл который ему нужен , а как он может скачать его напрямую, если он ни сам не может подключиться ни запросить входящее соединеие у другого?

Через NAT, что p2p, что не p2p. Но вообще, p2p Означает, что нет никаких NAT, обычно.

B>пересылвать через посредников? както расточительно, а как в файлообменных делают?

Файлообменники и есть посредники, не?
Re[3]: Прямые соединения в р2р сетях
От: Mr.Delphist  
Дата: 14.06.22 19:42
Оценка: +1
Здравствуйте, vsb, Вы писали:

vsb>Ещё добавлю что в теории существует технология upnp, с помощью которой программа может попросить роутер создать для неё перенаправление порта. Я в живую роутеров с такой технологией не видел, но наверняка где-то есть. Рассчитывать на это не стоит, но как один из способов — почему бы и нет.


Древнейшие бытовые DLink умели это — сейчас и подавно, поддержка upnp везде. Есть другая проблема: вряд ли наш роутер торчит прямо в голый интернет, за ним ещё какой-то слой провайдерских железок может быть, так что придётсяс белый IP покупать и т.п.
Re[2]: Прямые соединения в р2р сетях
От: Mr.Delphist  
Дата: 14.06.22 19:50
Оценка:
Здравствуйте, Maniacal, Вы писали:

M>Это какой-то странный роутер. Мне через первый раз в жизни подключённый мобильный интернет лет 20 назад сразу червь прилетел. Так что со входящими соединениями там, видимо, всё ок.


Червяк прилетает не через входящее соединение, а при помощи эксплуатации всяких дырок в реализации тех или иных протоколов.

Простейший пример: если наш протокол ожидает DWORD заголовок с длиной данных, то наивная реализация просто вычитывает этот DWORD и аллоцирует столько же памяти. А теперь представим, что злоумышленник заслал нам несколько "плохих" заголовков с требованием по 4 гига в каждом — результат Out of memory. Аналогично, можно подсовывать наивным реализациям специально сфабрикованные широковещательные запросы, чтобы заставить клиента выполнить нужный злоумышленнику набор действий, а далее обманутый клиент сам сходит куда надо и сам всё скачает, никаких входящих соединений.
Re[3]: Прямые соединения в р2р сетях
От: Maniacal Россия  
Дата: 17.06.22 14:46
Оценка:
Здравствуйте, Mr.Delphist, Вы писали:

MD>Простейший пример: если наш протокол ожидает DWORD заголовок с длиной данных, то наивная реализация просто вычитывает этот DWORD и аллоцирует столько же памяти. А теперь представим, что злоумышленник заслал нам несколько "плохих" заголовков с требованием по 4 гига в каждом — результат Out of memory. Аналогично, можно подсовывать наивным реализациям специально сфабрикованные широковещательные запросы, чтобы заставить клиента выполнить нужный злоумышленнику набор действий, а далее обманутый клиент сам сходит куда надо и сам всё скачает, никаких входящих соединений.


Это называется троян уже, когда "обманутый клиент сам сходит куда надо и сам всё скачает". Червяк заражает комп, потом начинает сканировать доступную с этого компа сеть и на каждом откликнувшемся айпишнике проверяет уязвимость. От пользователя не требуется никаких действий. Достаточно прямого IP-адреса, наличия уязвимости и просто подключиться к интернету. А так да, через buffer overrun.
Вот этот прилетел меньше через минуту, как только я подключился к интернету в начале 2000-х: https://en.wikipedia.org/wiki/Blaster_(computer_worm)
Даже ни на один сайт не успел зайти.
Re[4]: Прямые соединения в р2р сетях
От: ути-пути Россия  
Дата: 31.07.22 20:51
Оценка:
Здравствуйте, Mr.Delphist, Вы писали:

MD>Древнейшие бытовые DLink умели это — сейчас и подавно, поддержка upnp везде. Есть другая проблема: вряд ли наш роутер торчит прямо в голый интернет, за ним ещё какой-то слой провайдерских железок может быть, так что придётсяс белый IP покупать и т.п.


Не обязательно. Очень часто провайдер дает белый IP, а продает постоянный.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re[3]: Прямые соединения в р2р сетях
От: Vetal_ca Канада http://vetal.ca
Дата: 26.08.22 18:23
Оценка:
Здравствуйте, Barbar1an, Вы писали:



W>>3. Делают hole punching.



B>а как он реализуется на уровне софта? вот я хочу поддержать это в совем ПО, то что мне нужно? это ж вроде тока на уровне драйвера Udp/Tcp только можно сделать


Что за софт? Может, практичнее просто поставить тот же Tailscale или Zerotier. Иначе придется почти то же самое написать самому
Re[3]: Прямые соединения в р2р сетях
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 02.11.22 12:44
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>Ещё добавлю что в теории существует технология upnp, с помощью которой программа может попросить роутер создать для неё перенаправление порта. Я в живую роутеров с такой технологией не видел, но наверняка где-то есть. Рассчитывать на это не стоит, но как один из способов — почему бы и нет.


Любой домашний такое умеет, сто лет как
Маньяк Робокряк колесит по городу
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.