IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 区块链 -> Libra论文阅读笔记-A unified congestion control framework for diverse application -> 正文阅读

[区块链]Libra论文阅读笔记-A unified congestion control framework for diverse application


论文题目:《A unified congestion control framework for diverse application preferences and network conditions》
CoNEXT’21


一、Overview

目前的拥塞控制算法(CCAs)可以分为传统(classic) 拥塞控制算法和基于学习(learning-based) 的拥塞控制算法。
传统的拥塞控制算法的设计理念都是指定特殊的现象对应特殊的规则,即hard-wired mapping。而基于学习的拥塞控制算法具有更好的适应性(Adaptability)灵活性(Flexibility),但实用性(Practicality) 较差。

特性classiclearning-based
Adaptability??
Flexibility??
Practicality??

本文提出Libra拥塞控制框架,希望集classic和learning-based的优点于一身。

二、问题背景

下面围绕三个特性进行讨论:适应性(Adaptability)灵活性(Flexibility),但实用性(Practicality)

  • Limitation on adaptation
    将不同的CCA算法在Wired和LTE网络下测试——现有的CCA无法适应不同的网络环境。(这其实是通病,没有任何一个算法可以在所有情况下达到最好,都是一个trade-off)

  • Limitation on flexibility
    Classic算法无法应对不同的性能偏好做出调整(the hardwired mapping between predefined events and actions makes the classic CCAs hard to be tuned)

  • Limitation on practicality
    目前除了PCC应该还没有其他的learning-based的算法被部署到实际系统上,特别是这些基于DL和RL的。并且已经部署测试的PCC,效果也并不是很好。

三、Libra方案overview

Libra使用了类似与PCC的utility function来描述不同发送速率对应的网络性能。
Libra包括三个阶段:探索阶段exploration stage、评估阶段evaluation stage、利用阶段exploitation stage
在这里插入图片描述
三个阶段循环周期执行,其中winner sending rate,即绿线,是来自于上一个循环的决策速率。
其中红色、紫色、绿色线分别代表classic sending rate、learning-based sending rate以及上一轮的winner sending rate。
实线代表的是目前Libra应用的速率。在第一个阶段探测阶段中,使用的是classic sending rate。

执行流程:Libra会在上一轮循环中,得到一个winner速率,在exploration stage阶段下,classic方案以该速率作为基础,得到classic sending rate,并且以该速率作为该阶段的发送速率。(同时在该阶段下,会得到classic和learning-based两种方案的发送速率)
在evaluation stage下,逐一评估这两种速率的utility。在最后的exploitation stage,使用上一轮的winner sending rate,同时接收evaluation stage发送的包。在这一阶段中,得到classic和learning-based两个速率对应的utility,决策出一个winner sending rate作下一轮循环使用。

对于没收到ACK的处理方案:
在exploration stage没收到ACK时,保持learning-based的发送速率,并跳过相应的action。如果在其他stage没收到ACK,则直接使用当前的winner sending rate接着进入下个循环。

四、Libra方案设计

  • Exploration Stage
    在该阶段下,从速率 x p r e v x_{prev} xprev?开始,classic CCA会在每个ACK时,改变速率;同时收集网络性能的统计数据,用于learning-based CCA的训练。(兼顾classic探测网络环境比较快,learning-based探测网络环境比较准的特点)

但何时退出该阶段呢?
在这里插入图片描述
由该图可以看到,当两种情况发送时,切换到下一阶段。
1.当两个候选速率的差值超过一个阈值时,切换。
∣ x c l ? x r l ∣ ≥ t h 1 |x_{cl}-x_{rl}|\geq th_1 xcl??xrl?th1?
2.当持续的时间超过设计值时,切换。
t 1 ? t 0 ≥ t h 2 t_1-t_0\geq th_2 t1??t0?th2?

  • Evaluation Stage
    在该阶段下,不再计算classic和learning-based速率,减少了一部分计算开销。测试上一阶段得到的两个候选速率对应的utility function, u ( x c l ) u(x_{cl}) u(xcl?) u ( x r l ) u(x_{rl}) u(xrl?)——这两个要在下一个阶段才能计算出来。paper中指出,可以在这个阶段得到 u ( x p r e v ) u(x_{prev}) u(xprev?),但在上一个阶段中,使用的是classic sending rate,好像是算不出来吧(都没有用这个 x p r e v x_{prev} xprev?速率传输)。这里表示疑问?

这里对于评估速率的顺序有一点讲究!
先说结论:lower rate first。即先测试低的速率,减少副作用。
在这里插入图片描述
看第一个图,假设 x c l > x r l x_{cl}>x_{rl} xcl?>xrl?,先测试大的速率,会带来buffer累积,影响后面速率的测试,在这种测试顺序下, u ( x c l ) > u ( x r l ) u(x_{cl})>u(x_{rl}) u(xcl?)>u(xrl?),但实际上是 x r l x_{rl} xrl?更好。后面的情况类似,因此lower rate first。

  • Exploitation Stage
    使用速率 x p r e v x_{prev} xprev?进行传输。并等待ACK,计算 u ( x c l ) u(x_{cl}) u(xcl?) u ( x r l ) u(x_{rl}) u(xrl?)
    其中utility function沿用了PCC的:
    u ( x i ) = α ? x i t ? β ? x i ? max ? { 0 , d ( R T T i ) d t } ? γ ? x i ? L u\left(x_i\right)=\alpha \cdot x_i^t-\beta \cdot x_i \cdot \max \left\{0, \frac{d\left(R T T_i\right)}{d t}\right\}-\gamma \cdot x_i \cdot L u(xi?)=α?xit??β?xi??max{0,dtd(RTTi?)?}?γ?xi??L

算法:
在这里插入图片描述
这里基本就是把前面的三个流程程序化写出来。

五、RL-based CCA算法

这里介绍的是上面算法里面第6行的DRL_based CCA。
作者通过比较多的对比实验,去看各种状态空间和动作空间对结果Reward和收敛性的影响,自行设计了状态空间和动作空间。
状态空间:
在这里插入图片描述
这是paper里总结出来的目前的状态空间。 作者提到模拟退火来辅助产生baseline状态空间,具体操作没详细描述,这里实验设计并不是很清晰。
在这里插入图片描述
动作空间:
AIAD or MIMD
在这里插入图片描述

Reward Function
两个observation:
1.奖励函数还是要考虑loss rate,不然在高延迟下,容易引起高丢包率。
在这里插入图片描述

2.选择 r r r还是 Δ r \Delta r Δr作为奖励函数:
在这里插入图片描述
Δ r \Delta r Δr更好。这里的reward function和前面的utility function并不一样。
在这里插入图片描述

总结

这个混合传统算法和learning算法的框架挺有趣的,并具备了在线评估的特点,但文章代码无开源,有些具体的细节还是不太理解。文章中仍然用到了DRL的内容,这块不是很熟悉,对于如何设计状态空间和动作空间的实验不太清楚。
文章提出的这种结合的框架,还是挺新颖的。

  区块链 最新文章
盘点具备盈利潜力的几大加密板块,以及潜在
阅读笔记|让区块空间成为商品,打造Web3云
区块链1.0-比特币的数据结构
Team Finance被黑分析|黑客自建Token“瞒天
区块链≠绿色?波卡或成 Web3“生态环保”标
期货从入门到高深之手动交易系列D1课
以太坊基础---区块验证
进入以太坊合并的五个数字
经典同态加密算法Paillier解读 - 原理、实现
IPFS/Filecoin学习知识科普(四)
上一篇文章      下一篇文章      查看所有文章
加:2022-09-04 01:17:05  更:2022-09-04 01:17:35 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 23:27:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码