Перейти к содержанию

Рекомендуемые сообщения

Спросите лучше об этом http://google.com.ua/ (`как устроена p2p сеть?`) Twisted Evil

P2P [peer-to-peer] Описание.

Популярность P2P набирала обороты вместе с ростом популярности наиболее известного клиента, использовавшего данную технологию - Napster - и достигла своего пика в момент коллапса этой сети. Но уже за несколько месяцев до смерти Napster стали появляться альтернативные сети, многие IT-лидеры объявили о поддержке P2P в своих новых продуктах - в общем, явление стало по-настоящему 'модным'.

Четкого определения, что же такое P2P, нет. Поэтому приведу два наиболее распространенных. P2P (peer-to-peer) - это технология построения распределенной сети, где каждый узел может одновременно выступать как в роли клиента (получателя информации), так и в роли сервера (поставщика информации). Как правило, сеть состоит из равноправных узлов, причем каждый из них взаимодействует лишь с некоторым подмножеством узлов сети, так как установление связи 'каждый с каждым' невозможно из-за ограниченности ресурсов (как вычислительных, так и пропускных). При этом передача информации между узлами, не связанными в данный момент непосредственно, может осуществляется как по своеобразной эстафете - от узла к узлу, так и путем установления временной прямой связи. Все вопросы маршрутизации и авторизации сообщений, передаваемых по эстафете, лежат не на едином сервере, а на всех этих отдельных узлах. Такое определение также известно под названием Pure P2P.

Второе определение носит более общий характер: P2P - это класс приложений, совместно использующих распределенные ресурсы (дисковое пространство и файлы, вычислительные ресурсы, пропускную способность и т.д.). Именно в эту категорию попадают системы распределенных вычислительных сетей (SETI@HOME), некоторые файловые обменные сети (Napster) и службы сообщений.

Плюсы и минусы

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

управляемость - простота поддержания работоспособности системы, а также решения вопросов, связанных с обновлением, восстановлением после сбоев и регистрацией активности (logging);

информационная согласованность - достоверность, проверяемость и последовательность информации;

расширяемость - возможность расширения информационных ресурсов системы;

устойчивость к сбоям - надежность системы;

безопасность - степень защиты информации от несанкционированного доступа;

устойчивость к внетехнологическому вмешательству - возможность (или невозможность) вмешательства государственных и иных органов в работу сети ввиду какаих-либо причин (например, обвинение в нарушении авторских прав);

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

А теперь сравним P2P и другие существующие топологии, дабы выяснить их преимущества и недостатки.

На примере Napster довольно просто понять, как работает типичная клиент-серверная архитектура с небольшими вставками P2P на одном этапе.

Пользователь загружает программу-клиент.

Пользователь входит в сеть и регистрируется на сервере Napster, предоставляя информацию о себе (файлы в обменном фонде, ширина канала). Сервер регистрирует активного пользователя, внося список файлов в свою базу данных.

Пользователь делает запрос на предмет интересующего его файла. Сервер производит поиск в своей базе, генерирует ответ (список IP-адресов узлов, имена и размеры файлов) и отправляет его пользователю.

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

После загрузки он информирует сервер о результатах.

Как видно, в данной схеме сервер присутствует на трех этапах, тогда как принцип P2P работает лишь на этапе загрузки. По сути, именно такая завязка на сервер и сгубила эту популярную сеть.

Области применения

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

Файловые обменные сети (file-sharing). В данном случае сети P2P выступают хорошей альтернативой FTP-архивам, которые уже давно перестали справляться с ростом информационного наполнения и числа потребителей. Несмотря на постоянный рост количественных характеристик файл-серверной архитектуры, P2P потенциально обладает целым рядом преимуществ: балансировкой нагрузки, более широкой полосой пропускания, высокой 'живучестью' и широкими возможностями по публикации контента. Примеры - Napster, Gnutella и ее производные.

Распределенные вычислительные сети. Например, такие как SETI@HOME. Этот проект продемонстрировал громадный вычислительный потенциал для хорошо распараллеливаемых задач. В настоящий момент в нем принимают участие свыше трех миллионов пользователей, а общее число 'процессоро-лет' перевалило за семьсот тысяч, и все это на абсолютно бесплатной основе, когда добровольцы не получают ничего кроме красочного скринсейвера и возможности общественного признания.

Службы сообщений (Instant-messaging). Думаю, что одни лишь имена наиболее популярных приложений данного класса - ICQ и AIM - говорят сами за себя.

Сети групповой работы (P2P Groupware). Подобные приложения пока мало распространены, но в их будущем сомневаться не приходится. Одними из самых перспективных считаются Groove Network - сеть, предоставляющая защищенное пространство для коммуникаций, и OpenCola - технология поиска информации и обмена ссылками на наиболее интересные источники, где в роли поискового сервера выступает не бездушная железка, а каждый из пользователей сети, что обещает гораздо более высокую релевантность (при ответственном подходе пользователей к процессу, конечно).

Проблемы P2P

Как и у любой молодой технологии, у P2P есть, помимо технических, и свои социальные проблемы. Многие исследователи отмечают весьма неприятную ситуацию, сложившуюся в Gnutella: около 70% пользователей не добавляют вообще никаких файлов в обменный фонд, а около 50% всех найденных ресурсов предоставлены 1% (одним процентом!) пользователей [2]. Психология 'общества массового потребления' постепенно превращает сеть равноправных узлов в клиент-серверную, со всеми вытекающими последствиями (падение производительности и надежности).

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

я что-то не понял, это я на яндексе уже читал и спрашивал не про это, а спрашивал как установить и настроить п2п сервер.

Ссылка на комментарий
Поделиться на другие сайты

Вопрос: "Как установить и настроить п2п сервер?"

Ответ:

1. Скачать "п2п сервер"

2. Установить "п2п сервер"

3. Настроить "п2п сервер"

4. Запустить "п2п сервер"

5. Пользоваться "п2п сервером"

Шаги 2-5 осуществляются в соответствии с документацией к "п2п серверу".

Ссылка на комментарий
Поделиться на другие сайты

Ох, Мыш, до чего же мне твои ответы нравятся... краткие, емкие и главное всегда в тему... (вот что значит юрист Smile)

Стараюсь брать на вооружение

Ссылка на комментарий
Поделиться на другие сайты

трабла в том что у меня только один образ диска был (Master2.4 install CD), где можно скачать остальные диски в инете на ftp://ftp.altlinux.ru я не нашёл ждругих дисков.

Ссылка на комментарий
Поделиться на другие сайты

я новичёк в этом.

я пытаюсь скачать с инета пакет

apt-get install make

на что он мне выдает \

[root@ftp /]# apt-get install make

Reading Package Lists... Done

Building Dependency Tree... Done

The following NEW packages will be installed:

make

0 upgraded, 1 newly installed, 0 removed and 0 not upgraded.

Need to get 0B/382kB of archives.

After unpacking 814kB of additional disk space will be used.

Media Change: Please insert the disc labeled

'ALT Linux 2.4 Master Miscellaneous CD'

in the drive '/mnt/cdrom/' and press enter

что делать?

Ссылка на комментарий
Поделиться на другие сайты

я понимаю, что она просит диск, которого у меня нет:

1) Где его можно скачть.

2) Можно ли обойти это? Например скачать с инета обовление этого пакета и как его тогда установить?

Ссылка на комментарий
Поделиться на другие сайты

спасибо. с этим разобрались.

There are some requirements that need to be fulfilled before you attempt to compile Verlihub. Each linux distribution has it's own type of package management system, it is up to you to research it. From here on, gentoo distribution specific instructions will be used. For example, debian has apt-get, fedora/suse/mandrake use RPMs. Go to rpmfind.net to find RPMs for your distribution. These are the requirements:

gcc version >= 3.2 (gcc --version will tell you the version number)

mysql (3.23 or higher) Slackware users only: use 4.0.20 or higher

Perl-compatible regular expression library (pcre)

GeoIP

Optional: A remote way to administer mysql. (This guide is not dependent on it, and it IS NOT a requirement. For those that use mysql, this will make life a lot easier.)

Смотрю этот фак и ничего не поял, кто может подсказать?

Ссылка на комментарий
Поделиться на другие сайты

народ делаю ./configure

выдает:

checking for a BSD-compatible install... /bin/install -c

checking whether build environment is sane... yes

checking for gawk... gawk

checking whether make sets $(MAKE)... yes

checking for g++... no

checking for c++... no

checking for gpp... no

checking for aCC... no

checking for CC... no

checking for cxx... no

checking for cc++... no

checking for cl... no

checking for FCC... no

checking for KCC... no

checking for RCC... no

checking for xlC_r... no

checking for xlC... no

checking for C++ compiler default output file name... configure: error: C++ compiler cannot create executables

See `config.log' for more details.

пытаюсь поставить к примеру apt-cache search gcc

apt-get install gcc

Всё устанавливается, но после того как опять делаю команду ./configure он показывает что пакет всёравно не установлен.

В Чём дело?

Ссылка на комментарий
Поделиться на другие сайты

>C++ no

>CC no

компилятор ему нужен, посему как после ./configure обычно идет make, вот тут-то компилятор и пригодится

Ссылка на комментарий
Поделиться на другие сайты

fomit-frame-pointer -D_FILE_OFFSET_BITS=64 -DHAVE_ERRNO_AS_DEFINE -DONE_THREAD

checking for MYSQL LIBS... -L/usr/lib/mysql -lmysqlclient -lz -lcrypt -lnsl -lm

checking for MYSQL VERSION... 4.0.24

checking for MYSQL - any version... no

*** The test program failed to compile or link. See the file

*** config.log for the exact error that occured. This usually

*** means MYSQL was not installed, was incorrectly installed

*** or that you have moved MYSQL since it was installed. In

*** the latter case, you may want to edit the $ac_path_lib_mysql_config

*** script: $MYSQL_CONFIG

Instal mysql devel

ставлю mysql-devel и всёравно пишет тоже самое, что это никак не пойму

Ссылка на комментарий
Поделиться на другие сайты

в config.log должно быто поподробнее описано на чем именно спотыкается

возможно надо подправить конфигурационный файл

Ссылка на комментарий
Поделиться на другие сайты

Configure: failed program was:

| /* confdefs.h. */

| #define PACAGE_NAME ""

| #define PACAGE_TARNAME ""

| #define PACAGE_VERSION ""

| #define PACAGE_STRING ""

| #define PACAGE_BUGREPORT ""

| #define PACAGE "verlihub"

| #define VERSION "0.9.8c"

| extern "C" void std:: exit (int)

| #endif

| /* end confdefs.h. */

Я не пойму, что она от меня просит сейчас?

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...