zoukankan      html  css  js  c++  java
  • 《TCP ex Machina: Computer-Generated Congestion Control》论文阅读笔记

    image-20210331205725138
    image-20210330173702486

    MODELING THE CONGESTION-CONTROLPROBLEM

    1. Expressing prior assumptions about the network

    ​ 作者对网络进行了先验的假设,认为网络是服从马尔可夫过程(下一时刻的状态只与当前时刻状态有关,而与前面的时刻状态无关,即为无后效性或马尔可夫性),因此,通常使用三个参数指标去描述网络状态:瓶颈链路的速率、传播时延、复用程度(瓶颈链路竞争流的数量)。

    ​ 但是需要注意两个问题:1.如何选择参数指标,能够去准确的代表网络状态。2.这些参数指标的精确性是是否难以确定的。

    ​ 由于现有的 CC 算法都是在基于特定网络设计的(性能良好,普适性差),但未来是希望 CC 算法能够自适应于不同的网络动态环境(性能和普适性都好)。所以需过对参数的选择以及参数的不确定性进行考量,即是对 CC 算法的设计能在 普适性 和 性能 方面达到一种平衡。譬如:针对无线网络设计的算法在无线网络环境中会比通用型算法性能好,但是在其他网络环境下表现就会很差。

    img

    2. Traffic model

    ​ 流量模型方面,作者对 哑铃型网路拓扑结构 的 发送端 使用了 on/off model 去生成网络流量。on 时即该发送端发送数据;off 时即停止发送数据。off 的时间服从 exponential distribution;on 发送的数据大小是服从 empirical distribution of flow size(可根据网络条件自行设置)。

    image-20210331144610796

    3. Objective function

    ​ RL目标函数是去评估 某个policy 下 action 的好坏,使得 policy 不断迭代更新能够收敛这个目标(最大吞吐量和最小RTT)中去。

    ​ 目标函数的设计作者采用了 Resource-allocation 理论中的 the alpha-fairness 去评估多个 flow 共享同一链路时的 throughput 分配情况好坏。

    [alpha -fairness: U_rleft( x_r ight) =w_rfrac{x_r^{1-alpha _r}}{1-alpha _r} alpha _r>0 ]

    ​ alpha-fairness 是单调递增的,它其实是对 proportional fairness,minimum potential-delay fairness and max-min fairness 这些 fairness 方法中总结出来的更 generate 效用函数。(x_r) 是 user r 的传输速率,(w_r) 是一个权重常数, (U_rleft( x_r ight)) 是 user r 的对带宽的利用效用。

    • Case 1. Minimum potential delay fairness。 当(alpha_r=2,forall r)

      [U_rleft( x_r ight) =-frac{w_r}{x_r} ]

    • Case 2.Proportional fariness。当 (alpha_r=1, forall r)

      image-20210331153921792

      [U_rleft( x_r ight) =left{ egin{array}{l} -w_rfrac{x^{1-alpha _r}}{1-alpha _r},alpha _r>0,alpha _r e 1\ w_rlog x_r,alpha _r=1\ end{array} ight. ]

    • Case 3.Max-min fairness。(w_r=1,alpha_r=alpha,forall r,alpha ightarrow infty)

    将多用户的 Resource-allocation 问题建模为一个优化问题,即希望每个用户的传输速率在特定的约束条件下,它们的传输速率的效用函数累计和能够最大,使得每个用户的带宽分配到达一种相对公平的平衡。

    image-20210331155143395

    而上面的 多种 fairness 方法,其实都是基于上面的问题去进行解答。通过设计不同的 (U_rleft( x_r ight)) ,在式2.2的约束下,以最大化用户效用累计和(式2.1)为目标,去证明它们的收敛(即能够找到每个用户的最优 (x_r) )。

    详细的推导过程可参考该书(提取码:98dy)的 Resource Allocation 章节。

    但是 alpha-fairness 中,考虑的只是吞吐量,没有考虑到链路的时延。如果每个用户端都尽可能地最大化自己地效用函数值,不断地提高自己地传输速率,会导致去侵占路由或者接收端的buffer,使得时延增加、缓存溢出而丢包,最终网络崩溃。

    因此为了在 吞吐量和时延 中权衡 公平性和效率,作者提出了改进的 objective function:

    [U_{alpha}left( x ight) -delta cdot U_{eta}left( y ight) =frac{x^{1-alpha}}{1-alpha}-delta frac{y^{1-eta}}{1-eta} ]

    其中 (x) 为吞吐量,(y) 为链路时延,(delta) 表示了吞吐量和时延的重要程度。该目标函数的总体目标为,在保证 fairness 的基础上,最大化吞吐量并且最小化时延。

    HOW REMY PRODUCES A CONGESTION-CONTROL ALGORITHM

    1. The sender's state

    1. ack_ewma,ACK的到达间隔时间的指数加权移动平均值
    2. send_ewma,ACK的发送间隔时间的指数加权移动平均值
    3. rtt_ratio,当前 (RTT)(RTT_{min}) 的比值。

    以上三个变量称为为 RemyCC memory。作者在 memory 中没有去考虑丢包,一方面是不对丢包做出反应可以算法更加鲁棒性,另一方面是我们在最大化目标函数的中会去最小化时延,从而避免了 buffer 的累计,因此不会出现拥塞丢包。

    2. The sender's action

    1. m >= 0,cwnd的乘系数
    2. b,cwnd的加系数(b可为负数)
    3. r > 0,连续发送的最小间隔时间

    3.Mapping the memory to an action

    image-20210331174829773

    Remy 目的是针对不同的网络状态(memory),能够做出该状态下最优的行为(action),并且将memory 映射到 action 的关系形成一张 rule table,其中该表中的每一行代表着一种 rule。即当前的拥塞策略是由多条 rule 构成,即rule table。因此在实际运行的时候,会通过查表的方法,去找到当前 memory 对应得 action。

    img

    4.Remy’s automated design procedure

    首先初始化 action(m = 1,b = 1, r=0.01)。所有的memory(null) 都指向 该 action,作为rules table 的所有初始的 rule。

    1. 设置所有的 rules 的 epoch 都为 current_epoch。

    2. 用 current rule table 作为一个CC,放入到 建模的 网络仿真器中运行,找到current epoch下使用最多的 rule。如果找不到,转 step 4。

    3. 如果找到使用次数最多的rule,我们对该 rule 下的action 进行试探性的修改,调整的步骤以现有的 m,b,r参数值,每个参数依次按照指数规则增加或减少100次(一共调整 (100^{3})次),并且使用16个以上的网络样本进行评估,即将每一次的修改的action 应用到 所有的 发送端,再次进行仿真。如果某种调整后的action 更优,那么我们就替换该 rule 下的action,然后再次修改,直到找不到更好的 action,此时,current_epoch++,并且回到 step 2。(detail: 首先得在仿真中,匹配到与该rule 下的memory相一致的memory,其次用 objective function 去评估采用修改的action后,该flow的 throughput 和 RTT 是否更优)

    4. 此时如果无法找到使用最多的rule,新增一个 Global_epoch,并且 Global_epoch++,若该 Global_epoch是K的倍数,转 step 5;否则转 step 1。

    5. 对映射表进行泛化,Remy 最后生成一张 rule table,为了提高泛化能力,作者将最常用的action 对应的memory(中间值) 在三维空间中泛化为距离当前memory值最小的的正方体中的8个点(8个新的memory,赋予和中间值相同的action),然后转第一步。

      image-20210331205501607

    这篇论文是发在 2013 Sigcomm 顶会,应该是将机器学习的思想应用到拥塞控制领域的新的尝试。Remy 算法通过在不同的网络环境下找到该环境的最佳 Remy CC,将网络环境建模为 马尔可夫 过程,定义 objective function,并且定义 state 和 action,建立映射表,有 RL 的意思了。以现在的眼光看,网络环境的变化 是很难 通过映射表列举出来,同样也要耗费很大内存资源去存储这些映射,如果遇到未知的memory,性能就会比较差。但无疑推动了DRL 在 拥塞控制的应用。

    引用

    https://dl.acm.org/doi/abs/10.1145/2534169.2486020

    https://blog.csdn.net/qq_40598297/article/details/109730796

    从平凡到超凡,只有一万个小时的距离!
  • 相关阅读:
    AS3打开本地文件
    Android上的Adobe AIR应用程序运行环境发布了!
    as3 创建遮罩层和自定义带参数的事件
    NetStream.appendBytes, 走向Flash P2P VOD的第一步
    BitmapData的整理
    AS3 in FlashDevelop
    站内站外AS3资源导航帖
    swf不能访问本地资源的解决办法
    JSON 序列化和反序列化——JavaScriptSerializer实现
    Json.net说法——(一)修饰标签,日期序列化
  • 原文地址:https://www.cnblogs.com/huang-xiang/p/14603871.html
Copyright © 2011-2022 走看看