网易首页 > 网易号 > 正文 申请入驻

技术实践 | 网易云信 QUIC 加速服务架构与实践

0
分享至

导读:网易云信作为音视频服务提供商的领导者,一直致力于提供顶级的音视频通话服务体验,为用户在各种恶劣环境下提供可靠的音视频服务。

文|纪松

网易云信资深音视频服务端开发工程师

如何在极端弱网条件下仍然能给用户提供可靠的音视频服务,是网易云信关注的重中之重。本文将阐述网易云信为了提高可靠数据在弱网环境及时性所采用的架构技术方案。

引言

市面上多数传统的音视频服务基于 TCP 协议做可靠数据的传输,但是因为 TCP 自身协议的特性,有着天生的一些缺陷,例如:

  • 传输效率低

TCP 无私的传输特性,导致传输慢,效率较低,在弱网下更明显。

  • 建联延迟大

三次握手的安全设计引起首次建联耗时高,会引起首屏出现较晚。

  • 抗弱网特性差

TCP 的可靠传输特性决定了,较小的丢包就会引起链路断开。

  • 队头阻塞严重

包文有序依次传输,小序列号包的丢失会引起后面包文阻塞,直到重传成功。

这些缺陷导致传统音视频服务在弱网环境下,可靠数据链路先于媒体链路断开,信令延迟到达,影响用户体验。如何提高可靠数据链路的可靠性和及时性是所有音视频服务提供商需要解决的问题。随着技术发展,当前热门协议 QUIC 应运而生。

QUIC 概述以及优势

QUIC 全称 Quick UDP Internet Connection,即快速 UDP 互联网连接,是由 Google 于2013年提出,使用 UDP 进行多路并发传输的协议。QUIC 使用 UDP 协议,在两个端点间创建连接,且支持多路复用连接。在设计之初,QUIC 希望能够提供等同于 SSL/TLS 层级的网络安全保护,减少数据传输及创建连接时的延迟时间,双向控制带宽,以避免网络拥塞。下面,我们一起来看看 QUIC 相对于 TCP 的优势。

  • 简化 TLS 的握手流程,降低首次建连 RTT

QUIC 协议做的最大优化即简化握手流程到 0/1RTT。众所周知,HTTPS 的握手需要 3RTT 的耗时,然而 QUIC 建联最多只消耗 1RTT。如下图,说明了 TCP 的握手繁琐流程,然而 QUIC 将该繁琐流程降低到了 0-1 个 RTT。

  • 采用多流策略,某个流的队头阻塞不会引起另外一个流的数据阻塞。

应用层的协议数据通过流交换信息,每个流内是有序序列的字节,而流之间没有顺序关系,流与流之间是相互隔离,相互独立的。如果某个流出现丢包或者传输不可达,不会影响连接中其他流的数据。这样设计可以避免 TCP 协议中的队头阻塞,我们需要做的是把不同优先级的数据进行隔离即可。

  • 改进拥塞控制算法

TCP 的拥塞控制是针对一条连接的,所有的传输受控于一个拥塞控制模块。然而 QUIC 是可以做到对于每条流做流控。

  • 支持动态连接迁移

连接迁移即当连接四元组中任何一个元素发生变化时,这条连接依然维持,能够保持业务逻辑不中断。QUIC 之所以能支持连接迁移,是因为 QUIC 不再用四元组标识连接,而是以一个 64 位的随机数作为 ConnctionID 来标识,这样就算 IP 或者端口发生变化,只要 ConnctionID 不变,这条连接依然维持着,上层业务逻辑不会感知到变化,就不会中断,也就不需要重连。

  • 实现前向纠错,通过发送冗余包来减少重传

QUIC 会对一些优先级较高的包进行冗余发送,丢失的数据包可以通过冗余包计算,减少重传次数以提高传输效率。

以上这些 QUIC 优点在互联网行业都有着很大的吸引力,网易云信也参考了这些优点,在此基础上设计了自己的加速代理架构。

网易云信可靠链路的加速架构

网易云信参考 QUIC 的优势,自研了 QUIC 加速代理服务,为端到边缘服务器节点提供可靠数据传输的代理服务,提高可靠数据的及时性。下图为网易云信加速代理的架构图。

如上图,云信采用 QUIC 协议和 TCP 协议并行的设计,客户端同时支持 QUIC 链路和 TCP 链路建联。正常情况下,客户端会优先使用 QUIC 协议。客户端通过连接到 QUIC 加速服务来连接到后端,在 QUIC 连接失败的情况下,才会选择备用 TCP 链路建联直接连接后端。网易云信之所以保留原 TCP 协议接入,目的是用来做某些用户场景下 UDP 不可用的补充,保证程序的高可用性。

网易云信加速架构设计初衷

我们采用此架构设计的初衷是出于以下几点考虑:

  • 对最后一公里加速

距离用户最后一公里为最容易出现弱网故障的链路,在该链路上对用户可靠数据进行加速,可以实现事半功倍的效果。

  • UDP/TCP 的双保险,提升高可用性

某些局域网防火墙中禁用了 UDP 协议,在该网络环境下,UDP 报文不可达。该网络环境下,基于 UDP 的 QUIC 协议包将会被全部丢弃。在该网络环境下只能寄希望于 TCP 传输,所以云信将 TCP 选取为数据链路的备份。

  • 加速服务与业务相互隔离,加速服务不关心业务数据

网易云信加速服务,作为一个透明的协议,只负责接受 QUIC 包文,解开包文透传给后端。加速代理服务不关心 QUIC 承载的内容,所以扩展性较大,可以用来给很多需要加速业务做数据传输加速。

  • 兼容原有架构

为老客户提供弹性升级策略是云信产品升级策略之一,所以该架构的部署不能影响老用户,老用户可以保留原先的链路,新用户则默认采用加速链路。

下面,我们来详细看一下网易云信加速服务器的架构设计。

数据加速服务器的架构设计

数据加速代理服务器分为两大模块,QUIC 前代理模块和后代理模块。

QUIC 前代理模块

QUIC 前代理模块,启动一个 UDP 监听,监听客户端用户 QUIC 报文,前代理模块主要负责以下工作:

  • 接收客户端 QUIC 协议的 UDP 包文

  • 对收到的包进行 QUIC 解包和冗余度过滤

  • 对于将要发送的包文进行 QUIC 协议打包

  • 按照网络情况计算带宽和冗余度,发送冗余包

  • 对收到的包文进行完整性校验

QUIC 后代理模块

QUIC 后代理模块负责与后端建立 TCP 连接或者跟后端发起 http 请求,后代理模块主要工作内容为:

  • 按照前端的请求,向后端发起连接请求。

  • 对前端代理的业务数据包进行打包,透传给后端服务器。

  • 接受后端服务器的业务包,并且进行压缩和正校验在送给前端代理模块,由前代理模块进行 QUIC 协议转发。

前端代理与后端的服务器一般会进行就近部署或者同机部署,所以几乎可以忽略代理到后端服务器的延迟。主要延迟产生为端与前端代理之间的延迟,优化的重点转为增加端到前端代理的 QUIC 传输优化。

基于 QUIC 加速服务实现的音视频服务优化

在 QUIC 加速服务的基础上,网易云信主要做了以下几方面优化:

  • 首屏打开速度优化

云信客户端与服务器实现耗费至 0-1RTT 来建连,相比 TCP+TLS+HTTP/2 的 3RTT 建连,具有很大的优势。在成功连接之后,一旦客户端缓存或持久化客户端配置,就可以复用并结合本地生成的私钥进行加密数据传输,不需要再次握手,从而实现 0RTT 建立连接。这样给用户首屏打开速度至少带来了 2RTT 的延迟降低。特别在一些网络差的偏远地区,可以降低 100-300ms 的首屏延迟,提高了用户体验。

  • 多 Streams 设计

QUIC 链路下创建多个 Streams,分别用于不同应用层协议数据的传输,各个 Stream 传输相互隔离,不会因为优先级低的数据队头阻塞会影响另外优先级高的数据接受和发送。

  • 信令优先级分级设计

优先级高的数据采用较高的冗余度发送,优先级较低冗余度也较低,从而保证优先级高的数据优先到达,并且优先层级低的数据不会阻塞优先级高的信令传输。

  • 可选配置的传输数据压缩

数据代理支持 zlib 压缩,针对一些信令字符 Json 数据,zlib 压缩对于字符压缩,压缩率可以达到 20%。通过压缩,可以降低传输带宽,缓解带宽受限的拥塞。

  • 引入 CRC 对传技术数据进行校验

QUIC 是流式数据,新增对于传输的每条数据进行 CRC 校验,一旦校验失败,随即断开连接,保证数据传输的可靠性和准确性,以免影响业务。

  • 根据网络状况,动态调整冗余度

通过 nacked 包的情况,来评估全链路网络情况,发生了 unnacked 则正向调整冗余度,反之待稳定后降低冗余度。最大限度节省带宽占用,节省用户带宽,避免队列拥塞。

网易云信加速服务的弱网性能表现

我们在进行数据加速之后与未加速的情况做了一系列的对比,特别做了在弱网环境下的对比。

首屏耗时和登录耗时

上图是云信音视频业务 QUIC 和 TCP 的首屏打开耗时和登录流程耗时。可以看到首屏打开有20%的提升,登录有将近30%的提升,效果较明显。原因主要因为 QUIC 实现了0-1次 RTT 的握手流程,特别对于一些偏远省份,可以省下 100ms 的延迟,效果较为明显。

抗丢包能力

上图是云信信令数据在 QUIC 和 TCP 链路下能够抗住的最大丢包率。QUIC 在上行丢包率达到70%的条件下仍然可以提供服务,下行边界甚至可以抗住75%的丢包。TCP链路在45%的丢包情况下就会出现断开重连。相对于 TCP 的信令链路 QUIC 链路有50%的提升。主要原因:

  • 云信实现了动态冗余,会检测到丢包之后增加冗余度,这样就用冗余包弥补了高丢包,带来了抗丢包性能。

  • QUIC 改进的流量控制和拥塞控制算法让QUIC在弱网络下可能取得更大的传输优势。

带宽受限

我们还做了在带宽受限的情况下,QUIC 对于带宽的使用率,基本上 QUIC 对于带宽的使用率都能达到90%以上,然而 TCP 就要差很多。

测试结论

在丢包方面,云信得到了50%的抗丢包性能提升,在首屏打开速度上云信也有20%的提升 ,并且在带宽受限制的情况下,也能够达到90%的带宽使用率,是音视频服务业内领先的水准。

展望&总结

网易云信在可靠数据加速上可靠数据传输上已经得到很大的提升,但是仍然还有一些需要优化的地方:

  • 一旦单向发生丢包,会引起服务器和端都增加双向的冗余度,带来不必要的冗余增加。后续会检测到单向丢包,只针对丢包的链路进行冗余度增加。

  • 对于高 RTT 和高丢包场景,QUIC 拥塞控制算法需要持续优化。

网易云信将持续在音视频领域,在各种极端情况下为用户提供优质的服务。

作者介绍

纪松,网易云信资深音视频服务端开发工程师,负责云信云信直播业务和音视频数据链路加速业务,曾负责并发 70 万人的 TFboys 直播业务。在音视频数据传输和网络数据转发方面有着丰富的经验。


特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
打破冠军荒,李诗沣2-0梁峻豪夺得日本羽毛球大师赛男单冠军

打破冠军荒,李诗沣2-0梁峻豪夺得日本羽毛球大师赛男单冠军

懂球帝
2024-11-17 14:54:18
快讯!乌媒:俄对乌发动大规模导弹和无人机袭击,基辅、切尔卡瑟等地发生爆炸

快讯!乌媒:俄对乌发动大规模导弹和无人机袭击,基辅、切尔卡瑟等地发生爆炸

环球网资讯
2024-11-17 14:12:00
专打朝鲜军!全法装备乌军155旅满血归来:科技与精神对撼时刻

专打朝鲜军!全法装备乌军155旅满血归来:科技与精神对撼时刻

大风文字
2024-11-17 08:15:34
某县9年前曾设立网站公布全县编制人数,如今网站早已被取消,相关数据也不再公布

某县9年前曾设立网站公布全县编制人数,如今网站早已被取消,相关数据也不再公布

小萝卜丝
2024-11-17 11:53:34
央国企在整治形式主义的路上,把形式主义玩出了新花样

央国企在整治形式主义的路上,把形式主义玩出了新花样

笑熬浆糊111
2024-11-17 00:05:28
46岁孙燕姿参加儿子毕业典礼!皮肤粗糙打扮朴素,每年学杂费800

46岁孙燕姿参加儿子毕业典礼!皮肤粗糙打扮朴素,每年学杂费800

古希腊掌管月桂的神
2024-11-15 22:51:57
16万元的婚宴菜不热,能索赔吗?

16万元的婚宴菜不热,能索赔吗?

鲁中晨报
2024-11-16 11:56:05
最新!湾区虐婴毒月嫂的女儿女婿双双被公司解雇!

最新!湾区虐婴毒月嫂的女儿女婿双双被公司解雇!

华人生活网
2024-11-17 06:19:15
买不到中国大炮,绍伊古脸色变凝重,俄转身邀请2国,中方沉默了

买不到中国大炮,绍伊古脸色变凝重,俄转身邀请2国,中方沉默了

说天说地说实事
2024-11-17 13:50:00
苏57座舱内景,还不如三代机实在没档次

苏57座舱内景,还不如三代机实在没档次

三叔的装备空间
2024-11-16 22:03:48
央视新闻中心资深记者周伟因突发疾病逝世,享年60岁

央视新闻中心资深记者周伟因突发疾病逝世,享年60岁

澎湃新闻
2024-11-17 14:04:27
质疑“学校没钱修宿舍”反转:官方通报打脸学生,毕业生力挺学校

质疑“学校没钱修宿舍”反转:官方通报打脸学生,毕业生力挺学校

影像温度
2024-11-16 21:56:30
突然一声巨响!上海一小区居民都冲下楼,有人大喊:地震了…官方回应

突然一声巨响!上海一小区居民都冲下楼,有人大喊:地震了…官方回应

鲁中晨报
2024-11-16 15:52:14
为了赢国足,亚洲第一使用盘外招!日本球迷:这次送给中国队3分

为了赢国足,亚洲第一使用盘外招!日本球迷:这次送给中国队3分

侃球熊弟
2024-11-17 07:43:05
已致8死17伤!无锡工艺职业技术学院一21岁应届生在校行凶当场被抓

已致8死17伤!无锡工艺职业技术学院一21岁应届生在校行凶当场被抓

声情专递
2024-11-16 23:55:01
闹大了!国税总局原副局长许善达先生:五口之家月收入4000元就够

闹大了!国税总局原副局长许善达先生:五口之家月收入4000元就够

蜉蝣说
2024-11-16 21:09:26
鉴宝|天生的魅魔圣体!她烧起来谁顶得住

鉴宝|天生的魅魔圣体!她烧起来谁顶得住

贵圈真乱
2024-11-17 09:50:18
福克斯背靠背狂轰109分 NBA近57年来第二人!仅次科比!

福克斯背靠背狂轰109分 NBA近57年来第二人!仅次科比!

直播吧
2024-11-17 14:00:18
高中生吐槽宿舍后续:已被家长带回家,48万草堂和宿舍照片曝光!

高中生吐槽宿舍后续:已被家长带回家,48万草堂和宿舍照片曝光!

来条娱吃
2024-11-16 23:16:55
绝密核基地被摧毁!伊核谈判几十年没解决,以色列几小时就解决了

绝密核基地被摧毁!伊核谈判几十年没解决,以色列几小时就解决了

大风文字
2024-11-17 08:48:09
2024-11-17 16:32:49
网易云信
网易云信
网易出品
395文章数 1111关注度
往期回顾 全部

科技要闻

马斯克新官上任再起诉OpenAI!指控其垄断

头条要闻

能随意进出的县政府大院火了 县长:大家都是人民群众

头条要闻

能随意进出的县政府大院火了 县长:大家都是人民群众

体育要闻

湖人宠儿!詹眉苦盼的射手终于到位

娱乐要闻

金鸡奖:李庚希影后,赵丽颖美神下凡

财经要闻

央行化债,是“换水” 而不是“放水”

汽车要闻

全新燃油MINI正式上市 20.88-30.58万元

态度原创

时尚
手机
健康
教育
公开课

2024全球最帅男人榜单出炉,谁是你的心动男神?

手机要闻

强得让王腾有点飘!Redmi K80五大升级确认:全部命中用户需求

花18万治疗阿尔茨海默病,值不值?

教育要闻

北京发布这项创新创业大赛获奖名单——

公开课

一块玻璃,如何改变人类世界?

无障碍浏览 进入关怀版