Ответ 1
HOLB имеет несколько причин, одна из которых - повторная передача пакетов, но не относится к HTTP и SPDY. Тот, который имеет отношение к HTTP и SPDY, заключается в том, что в HTTP 1.x требуется несколько запросов на запрос.
Представьте, что HTTP-клиент, отправляющий на сервер 2 запросы по одному и тому же TCP-соединению, и что первый ответ "большой" по длине контента, а второй ответ "мал" в длине контента.
Из-за характера протокола HTTP 1.x второй ответ должен дождаться завершения первого ответа. Второй ответ заблокирован первым ответом.
При использовании мультиплексированных протоколов, таких как SPDY и HTTP 2, этот тип HOLB не существует, потому что второй "маленький" ответ может прийти к клиенту задолго до первого "большого" ответа (они могут даже чередоваться).
Диаграмма вопроса на который вы ссылались выше, объясняет это графически.
Илья в своем ответе не ссылался на пакеты TCP, а на "пакеты" HTTP, когда говорил, что они могут быть не в порядке. Представьте себе "пакет" из заголовков HTTP, а "пакет" из данных POST будет загружен на сервер (или в ответ "пакеты" , сделанные из данных, которые будут загружены клиенту). В HTTP 1.x эти "пакеты" HTTP должны быть в порядке (сначала все "пакеты" HTTP "запроса 1", затем все "пакеты" HTTP запроса 2 или сначала все "пакеты" HTTP "ответа 1 и затем все HTTP-пакеты" response2", в то время как в SPDY и HTTP 2 они могут быть не в порядке или даже чередуются.
Отсутствие такого типа HOLB в SPDY и HTTP 2 делает эти протоколы более эффективными, чем HTTP 1.x.
HOLB, вызванный повторными передачами TCP, влияет на любой протокол на основе TCP, включая мультиплексированные протоколы, такие как SPDY и HTTP 2, и дуплексные протоколы, такие как HTTP 1.x.