mpquic 2 mfquic

Page content

从MPQUIC到MFQUIC

相关论文:

Multipath QUIC:Design and Evaluation(coNEXT ccfB 2017)

ieft: draft-deconinck-quic-multipath-00

Multiflow QUIC:A Generic Multipath Transport Protocol(1区TOP 2021)

MPQUIC

第一篇是mpquic的开山之作,本文综合考虑了quic协议和mptcp的优势,设计了第一版mpquic协议的雏形。

对于多路径管理,该文扩展connection id的概念到path connection id,给每条子流路径用path ID唯一标识,底层对应映射到udp四元组,设计了一系列新的帧用于新路径的建立,失效路径的清理,切换路径等。

对于多路径数据传输,提出包和帧分离的概念,数据在路径是按包传输,每个包内可以包含多个帧,ACK回传路径和发送路径可独立不同。并且在帧发送丢失或者冗余的时候,可以在其他路径中进行重传。

对于包调度问题,mpquic不光要调度数据包,还需要调度ack,path的控制帧。

对于拥塞控制,最初的mpquic采用了以往的OLIA算法。

该文实验对比了MPTCP算法,分别在四种环境(低时延带宽积有损,高时延带宽积有损,低时延带宽积无损,高时延带宽积无损)下进行了大文件和小文件传输两类实验。实验证明,小文件场景中,rtt占主导,多路径不一定优于单路经,但是quic类的方案一定优于tcp。大文件传输场景中,多路径方案总是由于单路经方案,且mpquic的性能优于mptcp。

MFQUIC

该文是mpquic的演进版本。传统的mptcp由于tcp的设计限制,默认只考虑了对称网络场景。初代版本的mpquic惯性思维设计上也只考虑了对称场景。但是实际上,像卫星网络场景,或是存在防火墙的网络场景等,很多时候是非对称的网络。对称的假设,限制了传输协议的性能。

本文提出uniflow的概念,即单向流。一个端上的mfquic连接是由一系列的发送单向流和接收单向流组成,且和对等端设备镜像相等。每条流由Uniflow Connection ID标识,目标地址是DCID,发送方地址是CID。

建立一条新路径的时候,请求方向服务方发送NEW_CONNECTION_ID和ADD_ADDR帧,服务方接收到后,向请求方发送PATH_CHALLENGE帧进行路径验证,收到ACK确认后,开始在新路径上同步发送数据。

MfQUIC的max_sending_uniflow_id和mpquic的不同,此处的max值针对发送端的同时发送流进行限制,不对接收流数量进行限制。

本文对比了过去的mpquic和mptcp算法,链路质量对称的时候,mfquic的性能优势并不明显。当链路的非对称性很强的时候,即上下行带宽相差很大的时候,mpfquic的优势非常明显。