Fakultas Ilmu Komputer
Universitas Brawijaya
3771
Analisis dan Perbandingan Performansi File Sharing Peer-to-Peer
Menggunakan Framework JXTA dan Gnutella
Yoga Faodiansyah1, Kasyful Amron2, Eko Sakti Pramukantoro3
Program Studi Teknik Informatika, Fakultas Ilmu Komputer, Universitas Brawijaya Email: 1yogaf.informatika@gmail.com, 2kasyful@ub.ac.id, 3ekosakti@ub.ac.id
Abstrak
Teknologi informasi telah menjadi kebutuhan manusia dan salah satu bidang didalamnya yaitu sharing. Sharing adalah mekanisme yang dilakukan untuk berbagi resource berupa file, atau informasi lainnya kepada user lain dan bertujuan untuk memaksimalkan resource yang tersedia. Tujuan lainnya yaitu memberikan kemudahan untuk melakukan pencarian atau pembagian informasi pada user. File sharing merupakan kegiatan sharing yang banyak dilakukan dan berdasar pada arsiterktur yang digunakan dibagi menjadi dua yaitu client-server dan peer-to-peer. Muncul beberapa masalah saat arsitektur client-server digunakan yaitu salah satunya resource yang digunakan terbatas sehingga menghambat proses file sharing. Arsitektur peer-to-peer dapat menjadi solusi dari permasalahan tersebut karena pada arsitektur peer-to-peer, resource yang digunakan dapat dibagi pada setiap user yang terhubung. Mekanisme file sharing pada peer-to-peer berbeda-beda pada setiap generasi sehingga hasil kinerjanya pun berbeda. Penelitian ini dilakukan untuk mengetahui kinerja terhadap protocol yang digunakan yaitu JXTA dan Gnutella yang masing-masing pada generasi dua dan tiga untuk melakukan proses file sharing dengan trhoughput dan delay sebagai parameter. Untuk memperoleh nilai parameter dilakukan pengujian dengan melakukan proses file sharing sesuai dengan perancangan terhadap kedua protocol yang ditentukan. Hasil pengujian pada masing-masing protocol yang diperoleh kemudian dianalisis dan dibandingkan.
Kata kunci: file sharing, sharing, peer-to-peer, gnutella, jxta
Abstract
Information technology has become a human need and one of the areas in it is sharing. Sharing is a mechanism done to share resources in the form of files, or other information to other users and aims to maximize the available resources. Another goal is to make it easy to search or share information with the user. File sharing is a sharing activity that many do and based on arsiterktur used is divided into two namely client-server and peer-to-peer. Some problems arise when the client-server architecture is used, one of which is limited resources that hinder the process of file sharing. Peer-to-peer architecture can be the solution of the problem because in the peer-to-peer architecture, the resources used can be shared on each connected user. The mechanism of file sharing on peer-to-peer varies on each generation so that the performance results are different. This research is conducted to know the performance of the protocol used is JXTA and Gnutella which respectively in second and third generation to do file sharing process with trhoughput and delay as parameter. To obtain the value of the parameters are tested by doing the file sharing process in accordance with the design of the two protocols specified. The test results on each obtained protocol were then analyzed and compared.
Keywords: file sharing, sharing, peer-to-peer, gnutella, jxta
1. PENDAHULUAN
Saat ini teknologi informasi telah berkembang pesat dengan adanya internet dan telah menjadi kebutuhan manusia dan salah satu bidang didalamnya yaitu sharing. Sharing
Saat ini volume lalulintas pada internet meningkat drastis. Unduhan konten multimedia dan software package mungkin berisi berkas dengan ukuran yang besar sehingga membutuhkan resource yang sangat besar pada sisi server (Leibnitz et al., 2007). Resource yang digunakan semua berasal dari sisi server pada client-server saat melakukan akses pada web untuk melakukan file sharing. Arsitektur peer-to-peer dapat menjadi solusi dari permasalahan tersebut karena pada arsitektur peer-to-peer, resource yang digunakan dapat dibagi pada setiap user yang terhubung. Peer-to-peer adalah salah satu cara untuk berbagi (sharing) sumberdaya pada komputer secara langsung, sehingga tidak diperlukan server terpusat (Androutsellis-Theotokis & Spinellis, 2004). Setiap komputer yang saling terhubung pada suatu jaringan Peer-to-peer disebutl sebagai node atau peer.
Hingga sekarang, arsitektur Peer-to-peer dibagi berdasarkan mekanismenya menjadi tiga generasi. Generasi pertama menyimpan informasi peer dan file pada suatu server terpusat. Napster, eDonkey2000, dan Pastry adalah contoh yang tergolong pada generasi pertama (Gong, 2014). Informasi-informasi disimpan pada masing-masing peer pada generasi kedua dan lingkungan jaringannya dibentuk sendiri oleh peer. Aplikasi yang termasuk pada generasi kedua yaitu Gnutella dan Kazaa (Watson, 2013). Pada generasi yang ketiga, beberapa peer memiliki fungsi sebagai server untuk menyimpan informasi dan pencarian peer dan resource sehingga traffic berkurang pada jaringan (Jabbar et al., 2012). Hasil kinerja yang dihasilkan dimungkinkan berbeda jika mekanisme dan sistemnya berbeda.
Tujuan dilakukan penelitian ini adalah untuk mengetahui bagaimana kinerja pada protokol-protokol yang digunakan sehingga dapat dibandingkan. Perbedaan kinerja yang dihasilkan dapat diketahui faktornya dengan menggunakan throughput dan rata-rata delay sebagai parameter pengujian.
1.1 File Sharing
File Sharing merupakan teknologi yang berfungsi untuk menjalankan proses distribusi terhadap konten data pada masing-masing perangkat yang terhubung dengan menggunakan protokol-protokol pada jaringan komputer sebagai media transfer. Multimedia, dokumen,
program komputer, grafis, e-book, dan gambar adalah data-data yang didistribusikan yang merupakan data digital.
Berdasarkan metodenya, mekanisme file Sharing dibagi menjadi dua, yaitu memanfaatkan peer-to-peer dan client-server. Pada client-server data diperoleh dari server sebagai penyedia konten sehingga client bisa mengunduh data didalam server (Department of Communications, Climate Action, & Environment, 2012). File Sharing pada peer-to-peer dilakukan oleh peer-peer pada jaringan komputer. Peer berperan sebagai client ataupun server sehingga dapat menyediakan konten sekaligus mendapatkan konten dari peer (Department of Communications, Climate Action, & Environment, 2012).
1.2 Peer-to-Peer
Peer-to-peer(P2P) merupakan arsitektur jaringan alternatif client-server. Jaringan P2P terbentuk dari peer-peer yang terhubung dan berperan sebagai client dan server sekaligus (The Government of Hong Kong Special Administration Region, 2008).
Berdasar pada karakteristik dari arsitekturnya, model P2P dibagi dua, yaitu (Androutsellis-Theotokis & Spinellis, 2004): • Resource dari komputer dibagikan langsung
tanpa perlu melalui server terpusat. penggunaan Server dilakukan hanya untuk melakukan penambahan node baru pada jaringan, memperoleh global key untuk enkripsi pada data dan bootstrapping terhadap sistem.
• P2P memiliki kemampuan untuk menangani ketidakstabilan di jaringan, penyesuaian diri secara otomatis saat terjadi kegagalan di jaringan, antar node, dan komputer.
P2P juga terbagi jadi beberapa fungsi berdasarkan service-nya, (Camarillo, 2009): • Data Storage Function merupakan fungsi
untuk memproses penyimpanan dan penerimaan data dari sistem.
• Data Indexing Function merupakan fungsi untuk memproses indexing terhadap data yang tersimpan di sistem.
• Computation Function merupakan fungsi untuk memproses perhitungan didalam sistem.
1.3 JXTA
JXTA merupakan projek penelitian kolaboratif terkait dengan peer-to-peer(P2P) computing (Gong et al., 2002). Platform P2P ini dikembangkan dengan memodelkan Apache open-source oleh Sun Microsystem. JXTA dibuat dengan beberapa tujuan, yaitu (Gradecki, 2002):
• Peer-peer dapat bertemu satu sama lain. • Dapat menjalankan self-organize sehingga
terbentuk peergroups sendiri oleh peer. • Advertise dan discovery dapat dilakukan
pada resource yang ada oleh peer. • Komunikasi antar peer dapat dilakukan. • Tidak tergantung dengan bahasa komputer
dan sistem operasi untuk menggunakan platformnya.
• Tidak tergantung dengan encryption, security, dan authentication untuk menggunakan platformnya.
Arsitektur JXTA dibutuhkan sehingga protokol-protokolnya dapat dijalankan dan Arsitektur JXTA dimodelkan dengan Gambar 1.1 (Gradecki, 2002)
.
Gambar 1 Model arsitektur peer-to-peer JXTA
Sumber: (Gradecki, 2002)
Dibagi menjadi tiga bagian, yaitu:
• Core layer adalah tempat code untuk pengimplementasian protokol. Protokol-protokol ini menyediakan fungsionalitas untuk peers, peer groups, security, monitoring, message-passing, dan protokol jaringan
• Service layer terdapat service-service yang disediakan oleh JXTA
• Application layer adalah tempat untuk
pengembangan aplikasi peer-to-peer yang didalamnya terdapat code-code yang menarik peer-peer individu menjadi suatu fungsionalitas
1.4 Gnutella
Gnutella merupakan sebuah protocol pada peer-to-peer untuk melakukan pencarian file dan file sharing pada fungsi utamanya yang bersifat terpusat dan open-source (Ripeanu, 2002). Tujuan dari desain Gnutella yang dikembangkan yaitu (Ripeanu, 2002):
• Peer mampu beroperasi didalam sebuah lingkungan yang dinamis, dimana peer-peer dapat berulang kali masuk ataupun keluar dari jaringan.
• Performance and Stability. Hasil kinerja dari Gnutella harus lebih bagus jika dibandingkan dengan arsitektur client-server dalam jaringan yang luas. Stabilitas terhadap kinerja juga harus tetap dijaga sehingga hasil kinerja tetap stabil ketika jumlah pengguna bertambah dengan acuan nilai throughput tetap tinggi dan response time yang konstan.
• Reliability. Hasil kinerja yang konsisten dihasilkan oleh Gnutella dan dijaminnya data walaupun menerima serangan dari luar. • Anonimity. Privasi diperlukan untuk menjaga identitas pengguna sebagai pencari maupun penyedia informasi.
Pada Gambar 2 ditunjukkan bagaimana peer Gnutella berkomunikasi dengan peer yang lain. Tahapannya adalah sebagai berikut:
• Pembaruan informasi dilakukan oleh p1 pada web-cache yaitu Gnutella host-Cache Server. • Setelah p1 bergabung selanjutnya p1 akan menginformasikan pada peer lain bahwa p1 bergabung di jaringan Gnutella yang sama. • Untuk mengetahui status dari peer lainnya,
dilakukan dengan mengirimkan PING oleh peer p1 dan peer p2 membalas dengan PONG.
• Pencarian file dilakukan dengan
mengirimkan QUERY pada semua peer yang tergabung pada jaringan, dan jika ada peer lain yang memiliki file tersebut, maka peer itu akan membalas dengan mengirimkan PONG.
meminta file. Selanjutnya pemilik file akan mengirimkan file yang diminta melalui protokol HTTP.
Gambar 2 Arsitektur peer-to-peer Gnutella
Sumber: (Tribhuvan, 2007)
2. METODOLOGI DAN PERANCANGAN
Metodologi dan perancangan berisikan langkah yang dilakukan untuk perancangan, implementasi, dan pengujian. Berikut adalah diagram alirnya.
Gambar 3 Tahapan Penelitian
Gambar 3 di atas menunjukkan bahwa penelitian dimulai dengan melakukan studi literatur terhadap sumber pustaka protokol yang digunakan dalam penelitian sehingga dapat diketahui kebutuhannya. Proses selanjutnya adalah perancangan pengujian yang akan dilakukan dan analisis kebutuhan untuk
menentukan kebutuhan yang dibutuhkan untuk melakukan pengujian. Selanjutnya dilakukan proses implementasi dan pengujian yang menjelaskan bagaimana implementasi dilakukan sesuai dengan perancangan yang dibuat dan dilakukan pengujian setelah implementasi selesai dilakukan. Pada bagian hasil pengujian dan analisis dijelaskan hasil dari pengujian yang dilakukan yaitu pengujian file sharing. Selanjutnya hasil dari pengujian akan dilakukan analisis untuk memperoleh hasil kinerja dari setiap protokol yang digunakan untuk melakukan mekanisme file sharing. Setelah didapatkan hasil dan dilakukan analisis selanjutnya dapat ditarik kesimpulan untuk menjawab rumusan masalah yang dibuat pada awal penelitian dan dapat menghasilkan saran untuk penelitian selanjutnya.
Penelitian ini dilakukan untuk mendapatkan hasil performansi dari dua protokol yang telah ditentukan untuk melakukan mekanisme file sharing sehingga diperlukan desain terhadap lingkungan pengujian yang akan digunakan
.
Gambar 4 Desain Arsitektur Sistem
Pada Gambar 4 ditunjukkan desain arsitektur sistem yang akan digunakan sebagai lingkungan pengujian yang akan dilakukan. Jaringan dibentuk oleh peer yang berperan sebagai RDV/Ultrapeer (10.34.17.244) dan (10.34.9.103) yang saling terhubung yang selanjutnya melakukan advertisement untuk bertukar informasi yang didalamnya terdapat alamat IP setiap peer dan nama file yang dibagikan oleh setiap peer. Selanjutnya peer
yang berperan sebagai Edge/Leaf
3. IMPLEMENTASI
Implementasi dalam penelitian bertujuan untuk mempersiapkan lingkungan pengujian yang akan digunakan pada pengujian file sharing yang akan dilakukan. Implementasi dimulai dengan mempersiapkan lingkungan pengujian sistem yaitu dengan mempersiapkan komputer-komputer beserta Virtual Machine yang digunakan pada pengujian disesuai dengan perancangan yang dibuat pada bagian 2.
Selanjutnya dilakukan implementasi aplikasi file sharing yang digunakan yaitu aplikasi myjxta dan aplikasi Gnucleus. Implementasi aplikasi file sharing dilakukan pada setiap komputer dan VM yang telah dipersiapkan.
3.1 Implementasi myjxta
Implementasi aplikasi file sharing dimulai dengan implementasi aplikasi myjxta yaitu dengan melakukan complie terhadap source code pada compiler seperti pada Gambar 5
Gambar 5 Output build project
Setelah compile pada source code berhasil dilakukan akan ditunjukkan seperti pada Gambar 5 dan aplikasi myjxta.
3.2 Implementasi Gnucleus
Implementasi aplikasi Gnucleus dilakukan di setiap komputer-komputer dan VM yang digunakan pada pengujian. Dimulai dengan melakukan eksekusi terhadap file instalasi Gnucleus. Pada sistem operasi Windows instalasi dilakukan dengan mengeksekusi file Gnucleus.exe dan proses instalasi akan berjalan.
Berbeda dengan instalasi pada sistem operasi Ubuntu, instalasi dilakukan dengan menjalankan beberapa perintah pada terminal dan perintah untuk melakukan instalasi Gnucleus pada Ubuntu LTS 14.04 ditunjukkan pada Gambar 6.
Gambar 6 Perintah instalasi Gnucleus
Pada Gambar 6 ditunjukkan perintah-perintah yang perlu dijalankan untuk melakukan instalasi Gnucleus pada sistem operasi Ubuntu LTS 14.04. Dimulai dengan mempersiapkan
lingkungan sistem dan memperbarui repository sehingga dapat memperoleh data untuk melakukan persiapan lingkungan sistem yang dijalankan oleh perintah pada baris ke 1 sampai baris ke 4. Selanjutnya dilakukan eksekusi terhadap file instalasi aplikasi yaitu Gnucleus.exe dengan menjalankan perintah pada baris ke 5.
4. PENGUJIAN
Pada bagian ini akan membahas pengujian pada masing-masing aplikasi file sharing yang telah diimplementasikan pada masing-masing komputer dan VM yang digunakan untuk pengujian. Pengujian dilakukan dengan melakukan mekanisme file sharing sesuai dengan skenario yang dibuat pada bagian 3 yaitu pada perancangan.
Pengujian dimulai dengan mempersiapkan file yang akan diujikan. Selanjutnya dilakukan konfigurasi terhadap masing-masing aplikasi file sharing yaitu mxjta dan Gnucleus.
Konfigurasi dilakukan pada aplikasi myjxta sebelum pengujian dilakukan yang disesuaikan dengan perancangan. Dua macam konfigurasi dilakukan yaitu peer sebagai rdv/relay dan edge.
Gambar 7 konfigurasi sebagai edge pada peer
Gambar 8 konfigurasi sebagai RDV/Relay pada peer
Selanjutnya konfigurasi pada komputer-komputer dilakukan untuk menentukan peran peer sebagai rdv/relay yang ditunjukkan pada Gambar 8. Dimulai dengan memilih Act as a Relay dan Act as a Rendezvous pada checkbox yang diberikan dan kemudian mengaktifkan
fungsi untuk menggunakan TCP dan HTTP dengan memilh enable pada checkbox yang tersedia. Agar koneksi TCP dan HTTP dapat digunakan untuk keluar masuk pada jaringan, perlu mengaktifkan pada checkbox Enable Outgoing connections dan Enable Incoming connections.
Sebelum proses file sharing dapat dijalankan perlu ditentukan file yang akan diuji setelah semua konfigurasi dilakukan. Selanjutnya pengujian dapat dijalankan sesuai dengan perancangan.
Pengujian Gnucleus dilakukan dengan melakukan konfigurasi terlebih dahulu dan sesuai dengan perancangan yang dibuat. Ada dua konfigurasi yang dilakukan yaitu peer sebagai leafpeer dan ultrapeer seperti pada Gambar 9 dan Gambar 10.
Gambar 9 Konfigurasi peer sebagai leaf
Gambar 10 Konfigurasi peer sebagai Ultrapeer
5. HASIL DAN PEMBAHASAN
Hasil yang diperoleh dari pengujian myxjta berupa throughput dan rata-rata delay didapatkan saat proses file sharing berlansung yang ditunjukkan pada Tabel 1. Skema yang digunakan untuk pengujian aplikasi myjxta adalah skema yang hanya menggunakan satu seeder karena seeder lain tidak dapat mengirimkan file uji yang sama.
Tabel 1 Hasil pengujian aplikasi myjxta
Tabel 2 Hasil pengujian aplikasi Gnucleus
Pada Tabel 2 ditunjukkan hasil dari pengujian pada Gnucleus berupa nilai yang sama pada pengujian myjxta yaitu nilai throughput dan rata-rata delay. Kedua hasil yang diperoleh menggunakan file uji yang sama yaitu file berukuran 50MB, 100MB, 200MB, 512MB.
Masing-masing pada hasil pengujian aplikasi myjxta dan Gnucleus dilakukan perbandingan pada grafik yang ditunjukkan pada Gambar 11 dan Gambar 12
Gambar 11 Grafik perbandingan throughput antara JXTA dan Gnutella
Gambar 12 Grafik perbandingan rata-rata delay antara JXTA dan Gnutella
6. KESIMPULAN
Kesimpulan yang dapat diperoleh dari tahapan sebelumnya dalam analisis dan perbandingan performansi pada JXTA dan Gnutella antara lain:
membuat kinerja dari JXTA terlihat lebih baik dari Gnutella. Tetapi Gnutella lebih baik dari JXTA dalam melakukan pengambilan file, yaitu dapat menerima file dari beberapa peer sekaligus sebagai seeder sedangkan JXTA hanya menerima dari satu seeder.
2.
Perbedaan performansi yang dihasilkanJXTA dan Gnutella dipengaruhi oleh perbedaan desain arsitektur yang digunakan yang merupakan faktor utama sehingga hasil yang diperoleh berbeda
.
Faktor lainnyaadalah metode pengiriman query pada peer yang digunakan berbeda pada JXTA dan Gnutella.
7. SARAN
Dari penelitian yang telah dilakukan dapat diberikan saran untuk pengembangan penelitian selanjutnya, yaitu:
1. Penggunaan protokol lain yang digunakan dalam melakukan proses file sharing yang dijalankan jaringan peer-to-peer pada penelitian selanjutnya sehingga dapat dihasilkan nilai yang lebih akurat.
2. Lingkungan pengujian yang berbeda diperlukan untuk penelitian lebih lanjut sehingga hasil yang diperoleh lebih akurat.
9. DAFTAR PUSTAKA
Androutsellis-Theotokis, S. & Spinellis, D., 2004. A Survey of Peer-to-Peer Content
Distribution Technologies. ACM
Computing Surveys, Volume 36.
Camarillo, G., 2009. Peer-to-Peer (P2P)
Architecture: Definition, Taxonomies,
Examples,
and
Applicability.
California: Internet Engineering Task
Force.
Department of Communications, Climate
Action, & Environment, 2012.
File
Sharing.
[Online]
Available
at:
http://www.makeitsecure.org/en/file-sharing.html [Accessed 17 Februari
2017]
Gong, L., Oaks, S. & Traversat, B., 2002.
JXTA in a Nutshell. Sebastopol,
California, United States of America:
O'Reilly & Associates, Inc.
Gong, Y., 2014. Identifying P2P users using
traffic analysis. [Online] Available at:
https://www.symantec.com/connect/art
icles/identifying-p2p-users-using-traffic-analysis [Accessed 2 Februari
2017].
Gradecki, J.D., 2002.
Mastering JXTA:
Building Java Peer-to-peer Application.
Indianapolis: Wiley Publishing.
Jabbar, W.A., Ismail, M. & Nordin, R.,
2012. Framework for Enhancing P2P
Communication Protocol on Mobile
Platform. p.11.
Leibnitz, K., Hoßfeld, T., Wakamiya, N. & Murata, M., 2007. Peer-to-Peer vs. Client/Server: Reliability and Efficiency of a Content Distribution Service.