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 (e-commerce, 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.
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]
Original Server in North America
CDN distribution node
CDN Server in
South America CDN Server in Europe
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 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
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
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
Penjadwalan granularity dari server virtual adalah jaringan koneksi berbasis, dan
itu jauh lebih unggul DNS roundrobin karena perincian penjadwalan baik.
Round-robin 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
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 mensimulasikan jaringankabeldanjaringan nirkabelserta protokolnya 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.
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 rata-rata 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
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
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.