BAB 2 TINJAUAN PUSTAKA
2.1. Content Delivery Network (CDN) CDN adalah sebuah sistem jaringan server untuk mendistribusikan konten yang ada dalam sebuah aplikasi/web ke berbagai pengakses/pengguna di berbagai belahan dunia agar data/konten yang dikirim dan diterima lebih cepat. CDN diperuntukkan untuk website atau aplikasi yang pengaksesnya dari berbagai belahan dunia. [1] Server jaringan CDN terdistribusi secara global dengan tujuan untuk melayani konten ke pengguna dengan ketersediaan yang besar dan performa tinggi. CDN melayani sebagian besar konten di internet saat ini, termasuk objek web (teks, grafis dan script), obyek download (file media, software), aplikasi (ecommerce, portal), media live streaming, on-demand streaming media, dan jaringan sosial. [2] Konsep CDN adalah dengan meletakkan beberapa server pada belahan dunia, sehingga server utama (asli) tidak akan langsung melayani permintaan web request secara langsung melainkan melalui server-server pada jaringan CDN. Keuntungannya, server asli tidak akan mengalami drop akibat banyaknya permintaan dari pengguna internet, dan efisiensi terhadap delay dan packet loss juga akan semakin baik [1]. Konsep dasarCDNdapat dilihat pada Gambar 2.1 [2].
Universitas Sumatera Utara
Original Server in North America
CDN distribution node
CDN Server in South America
CDN Server in Asia
CDN Server in Europe
Gambar 2.1 Konsep Dasar Content Delivery Network (CDN) [2]
2.2. Teknik-Teknik Pembagian Tugas CDN Ada beberapa teknik pembagian tugas CDN, seperti GEO DNS, web mapper , packet redirection, load balancer dan lain-lain.
2.2.1. GEO DNS GEO DNS adalah salah satu penghantar kinerja CDN, sistem kerja dari GEO DNS dengan memetakan pengguna internet menurut wilayahnya. Kemudian akan dibangun CDN pada setiap wilayah yang telah dipetakan. Dengan pemetaan wilayah maka setiap client yang melakukan request akan dilayani oleh server terdekat dengan client tersebut. [3]
Universitas Sumatera Utara
2.2.2. Web Mapper Sistem kerja dari Web Mapper pada CDN adalah dengan melakukan record atau rekam jejak client. Ketika clientmelakukan request website, maka DNS server akan melihat history dari client tersebut pada setiap server. Kemudian DNS server akan menghubungkan client dengan server terbaik untuk client yang melakukan request web menurut history.[4]
2.2.3. Packet Redirection Prinsip kerja packet redirection adalah ketika client 1yang melakukan request website telah terhubung dengan server 1 dan melakukan upload atau download fileakan terjadi delay. Ketika proses request website, jikadelay dianggap terlalu tinggi, maka server dapat meminta server lain melanjutkan transaksi packet yang sedang di download, sehingga kinerja pengiriman paket dapat lebih baik. Masing-masing server akan melakukan pertukaran informasi terkait kinerja server, baik secara langsung maupun melalui pihak ketiga serper DNS server. [4]
2.3. Load Balancer Load balancer merupakan sebuah perangkat untuk mendistribusikan beban pekerjaan secara merata melalui beberapa node.Peran yang paling penting dari Load Balancer yaitu untuk menyediakan sebuah layanan dari beberapa kumpulan server yang berada sebagai back-end dari layanan servernya.Untuk layanan internet, Load Balancer biasanya merupakan sebuah program perangkat lunak yang terhubung pada port dimana client eksternal tersambung untuk mengakses layanan.Load Balancer meneruskan request dari salah satu server dari backend
Universitas Sumatera Utara
server, yang biasanya di-replay kembali ke load balancer.Hal ini memungkinkan Load Balancer untuk me-replay request dari client tanpa client tersebut mengetahui tentang pemisahan fungsi internal dari layanan server yang ada.Hal ini juga dapat mencegah client berhubungan langsung dengan server backend, yang mungkin memiliki manfaat keamanan dengan menyembunyikan struktur jaringan internal dan mencegah serangan pada jaringan.[5] Ada beberapa algoritma yang digunakan pada Load Balancer , antara lain: [6] 1. Round Robin (rr), yaitu algoritma penjadwalan yang memperlakukan semua real server sama menurut jumlah koneksi atau waktu respon. 2. Weighted Round Robin (wrr), penjadwalan ini memperlakukan real server dengan kapasitas proses yang berbeda. Masing-masing real server dapat diberi bobot bilangan integer yang menunjukkan kapasitas proses, dimana bobot awal adalah 1. 3. Least Connection (lc), merupakan algoritma penjadwalan yang mengarahkan koneksi jaringan pada server aktif dengan jumlah koneksi yang paling sedikit. Penjadwalan ini termasuk salah satu algoritma penjadwalan dinamik, karena memerlukan perhitungan koneksi aktif untuk masing masing real server secara dinamik. Metode penjadwalan ini baik digunakan untuk melancarkan pendistribusian ketika request yang datang banyak. 4. Weighted Least Connection (wlc), merupakan sekumpulan penjadwalan least connection dimana dapat ditentukan bobot kinerja pada masing-masing real server. Server dengan nilai bobot yang lebih tinggi akan menerima persentase yang lebih besar dari koneksi-koneksi aktif pada satu waktu. Bobot pada
Universitas Sumatera Utara
masing-masing real server dapat ditentukan dan koneksi jaringan dijadwalkan pada masing-masing real server dengan persentase jumlah koneksi aktif untuk masing-masing server sesuai dengan perbandingan bobotnya (bobot awal adalah 1). 5. Locality Based Least Connection (lblc), metode penjadwalan yang akan mendistribusikan lebih banyak request kepada realserver yang memiliki koneksi kurang aktif. Algoritma ini akan meneruskan semua request kepada real server yang memiliki koneksi kurang aktif tersebut sampai kapasitasnya terpenuhi. 6. Destination Hashing (dh), merupakan algortima penjadwalan statik yang dapat meneruskan request dari client kepada satu realserver tertentu sesuai dengan layanan yang diminta. Terdapat suatu tabel hash berisi alamat tujuan dari masing-masing realserver beserta layanan yang tersedia pada setiap real server.
7.
Source
Hashing
(sh),
hampir
sama
dengan
metode
destinationhashing tetapi pada metode ini tabel berisi mengenai informasi alamat asal paket yang dikirimkan oleh client.
2.3.1
Algoritma Least Connection Algoritma penjadwalan Least Connection mengarahkan permintaan yang
diterima darijaringan ke node dengan jumlah koneksi paling sedikit. Ini adalah salah satupenjadwalan algoritma dinamis; karena itu perlu menghitung pergerakan koneksi untuksetiap node secara dinamis pada sebuah node yangterdapat pada kumpulanbeberapa node dengan kinerja yang sama Penjadwalan least connection baik untuk kelancarandistribusi ketika bebanpermintaan bervariasi banyak,
Universitas Sumatera Utara
karenasemua permintaan yang lama tidak akan
diarahkan kesatu node
saja.Penjadwalan least connection dapatjuga melakukan dengan baik bahkan ketika ada node dari berbagaikapasitas pengolahan, karena node lebih cepat akan mendapatkanlebih banyak koneksi.Faktanya, penjadwalan least connection tidak bekerja sangat baik karena TIME_WAIT TCP. TCPTIME_WAIT biasanya 2 menit, dalam rentan 2menit sebuah situs web yang sibuk sering mendapatkan ribuankoneksi, misalnya, node A adalah dua kalikuat sebagai nodeB, node A memiliki
pengolahanribuan
permintaan
dan
membuat
mereka
dalam
TCPTIME_WAIT, tapi node B pelan-pelan untuk mendapatkan ribuan koneksi selesai. Sehinggapenjadwalan least connection tidak bisa memuat baikseimbang antara node dengan berbagai pengolahankapasitas.[6]
2.3.2
Algoritma Round Robin Algoritma penjadwalan round-robin meneruskan setiap permintaan yang
masuk ke server berikutnya dalam daftar. Misalnya dalam tiga cluster server (server A, B dan C) permintaan 1 akan pergi ke server A, permintaan 2 akan pergi ke server B, meminta 3 akan pergi ke server C, dan permintaan 4 akan pergi ke server A, sehingga menyelesaikan siklus atau round-robin server. Memperlakukan semua server sama terlepas dari jumlah koneksi masuk atau waktu respon setiap server. Virtual server menyediakan beberapa keunggulan dibandingkan DNS round-robin. DNSround-robinmenentukan satu domain ke alamat IP yang berbeda, penjadwalan granularity adalah berdasarkan host, dan caching query DNS
menghalangi
algoritma
dasar.
Faktor-faktor
ini
menyebabkan
ketidakseimbangan beban dinamis yang signifikan antara server utama.
Universitas Sumatera Utara
Penjadwalan granularity dari server virtual adalah jaringan koneksi berbasis, dan itu jauh lebih unggul DNS roundrobin karena perincian penjadwalan baik. Roundrobin Penjadwalan, dalam arti kata, mengarahkan permintaan yang diterima dari jaringan ke node yang berbeda dalam cara round-robin. Memperlakukan semua node sebagai sama terlepas dari jumlah koneksi. Penjadwalan granularity adalah simpul berbasis, ini akan menyebabkan ketidakseimbangan beban dinamis yang signifikan antara node.[7]
2.3.3
Algoritma Weighted Round Robin Penjadwalan
weightedround-robinmemperlakukan
node
yang
berbedakapasitaspengolahan. Setiap node dapat diberiberat, nilai integer yang menunjukkan pengolahankapasitas. Berat default adalah 1. Sebagai contoh, tiganode, A, B dan C, memiliki bobot,4, 3, 2 masing-masing,urutan penjadwalan yang baik akan A, B, C, A, B, C, A, B, A dalamperiodepenjadwalan. Dalam pelaksanaannyapenjadwalan
weightedround-robinad
akan
mengurutkan
permintaan yang dihasilkan sesuai dengan bobot simpulsetelahaturan simpul yang dimodifikasi. Karena itu,penjadwalan permintaan tersebut tidak lagiseperti algoritma penjadwalan round-robin.Penjadwalan weightedround-robin tidak perlumenghitung
koneksi
permintaan
untuk
setiap
node,
danoverhead
penjadwalan lebih kecildari dinamis algoritma penjadwalanlainnya yang dapat memiliki lebih node. Namun,mungkinmenyebabkan ketidakseimbangan beban dinamis antara nodejika beban permintaansangat bervariasi. Singkatnya, adakemungkinan bahwa sebagian besar permintaanpanjang dapat diarahkan ke satunode.Penjadwalan round-robin adalah contoh khusustertimbang penjadwalan
Universitas Sumatera Utara
round-robin, di mana semuabobot yang sama. Overheadmenghasilkanurutan penjadwalan setelah memodifikasi aturan nodesepele, dan tidak menambah biaya overhead
apapun
dalam
penjadwalan
nyata.Jadi,
ada
tidak
perlu
untukmengimplementasikan penjadwalan round-robinsendiri.[6]
2.4. Network Simulator NS-2 NS-2merupakan sebuahprogramsimulasi berbasis event (kejadian)yang banyak digunakanuntuk mempelajarisifat dinamis darijaringan dan protokol komunikasi.
NS-2
mampu
nirkabelserta
protokolnya
mensimulasikan
jaringankabeldanjaringan
mencakupalgoritmarouting,protokol
komunikasi,
algoritma akses dan lain-lain [8]. Gambar 2.2 menunjukan arsitektur dasar NS-2.NS-2 menggunakan dua jenis bahasa pemrograman, C++ dan TCL. Bahasa C++ digunakan sebagai inti proses simulasi, sementara bahasa TCL untuk konfigurasi jaringan.
Gambar 2.2 Arsitektur Dasar NS-2 [8]
Universitas Sumatera Utara
TclCL dan OTcl adalah komponen TCL yang berfungsi untuk menjembatani konfigurasi dengan proses simulasi. NS-2 dieksekusi melalui perintah eksekusi command line. Hasil simulasi berupa catatan atau trace yang dapat dipergunakan oleh Network Animator (NAM) (Gambar 2.3) maupun plot grafik Xgraph [8].
2.5. Evalvid NS-2 menyediakan presentasi data menggunakan Xgraph. Namun Xgraph kehilangan detail dari kejadian pengiriman data dan hanya menampilkan data ratarata untuk parameter yang ditinjau. Oleh karenanya, untuk membantu mempresentasikan parameter yang dievaluasi, digunakanlah evalvid. EvalVid adalah framework dan tool set untuk evaluasi kualitas video yang dikirimkan melalui jaringan komunikasi nyata ataupun simulasi [9].Struktur dari framework EvalVid ditunjukan Gambar 2.4 [10].
Video Trace
Coded Video
User Video Decoder
Sender Trace
ET
Receive Trace
Reconstructed erroneous video
Result: -Frame Loss/ Frame Jitter -user perceived quality
FV raw YUV video
loss/delay
EvalvidAPI
VS
Network (or simulation)
tcpdump
Video Video Decoder Decoder
EvalvidAPI
Source
tcpdump
Play-Out Buffer
Reconstructed raw YUV video
PSNR
erroneous video
raw YUV video
MOS
Gambar 2.3Struktur framework EvalVid [8]
Universitas Sumatera Utara
Komponen utama dari struktur EvalVid dijelaskan sebagai berikut : 1.
Source: Sumber video dapat berupa raw file YUV dengan resolusi Quarter Common Intermediate Format (QCIF, 176 x 144) atau di Common Intermediate Format(CIF, 352 x 288) .
2.
Video Encoder dan Decoder:EvalVid mendukung dua codec MPEG4 , yaitu codec NCTU dan ffmpeg.
3.
VS (Video Sender): komponen VS membaca file video yang dikompres dari output encoder, menfragmentasi setiap frame video yang berukuran besar
menjadi segmen yang berukuran kecil dan kemudian mengirimkan segmen ini melalui paket UDP pada jaringan nyata atau simulasi. Untuk setiap pengiriman paket UDP,framework mencatat tanda waktu, id paket, dan ukuran paket di sender trace file dengan bantuan tcp dump atau win dump, jika jaringan adalah Link nyata. Namun, jika jaringan disimulasikan,sender trace
file disediakan
oleh
entitas
pengirim.
komponen
VS
juga
membangkitkanvideo trace file yang berisi informasi tentang setiap framepadafile video real. Video trace file dan sender trace file yang kemudian digunakan untuk evaluasi kualitas video berikutnya . 4.
ET (Evaluate Trace): Evaluasi berlangsung di sisi pengirim. Oleh karena itu, informasi tanda waktu, id paket, dan ukuran paket yang diterima pada penerima harus dikirim kembali ke pengirim. Berdasarkan file video asli yang dikodekan, file video trace, file sender trace, dan file received trace,komponen ET menghasilkan laporan packet loss, jitter serta file video rekontruksi untuk melihat hasil video pada sisi penerima mengalami kerusakan atau tidak.
Universitas Sumatera Utara
5.
FV (Fix Video): penilaian kualitas video digital dilakukan dari frame demi frame. Oleh karena itu, jumlah total frame video di sisi penerima, termasuk yang salah, harus sama seperti video asli di sisi pengirim. Jika codec tidak dapat mencegahhilangnya suatu frame maka, FV digunakan untuk mengatasi masalah tersebut, dengan memasukkan frame
terakhir yang
berhasil dikodekan pada bagianframe yang hilang sebagai sebuah teknik penyembunyian error. 6.
PSNR (Peak Signal Noise Ratio): PSNR adalah salah satu objek untuk menilai QoSaplikasi pada transmisi video.
7.
MOS (Mean Opinion Score):suatu subjektif untuk mengukur kualitas video digital pada aplikasi.
Universitas Sumatera Utara