多路径传输(MPTCP MPQUIC)数据包调度研究总结

近些年来,以5G和Wifi6为代表的无线通信技术发展迅速,并已经在全世界实现了大规模部署。此外,智能手机等移动设备不断迭代更新,其网络通信能力也持续演进,使得应用同时利用多个不同网卡在多条不同物理链路上(如5G和WiFi)传输数据成为可能。加之新兴应用对于带宽的需求与日俱增,多路径传输技术得到了广泛关注。

多路径传输基于不同的传输层协议,主要分为多路径TCP(Multipath TCP,MPTCP)[1]和多路径QUIC (Multipath QUIC,MPQUIC) [2-4] 两类。MPTCP是传输层使用最广泛的多路径技术,并已经得到了商用智能手机操作系统如iOS[5]和Android[6]的支持。然而,TCP本身存在固有弊端,例如其实现在内核级别,难以与应用层进行结合,且对于应用提供商而言难以进行针对性的性能优化。为解决这一问题,MPQUIC利用了QUIC传输协议[7-8]的用户空间特性,可以方便地集成并部署到应用中。

概述

多路径传输领域的学术研究,在过去主要针对MPTCP开展。MPQUIC的部分核心设计仍沿用MPTCP,不过其基于QUIC和易与应用结合的特性,使其能够针对不同应用(如点播视频、短视频、低时延实时视频等)进行深入优化。

多路径的研究内容主要包括[9]:数据包调度、多路径(耦合)拥塞控制、子流/路径管理、能耗[27]、安全性等。其中,数据包调度是多路径设计最核心的部分之一。数据包调度器负责确定每个数据包应该由哪个路径(子流)进行发送,致力于解决两个关键问题[10-11]:

  • 多路径队首阻塞(Head-of-Line blocking):由在慢子流分配过多数据引起,由于多路径传输需保证按序交付,快子流必须等待慢子流数据包到达,从而导致整体传输性能下降;
  • 接收缓冲区(窗口)限制:由数据包乱序到达引起,慢子流的数据包占据了接收缓冲区,导致发送窗口被阻塞,影响快子流的充分利用。

本文重点梳理多路径传输中数据包调度机制的设计空间与发展历程。

设计空间

多路径数据包调度器可以分为四类:(相关综述可以参见:[9][29-32])

(1) 简单调度器

  • 轮询(Round-Robin,RR):没有优先级,按照轮询的顺序将数据包填满各子流的发送窗口
    • 不足:忽略外部因素(拥塞、丢包等)对子流传输的影响,无法保证数据包按序到达
  • 最小往返时延优先(Lowest-RTT-First,LowRTT/MinRTT)[10]:将子流按RTT大小确定优先级,按优先级排序将数据包依次填满子流的发送窗口
    • 优势:让路径质量好的子流承载更多的数据包,有一定负载均衡的效果
    • 不足:无法保证数据包按序到达,存在多路径HoL阻塞和接收窗口限制等问题
  • 机会性重传和惩罚(opportunistic retransmission and penalization,RP)[11]:为了补偿不同路径上的时延差异以缓解HoL阻塞,机会重传会在其他可用子流重传(重注入)引发HoL的数据包,惩罚机制会将阻塞的子流的拥塞窗口减半以限制其使用
    • 不足:惩罚机制会减少聚合带宽
  • 缓冲区膨胀缓解(bufferbloat mitigation,BM)[12]:通过限制传输的数据量(拥塞窗口减半)来排空网络缓冲区中的队列,从而降低RTT
    • 不足:随机作用,不总是有效,会反复触发拥塞
  • ReMP[13]:为了提高可靠性,将数据包冗余发送到所有子流上
    • 不足:会产生额外的开销
  • eMPTCP[14]:在路径管理和数据包调度中考虑多路径的功耗
    • 不足:主要针对功耗进行设计,没有考虑性能提升

MPTCP默认调度器用的是MinRTT[10]+RP[11],也包含RR与ReMP[13]。

(2) 基于路径质量估计的调度器
如BLEST[21],ECF[22],MuSher[25]等

(3) 基于路径时延差的调度器
如DEMS[23],STMS[24],RAVEN[26]等

(4) 基于机器学习的调度器
如ReLes[27],Peekaboo[28]等

其中,第二、三类和第四类的大部分工作,其设计思想可以统一归为“乱序发生,按序到达”。

乱序发送,按序到达

目前主流的数据包调度器采用乱序发送,按序到达的思想:并非将连续的数据包分别分配到快子流和慢子流上(如MinRTT[10]),而是为快子流提前预留一部分数据包(超出其拥塞窗口,以便下一个RTT发送),以尽可能多地利用快子流进行传输,从而提高多路径传输整体的聚合带宽。其核心思想如下图所示[24]:
image.png

代表性研究工作的发展过程为:

  • Westwood SCTP[15]:根据RTT与可用带宽估计值,估计不同路径上数据包的到达时间,据此对每条传输路径进行性能排序,并按降序选择路径传输数据包
    • 不足:当不同路径之间存在显着不同的时延时效果不佳
  • FPS(Forward Prediction Scheduling)[16]:估计传输路径上数据包的到达时间以及其他路径(非传输路径)上的数据传送时间,实现所有路径上的数据同时到达
    • 不足:没有考虑丢包的影响[9]
  • F2P-DPS(Fine-grained Forward Prediction based Dynamic Packet Scheduling)[17]
  • DAPS(Delay Aware Packet Scheduling)[18-19]:有两个版本
    • [18] :在接收buffer受限的环境下,为了减少接收buffer的阻塞时间,基于子流的转发时延倒数和CWND来确定各子流分配的数据包数量,按照时延从小到大的顺序依次为各子流分配数据包,确保在各子流转发时延的最小公倍数(LCM)内,所有数据包按序到达
    • [19]:针对只有两个子流的场景设计,是原始算法[18]的简化及实践扩展,提出了最大接收buffer阻塞时间的分析模型
    • 不足:若子流时延的差异较大(LCM较大),则调度时间(周期)较长,无法及时对网络变化做出反应;使用所有可以发送的子流,即使某个子流的贡献非常低(慢路径);没有考虑使用重注入(重传)[21]
  • OTIAS(Out-of-order Transmission for In-order Arrival Scheduling)[20]:
    • 不足:没有考虑拥塞窗口的可用性,可能会导致不必要的重传[21-22]
  • BLEST(BLocking ESTimation)[21]:为了避免慢子流数据包阻塞发送窗口,使用RTT和CWND等参数计算快子流(在一个慢子流的RTT内)可以发送的数据包数量,通过减少不必要的重传次数来最小化HoL阻塞
    • 不足:会导致部分子流(如空闲的快子流[22])未充分利用,从而延长较大文件的下载时间
  • ECF(Earliest Completion First)[22]:利用RTT、带宽(拥塞窗口大小)、发送缓冲区等信息估计数据包传输时间,当无待发数据(发送缓冲区为空)时视情况等待可用快子流(而非直接使用慢子流发送),尽可能提高快子流的利用率,从而提升聚合吞吐量
    • 不足:在多数时间里,大象流的发送缓冲区都是满的,ECF只有在流即将结束时(尾部数据包)才能起到调度作用。 此外,ECF在计算流完成时间(FCT)时没有考虑单向延迟,因此无法实现准确的有序到达[24]
  • DEMS(DEcoupled Multipath Scheduler)[23]:感知数据块边界,快子流从前向后发送,慢子流从后向前发送,以此将子流解耦,通过估计RTT(单向时延,OWD)和带宽来实现快慢子流传输的同时完成,并根据网络情况重注入数据包
    • 不足:需要一个巨大的缓冲区来存储整个块[24];主要针对两个子流进行设计,多路径扩展性不佳[26]
  • STMS(Slide Together Multipath Scheduler)[24]:为了解决链路及接收端缓冲区受限时多路径聚合带宽下降的问题,根据数据包被ACK的情况,来动态调节快慢子流间数据包序列号的间隔(gap),以充分利用快子流并实现数据包的按序到达
    • 不足:调节gap的过程偏启发式,可能不是最优策略

参考文献

  1. Ford A, Raiciu C, Handley M, et al. TCP extensions for multipath operation with multiple addresses[R]. 2013.
  2. Olivier Bonaventure. Apple uses Multipath TCP[EB/OL]. [2018-12-15]. http://blog.multipath-tcp.org/blog/html/2018/12/15/apple_and_multipath_tcp.html.
  3. Olivier Bonaventure. In Korean, Multipath TCP is pronounced GIGA Path[EB/OL]. [2015-07-24]. http://blog.multipath-tcp.org/blog/html/2015/07/24/korea.html.
  4. De Coninck Q, Bonaventure O. Multipath quic: Design and evaluation[C]//Proceedings of the 13th international conference on emerging networking experiments and technologies. 2017: 160-166.
  5. Viernickel T, Froemmgen A, Rizk A, et al. Multipath QUIC: A deployable multipath transport protocol[C]//2018 IEEE International Conference on Communications (ICC). IEEE, 2018: 1-7.
  6. Liu Y, Ma Y, De Coninck Q, et al. Multipath Extension for QUIC[R]. 2023.
  7. Iyengar J, Thomson M. QUIC: A UDP-based multiplexed and secure transport[M]//RFC 9000. Fremont, CA, USA: Internet Engineering Task Force (IETF), 2021.
  8. Langley A, Riddoch A, Wilk A, et al. The quic transport protocol: Design and internet-scale deployment[C]//Proceedings of the conference of the ACM special interest group on data communication. 2017: 183-196.
  9. 薛开平, 陈珂, 倪丹, 等. 基于 MPTCP 的多路径传输优化技术综述[J]. 计算机研究与发展, 2016, 53(11): 2512-2529.
  10. Paasch C, Ferlin S, Alay O, et al. Experimental evaluation of multipath TCP schedulers[C]//Proceedings of the 2014 ACM SIGCOMM workshop on Capacity sharing workshop. 2014: 27-32.
  11. Raiciu C, Paasch C, Barre S, et al. How hard can it be? designing and implementing a deployable multipath {TCP}[C]//9th USENIX symposium on networked systems design and implementation (NSDI 12). 2012: 399-412.
  12. Ferlin-Oliveira S, Dreibholz T, Alay Ö. Tackling the challenge of bufferbloat in multi-path transport over heterogeneous wireless networks[C]//2014 IEEE 22nd International Symposium of Quality of Service (IWQoS). IEEE, 2014: 123-128.
  13. Frommgen A, Erbshäußer T, Buchmann A, et al. ReMP TCP: Low latency multipath TCP[C]//2016 IEEE international conference on communications (ICC). IEEE, 2016: 1-7.
  14. Lim Y, Chen Y C, Nahum E M, et al. Design, implementation, and evaluation of energy-aware multi-path TCP[C]//Proceedings of the 11th ACM Conference on Emerging Networking Experiments and Technologies. 2015: 1-13.
  15. Casetti C, Gaiotto W. Westwood SCTP: load balancing over multipaths using bandwidth-aware source scheduling[C]//IEEE 60th Vehicular Technology Conference, 2004. VTC2004-Fall. 2004. IEEE, 2004, 4: 3025-3029.
  16. Mirani F H, Boukhatem N, Tran M A. A data-scheduling mechanism for multi-homed mobile terminals with disparate link latencies[C]//2010 IEEE 72nd Vehicular Technology Conference-Fall. IEEE, 2010: 1-5.
  17. Ni D, Xue K, Hong P, et al. Fine-grained forward prediction based dynamic packet scheduling mechanism for multipath TCP in lossy networks[C]//2014 23rd international conference on computer communication and networks (ICCCN). IEEE, 2014: 1-7.
  18. Sarwar G, Boreli R, Lochin E, et al. Mitigating receiver’s buffer blocking by delay aware packet scheduling in multipath data transfer[C]//2013 27th international conference on advanced information networking and applications workshops. IEEE, 2013: 1119-1124.
  19. Kuhn N, Lochin E, Mifdaoui A, et al. DAPS: Intelligent delay-aware packet scheduling for multipath transport[C]//2014 IEEE international conference on communications (ICC). IEEE, 2014: 1222-1227.
  20. Yang F, Wang Q, Amer P D. Out-of-order transmission for in-order arrival scheduling for multipath TCP[C]//2014 28th international conference on advanced information networking and applications workshops. IEEE, 2014: 749-752.
  21. Ferlin S, Alay Ö, Mehani O, et al. BLEST: Blocking estimation-based MPTCP scheduler for heterogeneous networks[C]//2016 IFIP networking conference (IFIP networking) and workshops. IEEE, 2016: 431-439.
  22. Lim Y, Nahum E M, Towsley D, et al. ECF: An MPTCP path scheduler to manage heterogeneous paths[C]//Proceedings of the 13th international conference on emerging networking experiments and technologies. 2017: 147-159.
  23. Guo Y E, Nikravesh A, Mao Z M, et al. Accelerating multipath transport through balanced subflow completion[C]//Proceedings of the 23rd Annual International Conference on Mobile Computing and Networking. 2017: 141-153.
  24. Shi H, Cui Y, Wang X, et al. {STMS}: Improving {MPTCP} throughput under heterogeneous networks[C]//2018 USENIX Annual Technical Conference (USENIX ATC 18). 2018: 719-730.
  25. Saha S K, Aggarwal S, Pathak R, et al. MuSher: An agile multipath-TCP scheduler for dual-band 802.11 ad/AC wireless LANs[C]//The 25th Annual International Conference on Mobile Computing and Networking. 2019: 1-16.
  26. Lee H J, Flinn J, Tonshal B. RAVEN: Improving interactive latency for the connected car[C]//Proceedings of the 24th Annual International Conference on Mobile Computing and Networking. 2018: 557-572.
  27. Zhang H, Li W, Gao S, et al. ReLeS: A neural adaptive multipath scheduler based on deep reinforcement learning[C]//IEEE INFOCOM 2019-IEEE Conference on Computer Communications. IEEE, 2019: 1648-1656.
  28. Wu H, Alay Ö, Brunstrom A, et al. Peekaboo: Learning-based multipath scheduling for dynamic heterogeneous environments[J]. IEEE Journal on Selected Areas in Communications, 2020, 38(10): 2295-2310.
  29. Polese M, Chiariotti F, Bonetto E, et al. A survey on recent advances in transport layer protocols[J]. IEEE Communications Surveys & Tutorials, 2019, 21(4): 3584-3608.
  30. Kimura B Y L, Lima D C S F, Loureiro A A F. Packet scheduling in multipath TCP: Fundamentals, lessons, and opportunities[J]. IEEE Systems Journal, 2020, 15(1): 1445-1457.
  31. Chao L, Wu C, Yoshinaga T, et al. A brief review of multipath tcp for vehicular networks[J]. Sensors, 2021, 21(8): 2793.
  32. Asiri M Y. A Survey of Multipath TCP Scheduling Schemes: Open Challenges and Potential Enablers[J]. 2021.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/195743.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

性价比开放式蓝牙耳机推荐哪款、性价比最高的开放式耳机

传统的耳机设计虽然便携,但却可能给一些需要长时间佩戴的用户带来不适。长时间封闭在耳机内可能导致耳朵不透气,甚至引起疼痛。这就是为什么近年来开放式耳机越来越受欢迎的原因。这种耳机设计无需直接插入耳道,采用挂耳的佩戴方式&#xff0…

Python3+selenium自动化测试框架详解

背景 为了更好的发展自身的测试技能,应对测试行业以及互联网行业的迭代变化。自学python以及自动化测试。 虽然在2017年已经开始接触了selenium,期间是断断续续执行自动化测试,因为还有其他测试任务,培训任务要执行… 前期建议大…

W11+Ipv6+可道云+PHPstudy实现私人云盘搭建

W11Ipv6可道云PHPstudy实现私人云盘搭建 一、搭建原因二、搭建过程软件选择服务器环境管理软件私人云盘 可道云搭建小皮面板搭建 三、相关配置程序开机自启远程关机远程开机 四、相关参考 一、搭建原因 工位电脑上一些文件想备份到家里电脑,购买NAS又有点多余&…

solidity实现ERC1155多代币标准

文章目录 1、NFT - 维基百科2、IERC1155MetadataURI3、IERC1155Receiver4、IERC11555、ERC11556、NFT11557、开源地址 1、NFT - 维基百科 ERC-1155 标准于2018年6月由Witek Radomski、Andrew Cooke、Philippe Castonguay、James Therien、Eric Binet及Ronan Sandford提出。此标…

从微软官网下载系统镜像重装的方法

一、制作系统镜像介质U盘 1、在一台能够正常进入系统的电脑中登录以下网址:https://www.microsoft.com/zh-cn/software-download/windows10, 点击立即下载工具。 2、在下载完成后,双击打开,选择为另一台电脑创建安装介质&#xf…

controller能接收到数据有数据但是前端无法显示数据

又是制作系统时遇到的问题。只是想做个查询商品的页面,结果弄了一天,在网上各种查问题,各种解决办法用在我的代码上,换了无数种关键词搜索终于找到了一条成功解决了问题。 问题描述: 事情是这样的:我要写一…

云原生之深入解析Kubernetes策略引擎对比:OPA/Gatekeeper与Kyverno

一、前言 ① Kubernetes 策略 Kubernetes 的 Pod Security Policy,正如其名字所暗示的,仅是针对 Pod 工作的,是一种用来验证和控制 Pod 及其属性的机制。另外 PSP 只能屏蔽非法 Pod 的创建,无法执行任何补救/纠正措施。而 Gatek…

如何将Java条码Dynamsoft Barcode Reader集成到命令行、GUI和Web应用程序中

Dynamsoft Barcode Reader SDK一款多功能的条码读取控件,只需要几行代码就可以将条码读取功能嵌入到Web或桌面应用程序。这可以节省数月的开发时间和成本。能支持多种图像文件格式以及从摄像机或扫描仪获取的DIB格式。使用Dynamsoft Barcode Reader SDK,…

实验案例二:多表查询

1、表联接类型。 表联接类型可以分为内联接.外联接和交叉联接等。 1.内联接。 内联接〈 inner join)是最常用的-一-种联接方式,只返回两个数据集合之间匹配关系的行,将位于两个互相交叉的数据集合中重叠部分以内的数…

ROS第一个程序——helloworld

目录 一、工作空间的创建 1.创建工作空间并初始化 2.进入 src 创建 ros 包并添加依赖 二、C实现helloworld C源码实现 编辑 ros 包下的 Cmakelist.txt文件 进入工作空间目录并编译 执行 三、python实现helloworld 进入 ros 包添加 scripts 目录并编辑 python 文件 …

推荐6个AI相关开源项目

1.GPT 学术优化 - 一个专注优化论文的 AI 工具 🌐开源地址:https://github.com/binary-husky/gpt_academic 🖥️体验地址:https://huggingface.co/spaces/qingxu98/gpt-academic 📄该工具可以为你的论文提供一键润色…

flink安装与配置-脚本一键安装(超简单)

文章目录 前言使用shell脚本一键安装1. 复制脚本2. 增加执行权限3. 执行脚本4. 加载用户环境变量5. 浏览器访问 总结 前言 本文介绍了使用shell脚本一键安装和配置Apache Flink单机版的方法。通过复制并执行提供的安装脚本,可以自动下载、安装和配置Flink。脚本会检…

ZYNQ_project:HDMI

实验目标:先显示彩条,通过uart串口传输100x100 大小图片像素信息,然后开始弹跳显示该图片在显示器上。 HDMI 是新一代的多媒体接口标准, 英文全称是 High-Definition Multimedia Interface, 即高清多媒体接口。 它能够…

录视频人不在电脑旁,怎么设置定时关机

如果你平常工作比较忙,或者要录制的视频/音频文件需要很长时间,最好选择预约录制,这样可使录屏软件自动开始和停止录制,并且定时关机。此外,你还可以设置保存录制文件、关闭录屏软件。是不是听起来很感兴趣&#xff1f…

进程程序替换和shell实现

先前fork说创建子进程执行代码,如何让子进程执行和父进程完全不一样的代码?程序替换。 一 单进程替换演示 1 execl函数使用 最近转到在vs code下写代码,之前也在xhell下用过execl函数,所以才想写篇博客总结总结,没想到在vs code…

Docker Compose简单入门

Docker Compose 简介 Docker Compose 是一个编排多容器发布式部署的工具,提供命令集管理容器化应用的完整开发周期,包括服务构建,启动和停止。 Docker Compose 真正的作用是在一个文件(docker-compose.yml)中定义并运…

Arthas安装及简单使用

一. 背景介绍 Arthas 是 Alibaba 在 2018 年 9 月开源的 Java 诊断工具。支持 JDK6, 采用命令行交互模式,提供 Tab 自动补全,可以方便的定位和诊断线上程序运行问题。得益于 Arthas 强大且丰富的功能,让 Arthas 能做很多的事情&a…

超声波眼镜清洗机是智商税吗?2023年超声波清洗机比较不错推荐

随着科技的日新月异,我们生活中充满了各种各样的智能设备。其中,超声波清洗机以其独特的清洗能力,逐渐走进我们的生活。然而,对于很多人来说,超声波清洗机还是一个相对陌生的概念。那么,超声波清洗机到底是…

P9 链表 清空链表|销毁链表

目录 前言 01销毁链表 02 清空链表 测试代码 前言 🎬 个人主页:ChenPi 🐻推荐专栏1: 《C_ChenPi的博客-CSDN博客》✨✨✨ 🔥 推荐专栏2: 《Linux C应用编程(概念类)_ChenPi的博客-CSDN博客》✨✨✨ …

Markdown语法入门与进阶指南

一、Markdown简介 Markdown是一种轻量级标记语言,创始人为约翰格鲁伯(john Gruber)。它允许人们使用易读易写的纯文本格式编写文档,然后转换成有效的XHTML(或者HTML)文档。这种语言吸收了很多在电子邮件中…