Before you move to HTTP/3 ...

preview_player
Показать описание
HTTP/3 is getting popular in the cloud scene but before you migrate to HTTP/3 consider its cost. I explore it here.

0:00 Intro HTTP/3 is getting popular
3:40 HTTP/1.1 Cost
5:18 HTTP/2 Cost
6:30 HTTP/3 Cost

Discovering Backend Bottlenecks: Unlocking Peak Performance

Fundamentals of Backend Engineering Design patterns udemy course (link redirects to udemy with coupon)

Fundamentals of Networking for Effective Backends udemy course (link redirects to udemy with coupon)

Fundamentals of Database Engineering udemy course (link redirects to udemy with coupon)

Follow me on Medium

Introduction to NGINX (link redirects to udemy with coupon)

Python on the Backend (link redirects to udemy with coupon)

Become a Member on YouTube

Buy me a coffee if you liked this

Arabic Software Engineering Channel

🔥 Members Only Content


🏭 Backend Engineering Videos in Order

💾 Database Engineering Videos

🎙️Listen to the Backend Engineering Podcast

Gears and tools used on the Channel (affiliates)

🖼️ Slides and Thumbnail Design
Canva


Stay Awesome,
Hussein
Рекомендации по теме
Комментарии
Автор

Will moving QUIC to kernel make a huge difference? Let us explore this..

today in QUIC the raw UDP packets are copied from kernel receive buffer to user space, then decrypted and parsed by the user process.

Because QUIC is a transport protocol it has to implement control. ACKs are sent from userspace as just another UDP packet (inside it the QUIC ACK) that is copied to kernel send buffer.

whereas if QUIC was in kernel, all this logic will be there and the only thing that will be copied to userspace is pure stream data.

i also imagine the kernel can do tricks as it does in TCP like segment coalescing to reduce header size because it has more context.

plus context switching.

i don’t know to be honest it if it will make a huge difference but all the copying back and forth can add up for sure good change.

hnasr
Автор

Yup, there's no free lunch, HTTP3 introduces cpu overhead, but that is ok, you get so much better performance at the network layer that i tis worth paying.

dario.lencina
Автор

Great video! I don't think HTTP/3 will replace the other protocols in all scenarios but it's definitely an interesting addition to the toolbox.

swedishguy
Автор

Maybe we should consider not only the time it takes to decrypt QUIC messages, but also the advantages of skipping protocol handshakes(TCP).

seonwookim
Автор

Reading one byte and than switching on it doesn't seem like a lot of "parsing" to do to decide what kind of frame header we are dealing with... even parsing http/2 headers doesn't seem like more work than what you need to do to parse http/1.1 headers? Array/table lookup seems faster than string comparision... maybe the huffman decoding is the most complex part, but I think for what you get size wise it's better than any other non-specific compression. Considering gzip and brotli are used for the body I don't see, how this part of http/2 would be the bottleneck of anything.

danieljenikovsky
Автор

That would be great to have a video on HTTP status codes. For now all info available is just that 200 is ok and 404 is not found. But no one talks about the difference between 301 and 302 for example. 304 and a lot of codes that are useful

kirillzlobin
Автор

2:30 I think it's important to understand we can push changes in the protocol through a simple browser update. Most of the time.
The real issue might be performance of UDP in kernel/hardware-offloading, etc.

autohmae
Автор

Thank you! To establish this encrypted connection should I make request to 443 port with ALPN=http3? Or it works in another way?

vladimir_v_it
Автор

I don’t share your concerns over processes performance in userspace. It’s easier to get better performance by optimization than by moving a process to kernelspace.

I’m surprised you didn’t mention the lack of QUIC support in regular modern Linux server distributions, as the OpenSSL project still hasn’t implemented it yet. No soup for you on Linux, unless you’re prepared to self-compile your crypo-libs. So that’s another reason for slow adoption.

toniferic-tech
Автор

I'm wondering if eBPF could be a solution to lower the userspace cost of the protocol...

hkupty
Автор

HTTP/3 exists
big tech: *oh yeah gimmie all of it*

Serpher
Автор

i want to know a ratio btween HTTP vs non-HTTPs such as gRPC, TCP socket, something native apps use.

taktak
Автор

great content, however the microphone picks up constant banging vibrations and it really is painful for those that are sensitive to that sort of thing, otherwise thanks!

kanemetal
Автор

I thought you can run HTTP/3 and HTTP/2 without encryption, can't you?

JacobGextrem
Автор

Considering that a budget phone has octa-core cpu nowadays which costs like 200$ and the fact that in most of the world the isp speed is still crap like 20mbs, its probably a good bargain to trade off the cpu usage. Coz atm the only bottleneck is the connection speed imo. Even in western Europe in most countries u get a 20-30mbs furthermore its expensive 🫰
While the cpu/ram cost nothing

MrJloa