Topik temu duga representatif

Temu Duga Rangkaian: Bagaimanakah HTTP/3 Menyelesaikan Sekatan Head-of-Line HTTP/2?

UmumSederhana
Pasukan Editorial Offer.ccDiterbitkan Dikemas kini

Soalan

Strim A dan B dipindahkan secara serentak melalui satu sambungan, dan paket yang membawa data strim A telah hilang. Terangkan mengapa strim B juga boleh terhenti (stall) dengan HTTP/2, bagaimana HTTP/3 mengubah hasil ini, dan bentuk sekatan atau penggandingan prestasi (performance coupling) manakah yang masih kekal dalam HTTP/3.

Gesaan dan Bila Ia Terpakai

Strim A dan B dipindahkan secara serentak melalui satu sambungan, dan paket yang membawa data strim A telah hilang. Terangkan mengapa strim B juga boleh terhenti (stall) dengan HTTP/2, bagaimana HTTP/3 mengubah hasil ini, dan bentuk sekatan atau penggandingan prestasi (performance coupling) manakah yang masih kekal dalam HTTP/3.

Dua strim dan satu kehilangan paket ini merupakan andaian temu duga, bukannya had protokol. Laluan utama membandingkan HTTP/2 melalui TCP dengan HTTP/3 melalui QUIC. Andaikan bahawa permintaan tersebut adalah bebas, sambungan telah diwujudkan, dan lebih banyak data tiba selepas kehilangan tersebut. Soalan ini sesuai untuk peranan frontend, backend, klien, infrastruktur, SRE, dan kejuruteraan perisian umum.

Matlamatnya bukanlah untuk sekadar menghafal bahawa HTTP/3 menggunakan UDP. Jawapan yang mantap menyatakan lapisan yang mengenakan susunan tertib, mengenal pasti sempadan penghantaran yang dihentikan oleh data yang hilang, dan menerangkan sebab penghantaran strim bebas tidak bermakna kebebasan prestasi sepenuhnya.

Perkara yang Dinilai oleh Penemu Duga

Pertama, bolehkah calon memisahkan sekatan head-of-line pada lapisan yang berbeza? Pempaipan (pipelining) HTTP/1.1 mempunyai kekangan susunan respons. Bingkai dan strim HTTP/2 menghapuskan susunan lapisan aplikasi antara mesej HTTP tersebut, tetapi setiap strim masih berkongsi satu strim bait TCP yang tersusun.

Kedua, bolehkah calon memperoleh hasil daripada kehilangan paket? TCP menghantar bait ke atas mengikut susunan. Apabila satu julat bait hilang, HTTP/2 masih belum boleh menerima bait seterusnya, walaupun ia mengandungi bingkai lengkap untuk strim B.

Ketiga, bolehkah calon menerangkan QUIC secara tepat? HTTP/3 memetakan permintaan kepada strim QUIC dwiarah. QUIC mengekalkan susunan mengikut ID strim dan ofset, jadi jurang dalam strim A tidak menghasilkan satu jurang penghantaran data aplikasi di seluruh sambungan.

Keempat, bolehkah calon menyatakan sempadan yang masih kekal? Strim A masih menunggu penghantaran semula. Jika satu paket QUIC yang hilang membawa data daripada A dan B, kedua-dua strim menunggu data mereka yang hilang. Kawalan kesesakan yang dikongsi, kawalan aliran peringkat sambungan dan strim, kebergantungan jadual dinamik QPACK, dan penjadualan aplikasi juga boleh menghasilkan masa menunggu atau penggandingan prestasi.

Kelima, bolehkah calon mencadangkan ujian yang sah? Jawapan yang mantap melakar garis masa paket dan strim, kemudian menggabungkan kehilangan terkawal, sumber serentak yang bebas, bukti protokol yang dirundingkan, masa penyelesaian bagi setiap strim, dan qlog berbanding hanya membandingkan jumlah masa halaman secara keseluruhan.

Soalan Penjelasan Sebelum Menjawab

  • Mekanisme sekatan manakah yang sedang kita bandingkan? Susunan respons HTTP/1.1, kelewatan penghantaran silang strim HTTP/2 selepas kehilangan TCP, atau barisan kerja pelayan? Soalan ini memberi tumpuan kepada yang kedua.
  • Adakah permintaan tersebut bebas? Jika hasil perniagaan B bergantung pada A, aplikasi mesti menunggu walaupun pengangkutan boleh menghantar B secara bebas.
  • Strim manakah yang berada dalam paket yang hilang? Jika satu paket QUIC membawa bingkai STREAM untuk A dan B, B tidak dijamin tidak terjejas.
  • Adakah protokol yang dimaksudkan benar-benar dirundingkan? Ujian HTTP/3 mesti membezakan sambungan h3 yang berjaya daripada peralihan sandaran (fallback) ke HTTP/2.
  • Bagaimanakah kehilangan dan kesesakan dikawal? Satu larian rawak mengandungi banyak hingaran (noise). Kekalkan kandungan dan pelayan tetap serta ulangi keadaan kependaman, lebar jalur, dan kehilangan yang sama.
  • Adakah kita menerangkan ketepatan atau prestasi hujung ke hujung? Kebebasan penghantaran silang strim ialah sifat protokol. Sama ada HTTP/3 lebih pantas juga bergantung pada RTT, kehilangan, pelaksanaan, CPU, kebolehcapaian UDP, dan kerja pelayan.

Rangka Kerja Jawapan 30 Saat

“HTTP/2 membahagikan mesej HTTP kepada bingkai yang boleh diselang-selikan dan strim bebas, jadi ia menghapuskan sekatan head-of-line lapisan aplikasi yang dilihat pada pempaipan HTTP/1.1. Bingkai tersebut masih melalui satu strim bait TCP. Jika bait TCP yang membawa strim A hilang, TCP tidak dapat menghantar bait seterusnya kepada HTTP/2 sehinggalah ia mengisi jurang tersebut. Oleh itu, strim B terhenti walaupun bait seterusnya adalah milik B.

HTTP/3 meletakkan setiap permintaan pada strim QUIC yang bebas. QUIC memasang semula mengikut ID strim dan ofset strim, jadi jurang A menghentikan A manakala B yang tiada jurang boleh diteruskan. HTTP/3 tidak menghapuskan setiap masa menunggu: strim dengan data yang hilang masih menunggu penghantaran semula; satu paket boleh menjejaskan setiap strim yang diwakili dalam paket tersebut; sambungan berkongsi tetingkap kesesakan; dan kawalan aliran, kebergantungan QPACK, serta penjadualan aplikasi boleh memperlahankan kerja lain. Dakwaan yang tepat ialah HTTP/3 menghapuskan sekatan head-of-line penghantaran silang strim yang disebabkan oleh strim bait tersusun tunggal TCP. Ia tidak menjadikan kehilangan paket bebas kos.”

Analisis Mendalam Langkah demi Langkah

Langkah 1: Cari kedudukan "head" dalam barisan gilir tertentu

Setiap masalah head-of-line mempunyai bentuk yang sama: kerja yang lebih awal belum memenuhi syarat penghantarannya, jadi kerja kemudian tidak dapat melepasinya walaupun ia sudah sedia. Dalam temu duga, namakan objek yang sedang disusun.

Pempaipan HTTP/1.1 boleh menghantar berbilang permintaan tanpa menunggu, tetapi respons mesti dikembalikan mengikut susunan permintaan. Respons pertama yang lambat menghalang respons kemudian daripada dihantar terlebih dahulu. Itu adalah kekangan susunan mesej HTTP. HTTP/2 menambah pembingkaian binari, pemultipleksan, dan strim bebas. Pelayan boleh menyelang-selikan bingkai untuk A dan B, jadi B tidak perlu menunggu respons HTTP penuh A.

HTTP/2 masih lazimnya membawa setiap strim melalui satu sambungan TCP. TCP mendedahkan satu strim bait tersusun yang boleh dipercayai dan tidak mengetahui bait mana kepunyaan strim A atau B HTTP/2. Oleh itu, HTTP/2 menghapuskan satu kekangan susunan sambil kekal berada di belakang satu sempadan susunan tunggal pada lapisan di bawahnya.

Langkah 2: Dapatkan sekatan silang strim HTTP/2 daripada garis masa kehilangan

Andaikan penghantar menulis julat berikut ke satu sambungan TCP. Nombor-nombor ini wujud hanya untuk menggambarkan senario temu duga ini:

text
TCP bytes 0..999       -> HTTP/2 stream A frame, lost
TCP bytes 1000..1499   -> HTTP/2 stream B frame, received
TCP bytes 1500..1999   -> HTTP/2 stream B frame, received

Timbunan TCP penerima boleh menimbal dua julat yang tidak mengikut susunan dan menghantar perakuan (acknowledgments), tetapi jujukan bait yang kelihatan kepada aplikasi yang berterusan masih terhenti sebelum jurang pada 0. Penghurai HTTP/2 tidak dapat melihat bingkai selepas bait 1000, tidak dapat mengesahkan bahawa ia milik B, dan tidak dapat menghantar B ke atas. Penghantaran hanya bersambung selepas bait 0..999 dihantar semula dan mengisi jurang tersebut.

HTTP/2 tidak memerlukan A untuk selesai terlebih dahulu. Penghantaran tersusun di seluruh sambungan oleh TCP yang menghentikan B. Menukar keutamaan HTTP/2 atau penyelang-selian bingkai tidak boleh memintas jurang bait TCP yang sedia ada.

Langkah 3: HTTP/3 mengecilkan sempadan susunan daripada sambungan kepada strim

HTTP/3 berjalan melalui QUIC. Setiap permintaan dan respons menggunakan strim QUIC dwiarah yang dimulakan oleh klien, dan bingkai HTTP/3 bergerak pada strim yang sepadan. Bingkai STREAM QUIC mengandungi ID strim dan ofset relatif strim. Penerima memasang semula setiap strim secara berasingan dan bukannya membina semula satu strim bait aplikasi yang merangkumi semua permintaan terlebih dahulu.

text
QUIC packet 20 -> stream A, offsets 0..999, lost
QUIC packet 21 -> stream B, offsets 0..499, received and deliverable to B
QUIC packet 22 -> stream B, offsets 500..999, received and deliverable to B

Strim A mempunyai jurang ofset dan dijeda. Strim B mempunyai ofset yang berterusan dan boleh dihantar. QUIC masih melakukan pemulihan kehilangan, tetapi data yang dihantar semula dimasukkan ke dalam paket QUIC yang baharu; protokol tidak memerlukan paket asal kembali pada kedudukan asalnya.

"Dibina berasaskan UDP" hanya menerangkan substrat datagram QUIC. QUIC sendiri melaksanakan penghantaran semula yang boleh dipercayai, penghantaran tersusun dalam strim, kawalan kesesakan, kawalan aliran, dan keselamatan sambungan. Mengatakan "UDP tidak boleh dipercayai, jadi ia tidak boleh menyekat" tidak menerangkan kebolehpercayaan mahupun memadankan tingkah laku QUIC.

Langkah 4: Nyatakan dengan tepat data manakah yang masih disekat oleh kehilangan paket

HTTP/3 mengasingkan pada peringkat strim, bukan pada peringkat paket fizikal. Satu paket QUIC boleh mengandungi berbilang bingkai STREAM. Jika paket yang hilang membawa data yang belum pernah dilihat sebelumnya untuk A dan B, kedua-dua strim memperoleh jurang ofset mereka sendiri dan menunggu data yang sepadan dihantar semula. Strim C yang tiada data dalam paket tersebut boleh diteruskan.

Walaupun paket yang hilang hanya mengandungi A, A masih menunggu. HTTP/3 mengurangkan jejari letupan (blast radius) kegagalan; ia tidak dapat menyediakan data yang hilang begitu sahaja. "HTTP/3 tiada sekatan head-of-line langsung" adalah terlalu umum. Jawapan yang tepat menyatakan bahawa kehilangan satu strim tidak lagi bertukar menjadi kelewatan penghantaran untuk semua strim melalui strim bait tersusun TCP tunggal.

Penutupan sambungan, kegagalan laluan, dan kunci yang tidak tersedia kekal sebagai peristiwa seluruh sambungan dan menjejaskan setiap strim. Pengasingan kehilangan paket silang strim tidak menafikan kegagalan tersebut.

Langkah 5: Asingkan kebebasan penghantaran daripada kebebasan prestasi

Kawalan kesesakan QUIC biasanya beroperasi bagi setiap laluan, bukan dengan satu tetingkap kesesakan bagi setiap strim. Strim pada sambungan yang sama berkongsi belanjawan untuk bait dalam penerbangan (in flight). Selepas mengesan kehilangan, pengawal kesesakan boleh mengurangkan tetingkap tersebut. B mungkin kekal boleh dihantar manakala data masa hadapannya tiba dengan lebih perlahan.

Kekalkan kesimpulan ini secara berasingan:

SoalanHasil HTTP/3
Selepas A kehilangan paket, bolehkah data B yang telah lengkap dihantar?Ya. Ia tidak perlu menunggu jurang bait A.
Bolehkah kehilangan A menjejaskan daya pemprosesan (throughput) atau masa penyelesaian masa hadapan B?Ya. Kawalan kesesakan yang dikongsi dan kapasiti laluan masih boleh memberi kesan.

QUIC juga mempunyai kawalan aliran peringkat sambungan dan peringkat strim. Kehabisan kredit penerimaan sambungan boleh menghentikan berbilang strim, manakala kehabisan kredit satu strim hanya menghentikan strim tersebut. Dalam temu duga, asingkan kawalan aliran, yang melindungi penimbalan dan penggunaan penerima, daripada kawalan kesesakan, yang mengawal beban dalam rangkaian.

Langkah 6: QPACK boleh menghasilkan sekatan terkawal melalui kebergantungan pengepala

HPACK HTTP/2 boleh bergantung pada pengangkutan tersusun dalam satu sambungan. Strim HTTP/3 tidak mempunyai susunan menyeluruh, jadi QPACK memisahkan kemas kini jadual dinamik daripada strim permintaan. Jika blok pengepala merujuk masukan jadual dinamik yang belum dimiliki oleh penerima, penyahkodan pengepala pada strim permintaan itu menunggu sehingga Required Insert Count tersedia.

Ini adalah sekatan daripada kebergantungan pemampatan, bukannya sekatan penghantaran silang strim TCP. HTTP/3 mengehadkan bilangan kemungkinan strim yang disekat dengan SETTINGS_QPACK_BLOCKED_STREAMS. Pengekod juga boleh mengelakkan sekatan dengan hanya merujuk masukan dinamik yang diperakui, menukarkan kecekapan pemampatan untuk risiko sekatan yang lebih rendah.

Ini adalah contoh balas yang berguna. Selepas pengangkutan mendedahkan strim bebas, protokol aplikasi masih boleh menghasilkan masa menunggu dengan menambah kebergantungan silang strim. Jawapan yang tepat menyatakan sekatan yang manakah dihapuskan oleh HTTP/3 dan kebergantungan eksplisit manakah yang masih kekal.

Langkah 7: Bandingkan alternatif dan keadaan operasinya

HTTP/2 masih boleh memenuhi sasaran pada rangkaian dengan kehilangan rendah, dengan infrastruktur yang matang, atau di mana laluan UDP tidak boleh dipercayai. Jangan membuat kesimpulan bahawa HTTP/3 sentiasa lebih pantas semata-mata daripada nombor versinya. Pelancaran HTTP/3 juga memerlukan sokongan klien dan pinggir (edge), kebolehcapaian UDP, sandaran sambungan, kebolehcerapan, dan pemeriksaan kos sumber.

Membuka beberapa sambungan TCP HTTP/2 boleh mengehadkan satu kehilangan TCP kepada permintaan pada satu sambungan sahaja. Ia juga menambah persediaan sambungan, keadaan TLS, penimbalan, dan pengawal kesesakan yang bersaing, di samping melepaskan sebahagian daripada pemultipleksan sambungan tunggal. Ia merupakan pertukaran kompromi kejuruteraan (tradeoff), bukannya pengganti yang setara untuk semantik strim HTTP/3.

"Menambah ID strim pada TCP" akan mengubah antara muka strim bait tersusun yang telah lama didedahkan oleh TCP kepada aplikasi dan memerlukan keserasian sistem pengendalian, middlebox, dan penggunaan. QUIC menggunakan semantik pengangkutan termultipleks selamat yang baharu dalam ruang pengguna melalui UDP, membolehkan evolusi yang lebih pantas. Ia masih melaksanakan kebolehpercayaan dan kawalan kesesakan.

Langkah 8: Reka bentuk eksperimen yang membuktikan pengasingan silang strim

Dalam persekitaran ujian yang dibenarkan, sediakan beberapa sumber serentak bebas yang cukup besar untuk merangkumi berbilang paket. Tetapkan pelayan, kandungan, RTT, lebar jalur, dan model kehilangan secara malar. Jalankan HTTP/2 dan HTTP/3 berulang kali dan rekod:

  1. Protokol yang dirundingkan, tidak termasuk sandaran HTTP/3.
  2. Bila kehilangan dan penghantaran semula berlaku dan strim mana yang terjejas.
  3. Masa bait pertama dan masa penyelesaian bagi setiap strim, bukan hanya jumlah masa halaman keseluruhan.
  4. Isyarat tetingkap kesesakan, kredit kawalan aliran, dan strim tersekat QPACK.
  5. Masa pemprosesan pelayan, tidak termasuk kebergantungan aplikasi dan pembentukan barisan gilir.

Tangkapan paket disulitkan yang biasa boleh menunjukkan pemasaan paket dan petunjuk kehilangan tetapi mungkin tidak membina semula pemetaan strim HTTP/3 secara langsung. qlog klien atau pelayan adalah lebih baik untuk mengaitkan paket QUIC, bingkai STREAM, pemulihan, dan keadaan kesesakan. Jika HTTP/3 tidak lebih pantas, tanya dahulu sama ada larian tersebut mencetuskan sekatan TCP silang strim HTTP/2, sama ada UDP dikekang, sama ada kos CPU atau jabat tangan mendominasi, atau sama ada kerja pelayan yang menjadi hambatan (bottleneck).

Contoh Jawapan Berkualiti Tinggi

“Saya akan mengasingkan lapisan sekatan terlebih dahulu. Pempaipan HTTP/1.1 mempunyai kekangan susunan respons. HTTP/2 memultiplekskan bingkai untuk strim A dan B, jadi ia menghapuskan masalah susunan mesej HTTP tersebut. Tetapi strimnya lazimnya berkongsi satu sambungan TCP, dan TCP mendedahkan satu strim bait tersusun yang boleh dipercayai.

Jika bait TCP yang mengandungi bingkai A hilang, penerima boleh menimbal bait kemudian yang mengandungi bingkai B, tetapi TCP tidak dapat menghantar bait kemudian tersebut kepada HTTP/2 sehinggalah jurang itu diisi. Oleh itu, B terhenti disebabkan oleh kehilangan A. Itulah sekatan head-of-line TCP silang strim dalam HTTP/2.

HTTP/3 memetakan permintaan kepada strim QUIC dwiarah yang bebas. Bingkai STREAM QUIC mengandungi ID strim dan ofset relatif strim, jadi penerima memasang semula bagi setiap strim. Data A yang hilang menyebabkan A menunggu penghantaran semula, tetapi B boleh diteruskan pada bila-bila masa ofset B sendiri adalah berterusan. UDP hanyalah substrat QUIC; QUIC membekalkan pemulihan yang boleh dipercayai, susunan dalam strim, kawalan aliran, kawalan kesesakan, dan keselamatan.

Sempadan ini masih penting. Jika satu paket QUIC yang hilang membawa data A dan B, kedua-dua strim menunggu julat mereka yang hilang. Strim juga berkongsi tetingkap kesesakan peringkat laluan, jadi kehilangan A boleh mengurangkan daya pemprosesan masa hadapan B. Kawalan aliran sambungan, kebergantungan jadual dinamik QPACK, dan penjadualan pelayan boleh menghasilkan masa menunggu yang lain. Dakwaan yang tepat ialah HTTP/3 menghapuskan sekatan penghantaran silang strim yang disebabkan oleh susunan bait tunggal TCP. Ia tidak menghapuskan pemulihan dalam strim atau setiap penggandingan prestasi.

Untuk mengesahkannya, saya akan memuatkan sumber bebas secara serentak di bawah keadaan rangkaian terkawal yang sama, membuktikan bahawa h2 atau h3 telah dirundingkan, menyuntik kehilangan yang boleh diulang, membandingkan masa penyelesaian bagi setiap strim, dan menggunakan qlog untuk membezakan jurang strim, kesesakan, kawalan aliran, dan sekatan QPACK. Itu memisahkan kesan protokol daripada pembentukan barisan gilir pelayan atau hingaran rawak.”

Kesilapan Lazim

  • Hanya menyatakan HTTP/3 menggunakan UDP → UDP tidak membekalkan semantik termultipleks QUIC yang boleh dipercayai → Terangkan bahawa QUIC melaksanakan pemulihan, susunan dalam strim, kawalan aliran, kawalan kesesakan, dan keselamatan.
  • Mengatakan HTTP/2 tidak memultiplekskan → HTTP/2 sudah pun menghapuskan susunan mesej HTTP → Cari punca masalah yang masih kekal dalam strim bait TCP yang dikongsi.
  • Menganggap bait B yang diterima sentiasa boleh dihurai → HTTP/2 membaca bait hanya selepas TCP menghantarnya mengikut susunan → Jejaki jurang TCP dan penimbal luar susunan.
  • Mengatakan HTTP/3 menghapuskan semua sekatan head-of-line → Jurang dalam strim, QPACK, dan kebergantungan aplikasi masih menunggu → Hadkan dakwaan kepada sekatan penghantaran silang strim TCP.
  • Memberikan setiap strim QUIC tetingkap kesesakannya sendiri → Kawalan kesesakan biasanya beroperasi bagi setiap laluan → Asingkan pengasingan penghantaran daripada penggandingan daya pemprosesan.
  • Mengabaikan hakikat bahawa satu paket boleh membawa beberapa strim → Satu kehilangan boleh menghasilkan jurang dalam berbilang strim → Periksa bingkai STREAM yang sebenarnya dibawa oleh paket yang hilang.
  • Mendakwa HTTP/3 sentiasa lebih pantas → Laluan, kehilangan, pelaksanaan, dan kerja pelayan menentukan hasil → Gunakan ujian berulang terkawal dan metrik bagi setiap strim.
  • Hanya melihat jumlah masa halaman keseluruhan → Nilai agregat tidak dapat membuktikan sekatan silang strim → Kaitkan protokol, kehilangan, penyelesaian strim, dan qlog.

Soalan Susulan dan Cara Menjawab

Susulan 1: Bagaimana jika paket QUIC yang hilang mengandungi data daripada kedua-dua A dan B?

A dan B masing-masing mendapat jurang dalam strim mereka sendiri dan menunggu data yang sepadan dihantar semula. QUIC mengasingkan strim lain yang datanya tidak hilang; ia tidak dapat mengekalkan data yang berada dalam paket hilang yang sama. Strim C yang tidak bergantung pada paket tersebut boleh diteruskan.

Susulan 2: Jika tetingkap kesesakan dikongsi, adakah B benar-benar "tidak terjejas"?

Jawab dalam dua dimensi. Data B yang berterusan boleh dihantar tanpa menunggu penghantaran semula A. Kehilangan masih boleh mencetuskan kawalan kesesakan yang dikongsi dan menyebabkan data masa hadapan B tiba kemudian. Yang pertama ialah ketepatan penghantaran; yang kedua ialah penggandingan prestasi.

Susulan 3: Adakah QPACK memperkenalkan semula sekatan head-of-line?

Ia boleh menghasilkan kelewatan penyahkodan pengepala yang terkawal. Strim permintaan menunggu apabila blok pengepalanya merujuk masukan jadual dinamik yang belum tiba. Itu bukanlah satu jurang bait TCP yang merebak ke semua strim. Penerima mengisytiharkan had strim tersekat, dan pengekod boleh mengelakkan rujukan yang tidak diperakui dengan menerima kecekapan pemampatan yang lebih rendah.

Susulan 4: Bolehkah beberapa sambungan TCP HTTP/2 menyelesaikan masalah ini?

Ia boleh mengehadkan satu kehilangan TCP kepada permintaan pada satu sambungan sahaja. Setiap sambungan juga menanggung kos persediaan, TLS, penimbalan, dan keadaan kesesakan, dan berbilang pengawal bersaing untuk laluan yang sama. Keputusan bergantung pada penggunaan semula, susun atur asal (origin layout), dan keadaan rangkaian; ia bukan pengganti percuma yang setara dengan strim QUIC.

Susulan 5: Mengapa tidak menambah ID strim terus ke TCP?

Tindakan itu akan mengubah antara muka strim bait tersusun tunggal TCP yang telah lama wujud dan akan menghadapi isu keserasian sistem pengendalian, middlebox, dan penggunaan. QUIC melaksanakan semantik pengangkutan termultipleks selamat yang baharu dalam ruang pengguna melalui UDP, mengurangkan kekangan evolusi tersebut. Ia masih menyediakan kebolehpercayaan dan kawalan kesesakan; ia mengubah unit penghantaran.

Susulan 6: Ujian terkawal tidak menunjukkan sebarang peningkatan kelajuan HTTP/3. Adakah teorinya salah?

Tidak. Jika larian tersebut tidak mencetuskan sekatan TCP silang strim HTTP/2, pengasingan strim tidak akan mendominasi jumlah masa. Periksa peralihan sandaran ke HTTP/2, kekangan UDP, penggunaan semula sambungan, kos CPU pelaksanaan, algoritma kesesakan, dan pembentukan barisan gilir pelayan. Buktikan tingkah laku protokol dengan bukti penghantaran bagi setiap strim dan buat dakwaan prestasi hanya di bawah keadaan yang dinyatakan dan boleh diulang.

Sumber awam

Soalan berkaitan