Зачем нужны файлообменные сети?
Чтобы уменьшить нагрузку на существующие традиционные серверы FTP и
HTTP и ведущие к ним каналы, распределив ее между всеми участниками
сети.
Файлообменные сети используют свой собственный набор протоколов и
программного обеспечения, несовместимый с FTP/HTTP и обладающий важными
усовершенствованиями.
Самое первое, что надо понимать, eDonkey2000 - файлообменная сеть.
Здесь обычные люди обмениваются файлами. Здесь не существует мощных
серверов на толстенных каналах, здесь сидят обычные люди со
среднестатистическими каналами связи и качают друг от друга. Сервера
лишь позволяют пользователям найти друг друга. Сеть эта хороша тем, что
одновременно вы можете качать не у одного человека, а сразу от
нескольких людей (источников) и соответственно тогда суммарная скорость
скачивания будет равна сумме скоростей скачивания от каждого в
отдельности.
Но здесь появляются сразу насколько тонких моментов:
1. Чем больше людей держат файл, который вы хотите скачать, доступным,
тем соответственно больше источников и выше скорость скачивания.
2. Так как большинство пользователей подключено к сети на весьма низких
скоростях, а желающих скачать их файлы много, то на источниках
образуется очередь, отстояв которую вы сможете приступить к скачиванию.
Но очередь идет не по порядку, а по рейтингу. Чем выше ваш рейтинг, тем
короче для вас очередь. А на ваш рейтинг влияет то, насколько щедро вы
раздаете файлы другим пользователям. Т.е. чем выше ваша скорость
раздачи, тем выше ваш рейтинг и тем короче для вас очереди.
Чем файлообменная сеть отличается от FTP и HTTP?
Первое отличие заключается в роли клиента: каждый клиент не только
скачивает данные, но и позволяет подключаться к нему другим клиентам,
чтобы скачивать от него те файлы, которые он скачал у других, и те,
которые он публикует сам.
Второе отличие заключается в роли сервера: FTP- и HTTP-сервер просто
хранят и передают данные клиентам. В файлообменной сети задача сервера
(если его наличие вообще предусматривается конкретным протоколом)
сводится не только и не столько к хранению и передаче данных, сколько к
координации клиентов: - какой IP-адрес какому клиенту принадлежит;
- у какого клиента какие файлы имеются;
- какие фрагменты каких файлов где находятся;
- кто сколько скачал к себе;
- кто сколько дал скачать от себя другим.
Как происходит работа в типичной файлообменной сети?
- Cервер, отдавая клиенту файл, запоминает IP-адрес клиента и имя файла;
- Если клиент запрашивает у сервера файл, уже имеющийся у других клиентов, сервер указывает ему IP-адреса этих клиентов;
- Клиенты информируют сервер обо всех клиентах, которые к ним подключаются, и файлах, которые те запрашивают;
- Если
файл имеется на нескольких узлах, клиент будет скачивать с каждого из
них непересекающиеся блоки файла, пока не получит весь файл целиком.
Клиент может быть паразитом вынужденно, если он находится в
приватной сети, отделенной от внешнего мира файрволлом и/или NAT'ом,
так что снаружи к нему не подсоединиться. Однако даже клиент-паразит
все равно предпочтительнее FTP-клиента благодаря принципу распределения
запросов по множеству серверов (т.е., в данном случае - по множеству
отдающих клиентов). Даже если ваша любительская сеть или
клиентская сеть Интернет-провайдера закрыты от внешнего доступа,
пиринговые системы могут оказаться полезными для передачи данных внутри
такой сети. Например - некто с безлимитным тарифом скачивает из
Интернета нечто громоздкое, затем остальные абоненты скачивают данные
от него (и друг от друга!) через P2P.
Какие достоинства имеет файлообменная сеть?
- так как каждый клиент, который что-то скачал, сам готов
отдавать данные другим клиентам, узлов, с которых новые желающие могут
получить данные, постепенно становится много;
- принимающий
узел получает возможность формировать очереди закачки c отдающих узлов
пропорционально скоростям приема - чем быстрее связь с каким-то из них,
тем больше блоков с него будет скачано;
- если один из отдающих узлов выключается, это не приводит к срыву закачки в целом;
- у каждого из отдающих узлов нагрузка на сеть снижается тем сильнее, чем их больше;
- скорость
закачки будет ограничиваться (в идеале) только толщиной входного канала
принимающего узла, потому что это единственное место, где сводится
воедино трафик, поступающий от многих источников.
|