Как стать автором
Обновить

Комментарии 117

Народ минусует.
Но вы хоть толком объясните (2-3 слова), за что?
процесс реализации данного принципа зайтет куда больше времени, чем у людей во всем мире пропускная способность канала увеличится 100мбит и выше за анлим.
Ознакомьтесь с системой ретрекинга торрентов. Клиентская часть — uTorrent, серверная — xbt.
Уже советовали. Виноват.
обязательно
данная идея была пару лет назад, убилась она довольно легко: качать торренты — есть ретрекеры, качать файлы с файлообменников — файл привязывается к клиенту (ссылка) и вы никак не подцепите туда всех остальных и уж тем более не распределите что кому качать ) а это 2 основных источника больших файлов (музыка, видео, игры и т.д.)… но если вы найдете этому применение — дерзайте, но идея не нова )
Если учитывать только BitTorrent, то можно сделать локальный ретрекер.
Согласен. Но здесь описана более расширенная идея.
Попробуй, объясни новичку, что и как. Проще поставить ему клиент.
Если вы предлагаете таким образом ускорять http, ftp,… скачки, то возможно.
В случае с p2p можно лишь улучшить поиск локальных пиров. Это, по-моему, вполне решит проблему.
Если вы предлагаете таким образом ускорять http, ftp,… скачки, то возможно.
Это основная идея
скачку файлов (торренты, ed2k, p2p и т.д.)

Так бы и писали, что http и ftp.
Нет, я подразумевал все и торренты, и ed2k, и p2p, и http и ftp.
Основное что хотелось бы — торренты, ed2k.

На торренты конечно можно поставить локальный ретрекер. Но нет такой прозрачности пользования им, как описано в идее.
никогда не вдавался в подробности технической реализации, но на моем локальном трекере ретрекер работает автоматически для всех раздач абсолютно прозрачно и никаких специальных знаний от пользователя не требует
Это решит проблему только для популярных файлов. Для иных же файлов разница между пирингом или HTTP будет незначительная.
Согласен. Для непопулярных файлов есть только один вариант — качать через чужой канал, как ниже предлагают (если не самому, конечно). Не уверен, что это хорошо и что это много кому понравится.
Тоже об этом думал. Хотел даже реализовать.
На чем застопорились?
На времени, и в одиночку такой проект не поднять на серьезном уровне.
Жаль. Но полностью с вами согласен.
НЛО прилетело и опубликовало эту надпись здесь
Зачем договариваться?
Если установит себе клиентскую часть — то договор уже подписан.
Поможет скачивать он, помогут ему.
НЛО прилетело и опубликовало эту надпись здесь
Объяснить людям — не проблема. Выгода здесь идет всем.
НЛО прилетело и опубликовало эту надпись здесь
>Я видел неоднократно людей, качающих по битторренту популярный файл с ограничением скорости на отдачу, и выключающих после скачивания торрент-клиент нафиг, чтоб не раздавать.

В этом кстати иногда есть смысл, если такой человек поддерживает раздачи с минимальным количеством источников.
Мне показалось, вы только что изобрели торрент, только наоборот.
Мне кажется в итоге кто-то будет качать больше из сети, кто-то меньше. В среднем получится то же самое, как если бы пользователь просто скачал то что ему надо.
Смоделируйте модель, когда например 5 пользователей хотят скачать по паре файлов разного размера через вашу систему. И сравните с ситуацией, когда пользователь качает только себе.
Имелось в виду, мне кажется, что наборы файлов, которые надо скачать, у пользователей сильно пересекаются. И тогда в сумме из «внешних интернетов» надо качать только 1 экземпляр каждого.
Мне кажется в итоге кто-то будет качать больше из сети, кто-то меньше. В среднем получится то же самое, как если бы пользователь просто скачал то что ему надо.


Не совсем так.
Пусть у Васи есть скоростной безлимит и он в основном просматривает страницы, переписывается в чате и т.д. Основная часть пропускной способности не используется. Так почему, если не жалко, помочь другим?

Часто наблюдал, когда один и тот же файл скачивали с разных торрентов. Так не проще всем вместе и в основном не заметно для глаз? В локальной сети могут появиться фильмы хорошего качества и для всех.
Теперь стало более понятно. Распределенная сеть качальщиков.
Если лаконично — то, вы правы, распределенная сеть качальщиков
тогда какой смысл ване покупать безлимитный быстрый инет, если сотня таких вань будет постоянно юзать канал васи? об обратной стороне медали не задумывались?
Ну а если для Вани это просто круто иметь такой инет, или ночью он просто спит, а комп работает, или смотрит фильм и в инете не «лазает»?
Вы снова смотрите на проблему однобоко с той же самой стороны что и раньше. Но живем мы не при коммунизме и в «скачивании файла» занят не только вася и ваня, но и еще множество узлов, в том числе провайдер, который из-за этой сети явные убытки понесет на школьно-студенческой возрастной группе, которая отнюдь не мала (и не стоит говорить тут про «крутость канала», менталитет у нас не тот, пираты и халявщики в основном). Идея витающая в воздухе и часто появляющаяся в виде постов, но на деле далеко не ушла вовсе не из-за своей «замечательной новизны». Вы забыли о таких вещах как приватность и ответственность за контент, копирасты такой проге будут рады, за пределами РФ штрафовать можно будет в 2 раза больше.
Скрестить с чем-то наподобии Freenet или Perfect Dark?
Сложно
Идея хорошая, — но локалка должна быть гигантских обьёмов, чтобы попадать в файловые коллизии. Прокатит, имхо, с релизом новых DVD-рипов или свежей порнушки :)

А для всего остального (не параллельного) есть локальные DC и трекеры :)
Зачем смотреть коллизии? Файл идет ведь по заявке.
Добавить в клиенте галочку «публичный файл». и сохранение и получение списка публичных файлов с сервера, чтобы люди могли посмотреть кто-что уже скачал (если скачавший захочет конечно) и скачать себе то-же самое но уже по локальному трафику
Ты скачаешь через меня CP, а потом ко мне приедет party van. Без доверия такую сеть построить не возможно.

Второе, скорее всего люди не захотят платить за более дорогие тарифы, чтобы часть трафика отдавать.
Можно круг людей ограничить. Что-то вроде рейтинга на торрентах.
Каким образом этот рейтинг считать?
Кто сколько отдал по трафику, например.
Как это влияет на благонадёжность-то?
Например через меня скачали 1Гб. Я могу скачать с остальных 1.5Гб.
Чтобы это учитывать надо весь сведения о всём трафике обрабатывать на едином сервере, связанном с биллингом провайдера.

Плюс это:
>>>Ты скачаешь через меня CP, а потом ко мне приедет party van. Без доверия такую сеть построить не возможно.
Ограничить вход для проверенных людей. Или сделать как в чатах — по комнатам.
Теперь мы несколько уходим от «простоты», верно? Все усложняем и усложняем. Вход для проверенных людей означает обязательную регистрацию. Комнаты — из создание, выбор, подключение. И вот уже мы пришли к тому, что простому неопытному пользователю использовать систему будет сложно. Так чем же хуже торренты с локальными пирами?
Я ведь не говорю что это должно быть обязательно. Но пусть такая возможность будет.
Если народ начинает наглеть — применяются меры. Ведь так?
Проблема в том, что с дальнейшим усложнением, все это не так уж и сильно начинает отличаться от торрента. И проблема в том, что меры все равно придется принимать, т.е. проектировать ПО нужно с учетом этого. Я не говорю, что ваш проект бесполезен, но тот факт, что его до сих пор никто даже толком не начал реализовывать (я имею ввиду, публично) означает, что, скорее всего, технология в сравнении с аналогами менее перспективна
Может быть вы и правы…
если основной упор на http и ftp, то чем не подходят обычные прокси-сервера?
«Настраивают в параметрах ту пропускную способность своего безлимита, которую готовы пожертвовать ради доброго дела»

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

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

Ну это я уже фантазирую :)
Мы в локальной сети (человек 10), обладая в среднем 6-15 мегабитами, создали свою «домашнюю» группу внутри которой шарили 90% канала. Правда, нагрузки на проц добавляло чутка, зато можно было скачивать около 6-7 мегаБАЙТ в секунду и не париться :)
О чем и речь.
Только идея в максимальном упрощением этого с добавлением новых возможностей
Если я правильно понял, вы предлагаете единый трекер для всего мира?
Или принцип фидо?
ИМХО В любом случае p2p лучше развивать в направлении децентрализации и отказа от трекеров…
Нет, только для локальной сети города.
>>И в итоге, например нужен какой-то фильм, программа, книга — качаем всем миром с итоговой скоростью несколько Тб/мин :)
С какой бы скоростью на отдавался файл, у Вас остается локальное ограничение скорости провайдером. Домо-сети за частую поднимают у себя ММС (Мультимедиа сервер) для таких целей и дают туда 100Мб/с доступ.
Вообще я таки не могу понять при чем тут p2p, тема больше как бы намекает на создание локальных IX (точек обмена траффиком). В таком случае действительно можно добиться большей скорости в сети (читай городе).
Да, ограничение провайдером есть. Пусть оно в 10 Мб. Каждый качает по 1 мб. Итог 10 мб (примерно).
А если бы вы качали один — то больше 1 Мб не подниметесь.
Есть такая вещь как ретрекер (он же поиск локальных пиров). Но многие торрент трекеры запрещают его, так как при этом становиться не возможно учитывать скачано/роздано.
Если трекером это не запрещено — тогда действительно быстрее. Скорость на мир 10 Мб/с, в локалке 100 Мб/с. 10 приов качают на полной скорости из мира, при этом отдают друг другу примерно на макс скорости внутри сети. (На самом деле это не всегда так, но основная задумка такова...)
Я знаю про ретрекер для торрентов. Но как же быть с http, ftp, ed2k...?
Не использовать для передачи больших объемов данных.
Каждому протоколу своя ниша, пусть торренты уже займут свою.
Каждому протоколу своя ниша, пусть торренты уже займут свою.
Да я разве против? Идея то совсем в другом…
в общем то сети DC++ в локалке фактически тем же и занимаются, несколько человек скачивают с внешки, остальные с них по локалке, конечно не совсем скачка по запросу, но она в большинстве случаев и не нужна, если DC сеть большая то в ней все есть. Скорость в Тб/с все равно не добиться (на отдающем сервере все равно какая то конечная скорость отдачи), кроме того один и тот же фильм/игра будет скачиваться по много раз из разных мест (с некоторыми отличиями), в то время как DC сеть уменьшает излишний трафик.
блин! год назад была такая идея… даже в песочницу постил… и начинал что-то делать по этому поводу… но никто не поддержал…

вроде что-то осталось… могу исходниками поделиться… если найду…
Давайте!
ну сейчас я на работе… вечером займусь поисками… если что то найду, то как передать?
Пишите на почту в Хабре
коммунизм какой-то. от каждого по способностям — каждому по потребностям.

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

* да простят меня все Иваны и Василии))
Повторюсь:
Можно круг людей ограничить. Что-то вроде рейтинга на торрентах.
и какой тогда смысл от этой программы? smb щара с отслеживанием изменений и автозагрузкой появившихся линков и торрентов, раздал кому надо линки и пароли и вот тебе «воплощение в жизнь». На многих небольших и локальносетевых трекерах есть раздел «Заявки», где ты можешь опубликовать что хотел бы посмотреть и если кто-то захочет — зарелизит, в чем разница от всего уже существующего? Очередной велосипед.
Разница в том, что скачка начинается сразу, без «и если кто-то захочет — зарелизит»
на шаре тоже сразу
Вы забываете, что идея не только для торрентов, но и для других видов трафика.
а я что, ограничивался торрентом? кидайте туда txt со списками ссылок или url файлы и сливайте тем же wget'ом при появлении.
я подразумеваю что wget у вас есть, бо на винде такое реализовывать самоубийство, линков на троянов накидать могут дофига.
нужно подумать…
Не сработает — те, кому нужнее ваша идея, не могут заработать себе рейтинг. А те, кто может — тем он не нужен ;)
Вы не совсем правы.
Пусть у меня и еще 10 человек безлим. Мы объединились. И каждый помогает другому в скачке.
идея инетерсная сам думал об этом года так три назад.
тут необходимо придумать кроме технической реализации, нормальную мотивацию.
К примеру чем больше я выкачиваю для общества, тем у меня выше рейтинг и тем больший приоретет имеют мои закачки.
Публичный сервер не очень подходит для такой реализаци в виду того что его кто то должен поддерживать, на нем должны быть шустрые и большие винты. остается только вариант с ретрекером
А если Публичных серверов не очень много и вход по паролю только для проверенных/своих людей? Как комнаты в чатах. А если скачиваемый файл пересекается по комнатам — значит участвуют все.
уж очень мудренно, можно тогда связку torrent и dc
чего уж мелочится давайте напишим свой протокол только не p2p, а net2net.
идея должнать проще и лаконичнее
Идея хорошая, — но локалка должна быть гигантских обьёмов

+1
для тестов подошла бы локалка в Томске
У всех провайдеров междуьсобой бесплатный пиринг. У большинства пользователей городской конект на скорости 100мбит. И у многих есть достаточно дешевый внешний безлимит от 64к до 1024к, при том что компы на ночь не выключаются и внешка ночью не используется.
В идее что то есть, но слишком сложная и слабая.
Как сделать в несколько раз проще и чтобы прототип за несколько дней получить?

Это меня тоже интересует. Может займетесь разработкой?
самое интересное другое, если мы так шустро будем качать кто же будет раздавать? надо регистрировать общий аккаунд, а такие выкрутасы на каждый трекер воспримит нормально
Да, аккаунт общий — городской. С сервера и вести раздачу в инет.
С владельцами трекеров, я думаю можно договориться.
как повезет, владельцем трекеров не выгодно, что бы вы меньше заходили на форум и смотрели рекламы, либо договориться о показе рекламы в клиенте
Аккаунт всегда можно регить новый. Хоть это и плохо, но один их способов обхода ограничений.
В принципе вы переизобрели торренты, но с +1 централизованным звеном. Видимо потому и минусуют.

Не то чтоб ваша идея плоха, вовсе нет, но как-то мало смысла изобретать ещё один велосипед, тогда как торренты по сути позволяют добится того же самого.
Смотрите:
1. Юзеры должны сговорится, что они скачивают «один и тот же файл», а по сути файл по одной и той же ссылке, что ничем не отличается от случая, когда юзеры не сговариваясь качают этот файл по торренту с одного трекера. Если в вашей LAN будет юзер, который (без необходимости договариватся с вами) качает или уже скачал и раздаёт этот файл, торрент клиент, в силу своей разумноси, должен отдать ему предпочтение т.к. скорость связи с ним наивысшая.
2. Есть еще такие вещи как Intertet eXchange точки, которые могут действовать в рамках региона или даже страны (UA-IX например), и пиры из этих регионов при скачивании с торрентов тоже включатся в процесс. Скорость обмена с ними обычно очень высока.
В вашем же случае такого скорее всего не будет, если только если сам сервер не будет тянуть торренты. Потому что HTTP/FTP здесь отпадают.
3. Если нужный файл в локалке уже кто-то скачал по HTTP например, ваш сервер об этом всё равно не узнает. Если же он скачал его через p2p, ваш сервер не нужен чтоб найти этот сид.
Выходит что лучше просто отдавать предпочтение p2p и торрентам, нежели HTTP/FTP.

Для использования торрент клиента вместо вашего сервера ему (торрент клиенту) нужно только ограничить скорость скачивания для не-внутри-LAN (и, желательно, ещё и не-внутри-IX, если ваш провайдер работает с IX) пространств IP адресов, и результат будет не хуже (а за счёт IX и лучше, чем в случае вашего решения).

Что же касается вашего сервера, есть проблеммы с делением каналов. Сервер должен качать файл Х только через каналы юзеров, запросивших файл Х, а не через все доступные каналы юзеров. Иначе нет ничего проще, чем «поиметь» всех остальных поставив на закачку файл и вырубив клиент у себя — файл выкачается через каналы других пользователей, и достанется нехорошему юзеру задаром.
Если будет большое число юзеров, качающих разные файлы, на сервере скоро может закончится место. Если стирать файлы сразу же, те кто будет качать их потом будет перекачивать всё наново, если хранить, нужно определится с сроком хранения, и вопросом что делать когда кончится дисковое пространство.
Да и неприятна сама необходимость выделенного сервера в LAN на коммунальных основах.

Вобщем идея не настолько хороша чтоб «огород городить», т.е. работать над новым стандартом, имплементациями сервера и клиентов _под все популярные платформы_, преодолевать инерцию пользователей (а она у простых пользователей ой как велика — популярность ICQ на протяжении многих лет тому пример).

(Ну и что касается осознанного обмена файлов, скачанных не через торренты, в многих LAN популярны локальные DC++ хабы, хотя вы наверно в курсе. Решение не самое плохое).
Вобщем идея не настолько хороша чтоб «огород городить», т.е. работать над новым стандартом, имплементациями сервера и клиентов _под все популярные платформы_, преодолевать инерцию пользователей
Хотелось бы максимально упростить процесс скачки. Пользователю тогда достаточно было бы установить программу-клиент и не задумываться ни о чем более.
А на все остальное — сервер не для всех жалающих, а только для своих.
Вобщем идея не настолько хороша чтоб «огород городить», т.е. работать над новым стандартом, имплементациями сервера и клиентов _под все популярные платформы_, преодолевать инерцию пользователей
Хотелось бы максимально упростить процесс скачки. Пользователю тогда достаточно было бы установить программу-клиент и не задумываться ни о чем более.
А на все остальное — сервер не для всех жалающих, а только для своих.
> А на все остальное — сервер не для всех жалающих, а только для своих.
Хм, а в чём тогда смысл? Если сервер на 10-15 человек, то врядли им будут часто нужны одни и те же файлы. Вероятность того, что нескольким «абонентам» понадобится один и тот же файл будет более-менее приемлемой только в случае если абонентов будут сотни или даже тысячи.

Ну и для такого самоограниченного решения тем более никто не будет напрягатся и писать.
При чем здесь понадобиться? Может он нужен только мне, но остальные, если у них канал не занят, могут мне в этом помочь. Или я сам скачаю файл за 1 день, или с помощью других, но за 4 часа.
Тогда у вас должна быть очень узкая компания людей. В городском масштабе это будет просто рай личера — куча народу будет качать за счёт других то что нужно им, и смысл затеи сведётся на нет (если конечно смысл её не в «кормлении» всяких паразитов).
полностью согласен
Что в вашей жизни ПРИНЦИПИАЛЬНО изменится, если Вы файл получите через 24часа, а не сегодня через 4 часа? Не задумывались?
Инет тормозит. Случайно отправил 2 раза.
тормозит потому что качаете HDTVRip по ссылке васи?
:)
у меня нет пока такой программы.
но от вас разит сарказмом.
P.S. И да, забыл упомянуть о том что приличные торрент трекеры ведут систему рейтингов для пользователей, позволяющую как минимум боротся с наглым личерством.
Для вашего решения это не работает — торрент аккаун у сервера будет один на всех (кстати тоже хороший вопрос — кому из юзеров прийдётся предоставить свой аккаунт?). Прийдётся либо вводить систему рейтингов локально для вашего сервера, либо решение будет весьма уязвимо для личей.
НЛО прилетело и опубликовало эту надпись здесь
а кому продать? вернее кому ясно, но кому это выгодно? трекерам, провайдеру? ни кому из них, как следсвие с такой вещью будут бороться
Выгодно конечным пользователям.
НЛО прилетело и опубликовало эту надпись здесь
пожалуйста, прочитайте все комменты.
не хотелось бы вам отвечать, на то, что уже отвечал людям в этом посте.
НЛО прилетело и опубликовало эту надпись здесь
не всегда их там можно найти, да и бывает поздно
пример: дрова с сайта производителя, если инет с 32Кбит
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Выглядит заманчиво система динамического использования каналов пользователей, типа пока Вася читает документ и ничего не качает, Ваня использует васин канал и его скорость увеличивается.

Но это в идеале.

Это значит, что почти все время каналы всех включенных пользователей будут утилизированы на 100%.
Ни один провайдер, по крайней мере в Москве вечером, не в состоянии обеспечить такую картину — каналы провайдера сильно просядут, раза в 3-4.
В результате при подключении новых пользователей общая скорость перестанет увеличиваться.
И провайдер будет биться с таким софтом до последней капли крови.

Вообще все можно сделать гораздо проще — для 6 человек, которым требуется по 1Мбит/с покупается вместо 6 аккаунтов по 1Мбит/с один аккаунт по 6Мбит/с и все ходят через прокси или NAT + VPN. Реальная скорость каждого человека по теории массового обслуживания будет гораздо выше 1Мбит/с
Аккаунт 6Мбит/с раза в 3 дешевле 6 аккаунтов по 1Мбит/с
Но большинству московских провайдеров это очень сильно не нравится, например NetByNet прямо запрещает установку проксей и NATов на клиентских машинах и реально пытается с ними бороться.
Москва слишком большой город.
Да и пользователей можно брать только своих, как уже обсуждалось выше.
Думаю, если такую систему вообще реализовывать, то нужен более глобальный уровень, чем простая закачка файлов по http/ftp — нужно распределять сами каналы, как общий ресурс. Возможно, есть какие-то разработки в распределении именно каналов, по аналогии с облачными вычислениями.
Именно. Это более верный идеологический путь. От него и стоит отталкиваться.
«Ресурс» же регулировать на клиенте вроде объёма трафика и канала.
В одно время делал подобный «комплект» в виде сервера и клиента. Абстрактный уровень клиента представлял собой определённый канал для скачивания данных из определённого потока(по URL) с определённым оффсетом и длиной.
Я сразу отказался от имплементации в сервере поддержки p2p-сетей и торрентов(по сути, тоже p2p).
Как оказалось дальше, реализация распределённого скачивания проигрывает в скорости и не только(при плохой реализации оно может напомнить DDOS). Да и стоит помнить что скорость источника тоже не велика. Если его скорость(а точнее — пропускная способность канала) будет меньше чем скорость нод в такой сети, то будут огромные потери.
Проблем много, плюсов тоже. Я же забросил этот мини-проект ибо не было ни сил, ни времени.
Плагин к firefox, реализующий следующий алгоритм:

— при старте любой закачки считать хэш от url
— искать этот хэш в некой общей базе
— если есть, скачать из этой базы торрент с качаемым файлом и поставить на закачку в uTorrent, а закачку в FF ставить на паузу
— если нет:
— — ждать завершения загрузки
— — делать из скачанного файла торрент
— — добавлять в торрент адрес ретрекера (по умолчанию — retracker.local или руками задавать в настройках)
— — добавлять в торрент оригинальный url в качестве веб-сида
— — заливать торрент в общую базу (идентификация — по хэшу URL исходного файла)
— — ставить torrent на раздачу в uTorrent.

[+] самая простая реализация
[+] не требует отдельной серверной части и по максимуму использует уже имеющиеся технологии
[+] решает проблему повторного скачивания одного и того же
[+] ретрекеры есть почти у всех правайдеров, а если у конкретного ещё нет — будет дополнительный стимул уговорить администрацию его сделать, или поднять его на одном из пользовательских компов, см.

[-] не увеличивает скорость для первого качающего (вообще первого, не обязательно именно из вашей сети). То есть, пока хоть кто-нибудь в интернете не скачает файл с использованием такого плагина, увеличение скорости для остальных наблюдаться не будет.
[-] если url однозначно не идентифицирует закачку (например, закачка работает только после авторизации через cookies, или же url содержит уникальные для каждого клиента ключи), работать не будет. Возможно, схему можно усовершенствовать для поддержки и таких случаев тоже.

Если есть вопросы по поводу реализации этой схемы — пишите, подскажу.
Уточнение: файлы по одному и тому же url могут меняться, это тоже надо учитывать. Проверять if-modified-since, размер файла итд.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории