NSDI ’13

概要

  • OpenSketch是一个通用的抽象的测量框架, 与SDN 网络架构类似, OpenSketch 提出将测量控制层和数据层解耦。 数据层运行设为可动态配置的3阶段流水线, 首先对数据流进行Hash运算以减少需要测量的数据量; 其次在分类阶段, 通过定制并匹配通配符规则实现对流量的分类; 最后在流量计数阶段, 根据不同精度需求, 每个流对应一个或多个计数器以实现流信息统计、整合和回溯.
  • 文章中还提到, 通过灵活地组合Hash运算、分类和计数功能实现对不同sketch 方法的支持.
  • 控制层最主要的功能在于根据任务需求动态选取合适的sketch 方法,同时根据准确性要求和当前可用资源进行资源分配,获取最优的测量结果. OpenSketch 的分层设计与SDN 架构契合, 可实现细粒度的流量测量, 亦可从流识别5 元组中提取IP, MAC地址等实现对终端的流量统计, 整个过程耗费较小的开销, 获取较高的准确性. 其流水线设计能将测量算法抽象细化为若干步骤, 便于网络管理员实现不同的测量算法. 同时,
    OpenSketch 目前已被广泛用于数据中心网络的标准化制定, 并向商用交换机拓展, 商用价值潜力巨大.
  • 但OpenSketch 需要网络交换机硬件支持, 这对网络运营商来说耗资巨大, 成为推广OpenSketch 的巨大阻碍.

sketch更适合sdn之处

  • 在软件方面,sketch部署简单,易于更新迭代,添加新的功能,适于环境的变化
  • 在控制平面有全局视野,可以实现丰富的动态配置、资源分配的功能,进行动态回溯。
  • 需要网络交换机硬件支持, 这对网络运营商来说耗资巨大, 成为推广OpenSketch 的巨大阻碍。

sketch布在sdn和传统网络上的差别

  • OpenSketch采取数据平面硬件,控制平面软件
  • 有一个控制平面可以进行动态配置(sketch的选择、资源分配),而传统网络的方法相对固定。
  • 在控制平面可以进行统一计数,数据分析
  • 控制平面可以自动安装sketch的数据结构
  • sketch在硬件上实现难度较高,只能选择尽量少的哈希函数减少硬件部署的复杂度。

Background

  • Most network management tasks in software-defined networks (SDN) involve two stages: measurement and control. While many efforts have been focused on network control APIs for SDN, little attention goes into measurement.
  • The key challenge of designing a new measurement API is to strike a careful balance between generality (supporting a wide variety of measurement
    tasks) and efficiency (enabling high link speed and low
    cost).
  • Flow-base measurements provide generic support for different measurement tasks, but consume too resources.
  • Many sketch-based algorithm are not deployed in practice because of their lack of generality.
  • Sketches are compact data structures used in streaming algorithms to store summary information about the state of packets.

On Sketch

  • Low memory usage
  • Provable tradeoffs of memory and accuracy

Contribution

  • First, OpenSketch allows more customized and thus more efficient data collection with respect to choosing which flow to measure (using both hashing and wildcard rules)
  • Second, OpenSketch makes measurement programming easier at the controllers by freeing operators from understanding the complex switch implementations and
    parameter tuning in diverse sketches. We build a measurement library which automatically configures the data plane pipeline for different sketches and allocates the switch memory across tasks to maximize accuracy.
  • we rely on the software in the controller to implement these complex data structures and algorithms using simpler sketches in the data plane.

Solution

  • We propose a software defined traffic measurement architecture OpenSketch, which separates the measurement data plane from the control plane.
  • In the data plane, OpenSketch provides a simple three-stage pipeline (hashing, filtering, and counting), which can be implemented with commodity switch components and support many measurement tasks. In the control plane, OpenSketch provides a measurement library that automatically configures the pipeline and allocates resources for different measurement tasks.

OpenSketch Data Plane

  • picking the packets to measure and storing/exporting the measurement data

Picking the packets to measure:

Hash

  • Hashes can be used to provide a compact summary of the set of flows to measure
  • To count the number of redundant packets with the same content, we can hash on the packet body into a short fingerprint rather than store and compare the entire packet body every time. Hashes also enable a provable accuracy and memory tradeoff

Classification

  • Classification is also useful for focusing on some specific flows.
  • we need a classification stage to measure different flows with different number of counters or with different levels of accuracy.
  • For classifying flows, we can specify wildcard rules that match packets on flow fields and allow some bits in the flow fields to be “don’t care”.

Storing and exporting the data:

  • OpenSketch uses a small table with complex indexing.
  • To get such flexibility and memory saving, Open-Sketch requires more complex indexing using the hashing and classification modules.

OpenSketch data plane:

  • OpenSketch data plane has three stages: a hashing stage to reduce the measurement
    data
    , a classification stage to select flows, and a counting stage to accumulate traffic statistics
  • First, the hashing stage picks the packet source field and calculates a single hash function.
  • Next, the classification stage picks the packet destination field and filters all the packets matching the rule (dst : 192.168.1.0/24→1). Each rule has an index field, which can be used to calculate the counter location in the counting stage.

Build on existing switch components

A few simple hash functions

  • 4-8 three-wise or five-wise independent hash functions are enough for many measurement requirements, and can be implemented efficiently
    in hardware

A few TCAM entries for classification:

Flexible counters in SRAM

  • store all the counters in the SRAM, because SRAMs are much cheaper, more energy-efficient, and thus larger than TCAMs

Supporting diverse sketches

Bit checking operations

Picking packets with a given probability

Picking packets with different granularity:

OpenSketch Controller

  • A sketch manager that automatically configures the sketches with the best memory-accuracy tradeoff;
  • and a **resource allocator* that divides switch memory resources
    across measurement tasks.
  • are not directly supported by sketches, we can still install simpler sketches and implement the complex data analysis part in software in the controller

Combining Count-Min sketch and bitmap

Sampling source-destination pairs to reduce memory usage

Querying in the control plane.

Automatic config. with sketch manager

  • right configurations in the measurement data plane is notoriously difficult, because it depends on the available resources at switches, the accuracy requirements of the measurement tasks, and the traffic distribution.
  • The sketch manager automatically picks the right sketch
  • automatically install new sketches

    Related work

  • Flow-based measurements such as NetFlow [2] and
    sFlow [42] provide generic support for different measurement
    tasks, but consume too resources
  • OpenSketch redesigns the measurement APIs
    at switches to be both generic and efficient
  • choosing which flow to measure
  • a three-stage data
    plane pipeline
  • makes measurement programming
    easier at the controllers by freeing operators from
    understanding the complex switch implementations and
    parameter tuning in diverse sketches. We build a measurement
    library which automatically configures the data
    plane pipeline for different sketches and allocates the
    switch memory across tasks to maximize accuracy.
  • prototype on NetFPGA, which shows no additional overhead
    on switch data plane.
  • we rely on the software in the controller
    to implement these complex data structures and
    algorithms using simpler sketches in the data plane.

sketch部署在sdn与传统网络的不同

  • 在软件方面,软件易于更新迭代基于sketch的测量方法、添新的功能,功能较为丰富,花费较少易于推广
  • 而控制平面具有全局视野,可以实现丰富的动态配置(选择测量方法)、资源分配的功能,进行统一的数据分析
  • 在传统的硬件上sketch实现较复杂,只能选择尽量少的哈希函数减少部署的复杂度

Reading Software Defined Traffic Measurement with OpenSketch的更多相关文章

  1. 阅读Deep Packet Inspection based Application-Aware Traffic Control for Software Defined Networks

    Deep Packet Inspection based Application-Aware Traffic Control for Software Defined Networks Globlec ...

  2. RFIDler - An open source Software Defined RFID Reader/Writer/Emulator

    https://www.kickstarter.com/projects/1708444109/rfidler-a-software-defined-rfid-reader-writer-emul h ...

  3. Method of Seamless Integration and Independent Evolution of Information-Centric Networking via Software Defined Networking

    A method of transferring data between a software defined network (SDN) and an information-centric ne ...

  4. Improving Network Management with Software Defined Networking

    Name of article:Improving Network Management with  Software Defined Networking Origin of the article ...

  5. NFV-based QoS provision for Software Defined Optical Access and residential networks

    文章名称:NFV-based QoS provision for Software Defined Optical Access and residential networks 发表时间:2017 ...

  6. NFV-Based Scalable Guaranteed-Bandwidth Multicast Service for Software Defined ISP Networks

    文章名称:NFV-Based Scalable Guaranteed-Bandwidth Multicast Service for Software Defined ISP Networks 发表时 ...

  7. Software Defined Networking(Week 1)

    前言 课程名称:软件定义网络 课程地址 Coursera上新的一期还没开课,所以是YouTube. Instructor:Nick Feamster Get Started 对于本次课程,主要的新内容 ...

  8. Software Defined Networking For Dummies, Cisco Special Edition

    从接触SDN开始,不论是硬件还是软件,一直都是从具体的点开始,慢慢的勾勒出自己认为的SDN的样子,相信读完这本思科出的关于SDN的书会对其有新的认识 这本书的名字就是Software Defined ...

  9. SDN(Software Defined Network):软件定义网络----转载

    SDN(Software Defined Network):软件定义网络 传统的网络转发行为: 1)逐设备单独控制,纯分布式控制. 2)控制面和转发面在同一个设备中,耦合紧密. 管理员无法直接操控转发 ...

随机推荐

  1. Sublime Text3之安裝Emmet及使用技巧

    首先准备工作: 如果你的Sublime Text3没有Package Control组件先看一下这里,如果以安装请忽略: 1.按Ctrl+`调出sublime text的console 2.粘贴以下代 ...

  2. 从接口取到的JSON数据如何导入进本地SQL数据库

    新手学习,求大神指点. 首先:在数据库建立表--设计字段(最好和接口说明文档里面的一致) 第一步:获取接口中的字符串:这里获取的是有转义字符的字符串 HttpWebRequest request = ...

  3. 改bug后 fix bug 时,一个不错的修复描述模板

    *问题原因:* 问题出现的原因.*解决方法:* 问题的解决方案.*影响分支:* 影响哪些分支. *相关修改:* 具体的修改文件列表.*自测结果:* 自行测试了哪些用例,将大概步骤描述出来. *影响功能 ...

  4. jquery尺寸和jQuery设置和获取内容方法

    一.jquery尺寸 jQuery 提供多个处理尺寸的重要方法: width()    设置或返回元素的宽度(不包括内边距.边框或外边距),括号中可填数值宽度参数,无单位 height()   设置或 ...

  5. Mongodb的入门(7)window安装mongodb4

    Mongodb4: MongoDB CTO Eliot Horowitz 刚刚于2月16日凌晨在MongoDB西雅图大会上宣布,MongoDB将在4.0版本中正式推出多文档ACID事务支持 . “Mo ...

  6. 反射报错java.lang.IllegalArgumentException: wrong number of arguments

    class Person{ private String name ; private String sex ; public Person(){ System.out.println("c ...

  7. 在小程序中修改上一个页面里data中的数据调用上一个页面的方法

    //获取已经打开的页面的数组 var pages = getCurrentPages(); //获取上一个页面的所有的方法和data中的数据  var lastpage = pages[pages.l ...

  8. CI框架去除index.php

    打开apache的配置文件,conf/httpd.conf : LoadModule rewrite_module modules/mod_rewrite.so 把该行前的#去掉. 搜索 AllowO ...

  9. CentOS7中永久保存systemd日志

    将systemd的日志写入磁盘: 1.在/var/log/目录下创建日志存放目录,并加入systemd-journal的权限: ~]#mkdir /var/log/journal ~]#chown r ...

  10. 使用JSONP彻底解决Ajax跨域访问Cookie Session的方案

    最近做开发时要把图片文件放到另外一台服务器上(另外一个域名),因为这样分布式存放,网站打开速度会快很多.而我采用AJAX获取图片服务器上某用户的图片时遇到了问题,按照通常的方式无法获取信息,得到的Co ...