QUIC协议详解:快速UDP互联网连接
4星 · 超过85%的资源 需积分: 50 56 浏览量
更新于2024-07-22
3
收藏 884KB PDF 举报
"QUIC协议设计文档"
QUIC(Quick UDP Internet Connections)是一种由Google开发的实验性传输协议,旨在解决TCP(传输控制协议)和TLS(传输层安全)在互联网上的性能问题。QUIC是在UDP(用户数据报协议)之上构建的,其目标是提供类似于TCP的可靠性,同时减少延迟和提高安全性。
**概述**
QUIC协议的设计目标是减少网络延迟,特别是首次连接建立时的延迟,提高安全性,并实现多路复用流,以提高数据传输效率。它还试图通过避免TCP的慢启动和重传机制来更有效地利用带宽。
**动机**
QUIC协议的动机主要来自于对SPDY协议的支持和改进。SPDY是Google早期提出的协议,旨在加速网页加载速度,但仍然依赖于TCP。QUIC试图解决SPDY在TCP上遇到的延迟和拥塞控制问题。
**目标**
QUIC的主要目标包括:
1. 减少连接建立时间,通常只需1个往返时间(RTT),在某些情况下甚至可以进一步减少。
2. 实现多路复用,允许在一个UDP连接上并发传输多个独立的数据流。
3. 快速重传和恢复丢失的数据包,降低因丢包造成的延迟。
4. 提供与TLS类似的加密和身份验证功能,确保安全性。
**设计选择**
QUIC没有选择使用SCTP(流控制传输协议)和DTLS(Datagram Transport Layer Security)的原因在于:
1. SCTP的连接建立时间较长,且DTLS握手过程也增加了额外的延迟。
2. SCTP和DTLS在带宽利用和丢包恢复方面效率较低。
3. QUIC采用自己的重传机制,可以更快地处理丢包情况。
**连接建立与恢复**
QUIC通过一个称为GUID(全局唯一标识符)的连接标识符来识别连接,即使经过NAT(网络地址转换)也能保持连接状态。为了防止NAT绑定过期,QUIC使用心跳包来维持连接活跃。
**API元素和概念**
QUIC API设计考虑了流的概念,其中数据被有序地发送和接收,即使这些数据流是并发的。此外,QUIC连接状态包括连接的健康状况和可用带宽信息。
**安全性**
QUIC使用TLS进行加密和身份验证,但它的握手过程被优化以减少延迟。对于重复连接,可以使用已知的密钥和状态来快速重新建立连接,通常在0 RTT内完成,偶尔可能需要1 RTT。
**连接场景**
QUIC连接分为首次连接和重复连接两种情况:
1. 首次连接:通常需要1个RTT,有时在进行服务器验证时需要2个RTT。
2. 重复连接:通常不需要RTT,除非服务器或客户端的IP地址改变,此时可能需要1个RTT进行验证,极少数情况下可能需要2个RTT。
QUIC协议通过在UDP上构建一个可靠、高效、低延迟的传输层,旨在提升互联网应用的性能和用户体验。
252 浏览量
771 浏览量
135 浏览量
252 浏览量
840 浏览量
124 浏览量
403 浏览量
点击了解资源详情
255 浏览量
chq123456
- 粉丝: 1
- 资源: 1
最新资源
- 基于YOLO神经网络的实时车辆检测代码
- TravelAdvisor
- uiGradients-Viewer-iOS::artist_palette:一个开放源代码应用程序,用于查看https上发布的渐变
- 15套动态和静态科技风光类PPT模板-共30套
- Tonite
- 正点原子精英Modbus_Master_Template.zip
- 聚合物制造:移至Polymertools monorepo
- AboutMe
- Trello克隆
- IT资讯网_新闻文章发布系统.rar
- Simple Math Trainer Game
- igloggerForSmali
- Tomate
- 4,STM32启动文件.rar
- pghoard:PostgreSQL备份和还原服务
- hw9