

http中的队头阻塞(Head of line blocking)多路复用(Multiplexing)
source link: https://www.jianshu.com/p/450cc7320e30
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

http中的队头阻塞(Head of line blocking)多路复用(Multiplexing)
-
最近在网上常看到这些词汇:Head of line blocking、Multiplexing。今天借用一张图,稍微理解一下。
http请求 - 图中第一种请求方式,就是单次发送request请求,收到response后再进行下一次请求,显示是很低效的。
- 于是http1.1提出了管线化(pipelining)技术,就是如图中第二中请求方式,一次性发送多个request请求。
- 然而pipelining在接收response返回时,也必须依顺序接收,如果前一个请求遇到了阻塞,后面的请求即使已经处理完毕了,仍然需要等待阻塞的请求处理完毕。这种情况就如图中第三种,第一个请求阻塞后,后面的请求都需要等待,这也就是队头阻塞(Head of line blocking)。
- 为了解决上述阻塞问题,http2中提出了多路复用(Multiplexing)技术,Multiplexing是通信和计算机网络领域的专业名词。http2中将多个请求复用同一个tcp链接中,将一个TCP连接分为若干个流(Stream),每个流中可以传输若干消息(Message),每个消息由若干最小的二进制帧(Frame)组成。也就是将每个request-response拆分为了细小的二进制帧Frame,这样即使一个请求被阻塞了,也不会影响其他请求,如图中第四种情况所示。
- 上面说的情况都是基于TCP,因为TCP是可靠的传输协议,如果一个TCP连接中的多个请求有一个请求丢包了,那么就会进行重传。而谷歌提出的QUIC(Quick UDP Internet Connections),则是基于UDP+Http2的一个实验性的快速传输协议,UDP是面向数据报文的,所以遇到丢包的情况也不会进行重传,从而进一步减少网络延迟、解决队头阻塞问题。
Recommend
-
60
-
51
多路复用其实并不是什么新技术,它的作用是在一个通讯连接的基础上可以同时进行多个请求响应处理。对于网络通讯来其实不存在这一说法,因为网络层面只负责数据传输;由于上层应用协议的制订问题,导致了很多传统服务
-
41
-
29
什么是多路复用IO 多路复用IO (IO multiplexing) 是指内核一旦发现进程指定的一个或者多个IO条件准备读取,它就通知该进程。在Linux系统中,常用的 多路复用IO 手段有 select 、
-
44
什么是IO io是数据的接收和发送操作,linux进程无法直接操作io设备,需要通过系统调用请求内核来完成io操作,内核为每个设备维护一个缓冲区。用户进程发送操作的一个完整io包括两部分:用户空间将数据发送到内核,内核将数据发...
-
48
在高并发环境下,web 服务器需要处理成千上万的客户端连接,如何最大限度发挥单台机器的性能,使之在处理大量连接时仍保持较低的负载,这是个很重要的课题。本文介绍下解决此类问题的一种很经典的方式:I/O 多路复用。 传统 I/O为了了...
-
48
导言 Go 基于 I/O multiplexing 和 goroutine 构建了一个简洁而高性能的原生网络模型(基于 Go 的I/O 多路复用 netpoll ),提供了 goroutine-per-connection 这样简单的网络编程模式。在这种模式下...
-
18
Unix五种IO模型 [1] blocking IO – 阻塞IO [2] nonblocking IO – 非阻塞IO [3] IO multiplexing – IO多路复用 [4] signal driven IO – 信号驱动IO [5] asynchronous IO – 异步IO ...
-
11
类型安全、多路复用的 MobX + React 路由器JavaScript话题下的优秀回答者路由器是前端生态中非常常用,通常非常成熟的一个组成部分。于是为“什么还要造这么一个轮子”成了必须要回...
-
7
(译)Robin Marx: QUIC 和 HTTP/3 队头阻塞的细节 作者:Robin Marx,原文:
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK