BAB II
DASAR TEORI
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.
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.
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]. Pada Gambar 2.1 menunjukkan konsep dasar dari
Gambar 2.1Konsep Dasar Content Delivery Network[1]
2.2 Teknik-Teknik Pembagian Tugas CDN 2.2.1 GEO DNS
GEO DNS adalah serverDNSyangdapat mendistribusikanbeban untukhostnamekemirrors (cermin) serverterdekat, salah satunya sebagai penghantar kinerja dari 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 [2].
Original Server in
North America
CDN distribution node
CDN Server in South Amerika
CDN Server in Euorpe
2.2.2 Teknologi Akamai
Teknologi Akamai adalah global serviceprovider yang menyediakan
layanan akselerasi "global internet content” untuk membantu mempercepat
performa situs dengan cara melakukan copy cache dari website di banyak server
yang tersebar di berbagai lokasi. Saat ini Akamai Technologies Inc. mempunyai
lebih dari 15.000 server yang tersebar di 70 negara.
Ada beberapa komponen infrastruktur CDN Akamai, tiga komponen
utamanya yaitu: edge server, contentdelivery dan mappingcenter.
Gambar 2. 2 SistemCDNAkamai [2]
Gambar 2.2 mengilustrasikan bagaimana Akamai dalam melakukan
pengiriman content ke pengguna. Akamai secara transparan melakukan mirror
content/cerminan konten (audio, graphics, video, animation) yang tersimpan pada
server klien Akamai ke beberapa edgecache server yang tersebar di beberapa
animasi, video yang terdapat pada halam
edgecache server yang lokasinya dekat dengan pengguna. Namun ada juga
website yang keseluruhan kontentnya diletakkan pada edgecache server akamai
yang tersebar di beberapa negara [2].
2.2.3 Web Mapper
WebMapper merupakan suatu teknik pemetaan yang prosesnya menggunakan informasi pemetaan yang diperoleh dari
menyimpan, memanipulasi, menganalisis, mengelola dan menyajikan semua jenis data spasial atau geografis.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 [3].
2.2.4 Packet Redirection
dapat lebih baik. Masing-masing server akan melakukan pertukaran informasi terkait kinerja server, baik secara langsung maupun melalui pihak ketiga serper DNS server [3].
2.2.5 Load Balancer
Load balancer merupakan sebuah perangkat untuk mendistribusikan beban
pekerjaan secara merata melalui beberapa node yang bekerja pada back-end 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 klien eksternal tersambung untuk mengakses layanan. Load Balancer meneruskan request dari salah satu server dari backend server, yang biasanya di-replay kembali ke load balancer. Hal ini memungkinkan Load Balancer untuk me-replayrequest dari
2.3 Rateless code
Ratelesscode dikenal juga fountain code. Ratelesscode merupakan suatu
proses pengkodean yang dapat memperbaiki kesalahan pada saat pentranmisian
paket data, karena pada saat proses pentransmisian dapat terjadi lost atau paket
hilang. Ratelesscode awalnya dirancang untuk Binary Erasure Channel (BEC)..
Selain untuk kepentingan teoritis, Binary ErasureChannel telah mendapatkan
perhatian yang signifikan dalam komunikasi data. Misalnya, di internet ada
beberapa data yang ditransmisikan dalam paket-paket kecil, kemudian paket
tersebut hilang, rusak, tertunda atau tidak memenuhi persyaratan layanan (QoS)
dapat dibuang (terhapus).
Tujuan dasar rateless code adalah mempertahankan kualitas trafik meskipun
kondisi server memburuk dan memperbaiki setiap paket data yang hilang saat
proses pentransmisian terjadi. Dengan rateless codes tidak perlu diketahui
seberapa besar tingkat kehilangan paket dan penerima tidak perlu memberitahu
pengirim paket mana saja yang gagal untuk diterima. Hal ini sangat berguna
dalam berbagai situasi dari pengiriman file video pada on demand tv sampai
dengan propagasi potongan-potongan file ke banyak peer seperti pada BitTorrent.
Sistem kerja dari rateless code yaitu, encode diumpakan sebagai air mancur
dan decode diumpamakan sebuah embernya yang akan menampung air mancur
tersebut. Ketika airnya diumpakan sebuah paket data, dan saat proses penerimaan
paket data dari server ke client, pentransmisian paket data tidak peduli apakah
paket data itu diterima dengan baik ataupun loss, karena hanya paket data yang
sukses diterima saja untuk diproses nantinya. Dengan kata lain, kita membuat
kembali data asli hanya dengan menerima cukup air/paket data yang dikodekan
secara acak.Ratelesscode terdapat beberapa bagian yaitu LT (LubyTranform ),
TornadoCode dan RaptorCode. Pada Gambar 2.3 menunjukan sebuah ilustrasi dari rateless code.
Gambar 2. 3 Ilustrasi ratelesscode
2.3.1 LT (Luby Transform)
LT Code pertama kali direalisasikan pada fountain code atau yang sering disebut rateless code. Encode informasi K pada LT code disimbolkan (x1, x2, …xk) menjadi beberapa simbol keluaran yang tak terbatas (z1, z2, z3,…..). Simbol informasi masukan dapat barupa simbol satu bitbinery atau berupa packet data. Algoritama endcoding dan decoding pada LT code cukup sederhana, karena algoritmanya serupa dengan proses parity-check, dimana fungsi dari parity-check
untuk mengecek urutan bit-bit data dan bit parity setelah data itu dikirim atau
ditransmisikan. Untuk proses algoritma encoding dilakukan dengan cara berikut :
1. Suatu d dipilih untuk sampling dari distribusi D yang diberikan, yang
disebut dengan “degreedistribution”. Biarkan (Ω 1, Ω2,…. Ωk) menjadi
distribusi {1, 2, …, K) kemudian dipilihnya nilai i sebagai probabilitas yang
diwakili seperti Ω i . Degree distribution D dilambang oleh polynomial
2. Simbol input d dipilih secara seragam dari simbol input K yang dipilih
secara acak. Nilai dari simbol output berupa XOR yang berasal dari simbol
input d, �=∑��=1���� dimana koefiseian �� ∈{0,1} untuk � = 1, 2, … . , K,
∑��=1�� = � dan menggunak 2 bit penjumlahan.
Berdasarkan asumsi yang dibuat, receiver (penerima) berasal dari koefisien
��. Dalam prakteknya hal ini dapat dicapai dengan berbagai cara. Sebagai contoh,
derajat (degree) dan daftar tetangga dapat dimasukan ke dalam packetheader
kemudian kedua encoder dan decoder menggunakan fungsi yang sama sebagai
kunci untuk menghitung derjat (degree) dan set tetangga (neighbor) [5]. Proses
encoding dari LT code dapat dilihat pada Gambar 2.4.
Simbol informasi 1 0 1 1 0 0 1 (Input variabel node)
Simbol encoding 1 0 0 1 Channel
(Output variabel node)
Gambar 2. 4 Proses simbol encoding [6]
Pada Gambar 2.3, nodevariableinput merupakan simbol informasi dan
nodevariabeloutput berupa simbol encoding. Nodevariableinput dan
nodevariabeloutput merupakan hasil penjumblahan XOR. Untuk mengembalikan
simbol informasi ke dalam bentuk asli diperlukan proses decoding. Algoritma
1. Cari simbol encode zn yang hanya berhubungan 1 simbol informasi xi kemudian simbol informasi decode, i.e, menentukan xi dari zn. Jika tidak seperti simbol encode maka proses decoding akan berhenti.
2. Tambahkan simbol informasi decode pada xi untuk semua simbol encode lainnya yang berhubungan dengan xi.Kemudian hapus semua bagian pinggir yang berbungan denga xi.
3. Ulangi langkah 1 dan 2 hingga semua simbol informasi yang decode kan sukses.
2.4 NetworkSimulator NS-2
Network Simulatorversi 2 atau yangdikenal sebagaiNS-2 merupakan
sebuahprogramsimulasi berbasis kejadianyang banyak digunakanuntuk
mempelajarisifat dinamis darijaringan dan protokol komunikasi. NS-2 mampu
mensimulasikan jaringankabeldanjaringan nirkabelserta protokolnya yang
meliputi:algoritmarouting,protokol komunikasi, penjadwalan, algoritma akses
dan lain-lain [7].
Pada Gambar 2.5 menunjukan arsitektur dasar NS-2. NS-2 menggunakan
dua jenis bahasa pemrograman, C++ dan TCL. C++ digunakan sebagai core
Gambar 2. 5 Arsitektur dasar NS-2
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 (Gambar 2.6) maupun plot grafik
Xgraph [7]. Untuk proses cara mensimulasikan NS-2 dapat dilihat pada Lampiran 1.
2.5 Kerangka Evaluasi video Evalvid
Simulator NS-2 menyediakan presentasi data menggunakan Xgraph. Namun
Xgraph kehilangan detail kejadian pengiriman data dan hanya menampilkan data
rata-rata untuk parameter yang ditinjau. Oleh karenanya, untuk mempresentasikan
parameter yang dievaluasi, penelitian ini menggunakan evalvid.
Video
Gambar 2. 7Struktur framework EvalVid
EvalVid adalah framework dan tool set untuk evaluasi kualitas video yang
dikirimkan melalui jaringan komunikasi nyata ataupun simulasi [8]. Struktur dari
framework EvalVid dilihat Gambar 2.7 [9].
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 ,
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.
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.
6. PSNR (Peak Signal Noise Ratio): PSNR adalah salah satu objek untuk
menilai QoS aplikasi pada transmisi video.