Qcon演讲实录 | XQUIC与多路径传输技术Multipath QUIC

简介: 大家好,我是阿里巴巴淘系技术部的刘彦梅(花名喵吉),今天给大家介绍的演讲内容是<XQUIC与多路径传输技术>, 下面是我在Qcon 2020上海站大会上的演讲内容,收录于专题<5G+人工智能>。这个演讲内容围绕XQUIC与多路径传输技术Multi-path QUIC,其中面向5G的多路径传输协议,算法和技术由淘系架构团队与达摩院XG实验室/阿里云AIS网络研究团队的研究人员共同研发(XG实验室/网络研究主要参与同学包括:马云飞,郑智隆,刘洪强),之前有一篇介绍XQUIC的相关内容<面向5G的阿里自研标准化协议库XQUIC>,大家有兴趣可以对照阅读。

IMG_3926.JPG

QCon

的草案)

乐装h

aCon

ltipath-quic-02

全球软件开发大会



背景


首先让我们从5G的时代背景推导下对传输通信协议技术可能产生的影响。由于5G空口技术带来的信道能量效率的大幅提升,使得单位流量(Byte)的传输开销下降。其次由于5G基站采用的频段相对于4G更高,由于高频段在链路上损耗更多,使得单个基站的覆盖范围更小,因此也更容易出现信号覆盖空洞的问题。

由于基础设施建设带来的带宽提升,媒体类业务大规模发展,又进一步要求传输技术能够提供有效带宽的保障。


这里大家可以发现,增强型UDP(类似QUIC/RTP/SRT等等)出现百花齐放的发展状态,背后最大的原因有两个:第一个原因是内核态的TCP演进周期慢,难以满足业务发展的诉求;第二个原因是一套实现在内核态的传输协议和拥塞控制算法,也难以满足各类业务场景下差异化的业务诉求。


image.png

从5G背景推导对通讯传输协议技术的影响

AlibabaGroup

现状情况

5GVS4G

单位流量资费下降

以4G为基准在各方面的提升情况

5G空口技术带来信道能量效率大幅提升

5G基站覆盖范围小,高频段在链路上损耗更多

EnhancedMobile

峰值速率

Broadband(eMBB)

5G(4.9GHz)基站覆盖范围150~200米

(Gbps)

4G(1.9GHz)覆盖范围在300-400米(密集城区)

用户体验速率(Mbps)

区域容量

(Mbps/m2)

媒体类业务的大规模发展,要求链路提供有效带宽保障

100

TCP的演进周期难以满足诉求

增强型UDP百花齐放

4G

能量效率

标准化的选择

100x

频谱效率

10x

最通用的增强型UDP协议QUIC

lnternetofThings

利用cellular/wifi双通道技术,两条通道互为补偿

(IoT)

10元

协议栈支持多路径>MultipathQUIc

移动速度

(km/h)

连接密度

5G切片技术提供不同场景网络SLA保障

UltraReliableLow

(设备/千米2)

Latency(URLLC)

一套固定拥塞控制算法(参数)难以满足全场景需求(大

延时

带宽和低延迟),算法需要随场景做定制调优

ms)

Source:MU-RM.2038.0

关于传输通信协议的发展过程,这里还是要多说两句。这张图上展示了QUIC的发展历程,以及我们在手淘上实践的传输通信协议的发展过程。在过去,我们也曾经因为标准化的TLS/1.2握手流程相对于无线端太慢,当时TLS/1.3标准也还在演进过程中,于是我们上线了私有加密协议SlightSSL并快速解决了业务流量加密通信的问题。当后续的TLS/1.3出现之后,我们同样面临升级并替换掉过去的私有方案的问题。


关于私有协议还是标准化协议的取舍,我的观点是,如果标准化协议并没有适合当下的业务场景诉求的解决方案,那么设计一套私有协议并快速满足业务诉求是完全合理的;当标准化方案演进到能够提供对应能力时,采用标准化的解决方案会是更合理的选择。


2021年注定将会是不平凡的一年。在这一年里,IETF QUIC经历了工作组四年的草案修订,终于将要Release成为RFC。我们实现的XQUIC也将在这一年里开源。


image.png

协议的发展过程

AlibabaGroup

QUIC工作组

IETFQUIC

IETFQUIC

Google

Google

IETFQUIC

MultipathQUIc

基础草案

持续修订

开始研究

规模化部薯

基础草案

工作组成立

成为工作组草案?

提交到IESG

6个基础草案

发布RFC

GQUIC

GQUIC

2021Q2?

2021Q1

2013

2018

2017

2020

2015

2016

手淘团队

手淘集成

手淘用SPDY

手淘自研

XQUIC开源

手淘在

手淘全量

并使用

开始自研

私有轻量

正式版本集

构建双向信道

升级HTTP/

XQUIC

GQUIC

传输能力

加密协议

2.0

成XQUIC

支持IETF

slightSSL

QUIC版本

从私有

标准化

私有协议能够快速满足业务送代上线的需求,

但在长远历史周期中,难以相较于标准化协议存活更长的生命周期


QUIC本质上是一个灵活的Reliable / Unreliable传输协议框架。关于QUIC的特性大家都了解的很多,需要纠正的几个经典认知误区:


  1. “QUIC是TCP的替代品,所以只支持可靠传输” —— 实际上QUIC在UDP之上可以提供可靠 以及 非可靠传输的双向流能力。有一篇工作组草案<An Unreliable Datagram Extension to QUIC>[1]专门描述非可靠传输协议设计。
  2. “QUIC只在弱网场景有提升效果” —— 实际上我们在RPC请求(MTOP请求)场景切量到QUIC之后,大盘首包耗时以及整体请求耗时都降低了15%以上。同时QUIC在弱网长尾场景下的效果确实是更加明显的。
  3. “QUIC是HTTP/3的一部分,所以只能使用HTTP作为应用层协议” —— 实际上由于QUIC协议族良好的分层设计,QUIC-Transport传输层上是可以承载任意其他的应用层协议的,例如像上传协议、RTMP等。


image.png

XQUIC为什么选择标准+自研?

AlibabaGroup

HTTP/2.0

HTTP/1.1

应用层

QUIC

HTTP/3.0

应用层

Others

TLS/1.2

TLS/1.3

表示层

TLS/1.3

应用层

软件控制

QUIC-Transport

会话层

传输层

TCP

UDP

传输层

传输层

操作系统

互联网层

IPV4/IPy6

网络层

互联网层

控制

数抵键路层

一些经典认知误区

网络访间层

物理设备

QUIc是TCP的替代品,所以只支持可靠传输"

物理展

"QUIC只在弱网场景有提升效果"

TCPAP模型

oSI模型

"QUIC是HTTP/3的一部分,所以只能使用HTTP

WhyQUIc

送代周期完全可控的用户态协议栈

作为应用层协议"

在UDP之上提供可靠/非可靠双向流能力

完美兼容HTTP系列,也可以灵活承载其他应用层协议

安全性提升(包括packetheader都进行了加密...)

https://datatrackerietf.org/doc/draft-ietf-quic-datagram/


XQUIC是阿里自研的标准化QUIC实现协议库。关于XQUIC的整体架构和传输框架设计,在上一篇文章中有比较详细的介绍,这里也不再赘述。


image.png

XQUIC整体架构和传输框架设计

AlibabaGroup

标准化协议库XQUIC

图片库

播放器

MtopSDK

用户态协议栈

拥塞控制算法可以灵活送代优化

quic策略下发

NetworkSDK

拥塞控制算法模块(congestioncontrol)

xQUIC

Tnet

Cubic/NewReno/BBRv1/BBRv2

支持Pacing

丢包率,RTT,有效带宽等数据采集

AMDC

LVS/SLB

支撑算法选择/决策

Tengine

Tengine

Tengine

Tengine

公共模块

协议功能模块

xQUIC

Application

ngx_xquic_module

H3Frame封装

日志管理

QPACK

优先级管理

Request管理

ayer

..............................

配置参数管理

握手信息交换

密钥生成

证书校验

对称加解密

流控

基础数据结构

Stream管理

MTU探测

Frame封装

XQUIC

Transport

拥塞控制

Packet封装

丢包检测

连接管理

内存管理

IETF标准化协议库

Layer

UDPsocket



多路径传输技术Multi-path QUIC



关于前面提到的5G NSA的信号覆盖空洞问题,我们也可以考虑结合非蜂窝网络的通道进行多通道传输。多通道(Multipath)技术的核心在于通过多条(物理)链路来保障网络通信的可靠性和稳定速率。


由于手淘是无线端APP,我们主要考虑的场景还是复用Wi-Fi和Cellular双通道,同时在单边信号强度弱的情况下,通过另一边通道进行补偿,并保障整体的通信质量和带宽。过去在TCP基础上也有Multipath TCP[2]的协议,以及内核态实现。Apple等手机厂商也将MPTCP应用于Siri / APNS消息推送 / Apple Music等场景下,用来优化体验。


image.png

Multipath技术

AlibabaGroup

单位流量资费在持续下降(5G会进一步下降)

多路径技术核心在于通过多条(物理)链路保障网络通信

的可靠性和稳定速率

在用户/厂商可接受的成本范围内,提升网络体验

无线端应用场景

对于手机APP考虑复用WiFi和蜂窝移动网络双通道

在单边信号强度弱的情况下,通过另一边通道补偿,

ApplePush

Siri

AppleMusic

效果明显

Notificationservice

Apple的策略:

ios内核协议栈实现了MPTCP

开放了系统接口,但内部有严格限速(控制流量资费)

早期用在信令场景,今年音频上也开始使用

音乐播放卡顿次数减少13%,卡顿持续时间减少22%


我们很自然地考虑将QUIC和多路径技术进行结合,也就是多路径QUIC(Multipath QUIC)。该项技术是淘系架构团队、达摩院XG实验室/AIS网络研究团队联合研究并实现的多路径传输技术。


Multipath QUIC[3]是实现在QUIC传输层内部的多路径协议栈。相较于在应用层建立多条连接并在应用层进行分配流量和调度的方案,在协议栈内部实现多路径的好处是对于应用层透明,使用方便;同时多路径packet调度需要紧密结合路径传输层的信息(RTT/丢包率等测量信息),这在应用层也是很难做到的。相较于传统的内核态多路径解决方案MPTCP,Multipath QUIC也有易于部署迭代等优势,同时作为用户态协议栈,也更容易结合应用层需求进行调度算法的优化。


image.png

MultipathQUIC

AlibabaGroup

协议设计上的一些考量

MultipathQUIC协议栈模型

最小化

其他应用层协议

应用层

HTTP/3

RTMP

尽量复用QUIC-v1连接迁移的机制

不引入不必要的概念

3(可选)

QUIC-TLS/1.3(

穿透性

不要修改QUIC-v1的header格式,避免

被中间网络设备丢弃报文

Multipath-Quic(Transport)

路径唯一标识

使用ConnectionID的编号来做路径的

唯一标识

UDP

传输层

UDP

UDP

每条路径分别维护

拥塞控制算法上下文

网络层

RTT测量信息

路径MTU发现

物理层

其他

WiFi接口

4G/5G接口

更多细节...详见下方链接(我们的草案)

https:/tools.ietf.org/html/draft-liu-multipth-quic-2


传输协议设计与系统架构设计有很多异曲同工之处。好的传输协议设计与系统架构设计都具备简洁、灵活、便于扩展等特点,每一个新概念的引入都应当有其必要性。我们在设计Multipath QUIC协议的过程当中,进行了大量的讨论和反复推敲。


QUIC-v1[4]提供了良好的协议扩展性,其中QUIC-Transport已经支持连接迁移(connection migration)能力,所以我们仅对QUIC-v1进行了最小化扩展,使得传输层可以支持同时在多条路径上发送数据。在协议穿透性的方面,考虑到为了避免被仅识别QUIC-v1报文格式的middle box丢弃报文,我们选择尽量不修改QUIC-v1的header格式。由于不同路径的报文需要有路径唯一标识进行区分识别,我们使用Connection ID的编号(sequence number)来做路径的唯一标识,并以此区分来自于不同路径的packet。此外,我们需要针对每条路径分别维护拥塞控制算法的上下文,RTT测量信息,以及路径的MTU发现等信息。


image.png

client

server

ondefaultpath)

start

(ExChanges

1-RTTIJ:NEW_CONNECTIOND[CI>

1-RTT:NEW_CONNECTIONDS

<--

1-RTT:NEWCONNECTIONID[S2

(startsnewpath)

1-RTT[0]:

DCID-S2PATHCHALLENGEX

ChecksAEADusingnonce(cIDsequence2,

PN0)

<--1-RTT[0]:DCID-C1,PATHRESPONSE[X],PATHCHALLENGE

E[Y],

ACKMP[Seg-1,P-

1,

PN0)

ChecksAEADusingnonce(CID

sequence

1-RTTJ:DCID

DCID-S2,PATHRESPONSE[Y]

ACKMP[Seg-1,PN-0],

-->

Figure1:Exampleofnewpathestabiishment

最新Multipath QUIC版本草案的新建路径流程


由于手淘在大力发展内容生态,我们将这项技术应用于手淘短视频的上传和下载场景(目前在灰度中),可以同时使用Wi-Fi和LTE进行传输,并提供更好的QoE体验。在视频场景下,主要的效果是可以加速视频的上传和下载,同时可以降低在弱网场景下视频的卡顿率和re-buffering时间。


image.png

在手机淘宝中应用多路径传输技术

AlibabaGroup

手机淘宝

4Gor5G

A

酸耳属针

桂南康啊

鹿速中心

UploadServer

百策南宝天留著湿

Client

聚镇H达女

Wi-Fi

7808

790

美国Creaky超卷测楼礼片教盛习

在Video/File上传场景使用

790-890061780D

强州育比村家一童型司隆饭

911购

巴量6D

4Gor5G

(RA"

Shortvideos

Staticpictures

CDNServer

Client

MultipathQUIC可以同时使用Wi-Fi&LTE进行传输,

Wi-Fi

提供更好的QoE体验,例如在视频场景下:

加速视频上传和下载;

降低视频卡顿和re-buffering;

在Video播放场景使用


我们来实际看一下多路径传输技术的效果如何。下面的视频内容是我们在手淘灰度版本集成Multipath QUIC技术的效果展示。其中左边的手机是集成了多路径传输的版本,可以同时使用Wi-Fi和LTE,右边是单路的版本,只能使用Wi-Fi。可以看到,当Wi-Fi出现带宽波动,右边播放的短视频会出现卡顿,与此同时左边能够流畅播放。

,时长00:14

在多路径技术的演进过程中,还有很多问题需要解决,例如MP-HOL[5]问题:当两条路径的传输能力差异较大,慢的一条路径可能拉长分片整体的传输时长。对于路径调度的算法,以及与拥塞控制算法的结合,也还有很多值得探索之处。



标准化相关


在上次介绍XQUIC的内容发出后,我们收到IETF QUIC标准化工作组主席Lars Eggert邀请,XQUIC加入到IETF QUIC实现的互通性验证中。前段时间我们也参加了工作组组织的Multipath QUIC主题Interim Meeting,介绍Alibaba对Multipath QUIC的应用场景以及我们的草案和实现相关情况[7]。


在IETF草案方面我们也与XG实验室/阿里云网络研究团队、集团标准化部,以及原Internet Architecture Board的主席Christian Huitema进行了深度论证与合作,目前阿里巴巴的Multipath QUIC草案[6]已经演进到02版本,期望收到更多的应用场景的需求说明。如果你对多路径技术也感兴趣或者想使用在你的场景下,欢迎邮件与我们交流。



开源计划


上一篇介绍XQUIC的文章发出后,有不少内部和外部的小伙伴,联系我们询问XQUIC的开源计划。这里首先感谢大家的支持和关注,要跟大家说一声特别抱歉,我们在开源进度上有一些delay。由于QUIC 6个基础草案的最新版本又做了一些更新,我们仍然在努力完善最新的draft版本功能。我们最新的计划是在2021年的Q1能够正式开源XQUIC。


附录:参考文献


[1] <An Unreliable Datagram Extension to QUIC>: QUIC非可靠传输协议草案

https://datatracker.ietf.org/doc/draft-ietf-quic-datagram/

[2] Multipath TCP:

https://datatracker.ietf.org/wg/mptcp/documents/

[3] Multipath QUIC: 多路径QUIC传输技术

[4] QUIC-v1: 指IETF QUIC的6个基础草案:包括Invariants、Transport、QUIC-TLS、Recovery and Loss detect、HTTP/3 以及QPACK

[5] 多路径Head-of-line blocking问题

http://blog.multipathtcp.org/blog/html/2014/03/30/why_is_the_multipath_tcp_scheduler_so_important.html

[6] 阿里巴巴多路径QUIC草案:Yanmei Liu, Yunfei Ma, Christian Huitema, Qing An, and Zhenyu Li. Multipath Extension for QUIC.  Internet-Draft draft-liu-multipath-quic-02, Internet Engineering Task Force, December 2020. Work in Progress.

https://datatracker.ietf.org/doc/draft-liu-multipath-quic/

[7] IETF Interim Meeting报告:Yanmei Liu and Yunfei Ma, Multi-path QUIC use cases: https://github.com/quicwg/wg-materials/blob/master/interim-20-10/MPQUIC%20use%20cases.pdf


相关文章
|
6天前
|
网络协议 物联网 网络性能优化
物联网江湖风云变幻!MQTT CoAP RESTful/HTTP XMPP四大门派谁主沉浮?
【8月更文挑战第14天】本文概览了MQTT、CoAP、RESTful/HTTP及XMPP四种物联网通信协议。MQTT采用发布/订阅模式,轻量高效;CoAP针对资源受限设备,基于UDP,低延迟;RESTful/HTTP易于集成现有Web基础设施;XMPP支持双向通信,扩展性强。每种协议均附有示例代码,助您根据不同场景和设备特性作出最佳选择。
15 5
|
3月前
|
网络协议 数据库 数据安全/隐私保护
华为数通HCIP 821BGP 知识点整理
华为数通HCIP 821BGP 知识点整理
85 0
|
11月前
带你读《2022技术人的百宝黑皮书》——HTTP3 RFC标准正式发布, QUIC会成为传输技术的新一代颠覆者吗?(4)
带你读《2022技术人的百宝黑皮书》——HTTP3 RFC标准正式发布, QUIC会成为传输技术的新一代颠覆者吗?(4)
|
11月前
|
Web App开发 网络协议 网络性能优化
带你读《2022技术人的百宝黑皮书》——HTTP3 RFC标准正式发布, QUIC会成为传输技术的新一代颠覆者吗?(1)
带你读《2022技术人的百宝黑皮书》——HTTP3 RFC标准正式发布, QUIC会成为传输技术的新一代颠覆者吗?(1)
135 0
|
11月前
|
tengine 网络协议 算法
带你读《2022技术人的百宝黑皮书》——HTTP3 RFC标准正式发布, QUIC会成为传输技术的新一代颠覆者吗?(2)
带你读《2022技术人的百宝黑皮书》——HTTP3 RFC标准正式发布, QUIC会成为传输技术的新一代颠覆者吗?(2)
|
11月前
|
tengine 网络协议 Linux
带你读《2022技术人的百宝黑皮书》——HTTP3 RFC标准正式发布, QUIC会成为传输技术的新一代颠覆者吗?(3)
带你读《2022技术人的百宝黑皮书》——HTTP3 RFC标准正式发布, QUIC会成为传输技术的新一代颠覆者吗?(3)
|
11月前
|
监控 安全 网络协议
HCIE-Datacom Day01:HCIA理论学习:数通通信网络基础
HCIE-Datacom Day01:HCIA理论学习:数通通信网络基础
92 0
|
机器学习/深度学习 存储 人工智能
《云上新势力 CLOUD IMAGINE》——Part 2 演讲/文章合集——文章8:《OPPO云边端的协同实践》(上)
《云上新势力 CLOUD IMAGINE》——Part 2 演讲/文章合集——文章8:《OPPO云边端的协同实践》(上)
235 0
|
机器学习/深度学习 存储 人工智能
《云上新势力 CLOUD IMAGINE》——Part 2 演讲/文章合集——文章8:《OPPO云边端的协同实践》(下)
《云上新势力 CLOUD IMAGINE》——Part 2 演讲/文章合集——文章8:《OPPO云边端的协同实践》(下)
153 0
|
Web App开发 安全 算法
【WebRTC原理探索】未来可期,WebRTC的诞生发展
【WebRTC原理探索】未来可期,WebRTC的诞生发展
268 0
【WebRTC原理探索】未来可期,WebRTC的诞生发展