Posted under Computer Related & Networking
Bittorrent adalah software yang digunakan untuk berbagi file di Internet. Bittorrent sangat bermanfaat untuk berbagi file yang berukuran besar dan hanya memiliki pita lebar jaringan yang kecil. Bittorrent memecah data menjadi paket-paket yang sangat kecil agar mudah untuk diunduh. Bittorrent juga mempunyai fasilitas untuk mem-pause ketika sebuah file sedang di downlad. Pada dasarnya Bittorrent memiliki konsep peer-to-peer. Seorang user akan terhubung secara langsung dengan user lainnya untuk menerima atau mengirim file. Namun, bittorrent tetap memiliki server pusat yang bertugas untuk mengendalikan aktifitas-aktifitas user. Server pusat ini disebut tracker. Sedangkan untuk peer yang memiliki secara utuh file yang akan didistribusikan disebut seeder. Beberapa peer dan seeder yang membentuk sebuah jaringan disebut swarm. Sebenarnya, ini utama bittorrent adalah agar peer dapat mengunggah dalam waktu bersamaan dapat juga mengunduh. Bittorrent akan semakin optimal ketika semakin banyak peer yang melakukan unduh/unggah, berbeda jauh dengan transfer protokol lain yang lebih baik ketika semakin sedikit yang menggunakan.
Bittorrent memiliki cara yang cukup rumit untuk mendistribusikan sebuah file. Pertama, seeder akan memecah sebuah file dengan ukuran yang lebih kecil dan meng-annouce. Deskripsi tentang file tersebut disimpan di sebuah file yang biasanya memiliki ekstensi .torrent. Peer yang menginginkan file yang disediakan oleh seeder diharuskan terlebih dahulu mendownload file .torrent tersebut dan memiliki torrent client.
Kedua, peer akan mencari seeder yang telah mengumumkan (announce) kepemilikan file yang dicari peer. Ketika peer sudah menerima beberapa potongan file, maka dia akan segera dapat menjadi seeder untuk yang lain walaupun dia belum memiliki secara utuh.
Analogi sederhana seperti ini,
�Suatu hari di suatu kampus yang tenang, tengah diadakan Ujian Akhir Semester. Di situ ada 10 orang yang harusnya mengikuti ujian. Si A, B, C, D, E, F, G, H, I, J.
Ada dua orang yaitu A, G yang sangat pintar hingga dia sudah punya jawaban untuk soal-soal tersebut. Maka dia menjadi seeder jawaban soal ujian. Dengan cepat mereka mengumumkan ke peer yang lain jika mereka sudah memiliki jawaban untuk nomor 1-20.
Kebetulan B sudah menjawab nomor 2 dan 5. Maka B akan meminta kepada A dan G jawaban yang dia belum punya.
Si C yang baru saja datang karena macetnya jalan raya, merasa kebingungan akan soal-soal tersebut. Langsung saja dia mencari jawaban. Tetapi karena A, B, G sudah mengumumkan mereka memiliki jawaban, C langsung meminta kepada A untuk soal 7-8. Lalu si C mengumumkan jika dia sudah punya jawaban 7-8. Maka dalam ruangan itu ada 4 seeder yang telah memiliki jawaban. Si D tak mau kalah, dia meminta ke B untuk soalnya yang dia tidak punya. Begitu juga E, F, H, I, J akan melakukan hal serupa. Penerimaan jawaban tidak berurut namun secara acak. Namun, pada akhirnya jawaban-jawaban tersebut akan diurutkan berdasarkan nomor.
Namun, pada waktu yang tidak terduga, seorang dosen masuk ke kelas. Proses unduh/unggah yang terjadi dapat di-pause dan dapat di-resume ketika dosen meninggalkan ruangan kelas.
Proses memberi-meminta tersebut akan terus berlangsung sampai semua jawaban sudah terisi semua oleh semua orang, dengan begitu proses ujian yang berat akan terasa ringan dan cepat. Selain itu, penggunaan torrent sangat meringankan si A dan G yang mula-mula telah memiliki soal daripada si B, C, D, E, F, H, I, J harus ngarumpuyuk (berkumpul) pada A dan G.
�
Saat pendistribusian file yang benar-benar baru. Maka hanya akan ada satu seeder yang bertugas menerima. Tentunya ini akan sangat memberatkan karena seeder tersebut akan digembrong (dikelilingi) oleh beberapa peer yang meminta. Oleh karena itu, diterapkanlah aturan share ratio yaitu perbandingan antara proses unduh/unggah. Jika proses unduh lebih besar daripada proses unggah, maka share ratio akan bernilai negatif dan begitu sebaliknya. Semakin besar share ratio maka akan semakin besar dia memiliki kesempatan untuk mengunduh sebuah file yang benar-benar baru.
Menurut saya, BitTorrent adalah salah satu software pendukung sistem terdistribusi karena Bittorrent bersifat transparent sehingga kita tidak perlu repot untuk mengetahui sejauh mana proses yang terjadi, openness karena Bittorent tidak bergantung pada OS mana pun dan bahasa pemograman apapun, scalebilities karena proses tidak akan berubah ketika peer berkurang atau bertambah.