b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

udp如何保证可靠传输 当我们在谈论HTTP队头阻塞时,我们在谈论什么?

电脑杂谈  发布时间:2018-02-17 13:27:56  来源:网络整理

Udp服务器主动给客户端_udp如何保证可靠传输_udp接收

近来访问网站,明显感觉支持 HTTP/2 的网站越来越多了,对行业来说是个好趋势。 HTTP/2 的RFC虽然写的很厚,但是总结起来就做了以下几件事:

通过TCP多路复用降低延迟;

单个TCP连接上允许乱序 request-response ,解决队头堵塞问题;

实现层面上,大部分浏览器要求 HTTP/2 必须开启TLS,一定程度上解决数据安全问题。

udp如何保证可靠传输_Udp服务器主动给客户端_udp接收

其中,队头阻塞问题真的被解决了吗?

HTTP/1.1 通过pipelining管道技术实现一次性发送多个请求,以期提高吞吐和性能,如上图中的序列2。然而,这种技术在接收响应时,要求必须按照发送请求的顺序返回。如果,第一个请求被堵塞了,则后面的请求即使处理完毕了,也需要等待,如上图中的序列3。

那么, HTTP/2 是怎么解决这个问题的呢?那就是数据分帧:多个请求复用一个TCP连接,然后每个 request-response 都被拆分为若干个frame发送,这样即使一个请求被阻塞了,也不会影响其他请求,如上图序列4所示。问题完美解决了?准确说,只解决了一部分。

udp如何保证可靠传输_udp接收_Udp服务器主动给客户端

如果队头阻塞的粒度是 http request 这个级别,那么 HTTP/2 over TCP 的确解决了 HTTP/1.1 中的问题。但是, HTTP/2 目前实现层面上都是基于TCP(没错,HTTP从来没有说过必须通过TCP实现,你可以用它其他传输协议实现哟),因此 HTTP/2 并没有解决数据传输层的对头(包)阻塞问题。

如上图所示,当第一个数据包发生丢包的时候,TCP协议会发生阻塞会进行数据重传。udp如何保证可靠传输虽然TCP有快速重传等机制来缓解这个问题,但是只能是缓解。无法完全避免。

应用层无法解决传输层的问题。因此要完全解决队头阻塞问题,需要重新设计和实现传输层。目前而言,真正落地在应用的只看到Google的 QUIC . 它的原理简单讲,就是使用UDP实现了一个可靠的多路复用传输层。我们知道UDP是面向数据报文的,数据包之间没有阻塞约束,QUIC就是充分利用这个特性解决传输层的队头阻塞问题的。当然,QUIC的协议实现有非常多的细节,而这方面Google确实做得非常好,如果你想进一步了解,可以关注他们的 开源实现 。udp如何保证可靠传输

HTTP/2 over TCP (我们接触最多的HTTP/2)解决了http request级别的队头阻塞问题

HTTP/2 over QUIC 解决了传输层的队头阻塞问题,是我们理解的真正解决了该问题。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-82023-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 鲁真公
        鲁真公

        SB编辑拉森号是宙斯盾驱逐舰9000吨排水量中国的兰州号台州号才7000吨排水量

      • 宋休公
        宋休公

        各路黑

      每日福利
      热点图片
      拼命载入中...