Страницы: 1
Уже была попытка реализовать P2P сеть в фаерфоксе но не получилось видимо. Я предлагаю реализовать более простой вариант на основе PFSP.
Это расширение хедеров HTTP. На данный момент в таком виде
Partial File Sharing Protocol (Протокол обмена частями файла)
HTTP Extensions for a Content-Addressable Web
Partial File Sharing Protocol 0.2.1
Partial File Sharing Protocol 0.1.2
Выглядит это на данный момент так.
Client:
GET /get/partials/my_song.mp3 HTTP/1.1
User-Agent: FooBar/1.0
Host: 123.123.123.123:6346
Listen-IP: 126.126.126.126:6346
Connection: Keep-Alive
Range: bytes=73826-
X-Content-URN: urn:sha1:QLFYWY2RI5WZCTEP6MJKR5CAFGP7FQ5X
Alt-Location:
http://theclient.com:6346/get/2468/my_song.mp3
Server:
HTTP/1.1 206 Partial Content
Server: FooBar/1.0
Content-Type: audio/mpeg
Content-Range: bytes 73826-83825/533273
Content-Length: 10000
Connection: Keep-Alive
X-Available-Ranges: bytes 0-285749
X-Content-URN: urn:sha1:QLFYWY2RI5WZCTEP6MJKR5CAFGP7FQ5X
X-Thex-URI:
/uri-res/n2x?urn:sha1:QLFYWY2RI5WZCTEP6MJKR5CAFGP7FQ5X;VEKXTRSJPTZJLY2IKG5FQ2TCXK26SECFPP4DX7I
Alt-Location:
http://otherserver/get/2468/my_song.mp3 2008-08-07T23:00Z, http://otherclient:6346/get/2468/my_song.mp3 2008-08-07T22:05Z, http://124.124.124.124:6346/uri-res/N2R?urn:sha1:QLFYWY2RI5WZCTEP6MJKR5CAFGP7FQ5X
<10000 bytes of data>
его успешно используют шареаза и другие Gnutella P2P клиенты. Но скачать с них не удасться ибо Mozilla забанена у них поскольку не является P2P клиентом.
Логично его использовать для файлов скачанных с источников (серверов, пользователей) подерживающих PFSP и файлов которые сам пользователь расшарит.
Если реализовать поддержку в FireFox тогда начнут и на обычных серверах включать его поддержку. Для сервера это огромная польза - разгрузка канала и ресурсов. Для прокси это польза ибо проверяется изменился ли файл по его хешу. Для клиентов польза ибо файл гораздо быстрее скачивается (больше источников файла которые могут быть гораздо ближе и быстрее).
Но имеет это смысл для файлов больше 1МБ. Тобиш аудио (MP3, WMA ...), видео контента(FLV, AVI ...).
Отредактировано ivan386 (07-09-2008 16:04:45)
Отсутствует
Это скорее не вопрос это предложение. И не для плагина.
Дело не в бане.
По минимуму:
Надо реализовать поддержку скачки по частям с разных источников переданных в заголовке Alt-Location. Ну и соответственно проверку по дереву скачанных частей X-Thex-URI. Ну и не запрашивать частей которых нет благодаря X-Available-Ranges. Если главный сервер(первоисточник) не отдал X-Content-URN и X-Thex-URI по которому можно идентифицировать что скачиваеш именно то что надо то скачивается файл только полностью и с одного источника если главный(сервер) занят (503).
Далее шаринг:
Listen-IP указывает что клиент может отдавать и сервер автоматически добавляет его в источники. Ну а далее обработка запросов, отдача файла, обмен источниками - тобиш реализация функций сервера.
UA соответственно кому надо тот поминяет.
Отредактировано ivan386 (09-09-2008 15:28:29)
Отсутствует
Страницы: 1