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. Visual studio 2013打开报异常"Exception has been thrown by the target of an invocation"

    最近遇到一个问题,打开VS2013和SQL Server2014都会出报错,错误信息如下: 以前都是好好的,重启了机子也不行,能打开两个VS,再打开第三个VS还是会报错,百度无果,还是在google上 ...

  2. drupal7 获取网站名称

    $site_name=variable_get('site_name', 'Drupal');

  3. Angular进阶教程二

    6.2自定义指令详解 angular的指令机制.angular通过指令的方式实现了HTML的扩展,增强后的HTML不仅长相焕然一新,同时也获得了很多强大的技能.更厉害的是,你还可以自定义指令,这就意味 ...

  4. eclipse 断点调试快捷键

    (1)Ctrl+M --切换窗口的大小(2)Ctrl+Q --跳到最后一次的编辑处(3)F2 --当鼠标放在一个标记处出现Tooltip时候按F2则把鼠标移开时Tooltip还会显示即Show Too ...

  5. 泛型< ? extends > <? super> 理解

    public class Test { public static void main(String [] args){ Plate<? extends Fruit> p = new Pl ...

  6. SpringMVC中使用DispatcherServlet

    接触Web开发的时候我们会利用Servlet来接收和转发前端页面的各种请求,我们通常会在一个页面中对应一个Servlet来处理这个页面上和用户交互的信息,通常我门遇到5个以内的页面自己来写Servle ...

  7. IDEA创建maven项目时,maven太慢-archetypeCatalog=internal

    创建项目时候加上archetypeCatalog=internal 参数, archetypeCatalog表示插件使用的archetype元数 据,不加这个参数时默认为remote,local,即中 ...

  8. Oracle 数据库实现数据更新:update、merge

    工作中遇到的数据更新,学习记录. 1.使用update进行数据更新 1)最简单的更新 update tablea a set a.price=1.00 2)带条件的数据更新 update tablea ...

  9. 关于Unity3d的Quaternion.Slerp的学习

    首先在场景中创建三个cube的GameObject,from表示要转换之前的样子,to表示转换之后的样子,change表示转的效果.如下图所示: 其中from和change cube开始运行之前的tr ...

  10. Python初学者第十七天 函数(1)

    17day 函数 1.函数定义: 函数 是指将一组语句的集合通过一个名字(函数名)封装起来,想要执行这个函数,只需调用其函数名即可 2.函数的特性: a 减少重复代码 b 使程序变得可扩展 c 使程序 ...