Paper Note | Efficient DRL-Based Congestion Control With Ultra-Low Overhead

embedded/2024/9/24 23:27:09/

文章目录

  • Introduction
  • Design
    • RL Agent
    • CC Executor
    • Hierarchical Recurrent Architecture

Introduction

深度强化学习能够用于网络拥塞控制决策中,但是之前的DRL方案耗时且占用了很多CPU资源。这篇文章提出了一种低开销的DRL方案,实现细粒度的包级别控制。

SPINE采用了层次控制架构,包含一个轻量级的CC执行器,对每个ACK和丢包进行反应,和一个DRL策略生成器,周期性地生成CC执行器的控制sub-policy(基于AIMD的轻量级参数化的控制逻辑)。除此之外,SPINE还引入watcher,判断当前的sub-policy的效果好坏,根据需要进行更新,以减少策略生成频率。

Design

SPINE架构图如下:
在这里插入图片描述
policy generator和watcher共同组成了RL agent,追踪流量模式并更新sub-policy。SPINE利用了层次控制逻辑,间隔monitor interval(MI), watcher观察包特征,如有需要就触发policy generator。

在这里插入图片描述

RL Agent

每隔MI,RL agent通过收集包信息,察觉网络环境,其作为状态,被放入深度神经网络模型中,决定是否更新sub-policy,如果trigger是True,模型将会生成sub-policy的新参数,并更新CC执行器。

State:收集包统计信息,作为state,如下:
在这里插入图片描述
其中吞吐量和延迟均已正则化(对最大吞吐量和最小延迟)。由于SPINE更新sub-policy间隔很长,所以采用了RNN作为网络模型来抓取long-term历史特征。

Reward:CC执行器调整流发送速率,每个MI收集reward。奖励函数如下:
在这里插入图片描述
公式(1)的第一项是正则化吞吐量和正则化延迟的比值,加上丢包的惩罚,lat’是指小的排队延迟可以被允许来实现最大带宽。第二项定义触发policy generator更新sub-policy的惩罚(pit stop penalty),因为其会导致policy generator的推理开销和cross-space的通信。

CC Executor

参数化的sub-policy结构需要有如下特征:简单(低计算开销)、细粒度控制(快速相应)和灵活(估计各种各样的映射)。

基于这些特征,设计了基于AIMD的sub-policy,每个RTT将发送速率乘以1.1,cwnd的大小变化如下:
在这里插入图片描述
这里 0 ≤ α t h r , α l a t ≤ 0.5 , 0 ≤ α t o l ≤ 20 0\leq \alpha_{thr}, \alpha_{lat} \leq 0.5, 0\leq \alpha_{tol} \leq 20 0αthr,αlat0.5,0αtol20。如果 R T T R T T m i n \frac{RTT}{RTT_{min}} RTTminRTT低于 α t o l + 1 \alpha_{tol} + 1 αtol+1,它判断链路不是拥塞的,增加cwnd,否则减小cwnd。

当丢包发生时,CC执行器对cwnd执行乘性减:
在这里插入图片描述

在cwnd更新后,CC executor计算新的发送速率:
在这里插入图片描述

综上,参数( α t h r , α l a t , α t o l , α l o s s \alpha_{thr}, \alpha_{lat}, \alpha_{tol}, \alpha_{loss} αthr,αlat,αtol,αloss)定义了sub-policy的行为,这些参数就是policy generator的action,每当其被触发,就生成这些参数,更新sub-policy。

Hierarchical Recurrent Architecture

设计了一个分层循环架构神经网络模型,第一层表示watcher,输入state,适应性地触发policy generator,第二层表示policy generator,输出ation。
在这里插入图片描述
每个时间节点,watcher收到来自policy generator和watcher的hidden state,然后输出是否触发上层的flag和新的hidden state。
在这里插入图片描述
触发的flag定义为:
在这里插入图片描述
policy generator基于trigger进行工作:
在这里插入图片描述


http://www.ppmy.cn/embedded/33405.html

相关文章

n-Track Studio Suite for Mac激活版:打造您的专属音频工作室

n-Track Studio Suite for Mac是一款功能强大的数字音频工作站软件,让您在家中就能享受到专业录音棚的待遇。无论是录制人声、乐器还是MIDI序列,都能轻松应对。 n-Track Studio Suite for Mac激活版下载 这款软件拥有实时音高校准、时间拉伸和自动补足功…

Linux驱动开发——(十)MISC设备驱动

目录 一、MISC驱动介绍 1.1 miscdevice结构体 1.2 misc_register函数 1.3 misc_deregister函数 二、驱动代码 2.1 框架代码流程 2.2 完整框架代码 一、MISC驱动介绍 MISC驱动(杂项驱动),当板子上的某些外设无法进行分类的时候就可以使…

【数据脱敏方案】不使用 AOP + 注解,使用 SpringBoot+YAML 实现

文章目录 引入认识 YAML 格式规范定义脱敏规则格式脱敏逻辑实现读取 YAML 配置文件获取脱敏规则通过键路径获取对应字段规则原始优化后 对数据进行脱敏处理递归生成字段对应的键路径脱敏测试 完整工具类 引入 在项目中遇到一个需求,需要对交易接口返回结果中的指定…

第20章 基于风险的测试技术

一、项目实践中的测试实施实践 制定测试计划阶段 1、要测试什么,不要测试什么 内容、目标要达到的质量要求尽量明确让利益相关方都能理解并达成共识 2、如何测试 设计测试确定目标、选取合适的测试设计技术执行测试明确测试工具、确定测试环境、确定测试轮次 …

树莓派4b使用--系统安装和远程控制

目录 一、器件 二、将系统烧录进TF卡 1.安装Raspberry Pi Imager 2.下载img镜像 3.打开Raspberry Pi Imager 4.点击NEXT 5.等待配置完成 三、远程控制 1.先把烧录好的TF卡插入树莓派 2.设置一下电脑的WLAN为共享 3.安装所需的软件 1.安装putty 2.安装VNC Server 3.…

蒙特卡洛电动汽车负荷预测

部分代码: P_load=load(load.txt); P_load=P_load/100000; B=EV_load(958); %每个节点接入1250辆电动汽车 接入位置8 14 29 for i=1:24 [Ploss,V]=IEEE33(B(i),P_load(i)); Ploss_after(i)=Ploss; V_after(i,:)=V; end for i=1:24 [Ploss,V]=test(P_load(i)); Ploss_be…

H2数据库常见问题

H2数据库问题1 [90048][90048] Unsupported database file version or invalid file header in file “C:/Users/admin/Desktop/temp/2024.05.01/springboot-h2-mybatisplus/db/firstDb.mv.db” [90048-220] The write format 2 is smaller than the supported format 3 [2.2.…

【JavaScript】使用 AbortController 对象中断 fetch 的文本流传输

AbortController 正如我们所知道的,fetch 返回一个 promise。JavaScript 通常并没有“中止” promise 的概念。那么我们怎样才能取消一个正在执行的 fetch 呢?例如,如果用户在我们网站上的操作表明不再需要某个执行中的 fetch。 为此有一个…