[论文笔记] Sigcomm 2018 Elastic Sketch: Adaptive and Fast Network-wide Measurements

先附上论文的GitHub链接
做实验的话真的得看这篇,有那么多可以实验的角度。


除了basic version的方式分离象流和鼠流,以及MM合并的一个bound
其他都没给出数学上的证明。(居然在技术报告里)

我简直有毒,在heavyguardian里面,除了算法,什么都写了。
再次强调不要犯懒,复习的时候真的只想看自己的博客,不想点开别人的了。一定要把一些事情的意义写上去。

基于sketch的网络测量方法介绍
别人的大四VS我的大四orz

introduction

网络测量对数据中心和骨干网的network operations, quality of service, capacity planning, network accounting and billing, congestion control, anomaly detection都是必不可少的。

由于基于sketch的解决方法比抽样方法准确率要高,因此它们被广泛采用。主要是寻求accuracy、speed、和内存的平衡。
最前沿的算法UnivMon还关注于generality,即用一个sketch来实现多种任务。
但是他们都没有将sketch设计的符合网络的变化,网络测量在网络遭遇问题的时候重要性尤为凸显,网络特性急剧变化会极大降低测量性能。

available bandwidth

在数据中心,管理员更关注网络全局状态(network-wide measurements),他们可以在网络中部署很多测量节点,周期性地向controller报告,发送这些测量信息和用户流量是共享数据平面带宽的。但是拥塞经常发生,It can happen frequently within a single second [19] and be as large as more than half of the network bandwidth [9].
Network measurements should not be a burden for the network.
A good solution is to actively compress the sketch with little accu- racy loss, thereby reducing bandwidth usage.
省略省略,总之就是测量很重要,拥塞时更加需要测量来发现问题解决问题,但是拥塞时又没有带宽留给测量,因此应该压缩sketch、
Besides passive compression during congestion, network operators need to proactively control the measurement tasks as well. For example, to keep service- level agreements (SLA) during maintenance or failures [28], operators tend to reduce measurements and leave the band- width for critical user traffic.

packet arrival rate

当网络被扫描或者受到DDoS攻击时,包会很小很多. The processing speed of existing sketches on software platforms is fixed in terms of packet rate. 因此包到达率突然增大的时候不work,不能记录一些重要的信息。因此要加速sketch的处理速度。
state-of-art solution:SketchVisor,使用fast path组件absorb excessive traffic at high packet rate.但是在最坏情况下要遍历整个数据结构,虽然更新复杂度是O(1)。要多次访问内存。本文算法只需要一次

flow size distribution

鼠流和象流应该分开,但是flow size distribution一直在变,导致分配多大的内存存储需要跟着变化。预测是不OK的,预测一小时内象流的数量可能很简单,但是ms级别或是s级就很难[39],因此设计了动态分配合适内存给象流的方法。
Besides them, there are three other requirements in measurements: 1) generic, 2) fast, and 3) accurate
已有的generic的算法是UnivMon和FlowRadar,本文实验中发现UnivMon准确度不太好,FlowRadar消耗大量内存。

FlowRadar在Bloom Filter和Invertible Bloom Lookup table (可逆式布鲁姆查找表)里面记录了所有的流ID和大小。为了减少内存消耗,踢出network-wide decoding,但是内存消耗还是比sketch要高。
UnivMon的关键技术是universal streaming,准确度由它来保证。它是第一个generic的,性能还不错,但是不适应多变的网络。

our solution

Ostracism分离鼠流和象流
elastic:
generic:

  • 保存每个包所有必要信息,丢弃鼠流的ID信息(耗内存且无用)
  • 提出软件和硬件版本的改进,为P4量身设计了一个版本
    Owing to the separation and discarding of unnecessary information, our sketch is accurate and fast: experimental results show that our sketch achieves 44.6~45.2 times faster speed and 2.0 ~273.7 smaller error rate than the state-of-the-art UnivMon

key contribution

在这里插入图片描述
简而言之

  1. 适应于多变的网络
  2. 核心技术是分离大象流和老鼠流,以及sketch压缩
  3. 在多个平台上又快又好的实现。

Basic version中的OStracism

given a high-speed network stream, how to use only one bucket to select the largest flow?
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

看到 ostracism 的时候,感觉和
数据流基本问题–确定频繁元素(一) 中提到的,我觉得思想是一致的,然后引入一个 λ \lambda λ
λ的作用是什么呢?
flag的作用是判断bucket里面是否evicted过
如果两个大象流碰撞了,或者三个,那么其中一个就有可能被evicted入light part,那么信息就没有得到很好的保存
如果我就用编程之美中提到的方法,那么cold item的信息是就全没有,而且hot item的信息会被预估的小?(不考虑碰撞的话)lambda越大,存的vote+应该就越准
它这相当于 λ = 1 \lambda=1 λ=1就驱逐

accuracy analysis

f ^ i ⩽ f i + ϵ ∥ f l ∥ 1 4 < f i + ϵ ∥ f ∥ 1 \hat{f}_{i} \leqslant f_{i}+\epsilon\left\|f_{l}\right\|_{1}^{4}<f_{i}+\epsilon\|f\|_{1} f^ifi+ϵfl14<fi+ϵf1

where fL denotes the size vector of the sub-stream recorded by light part
∥ x ∥ 1 \|\mathbf{x}\|_{1} x1 is the first moment of vector x , \mathbf{x}, x, i.e., ∥ x ∥ 1 = ∑ x i \|\mathbf{x}\|_{1}=\sum x_{i} x1=xi

准确度最差的情况:象流发生了碰撞,如果象流碰撞,那么一个象流会被放入light part,使得鼠流被大幅度over-estimated
elephant collision rate P h c P_{hc} Phc:定义为发生碰撞的桶数除以总桶数。
P h c = 1 − ( H w + 1 ) e − H w P_{h c}=1-\left(\frac{H}{w}+1\right) e^{-\frac{H}{w}} Phc=1(wH+1)ewH
H是象流数目,w是桶数
解决象流碰撞问题的办法(其实就是减少哈希碰撞):by using multi- ple sub-tables (see Section 4.2); 2) by using multiple key-value pairs in one bucket

adaptive to bandwidth

发的sketch太大会影响时延和用户流量

Compression of Sketches

两步走 先group,然后把同一组中的merge
合并的时候有两个选择,取sum,那么和直接存的accuracy是一样的,本文使用的是maximum,使用了原先sketch更多的信息,也有更高的效率
在这里插入图片描述
compress light

分组相当于什么叭,数论里面的完全什么什么集 {0} {1} … {r-1}
mod 3为1的放入一组,选择组中最大的,然后你mod 3为1就能找回这个数据。按照原图去找,要找到之前的位置是3k+1,在3k+1里面选择最大的去保留
merge就是在同组里面选最大的。生成B之后还是d个hash function,映射之后找最小的。会有over-estimate error

这个所谓的同样的accuracy是指什么?
他这里的同样的accuracy,指的是用一个大S1,1/2小S2的accuracy 和只用一个大S1,然后把它/2 是一样的
这是非常直观的,你想hash入更小的sketch,可不就是直接相加吗?
难点在于如何让后者有更高的accuracy。选择采用MAX 而不是SUM,因为MAX能留住更多的信息。(原话是这么翻译过来的)
MAX的误差界限:

Pr ⁡ { n ^ j ⩾ n j + ϵ N } ⩽ { 1 − ( 1 − 1 ϵ z w ) [ 1 − N z w ( n j + ϵ N ) ] z − 1

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值