传输层协议具有什么功能?(传输层协议主要有哪些)

来源:网络技术联盟站 

你好,这里是网络技术联盟站。

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

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

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

传输层协议具有什么功能?(传输层协议主要有哪些)

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

目录:

  • 一、背景

  • 二、什么是QUIC?

  • 三、QUIC的发展历程

  • 四、QUIC 协议的基本功能

  • 五、QUIC 协议的核心特性

    • 5.1 0-RTT 连接建立

    • 5.2 无队头阻塞的多路复用

    • 5.3 无歧义重传

  • 六、QUIC数据包

    • 6.1 头部(Header)

    • 6.2 数据(Data)

    • 6.3 一些常见的数据帧类型

  • 七、QUIC 协议优势

    • 7.1 减少连接时间

    • 7.2 处理数据包丢失

    • 7.3 稳定的连接

    • 7.4 灵活性和开发容易

  • 八、QUIC协议的缺点

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

    • 8.2 兼容性问题

    • 8.3 传输速率较低

    • 8.4 故障排除困难

    • 8.5 需要保持最新状态

  • 九、QUIC 协议应用场景

    • 9.1 实时 Web 和移动应用程序

    • 9.2 物联网设备通信

    • 9.3 车联网和联网汽车

    • 9.4 云计算

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

  • 十、谁在使用 QUIC?

    • 10.1 QUIC 协议与 Web 浏览

    • 10.2 主要采用者

    • 10.3 当前的生态系统

一、背景

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

传输层协议具有什么功能?(传输层协议主要有哪些)

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

  1. 前向纠错 (FEC): 这个功能最初采用了一种奇偶校验的方案,但它在灵活性和可实施性方面存在问题,因此无法满足不同需求。奇偶校验的方案被认为效果不佳,而且该功能的维护成本远高于其潜在好处。

  2. ACK 熵: 这一功能旨在保护发送方免受 ACK 欺骗攻击的影响。由于所有的流量都已加密,任何 ACK 信息必须由连接的一方发送。然而,后来删除了 ACK 熵功能,因为它所防范的攻击影响相对有限,并且引入了复杂的代码和协议层面的问题。

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

二、什么是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协议的基本功能包括:

  1. 独立的逻辑流: QUIC允许在单个连接上并行传输多个逻辑数据流。每个数据流都是独立管理的,这意味着一个数据流的延迟或中断不会影响其他数据流的传输。这有助于提高网络效率,特别是在处理多个请求和响应时。

  2. 一致的安全性: QUIC提供端到端的安全性,所有数据在传输过程中都经过加密。默认情况下,QUIC使用TLS 1.3来建立安全连接,确保数据的机密性和完整性。这有助于保护通信免受窃听和篡改。

  3. 低延迟: QUIC旨在减少网络通信的延迟。它采用快速的连接建立过程,减少了握手时间,并通过多路复用和快速重传等机制降低了数据传输的延迟。这对于实时应用程序和减少页面加载时间非常重要。

  4. 可靠性: QUIC提供可靠的数据传输,确保数据的完整性和准确性。它具有丢包恢复和重传机制,以应对网络中可能发生的数据包丢失或损坏情况。这有助于防止数据损坏和丢失。

  5. 避免HOL(Head-of-Line)阻塞: QUIC通过允许多个数据流在单个连接上独立传输,解决了HOL阻塞问题。这意味着即使一个数据流遇到问题,其他数据流仍然可以继续传输,而不会受到影响。这有助于提高整体效率和性能。

传输层协议具有什么功能?(传输层协议主要有哪些)
多路传输

五、QUIC 协议的核心特性

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

传输层协议具有什么功能?(传输层协议主要有哪些)

5.1 0-RTT 连接建立

  • 0-RTT:0 Round-Trip Time
  • 0-RTT 是 QUIC 协议中的一项关键功能,它旨在降低连接建立时的延迟。传统的 TCP 连接需要经过三次握手(SYN,SYN-ACK,ACK)才能建立连接,而每个往返时间(Round-Trip Time,RTT)都会增加延迟。在某些情况下,这可能导致不必要的等待时间。
  • QUIC 的 0-RTT 特性允许客户端在连接初始化过程中同时发送数据,而无需等待握手完成。这是通过在第一次连接中包含加密后的应用程序数据实现的。这种方式使得在建立连接后立即发送数据成为可能,从而显著减少了初始请求的延迟。这对于移动应用、网页加载速度和实时通信非常重要,因为它可以加速用户体验。
传输层协议具有什么功能?(传输层协议主要有哪些)

5.2 无队头阻塞的多路复用

  • 多路复用是 QUIC 的另一个核心特性,旨在解决传统 HTTP/1.1 和 HTTP/2 中存在的队头阻塞问题。在传统的 HTTP 中,如果某个请求的响应出现延迟或丢失,它将阻塞后续请求的处理,从而导致页面加载速度变慢。
  • QUIC 允许多个逻辑数据流通过单个连接并行传输。每个数据流都有其独立的流量控制和优先级,这意味着一个数据流的延迟不会影响其他数据流。这提高了网络效率,允许快速响应多个请求,从而改善了用户体验。这对于现代网站、应用程序和多媒体流式传输非常重要。
传输层协议具有什么功能?(传输层协议主要有哪些)
队头阻塞

5.3 无歧义重传

  • 无歧义重传是 QUIC 的重要特性,用于确保数据的可靠传输。在不稳定的网络环境中,数据包可能会丢失或损坏,因此需要一种机制来恢复丢失的数据而不引入重复数据。
  • QUIC 使用序列号来唯一标识数据包,并在接收方接收到数据包后发送确认。如果发送方没有收到确认,它会重新发送数据包,但只会重传丢失的数据包。这种机制确保了可靠的数据传输,而不会引入不必要的重传,从而提高了效率。
  • 此外,QUIC 还支持拥塞控制,它可以根据网络条件调整数据包的发送速率,以避免网络拥塞。这有助于保持网络的稳定性和性能。

六、QUIC数据包

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

传输层协议具有什么功能?(传输层协议主要有哪些)

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

6.1 头部(Header)

  • 标志位(Flags): 标志位用于指示数据包的类型、状态以及其他相关信息。不同的标志位组合可以表示不同类型的数据包,例如,是否是初始连接请求、数据包是否需要被确认等。
  • 连接ID(Connection ID): 连接ID用于唯一标识一个连接。它是在QUIC连接建立时生成的,并在整个连接期间保持不变。
  • 版本号(Version): 版本号表示使用的QUIC协议版本。这是为了确保通信双方使用相同版本的协议,以保持兼容性。
  • 包编号(Packet Number): 包编号表示数据包在连接中的顺序。每个数据包都有一个唯一的包编号,用于在接收端进行数据包的排序和重组。

6.2 数据(Data)

  • 数据部分通常被拆分成多个小的数据帧(Frame)。每个数据帧都具有以下属性:
  • 类型(Type): 数据帧的类型标识了它的用途,例如PING帧、ACK帧、RESET_STREAM帧等。
  • 长度(Length): 长度字段表示数据帧的大小,以便接收端知道要接收多少数据。
  • 负载(Payload): 负载包含实际的数据内容。
传输层协议具有什么功能?(传输层协议主要有哪些)

6.3 一些常见的数据帧类型

  1. PING帧: 用于测试连接的可用性。PING帧不包含负载,只是用于确认连接是否存活。

  2. ACK帧: 用于确认收到的数据包。它包含有关已收到的数据包的信息,以确保数据的可靠传输。

  3. RESET_STREAM帧: 用于重置特定数据流的状态。当一个数据流需要被中断或重新开始时,可以使用RESET_STREAM帧。

  4. STOP_S

    原创文章,作者:网络技术联盟站,如若转载,请注明出处:https://www.sudun.com/ask/35084.html

(0)
网络技术联盟站's avatar网络技术联盟站
上一篇 2024年4月13日 下午12:48
下一篇 2024年4月13日 下午12:50

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注