BAB II
TINJAUAN PUSTAKA
Pada karya ilmiah yang pertama, dipaparkan hasil analisis perihal struktur
WebRTC serta pembuatan real-time communication system berdasarkan
mekanisme signaling dengan websocket.
Pada karya ilmiah yang selanjutnya, dipaparkan peluang implementasi WebRTC
terhadap operator seluler dengan berbagai sudut pandang.
Karya ilmiah yang ketiga, dipaparkan mengenai penelitian penerapan virtual
classroom sebagai platform untuk e-learning pada universitas Rwanda.
4
5
II.2 Dasar Teori
Sub bab ini memaparkan mengenai konsep, teknologi serta teori yang digunakan
sebagai pendukung dalam pembuatan tugas akhir.
WebRTC
II.2.1
Web Real-Time Communication (WebRTC) adalah kumpulan standar, protokol,
dan JavaScript API. Kombinasi tersebut memungkinkan sebuah pertukaran data
dalam bentuk audio, video, dan bentuk lainnya melalui browser. WebRTC
mengubah real-time communication menjadi fitur standar tanpa perlu
mengandalkan plug-in maupun perangkat lunak lainnya [1].
WebRTC bersifat open framework dan diyakinkan memiliki kualitas yang tinggi
dalam melakukan komunikasi. Sehingga WebRTC memungkinkan pengembang
untuk dengan mudah mengimplementasikan aplikasi WebRTC mereka sendiri [2].
Berdasakan penuturan Grigory [3], WebRTC mengabstraksi kemampuan
konferensi jarak jauh, kemampuan pemrosesan audio dan video berkualitas tinggi,
dan kemampuan lainnya dalam tiga API utama yaitu :
1. MediaStream : mengakuisisi penyiaran suara dan video,
2. RTCPeerConnection : komunikasi data berbentuk suara dan video,
3. RTCDataChannel : komunikasi data yang berubah-ubah.
RTCPeerConnection menjadi API yang dapat diekspos secara sederhana,
meskipun terdapat banyak protokol lainnya. Secara singkat, RTCPeerConnection
mengenkapsulasi semua pengaturan koneksi manajemennya dalam satu interface.
Interface pada RTCPeerConnection dapat dilihat pada Gambar II-1.
6
II.2.1.1Arsitektur WebRTC
WebRTC dapat diaplikasikan dengan berbagai macam arsitektur topologi. Grigory
[3] dalam artikelnya membagi menjadi empat jenis yang digambarkan melalui
Gambar II-2.
7
Direct connection adalah jenis tolopologi di mana peer terhubung langsung ke
satu peer lainnya sehingga berbentuk satu-satu.
Mesh network membentuk jaringan di mana setiap peer terhubung dengan setiap
peer lainnya sehingga tiap peer membentuk N-1 koneksi dengan total koneksi
yang
terbentuk N x (N-1).
Mesh network mudah diterapkan namun dirasa kurang efisien diterapkan dalam
multiparty karena membutuhkan bandwith yang besar. Sehingga, topologi star
menjadi alternatif. Topologi ini membuat satu peer menjadi “supernode” yang
bertanggung jawab untuk melakukan distribusi penyiaran ke semua peer yang
terhubung.
Topologi ini membuat total koneksi sebanyak N-1.
WebRTC pun tidak menutup kemungkinan untuk membentuk arsitektur
tersentralisasi sehingga layanan penyiaran melalui proxy server.
Menurut Romano dan Loreto [4], arsitektur tersentralisasi atau client-server, dapat
dibagi kembali menjadi dua bentuk yaitu trapezoid dan triangle. Penggambaran
kedua arsitektur tersebut dapat dilihat pada gambar II-3 serta II-4.
8
Dalam model trapezoid kedua browser menjalankan aplikasi web yang diunduh
dari dua server yang berbeda. Proses signaling yang bertujuan memulai dan
mengakhiri proses komunikasi dilakukan melalui protokol HTTP atau protokol
WebSocket melalui web server diubah atau disesuaikan sesuai kebutuhan.
Umumnya, aplikasi yang menggunakan WebRTC menjalankan aplikasi web yang
sama dan diunduh dari halaman web yang yang sama. Dalam tugas akhir ini tipe
yang dipakai merupakan tipe triangle.
9
II.2.1.2 Browser
Berdasarkan situs website webRTC, webRTC mendukung penggunaan pada lima
browser dan platform, yaitu “Chrome”, “Firefox”, “Opera”, “Android” dan “iOS”.
Gambar
II-5 menunjukan browser yang didukung pada laman tersebut.
Gambar II-5 Supported Browsers & Platforms
II.2.2WebSocket
WebSocket adalah sebuah teknologi yang memungkinkan membuat komunikasi
dua arah antara browser dan server [5]. WebSocket memungkinkan streaming
data dalam bentuk teks maupun biner. Sisi manapun (klien dan server) dapat
mengirim data ke sisi lainnya kapan saja [1].
Untuk mendukung teknologi web socket, dibutuhkan teknik pengkodean yang
disebut dengan socket programming. Socket programming mendukung
komunikasi melalui protokol TCP dan UDP.
TCP menyediakan connection oriented service, di mana koneksi harus terbentuk
sebelum proses pertukaran data. Saat klien TCP mengirim data ke server, klien
membutuhkan kembalian acknowledgement. Jika acknowledgement tidak diterima
kembali, TCP akan otomatis mengirim ulang data dan menunggu lebih lama
dalam periode waktu tertentu.
UDP adalah protokol datagram yang bersifat conectionless. Klien tidak membuat
koneksi dengan server seperti TCP. Sebagai gantinya, klien hanya mengirim
datagram ke server menggunakan fungsi yang tersedia yang mempunyai alamat
serta tujuan sebagai parameter.
10
Pada WebRTC, UDP digunakan sebagai default protokol. Menurut Tutorials Point
Team [6] alasan UDP digunakan karena WebRTC mengirim paket data secepat
mungkin.
Proxy
II.2.3
Server proxy adalah sebuah server yang bertindak sebagai perantara antara klien
dan server lain, seperti server web di Internet [7]. Sedangkan Gumaste el at [8]
menyatakan bahwa server proxy adalah sebuah server berbentuk sistem operasi
atau aplikasi yang bertindak sebagai perantara untuk permintaan dari klien yang
mencari sumber dari server lain.
Gumaste el at [8] menyatakan beberapa tujuan penggunaan proxy ialah:
1. Menjaga keamanan,
2. Mempercepat akses ke tujuan menggunakan teknik caching. Web proxy
biasanya digunakan untuk caching pada halaman web server,
3. Mencegah pengunduhan berkas berulang kali, sehingga menghemat bandwidth,
4. Mencatat/mengaudit penggunaan Internet, sebagai contoh penggunaan koneksi
Internet pada sebuah perusahaan,
5. Memindai konten yang dicurigai ditransmisikan sebagai malware,
6. Pencegahan data loss,
7. Peningkatan/pembatasan akses, sebagai contoh memblokir situs yang tidak
diinginkan.
II.2.4 NAT
Network Address Translation (NAT) digunakan untuk memberi sebuah perangkat
alamat IP publik. Router akan memiliki alamat IP publik dan setiap perangkat
yang terhubung ke router akan memiliki alamat IP pribadi [9].
NAT diperkenalkan pada tahun 1994 untuk menyelesaikan masalah keterbatasan
alamat IP di mana pada IPv4 hanya mungkin membuat 4,92 miliar alamat IP unik.
NAT akan bertanggung jawab untuk menjaga tabel pemetaan IP lokal dan port
tuple ke satu atau lebih tuple IP publik dan port (publik) yang unik secara global.
Ilustrasi pemetaan IP local menjadi IP publik dapat dilihat pada gambar II-6.
11
Gambar II-6 IP Network Address Translator [3]
II.2.5WebRTC Protokol
Dalam memenuhi kebutuhan real time communication, WebRTC membutuhkan
dukungan beberapa protokol.
12
1. Pencarian IP dan port tuple,
2. Jika tidak ditemukan/terhalang firewall, ICE agent akan mencari alamat IP
publik peer melalui STUN server,
3. Jika
tidak bisa melalui STUN server, ICE agent akan mencari alamat IP publik
peer
melalui TURN server sebagai pilihan terakhir.
Saat tidak ditemukan, maka koneksi akan dinyatakan gagal.
II.2.5.2 STUN
Session Traversal Utilities for NAT (STUN) adalah sebuah protokol untuk
menemukan alamat IP publik suatu peer dan menentukan batasan yang ada pada
router yang mencegah koneksi langsung. Klien akan mengirim permintaan ke
server STUN di Internet, server STUN akan membalas dengan alamat publik klien,
serta kemungkinan dapat diakses atau tidak [9].
STUN Server dijalankan di jaringan internet dan memiliki satu tugas sederhana
yaitu mengecek IP: port address dari request yang masuk (dari aplikasi di
belakang NAT). Proses ini memungkinkan WebRTC peer untuk mendapatkan
alamat akses host publik lalu mengirimkannya ke target atau peer lainnya dengan
mekanisme signaling [9]. Ilustrasi mencari IP publik melalui STUN server dapat
dilihat pada gambar II-7.
13
II.2.5.3 TURN
Traversal Using Relays around NAT (TURN) dimaksudkan untuk melewati
pembatasan NAT simetris dengan membuka koneksi dengan TURN server dan
menyampaikan
semua informasi melalui server itu [9].
RTCPeerConnection
mencoba membuat koneksi langsung antar peer melalui
UDP. Jika gagal maka RTCPeerConnection mengalihkan ke TCP. Jika cara
tersebut masih gagal, TURN server dapat digunakan sebagai alternatif.
TURN server memiliki alamat publik, sehingga dapat dihubungi oleh peer
walaupun mereka berada di belakang firewall atau proxy. TURN server memiliki
sebuah
tugas sederhana yaitu untuk menyampaikan stream [9]. Proses mencari IP
publik melalui TURN server dapat dilihat pada gambar II-8.
14
SDP akan dikirimkan dengan pemanggilan method dari objek
RTCPeerConnection dan dikirim melalui signaling channel. String dapat dikirim
langsung atau dapat dengan format lain yang diatur pada aplikasi.
Signaling
II.2.6
Signaling merupakan sebuah mekanisme yang dilakukan untuk mengatur,
mengendalikan, dan mengakhiri sesi komunikasi [11].
Sedangkan menurut Khan [12], signaling merupakan proses yang digunakan
WebRTC untuk mendeteksi peer, bertukar deskripsi sesi untuk mengatur port
media,serta semua data saat initial handshake.
Signaling digunakan untuk bertukar SDP, konfigurasi jaringan dengan
menggunakan ICE dan kapabilitas menggunakan pesan session control yang sama.
Signaling dilakukan melalui media yang disebut “Signaling Channel”. Menurut
Grigorik [3], signaling channel mempunyai tiga pilihan bentuk infrastruktur yang
digambarkan pada Gambar II-9.
15
II.2.7 WebRTC Experiment
WebRTC Experiment merupakan sebuah template kode program yang dibentuk
menjadi sebuah library untuk webRTC yang dikembangkan oleh Muaz Khan
sejak
2012. Menurut pemaparan Khan [11], dua eksperimennya yang paling
terkenal
adalah RecordRTC serta RTCMultiConnection.
II.2.8 Tablet Grafis
Tablet grafis merupakan sebuah perangkat input grafis yang memungkinkan
pengguna menggunakan membuat masukan seperti menggambar menggunakan
atau pena biasa. Tablet grafis terdiri dari sebuah perangkat berupa papan
pensil
datar yang disebut puck yang dapat “digambar” menggunakan stylus pen.
Jacob [12] menyampaikan bahwa perangkat ini mirip dengan tetikus (mouse),
namun terdiri dari puck yang mempunyai sebuah sensor yang dapat mendeteksi
dan mengukur posisi dari stylus pen. Keuntungan perangkat ini dibandingkan
tetikus adalah penggunaan interaksi yang lebih mudah seperti melingkari seolah
menggunakan pena asli.