Chromium QUIC逻辑
Chromium QUIC逻辑
- 1 背景
- 2 正文
- 2.1 针对某个ip:port的请求
- 2.2 超时逻辑
- 2.3 回滚逻辑
- 2.4 30S的QUIC失败等待
1 背景
最近在使用Chromium的网络库Cronet,对其内部QUIC的使用逻辑做了一些总结。
2 正文
2.1 针对某个ip:port的请求
- 第一次请求会根据TLS ALPN协议的协商结果以HTTP/1.1或者HTTP/2发起,分析HTTP响应携带的“alt-svc”头,将该ip:port、QUIC端口、ma(max alive,也就是ttl)、服务端支持的QUIC版本等信息记录到本地支持QUIC的服务列表中;
- 第二次请求可能仍然会以HTTP/1.1或者HTTP/2发起,但是同时建立一个quic_connection,并触发QUIC的握手、协商,如果成功,则在连接池中缓存该quic_connection,并且Chromium会自动评估是否使用QUIC替换HTTP来请求本次数据;
- 后续该域名的所有请求将使用该quic_connection,以QUIC协议传输数据。
2.2 超时逻辑
有两个基本的超时时间:
- 握手超时,代表连接发起、握手的超时时间,默认10S;
- 空闲超时,代表长时间没有数据传输quic_connection回收的超时时间,协商成功前5S,协商成功后30S。
2.3 回滚逻辑
- 一个还未协商成功的quic_connection并不会被使用;
- 一个已经协商成功的quic_connection,如果在一次HTTP请求之前UDP被Block,那么在等待空闲超时后,QUIC的数据请求失败,会自动回滚到HTTP(1/2),一旦回滚到HTTP,这个连接将被标记(UDP不可用),不再使用QUIC;
- 如果在QUIC数据传输的过程中,UDP被Block,那么在等待空闲超时后,QUIC的数据请求失败,不会被回滚到HTTP,但是下次请求仍然会尝试使用QUIC,因为UDP有可能可用。
2.4 30S的QUIC失败等待
对一次HTTP请求来说,30S是一个漫长的等待,可以考虑将时间改短,付出的代价是quic_connection缓存时间变短,有可能不得不频繁创建新的quic_connection,进行新的握手、协商。
Chromium QUIC逻辑相关推荐
- STGW 下一代互联网标准传输协议QUIC大规模运营之路
作者:wentaomao,腾讯 TEG 后台开发工程师 前言 QUIC 作为互联网下一代标准传输协议,能够明显提升业务访问速度,提升弱网请求成功率以及改善网络变化场景下的平滑体验. STGW 作为公司 ...
- QUIC协议(握手过程)简要介绍
QUIC协议(握手过程)简要介绍 这篇博客可能更多的偏向于密码学方面来进行介绍(csdn关于网络层). 为什么需要QUIC协议 随着当前网络对性能要求的越来越高,有部分公司已经觉得原来的TCP和UDP ...
- 快手自研kQUIC:千万级QPS集群是如何实现的?
近日,快手自研高性能服务器 kQUIC 已全面上线,集群峰值 QPS 突破千万.kQUIC 是快手结合自身业务特点,自研打造的支持 QUIC/HTTP/HTTPS 多协议同层接入的高性能服务器,在短视 ...
- QUIC构建1——chromium镜像,clone文件depot_tools的过程+git过程中的问题
问题1 (1)安装depot_tool超时,的问题,寻找镜像 git clone https://chromium.googlesource.com/chromium/tools/depot_tool ...
- Android平台Chromium net中的代理配置信息获取
在计算机网络中,代理服务器 扮演着发起请求的客户端与服务器之间的中间人的角色.客户端连接到代理服务器,请求一些服务,比如文件,网页,或其它可以从服务器获得的资源,代理服务器以简化和控制复杂度的形式获取 ...
- chromium net库设计
总览 网络栈主要地是一个单线程跨平台的库,主要负责资源获取.它的主要接口是URLRequest和URLRequestContext.URLRequest, 正如它的名字所表明的那样,表示一个URL的请 ...
- [翻译]QUIC 与 HTTP/3:太过庞大而致失败?-- 论导致 QUIC 失败的因素
新的 QUIC 和 HTTP/3 协议即将到来,这是可谓是网络发展的精华所在. 结合过去30年来网络实践中的经验和教训,新一代的协议栈针对性能.隐私.安全和灵活性方面,均有大幅的提升.改进. 当前,关 ...
- 实战|QUIC协议助力腾讯业务提速30%
hi ,大家周五好,之前分享过一篇QUIC在蚂蚁金服落地的文章: 实战|QUIC协议在蚂蚁集团落地 今天我们分析一篇,QUIC在腾讯落地的文章,希望大家了解和学习新技术是如何在大厂落地,其中会遇到什么 ...
- QUIC技术创新 让视频和图片分发再提速
简介:在1月12日的「阿里云CDN产品发布会-新一代传输协议QUIC让CDN更快一步」之上,阿里云技术专家淮叶分享了QUIC技术及其应用落地实践,内容包含:QUIC协议介绍.相比TCP有哪些优势.应用 ...
最新文章
- 2018-3-7论文网络评论中非结构化信息的表示与研究--------实验分析
- AutoMapper用法
- IMAX融资5000万美元,三年内要打造25个VR项目
- 第十二章 支持向量机-机器学习老师板书-斯坦福吴恩达教授
- Linux设置路由器ip租约时间,入坑Linux-day15(使用DHCP动态管理主机地址)
- 大公司病,真 TM 形象
- 波兰表达式 构建 表达式树
- IIS设置的解决方案
- J2EE--Mybatis基础知识题
- docker容器下mysql更改WordPress的site address和home(URL)
- mysql backup user_mysql备份常见命令
- 在 MQL5 中创建多色彩指标
- 揭秘|Axway API在银行业的应用
- DLL load failed while importing _sqlite3: 找不到指定的模块。
- 苹果plus html,iPhoneX 苹果8 8PLus区别:所有功能参数 最详细全面对比
- java foreach 中止_如何正确终止 forEach
- 第6次课程作业—张欣
- 为什么函数极值点的导数为零
- windows11系统下vone客户端连接服务器失败,请确认网络连接是否正常解决方案
- 190108每日一句
热门文章
- 电子劳动合同如何签订才能生效呢?四步就能教会你!
- 真是尿了!掉进了一个“盲僧”都能绕过的坑
- java vr 开发_VR:虚拟与现实
- python基础练习题(一)答案版
- 20180409-A · NFL Positional Salaries · ggplot2, 小提琴图 散点图 · R 语言数据可视化 案例 源码
- Wuss Weapp 一款高质量,组件齐全,高自定义的微信小程序UI组件库
- 按键精灵上传账号到服务器_【按键精灵】利用服务器远程代码实现图色信息热更新...
- 安装PHP解析环境 nginx配置php 实现mysql的连接
- BigData CH4 MapReduce
- cmu15445 2023spring project01