读ElasticSketch笔记
背景和动机
背景:
网络中经常遇到拥塞,扫描攻击,DDOS攻击,在这种情况下,流量的性能要求更高,因此提出,此方法。能更好的适应流量的性能,更好的完成测量任务和platforms动机:
但无人聚焦于:无论流量特征(包括可用带宽、流量大小分布和数据包速率)如何变化,都能实现准确的网络测量。
可用带宽,因为出现拥塞时,没有带宽可用于测量,解决方案是在较小精度丢失的情况下对sketch进行压缩,从而减少带宽使用。
贡献
- 本文提出新的sketch: elastic sketch
有两部分组成:a heavy part and a light part,利用Ostracism技术使elephant flows 在heavy part ,mouse flows 在light part。(就是分为大流和小流,分别存放) - 实现 “弹性”:
为适应带宽,提出压缩(留出可能进行网络测量的余地)和合并sketch的方法。首先,将sketch压缩成适合可用带宽的大小,其次,使用服务器来进行合并。
当包传送速率变大时,采用这样的处理方式:每个数据包只访问heavy part来记录elephant flows的信息,丢弃mouse flows的信息,这种方式在以合理降低精度的代价的情况下,能实现更快的处理速度
针对elephant flows的数量变化以及无法事先预知的情况,提出一种动态增加heavy part的内存大小的算法 - 实现“通用”:
为实现在测量任务的通用性(跨平台使用),保留每个数据包的所有必要信息,但丢弃mouse flows的id(消耗内存但实际并无用)
提出硬件和软件版本的elastic sketch,还做了P4版本的
方法
为实现分离:(基础版本)
定义
每个存储桶存储三个字段:流id、positive votes、negative votes。给定一个id为f1的数据包,如果如果此id存在于桶中,投positive votes,否则,投negative votes。如果
Negative votes与positive votes之比大于" λ" (给定的预设门限),则将flow从bucket中排出,将f1插入
定义数据结构:由两部分组成,记录大象流的heavy部分与记录老鼠流的light部分。插入
给定flowID f的数据包,将其散列到桶H [h(f )%B](其中B是在heavy部分中的桶的数量)。假定存储桶(f1,vote+, f lag1,vote−)如果f==f1,vote+加1,否则,vote-加1并根据两个vote的比分决定是否排除f1.会出现四种情况。查询
对于不在heavy部分的流,由light部分报告其大小。对于heavy部分的任何流f,有两种情况:
1)f的标志为假。其大小为对应的VOTE+,没有错误;
2)f的标志为真。需要添加相应的vote+和CMsketch的查询结果。大象流冲突
已证明映射到每一个桶里的大象流的数目服从二项分布
如何处理出现的大象冲突:
使用多个子表;
在一个存储桶里使用多个键值对
核心,体现elastic
适应可用带宽
方法:因为light部分是较大的,在发送之前压缩light部分
具体压缩sketch:先将其计数器分组,再将计数器对应合并(合
并分为两个SC和MC,采用MC更好)
适应包到达速率
方法:主要将两种流分离
具体:将数据包缓存入输入队列里,当在输入队列中的数据包>阈值时,仅访存heavy部分,这样可以达到让hash访存降为1的效果适应流大小分布
现象:大的流是未知的,且是容易变化的。在heavy部分,大象流是不断增加的,要求能够随着流量变化不断变化
方法:当桶内的大象流达到一定的数量(设定的阈值)后,将其内容复制一份并与原来的合并,当来新的流时,hash函数变为h()%2W,当再来流与已存在的冲突时,将两个都改用新的hash函数来映射。
优化(主要是针对大流冲突速率的问题)
硬件版本:在heavy部分使用多个子表
软件版本:扩大了桶的大小,一个桶里可以放多个流。桶内共享vote-,在heavy中总是尝试驱逐最小的流。Light中d(sketch的宽度)=1,方便计算。
P4Switch版本:
在硬件版本里寄存器实现了heavy part和light part,而不是match-action表,因为需要直接从数据平面更新条目。We leverage the Stateful Algorithm and Logical Unit (Stateful ALU) in each stage to lookup and update the entries in register array. 但是Stateful ALU资源有限,每一个Stateful ALU只能更新一对32bit的寄存器,但是硬件版本的Elastic需要插入时存取4个fields。为了解决这个问题,将Elastic sketch修改了一下以适应P4交换机,精度损失了一点。
在hard-ware版本的基础上做了如下变动:
We only store three fields in two physical stages vote all , and (key, vote + ) , where vote all指的是正投票和负投票的和。
当vote all /vote + ⩾ λ ′时,采取驱逐策略 λ ′ = 32 原因在技术报告section B里面。多core版本:
采用多线程 ,最后整合时,取max,能够提高精度
实验
使用CAIDA数据集对常见的任务进行测量,跟现有算法进行对比。
评价指标:ARE 、F1 core、WMRE、RE、throughput
任务:
Flow size estimation:
Heavy hitter detection
Heavy change detection
Flow size distribution
Entropy estimation
Cardinality estimation
评估错误的来源:由于发生冲突,导致大流进入light部分,精度受损。在light部分许多流在相同的计数器发生碰撞。
带宽和内存利用上,可以降低几倍的数量级。
在适应包速率方面
适应流分布的变化
处理速度
读ElasticSketch笔记相关推荐
- 【读文献笔记】图神经网络加速结构综述
[读文献笔记]图神经网络加速结构综述 前言 一.图神经网络来源 1.图神经网络用途 2.图神经网络特点 3.图神经网络主要阶段 4.图神经网络加速面临的挑战 5.本笔记内容包含内容 二.图与图神经网络 ...
- 读文章笔记(八):多模态情感分析数据集整理
读文章笔记(八):多模态情感分析数据集(Multimodal Dataset)整理 双模态(一般是文本.图像和语音的两两组合) 三模态(一般是文本.图像加语音) 作者:骑着白马的王子 地址:https ...
- 读文章笔记-自适应和加速GB生成算法
读文章笔记-GBC 文章 背景 内容 定义1+现有GB生成过程 GBKNN 文章的GB生成算法 疑问与反思 文献脉络 文章 An Efficient and Adaptive Granular-Bal ...
- 读文章笔记(三):从源码学习Transformer
读文章笔记(三):从源码学习Transformer encoder分为两部分: decoder 公众号机器学习算法工程师 文章链接: https://mp.weixin.qq.com/s/0NajB_ ...
- 读文章笔记(十):多任务学习
读文章笔记(十):多任务学习 多任务学习优点 多任务学习方法 hard parameter sharing soft parameter sharing 多任务学习改进的方向 注意事项 来源于公众号: ...
- 读文章笔记(十一):对比学习(Contrastive Learning)
读文章笔记(十一):对比学习(Contrastive Learning) 对比学习 来源于:对比学习(Contrastive Learning):研究进展精要 对比学习 对比学习属于无监督或者自监督学 ...
- 读文章笔记(十三):多模态特征融合方法总结
读文章笔记(十三):多模态特征融合方法总结 来源于:多模态特征融合方法总结 多模态特征融合的方法大体分为三种:前端融合.中间融合和后端融合.
- 读文章笔记(二):模型结构优化前沿动态综述
读文章笔记(二):模型结构优化前沿动态综述 公众号东大自然语言处理实验室文章链接: link. NLP领域神经网络结构的发展历程: 相关模型总结分析,NLP领域模型结构的整体趋势 神经网络模型结构优化 ...
- 读文章笔记(七):赛尔笔记 | 多模态情感分析简述
读文章笔记(七):多模态情感分析简述 相关任务概览 数据集和方法 面向图文的情感分类任务 面向图文的方面级情感分类任务 赛尔笔记 | 多模态情感分析简述 https://zhuanlan.zhihu. ...
最新文章
- java php 单点登陆,cas实现单点登录,登出(java跟php客户端)(转)
- Lucene教程具体解释
- 计算机没考好检讨,考试没考好检讨书范文(精选6篇)
- 笔记-信息系统安全管理-网络安全工具
- boost::type_erasure模块construction相关的测试程序
- 魅族17系列正式发布:17年梦想之作,3699元起
- layui的tree实现 struts 2+layui+jsp
- 逆天闪存设备 居然能将数据保存至少百年
- TP框架漏洞复现(持续更新)
- 风尚云网笔记-vue中echarts引入
- time stamp convert
- layui 表格前端分页
- “80后”博士,晋升正厅!
- 一个屌丝程序猿的人生(八十)
- CentOS 7 安装rar解压缩软件
- 开关灯效果HTML,开关灯效果
- c学前儿童语言教育试卷,学前儿童语言教育期中试卷
- 利用JUZ包实现文件压缩和解压
- esp32例子初始化流程
- #发现你#桃子还是苹果——沉锚效应
热门文章
- 网络安全风险评估关键技术讨论
- iOS 获取 WKWebView 里面图片
- 忘记手机密码怎么用计算机解开,手机忘记密码怎么办?教你三种方法帮你搞定!...
- 好用android平板,好用却不平凡,Remix OS让安卓平板活过来!
- Spring学习-初识Spring
- # CF #807 Div.2(A - D)
- 阿里云虚拟主机wordpress伪静态设置Nginx设置
- 怎样黑进Microsoft:循序渐进指南 (转)
- 如何让Div层悬浮在Flash Object对象之上!
- mysql 设置密码出现ERROR 1819 (HY000): Your password does not satisfy the current policy requirements