| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> Quic 接收流程图 -> 正文阅读 |
|
[网络协议]Quic 接收流程图 |
1、QUIC 简介QUIC 全称:Quick UDP Internet Connections,是一种基于 UDP 的传输层协议。由 Google 自研,2012 年部署上线,2013 年提交 IETF,2021 年 5 月,IETF 推出标准版 RFC9000。 从协议栈可以看出:QUIC = HTTP/2 + TLS + UDP 2、QUIC 实现原理2.1、数据格式一个 QUIC 数据包的格式如下: 由 header 和 data 两部分组成。 header 是明文的,包含 4 个字段:Flags、Connection ID、QUIC Version、Packet Number; data 是加密的,可以包含 1 个或多个 frame,每个 frame 又分为 type 和 payload,其中 payload 就是应用数据; 数据帧有很多类型:Stream、ACK、Padding、Window_Update、Blocked 等,这里重点介绍下用于传输应用数据的 Stream 帧。 Frame Type:?帧类型,占用 1 个字节 (1)Bit7:必须设置为 1,表示 Stream 帧 (2)Bit6:如果设置为 1,表示发送端在这个 stream 上已经结束发送数据,流将处于半关闭状态 (3)Bit5:如果设置为 1,表示 Stream 头中包含 Data length 字段 (4)Bit432:表示 offset 的长度.000 表示 0 字节,001 表示 2 字节,010 表示 3 字节,以此类推 (5)Bit10:表示 Stream ID 的长度。00 表示 1 字节,01 表示 2 字节,10 表示 3 字节,11 表示 4 字节 Stream ID:?流 ID,用于标识数据包所属的流。后面的流量控制和多路复用会涉及到 **Offset:**偏移量,表示该数据包在整个数据中的偏移量,用于数据排序。 Data Length:?数据长度,占用 2 个字节,表示实际应用数据的长度 Data:?实际的应用数据 上面的介绍引用自:QUIC 协议详解 - 知乎 3 接收流程图从udp socket接收数据,层层解析quic 协议,然后send respond Quic Packet=public header+data; data=stream1,...=frametype+payload=frametype+streamid+offset+data len+data |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 11:30:47- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |