Что такое peer to peer Telegram

Некоторое время назад я занялся изучением вопроса установки peer-to-peer тоннеля для передачи потоковых данных. В этой теме я расскажу, какие вопросы удалось выяснить, и какие вопросы остались. В тех, которые остались, прошу помочь.

Если кому-то есть что сказать по этим темам, то прошу писать здесь.

Главная проблема установки peer-to-peer тоннеля заключается в том, что большинство компьютеров сидит за NAT-ом, NAT-ы везде разные и их поведение четко не стандартизировано. Однако, их все же разделяют по типам в зависимости от алгоритма сопоставления внешнего адреса локальному. Типы NAT-ов и их способы работы описаны здесь: http://en.wikipedia.org/wiki/Network_address_translation в разделе «Types of NAT». Если вы не знаете, чем отличаются NAT-ы в зависимости от типа, то обязательно прочитайте, т.к. иначе читать пост дальше бессмысленно.

Так получилось, что основная конфигурация, которая меня интересует в первую очередь, это peer-to-peer тоннель между домашним компьютером и мобильным телефоном. Мои наблюдения показали, что домашний компьютер может сидеть за любым типом NAT-а, но этот NAT достаточно редко бывает Symmetric NAT, по крайней мере, мне не удалось найти ни одного Symmetric NAT на домашнем интернете среди множества протестированных компьютеров. При этом мобильный интернет практически всегда сидит за Symmetric NAT. Таким образом, я поставил задачу придумать алгоритм, позволяющий установить peer-to-peer тоннель в конфигурации Port-restricted NAT Symmetric NAT. При этом я подразумеваю, что домашний компьютер сидит за Port-restricted NAT (как не-Symmetric NAT с самыми суровыми ограничениями), а мобильный телефон – за Symmetric NAT.

Что такое Peer-to-Peer простыми словами — сервисы P2P

Также я считаю, что у меня есть мой внешний сервер с внешним статическим IP, который «помогает» организовать тоннель. На сервере нет никаких ограничений, можно считать, что он умеет выполнять любые IP/TCP/UDP/ICMP/etc манипуляции. Я буду использовать следующие обозначения:
s – внешний сервер
p1(IP:Port) – внешний IP:Port со стороны peer1 (со стороны его NAT-а)
p2(IP:Port) – внешний IP:Port со стороны peer2 (со стороны его NAT-а)

Еще один момент. Оказалось, что провайдеры иногда не любят, когда программа использует RAW-сокеты. Сообщения, отправленные с RAW-сокетов, могут просто не уходить в сеть. Поэтому я считаю, что RAW-сокеты можно использовать только на сервере. Peer-ы же должны работать в рамках TCP/UDP/ICMP-сокетов.

Итак, что удалось на данный момент:

External IP
Ситуация, когда один из peer-ов имеет внешний IP, пусть даже динамический, тривиальна, и ее можно не рассматривать – один peer просто коннектится напрямую на другой peer.

Full cone NAT Any
Ситуация, в которой хотя бы один из peer-ов находится за Full cone NAT, тоже достаточно проста. Full cone peer сообщает свои внешние IP:Port через сервер другому peer-у, и тоннель образуется путем отправки сообщения с не-Full cone peer на Full cone. Схема:

Что такое P2P??? // Обмен криптовалюты // P2P трейдинг


p1(IP:Port) -> s [Привет, я ищу p2, готов принимать на p1(IP:Port)] p2(IP:Port) -> s [Привет, я ищу p1] s -> p2(IP:Port) [p1 готов принимать на p1(IP:Port)] p2(Any) -> p1(IP:Port) [Привет, я p2]

Address-restricted NAT Any
Peer-ы узнают друг о друге через внешний сервер, после чего Address-restricted peer отправляет любое UDP-сообщение второму пиру, чтобы NAT пустил последующий входящий пакет. По описанию с вики может показаться, что это не сработает когда второй peer находится в Symmetric NAT, потому что отправка пакета на первый peer может пойти не с того IP, с которого пакет ушел на сервер. На практике я такого не видел – при изменении получателя с внешней стороны Symmetric NAT меняется только порт. IP остается тот же. Схема:

p1(IP:Port) -> s [Привет, я ищу p2, готов принимать на p1(IP:Port)] p2(IP:Port) -> s [Привет, я ищу p1] s -> p2(IP:Port) [p1 готов принимать на p1(IP:Port)] p1(IP:Port) -> p2(Any) [Кукусики, это сообщение просто чтобы продырявить NAT] p2(Any) -> p1(IP:Port) [Привет, я p2]

Port-restricted NAT Port-restricted NAT
Peer-ы узнают друг о друге через внешний сервер, и отправляют друг другу на свои внешние IP:Port по сообщению. На этом все – тоннель готов, можно общаться. Схема:

p1(IP:Port) -> s [Привет, я ищу p2, готов принимать на p1(IP:Port)] p2(IP:Port) -> s [Привет, я ищу p1, готов принимать на p2(IP:Port)] s -> p1(IP:Port) [p2 готов принимать на p2(IP:Port)] s -> p2(IP:Port) [p1 готов принимать на p1(IP:Port)] p1(IP:Port) -> p2(IP:Port) [Кукусики, это сообщение просто чтобы продырявить NAT] p2(IP:Port) -> p1(IP:Port) [Кукусики, это сообщение просто чтобы продырявить NAT]

Pwnat
Основной смысл работы утилиты такой: первый компьютер отправляет ICMP Echo Request на адрес 3.3.3.3. Кто-то там гарантирует, что с адреса 3.3.3.3 точно не будет ответа на ICMP Echo Request (он же – ping). Вместо этого второй компьютер отправляет на первый ICMP Time Exceeded, делая вид, что у ping-а по дороге кончился TTL.

Приняв этот ICMP Time Exceeded, первый компьютер отправляет второму UDP-пакет на его внешний IP:Port, и, после каких-то дополнительных оккультных действий, между ними устанавливается peer-to-peer тоннель. Каких именно действий – я особо выяснять не стал, т.к. это точно не мой случай: если бы я знал внешние IP:Port со стороны компьютера за Symmetric NAT, то никакой ICMP мне бы не понадобился. Достаточно было бы проделать действия по описанной выше схеме «Port-restricted NAT Port-restricted NAT». То есть, pwnat мне не помог.

ICMP Time Exceeded
Еще один способ, который казался интересным. Со стороны компа, сидящего за Symmetric NAT, я отправлял второму компу UDP-пакет с маленьким TTL. У этого пакета TTL по дороге кончался, и роутер отправлял обратно ICMP Time Exceeded.

В соответствии с протоколом, роутер, отправляя ICMP Time Exceeded, прикладывает в блок данных копию пакета начиная с IP-заголовка, у которого кончился TTL (то есть тот пакет, который помер на роутере). Идея заключалась в том, чтобы посмотреть на приложенную копию пакета и выяснить, с каких внешних IP:Port он был отправлен. Однако, способ провалился по двум причинам.

Первая – оказалось что NAT парсит содержимое данных ICMP Time Exceeded, ICMP Destination Port Unreachable, и прочих пакетов, которые прикладывают в блок данных копию отправленных пакетов, и исправляют внешние IP:Port на внутренние. Видимо – для полной прозрачности. И второе – оказалось, что Symmetric NAT сотовых операторов практически всегда не пускает входящий ICMP с хоста, на который предварительно ничего не отправлялось. Для того чтобы в этом убедиться, достаточно посмотреть на результаты работы traceroute с мобильного интернета.

Port-restricted NAT Symmetric NAT
Задача до сих пор не решена. Вот что происходит в этой конфигурации. Пиры узнают друг о друге через внешний сервер. Проблема номер один: когда телефон отправит на комп пакет, то этот пакет уйдет уже с другого порта (не с того, с которого сообщение ушло на сервер). Проблема номер два: этот порт, похоже, никак не выяснить. Если бы было можно выяснить – задача была бы решена.

Проблема номер три: комп сможет принять сообщение, отправленное телефоном, только если сам предварительно отправит ему сообщение. Но куда слать – непонятно, т.к. телефон и сам не знает, куда замапился его сокет снаружи. С первого взгляда – замкнутый круг.
Итак, способы установить peer-to-peer в данной конфигурации:
1. Узнать, на какой внешний IP:Port замапился локальный сокет peer-а, сидящего за Symmetric NAT.
2. Научиться подделывать адрес и порт отправителя с внешней стороны NAT-а (имхо – практически не реально).
Как решить п.2 – понятия не имею. Единственное решение для п.1, которое у меня есть – это сканирование портов, что конечно является УГ.

В общем, прошу любой помощи в придумывании любого алгоритма для огранизации peer-to-peer тоннеля в конфигурации Port-restricted NAT Symmetric NAT. Приветствуются любые советы и идеи. Обо всем, что в дальнейшем удастся выяснить по теме peer-to-peer и смежных с ней, я буду писать в этом топике.

Еще по теме:  Как архивировать каналы в Телеграмм на Айфоне

#1
1:55, 25 мая 2010

DEN
Может попытаться угадать порт Symmetric NAT’а? Наверняка выбор порта является простым счетчиком, и при попытке соединения с Port-restricted NAT он будет не сильно отличаться от номера порта при соединении с сервером. С Port-restricted NAT’а нужно будет отправить гору пакетов на адрес Symmetric NAT’а с портами близкие к тому, который был при соединении с сервером.

#2
2:20, 25 мая 2010

> Наверняка выбор порта является простым счетчиком, и при попытке соединения с Port-restricted NAT он будет не сильно отличаться от номера порта при соединении с сервером.

К сожалению, это не так. Практика показывает, что при изменении destination IP:Port, внешний Port со стороны Symmetric NAT может поменяться очень сильно. Я проверял отправляя последовательно пакеты на два разных сервера. Source-порты отличались на десятки тысячь.

#3
2:29, 25 мая 2010

В принципе, если бы прога была чем-то вроде сервиса на телефоне, то да, можно было бы позволить себе сделать сканирование портов и потом обмениваться маленькими keep-alive пакетами. Но одна из основных target-платформ — iPhone — все обламывает, поскольку там все приложения модальны. Приложение реально получает управление только когда пользователь его запускает. Поэтому установку тоннеля надо делать быстро. Сканирование портов — это все же не моментальная операция.

#4
8:26, 25 мая 2010

DEN
А если попробовать следующим брутальным способом? Число портов 65к, в принципе не очень большое число. Берем некоторое число K, например 64, и с Port-restricted NAT забиваем 65к/K портов более менее равномерно, для компа это наверно не такое большое дело отправить 1000 пакетов по разным портам. Тогда со стороны Symmetric NAT надо в среднем будет создавать K подключений, чтоб хотя бы одно из них оказалось успешным.

#5
18:50, 8 июня 2010

Тоже интересует вопрос создания прямого p2p соединения между компьютерами. Ничего интересного пока тоже не нашёл. Но наткнулся вот на такую вещь: https://jxta.dev.java.net/
Смотрите, может чем-то будет полезна.

#6
15:36, 9 июня 2010

DEN
> К сожалению, это не так. Практика показывает, что при изменении destination
> IP:Port, внешний Port со стороны Symmetric NAT может поменяться очень сильно. Я
> проверял отправляя последовательно пакеты на два разных сервера. Source-порты
> отличались на десятки тысячь.
Есть разные способы выделения внешнего порта. В твоем случае похоже выделение рандомное. Бывает последовательное (плюс еще кое-какие нюансы).

#7
13:45, 16 июня 2010

Port Restricted Cone NAT (или Port Restricted NAT). То же, что и Address Restricted Cone NAT, но в этом случае маршрутизатор обращает внимание на соответствие номера порта источника и не обращает внимания на адрес источника. В нашем примере маршрутизатор будет транслировать входящие пакеты с любым адресом источника, но порт источника при этом обязан быть 53, в противном случае пакет будет уничтожен маршрутизатором.

то получается, что порт источника p2 должен совпадать с портом сервера-посредника (s) к которому обращался p1, иначе маршрутизатор p1 будит уничтожать все пакеты от p2.
А на практике получается, что Port Restricted NAT всегда заменяет порт отправителя на случайный. Так, что маршрутизатор p2 никогда не выделит нам тот порт по которому маршрутизатор p1 его принял бы.

#8
15:43, 16 июня 2010

Прошу прощения за отсутствие, парился в бане 🙂

Artem
Пока что ниасилил, попробую чуть позже.

Stuw
Ну все равно, сканирование портов — слишком стремно и ненадежно. Пров может вздрюкнуть юзера, если его прога будет перебирать порты.

> обращает внимание на соответствие номера порта источника и не обращает внимания на адрес источника
Это расходится с описанием на вики. Там сказано что должны совпадать и адрес и порт.

#9
18:25, 16 июня 2010

Вот, я попытался изобразить схему Port-restricted NAT Port-restricted NAT

Port-restricted NAT <-></p><p>Port-restricted NAT | Peer-to-peer: все точки над «ё»

После всего этого P1 делает запрос на подключение к P2 через 2.1.1.1:5468 либо P2 пытается подключится к P1 через 1.1.1.1:3576

Все эти махинации производятся по UDP протоколу

Верно ли я понял?

#10
4:51, 17 июня 2010

Если я правильно понял из рисунка твой посыл, то ты упустил вот это: «Once an internal address (iAddr:iPort) is mapped to an external address (eAddr:ePort), any packets from iAddr:iPort will be sent through eAddr:ePort». А то, что ты нарисовал, это symmetric symmetric.

Чтобы это был Port-restricted NAT Port-restricted NAT, синие стрелочи должны выходить из тех же точек ната, из которых выходят зеленые.

Прошло более 1 года
#11
19:53, 21 окт 2011

Хоть много времени прошло с последнего поста, но решил продолжить эту тему.
Думаю частично решить проблему с пробиванием Symmetric NAT можно угадыванием портов.
Некоторые Symmetric NAT выдают порты последовательно. Типичный пример ISA Server — Symmetric NAT с последовательной выдачей портов. В свое проге я пробиваю Port-restricted NAT ISA Server.
С нашими мобильными операторами все сильно сложнее: у московского мегафона и МТС-а похоже полный рандом, а вот билайн выдает порты из нескольких пулов практически последовательно. Пулов похоже не более 10. В пределах одного пула могут выдаваться порты разным адресатам. Плюс еще внутри пула временной счетчик: если в первую секунду выдался порт 30001 то через три секунды выдадут в интервале примерно 30003-30015. Пулы можно вычислить выслав запросы нескольким stun-сервакам.
В целом реализовывать алгоритм для одного билайна смысла мало, да и довольно сложновато и эти наблюдения пока что важны наверно чисто для полноты картины NATов.

Насчет pwnat: похоже программа подразумевает, что на внешней стороне натов будет выделяться тот же входящий порт, что и на локальных портах компов за натом(по умолчанию 2222). Узнав адрес удаленной с помощью ICMP, программа просто шлет пакеты на этот адрес и порт 2222. В целом бывают такие хорошие наты которые стараются выделить такой же порт что и у компа за натом, но это бывает далеко не всегда.

Источник: gamedev.ru

Пиринговая сеть – эффективная и быстрая система обмена файлами

Информационный обмен между людьми – это нормальное явление современного общества, и даже неотъемлемый его элемент. Мы передаем информацию и данные различными способами благодаря использованию сети Интернет и различных сопутствующих технологий. Например, отправить письмо по электронной почте, скачать новую песню или клип из Интернета, запустить новую программу или поиграть в онлайн-игру.

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

У пиринговых сетей свои правила обмена, и часто задействуются специальные программы, предназначены для информационной раздачи и поддержки. Рассмотрим детальнее, что такое р2р сеть, ее виды и принцип функционирования.

P2P – что это

Р2Р, пиринговая сеть – это одноранговая и децентрализованная компьютерная сеть, которая функционирует по принципу равноправия всех участников в ней. Существует несколько серверов, а каждый узел Peer выступает в качестве клиента, при этом может выполнять функции сервера. Благодаря такой структуре сети можно обеспечивать ее бесперебойную работоспособность при любом количестве и комбинации узлов. Каждый пир является участником сети. За счет этого обеспечивается максимально высокая скорость передачи данных вне зависимости от размера первоначального файла.

Сервисы по обмену и распространению файлов являются одним из самым популярных средств для распространения небольших файлов (обычно до 50 Мбайт).

По сути, пиринговая сеть – это объединение нескольких компьютеров, каждый из которых функционирует на равных правах. Это очень удобно не только для обычных пользователей, но и для корпоративных клиентов, которым требуется высокая скорость передачи информации по всему миру.

Информационные данные в сети передаются небольшими кусочками, каждый из них называется пакетом. Чтобы организовать передачу файла с одного ПК на другой, нужно разделить общий файл на отдельные элементы, которые потом будут снова собираться в единый объем, когда пользователь получит их на свой компьютер.

Еще по теме:  Как сделать в Телеграмме чтобы никто не видел мой номер телефона

Пиринговая сеть работает так, что не нужно заходить на конкретный сервер и запрашивать свой файл. Он уже существует где-то в сети и зафиксирован в специальном каталоге. Если по вашему запросу объект находится, тогда можно скачать его себе через специальную программу. Одновременно из нескольких источников пакеты файла будут направляться к пользователю, поскольку каждый компьютер в сети выполняете роль сервера и тем самым обеспечивается параллельная закачка информационных данных.

Максимальную безопасность соединения и скорость передачи файлов можно добится используя VPN.

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

Ключевые особенности функционирования пиринговой сети:

  • можно совместно использовать компьютерами-участниками общие устройства, дисковое пространство, процессоры, вычислительные мощности, пропускную способность. Все данные будут разделяться в обоих направлениях с высокой скоростью, и не требуется маршрутизация через другой компьютер;
  • отсутствует централизованное администрирование, то есть все узлы системы равны по правам и действиям между собой. Файлы, которые используются компьютерами не хранятся в одном месте, поэтому при сбое одного из узлов работа сети не будет нарушена;
  • обработка большого объема информации благодаря распределению нагрузки между своими ресурсами. Даже в периоды самой высокой активности все ПК могут сохранять эффективность своей работы, так как взаимодействуют напрямую между собой;
  • надежная работа, так как сеть работает, даже если один или несколько элементов вышли из строя;
  • можно расширять сеть – каждый может присоединиться к пиринговой сети и стать ее участником. Чем больше рабочих узлов, тем больше мощность системы;
  • простая настройка – поддержка функционирования сети несложная, так как каждый ПК находится на самоуправлении.

P2P – что это

Статьи по теме

Виды P2P сетей

Несмотря на простоту работы Р2Р сети для организации обмена данными и файлами, все равно требуется наличие стабильной платформы, которая будет задействоваться всеми сторонами, а также системы номенклатуры для отметки файлов.

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

Выбор типа также обусловливается видами файлов, которые находятся в общем доступе, а также наличием выделенной платформы и основным источником контента.

Рассмотрим каждый тип сети детальнее:

  • структурированная Р2Р сеть – формируется по принципу иерархии с использованием распределенной хеш-таблицы или DHT. Данный вариант подходит для научных или крупных организаций, где все компьютерные устройства постоянно подключены к сети Интернет. Это позволяет легко найти любые данные и загрузить их максимально быстро, при этом сама система никак не страдает от большого количества устройств, которые подключаются к ней;
  • неструктурированная Р2Р сеть – формируется без иерархии, а каждый ПК будет подключаться к ближайшему одноранговому узлу, если в нем есть необходимые пользователю данные. Сеть будет заполняться запросами, и подключение будет происходить к тем узлам, которые отвечают;
  • гибридная Р2Р сеть – комбинация неструктурированной и структурированной сети, использование одних и тех же данных, а также терминологии. Такая сеть может идти на компромисс между двумя типами, чтобы максимально использовать преимущества каждого из них;
  • торренты – уникальная технология BitTorrent P2P для эффективного поиска и скачивания необходимых файлов. В одном торрент-файле есть полный индекс данных, поэтому происходит быстрое подключение к р2р клиенту и объединение онлайн-пользователей. То есть загрузка происходит совместными усилиями.

Виды P2P сетей

Как Работает Пиринговая Сеть Обмена Файлами?

Впервые пиринговые сети появились в 1999-ом году, когда стартовал проект Napster – всемирная база файлового обмена. Спустя год он стал популярным брендом в глобальной сети с количеством пользователей в 40 миллионов человека. Главная причина такой популярности заключалась в том, что каждый юзер можно бесплатно скачивать музыкальные файлы. Но вскоре защитники авторских прав выступили с критикой и работа Napster прекратилась. Тем не менее, идея получила всеобщее внимание и легла в основу современных пиринговых сетей.

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

Функционирование пиринговой сети весьма отличается от тех, которые работают по схеме «клиент-сервер». Здесь действует принцип взаимодействия «клиент-клиент».

Пиринговая сеть работает таким образом:

  • клиентской программой после подключения к сети посылается в сеть (cloud p2p) список файлов, которые доступны для скачивания с компьютера другими программами-клиентами, а также список файлов, желаемых для получения программой;
  • далее ведется поиск клиентов, которым нужны определенные файлы, и тех программ, у которых они имеются;
  • между двумя группами компьютеров устанавливается прямая связь через рабочие программы и осуществляется файловый обмен;
  • каждый файл разбивается на мелкие части – пакеты;
  • закачивание информации на компьютер происходит в этой раздробленной форме;
  • кроме того, что ваша программа получает необходимые пользователю файлы, она также параллельно передает файлы и их элементы другим заинтересованным участникам.

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

Но как же участникам или пользователям узнать, что вы раздаете какие-то файлы: Для этого используется трекер – специальный сайт, на котором публикуются все сведения о раздачах, которые запускаются с компьютеров. Также вам необходимо загрузить специальный торрент-файл, который указывает путь и объект для скачивания. Другим пользователем этот файл будет приниматься через программу-клиент.

Все пользователи пиринговой сети делятся на три функциональные группы:

  • сидер/сид – у такого пользователя есть все части файла. Например, он первый начал раздачу или скачал файл полностью, или не вышел из сети и раздает данные, используя р2р мессенджер;
  • пир – у такого пользователя нет полностью скачанного файла, а только его часть или несколько элементов. Он одновременно раздает и скачивает элементы файлов, то есть является участником раздачи;
  • личер – у такого пользователя идет скачивание файла, но сам он не успел начать раздачу.

Данное разделение является условным, поскольку каждый участник сети из одного статуса плавно переходит в другой, в зависимости от его действий.

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

Риски при обмене файлами через P2P сети

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

Все эти риски обусловлены такими причинами:

  • показывается реальный IP –адрес – когда происходит подключение к одноранговой сети, IP всегда видимый. Если вы будете использовать torrent или находиться на большой платформе, сотни и тысячи пиров смогут видеть его;
  • файл может иметь неизвестное происхождение – важно всегда проверять, откуда скачивается файл, кто создал торрент, какие протоколы на платформе общего доступа. Если не всегда это возможно, тогда лучше проверять антивирусной программой все файлы;
  • риск заражения шпионским или вредоносным ПО – через пиринговое соединение можно очень легко наткнуться на вирусы и вредоносные программы, поэтому важно учитывать данный факт;
  • насколько законно производить обмен файлами – тут необходимо отталкиваться от национального законодательства.

P2P сети

Программы для обмена файлами

Основными программами для обеспечения быстрого и качественного обмена файлами являются следующие:

  • uTorrent – самая легкая и быстрая программа, 150 миллионов пользователей каждую минут используют сервис для передачи данных;
  • BitTorrent – это специальное расширение и прародитель создания пиринговой системы. Известна давно, но все равно хорошо конкурирует с остальными клиентскими сервисами;
  • BitComet – китайская программа с протоколами безопасности, по большей части ориентирована на азиатский рынок за счет адаптации к алфавиту Китая, Японии и Кореи;
  • eMule – структурированная клиентская система, которая работает по лицензииGNU GPLv2, отличается своей безопасностью и хорошей развитостью;
  • Vuze – считается единственным торрент-клиентом, который имеет систему I2P, обеспечивающую полную анонимность для пользователей.
Еще по теме:  Ка демонстрировать видео из Телеграм на Смарт ТВ

Вывод

Пиринговые сети позволяют скачивать любую информации – от книг до фильмов, от музыки до клипов, от программ до игр. Такая система обмена файлами является прекрасным инструментом для компьютерных пользователей, но при этом требует проявлять осторожность. Чтобы скачивать файлы без риска для своего ПК, следует пользоваться хорошим сервисом VPN.

Приватная сеть обезопасит от рисков вирусного заражения, при этом будет скрывать реальный IP, чтобы не показывать его на обозрение всей сети. Среди преимуществ VPN-сервиса следует отметить такие ключевые аспекты:

  • повышенная защита;
  • правильный обмен файлами в пиринговой сети;
  • скрытие IP и личных данных.

Источник: freevpnplanet.com

Что такое Одноранговая сеть (P2P) и зачем она нужна?

Одноранговая сеть

Если вы регулярно пользуетесь Интернетом, скорее всего вы слышали о терминах одноранговая сеть, децентрализованная сеть, или пиринговая сеть, peer-to-peer или ее аббревиатура — P2P сеть. Все эти термины обозначают одно и то же. Если вы хотите знать, что такое peer-to-peer, и для чего он используется, вы должны прочитать эту статью.

Что такое P2P или одноранговая сеть?

Peer-to-peer, или сокращенно P2P сеть, — это вид компьютерных сетей, использующих распределенную архитектуру. Это означает, что все компьютеры или устройства, входящие в нее, используют рабочие нагрузки в сети совместно. Компьютеры или устройства, которые являются частью пиринговой сети, называются пирами. Каждый узел одноранговой сети, или пир, равен другим пирам.

Привилегированных участников нет, как и нет центрального административного устройства. Таким образом, сеть децентрализованная.

В некотором роде, одноранговые сети — это социалистические сети в цифровом мире. Каждый участник равен другим, и каждый имеет те же права и обязанности, что и другие. Пиры одновременно являются и клиентами, и серверами.

Кроме того, каждый ресурс, доступный в пиринговой сети, является общим для всех узлов без участия центрального сервера. Общими ресурсами в сети P2P могут быть:

  • Процессорные мощности
  • Дисковое пространство
  • Пропускная способность сети

Что делают сети P2P (peer-to-peer)?

Основная цель одноранговых сетей заключается в совместном использовании ресурсов и совместной работе компьютеров и устройств, предоставлении конкретной услуги или выполнении конкретной задачи. Как упоминалось ранее, децентрализованная сеть используется для совместного использования всех видов вычислительных ресурсов, таких как вычислительная мощность, пропускная способность сети или дисковое пространство. Однако наиболее распространенным вариантом использования пиринговых сетей является обмен файлами в Интернете. Одноранговые сети идеально подходят для обмена файлами, поскольку они позволяют подключенным к ним компьютерам получать и отправлять файлы одновременно.

Рассмотрим ситуацию: вы открываете свой веб-браузер и посещаете веб-сайт, где вы загружаете файл. В этом случае сайт работает как сервер, а ваш компьютер действует как клиент, который получает файл. Вы можете сравнить это с дорогой с односторонним движением: загружаемый файл — это автомобиль, который идет от точки A (веб-сайт) до точки B (ваш компьютер).

P2P сеть, веб-сайт - пользователь

Если вы загружаете один и тот же файл через одноранговую сеть, используя сайт BitTorrent в качестве отправной точки, загрузка выполняется по-разному. Файл загружается на ваш компьютер по частям, которые поступают со многих других компьютеров, у которых уже есть этот файл, в P2P сеть. В то же время файл также отправляется (загружается) с вашего компьютера другим лицам, которые его запрашивают. Эта ситуация похожа на двухстороннюю дорогу: файл похож на несколько небольших автомобилей, которые приходят на ваш компьютер, но также отправляются к другим пользователям, когда они его запрашивают.

P2P сеть

Почему одноранговые сети полезны?

Сети P2P имеют несколько особенностей, которые делают их полезными:

  • Их трудно «уронить», т. е. Вывести из рабочего состояния. Даже если вы отключите одного пира, другие продолжают работать и взаимодействовать. Чтобы сеть перестала работать, вы должны закрыть все пиры.
  • Пиринговые сети чрезвычайно масштабируемы. Новые пиры легко добавляются, так как вам не нужно изменять конфигурацию на центральном сервере.
  • Когда дело доходит до обмена файлами, то чем больше одноранговая сеть, тем быстрее это происходит. Наличие одного и того же файла, хранящегося на многих одноранговых узлах в децентрализованной сети, означает, что когда кому-то нужно его скачать, файл загружается из многих мест одновременно.

Зачем нужны пиринговые сети? Легальное использование P2P сетей

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

  • Когда вы в своем доме подключаете устройство на Windows к домашней группе компьютеров, вы создаете между ними одноранговую сеть. Homegroup — небольшая группа компьютеров, которые связаны между собой для совместного использования дискового пространства и принтеров. Это одно из самых распространенных применений для одноранговой технологии. Некоторые люди могут сказать, что домашние группы не могут быть одноранговыми, поскольку компьютеры в сети подключены к маршрутизатору. Однако имейте в виду, что маршрутизатор никак не связан именно с управлением сети. Маршрутизатор не работает как сервер, а просто как интерфейс или связующее звено между локальной сетью и Интернетом.
  • Когда вы создаете сеть между двумя компьютерами, вы создаете пиринговую сеть.
  • Совместное использование больших файлов в интернете часто выполняется с использованием сетевой архитектуры P2P. Например, некоторые онлайн-игровые платформы используют P2P сеть для загрузки игр между пользователями. Blizzard Entertainment распространяет Diablo III, StarCraft II и World of Warcraft с использованием P2P. Другой крупный издатель, Wargaming, делает то же самое со своими играми World of Tanks, World of Warships и World of Warplanes. Другие же, такие как Steam или GOG, предпочитают не использовать P2P, а поддерживать выделенные серверы по всему миру.
  • Обновления Windows 10 поставляются как с серверов Microsoft, так и через сеть P2P.
  • Многие операционные системы Linux распространяются через BitTorrent, которые используют одноранговые сети. Такими примерами являются Ubuntu, Linux Mint и Manjaro.
  • И наконец, технология блокчейн использует одноранговые децентрализованные сети для записи информации в распределенном реестре на всех компьютерах сети одновременно. (Более подробно читайте в статьях «Блокчейн простыми словами» и «Распределенный реестр»)

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

История сетей P2P

Предшественником одноранговых сетей является USENET, который был разработан в 1979 году. Это была система, которая позволяла пользователям читать и публиковать сообщения / новости. Это была сеть, подобная современным онлайн-форумам, но с той разницей, что USENET не полагался на центральный сервер или администратора. USENET копировал одно и то же сообщение / новость на все серверы, найденные в сети. Аналогично, децентрализованные сети распространяют и используют все доступные им ресурсы.

Следующей большой вехой в истории одноранговых сетей был 1999 год, когда появился Napster. Napster был файлообменным программным обеспечением, которое люди использовали для распространения и загрузки музыки. Музыка, распространяемая с помощью Napster, обычно защищалась авторским правом и, таким образом, ее распространение было незаконным. Однако это не помешало людям использовать его.

Хотя Napster был тем, кто вывел P2P в мейнстрим, проект в конечном итоге потерпел неудачу и был закрыт властями по причине незаконного распространения контента.

Можно также с уверенностью сказать, что новой ступенью в развитии пиринговых сетей стало становление блокчейн индустрии в 2008 году вместе с появлением Биткоина. Использование одноранговых децентрализованных сетей — одно из трех основных составляющих технологии блокчейн, наряду с общим реестром записей и механизмом консенсуса.

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

Незаконное использование одноранговых сетей

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

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

Источник: blockchaindesk.ru

Рейтинг
( Пока оценок нет )
Загрузка ...