BitTorrent
Torrent sözünü yəqin ki aranızda eşitməyən yoxdur. Kompyuterin nə olduğunu bilməsəniz belə dostunuzdan və ya qonşunuzdan bu sözü eşitmə ehtimalınız var. Bu yazıda sizinlə Peer-to-Peer (P2P – əsasən bu şəkildə qarşınıza çıxabilər) protokolu olan BitTorrent haqda danışacağam. (“Peer” sözünü “həmyaşıd” olaraq çevrilə bilər, yəni həmyaşıd olan dostlara ingiliscədə “Peers” deyilir.) Fasilə ilə bir-birinə qoşulan host cütlükləri yerinə, peer-lər bir-biri ilə bilavasitə əlaqə qurmağı bacarırlar. Peer-lər hər hansı bir provayder tərəfindən idarə olunmur, əksinə evinizdəki kompyuterlər vasitəsi ilə idarə edilirlər.
Client-Server modelində, server hər bir peer-ə ayrılıqda faylın kopyasını göndərməlidir. (Bu növ fayl paylanılması serverin çox yüklənilməsinə səbəb olur.) Ancaq P2P sistemində isə, hər bir peer aldığı hər bir faylı təzədən başqa bir peer-ə göndərə bilər. Ən populyar P2P fayl paylamaq protokolu BitTorrent-dir.
P2P sistemində Client-server fayl paylamaq sisteminin əksinə olaraq artış O(logN) göstərir. Yəni bu deməkdir ki, bir faylı nə qədər çox insan öz kompüterinə yükləsə həmin faylı bir o qədər də paylaşa bilən adam sayısı artır. Məsələn, P2P sistemində mən həm client həm də server rolunu ala bilərəm. BitTorrent terminologiyasında bir faylı paylaşmaq üçün bir yerə yığışan peer-lərə Torrent deyilir. Peer-lər torrentdə eyni ölçüdə birbirlərindən fayl dilimi endirirlər (Əsasən fayl dilimi 256 KByte olur). Peer ilk dəfə torrent-ə qoşulanda hər hansı bir fayl diliminə sahib olmur. Lakin müəyyən müddət ərzində gettikçə daha çox fayl dilimi əldə etmiş olur. Faylı dilimlərini yükləmə əsnasında həm də başqa peer-lərə fayl dilimi upload edir (yükləyir). Peer bütün faylı yüklədikdən sonra torrent-də həm qala bilər, həm də ayrıla bilər (Bir hissə fayl dilimi ilə də torrent-dən ayrılıb, sonra təkrar qoşula bilər).
Hər bir torrent-in tracker (izləyən) adında infrastruktur düyümü (node) var. Peer torrent-ə qoşulanda tracker-lə özünü qeydiyyatdan keçirərək və bəlli bir vaxt ərzində hər dəfə tracker hal-hazırda torrent-də olduğu məlumatı verir. Buna görə də tracker torrent-ə qoşulan hər kəsin sihayısını tutur (İstifadəçi sayısı 10-dan az da olabilər, 1000-dən çox da).
Yuxarıdakı şəkildə xanımqız Alice torrent-ə qoşulduğu an tracker təsadüfi olaraq bəlli bir sayıda peer seçib, bütün seçdikləri peer-lərin IP adreslərini xanımqız Alice-ə göndərir. Gəlin xanımqız Alice-in TCP vasitəsi ilə əlaqə qurmağı bacardığı peer-lərə qonşu peer-lər deyək (Şəkildə xanımqız Alice-in 3 qonşusu var, lakin bu daha çox olabilər). Əlbəttə ki, zamanla bu qonşu peer-lər dəyişə bilər. Bəlli bir vaxt aralığında xanımqız Alice qonşularından (TCP vasitəsi ilə) hansı fayl dilimlərinin əllərində olduğunu öyrənəcək. Əgər N dənə qonşusu varsa N dənə fayl dilimi ala bilər. Hal-hazırda əlində olmayan fayl dilimlərini isə qonşularından almağa çalışacaq. Hansı fayl dilimini axtarmaq üçün isə xanımqız Alice xüsusi bir alqoritmadan istifadə edir. Yəni əlində olmayan və qonşularında ən az tapılan fayl dilimini ilk almağa çalışır (Kopyası az olan fayl dilimini çoxaltmaq üçün). Beləliklə ən az kopyası tapılan fayl dilimlərə peer-lər arasında paylaşılaraq hər fayl diliminin kopya sayısı bərabərləşdirilməyə çalışılır.
Yüksək sürətlə fayl dilimi göndərən 4 qonşuya xanımqız Alice digər qonşulara görə daha çox üstünlük verir. Sonra xanımqız Alice həmin bu 4 qonşuya qarşılıqlı cavab verərək fayl dilimi göndərir. Hər 10 saniyədən bir təkrar fayl dilimi göndərən qonşuların sürətləri hesablanaraq hansı 4 qonşu ilə informasiya alış-verişinin davam etdirməsinə qərar verir.
Hər 30 saniyədə təsadüfi olaraq bir nəfər seçərək, xanımqız Alice ona fayl dilimi göndərməyə başlayır. Gəlin bu qonşunun adı Bob olsun. Xanımqız Alice Bob-a fayl dilimi göndərdiyinə görə Bob-un 4 qonşusundan biri olabilər. Əgər xanımqız Alice Bob-un uploader olabilsə bu səfər Bob xanımqız Alice-ə fayl dilimi göndərməyə başlayacaq. Əgər Bob yüksək sürətlə fayl dilimi göndərməyi bacarsa bu səfər Bob da xanımqız Alice-in 4 qonşusundan birinin yerinə keçəcək. Beləliklə əgər iki peer bir-birinə yüksək sürətlə fayl dilimi göndərməyi bacarsa bu iki peer bir-birinin əsas 4 qonşusundan biri halına çevriləcək (Özlərinə təzə yüksək sürətlə fayl dilimi göndərən peer tapana qədər). Bu təsadüfi qonşu seçimi yeni qoşulan peer-lərə fayl dilimi əldə etmək imkanı verir. Yəni alış-veriş üçün əllərində bir şey olmuş olur. Digər bütün qonşular isə, yəni 5 qonşudan (4 əsas və 1 dənə test üçün seçilən) geri qalanı xanımqız Alice-dən heçbir fayl dilimi alabilmir.
Bu yazını burada sonlandırmaq istəyirəm. İnanıram ki, torrent-in işləmə sxemi hamınız üçün maraqlıdır. Ona görə əlimdən gəldiyi qədər gözəl şəkildə izah etməyə çalışdım. BitTorrent-in daha çox mexanizması var ki burada qeyd olunmadı, amma əsas struktur haqda tam şəkildə danışıldı. Sağ Salamat!
Referans: