多路复用
来源:7-3 探索式的实践-SPDY

enenhaha
2021-07-20
多路复用是怎么解决队头阻塞的问题呢?
写回答
1回答
-
风落几番
2021-07-30
HTTP的队头阻塞是因为HTTP管道化要求服务端必须按照请求发送的顺序返回响应,那如果一个响应返回延迟了,那么其后续的响应都会被延迟,直到队头的响应送达。那么我们就用HTTP2解决。HTTP2不使用管道化的方式,而是引入了帧、消息和数据流等概念,每个请求/响应被称为消息,每个消息都被拆分成若干个帧进行传输,每个帧都分配一个序号。每个帧在传输是属于一个数据流,而一个连接上可以存在多个流,各个帧在流和连接上独立传输,到达之后在组装成消息,这样就避免了请求/响应阻塞。
当然,即使使用HTTP2,如果HTTP2底层使用的是TCP协议,仍可能出现TCP队头阻塞。
针对TCP队头阻塞,我们只好考虑在未来HTTP3使用UDP的方式来改进。所以说,多路复用非管道化,能够解决的主要是HTTP队头阻塞的问题~
00
相似问题