来源:IEEE 2018 作者:Hemin Yang and George F.Riley

摘要: 流表容量有限,因此高效管理流表至关重要。本文重点讨论了OpenFlow中定义的一种流表管理机制,即能够主动删除流表条目。 挑战:确定删除哪些流表项条目。 为了应对这一挑战,提出了基于机器学习的主动流输入删除方法,可以从流表条目的历史数据中学习,从而预测最后引用流表条目的时间。最后根据预测,最后引用时间的最小的流表条目将被删除。我们的方法是利用机器学习,从历史删除流表项中学习,从而预测最后引用流入口的时间。

主动流条目的删除

A. 主动流删除的挑战

要应用主动流的删除,需要解决两个问题:第一是,控制器什么时候该主动删除流条目,例如说可以设定一个阈值,当流表的利用率超过阈值时就开始主动删除流表项;第二,应该删除哪些流项?希望删除的就是不活动的流表项。

B. 为什么机器学习会有帮助?

虽然我们不能确切知道流表条目访问的顺序,但是我们是否可以利用机器学习技术来推断基于历史流删除的访问顺序呢?一旦流表项从流表中删除,控制器就可以配置交换机发送一个FlowRemodes消息,该消息包含删除的原因、表项的持续时间、条目匹配的数据包数、空闲超时、硬超时、条目匹配的数据包中的字节数以及其他特定于实验者的统计信息。

C. 主动流输入删除的开销

主要包括两个部分。一是何时开始主动删除的开销,我们假设主动删除开始于超过控制器所设定的流表阈值时开始删除。空缺时间可以警告控制器提前作出反应,以避免流表溢出。开销的另一部分来自于决定应该主动删除哪些流条目。若采用随机或FIFO的策略,他们不需要开销,但如果没有删除的条目作为参考,控制器可能就会指示交换机删除实际上不存在流表中的条目,错误的指令,会加剧交换机和控制器的工作负荷,若表中没有流表项被删除,流表可能会溢出,对网络产生严重的影响。相反,如果启用了发送流删除的消息,则不会出现这样的错误指令,因为控制器知道开关的流表中有哪些流项。

我们的做法

基于机器学习的主动流条目的删除,如图1所示,做法包括两个部分:离线模型训练和基于训练模型的在线主动流删除。

A. 离线模型训练

为了训练机器学习的模型,我们首先需要收集合适的数据集。其中每个数据样本包含先前流删除的特征和标签(tLastVisitf 即最后一次引用流条目的时间)tLastVisitf 由tStartf + tPktActivef相加所得,tStartf 是流表中安装流f的当前流条目的时间,tPktActivef是所引用的流条目经过的时间。 tPktActivef作为标签。使用FlowRemoved消息所携带的统计数据的均值和标准差,即流条目匹配的数据包数(number ofpackets matched by a flow entry (

Machine Learning Based Proactive Flow Entry Deletion for OpenFlow的更多相关文章

  1. A Gentle Guide to Machine Learning

    A Gentle Guide to Machine Learning Machine Learning is a subfield within Artificial Intelligence tha ...

  2. How do I learn machine learning?

    https://www.quora.com/How-do-I-learn-machine-learning-1?redirected_qid=6578644   How Can I Learn X? ...

  3. 学习笔记之Machine Learning Crash Course | Google Developers

    Machine Learning Crash Course  |  Google Developers https://developers.google.com/machine-learning/c ...

  4. [C2P2] Andrew Ng - Machine Learning

    ##Linear Regression with One Variable Linear regression predicts a real-valued output based on an in ...

  5. Machine Learning Algorithms Study Notes(2)--Supervised Learning

    Machine Learning Algorithms Study Notes 高雪松 @雪松Cedro Microsoft MVP 本系列文章是Andrew Ng 在斯坦福的机器学习课程 CS 22 ...

  6. SOME USEFUL MACHINE LEARNING LIBRARIES.

    from: http://www.erogol.com/broad-view-machine-learning-libraries/ http://www.slideshare.net/Vincenz ...

  7. In machine learning, is more data always better than better algorithms?

    In machine learning, is more data always better than better algorithms? No. There are times when mor ...

  8. booklist for machine learning

    Recommended Books Here is a list of books which I have read and feel it is worth recommending to fri ...

  9. ADVICE FOR SHORT-TERM MACHINE LEARNING RESEARCH PROJECTS(短期机器学习研究的建议)

    – Tim Rocktäschel, Jakob Foerster and Greg Farquhar, 29/08/2018 Every year we get contacted by stude ...

随机推荐

  1. git命令行解决冲突文件步骤

    原文https://blog.csdn.net/zwl18210851801/article/details/79106448 亲测有用,解决git冲突的好办法 方法一(推荐使用): git pull ...

  2. Fermat vs. Pythagoras POJ - 1305 (数论之勾股数组(毕达哥拉斯三元组))

    题意:(a, b, c)为a2+b2=c2的一个解,那么求gcd(a, b, c)=1的组数,并且a<b<c<=n,和不为解中所含数字的个数,比如在n等于10时,为1, 2, 7,9 ...

  3. 使用ElasticSearch服务从MySQL同步数据实现搜索即时提示与全文搜索功能

    最近用了几天时间为公司项目集成了全文搜索引擎,项目初步目标是用于搜索框的即时提示.数据需要从MySQL中同步过来,因为数据不小,因此需要考虑初次同步后进行持续的增量同步.这里用到的开源服务就是Elas ...

  4. RocketMQ集群部署记录

    RocketMQ集群部署记录 #引用    https://cloud.tencent.com/developer/article/1147765         一.RocketMQ基础知识介绍 A ...

  5. (5)ps详解 (每周一个linux命令系列)

    (5)ps详解 (每周一个linux命令系列) linux命令 ps详解 引言:今天的命令是用来看进程状态的ps命令 ps 我们先看man ps ps - report a snapshot of t ...

  6. Database hang and Row Cache Lock concurrency troubleshooting

    http://www.dadbm.com/database-hang-row-cache-lock-concurrency-troubleshooting/ Issue backgroundThis ...

  7. k8s部署spring-boot项目失败

    现象:spring-boot项目启动到某个地方停止,然后容器重启 解决:扩大内存和核心数

  8. Web 前端怎样入门?(转)

    转自知乎https://www.zhihu.com/question/32314049/answer/100898227

  9. C中指针符*和取址符&

    学习了C语言之后,关于指针部分看了无数遍,有时候明明觉得自己看懂了,指针就是地址,但是总是在看代码时候糊里糊涂的搞不明白,最近又关于指针强化了一把. 大部分情况下对于程序中指针糊涂是因为不明白指针符“ ...

  10. Entangle 2.0 “Sodium”正式发布

    导读 Entangle是一款自由而开源的软件,可让您从Linux控制DSLR相机. 使用各种尼康和佳能数码单反相机,可以查看实时预览,自动下载图像,并通过USB连接将照片拍摄到相机. 自上次听到Ent ...