Analisis Header Connection dari Protocol HTTP/1.1 dan HTTP/2
Pada Video Streaming
Artikel Ilmiah
Peneliti:
Wendel Herman Selsily (672011094)
Dian Widiyanto Chandra S.Kom., M.Kom
Program Studi Teknik Informatika
Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana
1
1. Pendahuluan
Hypertext Transfer Protocol (http) merupakan salah satu protocol yang paling populer di dunia internet sekarang ini. Dengan semakin banyak aplikasi multimedia yang berjalan didalam HTTP. HTTP juga adalah sebuah protocol
jaringan lapisan aplikasi yang digunakan untuk sistem informasi terdistribusi, kolaboratif, dan menggunakan hypermedia. Penggunaanya banyak pada pengambilan sumber daya yang saling terhubung dengan tautan yang disebut dengan document hypertext, yang kemudian membentuk World Wide Web (WWW) pada tahun 1990 oleh fisikawan Inggris, hingga kini ada HTTP versi 1 memiliki dua versi minor yaitu HTTP/1.0 dan HTTP/1.1. Pada HTTP/1.0 menggunakan koneksi terpisah untuk setiap dokumen, dan HTTP/1.1 yang dapat menggunakan teknologi piplening sehingga permintaan HTTP dikirim pada koneksi TCP tunggal tanpa menunggu tanggapan yang sesuai. Dengan demikian HTTP/1.1 bisa lebih cepat karena tidak membuang waktu untuk pembuatan koneksi berulang-ulang [1]. Pada saat ini dengan berkembangnya teknologi situs-situs yang sekarang tidak hanya dapat menggunakan HTML. Tetapi sebagian besar situs juga menggunakan CSS untuk membuat desain, Java Script, Memasukkan gambar, video bahkan animasi dari Flash. Untuk mentransfer semua informasi tersebut sebuah browser harus membuat beberapa koneksi. Setiap koneksi ini akan memiliki informasi mengenai sumber, tujuan, dan konten yang hendak ditransfer. Dan hal ini sangat membebani browser dan server. Semakin banyak konten yang ada dalam sebuah halaman situs, semakin banyak pula koneksi yang harus dibuat, maka semakin lambat pula browser menampilkan sebuah halaman. HTTP/2 Muncul pada bulang Mei 2015 dengan teknologi baru yaitu Multiplexingyang menggunakan multi-threading yang berguna untuk membuat beberapa elemen atau data resource secara paralel sehingga lebih ringkas dan cepat. Munculnya HTTP/2 dengan mengatasi masalah yang sering terjadi pada HTTP/1.1 yaitu head of line blocking (pemblokiran terhadap paket) dan mendefinisikan pemetaan dioptimalkan semantic HTTP untuk koneksi Mendasar, secara khusus memungkinkan interleaving dari permintaan dan respon pesan, pada yang sama koneksi dan menggunakan coding yang efesien untuk field header HTTP [2].
Video streaming berasal dari pengertian video dan streaming. Video adalah suatu perangkat yang berfugsi sebagai penerima gambar dan suara. Streaming adalah proses penghantaran data dalam aliran berkelanjutan dan tetap yang memungkinkan pengguna mengakses dan menggunakan file sebelum data dihantar sepenuhnya. Dalam kasus, streaming bias berarti pengaliran atau mengalir. Jadi video streaming adalah salah satu cara untuk mengetahui informasi atau berita secara audio maupun visual dari seluruh dunia melalui internet[3].
2. Tinjauan Pustaka
Pada penelitian yang berjudul“The Affection of HTTP Compression in the
Performance of Core web Components”oleh International Journal of Scientific & Engineering Research, Menjelaskan bagaiamana effect dari HTTP Compression
2
ukuran sumber ditransfer antara server dan client sehingga menghemat bandwidth
[4]. Penelitian lain yang juga menjadi acuan dalam penelitian yang dilakukan adalah dengan judul. “HTTP/2 and QUIC for virtual and the 3D web” oleh School of Computer Science, University of St Andrews, menjelaskan bagaiamana perbandingan HTTP/2 dan QUIC untuk mengurangi latency dan secara rutin melintasi fierewalls. Salah satu tujuan utama konvergensi antara muvws dan web 3D [5]. Kemudian pada penelitian lain yang menjadia acuan berjudul “A comparison of SPDY and HTTP performance”. Menjelaskan bagiamana perbandingan kinerja SPDY dan HTTP dalam berbagai pengaturan. Untuk melihat delay dari masing-masing protocol [6]. Berdasarkan penelitian terdahulu yang menjadi acuan maka, kemudian dilakukan analisis header Connection dari protocol
HTTP/1.1 dan HTTP/2 pada Video Streaming
Multiplexing adalah suatu metode dalam HTTP/2 yang menjadikan permintaan atas elemen resource, antara browser dan server tersebut lebih ringkas dan cepat. Dimana dalam satu koneksi, server bisa memproses permintaan atas beberapa elemen resource secara paralel multi-threading. Multithreading adalah suatu kemampuan yang memungkinkan beberapa kumpulan instruksi atau proses dapat dijalankan secara bersamaan dalam sebuah program. [7].
Gambar 1 Multiplexed HTTP/2 Connection.
Priority adalah sebuah konsep baru yang HTTP/2 memperkenalkan untuk memungkinkan klien untuk memberikan preferensi prioritas untuk aliran tertentu. Prioritas tidak mengikat, dan server bebas untuk mengabaikannya sepenuhnya. Mekanisme prioritas dinyatakan dalam dependensi stream dan weight [8].
Handshakingpada umumnya lebih dikenal dengan jabat tangan, namun definisi yang sebernarnya adalah pertukaran signal yang ditentukan saat hubungan dilakukan antar dua termina. Handshaking merupakan prinsip dasar dari suatu hubungan pada sebuah interfacing. Handshaking juga merupakan proses negosiasi otomatis yang secara dinamis menentukan parameter dalam pembentukan kanal komunikasi antara dua entitas normal sebelum komunikasi melalui kanal dimulai. Untuk mengikuti pembentukan fisik saluran precedes normal dan mentransfer informasi proses negosiasi SSL atau “Handshake” melibatkan
pertukaran cryptosgraphic keys, certificate, dan informasi lain random data digunakan untuk membuat enkripsi satu waktu, dan valuenya digunakan untuk mengidentifikasi SSL yang dibuat dari Handshake [9].
Quality of Service (QoS) adalah kemampuan suatu jaringan untuk menyediakan layanan yang baik dengan menyediakan bandwidth, mengatasi jitter
dan delay di berbagai macam teknologi meliputi jaringan IP dan lainnya. QoS
3
memastikan bahwa user mendapatkan performansi yang handal dari aplikasi-aplikasi berbasis jaringan. Tujuan dari QoS adalah untuk memenuhi kebutuhan – kebutuhan layanan yang berbeda, yang menggunakan infrastruktur yang sama [10].
(1)
� �� � � − � � =� � ��� � � �� �� � �
Terdapat juga standar kualitas dari delay yang dapat dikategorikan dalam beberapa kategori berdasarkan ITU-T G.114 (cao, 2009: 34), dimana ITU-T (ITU
Telecommunication Standarzation Sector) merupakan badan khusus PBB dibidang telekomunikasi diseluruh dunia [10].
Tabel 1 standarisasi ITU-T G 114 Delay [11]
Berikut rumus untuk mendapatkan nilai dari parameter Jitter:
(2)
=� � ��� � �� � �� � �� � − 1
Total variasi delay diperoleh dari penjumlahan:
(delay2 – delay1) + (delay3 - delay2) +…..+ (delay n – delay (n-1)) (3)
4
Gambar 2 Metode Penelitian
Prepare dalam tahap ini proses yang dilakukan adalah mempersiapkan segala sesuatu yang ingin dibuat. Baik itu pengumpulan literature dan proses pembelajaran Request for Comment (RFC), dalam mendukung proses Analisis HTTP/1.1 dan HTTP/2 pada tahap Analysis. Tahap berikutnya adalah Plan. Dalam tahap ini, yang dilakukan adalah perencanaan jaringan yang dibuat serta menentukan hardware dan software yang digunakan dalam penelitian ini. Dalam tahap Plan (Perencanaan) ini spesifikasi system yang menjelaskan dan Mengidentifikasi kebutuhan awal jaringan berdasarkan tujuan, kebutuhan, user, dan juga fitur-fitur yang akan ditampilkan pada Web Server. Plan disusun untuk membantu mengelola tugas, tanggung jawab dan sumber daya dalam jaringan. Kebutuhan perangkat lunak menggunakan sistem operasi Ubuntu server, karena mendukung service untuk komputer server, dan juga karena dukungan integrase dari Apache2, OpenSSL, XAMPP, PhpMyAdmin dan pada client perangkat lunak yang digunakan adalah Wireshark dan google chrome. Perangkat keras yang digunakan adalah 2 laptop yaitu server dan client. Cabel unshielded twisted pair
(UTP), fitur penunjang adalah Wireshark, video MP4 dan artikel-artikel ilmu pengetahuan dan informasi akademis. Tabel 3 merupakan planning kebutuhan perangkat keras untuk membangun sistem web Server untuk video streaming. Tabel 4 menunjukan kebutuhan sistem operasi dan perangkat lunak pada server dan client.
Tabel 3 Kebutuhan Perangkat Keras
Procesor RAM Harddisk Ip Address
Server Intel(R) Core(TM) i5-3317U CPU 4 GB 500 GB 192.168.56.1
5
Tabel 4 Kebutuhan Perangkat Lunak
Design adalah Tahap awal pembuatan model Topology. Setelah kebutuhan perangkat keras dan perangkat lunak, kemudian dilakukan arsitektur jaringan video streaming. Dalam design ini topology yang digunakan adalah Peer-to-peer, yang dimana client dapat dihubungakan langsung dengan server melalui kabel
unshielded twisted pair (UTP).
Gambar 3 Topology Peer-to-peer
Implement adalah Tahap yang merupakan lanjutan dari tahap design degan mengacu pada design yang telah dirancang. Hasil dari design diimplementasikan dengan menggunkan perangkat keras (Hardware) dan perangkat lunak (Software). Didalam tahap ini dilakukan pengintalan dan konfigurasi Apache2 yang diguanakn sebagai web server. Pada apache2 dilakukan penginstalan openssl, PhpMyAdmin, MySQL. Yang mendukung jalannya HTTP/1.1 dan HTTP/1.1 pada web Server.
Kode program 1 dan kode program 2 menjelaskan pengaturan pada SSL agar dapat menjalankan HTTP/1.1 dan HTTP/2 untuk melakukan video streaming.
Kode Program 1: OpenSSL pada HTTP/1.1
<IfModule mod_SSL.C>
<VirtualHost_default_:443>
#Protocols h2 h2C http/1.1
ServerAdmin Webmaster@localhost
DocumentRoot /var/www/html
Operation System Software
Server Ubuntu Server 14.04 VirtualBox
Apache2
Open SSL
XAMPP (MySQL, PhpMyAdmin)
Client OS X el Caption Version 10.11.5 Google Chrome
Wireshark 2.0.4
6
Kode Program 2: OpenSSL pada HTTP/2
<IfModule mod_SSL.C>
<VirtualHost_default_:443>
Protocols h2 h2C http/1.1
ServerAdmin Webmaster@localhost
DocumentRoot /var/www/html
Pada kode program 1 dan 2 dapat dijelaskan bahwa port yang digunakan adalah 443 yang merupakan port default dari SSL kemudian dapat dilihat bahwa terdapat #protocols h2 h2c http/1.1 kode program ini berfungsi hanya menjalankan HTTP/1.1 sedangkan protcols h2 h2c http/1.1 ini berfungsi agar server menjalankan HTTP/2. Kode program 3 merupakan pembuatan SSL sertificate dan key agar dapat menjalankan web server.
Kode Program 3: OpenSSL
Operate adalah tahapan selanjutnya dari implement didalam tahap ini merupakan tahap pengujian pada sistem yang telah dibangun dengan memperhatikan tahap pertama hingga tahapa implement. Didalam tahap ini terdapat skenario pembebanan traffic. Didalam pengujian ini digunakan 2 video dengan format MP4, dengan ukuran yang berbeda. video MP4 yang pertama berdurasi 11 detik hanya untuk melakukan streaming, dimana untuk mengetahui jumlah paket yang didapatkan dari HTTP/1.1 dan HTTP/2 dan melakukan perbandingan paket-paket yang di tangkap oleh Wiresharkpada client. Kemudian video ke-2 berdurasi 3 menit 57 detik. Pada video yang kedua ini dilakukan streaming dan download
untuk melihat skala Priority (prioritas) pada HTTP/2. Analysis merupakan tahap terakhir dimana, pada tahap ini dilakukan untuk menganalisis hasil capture pada Wireshark untuk mengetahui paket streaming kemudian meilhat QoS (Quality of Service) dengan mengukur parameter delay, jitter dan skala priority untuk mengetahui kinerja dari HTTP/1.1 dan HTTP/2.
4. Hasil dan Analisis
Setelah tahap perancangan sistem dilakukan analisis mengenai hasil dari perancangan sistem. Hasilnya adalah suatu aplikasi berbasis web yang dapat dioperasikan sesuai dengan analisis kebutuhan yang dilakukan.
SSLCertificateFile /etc/apache2/ssl/apache.crt
7
Gambar 4 Antarmuka Website Streaming
Tampilan menu utama halaman web streaming dapat dilihat pada Gambar 4. Ada terdapat berbagai menu, choose file, upload file, display, dan logout. Menu
choose file digunakan untuk memilih file MP4 pada directory untuk melakukan
streaming, kemudian menu upload file berfungsi untuk melakukan mengupload file yang sudah dipilih, setelah itu menu display video berfungsi menapilkan video yang sudah diuploadkemudian diplay untuk menjalankan proses streaming video. Dan kemudian menu yang terakhir adalah logout fungsinya untuk keluar dari proses
streaming. Dalam penelitian ini dilakukan dua kali pengujian pada HTTP/1.1 maupun HTTP/2 skenario yang diguanakan dalam penelititan ini adalah yang pertama digunakan file MP4 yang berdurasi 11 detik untuk melihat QoS (Quality of Service) yaitu parameter delay dan jitter. Kemudian pada pengujian kedua digunakan video berdurasi 3 menit 57 detik. Video yang 11 detik digunakan untuk menghitung jumlah paket dan spesifikasi dan kegunaan dari masing-masing
protocol. sedangkan untuk video yang berdurasi 3 menit 57 detik dilakukan
8
Gambar 5 Tampilan Hasil Capturing Streaming video Pada Wireshark
Tahap berikutnya adalah melakukan capture masing-masing proses streaming
maupun streaming dan download pada HTTP/1.1 dan HTTP/2. Dilihat hasil
capture dari HTTP/1.1 dan HTTP/2 pada Tabel 5 dan Tabel 6.
Tabel 5 Hasil Capture paket Streaming pada Wireshark
Pada Tabel 5 merupakan paket Streaming pada pengujian dari HTTP/1.1 dan HTTP/2 yang ditangkap oleh Wireshark. Paket streaming HTTP/1.1 terdiri dari beberapa protocol yaitu HTTP/1.1, MP4, SSL, TCP dan TLSv1.2 dengan jumlah
Protocol HTTP/1.1 Protocol HTTP/2
9
yang berbeda-beda sedangkan pada HTTP/2 memiliki paket streaming yang berbeda dengan HTTP/1.1 yaitu terdiri dari protocol HTTP2, pada HTTP/2 sendiri terbagi atas header, header dan data, data, magic. Ping, Setting, Setting_Window_Update, maupun windows_update. Jika dilihat pada total jumlah paket dari HTTP/1.1 memiliki 1788 paket streaming sedangkan pada HTTP/2 berjumlah 1745 paket streaming berbeda 43 paket. Jika dilihat pada pengujian yang kedua untuk melihat skala prioritas yaitu streaming dan download HTTP/1.1 memiliki 130557 paket. Pada HTTP/2 memiliki jumlah paket yang lebih sedikit dari pada HTTP/1.1 yaitu, 130509 paket. Berbeda 48 paket terhadap HTTP/1.1 yang ditangkap oleh Wireshark. HTTP/1.1 lebih banyak menggunakan koneksi TCP dari pada HTTP/2. Jika terlalu banyak koneksi TCP maka peluang untuk terjadinya head of line Blocking (HOL blocking) pemblokiran terhadap paket-paket semakin besar. Oleh karena itu muncul HTTP/2 menggunakan teknologi
multiplexing untuk menjawab permasalahan yang sering terjadi pada HTTP/1.1 sehingga, HTTP/2 dalam 1 koneksi mampu memiliki banyak request dan sekalipun untuk download. Dilihat pada jumlah protocol HTTP/2 dimana terdapat headers, header dan data, data, dll. Kemudian pada HTTP/1.1, memiliki 1 request pada satu koneksi hal ini bisa dilihat pada banyaknya koneksi TCP dan jumlah keseluruhan dari paket HTTP/1.1 yang tercapture oleh Wireshark.
Tabel 6 Hasil Capture paket Streaming dan Download pada Wireshark
Protocol HTTP/1.1 Protocol HTTP/2
HTTP/1.1 pada video streaming, analisa ini dilakukan pada client dengan beban sebesar 520 KB untuk pengujian pertama dilakukan untuk melihat data-data parameter dari QoS yaitu delay dan Jitter sedangkan pada pengujian kedua proses analisa dilakukan terhadap efek priority pada HTTP/2 dengan beban sebesar 46,856 KB. Pengambilan data dilakukan dengan menggunakan dua file format yang sama yaitu MP4 dengan ukuran setiap file berbeda-beda yaitu 520 KB dan 46,856 KB dan setaip file memiliki durasi 11 detik dan 3 menit 57 detik.
10
menetukan performansi dari kualitas jaringan video streaming. Berdasarkan standar ITU-T G 114 untuk kualitas video streaming yang baik, delay harus <150ms. Pada uji coba pengukuran delay dilakukan video streaming dari client terhadap server
pengujian ini dilakukan dalam satu jaringan dengan menggunakan jaringan per-to-per. tabel perbandingan delay streaming pada HTTP/1.1 dan HTTP/2 dapat dilihat pada Tabel 7 pada pengujian ini nilai rata-rata delay dari HTTP/1.1 lebih besar dibandingkan dengan HTTP/2 dimana HTTP/2 lebih sedikit yaitu 12.58 ms sedangkan pada HTTP/1.1 37.ms jika dilihat dari standart ITU-T Delay keduanya masih dikatakan baik karena masih kurang dari 150 ms. Namun kemudian dapat dikatakan bahwa HTTP/2 memiliki nilai yang relatif kecil dari HTTP/1.1.
Tabel 7 Perbandingan nilai rata-rata Delay HTTP/1.1 dan HTTP/2
Protocol Client sebelumnya. Jitter diakibatkan oleh lintasan tempuh yang berbeda-beda antar paket, variasi-variasi dalam panjang antrian, dan waktu mengelola data. ITU-T merekomendasikan jitter yang baik adalah <30 ms. Pada saat uji coba jitter yang diukur merupakan jitter rata-rata (average) dari jitter beberapa paket video yang tertangkap oleh Wireshark. Dalam pengukuran jitter dilakukan skenario yang sama dengan pengukuran delay. Tabel perbadingan nilai jitter bisa dilihat pada Tabel 8 dimana dilihat pada pengujian ini HTTP/1.1 mendapatkan lebih banyak mendaptakan nilai Jitter yaitu 7.34 ms kemudian, pada HTTP/2 adalah 2.49 ms. Pada pengujian ini bisa dikatakan dari HTTP/1.1 dan HTTP/2 masih memiliki nilai yang sangat bagus karena mendapatkan nilai
Tabel 8 Perbandingan nilai Jitter HTTP/1.1 dan HTTP/2
11
Gambar 6 Paket Streaming dan Download Priority HTTP/2
5. Simpulan
Berdasarkan dari hasil dan analisis dapat disimpulkan bahwa protocol HTTP/1.1 dan HTTP/2 memiliki header connection yang berbeda dalam pengelompokan file Header. Hal ini terjadi karena HTTP/2 memiliki teknologi Multiplexing yang berguna membuat Multi-thread untuk banyak proses secara paralel. Sehingga HTTP/2 lebih efesien daripada HTTP/1.1, hal ini dapat dibuktikan dengan nilai
delay dan jiitter HTTP/1.1 dan HTTP/2. Parameter delay streaming HTTP/1.1 dan HTTP/2 dari seluruh perhitungan menujukan rata-rata nilai delay termasuk kategori sangat bagus yaitu 37.00 ms dan HTTP/2 memiliki nilai terendah dari pada HTTP/1.1 yaitu 12.58 ms. Karena semakin kecil delay yang dihasilkan, maka semakin baik kualitas jaringan. Sedangkan pada parameter jitter streaming
HTTP/1.1 dan HTTP/2 dari seluruh perhitungan menujukan nilai jitter termasuk kategori baik yaitu < 20 ms. HTTP/2 memiliki nilai terendah yaitu 2.49 ms sedangkan pada HTTP/1.1 yaitu 7.34 ms. Kemudian pada priority dari HTTP/2 memberikan Efek yang baik dalam proses streaming yang dimana menjadikan proses streaming tetap sebagai prioritas sekalipun berjalan proses yang lain seperti
download.
6. Daftar Pustaka
[1]. Raymond Sutanto, Sesfi Triwahyuni, 21 September 2012, Protocol ransfer Hiperteks, https://id.wikipedia.org/wiki/Protokol_Transfer_Hiperteks. Diakses 7 Agustus 2015
12
repository.amikom.ac.id/files/Publikasi_10.12.4803.pdf. Diakses 9 Agustus 2016.
[4]. Khushali Tirghoda, 5 Mei 2012, The Affection of HTTP Compression in the Performance of Core web Components, International Journal of Scientific & Engineering Research, (Volume 3, Issue 5, May-2012) http://www.ijser.org/. Diakses 13 Agustus 2015.
[5]. Hussein Bakri dkk, 31 Juli 2015. HTTP/2 and QUIC for Virtual Worlds and the 3D Web?, Procedia Computer Science,56(2015):242-251
https://www.st-andrews.ac.uk/. Diakses 13 Agustus 2015.
[6]. Jitendra Padhye dan Henrik Frystyk Nielsen, 26 Juli 2012, A comparison of SPDY and HTTP performance. https://ist.psu.edu/. Diakses 13 Agustus 2015.
[7]. Susetyo Dwi Prihadi, 3 November 2015 Saatnya Dunia Beralih dari HTTP/1.1 ke HTTP/2. http://www.cnnindonesia.com/. Diakses 11 juli 2016.
[8]. Redhat, 27 April 2015, An in depth overview of HTTP/2. http://undertow.io/. Diakses 11 Juli 2016.
[9]. Robby Chandra S.Kom., M.T, Prinsip Dasar Antarmuka,
http;//robby.c.staff.gunadarma.ac.id/Dowloads/files/30711/bus-interfacing.pdf. Diakses 9 Agustus 2016.
[10]. Putri Eka Pratiwi, Januari 2012, Analisis Qos Pada Jaringan Multi Protocol Label Switching (MPLS) Studi Kasus Di Pelabuhan Indonesia III Cabang Tanjung Intan Cilacap. https://www.academia.edu. Diakses 13 Juli 2016 [11]. Rusdianto Roestam, Januari 2012, Perancangan Simulasi dan Analisa QoS