P4论文粗读笔记(一)
一
- 文章名称:SNAP: Stateful Network-Wide Abstractions for Packet Processing
- 数据包处理的带状态网络概念
- 发表时间:2016
- 期刊来源:SIGCOMM'16
- 解决问题:
- 一如何通过编程高效地、正确地管理带状态、分布式系统(提出SNAP)。SNAP提供一个简化的带状态程序模型,开发者可以通过它在一个相对高层的交换机上进行开发项目。这些项目包括有全局读写、永久数组,故开发人员可以开发从带状态防火墙到细粒度流量监控的应用。SNAP编译器可以帮助开发人员分配、放置、优化带状态数组,减轻开发人员的负担。这个问题简单的说就是:对带状态、分布式集中的设备进行编程通常是最困难的编程问题之一。
- 二OpenFlow1.0版本的带状态控制器+无状态交换机实现的简单程序(比如 检测SYN洪,或者检测DNS放大攻击),不能够高效地实现(由于来回的与控制器通信)。事实上,带状态控制器程序适合于每一个数据包都需要进行带状态处理的数据流。
- 三 状态可编程数据平面使我们能够将需要根据数据包状态处理的程序卸载到交换机上,从而将大量的功能(其中包括在中间盒实现的功能)转移到了交换机进行处理。
- 所做贡献:
- 一 使用永久的全局数组、大交换机编程模型和网络传输形成带状态SDN可编程语言。
- 二为编译SNAP项目的算法转变成低级交换机机制。
- 三、 使用大约20个应用评估我们实现的语言。
二
- 文章名称:Data center TCP (DCTCP)
- 发表时间:2010
- 期刊来源:SIGCOMM
- 解决问题:
- 一、数据中心由于支持需要小的可预测延迟应用和其他需要大的可持续吞吐量的应用,导致高应用延迟受到损害。
- 二、TCP协议要求在数据中心交换机有限的内存空间得到尽可能多的空间,这导致了高应用延迟受损。比如带宽饥饿的后台流在交换机上建立了队列,导致影响正在运作的对延迟敏感的流的性能。
- 所做贡献:
- 一、测量和分析生产流量(> 150TB的压缩数据),在一个月内从~6000台服务器(§2)收集,从由商品交换机组成的数据中心网络提取应用程序模式和需求(特别是低延迟需求)。识别损害性能的损失,并链接到流量和交换机的属性
- 二提出DCTCP,类似TCP这样为数据中心网络服务的协议。DCTCP利用网络中的显式拥塞通知(ECN)向终端主机提供多位反馈。在相同配置的交换机,尽管使用少于90%的缓存空间,DCTCP协议可以传送一样甚至更好的吞吐量。同时,与TCP不同,DCTCP为短的流提供高耐突发性和低延迟性。在解决源于操作测量的工作负载时,DCTCP仍然可以使应用解决当前后台流量的10倍,并且不影响"前台"的流量。而且,当前台超过10倍的流量后,"前台"流量并不会导致任何超时,从而很大程度上消除了传输问题。
- 不足之处:
- 一没有解决如何在内部和外部(数据中心外至少一个端点)流之间分配数据中心带宽的问题。
- 实验对比:
三
- 文章名称:Forwarding Metamorphosis: Fast Programmable Match-Action Processing in Hardware for SDN
- 转发变换:SDN硬件中的快速可编程匹配动作处理
- 发表时间:2013
- 期刊来源:ACM SIGCOMM
- 解决问题:
- 一 在这些速度下(兆兆位),哪种形式的可重构性是可行的?
- 二 受限制的可重配置性是否涵盖了我们之前提到的需求的很大一部分
- 三 通过使用硅证明这些想法的可行性。
- 四 与MMT相比,RMT芯片的耗费如何
- 所做贡献:
- 一 提出转发抽象概念在网络中高速下是适用的,以及在转发平面可以进行重配置的程度做出贡献。(就是廉价的可编程PISA芯片)
- 二 提出RMT的架构
- 三 提供用例展示了RMT使用以太网和IP头进行配置。
- 四 估计了芯片设计的成本和花费。
- 不足之处:
- 一 实现上有内存限制
- 二匹配限制
- 三包头限制
- 四动作限制
- 实验对比:
四
- 文章名称:用P4数据平面进行编程
- 发表时间:2016
- 期刊来源:中国计算机学会通讯(翻译来的)
- 解决问题:
- 一 转发平面很大程度上受限于固定的包处理硬件,如何让网络数据平面摆脱束缚,自上而下定义数据包的完整流程?
- 所做贡献:
- 一 提出P4(Programming Protocol-Independent
Packet Processors)高级语言,实现不受限于具体目标设备(目标无关)的方式控制转发行为。 - 二 描述了PISA芯片的架构
- 三 P4语言简介(协议无关性,目标无关性,可重配性),包括P4程序定义,编译器功能
- 四 提出了关于P4的一些研究问题,比如P4如何演变,如何测试两个P4程序在编译前后的等效性等
- 一 提出P4(Programming Protocol-Independent
五
- 文章名称:P4: Programming Protocol-Independent Packet Processors
- 发表时间:2014
- 期刊来源:SIGCOMM
- 解决问题:
- 一 OpenFlow协议头的配置从12个字段增长到41个字段,这增加了它的复杂性,并且没有提供该有的灵活性。不断出现新的协议,这将导致OpenFlow协议头需要不断的变化以适应对新出现协议的匹配。
- 所做贡献:
- 一 提出P4,实现三个目标。
- 字段可重配性
- 协议独立性
- 目标无关性
- 二 OpenFlow与转发模型(P4)进行对比。转发模型由两种类型的操作控制,配置操作和填充操作。
- 三 通过例子说明P4语言概念、结构、数据包解析器、表配置,动作配置、控制程序。
- 一 提出P4,实现三个目标。
- 不足之处:
- 一 拥塞控制原语
- 二排队规则
- 三流量监控
P4论文粗读笔记(一)的更多相关文章
- SDN网络虚拟化、资源映射等相关论文粗读
1. Control Plane Latency with SDN Network Hypervisors: The Cost of Virtualization 年份:2016 来源:IEEE NE ...
- SDN测量论文粗读(三)9.24
Jaal: Towards Network Intrusion Detection at ISP Scale 论文来源:CoNext 发表时间:2015 解决问题及所做贡献:Jaal:大规模精细网络入 ...
- SDN测量论文粗读(二)9.21
Monocle: Dynamic,Fine-Grained Data Plane Monitoring 论文来源:CoNext 发表时间:2015 解决问题及所做贡献:Monocle:检测交换机中硬件 ...
- SDN测量论文粗读(一)9.19
UMON: Flexible and Fine Grained Traffic Monitoring in Open vSwitch 论文来源:CoNext 发表时间:2015 解决问题及所做贡献:现 ...
- 带状态论文粗读(三)[引用openstate的相关论文阅读]
一 文章名称:FLOWGUARD: Building Robust Firewalls for Software-Defined Networks 发表时间:2014 期刊来源:--- 解决问题: 一 ...
- 有关HTTP的粗读
.mytitle { background: #2B6695; color: white; font-family: "微软雅黑", "宋体", "黑 ...
- 关于 AlphaGo 论文的阅读笔记
这是Deepmind 公司在2016年1月28日Nature 杂志发表论文 <Mastering the game of Go with deep neural networks and tre ...
- < AlexNet - 论文研读个人笔记 >
Alexnet - 论文研读个人笔记 一.论文架构 摘要: 简要说明了获得成绩.网络架构.技巧特点 1.introduction 领域方向概述 前人模型成绩 本文具体贡献 2.The Dataset ...
- 论文泛读:Click Fraud Detection: Adversarial Pattern Recognition over 5 Years at Microsoft
这篇论文非常适合工业界的人(比如我)去读,有很多的借鉴意义. 强烈建议自己去读. title:五年微软经验的点击欺诈检测 摘要:1.微软很厉害.2.本文描述了大规模数据挖掘所面临的独特挑战.解决这一问 ...
随机推荐
- Objective-C(生命周期)
视图控制器生命周期 : 1)当一个视图控制器被创建,并在屏幕上显示的时候. 代码的执行顺序 1.alloc 创建对象,分配空间 2.init(initWithNibName) 初始化对象,初始化数据 ...
- PHP DES加解密
test.php测试文件 <?php require_once('Des.php'); $des = new Des(); $data['a'] = 'a'; $data['b'] = 'b'; ...
- 使用C语言给php写扩展
1.在php源码路径的ext文件夹下,新建一个extend_test.def文件,编辑文件内容为 string my_test_function(string str,int n) 2.在当前目录执行 ...
- 三、用Delphi10.3 创建一条JSON数据的第三种方法,非常简洁的写法
一.用Delphi10.3构造一个JSON数据的第三种方法,并格式化输出,代码如下: uses // System.JSON, System.JSON.Types, System.JSON.Write ...
- 【转】Netty 拆包粘包和服务启动流程分析
原文:https://www.cnblogs.com/itdragon/archive/2018/01/29/8365694.html Netty 拆包粘包和服务启动流程分析 通过本章学习,笔者希望你 ...
- 大数据入门第五天——离线计算之hadoop(下)hadoop-shell与HDFS的JavaAPI入门
一.Hadoop Shell命令 既然有官方文档,那当然先找到官方文档的参考:http://hadoop.apache.org/docs/current/hadoop-project-dist/had ...
- PyQt5 笔记(05):信号/槽
PyQt 的很多类都内置了信号和槽.下图是 Qt 官方文档对 QThread 类中包含的信号/槽的描述: 一.信号/槽 都是内置的 请看一个最简单的程序: 按钮点击后,窗口关闭 代码: class T ...
- [Deep-Learning-with-Python]神经网络入手学习[上]
神经网络入手[上] [x] 神经网络的核心部分 [x] Keras介绍 [ ] 使用Keras解决简单问题:分类和回归 神经网络剖析 神经网络的训练与下列对象相关: 网络层Layers,网络层结合形成 ...
- Kubernetes学习之路(九)之kubernetes命令式快速创建应用
1.使用命令kubectl run创建应用 语法: kubectl run NAME --image=image [--env="key=value"] [--port=port] ...
- Kubernetes学习之路(十一)之Pod状态和生命周期管理
一.什么是Pod? Pod是kubernetes中你可以创建和部署的最小也是最简的单位.一个Pod代表着集群中运行的一个进程. Pod中封装着应用的容器(有的情况下是好几个容器),存储.独立的网络IP ...