5 ms·
"But HTTP/2 uses TCP as its transport, so all of its streams can be blocked when a single TCP packet is lost-a problem called head-of-line blocking." But see h
by textmode 8y ago
"But HTTP/2 uses TCP as its transport, so all of its streams can be blocked when a single TCP packet is lost-a problem called head-of-line blocking."
But see https://datatracker.ietf.org/wg/httpbis/charter/ https://datatracker.ietf.org/wg/httpbis/charter/
"It is expected that HTTP/2.0 will: ... Address the "head of line blocking" problem in HTTP."
Dislaimer: I am a longtime (satisfied) HTTP pipelining user for retrieving multiple resources from single domain over single connection and a CurveCP user since 2011 on own network. Never had any problems with HOL blocking that I am aware of, but I am only a dumb end user and wish to learn what I might be missing.
- charleslmunger 8y agoDifferent kind of head of line blocking. In HTTP it refers to a technique where a client sends multiple requests without waiting for their respective responses. However, the server has to send the responses in order - so if the client makes request A and request B, the response for B can't be delivered until A's response is delivered. So if A's response is large, B will be delayed. In HTTP/2, it's all multiplexed - so the server can interleave responses.
- euyyn 8y agoMy understanding is that was head of line blocking "at the HTTP level": When multiple HTTP/1.1 requests shared a TCP connection, the responses had to come in order, so if the first response was slow, all others were blocked behind it. The authors instead talk of the analogous problem at the TCP level, which I don't remember enough of TCP to comment on.
- zeronone 8y agoIt is about TCP Head of line blocking. For more check https://hpbn.co/building-blocks-of-tcp/#head-of-line-blocking https://hpbn.co/building-blocks-of-tcp/#head-of-line-blockin...
- eeZah7Ux 8y agohead of line blocking in HTTP and TCP are different issues. The latter impacts HTTP/2.0 as well, and it's an important selling point for QUIC.
- manigandham 8y agoHTTP/2 is a higher level protocol that runs on top of the TCP protocol. HTTP/2 connection allows multiple assets to be delivered simultaneously and out of order on the same TCP connection, but the underlying packets in the TCP connection can still be held up by ordering.