来源: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. php 对象教程

    [PHP面向对象(OOP)编程入门教程]6.如何去使用对象中的成员 作者:qianyunlai.com  发布于:2012-05-19 15:02  分类:PHP基础  浏览(280) 上面看到PHP ...

  2. mysql5.7配置文件优化

    [mysqld] pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock datadir = /var/l ...

  3. mysql用户操作、权限分配、远程登录设置

    对最近mysql的常用运维命令进行整理 查看使用的哪个配置文件启动的mysql 1. ps aux|grep mysql|grep 'my.cnf' 如果启动的命令中选择了配置文件,则可以查询出来,也 ...

  4. 深入浅出的webpack4构建工具---比mock模拟数据更简单的方式(二十一)

    如果想要了解mock模拟数据的话,请看这篇文章(https://www.cnblogs.com/tugenhua0707/p/9813122.html) 在实际应用场景中,总感觉mock数据比较麻烦, ...

  5. 使用Mongoose类库实现简单的增删改查

    使用Mongoose类库实现简单的增删改查 Mongoose是在nodejs环境中对MongoDB数据库操作的封装,一种对象模型工具,可以将数据库中的数据转换为javascript对象供我们使用. M ...

  6. B-Tree外存数据结构 _(外存储器—磁盘)第一部分

    1.外存储器—磁盘 计算机存储设备一般分为两种:内存储器(main memory)和外存储器(external memory).内存存取速度快,但容量小,价格昂贵,而且不能长期保存数据(在不通电情况下 ...

  7. Selenium:HTML测试报告

    自动化测试过程中,获得用例的执行结果后,需要有具象化.简洁明了的测试结果,比如:用例执行时间.失败用例数.失败的原因等,这时候,就需要用到测试报告. HTML测试报告是python语言自带的单元测试框 ...

  8. springcloud config

    规则: 一.获取文件属性/{label}/{application}-{profile}.properties/yml http://localhost:8080/master/case-dev.pr ...

  9. SkylineGlobe 6.6 三维地图上实现自定义右键菜单示例代码

    1.OnRButtonDown.htm <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &quo ...

  10. C#中的位的或运算的理解

    如果懂位的运算,看到下面这2个程序执行的结果,会很容易理解,如果像我这样的菜鸟,刚接触开始肯定也觉得晕晕的,|= 这是什么运算符? |=就是位的或运算符,下面还是用上面的程序来讲解一下,为什么上面2个 ...