TCP的队首阻塞

TCP的队首阻塞是HTTP/2无法解决的传输层问题,当发生丢包时,整个TCP连接会暂停,导致后续内容等待。HTTP/2通过多路复用减轻但并未消除该问题。解决队首阻塞的方法包括使用QUIC协议(不依赖TCP)和SCTP(多流特性)。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

紧接上篇博客HTTP/2 并没有解决 TCP 的队首阻塞问题,它仅仅是通过多路复用解决了以前 HTTP1.1 管道化请求时的队首阻塞问题。


TCP发生队首阻塞的原因:

HTTP/2虽然可以解决http队首阻塞问题,但是 TCP 层面的队首阻塞是 HTTP/2 无法解决的(HTTP 只是应用层协议,TCP 是传输层协议),TCP 的阻塞问题是因为传输阶段可能会丢包TCP是一个按序传输的通道,一旦丢包就会等待重新发包,阻塞后续内容传输

TCP的队首阻塞问题,我们经常会在http2协议中去讨论因为http2中TCP通道很少,可能只有一个



在http2中丢包了会怎么办?

采用HTTP/2时,浏览器一般会在单个TCP连接中创建并行的几十个乃至上百个传输。如果HTTP/2连接双方的网络中有一个数据包丢失,或者任何一方的网络出现中断,整个TCP连接就会暂停,丢失的数据包需要被重新传输。因为TCP是一个按序传输的通道,因此如果其中一个点丢失了,通道上之后的内容就都需要等待。

随着丢包率的增加,HTTP/2的表现越来越差。在2%的丢包率(一个很差的网络质量)中,测试结果表明HTTP/1用户的性能更好,因为HTTP/1一般有六个TCP连接哪怕其中一个连接阻塞了,其他没有丢包的连接仍然可以继续传输。



TCP的队首阻塞介绍:

TCP在不可靠的信道上实现了可靠的网络传输。基本的分组错误检测与纠正、按序交付、丢包重发,以及保证网络最高效率的流量控制、拥塞控制和预防机制,让TCP成为大多数网络应用中最常见的传输协议。

虽然TCP

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

codingWeb

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值