ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

QUIC中文文档 RFC9000中文文档人工翻译 第一章:Overview

2022-02-18 23:03:56  阅读:185  来源: 互联网

标签:中文 端点 Overview Field 文档 QUIC 数据包 连接


1.概述

​ QUIC 是一种安全的通用传输协议。文档定义了 QUIC 协议的第一个版本。它符合[QUIC不变特性]QUIC协议中与版本无关属性。QUIC 是一种面向连接的协议,它在客户端和服务器之间创建有状态的交互。QUIC 是一种面向连接的协议,它在客户端和服务器之间创建有状态的交互。

​ QUIC 握手结合了加密和传输参数的协商。 QUIC 集成了 TLS 握手,尽管使用定制的帧来保护数据包。 TLS 和 QUIC 的集成在 . 握手的结构允许尽快交换应用程序数据。 这包括客户端立即发送数据的选项 (0-RTT:Round-Trip Time 往返时延),这需要事先以某种形式的通信或配置才能启用。

​ 端点通过QUIC通信是通过交换QUIC 数据包。 大多数数据包都包含帧,这些帧在端点之间携带控制信息和应用程序数据。 QUIC 对每个数据包的整体进行身份验证,并尽可能多地加密每个数据包。 QUIC 数据包使用 UDP 数据报传输,以更好地促进其在现有系统和网络中的部署。

​ 应用协议使用QUIC协议交换信息是通过流实现的(streams),流是有序的字节序列。 可以创建两种类型的流:双向流,允许两个端点发送数据; 和单向流,只允许单个端点发送数据。 基于信用的方案用于限制流创建并限制可以发送的数据量

​ QUIC 提供必要的反馈来实现可靠的交付和拥塞控制。在第六节(QUIC-Recovery)中描述了一种用于检测和恢复数据丢失的算法。 QUIC依靠拥塞控制来避免网络拥塞。 示例性拥塞控制算法在第七节。

​ QUIC 连接并不严格绑定到单个网络路径。 连接迁移使用连接标识符来允许连接转移到新的网络路径。 只有客户端才能在此版本的 QUIC 中迁移。 此设计还允许在网络拓扑或地址映射发生变化(例如可能由 NAT 重新绑定引起)后继续连接。

​ 一旦连接建立,就会为连接终止提供多个选项。 应用程序可以管理正常关闭,端点可以协商超时期限,错误可以导致立即连接断开,并且无状态机制支持在一个端点丢失状态后终止连接。

1.1 文档结构

本文档描述了核心 QUIC 协议,结构如下

  • 流是 QUIC 提供的基本服务抽象。
  • 第 2 节 描述了与流相关的核心概念
  • 第 3 节 提供了流状态的参考模型
  • 第 4 节 概述了流控制的操作。
  • 连接是 QUIC 端点通信的上下文。
    • 第 5 节 描述了与连接相关的核心概念
    • 第 6 节描述了版本协商
    • 第 7 节详细介绍了建立连接的过程
    • 第 8 节描述了地址验证和关键的拒绝服务缓解措施
    • 第 9 节描述了端点如何将连接迁移到新的网络路径
    • 第 10 节列出了终止的选项一个开放的连接
    • 第 11 节提供了流和连接错误处理的指南
  • 数据包和帧是QUIC用来通信的基本单位
    • 第 12 节描述了与数据包和帧相关的概念
    • 第 13 节定义了数据传输、重传和确认的模型
    • 第 14 节指定了管理携带 QUIC 数据包的数据报大小的规则
  • 最后,QUIC 协议元素的编码细节在
    • 第 15 节(版本)
    • 第 16 节(整数编码)
    • 第 17 节(包头)
    • 第 18 节(传输参数)
    • 第 19 节(帧)
    • 第 20 节(错误)

​ 随附的文档描述了 QUIC 的丢失检测和拥塞控制,以及 TLS 和其他加密机制的使用。

本文档定义了 QUIC 版本 1,并且符合[QUIC-INVARIANTS]中的协议不变特性

​ 要参考 QUIC 版本 1,请引用此文档。 对 QUIC 的有限版本独立属性集的引用可以引用[QUIC-INVARIANTS]

1.2 术语和定义

当这些关键词出现在文档中,当且仅当他们出现为大写,如展示的这种”MUST“,"MUST NOT", "REQUIRED", "SHALL" ,"SHALL NOT", "SHOULD" ,"SHOULD NOT", "RECOMMENDED" ,"NOT RECOMMENDED" ,"MAY", "OPTIONAL"。需要按照 BCP14 [RFC2119],[RFC8174] 中的说明进行解释。

本文档中的常用术语描述如下:

QUIC: 本文档描述的传输协议。 QUIC 是一个名称,而不是首字母缩略词

EndPoint: 可以通过生成、接收和处理 QUIC 数据包来参与 QUIC 连接的实体。 QUIC 中只有两种类型的端点:客户端和服务器。

Client: 发起 QUIC 连接的终端

Server: 接受 QUIC 连接的终端

QUIC package: 一个完整的 QUIC 可处理单元,可以封装在 UDP 数据报中。 一个或多个 QUIC 数据包可以封装在单个 UDP 数据报中

Ack-eliciting packet:一个 QUIC 数据包,包含除 ACK、PADDING 和 CONNECTION_CLOSE 之外的帧。 这些会导致收件人发送确认信号

Frame: 一种结构化协议信息的单位。 有多种帧类型,每一种都携带不同的信息。 帧包含在 QUIC 数据包中。

Address :当没有获取授权资格的时候,表示网络路径一端的 IP 版本、IP 地址和 UDP 端口号的元组。

Connection ID:用于标识端点处的 QUIC 连接的标识符。 每个端点为其对等端选择一个或多个连接 ID,以包含在发送给端点的数据包中。 此值对对等方不透明。

Stream:QUIC 连接中有序字节的单向或双向通道。 一个 QUIC 连接可以同时传输多个流。

Application: 使用 QUIC 发送和接收数据的实体。

本文档使用术语“QUIC 数据包”、“UDP 数据报”和“IP 数据包”来指代各个协议的单元。 即一个或多个QUIC数据包可以封装在一个UDP数据报中,UDP数据报又封装在一个IP数据包中

1.3 符号约定

本文档中的数据包和帧图使用自定义格式。 这种格式的目的是总结而不是定义协议元素, 而是定义了结构的完整语义和细节。

复杂字段被命名的--由一对匹配的大括号包围的字段列表。 此列表中的每个字段都用逗号分隔

各个字段包括长度信息,以及有关固定值、可选性或重复性的指示。 各个字段使用以下符号约定,所有长度均以bits为单位

x(A):表明x是A bits长度,例如x(4) x是4bit长度

x(i):表示 x 使用第 16 节中描述的可变长度编码保存一个整数值

x(A..B):表示x可以是从A到B的任意长度; A可以省略,表示最少0位,B可以省略,表示没有设置上限; 这种格式的值总是以字节边界结束。

x(L)=C: 表示x有一个固定值C; x 的长度由 L 描述,它可以使用上面的任何长度形式

x (L) = C..D:表示 x 的取值范围为 C 到 D(含),长度由 L 描述,和上面一样

[x (L)] :表示 x 是可选的,长度为 L

x (L) ...: 表示 x 重复零次或多次,并且每个实例的长度为 L

本文档使用网络字节顺序(即大字节序)值。 字段从每个字节的高位bit开始放置。

按照惯例,单个字段通过使用复杂字段的名称来引用复杂字段

Figure1 提供了一个例子

Example Structure {
 One-bit Field (1),
 7-bit Field with Fixed Value (7) = 61,
 Field with Variable-Length Integer (i),
 Arbitrary-Length Field (..),
 Variable-Length Field (8..24),
 Field With Minimum Length (16..),
 Field With Maximum Length (..128),
 [Optional Field (64)],
 Repeated Field (8) ...,
}

Figure 1: Example Format

当在文中引用一个One-bit字段时,该字段的位置可以通过使用带有字段值集的字段的byte的值来阐明,例如,值 0x80 可用于引用字节最高有效位中的One-bit字段,比如Figure 1中的One-bit 字段。

标签:中文,端点,Overview,Field,文档,QUIC,数据包,连接
来源: https://www.cnblogs.com/li33/p/15911515.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有