谷动谷力

标题: 传输层很牛逼的协议:QUIC,速度真的杠杠的! [打印本页]

作者: 鸣涧    时间: 2023-10-17 13:48
标题: 传输层很牛逼的协议:QUIC,速度真的杠杠的!
传输层很牛逼的协议:QUIC,速度真的杠杠的!
来源:网络技术联盟站


【前言】

QUIC是一项由Google设计的协议,致力于将网络通信变得更快、更高效。它代表了对网络性能的追求,旨在提供更好的用户体验,但与此同时,QUIC也带来了一系列网络安全和监控方面的挑战。

在当今数字化世界中,网络速度是一切的关键。谷歌一直在努力提高网络效率和性能,而QUIC协议正是这个使命的一部分。然而,随着QUIC的广泛采用,一些安全问题浮出水面,这引发了对网络安全和监控的重大关切。尤其令人担忧的是,大多数传统防火墙和网络设备难以有效处理QUIC流量,导致了网络安全中的一道薄弱环节。

本文将深入探讨QUIC的工作原理,以及它如何改善网络性能。同时,我们将审视QUIC对网络安全和监控的影响,以及如何解决与QUIC相关的挑战,以确保网络仍然安全可靠。在数字时代,我们必须在速度和安全之间取得平衡,QUIC协议的崛起将迫使我们重新思考这个平衡。

让我们直接开始今天的科普!

目录:


一、背景

QUIC 协议的背景可以追溯到 Google 的 gQUIC 实验,这个实验最初旨在进一步改进 HTTP/2 的性能,并将这种性能扩展到网络的安全层和传输层。这一实验代表了一项大胆而值得赞赏的尝试,因为其目标是替换传统的 HTTP 协议。2013 年,gQUIC 的首个部分开始在 Google 的服务器和 Chrome 浏览器之间传输实时数据。Google 通过 gQUIC 协议将各种 Google 服务的实时流量传送到 Chrome 客户端,随着 Google 服务从中受益,gQUIC 的应用逐渐增加。


这一早期实验的数据后来被证明对 QUIC 协议的设计和发展具有重要意义。然而,值得注意的是,早期的 gQUIC 实验中包含了两个关键的技术组件,后来通过迭代被移除:

这两个功能的去除反映出协议设计中过早的优化,随着协议的发展,这些功能变成了维护的负担,当维护成本超过潜在收益时,就被移除了。


二、什么是QUIC?

QUIC(Quick UDP Internet Connections)是一种由Google开发的协议,旨在改善网络连接的速度和可靠性。它的目标是替代当前互联网基础设施中使用的传输控制协议(TCP),并构建在用户数据报协议(UDP)之上。

QUIC采用了加密和多路复用的技术,以提供更高的安全性和更快的数据传输速度。它允许通过单个连接传输多个数据流,从而减少延迟并提高数据吞吐量。此外,QUIC还包括拥塞控制和流量控制等功能,用于管理网络拥塞情况,确保数据传输的顺畅性。

互联网工程任务组(IETF)目前正在对QUIC进行标准化,主要的Web浏览器和服务器也在逐渐采用这一协议。与传统的TCP协议相比,QUIC已经被证明可以显著减少网页加载时间和连接断开的问题,尤其在高延迟和不稳定的网络环境中表现出色,如移动网络。QUIC的发展旨在进一步提高互联网连接的性能和安全性。

从上图可以看出:

QUIC = HTTP/2 + TLS + UDP

UDP + QUIC = 传输层

QUIC,你就记住两个核心:采用UDP传输层、使用TLS 1.3协议

采用UDP传输层: QUIC 使用UDP(用户数据报协议)作为传输层协议,与传统的TCP相比,UDP减少了连接建立的延迟。TCP需要经历三次握手来建立连接,这会引入1个往返时间(1-RTT)的延迟。相比之下,QUIC的UDP传输层减少了这个握手过程,从而减少了建立连接的时间。这有助于提高网络通信的效率,尤其是对于那些对延迟要求较高的应用程序。

使用TLS 1.3协议: QUIC集成了TLS(传输层安全性)协议的最新版本,即TLS 1.3。TLS 1.3具有改进的安全性和性能特性,其中一个显著的特点是支持1-RTT和0-RTT握手。传统的TLS握手需要多个往返时间(RTT),而QUIC协议通过TLS 1.3允许客户端在TLS握手完成之前发送应用程序数据。这意味着在第一次握手时需要1-RTT,但之后,已建立连接的客户端可以使用缓存的信息来快速恢复TLS连接,只需0-1 RTT。这显著减少了建立连接的时间,使数据能够更快地传输,特别是对于重复连接的情况。


HTTPS TLS 流量与 QUIC 抓包分析




三、QUIC的发展历程

2012年:QUIC的提出

QUIC协议最早由Google公司于2012年提出。它的初衷是改进互联网通信的性能,特别是Web页面加载速度,通过减少传统TCP协议中的握手延迟等问题来实现这一目标。

2016年:IETF开始标准化QUIC

在2016年,互联网工程任务组(IETF)开始正式着手标准化QUIC协议。这标志着QUIC进入了一个更广泛的开放标准化过程,旨在确保该协议能够被广泛采用并具有互操作性。

2017年:gQUIC的部署

在2017年,Google公司开发并部署了QUIC协议的初始设计,称为gQUIC。这是QUIC的一个重要里程碑,标志着其在实际网络环境中的初步应用和测试。

2021年:RFC900发布,QUIC正式标准化

QUIC协议的正式标准化版本,即RFC900,于2021年发布。这一标准化版本的发布证实了QUIC作为一种新的传输层协议的地位,使其能够在更广泛的网络环境中得以应用和推广。

说到底:QUIC 本质上是基于 HTTP/2 构建的,但具有更快的连接建立和多路复用。它旨在减少延迟,提高性能,并更好地适应现代网络。


四、QUIC 协议的基本功能

QUIC协议的基本功能包括:

多路传输五、QUIC 协议的核心特性

QUIC 协议大概包含三大特性:



5.1 0-RTT 连接建立

5.2 无队头阻塞的多路复用

队头阻塞5.3 无歧义重传
六、QUIC数据包

QUIC数据包由两个主要部分组成:头部(Header)和数据(Data)。

以下是这两个部分的详细说明:

6.1 头部(Header)
6.2 数据(Data)
6.3 一些常见的数据帧类型
七、QUIC 协议优势



7.1 减少连接时间

QUIC协议通过一次握手来替代传统的TCP和TLS握手,从而显著减少了建立连接所需的时间。这对需要快速在线服务的应用程序和服务非常重要。


7.2 处理数据包丢失

在TCP上使用HTTP/2时,可能会受到队头阻塞的影响,这意味着一个数据包的丢失会导致后续数据包被阻塞。QUIC通过允许数据流独立到达目的地来解决了这个问题,提高了连接的性能和可靠性。


7.3 稳定的连接

QUIC支持连接迁移,允许在网络发生变化时保持连接的稳定性。即使IP地址发生变化,也可以重新建立连接,而不需要完全重新建立连接。


7.4 灵活性和开发容易

QUIC协议在应用程序级别实现,而不是在操作系统内核中,这使得它更加灵活和容易进行改进和开发。开发人员可以更容易地控制和定制协议的行为。


八、QUIC协议的缺点



8.1 增加了遭受攻击的脆弱性

QUIC协议更容易受到分布式拒绝服务(DDoS)攻击的威胁。因为它是无连接的,不需要像TCP那样进行三次握手,攻击者更容易发起反射和放大攻击,通过伪造源IP地址来淹没目标服务器,使其不可用。QUIC的无连接性使其更难以进行流量控制和访问控制,从而增加了DDoS攻击的可能性。


8.2 兼容性问题

QUIC协议相对较新,可能与某些旧设备、网络设备或防火墙不兼容。一些应用程序需要精确控制网络行为,而QUIC的新特性可能不适用于所有用例。因此,在部署QUIC时,需要考虑与现有基础设施和设备的兼容性问题。


8.3 传输速率较低

尽管QUIC被设计为提供更快速和高效的数据传输,但它的传输速率可能受到加密和身份验证机制的影响。QUIC在数据包传输方面增加了额外的开销,这可能导致较小数据包的传输速率较低,尤其是在高延迟网络中。


8.4 故障排除困难

与TCP相比,使用QUIC进行网络故障排除可能更加复杂。由于QUIC的加密和身份验证功能,诊断与数据包丢失、网络拥塞或性能问题相关的问题可能需要更高级的网络监控工具和专业知识。解决问题的难度可能增加,因为数据包内容和流量可能不可见。


8.5 需要保持最新状态

QUIC仍然处于不断发展和演进的阶段,因此可能会发生协议规范的更改和更新。使用QUIC的组织需要及时了解最新的开发和更新,以确保协议的实现始终保持最新状态,以获得最佳性能和安全性。


九、QUIC 协议应用场景

9.1 实时 Web 和移动应用程序

实时通信应用程序,如视频通话、语音聊天和即时消息,需要低延迟和可靠的数据传输。QUIC通过独立的流和拥塞控制机制,提供了快速且高效的数据传输,适用于这些应用。


9.2 物联网设备通信

物联网设备通常在受限的网络环境中运行,使用TCP或MQTT等传输协议可能导致高延迟和数据包丢失。QUIC在高延迟和丢包的网络条件下表现出色,因此适用于与物联网设备的通信,提供可靠和高效的替代方案。


9.3 车联网和联网汽车

车联网生态系统需要实时的数据交换,以提供车辆跟踪、交通管理和安全功能。QUIC的低延迟、多路复用和数据包恢复能力有助于确保车辆和基础设施之间的可靠通信,并提高车联网系统的性能。


9.4 云计算

云计算涉及通过互联网交付计算资源。QUIC可以提供低延迟和端到端加密,从而改善云应用程序的用户体验和安全性。


9.5 支付和电子商务应用程序

支付和电子商务应用程序需要安全可靠的数据传输,以保护用户的敏感信息。QUIC通过使用TLS加密和可靠的HTTP3流,为这些应用程序提供了更高的安全性和性能,同时提高了用户体验。


十、谁在使用 QUIC?

QUIC(快速 UDP 互联网连接)协议作为一种通用传输协议,正在逐渐改变互联网通信的方式。虽然它可以用于多种互联网工作流程,但目前最显著的采用领域之一是基于HTTPS的Web浏览。让我们看看谁正在使用QUIC以及它的采用情况。


10.1 QUIC 协议与 Web 浏览

QUIC最显著的应用之一是通过将Web浏览转移到QUIC来实现基于HTTPS的连接。然而,要使用QUIC,客户端和服务器都需要支持该协议。这一点在广泛采用中可能构成一定的障碍,因为目前只有少数网站已经迁移到使用HTTP/3,而HTTP/3是QUIC的后继者。


10.2 主要采用者

尽管QUIC的采用还在增长,但已经有一些主要的互联网巨头开始采用该协议。以下是一些主要的QUIC采用者:



10.3 当前的生态系统

QUIC的支持生态系统在不断增长,包括浏览器、应用程序、服务器、CDN、Web服务器、负载均衡器、社区项目和编程语言。以下是一些支持QUIC的关键组成部分:

总结


QUIC协议优势很明显,但是目前来说不太成熟,希望QUIC协议能够越来越完善、越来越安全,使用率越来越高!










欢迎光临 谷动谷力 (http://bbs.sunsili.com/) Powered by Discuz! X3.2