文档详情

陶辉:Nginx上实现HTTP3及其性能优化之道.docx

发布:2025-05-17约9.84千字共38页下载文档
文本预览下载声明

NGINX上实现HTTP3及其性能

优化之道

陶辉矩尺网络CTO

个人介绍

陶辉

矩尺网络CTO

《深入理解Nginx》作者

极客时间《系统性能优化必知必会》专栏作者

视频课《Web协议详解与抓包实战》《Nginx核心知识100讲》讲师腾讯云TVP

1HTTP3协议概述

2stream层:多路复用

3connection层:连接迁移

4性能优化安全加固

01HTTP3

协议概述

HTTP协议的发展轨迹

队头阻塞:HTTP2overTCP

RTT减少:握手速度的提升

连接迁移的意义:移动网络

HTTP3的特性

?QUIC

?报文格式

?UDP

?Packet

?QUICFrame

?HTTP3Frame

?安全

?TLS实现

?放大攻击防御

?连接ID

?连接迁移

?stream

?可靠有序

?多路复用?HTTP3

?stream流

?单向流

?推送流

?QPACK

?控制流

?双向流:请求

部署Nginx支持HTTP3

?仅client七层

?四层不支持QUIC

?拥塞控制算法不可更改

?仅RFC9002,类似TCPNewReno

?初始拥塞窗口遵循RFC6928?编译

?--with-http_v3_module

?--with-cc-opt=-DNGX_QUIC_DEBUG_PACKETS-DNGX_QUIC_DEBUG_CRYPTO“

?开启服务

?listen8443quicreuseport;

?http3on;

?协议升级

?add_headerAlt-Svch3=:8443;ma=86400;

ngx_min(

10*qc-tp.max_udp_payload_size,

ngx_max(2*qc-tp.max_udp_payload_size,14720)

);

02stream

多路复用

无队头阻塞版

HTTP3QPACK多路复用

HTTP3QPACK

Syntax:http3_max_concurrent_streamsnumber;

Default:http3_max_concurrent_streams128;

Context:http,server

QUICSTREAM

核心概念:抓包分析

?UDPPacket

?QUICConnection

?QUICPacket

?QUICFrame

?QUICStream?HTTP3Frame

QUIC报文格式

--为什么一个UDP报文包含多个Packet?--为什么一个Packet包含多个Frame?

QUIC

StreamFrame

NginxQUICFrame

NginxQUICFrame

系统调用

事件模块

QUIC模块

HTTPV3模块

HTTP框架

HTTP模块

#defineNGX_QUIC_FT_PADDING0x00

#defineNGX_QUIC_FT_PING0x01

#defineNGX_QUIC_FT_ACK0x02

#defineNGX_QUIC_FT_ACK_ECN0x03

#defineNGX_QUIC_FT_RESET_STREAM0x04

#defineNGX_QUIC_FT_STOP_SENDING0x05

#defineNGX_QUIC_FT_CRYPTO0x06

#defineNGX_QUIC_FT_NEW_TOKEN0x07

#defineNGX_QUIC_FT_STREAM0x08

#defineNGX_QUIC_FT_STREAM10x09

#de

显示全部
相似文档