Файлообм?нна мережа

Матер?ал з В?к?пед?? ? в?льно? енциклопед??.
Перейти до нав?гац?? Перейти до пошуку

Файлообм?нна мережа  ? сукупна назва мереж для сп?льного використання файл?в .

Зазвичай, файлообм?нн? мереж? ?рунтуються на однорангов?й комп'ютерн?й мереж?, тобто кожен учасник яко? одночасно викону? функц?? як кл??нта , який може отримувати файл, так ? сервером , що в?дда? файли.

Принципи роботи [ ред. | ред. код ]

Основн? принципи роботи файлообм?ну полягають в наступному:

  • користувач викачу? програму до себе на комп'ютер;
  • да? доступ ?ншим користувачем до частини сво?х ресурс?в (цей процес назива?ться ≪розшарюванням≫, англ. sharing );
  • у кожн?й так?й програм? присутн?й пошук, який шука? ресурси, викладен? на комп'ютерах ?нших користувач?в для в?льного викачування. Будь-який користувач, використовуючи пошук, може знайти на комп'ютер? будь-якого ?ншого користувача т? ресурси, як? в?н виклав у в?льний доступ, ? безоплатно викачати ?х. А оск?льки к?льк?сть користувач?в таких файлообм?нних програм обчислю?ться сотнями тисяч, а ?нод? нав?ть м?льйонами, користувач напевно знайде файл, що ц?кавить його.

Ця технолог?я отримала назву P2P (peer-to-peer), в приблизному переклад? ? децентрал?зована.

Типи орган?зац?? файлообм?нних мереж [ ред. | ред. код ]

Централ?зован? мереж? [ ред. | ред. код ]

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

Перевагою тако? мереж? ? в?дносна простота ?? програмування та невеликий обсяг службово? ?нформац??, що переда?ться на сервери. Закриття мереж Napster ? WINMX показало ненад?йн?сть централ?зованих файлообм?нних мереж. Сервери ?ндексац?й можуть бути в?дключен? з р?зних причин (техн?чний зб?й, розорення компан??, що ним волод??, судове р?шення ). У такому раз? мережа переста? функц?онувати. До централ?зованих мереж в?дноситься Direct Connect .

Децентрал?зован? мереж? [ ред. | ред. код ]

Децентрал?зован? файлообм?нн? мереж? функц?онують без сервер?в ?ндексац?й. Хоча обсяг службово? ?нформац??, що переда?ться в них б?льший, над?йн?сть ?х набагато вище. Поки не ?сну? способу насильно зупинити функц?онування тако? мереж?. До децентрал?зованих мереж в?дносяться Gnutella , Overnet , Kad .

Вперше терм?н peer-to-peer (P2P) був використаний в 1984 компан??ю IBM при розробц? мережево? арх?тектури для динам?чно? маршрутизац?? траф?ку через комп'ютерн? мереж? з дов?льною тополог??ю (Advanced Peer to Peer Networking).

Частково децентрал?зован? (г?бридн?) мереж? [ ред. | ред. код ]

По?днуючи швидк?сть централ?зованих мереж ? над?йн?сть децентрал?зованих, використовуються г?бридн? схеми, в яких використовуються незалежн? ?ндексац?? сервери, що пост?йно синхрон?зують ?нформац?ю м?ж собою. Таким чином, при виход? з ладу одного з них, мережа продовжу? функц?онувати. До частково децентрал?зованих файлообм?нних мереж в?дносяться eDonkey2000 OpenNap .

Огляд популярних мереж [ ред. | ред. код ]

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

Сьогодн? на технолог?? P2P засновано величезну к?льк?сть популярних мережевих серв?с?в ? в?д простого обм?ну файлами до мовного та в?деозв'язку.

За деякими даними, станом на 2008 в ?нтернет? б?льше половини всього траф?ку припадало на траф?к файлообм?нних P2P-мереж, а розм?ри найб?льших з них перевалили за позначку в 1 млн одночасно працюючих вузл?в, що под?ляють петабайт (1015 байт) ?нформац??. Загальна к?льк?сть заре?строваних учасник?в файлообм?нних мереж P2P в усьому св?т? становить близько 100 млн.

Мережа P2P ? це множина вузл?в ( комп'ютер?в , смартфон?в тощо), як? об'?днан? в ?дину систему ? вза?мод?ють за допомогою протоколу P2P, який забезпечу? можлив?сть створення ? функц?онування мереж? р?вноправних вузл?в.

Серед файлообм?нних мереж за к?льк?стю вузл?в л?дирують так? мереж?, як Bittorrent , eDonkey2000 , Gnutella2 , Gnutella .

Bittorrent [ ред. | ред. код ]

З метою ?н?ц?ал?зац?? вузла в мереж? Bittorrent кл??нтська програма зверта?ться до сервера (tracker), що нада? ?нформац?ю про файли, доступн? для коп?ювання, а також статистичну ? маршрутну ?нформац?ю про вузли мереж?. Сервер ? п?сля ?н?ц?ал?зац?? допомага? вузлам вза?мод?яти один з одним, хоча останн? верс?? кл??нтських програм вимагають наявност? сервер?в т?льки на стад?? ?н?ц?ал?зац??.

Якщо вузол ≪хоче≫ опубл?кувати файл, то програма под?ля? цей файл на частини ? створю? файл метаданих (torrent file) з ?нформац??ю про частини файлу, розташування ?х ? ? опц?онально ? сервера, який буде п?дтримувати розповсюдження цього файлу. Перший вузол, який опубл?кував фото, назива?ться розповсюджувачем (seeder). Вузол, що бажа? скоп?ювати файл, при коп?юванн? сам ста? розповсюджувачем за принципом: ск?льки коп?юю я, ст?льки дозволяю скоп?ювати з мене.

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

У мереж? BitTorrent використовуються протоколи Bittorrent ? BitTorrent Azureus DHT. Останн?й заснований на модиф?кованому протокол? Kademlia ? використову?ться для забезпечення роботи з файлами метаданих, не прив'язаними до сервер?в, для децентрал?зованого пошуку ресурсу по ID ? присвоювання ресурсам коментар?в ? рейтингу. Зам?сть BitTorrent Azureus DHT деяк? кл??нти п?дтримують аналог?чний йому за функц?ональн?стю протокол BitTorrent Mainline DHT.

Найпоширен?ш? кл??нтськ? програми ? це Azureus, BitTorrent_client, μTorrent, BitSpirit, BitComet, BitTornado, MLDonkey.

Gnutella, Gnutella2 [ ред. | ред. код ]

Gnutella ? одна з перших п?рингових мереж, створена в 2000 роц?. Вона функц?ону? й дос?, хоча через серйозн? недол?ки алгоритму користувач? в наш час [ коли? ] вважають кращою мережу Gnutella2.

П?д час п?дключення кл??нт отриму? в?д вузла, з яким йому вдалося з'?днатися, список з п'яти активних вузл?в; ?м надсила?ться запит на пошук ресурсу за ключовим словом. Вузли шукають у себе на запит ресурси ?, якщо не знаходять ?х, пересилають запит активним вузлам вгору по ≪дереву≫ (тополог?я мереж? ма? структуру графа типу ≪дерево≫), поки не знайдеться ресурс або не буде перевищено Максимальна к?льк?сть крок?в. Такий пошук назива?ться розмноженням запит?в (query flooding).

Под?бна реал?зац?я веде до експоненц?альним зростання к?лькост? запит?в ? в?дпов?дно на верхн?х р?внях ≪дерева≫ може призвести до в?дмови в обслуговуванн?. Щоб уникнути под?бно? ситуац?? розробники удосконалили алгоритм, ввели правила, в?дпов?дно до яких запити можуть пересилати вгору по ≪дереву≫ т?льки певн? вузли ? так називан? вид?лен? (ultrapeers), ?нш? вузли (leaves) можуть лише запитувати останн?. Була введена система кешування вузл?в.

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

Недол?ки протоколу Gnutella ?н?ц?ювали розробку принципово нових алгоритм?в пошуку маршрут?в та ресурс?в ? привели до створення групи протокол?в DHT (Distributed Hash Tables) ? зокрема, протоколу Kademlia, який зараз широко використову?ться в найб?льших мережах.

Запити в мереж? Gnutella пересилаються по TCP або UDP , коп?ювання файл?в зд?йсню?ться через протокол HTTP . Останн?м часом з'явилися розширення для кл??нтських програм, що дозволяють коп?ювати файли по UDP, робити XML -запити мета?нформац?? про файли.

У 2003 було створено принципово новий протокол Gnutella2 ? перш? кл??нти для цього протоколу як?, водночас, були сум?сн? з кл??нтами Gnutella. В?дпов?дно до нього деяк? вузли стають концентраторами, ?нш? ж ? звичайними вузлами (leaves).

Кожен звичайний вузол ма? сполучення з одним-двома концентраторами. А концентратор пов'язаний з сотнями звичайних вузл?в ? десятками ?нших концентратор?в. Кожен вузол пер?одично пересила? концентратору список ?дентиф?катор?в ключових сл?в, за якими можна знайти ресурси, що публ?куються цим вузлом. ?дентиф?катори збер?гаються в загальн?й таблиц? на концентратор?.

Коли вузол ≪хоче≫ знайти ресурс, в?н надсила? запит за ключовим словом сво?му концентратору, останн?й або знаходить ресурс у сво?й таблиц? ? поверта? ID вузла, що волод?? ресурсом, або поверта? список ?нших концентратор?в, як? вузол знову запиту? по черз? випадковим чином. Такий пошук назива?ться пошуком за допомогою методу блукань (random walk).

Прим?тною особлив?стю мереж? Gnutella2 ? можлив?сть розмноження ?нформац?? про файл в мереж? без коп?ювання самого файлу, що дуже корисно з точки зору в?дстеження в?рус?в. Для переданих пакет?в у мереж? розроблений власний формат, схожий на XML, що гнучко реал?зу? можлив?сть нарощування функц?ональност? мереж? шляхом додавання додатково? службово? ?нформац??. Запити та списки ID ключових сл?в пересилаються на концентратори по UDP.

Найпоширен?ш? кл??нтськ? програми для Gnutella ? Gnutella2: Shareaza, Kiwi, Alpha, Morpheus, Gnucleus, Adagio Pocket G2 (Windows Pocket PC), FileScope, iMesh, MLDonkey.

EDonkey2000 [ ред. | ред. код ]

Мережа EDonkey2000 з'явилася в 2000 роц?. ?нформац?я про наявн?сть файл?в в н?й публ?ку?ться кл??нтом на численних серверах у вигляд? ed2k-посилань, що використовують ун?кальний ID ресурсу.

Серверне програмне забезпечення доступне для встановлення будь-яким користувачем. Сервер забезпечу? пошук вузл?в та ?нформац??.

Станом на к?нець 2008 року в мереж? було до 200 сервер?в, як? обслуговують одночасно близько 1 млн кл??нт?в, як? разом використовують близько 1 млрд р?зних файл?в. Загальне число заре?строваних користувач?в ц??? мереж? становить близько 10 млн.

Коли кл??нт мереж? EDonkey2000 коп?ю? бажаний ресурс, в?н робить це одночасно з к?лькох джерел за допомогою протоколу MFTP (Multisource File Transfer Protocol).

Зараз ?нформац?ю про доступн? файлах можна отримувати не т?льки з сервер?в EDonkey. У 2004 до складу мереж? EDonkey2000 була ?нтегрована мережа Overnet ? повн?стю децентрал?зована мережа, що дозволя? зд?йснювати вза?мод?ю м?ж вузлами без прив'язки до сервер?в, для чого використову?ться DHT-протокол Kademlia.

Найпоширен?шою для мереж? EDonkey2000 кл??нтською програмою з закритим кодом (верс?я Pro ? платна) ? програма eDonkey, проте ?сну? ? кл??нт з в?дкритим програмним кодом ? eMule, який, кр?м мереж? EDonkey2000, може ввести в д?ю ще одну мережу P2P ? Kad Network (Kademlia). Кл??нт eDonkey ма? дуже ц?каве розширення, що дозволя? коп?ювати метафайли .torrent, як? користуються великою дов?рою користувач?в, а також застосовувати вериф?кац?йну ?нформац?ю з цих метафайл?в для роботи з файлами власно? мереж?. При цьому якщо ?н?ц?ал?зувати завантаження файлу, що в?дпов?да? метафайлу, частини файлу, доступн? у власн?й мереж? EDonkey2000, теж включаються в список джерел для завантаження.

Така ?нтеграц?я можливостей р?зних мереж ? додаткова вериф?кац?я сприяли розвитку мереж? EDonkey2000. На не? почали переходити користувач? ?нших мереж ? наприклад, мереж? FastTreck, що базу?ться на протокол? FastTreck, який реал?зу?ться, зокрема, таким популярним кл??нтом, як Kazaa.

Direct Connect [ ред. | ред. код ]

Одн??ю з найпопулярн?ших в Укра?н? та Рос?? файлообм?нних мереж ? Direct Connect. У ц?й мереж? кл??нти п?дключаються до одного чи к?лькох сервер?в для пошуку файл?в, причому сервери не пов'язан? м?ж собою. ?нформац?я про файли, доступ до яких вузол ≪хоче≫ в?дкрити, в?дсила?ться на сервер. Коп?ювання файл?в в?дбува?ться безпосередньо м?ж вузлами, як ? в класичн?й P2P-мереж?.

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

Див. також [ ред. | ред. код ]