Fakultas Ilmu Komputer
Universitas Brawijaya 4694
BitTorrent dengan Reactive Routing pada Software-Defined Network
Landika Hari Suganda1, Widhi Yahya2, Mahendra Data3
Program Studi Teknik Informatika, Fakultas Ilmu Komputer, Universitas Brawijaya Email: 1[email protected], 2[email protected], 3[email protected]
Abstrak
BitTorrent merupakan aplikasi file sharing yang dijalankan secara peer-to-peer untuk mendistribusikan chunk (potongan berkas). Proses penentuan seeder masih dilakukan secara acak, sehingga untuk mendapatkan seeder yang optimal perlu dilakukan optimistic unchoking. Pada penelitian ini BitTorrent diterapkan dengan software defined-network yang memisahkan control plane dan data plane untuk memudahkan pengembangan aplikasi. Controller secara reactive routing akan membuat flow table yang menghubungkan antar peer dan menentukan list peer sebagai seeder yang terdekat berdasarkan jumlah hop terdekat menggunakan algoritme Dijkstra. Hasil simulasi menunjukkan sistem dapat melakukan pemilihan beberapa seeder secara reactive routing yang terdekat berdasarkan jumlah hop yang dilalui.
Digunakan BitTornado sebagai aplikasi BitTorrent client dan Pybtracker sebagai aplikasi tracker. Pada penelitian ini dilakukan pengamatan download rate dan throughput yang dihasilkan pada aplikasi BitTorrent dengan seeder acak dan aplikasi BitTorrent yang dimodifikasi dengan controller. Hasil pengujian diperoleh nilai rata-rata download rate 4785,3 Kbps dengan waktu distribusi 25 detik pada 3 seeders acak, 6378,3 Kbps dengan waktu distribusi 17 detik pada 5 seeders acak, 6721,9 Kbps dengan waktu distribusi 18 detik pada 7 seeders acak dan 5990,8 Kbps dengan waktu distribusi 18 detik pada 3 seeders, 6732,1 Kbps dengan waktu distribusi 15 detik pada 5 seeders, 7656,53 Kbps dengan waktu distribusi 15 detik pada 7 seeders.
Kata kunci: BitTorrent, Software defined-network, BitTornado, Pybtracker Abstract
BitTorrent is a file sharing application that uses a peer-to-peer mechanism to distribute pieces of files (chunk). The process of determining the seeder is still done randomly, so to get the optimal seeder needs to be optimistic unchoking. In this study BitTorrent is implemented with software a defined-network concept that separates the control plane and data plane to facilitate application development. The reactive routing controller creates a flow table that use to connect between the peers and determines the peer list as the nearest seeder based on the number of hop using the Dijkstra algorithm. The simulation results show that the system can select some of the nearest seeders by reactive routing based on the number of hops traversed. we use BitTornado for application BitTorrent client and use Pybtracker for application of tracker. Here we observe download rate and throughput generated on BitTorrent application with random seeder and BitTorrent application that has been modified with controller. The test results obtained an average value of download rate 4785.3 Kbps with 25 seconds distribution time on 3 random seeders, 6378.3 Kbps with a distribution time of 17 seconds on 5 random seeders, 6721.9 Kbps with 18 seconds distribution time on 7 random seeders and 5990.8 Kbps with time distribution of 18 seconds on 3 seeders, 6732.1 Kbps with 15 seconds distribution time on 5 seeders, 7656.53 Kbps with 15 seconds distribution time on 7 seeders.
Keywords: BitTorrent, Software defined-network, BitTornado, Pybtracker
1. PENDAHULUAN
File sharing mendukung pertukaran informasi secara cepat meskipun terkendala jarak yang jauh antara pengguna satu dengan
yang lainnya. File sharing merupakan mekanisme yang digunakan untuk distribusi berkas digital dengan memanfaatkan protokol jaringan untuk media transfer data. File sharing menjadi bagian penting dalam menunjang produktifitas kerja secara terpadu ketika
menghadapi persoalan tempat, waktu dan biaya (Osterman Research, 2014).
Peer-to-peer merupakan salah satu mekanisme yang digunakan untuk menunjang file sharing dalam proses distribusi konten.
Salah satu aplikasi file sharing yaitu BitTorrent yang menggunakan protokol centralized peer- to-peer dan mengidentifikasi konten berdasarkan Uniform Resource Locator (URL) yang telah di integrasikan dengan web (Cohen, 2017). Distribusi berkas dilakukan oleh peer yang tergabung dalam jaringan, beberapa peer yang terlibat pada distribusi berkas akan membentuk sebuah swarm. Karena termasuk centralized peer-to-peer, dibutuhkan satu atau lebih server terpusat, yang membantu mencari sebuah alamat yang mempunyai berkas yang diinginkan. Pada aplikasi BitTorrent, server terpusat sering disebut sebagai tracker.
Namun seiring dengan kemajuan jaringan internet dan teknologi, menuntut peningkatan mekanisme file sharing yang lebih efisien dan fleksibel. Modifikasi dilakukan pada BitTorrent untuk mempengaruhi proses dalam menentukan peer sebagai seeders yang akan terlibat dalam distribusi berkas dengan memperhatikan kondisi jaringan saat itu.
Software Defined Network(SDN) merupakan arsitektur jaringan yang memisahkan control plane dan forwarding plane dari entitas fisiknya, dimana control plane yang akan mengendalikan beberapa perangkat dalam jaringan (Open Network Foundation, 2017).
Teknologi SDN menerapkan pemrograman pada komponen jaringan yang memungkinkan reaksi cepat pada perubahan kondisi jaringan yang diperlukan untuk memenuhi kebutuhan secara spesifik.
Solusi untuk mempengaruhi mekanisme random dan penentuan jalur terhadap peer yang terlibat pada distribusi berkas, yaitu mengintegrasikan SDN dengan aplikasi BitTorrent. Dengan memanfaatkan controller, dapat dilakukan penentuan jalur dan peer sebagai seeder secara reactive routing pada jaringan dengan protokol OpenFlow.
Pada penelitian sebelumnya yaitu berjudul
“The Assessment of BitTorrent’s Performance using SDN in a Mesh Topology” telah menerapkan mekanisme aplikasi BitTorrent pada SDN dengan topologi mesh (Guraya et al., 2015). Pada penelitian tersebut untuk menentukan node yang digunakan sebagai seeder, diterapkan algoritma choking untuk memilih node berdasarkan kondisi link
bandwidth yang terbesar. Controller secara reactive routing menentukan flow table yang akan digunakan untuk menghubungkan antar node yang telah ditentukan pada jaringan dengan protokol OpenFlow. Penelitian lain dengan judul
“A Multipath Transmission Scheme for the Improvement of Throughput over SDN” yang mengimplementasikan multipath routing pada SDN dengan menggunakan algoritme Dijkstra untuk pencarian jalurnya (Lei et al., 2015). Pada penelitian tersebut dilakukan perbandingan single-path dan multipath routing. Proses pencarian jalur multipath routing dilakukan menggunakan algoritme Dijkstra yang dimodifikasi.
Sedangkan pada penelitian ini, penulis mengembangkan BitTorrent dengan reactive routing pada SDN menggunakan algoritma Dijkstra untuk pencarian jalur dari node sumber ke node tujuan yang dilakukan controller secara reactive routing untuk membentuk flow table dan dilakukan pengembangan untuk menentukan beberapa node sebagai seeder yang optimal berdasarkan jumlah hop terdekat.
Penulis menggunakan BitTornado sebagai aplikasi BitTorrent client dan Pybtracker sebagai aplikasi tracker. Secara default, BitTornado akan memilih beberapa seeders secara random yang diberikan dari Pybtracker. Untuk itu, penulis akan melakukan emulasi BitTorrent dengan reactive routing pada SDN menggunakan mininet dengan ryu sebagai controller. Dengan itu diharapkan penulis dapat mengembangkan aplikasi BitTorrent client yang menggunakan BitTornado dan aplikasi tracker yang menggunakan Pybtracker agar dapat memanfaatkan kemampuan controller pada jaringan dengan protokol OpenFlow dalam menentukan peer sebagai seeder yang optimal secara reactive routing ketika melakukan distribusi chunk (potongan berkas). Sehingga dapat meningkatkan kecepatan download rate dan mengurangi waktu distribusi dalam proses pendistribusian sebuah berkas.
2. KAJIAN TEORI 2.1. BitTorrent
Protokol BitTorrent merupakan contoh open protokol yang digunakan untuk file sharing. Diciptakan oleh programmer Bram Cohen, BitTorrent pertama kali dibuat dalam bahasa pemrograman Python. Mekanismenya menggunakan peer-to-peer(P2P) yang
menghasilkan bandwidth tinggi ketika download sebuah berkas dengan cara melakukan memotong berkas menjadi beberapa bagian atau biasa disebut chunk, kemudian chunk tersebut di download sedikit demi sedikit dan secara pararel dari beberapa host yang menyimpan berkas tersebut (Goransson & Black, 2014). Mekanisme distribusi berkas pada BitTorrent akan mengurangi beban server karena melibatkan beberapa peer pada jaringan BitTorrent.
Gambar 1. Mekanisme BitTorrent
Pada BitTorrent terdapat sebuah berkas dengan format .torrent. File .torrent terdiri dari beberapa informasi mengenai nama berkas, informasi hashing , ukurannya, alamat url dan port tracker, serta informasi lainnya mengenai berkas yang akan di-download. Tujuan dari hashing pada berkas tersebut untuk memastikan bahwa berkas yang akan di download sudah sesuai dengan yang diinginkan.
Salah satu komponen BitTorrent yaitu tracker atau pelacak yang akan membantu peer agar dapat saling terhubung. Setiap peer yang akan mengunduh atau mengunggah berkas pada BitTorrent akan dilacak oleh tracker. Proses pengiriman berkas akan dipotong menjadi beberapa bagian dengan ukuran 256 kb hingga 2 mb. Setiap peer akan memberikan informasi ke peer lainnya mengenai bagian berkas yang telah dimiliki dari proses hashing menggunakan Secure Hash Algorithm (SHA)-1. Peer yang mempunyai berkas lengkap disebut seeder dan peer yang melakukan proses download untuk melengkapi sebuah berkas disebut leecher.
Pada penelitian ini digunakan aplikasi BitTornado BitTornado merupakan salah satu aplikasi BitTorrent client berbasis python yang dikembangkan pada tahun 2004 oleh John Hoffman (Shadow, 2017). BitTornado digunakan sebagai media transfer file pada jaringan komputer dengan dukungan internet.
Untuk aplikasi tracker menggunakan Pybtracker, merupakan aplikasi UDP BitTorrent tracker yang dikembangkan oleh Mostafa
Razavi (elektito) pada python 3.5 menggunakan co-routines dan modul asyncio (Razavi, 2018).
Dapat dijalankan beberapa script yang nantinya berfungsi sebagai tracker yang akan menangani koneksi dari beberapa peer pada BitTorrent.
2.2. Software Defined-Network
Arsitektur jaringan yang memisahkan control plane dan data plane pada entitas fisiknya (Guraya & et al, 2015). Software- defined network (SDN) merupakan konsep paradigma baru pada jaringan yang dapat disesuaikan sesuai kebutuhan dimana pengguna dapat memprogram aplikasi controller pada jaringan. Pemisahan control plane dan data plane memudahkan administrator mengontrol langsung paket yang berjalan pada jaringan.
Pada penelitian ini digunakan ryu controller sebagai otak untuk mengatur proses komunikasi ke switch atau router yang menghubungkan antar host dalam sebuah jaringan.
Gambar 2. Arsitektur SDN
Pada penelitian ini akan dijalankan aplikasi BitTorrent yang dapat berinteraksi dengan komponen jaringan yang berada dibawah application layer untuk memberikan informasi yang akan digunakan oleh aplikasi BitTorrent.
Protokol reactive routing merupakan protokol routing yang melayani nodes berdasarkan berdasarkan permintaan (routing on-demand) (Andreas, 2004). Dengan konsep reactive routing yang diterapkan pada SDN, dilakukan pengembangan program pada controller untuk membentuk routing table yang akan menghubungkan seeder, tracker dan leecher pada BitTorrent. Controller akan membentuk flow table sesuai permintaan, yaitu ketika terjadi peer baru yang akan tergabung dalam jaringan p2p pada BitTorrent.
Untuk menentukan rute terdekat dan pemilihan beberapa seeder untuk proses distribusi berkas digunakan algoritme Dijkstra yang dijalankan pada controller. Tracker akan berinteraksi dengan controller untuk
memberikan informasi daftar peer yang aktif, kemudian controller akan menentukan rute terdekat dan peer yang optimal.
3. METODOLOGI PENELITIAN
Penelitian yang dilakukan mengenai bittorrent dengan reactive routing pada software defined network(SDN) ini merupakan penelitian implementatif pengembangan karena penelitian yang dilakukan penulis berfokus pada pengembangan aplikasi bittorrent yang diterapkan dengan konsep SDN. Metodologi penelitian yang digunakan meliputi tahap studi literatur, analisis kebutuhan, perancangan sistem, implementasi, pengujian dan analisis, serta pengambilan kesimpulan dan saran.
Studi literatur sebagai dasar dan landasan yang berhubungan dengan perancangan, implementasi dan pengujian sistem. Berbagai studi literatur yang dilakukan dari penelitian- penelitian sebelumnya dan teori pendukung lainnya seperti jurnal, artikel dan buku yang berkaitan dengan penelitian ini.
Analisis kebutuhan sistem dilakukan untuk mengetahui secara detail apa saja yang dibutuhkan untuk pengembangan sistem. Pada analisis kebutuhan sistem dijelaskan kebutuhan fungsional dan non-fungsional.
Perancangan sistem merupakan langkah- langkah dalam merancang suatu sistem berdasarkan analisis kebutuhan yang telah dilakukan. Untuk memenuhi kebutuhan yaitu menghasilkan sistem jaringan yang dapat melakukan distribusi potongan berkas dengan aplikasi bittorent pada reactive routing melalui jalur dan seeder optimal yang telah ditentukan oleh controller menggunakan algoritme Dijkstra.
Tahap implementasi dilakukan untuk mengembangkan sistem yang telah dirancang, meliputi instalasi perangkat lunak pendukung, pembangunan topologi pada lingkungan jaringan mininet, langkah-langkah untuk menjalankan sistem, serta pengembangan program pada controller.
Pengujian dan analisis dilakukan untuk menguji fungsi dari sistem untuk mengetahui apakah sistem telah berjalan sesuai dengan kebutuhan dalam melakukan distribusi potongan berkas pada aplikasi BitTorrent dengan reactive routing pada konsep SDN. Pada pengujian dan analisis meliputi pengujian fungsional dan kinerja dari aplikasi BitTorrent dengan reactive routing pada SDN dengan parameter download
rate dan throughput.
Pengambilan kesimpulan dan saran dilakukan berdasarkan hasil dari pengujian dan analisis terhadap kinerja dari implementasi dari aplikasi bittorrent dengan reactive routing yang diterapkan pada SDN.
Gambar 3. Diagram Alir Metodologi Penelitian 4. ANALISIS KEBUTUHAN DAN
PERANCANGAN SISTEM 4.1. Deskripsi Umum Sistem
Pada penelitin ini, peneliti akan berfokus pada pengembangan BitTorrent dengan reactive routing pada konsep software defined-network yang memisahkan control plane dan data plane.
Emulasi BitTorrent dilakukan pada mininet dengan menjalankan aplikasi BitTornado sebagai BitTorrent client yang digunakan untuk membuat file torrent dan melakukan file sharing dengan mekanisme BitTorrent. Untuk menjalankan sebuah local tracker digunakan aplikasi Pybtracker. Aplikasi Pybtracker akan dijalankan pada sebuah host yang digunakan sebagai tracker yang bertugas untuk menghubungkan seeder dan leecher. Tracker tidak menyimpan berkas yang akan dibagikan namun hanya menyimpan info hash dari berkas tersebut dan informasi peer yang menyediakan berkas tersebut. Tracker akan berkomunikasi dengan Ryu Controller sebagai control plane yang mengatur mekanisme jaringan pada software defined-network. Berdasarkan informasi dari tracker mengenai daftar peer yang menyediakan berkas, Ryu controller akan menentukan pemilihan jalur dan beberapa peer yang menyediakan berkas sebagai seeder untuk
disampaikan kepada leecher yang akan mengunduh berkas berdasarkan jarak terdekat dari jumlah hop yang dilalui diantara keduanya.
Gambar 4. Deskripsi Umum Sistem 4.2. Kebutuhan Sistem
Kebutuhan sistem pada penelitian ini mendeskripsikan kebutuhan-kebutuhan yang diperlukan dalam pengembangan. Meliputi kebutuhan fungsional dan non-fungsional.
Pada kebutuhan fungsional yaitu sistem dapat menjalankan konsep aplikasi BitTorrent dengan reactive routing pada software defined- network dan sistem dapat menentukan mekanisme pemilihan beberapa peer sebagai seeder yang optimal berdasarkan jarak terdekat antara seeder sebagai penyedia konten dan leecher yang mengunduh konten.
Kebutuhan non-fungsional terdiri dari perangkat keras yang digunakan dalam pengembangan sistem yaitu Personal Computer atau laptop dengan spesifikasi CPU intel core i5, ram 8gb dan hard disk 500mb. Serta perangkat lunak diantaranya sistem operasi menggunakan linux Ubuntu 16.04 64 bit, mininet sebagai emulator jaringan, ryu controller, openVswitch versi 2.5.2, aplikasi BitTornado sebagai BitTorrent klien dan Pybtracker sebagai tracker.
4.3. Perancangan Sistem
Pada perancangan sistem dilakukan perancangan alur, perancangan topologi jaringan, perancangan algoritme pencarian, penilaian dan pemilihan jalur, serta perancangan algoritme pemilihan jalur dan seeder yang optimal.
Rancangan alur sistem diperlukan agar pengembangan BitTorrent dengan reactive routing pada software defined-network dapat berjalan dengan sebagaimana mestinya.
Perancangan alur sistem menggambarkan bagaimana alur proses dari sistem dijalankan mulai dari membuat file torrent hingga leecher mendapatkan berkas yang diunduh dari seeder.
Perancangan topologi menggunakan skenario topologi dari Internet2 Network,
merupakan infrastruktur jaringan backbone di Amerika Serikat.
Pada topologi jaringan Internet2 yang dipetakan pada Mininet, terdapat 11 node switch yang merepresentasikan suatu kota sebagai IP router node di Amerika Serikat.
Gambar 5. Topologi Jaringan Internet2 pada Mininet Algoritme pencarian jalur pada penelitian ini menggunakan Dijkstra yang melakukan pencarian jalur dari sumber ke tujuan untuk menghasilkan satu jalur terpendek. Pada penelitian ini, penulis menggunakan algoritme Dijkstra yang telah dimodifikasi dengan menghapus node ketika node tersebut tidak memiliki adjacency dengan node lain. Untuk itu pada penelitian ini digunakan perhitungan metrik atau link cost pada protokol OSPF sebagai berikut (Cisco,2005) :
𝑂𝑆𝑃𝐹 𝐶𝑜𝑠𝑡 = 𝐵𝑅
𝐵𝐿 (1)
Berdasarkan rumus 1, BR menyatakan reference bandwidth yang digunakan protokol OSPF, yaitu sebesar 100 Mbps, sedangkan BL menyatakan link bandwidth dari sepasang router yang berhubungan yaitu 1000 Mbps. Untuk perhitungan bobot, dihitung dengan mencari persentase dari pw dari masing-masing jalur dengan jumlah keseluruh pw jalur. Namun pada penelitian ini dilakukan pemilihan jalur hanya berdasarkan jumlah hop yang dilalui, maka peneliti mengasumsikan nilai dari bobot sebuah jalur (path weight) pada semua jalur sama dengan 1 seperti pada persamaan berikut ini
𝑝𝑤 (𝑝) = 1 (2)
Proses pemilihan jalur berdasarkan nilai dari pw dengan mengurutkan jalur berdasarkan pw terendah (Maulana, 2017). Jalur yang memiliki nilai pw terendah akan dipilih dan diguanakan dalam multipath routing. Untuk perhitungan bobot menggunakan persentase dari pw tiap-tiap jalur dengan keseluruhan pw jalur
seperti pada persamaan berikut,
𝑤(𝑝) = (1 − 𝑝𝑤(𝑝)
∑𝑖=0𝑖<𝑛𝑝𝑤(𝑖)) 𝑥 10 (3)
Pada perancangan algoritme pemilihan jalur dan seeder yang optimal digunakan perhitungan penilain jalur, maka dapat ditentukan beberapa jalur terbaik dari seluruh jalur yang ditemukan dengan mengurutkan jalur berdasarkan jumlah hop yang paling sedikit yang dilalui. Kemudian peer sebagai seeder yang memiliki jarak terpendek dengan nilai hop count paling rendah akan dihubungkan ke leecher untuk membagikan berkasnya. Jumlah peer sebagai seeder dapat dikonfigurasi, misalnya 3, 5 atau 7 seeder.
5. IMPLEMENTASI 5.1. Implementasi Sistem
Implementasi sistem dilakukan pada simulator jaringan Mininet. Mininet adalah lingkungan emulasi jaringan yang mendukung jaringan dengan protokol OpenFlow yang komponennya terdiri dari virtual host, switches, controllers, dan links sesuai dengan konsep software defined-network. Pada penelitian ini digunakan aplikasi BitTornado sebagai aplikasi BitTorrent client dan Pybtracker sebagai aplikasi tracker pada lingkungan sistem operasi Ubuntu 16.04. Pada pengembangan controller digunakan Ryu Controller.
Setelah melakukan instalasi, pada GUI (Graphical User Interface) mininet dibangun topologi yang sesuai dengan perancangan yaitu menggunakan topologi jaringan internet2, seperti pada gambar 6 berikut ini.
Gambar 6. Implementasi Topologi Jaringan Internet2 pada Mininet
Kemudian dilakukan pengaturan bandwidth, delay, mode controller dan preferences.
Pengaturan bandwidth dan delay dilakukan pada tiap link yang menghubungkan antar switch pada
topologi seperti pada gambar 7 berikut ini,
Gambar 7. Pengaturan Link Bandwidth dan Delay Langkah berikutnya melakukan pengaturan mode controller dengan memilih remote controller, nantinya akan dijalankan ryu controller untuk menghubungkan tiap peer pada sistem ini.
Gambar 8. Pengaturan Mode Contoller Dan yang terakhir melakukana pengaturan pada menu preferences miniedit seperti pada gambar 9 berikut ini,
Gambar 9. Pengaturan Menu Preferences Setelah proses instalasi dan pembangunan topologi pada mininet, sistem dapat dijalankan dengan langkah-langkah berikut ini :
1. Menjalankan simulasi topologi di Mininet dengan cara klik “Run” pada Miniedit.
2. Membuka terminal baru dan menjalankan program controller menggunakan ryu- manager dengan perintah berikut:
$ sudo ryu-manager --observe-links nama_program.py
3. Pada terminal mininet, lakukan ping dari masing-masing seeder ke tracker, untuk membuat flow table pada mininet, dengan perintah :
mininet > h(seeder) ping h(tracker)
4. Membuka terminal pada host di miniedit untuk membuat file torrent :
$ cd /<direktori BitTornadoSeeder>
$ sudo python3 btmakemetafile.py udp://<ipaddresstracker:port>
/announce <namafile>
5. Membuka terminal pada host tracker di miniedit untuk menjalankan aplikasi Pybtracker :
$ cd /<direktori pybtracker>
$ sudo python3.5 –m pybtracker.server –b
<ipaddresstracker:port> -O
6. Membuka terminal pada host seeder di miniedit untuk menjalankan aplikasi BitTornado Seeder :
$ cd /<direktori BitTornado Seeder>
$ sudo python3 btdownloadcurses.py
<nama file torrent>
7. Membuka terminal pada host leecher di miniedit untuk menjalankan aplikasi BitTornado Leecher :
$ cd /<direktori BitTornado Leecher>
$ sudo python3 btdownloadcurses.py
<nama file torrent>
5.2. Pengembangan Program
Dilakukan pengembangan pada kode program aplikasi Pybtracker dan ryu controller agar dapat saling berinteraksi. Pada aplikasi Pybtracker, daftar seeder yang akan diberikan ke leecher disimpan pada file .json yang nantinya akan dimodifikasi pada program controller.
Interaksi tidak dapat dilakukan secara langsung karena perbedaan lapisan, berdasarkan arsitektur SDN Pybtracker dijalankan pada lapisan aplikasi sedangkan controller dijalankan pada lapisan control plane.
Pada pengembangan kode program controller, peneliti mengembangkan kode sumber pencarian jalur, penilaian jalur dan pemilihan jalur, setelah itu dilakukan instalasi jalur yang akan digunakan untuk menghubungkan antara seeder dan leecher yang terdekat berdasarkan jumlah hop yang dilaluinya. Untuk memodifikasi daftar seeder berdasarkan informasi dari tracker, dilakukan pemilihan jalur dan seeder yang akan digunakan sesuai infromasi pada flow table yang telah dibentuk sebelumnya. Kemudian controller
menentukan beberapa seeder yang maksimal untuk disampaikan kepada tracker, tracker akan memberikan daftar seeder yang maksimal kepada leecher yang akan melakukan koneksi dan mengunduh potongan file dari beberapa seeder yang optimal tersebut. Sehingga dapat diperoleh download rate dan throughput yang maksimal.
6. PENGUJIAN SISTEM
6.1. Pengujian Fungsionalitas : Mekanisme Tit-for-Tat Aplikasi BitTornado
Pengujian mekanisme tit-for-tat dilakukan pada aplikasi BitTornado untuk membuktikan aplikasi tersebut telah sesuai dengan aturan dari protokol BitTorrent. Tit-for-tat akan menjalankan algoritme choking, pada awal koneksi seeder akan melakukan unchoke peer akan menghitung ulang peer yang akan di-choke setiap 10 detik dan melakukan optimistic unchoke peer yang berarti meng-unchoke tanpa melihat tingkat download secara round robin dalam waktu 30 detik (Cohen, 2003).
Pengujian dilakukan dengan skenario jumlah seeder yang berbeda yaitu dengan 5 seeder dan 7 seeder yang masing-masing menjalankan aplikasi BitTornado sebagai BitTorrent client dan aplikasi Pybtracker sebagai tracker.
Pengamatan dilakukan pada sisi leecher. Pada awal koneksi yang dilakukan antar peer, leecher akan melakukan unchoke pada beberapa seeder yang terkoneksi dengannya. Beberapa seeder tersebut diberikan oleh tracker ke leecher dalam daftar peer yang memiliki potongan file yang akan diminta.
Pada skenario dengan jumlah seeder sebanyak 5, host sebagai leecher yang memiliki alamat ip 10.0.0.9 melakukan unchoke ke host sebagai seeder dengan alamat ip 10.0.0.6 , 10.0.0.7, 10.0.0.3 , 10.0.0.2, dan 10.0.0.8.
Kemudian host sebagai seeder yang memiliki alamat ip 10.0.0.3 dan 10.0.0.8 melakukan choke ke host sebagai leecher dengan alamat ip 10.0.0.9.
Pada skenario dengan jumlah seeder sebanyak 5, host sebagai leecher yang memiliki alamat ip 10.0.0.9 melakukan unchoke ke host sebagai seeder dengan alamat ip 10.0.0.7 , 10.0.0.6, 10.0.0.4 , 10.0.0.2, 10.0.0.3, 10.0.0.10 dan 10.0.0.5. Kemudian host sebagai seeder yang memiliki alamat ip 10.0.0.5 dan 10.0.0.3 melakukan choke ke host sebagai leecher dengan alamat ip 10.0.0.9.
6.2. Pengujian Fungsionalitas : Pemilihan Seeder
Pengujian pemilihan seeders dilakukan secara reactive routing berdasarkan perancangan topologi dari jaringan internet2 yang digunakan pada penelitian ini, dengan link bandwidth 1000 Mbps dan delay 50 ms. Terdapat dua skenario pengujian, yaitu pada pengujian pertama aplikasi BitTorrent client dan tracker dijalankan secara default serta pengujian kedua yaitu aplikasi BitTorrent client dan tracker yang telah dimodifikasi dijalankan dengan pengaruh dari controller.
Pemilihan seeders pada aplikasi BitTorrent client dan tracker secara default dilakukan acak, jalur yang digunakan dapat berbeda-beda dan jumlah seeders yang digunakan berdasarkan variabel max_seed yang dimodifikasi pada tracker. Namun, pemilihan seeders pada aplikasi BitTorrent client dan tracker yang telah dimodifikasi dengan controller ditentukan antara seeder dan leecher yang terdekat berdasarkan jumlah hop terdekat yang dilalui.
6.2. Pengujian Download Rate
Pengujian download rate dilakukan dengan mencatat perubahan setiap detik yang terjadi pada variabel downRate pada aplikasi BitTorando sebagai BitTorrent client yang dijalankan oleh leecher. Digunakan variabel max_seed yang untuk menentukan jumlah maksimal seeder yang dipilih dan akan digunakan oleh leecher dalam mengunduh potongan berkas. Pengujian dilakukan dengan mengunduh berkas video berukuran 207.9 MB yang disediakan 8 seeders aktif, namun pada skenario pengujian hanya digunakan 3, 5 dan 7 seeder yang ditentukan secara acak dan yang paling optimal berdasarkan pemilihan jalur dan seeders pada pengujian pemilihan seeders.
Gambar 11. Hasil Pengujian Download Rate
Pada gambar 11 merupakan grafik hasil pengujian download rate dari 3, 5, dan 7 seeders yang ditentukan secara acak dan yang paling
optimal berdasarkan pemilihan jalur dan seeders sebelumnya. Hasil pengujian diperoleh nilai rata-rata download rate 4785,3 Kbps dengan waktu distribusi 25 detik pada 3 seeders acak, 6378,3 Kbps dengan waktu distribusi 17 detik pada 5 seeders acak, 6721,9 Kbps dengan waktu distribusi 18 detik pada 7 seeders acak dan 5990,8 Kbps dengan waktu distribusi 18 detik pada 3 seeders, 6732,1 Kbps dengan waktu distribusi 15 detik pada 5 seeders, 7656,53 Kbps dengan waktu distribusi 15 detik pada 7 seeders.
6.3. Pengujian Throughput
Pengujian throughput dilakukan pada sisi leecher dengan mencatat jumlah ukuran potongan berkas yang berhasil di-unduh dalam satuan waktu tertentu. Ukuran potongan berkas disimpan pada variabel totalDown pada aplikasi BitTornado sebagai BitTorrent client yang dijalankan pada leecher. Skenario yang digunakan sama dengan pengujian download rate sebelumnya.
Gambar 12. Hasil Pengujian Throughput Pada gambar 12 merupakan grafik hasil pengujian throughput dari 3, 5, dan 7 seeders yang ditentukan secara acak dan yang paling optimal berdasarkan pemilihan jalur dan seeders sebelumnya oleh controller. Hasil pengujian diperoleh nilai rata-rata throughput 5,26 Mbps pada 3 seeders acak, 7,76 Mbps pada 5 seeders acak, 7,92 Mbps pada 7 seeders acak, 7,04 Mbps pada 3 seeders, 8,44 Mbps pada 5 seeders dan 9,55 Mbps pada 7 seeders.
7. KESIMPULAN DAN SARAN 7.1. Kesimpulan
Kesimpulan diambil berdasarkan hasil analisis kebutuhan, perancangan sistem, implementasi sistem, dan pengujian sistem yang telah dilakukan. Maka dapat ditarik simpulan sebagai berikut:
Berdasarkan hasil analisis kebutuhan yang dilakukan, sistem aplikasi BitTorrent dengan reactive routing pada software defined-network
dapat di-implementasikan serta dilakukan beberapa pengembangan untuk menyesuaikan dengan kebutuhan fungsional yaitu sistem dapat melakukan pemilihan seeder yang optimal secara reactive routing pada SDN. Serta dilakukan pengamatan kinerja aplikasi BitTorrent dengan reactive routing pada software defined-network.
Berdasarkan hasil pengujian fungsionalitas, sistem dapat menjalankan mekanisme tit-for-tat dan melakukan pemilihan seeder yang optimal dari informasi yang disampaikan tracker ke controller. Controller akan menentukan beberapa seeder yang optimal untuk disampaikan kembali ke tracker yang nantinya digunakan leecher untuk mendapatkan potongan file yang lengkap.
Berdasarkan hasil pengujian download rate menunjukkan aplikasi BitTorent client dan tracker yang telah dimodifikasi dengan pengembangan program controller memiliki rata-rata download rate yang lebih baik dibandingkan dengan aplikasi BitTorrent client dan tracker yang dijalankan secara default.
Dan hasil pengujian throughput menunjukkan aplikasi BitTorent client dan tracker yang telah dimodifikasi dengan pengembangan program controller memiliki rata-rata throughput yang lebih baik dibandingkan dengan aplikasi BitTorrent client dan tracker yang dijalankan secara default.
7.2. Saran
Saran yang dapat diberikan dari penelitian yang telah dilakukan untuk membantu pengembangan sistem ini antara lain:
Program tracker dan controller perlu dilakukan pengembangan agar dapat berkomunikasi secara langsung supaya proses pertukaran informasi dapat dilakukan lebih cepat dalam menentukan beberapa seeders yang dipilih.
Pada penelitian ini mekanisme pendistribusian potongan berkas pada BitTorrent yang dilakukan secara peer-to-peer masih dijalankan pada simulator. Sehingga perlu pengembangan lebih lanjut untuk melakukan penelitian dengan komputer sebagai peer , server sebagai tracker, serta perangkat jaringan lainnya seperti switch dan controller untuk menjalankan jaringan dengan protokol OpenFlow.
8. DAFTAR PUSTAKA
Andreas, 2004. Reactive Protocol AODV.
[Online] Available at:
http://www.olsr.org/docs/report_html/no de16.html [Accessed 10 September 2017].
Bittorrent.org, 2015. What is Bittorrent?
[Online] Available at:
http://www.bittorrent.org/introduction.ht ml [Accessed 21 March 2018].
CH Ke, 2011. Dijkstra Algorithm implementation in RYU. [Online] Nippon Telegraph and Telephone Corporation
Available at:
http://csie.nqu.edu.tw/smallko/sdn/dijkstr a_ryu.htm [Accessed 11 May 2018].
Chiang, Y.-R., Ke, C.-H. & Yu, Y.-S., 2017. A Multipath Transmission Scheme for the Improvement of Throughput over SDN. In Applied System Innovation (ICASI).
Sapporo, Japan, 2017. IEEE.
Cohen, B., 2003. Incentives Build Robustness in BitTorrent.
Cohen, B., 2017. The BitTorrent Protocol Specification. [Online] Available at:
http://www.bittorrent.org/beps/bep_0003.
html [Accessed 21 November 2017].
Goransson, P. & Black, C., 2014. Software Defined Networks A Comprehensive Approach. Wyman Street, Waltham, MA 02451, USA: Copyright © 2014 Elsevier Inc.
Guraya, M.K., Bajwa, R.S., Vicino, D. & Lung, C.-H., 2015. The Assessment of BitTorrent’s Performance Using SDN in a Mesh Topology.
Guraya, M. & et al, 2015. The Assessment of BitTorrent's Performance Using SDN in a Mesh Topology.
Internet2, 2015. Internet2 Network Infrastructure Topology. [Online]
Available at:
https://www.internet2.edu/media/mediali brary/2015/08/18/Internet2-Network- Infrastructure-Topology-201508.pdf [Accessed 04 April 2018].
Kurose, J.F. & Ross, , 2013. Computer Networking. 6th ed. United States of America: Addison-Wesley.
Lei, Y.-C., Wang, K. & Hsu, Y.-H., 2015.
Multipath Routing in SDN-based Data Center Networks. European Conference on Networks and Communications
(EuCNC), 2015. IEEE.
Open Network Foundation, 2017. Software- Defined Networking (SDN) Definition.
[Online] Available at:
https://www.opennetworking.org/sdn- definition/.
Osterman Research, 2014. Best Practices for File Sharing. Washington: Osterman Research Inc.
Razavi, M., 2018. pybtracker 0.2.2. [Online]
Available at:
https://pypi.python.org/pypi/pybtracker/0 .2.2 [Accessed 12 April 2018].
Ross , K.W. & Kurose, J.F., 1996 - 2000. Delay and Loss in Packet-Switched Networks.
[Online] Available at:
http://www2.ic.uff.br/~michael/kr1999/1- introduction/1_06-delay.htm [Accessed 15 Januari 2018].
Shadow, T., 2017. BitTornado The Shadow Experimental BitTorrent Client. [Online]
Available at: http://www.bittornado.com/
[Accessed 12 April 2018].
Syahidillah, W.M., 2016. Multipath Routing dengan Load Balancing pada Openflow Software Defined-Network. JTIIK.
Vicino, , Lung, C.-H., Wainer, G. & Dalle, , 2014. Evaluating the impact of Software- Defined Networks’ Reactive Routing on BitTorrent performance. Procedia Computer Science, 34, pp.668 – 673.