TCP-CC-ML

here for paper

  • Author: Yiming Kong (Georgia Tech)
  • Congestion Control, Machine Learning


1 概述 :

TCP网络中,确保其用户之间有效和公平地共享网络资源的关键是TCP拥塞控制(CC)方案。

以前,TCP-CC方案的设计基于对来自网络预定义动作和特定反馈信号的匹配。

然而,随着网络变得更加复杂和动态,设计最佳反馈和动作之间的映射变得更加困难。

最近,Learning-based的TCP-CC引起了很多关注。

在本文中,我们定义情况为瓶颈链路缓冲不足的哑铃拓扑网络,设计了两种基于学习的TCP-CC方案。

  • 基于损失预测器的LP-TCP(loss-predictor)
  • 基于强化学习RL-TCP(Reinforcement Learning)

我们在NS2中实现了LP-TCP和RL-TCP。与现有的NewReno和Q-learning的TCP相比,LPTCP和RLTCP在各种模拟网络场景下都实现了吞吐量和延迟之间的更好权衡。


2 Reason Why choose :

Pick 这篇paper是因为这篇paper实现TCP-CC scheme的时候讲了很多细节。方便论文的重现。因此我选择这篇paper来读。以下会简要描述这些细节。


3 Details :

3.1 LCTCP Structure:

  • (1) Sensing engine
  • (2) Learner
  • (3) Actuator
    LC-TCP的流程如下,当一个新的ack被接收到的时候,cwnd以1/cwnd的速率增长。在发送包裹之前,感知器首先更新特征向量,然后损失预测器输出丢失的概率p,如果p比阈值小,那么执行器就把包裹发送出去。否则,包裹就不被发送,并且cwnd减少1。

3.2 LCTCP’S feature:

包括 cwnd,ewma of ACK interval 间隔,ewma of 发送的间隔,最小的ACK间隔,最小的RTT,
ACK间隔到达的时间序列,RTT的最小值,还有当前的C-WINDOW SIZE。

3.3 RLTCP‘s Structure:

first,为什么提出RLTCP是因为LCTCP是一个off-line的学习策略,所以当网络中状况变化的时候,我们就需要重新训练,我们希望有一个agent可以自主根据网络状况变化而做出策略的调整。因此引入on-line的RLTCP

second,流程如下,在timestep下,环境通过一个state向量sn来表征,agent选取一个行动,然后转变env为新的state;Sn+1,并且得到一个当前的rn+1。基于这个reward。agent在迭代中逐渐学会,怎样才能得到最多的reward.

third,在这个特殊TCP-CC问题下,因为每个TCP sender,根据你选择的动作效果,只有当下一个RTT收到之后,才可以判断效果好坏。所以在这一情况下,我们更改了效用函数,把当前的Reward改成下一次的reward公式。

forth,最后剩下的工作是选择动作,在每一个状态下。我们有epsilon的概率是从动作空间,随机选定一个动作,另外(1-epsilon)的概率是选择能使效率最大化的动作。


4 目标:

through this paper i need to do some experiment and get familiar with the NS2 simulation environment.