Implementasi Rateless Code Pada Content Delivery Network

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 (ecommerce, 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
Content Delivery Network.

Universitas Sumatera Utara

Original Server in
North America

CDN distribution
node

CDN Server in
Asia

CDN Server in
South Amerika
CDN Server in
Euorpe


Gambar 2.1Konsep Dasar Content Delivery Network[1]

2.2

Teknik-Teknik Pembagian Tugas CDN

2.2.1 GEO DNS
GEO

DNS

adalah

untukhostnamekemirrors

serverDNSyangdapat

(cermin)

serverterdekat,


mendistribusikanbeban
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].

Universitas Sumatera Utara

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
negara. Ketika ada request user ke website www.acme.com, maka file-file image,

Universitas Sumatera Utara

animasi, video yang terdapat pada halaman www.acme.com akan diambil dari
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
menggunakan

merupakan
informasi

suatu

teknik

pemetaan

geographicalinformationsystems (GIS) yang

pemetaan

yang

yang


prosesnya

diperoleh

dari

dirancang untuk menangkap,

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
Packet Redirection adalah suatu teknik pengalihan packet data dari server
ke server lain yang menangani requestwebsite untuk memberikan layanan yang
lebih cepat. Prinsip kerja packetredirection adalah ketika client 1yang melakukan

request website telah terhubung dengan server 1 dan melakukan upload atau
download file akan 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

Universitas Sumatera Utara

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
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[4].

Universitas Sumatera Utara

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
sebuah air mancur dari data yang dikodekan dimana penerima dapat menyusun

Universitas Sumatera Utara


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

Ω(�) = ∑��=1 Ω(�)� � .
Universitas Sumatera Utara

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
(Input variabel node)

1

0

1

1

0

Simbol encoding
1
0
0
1
(Output variabel node)
Gambar 2. 4 Proses simbol encoding [6]

0

1

Channel

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
decoding dilakukan dengan cara berikut :

Universitas Sumatera Utara

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
proses simulasi, sementara TCL untuk konfigurasi jaringan.

Universitas Sumatera Utara

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.

Gambar 2. 6 Tampilan NAM (Network AniMator)

Universitas Sumatera Utara

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
Trace

Network
(or simulation)
loss/delay

User
Video
Decoder

tcpdump

VS

EvalvidAPI

Video
Video
Decoder
Decoder

EvalvidAPI

Source

tcpdump

Play-Out
Buffer

Sender
Trace

ET

Receive Trace

Coded
Video
Reconstructed
erroneous video

Result:
-Frame Loss/
Frame Jitter
-user perceived
quality

FV
raw YUV
video
Reconstructed
raw YUV video

PSNR

erroneous video

raw YUV video

MOS

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 ,
yaitu codec NCTU dan ffmpeg.

Universitas Sumatera Utara

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.

7.

Mean Opinion Score : suatu subjektif untuk mengukur kualitas video digital.

Universitas Sumatera Utara