Freenet

Freenet – P2P sistema, skirta duomenų apsikeitimui internete. Pagrindinis šios sistemos tikslas – užtikrinti publikuotojo ir naudotojo anonimiškumą.

„Freenet” tinkle informacija „plaukioja” iš vienos vietos į kitą, kur jinai yra aktualiausia tuo metu. Ši architektūra decentralizuota ir pagrįsta nestruktūrizuota netiesioginio susijungimo architektūra.

„Freenet“ architektūra visiškai užtikrina anonimiškumą. Informacijos gavimas, kol ji nėra paplitusi po tinklą, yra lėtas, tačiau populiari informacija yra greitai pasiekiama. Tinkle nėra saugoma nenaudojama informacija. Kuo mazgas ilgiau gyvuoja tinkle, tuo daugiau jis žino apie tinklą ir gali sėkmingiau vykdyti informacijos saugojimą ir paėmimą.

Istorija 
1999 m. Janas Klarkas (Ian Clarke) parašė straipsnį pavadintą „A Distributed Decentralized Information Storage and Retrieval System“. Šis straipsnis ir yra „Freenet“ sistemos pagrindas, tačiau idėja susiformavo dar 1997 m. kai buvo publikuotas straipsnis „Distributed Address Lookup System“. Pagrindinė jo mintis – laisvas informacijos platinimas.

Išspausdinus straipsnį kilo internetinės bendruomenės susidomėjimas ir buvo pradėta kurti sistema, o netrukus išleista ir pirmoji „Freenet“ versija. Tai įvyko 2000 metų kovo mėnesį. Nuo to momento nuolatos pasirodydavo naujos sistemos versijos.

Sistemos augimas 
Norint išlaikyti „Freenet“ augimą, reikia, kad P2P tinklas pritrauktų vis naujų vartotojų. Tam yra būtina išaiškinti filosofiją, kuri slypi už šių technologijų vystymo.

Pagrindinė „Freenet“ idėja užtikrina anonimiškumą informacijos autoriams ir teikėjams. Dėl sistemos architektūros yra neįmanoma susekti straipsnio kilmės arba priskirti straipsnį kuriam nors vienam kompiuteriui ar tuo labiau konkrečiam žmogui. Janas aprašė šį fenomeną kaip „mašinų anarchiją“ ir tokiu būdu sulaukė didelio pripažinimo tarp žmonių, jaučiančių simpatiją anarchistinėms idėjoms.

Veikimo principas 
„Freenet“ yra P2P sistema, pritaikyta failams saugoti ir paimti iš tinklo. Failams yra suteikiami raktiniai vardai, kurių prasmė nieko nepasako apie failo kilmę. Kiekvienas mazgas tinkle yra lygiavertis ir turi nuosavą lentelę, kurioje saugo informaciją apie kitus mazgus – tai yra, kaip juos pasiekti ir kokius dokumentus jie turi. Taip pat kiekvienas mazgas leidžia savo disko vieta dalintis su kitais mazgais. Užklausos siunčiamos iš vieno mazgo į kitą, nes nėra centrinio mazgo, ir taip grandine vyksta paieška. Kiekvienas mazgas pats nusprendžia, kuris kitas mazgas galėtų turėti prašomą informaciją.

Kiekviena užklausa turi gyvavimo laiko skaičių (GL, kuris yra mažinamas, perduodant užklausą į tolimesnį mazgą. Taip pat kiekviena užklausa turi identifikatorių, kuris yra saugomas identifikatorių lentelėje. Kad nesusidarytų amžinų užklausos ciklų, žinutės yra neapdorojamos, jei jų identifikatorių jau turi lentelė arba GL skaičius lygus nuliui.

Interneto protokolai
Laisvoji programinė įranga