Gnutella

**Gnutella** (pirma raidė netariama) – programinės įrangos projektas, kuriuo siekiama sukurti *[[P2P|peer-to-peer]]* failų keitimosi tinklą, neturintį centrinio serverio.

## Istorija
Dar 1999 m. populiaraus daugialypės terpės grotuvo „Winamp“ kūrėja „Nullsoft“ užpatentavo technologiją, smarkiai paveikusią visą P2P raidą. Justin Frankel apibrėžė Gnutella protokolą 2000 m. kovo 14 d., sukūręs pirmą klientinės programos Gnutella tinklui beta versiją ir leidęs ją nemokamai parsisiųsti iš interneto. Pavyzdžiu ir paskatinimu Gnutella tinklui buvo „peer - to - peer“ tinklas Napster, kuris jau nuo 1999 m. birželio suteikė galimybę tiesiogiai keistis muzikos failais. Dėl nelegaliai platinamos muzikos Napster firmai gana greitai iškilo teisinių problemų.

„Gnutella“ pavadinta sistema jau turėjo kovai su autorių teisėmis skirta mechanizmą – priešingai nei Napster, kur duomenų perdavimo tinklo serveriai valdomi iš centrinio bendrovės biuro, savarankiškos Gnutella dalys išsibarsčiusios po visą pasaulį, taigi, nutraukti jų veiklą fiziškai neįmanoma. Kol veiks bent du kompiuteriai su Gnutella įranga, tinklas gyvuos. JAV telekomunikacijų gigantui AOL nusipirkus didžiąją dalį „Nullsoft“ akcijų, darbas prie „Gnutella“ projekto buvo sutabdytas – buvo siekiama išvengti su autoriu teisėmis susijusio skandalo, kuris būtų galėjęs sutrukdyti AOL ir „Time Warner“ susiliejimui. Pati programa jau buvo paplitusi ir prieinama per kitus interneto puslapius bei *"peer - to - peer" sistemas.*

„Gnutella“ (http://www.gnutella.com  atgaivino maža grupelė entuziastų, informavusių interneto bendruomenę apie šio tinklo galimybes ir paskelbusi duomenis, kurių galėjo prireikti entuziastams kuriant darbui su „Gnutella“ skirtą programinę įrangą.

## Principai
Kiekvienas Gnutella tinklo narys žino apie kelis kitus aktyvius, šiam tinklui priklausančius narius. Šis pradinis sąrašas gaunamas įvairiais būdais: pateikiamas su kliento programa (kuri vėliau patikrina kurie nariai tebėra aktyvūs), randamas kokiame nors centralizuotame serveryje, kai kada naudojama net IRC.

Gnutella naudoja "potvynio paieškos" (angl *flooding search*) principą: ieškantis narys susisiekia su jam žinomais kitais nariais, šie perduoda jo užklausą savo žinomiems kaimynams ir pan. Tokios paieškos gylis siekia 4 - 5 lygius ir ji išplinta toli po tinklą. Pirmuosiuose variantuose rastas atsakymas buvo grąžinamas tuo pačiu keliu kuriuo atėjo klausimas, vėliau sistema buvo optimizuota papildant užklausą ieškotojo adresu ir taip įgalinant perduoti atsakymą tiesiogiai. Rasti failai perduodami tiesiogiai tarp ieškančio ir teikiančio narių, naudojant tam įprastus perdavimo protoklus (TCP/IP ir pan).

Gnutella pradinis žinučių keitimosi formatas yra gana senas, daug kartų taisytas ir neretai laikomas gana netvarkingu ir sudėtingu. Pastaruoju metu kuriame sistema Gnutella2 kur informacijai keistis naudojama panaši į XML, tačiau dvejetainė struktūra.

## Klientinės programos
P2P gerbėjų reakcijos ilgai laukti nereikėjo – šiuo metu galite rinktis iš daugybės programų, skirtų dalintis duomenimis „Gnutella“ tinkle. Tarp populiariausių produktų:
* Shareaza (suderinama su eDonkey tinklu)
* BearShare
* Cabos
* Gnucleus
* Swapper
* Xolox
* LimeWire
* Phex.

## Nuorodos
* Gnutella protokolo specifikacija 
* P2P tinklai