ANALISIS PERBANDINGAN PERFORMANSI ANTARA SERVER VoIP BERBASIS PARALLEL PROCESSING DENGAN SERVER VoIP TUNGGAL Bayu Wicaksono - 2206100077 Laboratorium Jaringan Telekomunikasi Jurusan Teknik Elektro-FTI, Institut Teknologi Sepuluh Nopember Kampus ITS, Keputih-Sukolilo, Surabaya-60111 e-mail :
[email protected] Abstrak – Jaringan VoIP berpusat pada suatu server VoIP. Server VoIP ini menangani semua pengguna yang sudah terdaftar pada server tersebut. Semakin banyak pengguna, maka kerja server akan semakin berat. Oleh karena itu diperlukan server VoIP yang memiliki performansi tinggi. Server tersebut dapat dibangun dengan menggunakan metode parallel processing. Parallel processing merupakan suatu metode pembagian proses, yang dilakukan oleh server kepada node-node, sehingga suatu program dapat dijalankan lebih cepat Ada beberapa software server VoIP open source yang tersedia. Diantaranya adalah asterisk dan kamailio. Pada tugas akhir ini, kedua server VoIP tersebut akan dibangun dengan menggunakan metode parallel processing, kemudian performa keduanya dibandingkan baik saat menggunakan parallel processing maupun tidak. Darisitu akan diketahui server VoIP mana yang cocok diterapkan pada parallel processing. Berdasarkan hasil pengujian dan pengukuran yang telah dilakukan, metode parallel processing dapat meningkatkan kapasitas maksimum dari server VoIP asterisk, sedangkan pada kamailio tidak ada perbedaan kapasitas maksimum server antara sebelum dan sesudah menggunakan parallel processing. Namun demikian, penggunaan parallel processing tidak dapat mengatasi kenaikan delay, jitter serta packet loss yang diakibatkan semakin banyaknya client yang melakukan panggilan. Kata kunci : VoIP, parallel processing, asterisk, kamailio 1. PENDAHULUAN Voice over Internet Protocol (VoIP) merupakan sebuah terobosan dalam berkomunikasi, yang mampu menjawab kekurangan jaringan PSTN dalam hal biaya dan fasilitas. VoIP merupakan sebuah teknologi yang mendigitalisasi data suara ke dalam paket-paket data untuk ditransmisikan melalui jaringan komputer memanfaatkan Internet Protocol (IP). Karena teknologi ini memanfaatkan jaringan internet yang sudah ada, biaya komunikasi
yang dikeluarkan sama dengan biaya penggunaan internet biasa. Di samping itu fasilitas-fasilitas yang bisa ditambahkan pada teknologi VoIP juga lebih banyak, antara lain call waiting, call schedulling, call conference, video call, video conference, instant messaging, serta bisa juga diintegrasikan dengan aplikasi internet yang telah ada seperti chatting, email, file transfer, dan aplikasi lainnya. Server VoIP merupakan pusat dari suatu jaringan VoIP. Server VoIP melayani seluruh panggilan yang terjadi pada jaringan VoIP. Semakin banyak pengguna, maka kerja server akan semakin berat. Oleh karena itu diperlukan server VoIP yang memiliki performansi tinggi. Server tersebut dapat dibangun dengan menggunakan teknik parallel processing. Parallel processing merupakan metode komputasi yang menggunakan lebih dari satu CPU untuk mengeksekusi sebuah program. Parallel processing menjadikan program berjalan lebih cepat karena menggunakan lebih dari satu CPU. Metode Parallel processing biasa digunakan pada dunia desain grafis dan animasi untuk rendering gambar. Selain itu juga digunakan untuk pemrograman yang membutuhkan CPU dengan performa tinggi. Pada tugas akhir ini, metode parallel processing akan dicoba diterapkan pada server VoIP. Penggunaan metode parallel processing pada server VoIP diharapkan akan meningkatkan performansi dari server VoIP 2. DASAR TEORI A. Voice over Internet Protokol Voice over Internet Protocol (VoIP) adalah teknologi yang mampu melewatkan trafik suara, video dan data melalui jaringan IP. Jaringan IP sendiri adalah merupakan jaringan komunikasi data yang berbasis packet-switch[1]. Jadi dalam bertelepon menggunakan media jaringan IP atau Internet, data suara (voice) akan didigitalisasi ke dalam paket-paket data untuk ditransmisikan melalui packetswitch IP networks. Komponen-komponen yang membentuk sistem VoIP antara lain[2] : • User Agent - Merupakan end point dari jaringan VoIP dan dapat berupa hardphone seperti IPphone, USBphone ataupun softphone seperti SJPhone dan X-Lite, bahkan teleppon analog biasa.
Proceeding Seminar Tugas Akhir Jurusan Teknik Elektro FTI-ITS
1/6
• Proxy - Merupakan sentral dari jaringan VoIP yang dapat berupa PC yang telah terinstall aplikasi softswitch seperti asterisk, axon ataupun perangkat seperti cisco dengan call manager. • Protocol - Merupakan suatu aturan yang mengatur atau memanajemen suatu proses panggilan antara lain SIP dari IETF, IAX dari Asterisk, dan H.323 dari ITU. • Codec (Coder-Decoder) Merupakan komponen dalam proses coding-decoding dari voice atau video dalam jaringan VoIP seperti G711, GSM, iLBC, dll. Ada beberapa software server VoIP open source yang tersedia, diantaranya adalah sebagai berikut: • Asterisk Asterisk merupakan open source software yang biasanya digunakan untuk membangun suatu sistem layanan komunikasi serta memberikan kemudahan kepada penggunanya untuk mengembangkan layanan telepon sendiri dengan kustomisasi yang seluas-luasnya diberikan kepada pihak pengguna Banyak fitur yang disediakan, diantaranya Voicemail, Call Conferencing, Interactive Voice Response, Call Queuing, Three Way Calling, Caller ID Service, Analog Display Service Interface, Protokol VoIP SIP, H323 (sebagai client dan gateway), IAX, MGCP (hanya menyediakan fungsi call manager), SCCP/Skinny, dan masih banyak lagi fitur yang disediakan Asterisk. Kamailio Kamailio (dulu bernama OpenSER) adalah SIP Server Open Source yang dirilis oleh GPL, mampu menangani banyak per detik. Kamailio merupakan versi open source dari SER (SIP Express Router). Fitur-fitur yang dimiliki kamailio diantaranya adalah: asynchronous TCP, UDP dan SCTP, komunikasi yang aman melalui TLS untuk VoIP serta video), instant messaging, ENUM, load balancing, fungsi akuntansi, otentikasi dan otorisasi terhadap MySQL. Kamailio menggunakan database MySQL untuk menyimpan data user. Hal ini berbeda dengan asterisk yang menyimpan data user pada file sip.conf •
B. Parallel processing Parallel processing adalah melakukan perhitungan komputasi dengan menggunakan dua atau lebih CPU/Processor dalam suatu komputer yang sama atau komputer yang berbeda dimana dalam hal ini setiap instruksi dibagi kedalam beberapa instruksi kemudian dikirim ke processor yang terlibat komputasi dan dilakukan secara bersamaan. • Komputer Cluster Komputer cluster merupakan suatu sistem pemrosesan paralel atau pemrosesan terdistribusi
yang terdiri dari sekumpulan stand-alone computer yang bekerja bersama-sama seperti layaknya suatu single integrated computing resource. Setiap node pada komputer cluster dapat berupa sistem komputer single processor atau suatu multiprocessor [PC, workstation atau SMP] yang memiliki sistem memori, fasilitas input/output, dan bekerja dengan sistem operasi yang dimilikinya. Cluster secara umum dapat diartikan sebagai dua atau lebih komputer atau node yang dihubungkan menjadi suatu sistem terintegrasi. Komputer node dapat diletakkan didalam suatu kabinet tertentu atau terpisah secara fisik dan dihubungkan dengan suatu jaringan komputer lokal atau LAN[3]. Suatu LAN-based komputer cluster akan dipandang sebagai suatu sistem tunggal baik oleh pemakai maupun oleh applikasi komputer. Sistem Cluster Diskless Sistem yang diskless merupakan sebuah jaringan komputer dimana sebagian besar komputer yang terkoneksi tidak didukung dengan tempat penyimpanan (storage) yang permanen [4]. Hal ini hampir mirip dengan dump terminal. Pada jaringan yang hanya terdiri dari dua komputer, dump terminal hanya menggunakan dua buah monitor, ethernet, keyboard dan mouse. Sedangkan pada sistem yang diskless, selain menggunakan monitor, ethernet, keyboard dan mouse, juga menggunakan dua buah CPU yang lengkap. Namun dengan hanya dilengkapi media penyimpanan yang tetap, seperti hard disk Sistem diskless umumnya berjalan di atas sistem operasi Linux. Contoh software package untuk sistem yang diskless adalah Linux Terminal Server Project (LTSP) dan Fully Automated Instalation (FAI). •
Message Passing Interface Message passing merupakan salah satu model pemrograman aplikasi paralel yang banyak digunakan Setiap proses yang bekerja bersama secara paralel dapat berkomunikasi satu sama lain dengan cara mengirim pesan [5]. Dalam message passing, setidaknya ada dua operasi dasar yang dimiliki oleh program untuk berkirim pesan, yaitu operasi pengiriman pesan (send ) dan operasi untuk menerima pesan (receive). Dengan dua perintah ini, satu proses sudah dapat mengirim pesan ke satu proses yang lain lalu proses penerima pesan akan memanggil fungsi untuk mengambil pesan yang dikirimkan kepadanya. Model komunikasi ini disebut sebagai komunikasi point-to-point . Melalui dua perintah dasar tersebut dapat dikembangkan model komunikasi yang lebih lanjut yang melibatkan lebih dari satu proses sekaligus. Pengiriman pesan kepada sekelompok proses dapat digunakan untuk melakukan sinkronisasi, pengiriman data ke semua proses yang lain •
Proceeding Seminar Tugas Akhir Jurusan Teknik Elektro FTI-ITS
2/6
(broadcast), mendapatkan pesan dari semua proses, maupun membagi data ke proses-proses lainnya. Model komunikasi seperti ini disebut sebagai komunikasi kolektif. 3. PERANCANGAN DAN IMPLEMENTASI Pada tugas akhir ini akan dilakukan pembuatan server VoIP dengan metode parallel processing. Sistem parallel processing yang akan dibuat terdiri atas front-end atau head node server dan cpu-cpu node. Front-end server bertugas membagi job kepada node-node pemroses. Antara front-end server dengan node, dihubungkan dengan sebuah switch. Front-end server menggunakan dua buah NIC. Satu untuk berkomunikasi dengan node, dan yang lain terhubung pada switch yang digunakan oleh VoIP client. Skema topologi jaringan yang akan dibuat, ditunjukkan pada gambar 1.
file system dari server front-end. TFTP server yang digunakan adalah AFTPD 2. DHCP server DHCP (Dynamic Configuration Protocol) berfungsi untuk memberi IP kepada semua node yang terhubung dalam cluster. Pemberian IP ini sangat penting agar node-node dapat mengakses TFTP server pada front-end, sehingga dapat melakukan booting. 3. NFS Server Network File System (NFS) adalah salah satu layanan (service) yang dapat memungkinkan suatu node untuk melakukan proses mounting suatu direktori/folder pada komputer lain. Folder yang dimount oleh node, merupakan folder yang berisi file system, untuk keperluan booting. 4. SSH (Secure Shell) Secure shell (SSH) adalah protokol standar yang membentuk jalur yang aman pada komunikasi antar komputer. Pada sistem parallel processing komunikasi antara front-end/headnode dengan node-node dilakukan melalui SSH. 5. OpenMPI OpenMPI berfungsi untuk mengirim perintah dari front-end server kepada node-node, untuk melakukan proses, serta mengirim data-data yang diperlukan. Instalasi dan Konfigurasi Server VoIP Pada tugas akhir ini digunakan dua macam server VoIP, yaitu asterisk dan kamailio. Instalasi server VoIP tersebut dilakukan pada front-end server. Setelah instalasi selesai dilakukan, dilanjutkan dengan pendaftaran user. Pendaftaran user pada asterisk, dilakukan dengan menambahkan data user pada file sip.conf, dengan format sebagai berikut: •
Sistem parallel processing
[1001]
Gambar 1. Desain topologi jaringan dan sistem parallel processing
type = friend username = 1001 secret = 1001 mailbox = 2225 dtmfmode=rfc2833
Metode parallel processing yang digunakan pada tugas akhir ini adalah KestrelHPC. KestrelHPC merupakan suatu metode parallel processing yang berjalan pada sistem operasi Linux, yaitu ubuntu 9.04. Instalasi KestrelHPC dilakukan pada front-end server yang telah terinstall ubuntu 9.04. KestrelHPC terdiri atas beberapa komponen yang saling berkaitan dan memiliki tugas tertentu sebagai berikut: 1. TFTP server TFTP adalah protokol transfer file sederhana yang digunakan untuk mengirimkan kernel ke node. Protokol ini memungkinkan node melakukan booting melalui jaringan dengan cara mengambil
inisialisasi awal dari account tipe dari VoIP client username VoIP client password yang dibuat mailbox disimpan k account 2225 dtmf sesuai aturan rfc2833
Kemudian dibuat dial plan pada file extensions.conf, dengan format sebagai berikut: exten =>1001,1,Dial(SIP/1001,20) exten =>1001,2,
Untuk kamailio, pendaftaran user dilakukan dengan menggunakan perintah pada terminal. Perintah yang digunakan adalah sebagai berikut: root# kamctl add 1001 1001 MySQL password 'openser@localhost': new user '1001' added
Proceeding Seminar Tugas Akhir Jurusan Teknik Elektro FTI-ITS
for
user
3/6
Perintah ’kamctl add 1001 1001’ artinya adalah menambahkan SIP account, dengan username 1001 dan password 1001. Perintah tersebut memasukkan data user pada database MySQL, yang bernama openser. 4. ANALISA DATA DAN PEMBAHASAN Pengujian dilakukan dengan membandingkan antara server VoIP Asterisk dan Kamailo, yang dijalankan pada sistem parallel processing maupun tanpa parallel processing. Parameter yang diuji pada tugas akhir ini adalah kemampuan maksimal server melayani panggilan simultan (concurrent call), delay, jitter, dan packet loss dengan standar sebagai berikut: • Delay - Merupakan waktu yang dibutuhkan oleh sebuah paket data terhitung dari saat pengiriman oleh transmitter sampai saat diterima oleh receiver. Standar maksimum delay yang di rekomendasikan dalam ITU-T Y.1541 yaitu 100ms. • Jitter - Merupakan perbedaan selang waktu kedatangan antar paket di terminal tujuan. Standar maksimum jitter ada dalam ITU-T Y.1541 yaitu 50 ms. • Packet loss - Merupakan banyaknya paket yang hilang selama proses transmisi ke tujuan. Berdasarkan ITU-T Y.1541 packet loss tidak boleh lebih dari 0.1 %. A.Pengukuran Tingkat Kejenuhan Server VoIP Proses pengukuran dilakukan dengan melakukan panggilan sebanyak-banyaknya. Kemudian dihitung berapa banyak panggilan yang berhasil dan berapa banyak panggilan yang gagal. Proses pengujian dilakukan secara bergantian untuk asterisk dan kamailio, baik yang dijalankan pada sistem parallel processing maupun tanpa parallel procssing.
Asterisk tanpa parallel processing hanya mampu menangani rata-rata 13 panggilan simultan dengan standar deviasi 0.42163, namun ketika parallel processing diaktifkan, panggilan simultan yang dapat dilakukan mencapai 28 panggilan, dengan standar deviasi 0.31622. Metode parallel processing dapat meningkatkan jumlah panggilan simultan karena metode parallel processing menerapkan pembagian proses dan pembagian memory (shared memory), sehingga memory dari server VoIP tersebut menjadi lebih besar. Kapasitas Maksimum Kamilio Dari hasil pengujian, baik kamailio yang dijalankan pada server parallel processing, maupun kamailio yang dijalankan pada server tanpa parallel processing sama-sama dapat melayani seluruh panggilan. Hasil pengujian dapat dilihat pada gambar 3. Hasil capture packet menunjukkan adanya perbedaan prinsip kerja antara kamailio dan asterisk. Pada kamailio, server VoIP hanya berfungsi sebagai registar saja. Client awalnya melakukan registrasi server kamailio, namun ketika ada client melakukan panggilan, kamailio hanya menunjukkan IP address client penerima kepada client pemanggil. Selanjutnya pemanggil langsung berhubungan dengan penerima secara langsung, tidak seperti asterisk yang menjadi jembatan terus menerus selama panggilan berlangsung. Dengan demikian server tidak akan mengalami kelebihan beban walaupun ada banyak panggilan simultan. •
Kapasitas Maksimum Asterisk Dari hasil pengujian yang dilakukan, dapat diketahui bahwa asterisk pada server dengan parallel processing dapat melayani panggilan secara simultan lebih banyak dibandingkan pada server non parallel processing. Hasil pengujian dapat dilihat pada gambar 2.
Gambar 3. Perbandingan Kapasitas maksimum Server VoIP Kamilio
Gambar 2. Perbandingan Kapasitas maksimum Server VoIP Asterisk
Gambar 4. Perbandingan Delay Antara Asterisk dan Kamailio
•
Proceeding Seminar Tugas Akhir Jurusan Teknik Elektro FTI-ITS
4/6
C. Pengukuran Jitter Sama seperti pengukuran delay, pengukuran jitter dilakukan secara bergantian untuk asterisk dan kamailio, baik yang dijalankan pada sistem parallel processing maupun tanpa parallel processing. Hasil pengukuran jitter dapat dilihat pada gambar 5. Rata-rata jitter yang terjadi pada server asterisk tanpa parallel processing adalah 3,85087 ms, sedangkan pada server dengan parallel processing adalah 5,51298ms. Pada server dengan parallel processing, jitter yang terjadi lebih besar. Pengguna yang melakukan panggilan lebih banyak sehingga trafik data menjadi padat yang menyebabkan besarnya delay berubah-ubah. Variasi nilai delay tersebut menyebabkan jitter menjadi tinggi. Besarnya rata-rata jitter pada server VoIP kamailio tanpa parallel processing adalah 3,859725ms, sedangkan server VoIP kamailio dengan parallel processing adalah 3,902886ms.
Gambar 5. Perbandingan Jitter antara Asterisk dan Kamailio
Perbandingan Packet Loss Antara Asterisk dan Kamailio 0,2 0,178571429 Packet Loss (%)
B. Pengukuran Delay Hasil pengukuran delay dapat dilihat pada gambar 4. Rata-rata delay yang terjadi pada server asterisk tanpa parallel processing adalah 20.19429 ms, sedangkan pada server dengan parallel processing adalah 20, 80543 ms. Pada Kamilio, besarnya rata-rata delay pada server VoIP tanpa parallel processing adalah 20.20801 ms, sedangkan server VoIP kamailio dengan parallel processing adalah 20.21244ms. Bila dibandingkan nampak bahwa delay ratarata kamailio lebih kecil dibandingkan dengan asterisk yang menggunakan parallel processing, padahal jumlah panggilan simultan yang terjadi pada kamailio lebih banyak. Hal ini terjadi karena komunikasi antar client pada kamilio terjadi secara langsung, tidak melalui server, sehingga masingmasing panggilan memiliki jalurnya sendiri-sendiri. Berbeda halnya dengan asterisk. Pada asterisk semua panggilan melalui server, sehingga trafik data di jaringan masuk dan keluar server sangat tinggi, sehingga delay yang terjadi lebih tinggi. Namun demikian keduanya masih memenuhi standar ITU, yaitu dibawah 100ms.
0,15 0,08975 0,1
0,08375
Asterisk Kamailio
0,05 0 0 Non Parallel Processing Parallel processing Jenis Server
Gambar 6. Perbandingan Packet Loss antara Asterisk dan Kamailio Perbandingan nilai jitter antara asterisk dan kamailio menunjukkan bahwa asterisk dengan parallel processing memiliki jitter paling tinggi, karena padatnya trafik pada server asterisk. Metode parallel processing tidak mampu mengatasi masalah ini karena masalah ini terjadi karena padatnya trafik data pada jaringan.
D. Pengukuran Packet Loss Hasil yang di dapat dari pengukuran yang dilakukan yaitu :Packet loss pada server asterisk tanpa parallel processing adalah 0%, sedangkan pada server asterisk dengan parallel processing 0,1785%. Hal tersebut terjadi karena trafik jaringan pada server asterisk dengan parallel processing lebih tinggi, yang menyebabkan terjadinya packet loss. Pada kamailio packet loss server tanpa parallel processing sedikit lebih besar dibandingkan dengan server dengan parallel processing yaitu 0,08975%, sedangkan pada server dengan parallel processing, packet loss yang terjadi 0,08375% Namun demikian keduanya masih memenuhi standar ITUT Y-1541. Hasil pengukuran secara lengkap ditunjukkan pada gambar 6. 5. KESIMPULAN Berdasarkan hasil pengujian dan analisis yang telah dilakukan terhadap penggunaan metode parallel processing untuk server VoIP asterisk dan kamailio, maka dapat ditarik kesimpulan sebagai berikut: 1. Penggunaan parallel processing lebih tepat untuk digunakan pada server VoIP asterisk karena terbukti dapat meningkatkan jumlah panggilan simultan yang dapat dilayani. Sementara pada kamailio penggunaan parallel processing tidak memberikan pengaruh yang signifikan. 2. Server VoIP Kamailio yang tidak menggunakan parallel processing dapat melayani panggilan simultan lebih banyak dibandingkan asterisk
Proceeding Seminar Tugas Akhir Jurusan Teknik Elektro FTI-ITS
5/6
yang menggunakan metode parallel processing, karena aliran data RTP terhubung secara langsung dari client ke client tanpa melalui server VoIP, sehingga server VoIP tidak terbebani. 3. Delay yang terjadi pada server asterisk yang menggunakan metode parallel processing lebih besar dibandingkan delay pada server asterisk yang tidak menggunakan parallel processing. Hal tersebut disebabkan padatnya trafik data yang terjadi pada server asterisk yang menggunakan metode parallel processing. 4. Metode parallel processing dapat meningkatkan jumlah panggilan simultan pada server asterisk, namun tidak dapat menjamin QOS performance yang tinggi, karena besarnya delay, jitter serta packet loss yang terjadi masih lebih besar dibanding kamailio. 5. Kamailio secara umum memiliki performansi yang bagus untuk menangani banyak panggilan simultan, namun dari segi fasilitas yang dimiliki masih kalah dibanding asterisk, misalnya feature Interactive Voice Response serta kemampuan menangani protokol IAX dan H.323 yang tidak dimiliki kamailio.
RIWAYAT HIDUP PENULIS Bayu Wicaksono, lahir di Malang tanggal 17 November 1988. Merupakan anak kedua dari pasangan Winarto B.W dan A.S. Murdiyati. Setelah menamatkan pendidikan di SMAK St. Albertus Malang pada tahun 2006 kemudian mengikuti Seleksi Penerimaan Mahasiswa Baru (SPMB) dan diterima di Jurusan Teknik Elektro FTI-ITS. Saat ini penulis sedang mengambil bidang studi Telekomunikasi Multimedia dan aktif sebagai anggota tim riset NGN (Next Generation Network) pada bidang VoIP (Voice Over Internet Protocol) di Laboratorium Jaringan Jurusan Teknik Elektro FTIITS.
DAFTAR PUSTAKA [1] Iskandarsyah, M, ”Dasar-dasar Jaringan VoIP”, Kuliah Berseri IlmuKomputer.com,2003 [2] Basuki, Mudji, ”Pengantar Jaringan VoIP”, Institut Teknologi Telkom, Bandung, 2007 [3] Josef. “Perangcangan Sistem High-Throughput Computing Melalui Penggunaan Job Scheduler Condor dalam Infrastruktur Komputasi Grid. Technical report”, Fakultas Ilmu Komputer Universitas Indonesia, Juli 2006. [4] Jefri Abdullah. Analisis dan Uji Coba Alokasi Sumber Daya pada Komputasi Grid Berbasiskan Globus Toolkit dan Grid Engine. Technical report, Fakultas Ilmu Komputer Universitas Indonesia, Juli 2006. [5] Hidayat, Syarif, "Pemrosesan Paralel Menggunakan Komputer Heterogen", Proceeding Seminar Nasional Aplikasi Teknologi Informasi 2006 (SNATI 2006), Yogyakarta, 2006
Proceeding Seminar Tugas Akhir Jurusan Teknik Elektro FTI-ITS
6/6