提速 40%,融云基于 QUIC 深度优化通信协议

这篇具有很好参考价值的文章主要介绍了提速 40%,融云基于 QUIC 深度优化通信协议。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

提速 40%,融云基于 QUIC 深度优化通信协议,互联网,通信行业,融云,php,开发语言,网络,AIGC

 8 月 17 日(本周四),融云直播课从排查问题到预警风险,社交产品如何更好保障体验、留住用户?欢迎点击报名~

各分位(P99、P95、P50)连接速度提升 30%~50%;关注【融云全球互联网通信云】了解更多

网络延迟低连接耗时终端占比提升 50%,高连接耗时终端占比压缩至 1% 以内;

在基础设施受限的弱网地区和连接效果难保证的跨网场景下,均可获得与正常网络相当的顺畅体验。

——这些都是融云基于 QUIC 深度优化通信协议的实践效果。

作为中国互联网出海浪潮中最重要的基建公司之一,融云一直致力于提升全球网络的“最后一公里体验”。

基于 QUIC 深度优化通信协议,融云实现了多链路智能竞速选路,进一步降低连接时长,保证链路不仅连得快,而且连得稳。


关于 QUIC

QUIC(Quick UDP Internet Connection)是 Google 提出的一个基于 UDP 的传输协议,因其高效的传输效率多路并发的能力,成为下一代互联网协议 HTTP/3 的底层传输协议。

2021 年 IETF(Internet Engineering Task Force,互联网工程任务组)发布 RFC 9000,标志着该协议正式成为一个标准协议。

伴随着移动互联网的发展,网络交互场景越来越丰富并对及时性提出更高要求,传统 TCP 固有的性能瓶颈越来越不能满足这一需求,需要引入 UDP。两者的特性分别为:

UDP(User Datagram Protocol)用户数据报协议于 1980 年在 RFC 768 中定义,主要特性是数据传输效率快

TCP(Transmission Control Protocol)传输控制协议于 1981 在 RFC 793 中定义,主要特性是数据传输可靠性

基于 UDP 与 TCP 的特性,如果要实现可靠数据传输,TCP 是较为简单的选型,但是在网络传输通道质量较差的情况下,如丢包、延迟率较高、带宽受限等,会产生建立连接的握手延迟大、队头阻塞、网络拥塞等问题。

为了解决移动端场景常见的弱网网络切换问题,同时兼容互联网上已经运转多年的网络设备,Google 提出了应用层的 QUIC 协议。

QUIC 融合了 UDP 协议的速度、性能与 TCP 的安全、可靠,具备安全、高效、可靠等传输特性。

建连更快

相比于 TCP+TLS,QUIC 建联速度提升了 1~3 倍。其客户端第一次建连的握手协商需 1-RTT(Round-Trip Time,往返时延)。

已建连的客户端重新建连时,通过应用数据和协商参数合并的方式,QUIC 重用在先前的连接中协商的参数,可以做到 0-RTT,使得客户端能够在握手完成前就发送应用数据。

提速 40%,融云基于 QUIC 深度优化通信协议,互联网,通信行业,融云,php,开发语言,网络,AIGC

对比来看:

TCP 需要 1-RTT;
TCP+TLS1.2 需要 3-RTT;
TCP+TLS1.3 需要 2-RTT。

TCP 为了可靠性设计了一系列的规则,比如建立 TCP 连接时需要进行三次握手,这会造成更多的 RTT 花费及很多字节的额外开销。

◾ TCP 1-RTT 流程图:

提速 40%,融云基于 QUIC 深度优化通信协议,互联网,通信行业,融云,php,开发语言,网络,AIGC

◾ TCP 1-RTT 交互数据流:

提速 40%,融云基于 QUIC 深度优化通信协议,互联网,通信行业,融云,php,开发语言,网络,AIGC

TLS1.2 通过 KeyExchange 进行密钥协商,即 ServerKeyExchange、ClientKeyExchange,密钥交换本身就需要一个交互来回,所以总共有四次握手交互,详细参考 RFC 5246。

◾ TLS1.2 2-RTT 流程图:

提速 40%,融云基于 QUIC 深度优化通信协议,互联网,通信行业,融云,php,开发语言,网络,AIGC

◾ TLS1.2 2-RTT 交互数据流:

提速 40%,融云基于 QUIC 深度优化通信协议,互联网,通信行业,融云,php,开发语言,网络,AIGC

TLS1.3 借助扩展进行密钥交换,只需要三次握手交互,详细参考 RFC 8446。

◾ TLS1.3 1-RTT 流程图:

提速 40%,融云基于 QUIC 深度优化通信协议,互联网,通信行业,融云,php,开发语言,网络,AIGC

◾ TLS1.3 1-RTT 交互数据流:

提速 40%,融云基于 QUIC 深度优化通信协议,互联网,通信行业,融云,php,开发语言,网络,AIGC

QUIC 基于 UDP,只需花费 0~1-RTT 就可以建立连接。

客户端第一次建连的握手协商需 1-RTT,建联完成后即可发送数据。

◾ QUIC 1-RTT 流程图:

提速 40%,融云基于 QUIC 深度优化通信协议,互联网,通信行业,融云,php,开发语言,网络,AIGC

◾ QUIC 1-RTT 交互数据流:

提速 40%,融云基于 QUIC 深度优化通信协议,互联网,通信行业,融云,php,开发语言,网络,AIGC

已建连的客户端重新建连可以使用之前协商好的缓存信息来恢复连接,仅需 0-RTT 时间。

◾ QUIC 0-RTT 流程图:

提速 40%,融云基于 QUIC 深度优化通信协议,互联网,通信行业,融云,php,开发语言,网络,AIGC

◾ QUIC 0-RTT 交互数据流:

提速 40%,融云基于 QUIC 深度优化通信协议,互联网,通信行业,融云,php,开发语言,网络,AIGC

可插拔的拥塞控制

QUIC 协议默认使用了 TCP 协议的 Cubic 拥塞控制算法,作为应用层协议,它也支持 CubicBytes、Reno、RenoBytes、BBR、PCC 等拥塞控制算法,用户可以插拔式选择。

无队头阻塞多 Stream

QUIC 给每一个 Stream 都分配了一个独立的滑动窗口,使得一个连接上的多个 Stream 之间没有依赖关系,都是相互独立的、各自控制的滑动窗口。

假如 Stream3 丢了一个 UDP 包,也只会影响 Stream3 的处理,不会影响其他 Stream。

◾ TCP 连接

提速 40%,融云基于 QUIC 深度优化通信协议,互联网,通信行业,融云,php,开发语言,网络,AIGC

◾ QUIC 连接

提速 40%,融云基于 QUIC 深度优化通信协议,互联网,通信行业,融云,php,开发语言,网络,AIGC

支持连接迁移

QUIC socket 采用 UDP 收发数据,一个连接用一个 ConnectionID 为唯一标识。

当用户设备在蜂窝网络和 Wi-Fi 等不同网络切换时,只要数据包中的 ConnectionID 不变,服务端都可以将不同的四元组关联到同一个连接上下文。

对用户来说,无需断线重连,可以无感知地完成信号切换,在越网情况下会有更好的表现

◾ TCP 重连 VS. QUIC 连接迁移

提速 40%,融云基于 QUIC 深度优化通信协议,互联网,通信行业,融云,php,开发语言,网络,AIGC

安全性

相比于 TCP,QUIC 是 UDP 与 TLS 的结合,在保证连接速度的同时保证了安全性,而 TCP 需要额外增加 TLS 相关安全传输层协议封装。

◾ TCP+TLS VS. QUIC

提速 40%,融云基于 QUIC 深度优化通信协议,互联网,通信行业,融云,php,开发语言,网络,AIGC


融云优化实践及效果

移动互联网深化发展,我们的生活、工作已经全面实现移动化,各种移动端 App 成为了承载我们生活、工作场景的关键入口。

而移动端应用体验的一致性对网络有着更高要求,比如拿着手机进入电梯,就会遇到网络切换而重新建连的问题。亦或者,在融云服务中国互联网出海的广泛实践中,新兴市场参差不齐的网络基建是最令开发者头疼的难题之一。

而 QUIC 的更快建连连接迁移等特性是解决以上问题的有效方案,因此融云基于 QUIC 对私有通信协议进行优化

优化实践

为保证链路的平滑过渡以及通道链路的稳定性,在调整现有链路通道时,融云优化升级整体设计及实施依照 TCP/UDP 通道互补、业务无感知、多链路竞速等准则。

TCP/UDP 双通道

在原有 TCP 链路的基础上增加 QUIC 接入链路,可以在保证链路可靠性的同时提升速度。

QUIC 与全球加速链路结合,还可更好降低连接时延。

提速 40%,融云基于 QUIC 深度优化通信协议,互联网,通信行业,融云,php,开发语言,网络,AIGC

在网络状态不稳定的地区,当遇到网络抖动时,QUIC 有更友好的丢包重传策略,可以做到丢哪个包补哪个包,而不需要对所有的包进行重传。

无感知的通道升级

为保证对现有业务的无感升级,通过客户端与服务端动态协商确认客户端与服务端双向支持协议,下发 QUIC 接入地址,在保持现有协议层次不变的基础上对融云私有通信协议进行 QUIC 封装,上层业务无感知。

◾ 协议协商交互流程
客户端与服务端动态协商,在双方都支持 QUIC 链路的情况下开启 QUIC。

提速 40%,融云基于 QUIC 深度优化通信协议,互联网,通信行业,融云,php,开发语言,网络,AIGC

◾ 协议栈层次
为保证上层业务无感知,采用 QUIC 对通信协议进行封装,上层业务接口无变动。

提速 40%,融云基于 QUIC 深度优化通信协议,互联网,通信行业,融云,php,开发语言,网络,AIGC

多链路竞速选路更优

考虑到海外不同地区的网络特点,在某些地区,个别运营商可能对 UDP 进行 QoS 限速,融云采用 TLS 优先,TCP 为辅,QUIC 保底的方式进行链路接入。

多链路竞速在保证链路优先级的情况下择优选择。

这样,在保证接入链路稳定性的同时保证连通率、连接速度。

提速 40%,融云基于 QUIC 深度优化通信协议,互联网,通信行业,融云,php,开发语言,网络,AIGC

优化效果

连接耗时降低

QUIC 协议握手连接更快,允许客户端无需等待 TLS 握手完成就开始发送应用程序数据,从而达到快速建立连接的效果。

从客户端数据看,P50 降低 30%,P95 降低 45% 以上,P99 降低 50% 以上,越是长尾指标提升越明显。

提速 40%,融云基于 QUIC 深度优化通信协议,互联网,通信行业,融云,php,开发语言,网络,AIGC

从服务端看,Socket 低耗时占比提升 50%,高耗时的连接占比压缩在 1% 以内,服务器的吞吐量得到提升。

提速 40%,融云基于 QUIC 深度优化通信协议,互联网,通信行业,融云,php,开发语言,网络,AIGC

弱网质量与网络兼容性提升

在一些弱网丢包和延迟的混合场景下,QUIC 比 TCP 有 10% 左右的提升。

不过,在不同国家和地区,对 UDP 以及 TLS 加密的网络兼容策略不同,需要配合多通道探测和历史策略下发一起使用。

总之,针对“最后一公里体验”难题,融云不断优化服务、迭代产品,以更快连接、更高并发服务开发者丰富多样的业务探索。本次通信协议优化,是融云作为专业、简单、稳定的通信云服务商在用户体验和服务效率方面的又一次稳步跃升。文章来源地址https://www.toymoban.com/news/detail-653047.html

到了这里,关于提速 40%,融云基于 QUIC 深度优化通信协议的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 10 - 网络通信优化之通信协议:如何优化RPC网络通信?

    微服务框架中 SpringCloud 和 Dubbo 的使用最为广泛,行业内也一直存在着对两者的比较,很多技术人会为这两个框架哪个更好而争辩。 我记得我们部门在搭建微服务框架时,也在技术选型上纠结良久,还曾一度有过激烈的讨论。当前 SpringCloud 炙手可热,具备完整的微服务生态,

    2024年02月11日
    浏览(27)
  • rt下降40%?程序并行优化六步法

    性能优化是我们日常工作中很重要的一部分,主要有以下原因: 降低服务器和带宽等硬件成本:用更少的资源处理更多的请求 提高现实世界的运行效率:人机处理效率存在数量级的偏差,同样机器世界的效率提升能带来现实世界效率提升的方法效果 提高用户的体验:解决响

    2024年02月05日
    浏览(39)
  • OSPF协议在通信网络中的应用分析及算法优化

    组播扩展OSPF OSPF(Open Shortest Path First开放式最短路径优先)是一个内部网关协议(Interior Gateway Protocol,简称IGP),用于在单一自治系统(autonomous system,AS)内决策路由。是对链路状态路由协议的一种实现,隶属内部网关协议(IGP),故运作于自治系统内部。著名的迪克斯加算法

    2024年02月07日
    浏览(31)
  • 短视频ks(某手)高版本最新抓包方案,教你用hook大法绕过QUIC协议

    一般大多数网站、APP最常用的是http、https协议,而某两款最火的短视频dy(某音)、ks(某手)最新版使用的是quic协议(见附录1),导致fiddler和charles无法直接抓到包(某手7版本以下可以直接抓到包)。 网上有说用fiddler + xposed + justTrustMe能绕过某音的sslpinning,呵呵,别傻了

    2023年04月11日
    浏览(39)
  • Vue首屏优化,12个提速建议

    vue首屏代码优化的概要方案,供参考: 将首屏所需的组件和代码拆分成独立的模块,并使用懒加载技术(如 Vue 的异步组件或路由懒加载)来按需加载它们。这样可以减少初始加载的代码量,提高首屏的加载速度。 代码拆分 创建多个组件文件:将大型的 Vue 组件拆分成多个较

    2024年02月19日
    浏览(35)
  • SPI通信协议及基于Arduino的SPI通信例程

    一、SPI通信协议介绍 SPI通信协议(Serial Peripheral Interface)是一种同步串行通信协议,由Motorola公司在1980年代初开发。SPI协议常用于单片机、嵌入式系统和外围设备之间的通信。 SPI协议使用四根线进行通信:时钟线(SCLK)、数据输入线(MOSI)、数据输出线(MISO)和从机选择

    2024年02月07日
    浏览(28)
  • 基于 Socket 接口实现自定义协议通信

    访问【WRITE-BUG数字空间】_[内附完整源码和文档] 根据自定义的协议规范,使用 Socket 编程接口编写基本的网络应用软件。 掌握 C 语言形式的 Socket 编程接口用法,能够正确发送和接收网络数据包 开发一个客户端,实现人机交互界面和与服务器的通信 开发一个服务端,实现并

    2024年02月06日
    浏览(34)
  • WebSocket | 基于TCP的全双工通信网络协议

    ​🍃作者介绍:双非本科大三网络工程专业在读,阿里云专家博主,专注于Java领域学习,擅长web应用开发、数据结构和算法,初步涉猎Python人工智能开发和前端开发。 🦅主页:@逐梦苍穹 📕所属专栏:Java EE ✈ 您的一键三连,是我创作的最大动力🌹 WebSocket 是基于 TCP 的一

    2024年02月19日
    浏览(66)
  • Python爬虫性能优化:多进程协程提速实践指南

    各位大佬们我又回来了,今天我们来聊聊如何通过多进程和协程来优化Python爬虫的性能,让我们的爬虫程序6到飞起!我将会提供一些实用的解决方案,让你的爬虫速度提升到新的高度! 1、多进程提速 首先,让我们来看看如何利用多进程来加速爬虫程序。多进程可以充分利用

    2024年02月12日
    浏览(39)
  • 【Java】--网络编程:基于TCP协议的网络通信

    TCP协议(Transmission Control Protocol),即传输控制协议,是一种 面向连接 的, 可靠 的,基于 字节流 的传输层通信协议。数据大小无限制。 建立连接的过程需要 三次握手 。 断开连接的过程需要 四次挥手 。 使用TCP协议的通信双方分别为 客户端 和 服务器端 。 客户端负责向服务

    2024年01月23日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包