fbpx
32.1 C
Jakarta
Selasa, 14 Mei 2024

HTTP/3 dengan QUIC dan TLS-1.3

Protokol Internet (IP), Transmission Control (TCP), Hypertext Transfer (HTTP), dan Transport Layer Security (TLS dan SSL) telah lama menyematkan World Wide Web. Masing-masing memberikan lapisan abstraksi yang berfokus pada masalah tertentu.

Dari waktu ke waktu penyempurnaan telah dilakukan untuk meningkatkan kinerja, keamanan, dan privasi, serta memperluas fungsionalitas seiring perkembangan web. HTTP/3 dengan QUIC yang tersedia secara umum pada tahun 2019 dan TLS-1.3 yang tersedia secara umum pada tahun 2018 adalah protokol terbaru yang diadopsi secara luas untuk lalu lintas web yang menyediakan penyempurnaan melalui HTTP/1.1, HTTP/2, dan TLS-1.2.

Pada artikel ini kita akan mendalami detail HTTP/3 dengan QUIC dan TLS-1.3, termasuk HTTP/2, setelah pertama kali membangun teknologi baru ini lapis demi lapis.

Networking Stack

Permintaan web terdiri dari beberapa lapisan abstraksi yang disebut sebagai tumpukan jaringan. Meskipun model yang berbeda mewakili abstraksi ini secara berbeda, sebagian besar terdapat empat lapisan. Lapisan abstraksi terendah adalah lapisan Tautan yang bertanggung jawab untuk komunikasi antara node jaringan yang berdekatan (mis. Ethernet, WiFi/IEEE-802.11). Selanjutnya, lapisan Internet bertanggung jawab untuk komunikasi antara dua node jaringan melintasi batas jaringan (mis. IPv4, IPv6). Ketiga, lapisan Transport bertanggung jawab untuk transmisi pesan termasuk penanganan koneksi, keandalan, kontrol aliran, dan multiplexing (mis. TCP, UDP). Terakhir, lapisan Aplikasi bertanggung jawab atas penanganan pesan tingkat aplikasi termasuk sintaks, semantik, autentikasi, dan caching (mis. HTTP, DNS, SSH, MQTT, SMTP, WebSocket, WebRTC).

Komunikasi Tautan dan Internet Protocol(IP)

Dua lapisan paling mendasar dari tumpukan jaringan World Wide Web adalah lapisan tautan dan lapisan internet. Sementara lapisan tautan memfasilitasi komunikasi antara dua simpul jaringan yang terhubung secara lokal yang berdekatan, lapisan internet memfasilitasi komunikasi antara dua simpul jaringan yang terhubung secara global (mis. IPv4, IPv6).

Internet Protocol (IP) adalah protokol berbasis paket tanpa koneksi. IPv4 yang diadopsi secara luas distandarisasi pada tahun 1981 oleh DARPA (RFC791). IPv4 menggunakan ruang alamat 32-bit dengan kira-kira 4 triliun alamat (2^32). Saat Web meledak pada tahun 1980-an, dengan cepat menjadi jelas bahwa ruang alamat 32-bit akan membatasi internet publik. Teknologi NAT dan CIDR diperkenalkan pada tahun 1993 untuk mengurangi penipisan cepat alamat IPv4. Sedangkan sebelum CIDR, alamat IP hanya dapat dialokasikan dalam blok 8, 16, atau 24 bit (kelas), dengan alamat IP CIDR dapat dialokasikan di sepanjang batas alamat-bit.

Ini memungkinkan jaringan dan subnet berukuran lebih tepat untuk dibutuhkan. Bersamaan, terjemahan alamat jaringan (NAT) memungkinkan pemetaan ruang alamat IP ke yang lain. Ini mengaktifkan jaringan pribadi besar dengan alokasi alamat IP publik yang minimal. Misalnya, dengan NAT, seluruh jaringan pribadi dapat diberi satu alamat IP publik. Meskipun teknologi CIDR dan NAT membeli waktu yang berharga sebelum alamat IPv4 habis, ruang alamat yang lebih besar masih diperlukan pada akhirnya karena Web terus berkembang pesat.

IPv6 dirancang pada tahun 1996 dan distandarisasi pada tahun 2017. IPv6 mengurangi penipisan alamat dengan ruang alamat 128-bit yang mendukung 2^128 alamat. Karena IPv6 tidak dapat dioperasikan dengan IPv4, pengadopsiannya lambat, tetapi dukungan terus meningkat.

TCP dan UDP

Lapisan Transport bertanggung jawab untuk pengiriman pesan end-to-end termasuk penanganan koneksi, keandalan, kontrol aliran, dan multiplexing. Ini juga disebut sebagai Layer 4 dengan mengacu pada model tumpukan jaringan OSI. Penyeimbang muatan sering beroperasi pada lapisan Transport (penyeimbangan muatan L4), tetapi juga dapat beroperasi pada lapisan Aplikasi (penyeimbangan muatan L7). Dua protokol yang paling dikenal pada lapisan ini adalah TCP dan UDP. Nanti kita akan melihat bagaimana QUIC beroperasi pada lapisan Transport juga.

Baca Juga:  Tombol Tweet harus berubah menjadi Posting mulai dari sekarang

Spesifikasi Transmission Control Protocol (TCP) pertama kali diterbitkan pada tahun 1974 (RFC675) dan diadopsi bersamaan dengan IPv4 pada masa-masa awal World Wide Web. TCP menyediakan koneksi stateful, memprioritaskan keandalan daripada kinerja. Data dibagi menjadi segmen-segmen dan jabat tangan multi-langkah membuat koneksi TCP.

Mengingat lalu lintas IP akan mengalami kemacetan jaringan dan kehilangan/duplikasi/pengaturan ulang paket IP, TCP memiliki mekanisme untuk menangani masalah ini dengan andal. Misalnya, pengiriman ulang paket yang hilang, penataan ulang segmen yang tidak sesuai pesanan, buffering paket untuk mengontrol laju transmisi, dan checksum untuk deteksi kesalahan. Saat koneksi TCP dibuat, secara perlahan meningkatkan laju transmisi hingga mulai mendeteksi masalah. TCP umumnya digunakan untuk berbagi file, situs web, dan aplikasi internet.

Spesifikasi User Datagram Protocol (UDP) pertama kali diterbitkan pada tahun 1980 (RFC768) dan tidak seperti TCP menawarkan transmisi tanpa koneksi, memprioritaskan kinerja daripada keandalan. Tidak seperti TCP, UDP tidak menawarkan mekanisme pemesanan, kontrol kongesti, atau reliabilitas. UDP digunakan untuk DNS dan umumnya untuk streaming multimedia, VoIP, dan permainan video multipemain.

HTTP, TLS/SSL, dan HTTPS

HTTP awalnya dikembangkan pada akhir 1980-an dan awal 1990-an untuk memberikan spesifikasi hypertext permintaan/respons (mis. Halaman web HTML) di atas TCP sambil mendukung node jaringan perantara. Prototipe pertama diselesaikan di CERN pada tahun 1989 oleh Tim Berners. HTTP/1.0 dan HTTP/1.1 kemudian distandarisasi pada tahun 1996 dan 1997 (RFC1945). HTTP/1.0 memulai koneksi terpisah per sumber daya, sedangkan HTTP/1.1 memungkinkan penggunaan kembali koneksi di beberapa sumber daya.

Meskipun HTTP/1.1 mendukung banyak permintaan paralel, browser masih membatasi jumlah koneksi terbuka yang diizinkan pada satu waktu (mis. 6 di Chrome dan Firefox). Pemblokiran head-of-line menjadi masalah di HTTP/1.1 ketika lebih dari X sumber daya diminta secara paralel. Pipelining diperkenalkan untuk mencoba mengatasi hal ini tetapi mengalami kesulitan untuk mendapatkan adopsi yang luas dan digantikan oleh multiplexing HTTP/2.

Setiap sumber daya dalam HTTP direferensikan oleh URI. HTML digunakan untuk rendering dan mungkin menyertakan URI untuk menavigasi antar halaman. Berbagai jenis agen pengguna dapat memulai permintaan termasuk browser web, perayap web, aplikasi seluler, atau sistem perangkat lunak lainnya.

Transport Layer Security (TLS) dan Secure Sockets Layer (SSL) yang sekarang sudah tidak digunakan lagi adalah protokol kriptografi untuk komunikasi rahasia, tidak dapat dimodifikasi, dan otentik antara aplikasi perangkat lunak.

Standar SSL diulang pada akhir tahun sembilan puluhan sebelum berkembang menjadi TLS-1.0 pada tahun 1999 dan kemudian TLS-1.2 pada tahun 2008. TLS mengenkripsi konten/badan permintaan web yang mengamankannya dari penyerang yang mencegat lalu lintas. Karena dibangun di atas TCP sebagai protokol terpisah, URI yang dikirim melalui TCP tidak disembunyikan sebagai bagian dari enkripsi TLS.

Sertifikat digunakan dengan kunci asimetris bersama dengan Otoritas Sertifikat terkenal untuk menetapkan keaslian. Kunci simetris digunakan setelah jabat tangan awal untuk performa tinggi. HTTPS adalah perpanjangan dari HTTP menggunakan SSL/TLS untuk mengenkripsi lalu lintas web. Lebih dari 75% permintaan web menggunakan HTTPS saat ini. Lihat Pengantar Komunikasi Web Aman – HTTPS untuk mempelajari lebih dalam tentang TLS dan HTTPS.

HTTP/2

HTTP/2 adalah revisi besar pertama HTTP dalam lebih dari dua puluh tahun ketika distandarisasi pada tahun 2015 (RFC7540). HTTP/2 terus bergantung pada TCP dan berasal dari protokol eksperimental sebelumnya yang dikembangkan oleh Google bernama SPDY.

Baca Juga:  700 pekerja Ubisoft mogok di Prancis karena kegagalan negosiasi gaji

HTTP/2 meningkatkan kinerja melalui beberapa mekanisme HTTP header dikompresi untuk mengurangi ukuran transmisi, multiplexing beberapa permintaan bersamaan melalui satu koneksi TCP didukung untuk menghindari pemblokiran head-of-line, dan prioritas permintaan juga didukung. Peningkatan besar di sini adalah kemampuan untuk memecah beberapa permintaan bersamaan menjadi bingkai, menyisipkannya, dan kemudian menerima banyak respons melalui koneksi yang sama.

HTTP/2 juga memperkenalkan kemampuan server untuk mendorong konten ke klien secara optimis melalui koneksi TCP yang dibuat, yang disebut Server Push. Dalam praktiknya, sumber daya yang didorong hanya digunakan di browser web saat browser mencoba membuat permintaan yang cocok.

HTTP/2 membuat peningkatan besar dibandingkan HTTP/1.1, yang paling penting dengan mengatasi masalah pemblokiran head-of-line HTTP, tetapi masih bersaing dengan pemblokiran head-of-line pada lapisan TCP. Ketika paket TCP hilang atau disusun ulang, semua aliran dihentikan.

HTTP/3 dengan QUIC dan TLS-1.3

HTTP/3 menggunakan QUIC pertama kali diterapkan di Google pada tahun 2012. Jim Roskind merancang protokol awal dan penerapannya di Google, insinyur perangkat lunak yang sama yang pada tahun 2008 membantu merancang protokol TLS-1.2 (RFC5246). QUIC bertujuan untuk hampir setara dengan TCP tetapi dengan latensi yang jauh lebih baik dan penghapusan pemblokiran head-of-line TCP. QUIC juga meningkatkan peralihan antar jaringan dengan memanfaatkan pengidentifikasi koneksi di server yang memungkinkan klien untuk membangun kembali koneksi.

Pembaruan (2021): HTTP/3 menggunakan QUIC telah distandarisasi pada tahun 2021 (RFC9000). Bersama-sama QUIC dan HTTP/3 terus mengadopsi dengan semua browser web modern yang sekarang mendukungnya – Chrome, Firefox, Safari, Microsoft-Edge – dan sebagian besar lalu lintas Chrome ke server Google saat ini menggunakan QUIC. Pada tahun 2021, lebih dari 20% situs web menggunakan HTTP/3

Sedangkan HTTP/1 dan HTTP/2 dibangun di atas TCP, HTTP/3 dengan QUIC dibangun di atas UDP. Itu mempertahankan semantik HTTP yang konsisten tetapi memanfaatkan QUIC untuk sepenuhnya mengatasi pemblokiran head-of-line yang masih terlihat di HTTP/2 karena ketergantungannya pada TCP. Meskipun HTTP/2 memperbaiki masalah pemblokiran head-of-line, masih harus menghadapinya di lapisan TCP; setiap kali paket hilang atau disusun ulang, TCP masih menyebabkan semua aliran aktif terhenti. Dengan QUIC hanya aliran aktif yang dihentikan. Dalam kondisi jaringan yang buruk, peningkatan kinerja di HTTP/3 ini bahkan lebih terlihat.

TLS membutuhkan proses jabat tangan dengan pertukaran kunci simetris. QUIC mengirimkan pertukaran kunci TLS sebagai bagian dari permintaan koneksi awal. TLS-1.3 meningkatkan kinerja dengan jabat tangan TLS yang lebih sederhana, hanya membutuhkan hingga 3 paket dari 5 hingga 7 paket yang diperlukan di TLS-1.2. TLS-1.3 meniadakan dukungan untuk kunci RSA statis, mengandalkan kunci Diffie-Hellman yang merupakan kunci singkat yang berasal dari data inisialisasi dari kedua belah pihak dan kecil kemungkinannya untuk disusupi.

Dengan hanya mengandalkan kunci Diffie-Hellman, TLS-1.3 mengirimkan input yang diperlukan untuk pembuatan kunci selama respons “halo” awal sebagai bagian dari jabat tangan. Ini menghilangkan seluruh perjalanan bolak-balik dari jabat tangan TLS. Selanjutnya, saat mengunjungi kembali sebuah situs, klien dapat mengirim data pada pesan awal menggunakan kunci yang dibagikan sebelumnya pre-shared key (PSK), menghilangkan semua perjalanan bolak-balik awal dari jabat tangan (0-RTT). Hal ini dapat menghasilkan peningkatan kinerja ~25%.

Protokol Internet (IP), Transmission Control (TCP), Hypertext Transfer (HTTP), dan Transport Layer Security (TLS dan SSL) telah lama menyematkan World Wide Web. Masing-masing memberikan lapisan abstraksi yang berfokus pada masalah tertentu.

Dari waktu ke waktu penyempurnaan telah dilakukan untuk meningkatkan kinerja, keamanan, dan privasi, serta memperluas fungsionalitas seiring perkembangan web. HTTP/3 dengan QUIC yang tersedia secara umum pada tahun 2019 dan TLS-1.3 yang tersedia secara umum pada tahun 2018 adalah protokol terbaru yang diadopsi secara luas untuk lalu lintas web yang menyediakan penyempurnaan melalui HTTP/1.1, HTTP/2, dan TLS-1.2.

Pada artikel ini kita akan mendalami detail HTTP/3 dengan QUIC dan TLS-1.3, termasuk HTTP/2, setelah pertama kali membangun teknologi baru ini lapis demi lapis.

Networking Stack

Permintaan web terdiri dari beberapa lapisan abstraksi yang disebut sebagai tumpukan jaringan. Meskipun model yang berbeda mewakili abstraksi ini secara berbeda, sebagian besar terdapat empat lapisan. Lapisan abstraksi terendah adalah lapisan Tautan yang bertanggung jawab untuk komunikasi antara node jaringan yang berdekatan (mis. Ethernet, WiFi/IEEE-802.11). Selanjutnya, lapisan Internet bertanggung jawab untuk komunikasi antara dua node jaringan melintasi batas jaringan (mis. IPv4, IPv6). Ketiga, lapisan Transport bertanggung jawab untuk transmisi pesan termasuk penanganan koneksi, keandalan, kontrol aliran, dan multiplexing (mis. TCP, UDP). Terakhir, lapisan Aplikasi bertanggung jawab atas penanganan pesan tingkat aplikasi termasuk sintaks, semantik, autentikasi, dan caching (mis. HTTP, DNS, SSH, MQTT, SMTP, WebSocket, WebRTC).

Komunikasi Tautan dan Internet Protocol(IP)

Dua lapisan paling mendasar dari tumpukan jaringan World Wide Web adalah lapisan tautan dan lapisan internet. Sementara lapisan tautan memfasilitasi komunikasi antara dua simpul jaringan yang terhubung secara lokal yang berdekatan, lapisan internet memfasilitasi komunikasi antara dua simpul jaringan yang terhubung secara global (mis. IPv4, IPv6).

Internet Protocol (IP) adalah protokol berbasis paket tanpa koneksi. IPv4 yang diadopsi secara luas distandarisasi pada tahun 1981 oleh DARPA (RFC791). IPv4 menggunakan ruang alamat 32-bit dengan kira-kira 4 triliun alamat (2^32). Saat Web meledak pada tahun 1980-an, dengan cepat menjadi jelas bahwa ruang alamat 32-bit akan membatasi internet publik. Teknologi NAT dan CIDR diperkenalkan pada tahun 1993 untuk mengurangi penipisan cepat alamat IPv4. Sedangkan sebelum CIDR, alamat IP hanya dapat dialokasikan dalam blok 8, 16, atau 24 bit (kelas), dengan alamat IP CIDR dapat dialokasikan di sepanjang batas alamat-bit.

Ini memungkinkan jaringan dan subnet berukuran lebih tepat untuk dibutuhkan. Bersamaan, terjemahan alamat jaringan (NAT) memungkinkan pemetaan ruang alamat IP ke yang lain. Ini mengaktifkan jaringan pribadi besar dengan alokasi alamat IP publik yang minimal. Misalnya, dengan NAT, seluruh jaringan pribadi dapat diberi satu alamat IP publik. Meskipun teknologi CIDR dan NAT membeli waktu yang berharga sebelum alamat IPv4 habis, ruang alamat yang lebih besar masih diperlukan pada akhirnya karena Web terus berkembang pesat.

IPv6 dirancang pada tahun 1996 dan distandarisasi pada tahun 2017. IPv6 mengurangi penipisan alamat dengan ruang alamat 128-bit yang mendukung 2^128 alamat. Karena IPv6 tidak dapat dioperasikan dengan IPv4, pengadopsiannya lambat, tetapi dukungan terus meningkat.

TCP dan UDP

Lapisan Transport bertanggung jawab untuk pengiriman pesan end-to-end termasuk penanganan koneksi, keandalan, kontrol aliran, dan multiplexing. Ini juga disebut sebagai Layer 4 dengan mengacu pada model tumpukan jaringan OSI. Penyeimbang muatan sering beroperasi pada lapisan Transport (penyeimbangan muatan L4), tetapi juga dapat beroperasi pada lapisan Aplikasi (penyeimbangan muatan L7). Dua protokol yang paling dikenal pada lapisan ini adalah TCP dan UDP. Nanti kita akan melihat bagaimana QUIC beroperasi pada lapisan Transport juga.

Baca Juga:  Free SSL untuk Rails dan Nginx menggunakan Let's Encrypt

Spesifikasi Transmission Control Protocol (TCP) pertama kali diterbitkan pada tahun 1974 (RFC675) dan diadopsi bersamaan dengan IPv4 pada masa-masa awal World Wide Web. TCP menyediakan koneksi stateful, memprioritaskan keandalan daripada kinerja. Data dibagi menjadi segmen-segmen dan jabat tangan multi-langkah membuat koneksi TCP.

Mengingat lalu lintas IP akan mengalami kemacetan jaringan dan kehilangan/duplikasi/pengaturan ulang paket IP, TCP memiliki mekanisme untuk menangani masalah ini dengan andal. Misalnya, pengiriman ulang paket yang hilang, penataan ulang segmen yang tidak sesuai pesanan, buffering paket untuk mengontrol laju transmisi, dan checksum untuk deteksi kesalahan. Saat koneksi TCP dibuat, secara perlahan meningkatkan laju transmisi hingga mulai mendeteksi masalah. TCP umumnya digunakan untuk berbagi file, situs web, dan aplikasi internet.

Spesifikasi User Datagram Protocol (UDP) pertama kali diterbitkan pada tahun 1980 (RFC768) dan tidak seperti TCP menawarkan transmisi tanpa koneksi, memprioritaskan kinerja daripada keandalan. Tidak seperti TCP, UDP tidak menawarkan mekanisme pemesanan, kontrol kongesti, atau reliabilitas. UDP digunakan untuk DNS dan umumnya untuk streaming multimedia, VoIP, dan permainan video multipemain.

HTTP, TLS/SSL, dan HTTPS

HTTP awalnya dikembangkan pada akhir 1980-an dan awal 1990-an untuk memberikan spesifikasi hypertext permintaan/respons (mis. Halaman web HTML) di atas TCP sambil mendukung node jaringan perantara. Prototipe pertama diselesaikan di CERN pada tahun 1989 oleh Tim Berners. HTTP/1.0 dan HTTP/1.1 kemudian distandarisasi pada tahun 1996 dan 1997 (RFC1945). HTTP/1.0 memulai koneksi terpisah per sumber daya, sedangkan HTTP/1.1 memungkinkan penggunaan kembali koneksi di beberapa sumber daya.

Meskipun HTTP/1.1 mendukung banyak permintaan paralel, browser masih membatasi jumlah koneksi terbuka yang diizinkan pada satu waktu (mis. 6 di Chrome dan Firefox). Pemblokiran head-of-line menjadi masalah di HTTP/1.1 ketika lebih dari X sumber daya diminta secara paralel. Pipelining diperkenalkan untuk mencoba mengatasi hal ini tetapi mengalami kesulitan untuk mendapatkan adopsi yang luas dan digantikan oleh multiplexing HTTP/2.

Setiap sumber daya dalam HTTP direferensikan oleh URI. HTML digunakan untuk rendering dan mungkin menyertakan URI untuk menavigasi antar halaman. Berbagai jenis agen pengguna dapat memulai permintaan termasuk browser web, perayap web, aplikasi seluler, atau sistem perangkat lunak lainnya.

Transport Layer Security (TLS) dan Secure Sockets Layer (SSL) yang sekarang sudah tidak digunakan lagi adalah protokol kriptografi untuk komunikasi rahasia, tidak dapat dimodifikasi, dan otentik antara aplikasi perangkat lunak.

Standar SSL diulang pada akhir tahun sembilan puluhan sebelum berkembang menjadi TLS-1.0 pada tahun 1999 dan kemudian TLS-1.2 pada tahun 2008. TLS mengenkripsi konten/badan permintaan web yang mengamankannya dari penyerang yang mencegat lalu lintas. Karena dibangun di atas TCP sebagai protokol terpisah, URI yang dikirim melalui TCP tidak disembunyikan sebagai bagian dari enkripsi TLS.

Sertifikat digunakan dengan kunci asimetris bersama dengan Otoritas Sertifikat terkenal untuk menetapkan keaslian. Kunci simetris digunakan setelah jabat tangan awal untuk performa tinggi. HTTPS adalah perpanjangan dari HTTP menggunakan SSL/TLS untuk mengenkripsi lalu lintas web. Lebih dari 75% permintaan web menggunakan HTTPS saat ini. Lihat Pengantar Komunikasi Web Aman – HTTPS untuk mempelajari lebih dalam tentang TLS dan HTTPS.

HTTP/2

HTTP/2 adalah revisi besar pertama HTTP dalam lebih dari dua puluh tahun ketika distandarisasi pada tahun 2015 (RFC7540). HTTP/2 terus bergantung pada TCP dan berasal dari protokol eksperimental sebelumnya yang dikembangkan oleh Google bernama SPDY.

Baca Juga:  700 pekerja Ubisoft mogok di Prancis karena kegagalan negosiasi gaji

HTTP/2 meningkatkan kinerja melalui beberapa mekanisme HTTP header dikompresi untuk mengurangi ukuran transmisi, multiplexing beberapa permintaan bersamaan melalui satu koneksi TCP didukung untuk menghindari pemblokiran head-of-line, dan prioritas permintaan juga didukung. Peningkatan besar di sini adalah kemampuan untuk memecah beberapa permintaan bersamaan menjadi bingkai, menyisipkannya, dan kemudian menerima banyak respons melalui koneksi yang sama.

HTTP/2 juga memperkenalkan kemampuan server untuk mendorong konten ke klien secara optimis melalui koneksi TCP yang dibuat, yang disebut Server Push. Dalam praktiknya, sumber daya yang didorong hanya digunakan di browser web saat browser mencoba membuat permintaan yang cocok.

HTTP/2 membuat peningkatan besar dibandingkan HTTP/1.1, yang paling penting dengan mengatasi masalah pemblokiran head-of-line HTTP, tetapi masih bersaing dengan pemblokiran head-of-line pada lapisan TCP. Ketika paket TCP hilang atau disusun ulang, semua aliran dihentikan.

HTTP/3 dengan QUIC dan TLS-1.3

HTTP/3 menggunakan QUIC pertama kali diterapkan di Google pada tahun 2012. Jim Roskind merancang protokol awal dan penerapannya di Google, insinyur perangkat lunak yang sama yang pada tahun 2008 membantu merancang protokol TLS-1.2 (RFC5246). QUIC bertujuan untuk hampir setara dengan TCP tetapi dengan latensi yang jauh lebih baik dan penghapusan pemblokiran head-of-line TCP. QUIC juga meningkatkan peralihan antar jaringan dengan memanfaatkan pengidentifikasi koneksi di server yang memungkinkan klien untuk membangun kembali koneksi.

Pembaruan (2021): HTTP/3 menggunakan QUIC telah distandarisasi pada tahun 2021 (RFC9000). Bersama-sama QUIC dan HTTP/3 terus mengadopsi dengan semua browser web modern yang sekarang mendukungnya – Chrome, Firefox, Safari, Microsoft-Edge – dan sebagian besar lalu lintas Chrome ke server Google saat ini menggunakan QUIC. Pada tahun 2021, lebih dari 20% situs web menggunakan HTTP/3

Sedangkan HTTP/1 dan HTTP/2 dibangun di atas TCP, HTTP/3 dengan QUIC dibangun di atas UDP. Itu mempertahankan semantik HTTP yang konsisten tetapi memanfaatkan QUIC untuk sepenuhnya mengatasi pemblokiran head-of-line yang masih terlihat di HTTP/2 karena ketergantungannya pada TCP. Meskipun HTTP/2 memperbaiki masalah pemblokiran head-of-line, masih harus menghadapinya di lapisan TCP; setiap kali paket hilang atau disusun ulang, TCP masih menyebabkan semua aliran aktif terhenti. Dengan QUIC hanya aliran aktif yang dihentikan. Dalam kondisi jaringan yang buruk, peningkatan kinerja di HTTP/3 ini bahkan lebih terlihat.

TLS membutuhkan proses jabat tangan dengan pertukaran kunci simetris. QUIC mengirimkan pertukaran kunci TLS sebagai bagian dari permintaan koneksi awal. TLS-1.3 meningkatkan kinerja dengan jabat tangan TLS yang lebih sederhana, hanya membutuhkan hingga 3 paket dari 5 hingga 7 paket yang diperlukan di TLS-1.2. TLS-1.3 meniadakan dukungan untuk kunci RSA statis, mengandalkan kunci Diffie-Hellman yang merupakan kunci singkat yang berasal dari data inisialisasi dari kedua belah pihak dan kecil kemungkinannya untuk disusupi.

Dengan hanya mengandalkan kunci Diffie-Hellman, TLS-1.3 mengirimkan input yang diperlukan untuk pembuatan kunci selama respons “halo” awal sebagai bagian dari jabat tangan. Ini menghilangkan seluruh perjalanan bolak-balik dari jabat tangan TLS. Selanjutnya, saat mengunjungi kembali sebuah situs, klien dapat mengirim data pada pesan awal menggunakan kunci yang dibagikan sebelumnya pre-shared key (PSK), menghilangkan semua perjalanan bolak-balik awal dari jabat tangan (0-RTT). Hal ini dapat menghasilkan peningkatan kinerja ~25%.

Untuk mendapatkan Berita & Review menarik Saksenengku Network
Google News

Artikel Terkait

Populer

Artikel Terbaru