可编程数据平面将OpenFlow扩展至电信级应用(一) 案例:基于WinPath网络处理器的电信极OpenFlow (CG-OF)client实现 作者:Liviu Pinchas, Tao Lang - PMC-Sierra Eddie Millsopp, Dermot Flanagan - Asidua 1. OpenFlow OpenFlow定义了软件定义的网络(SDN)中的开放通信协议,从而将控制平面与转发平面分隔开来,并将控制平面集中在控制器之中,数据平面则位于网络设备之上(OpenF…
可编程数据平面将OpenFlow扩展至电信级应用(二) 案例:基于WinPath网络处理器的电信极OpenFlow (CG-OF)client实现 作者:Liviu Pinchas, Tao Lang - PMC-Sierra Eddie Millsopp, Dermot Flanagan - Asidua 4. 软件考量 4.1 数据通道 为达到理想目标,可编程数据通道设备还须要配备一套丰富的数据通道软件协议. 开发该软件的目的在于满足电信级以太网协议严格的实时性要求.并提供所需的灵活度与便利…
引言 关于题目,对数据平面进行编程,在之前读过the road to SDN,软件定义网络的思想在于数控分离,其对网络行为的编程暂时只局限于网络控制平面.其转发平面在很大程度上受制于功能固定的包处理硬件.而P4语言的出现就是为了完全摆脱网络数据平面的束缚.P4被称作为完全可编程南向编程接口,其提出的目的就是为了解决Openflow编程能力不足及其设计本身所存在的可拓展性差的难题. P4的特性 目标无关性:其不受限于具体目标设备的方式控制转发行为. 协议无关性:可以利用编译器在不受限与具体协议的交…
引言 SDN架构强调了对控制平面的可编程,数据平面只负责转发,导致数据平面很大程度上受制于功能固定的包处理硬件. P4语言的特性: 目标无关性:P4语言不受制于具体设备,所有可编程芯片都可以使用P4编程. 协议无关性:P4可以表达任何转发行为. P4可以生成南向API,帮助控制器与数据平面交互. 交换机通过P4,也可以变成防火墙.负载均衡器等等网络设备. 可编程数据平面的目标 不同领域 目标 网络服务厂商 快速迭代,易修复漏洞 网络拥有着 自定义网络功能,百家争鸣. 芯片制造商 不用考虑过多的协…
主要介绍SDN架构和转发模型 一:传统网络设备 (一)传统设备控制平面和数据平面 (二)数据平面的任务 数据平面对数据包的处理,主要通过查询由控制平面所生成的转发信息表来完成 (三)传统网络数据平面数据包的处理流程 (四)传统网络数据转发处理特点 比如某一设备的数据平面,只能对某几种特定协议的数据包进行解析 功能模块固定,在网络生产时就已经固定.例如: 二:SDN数据平面架构 (一)主要变化 第一:在该SDN数据平面中,包处理流程中的所有模块,包括解析.转发和调度,都是可编程.协议无关的 第二:…
一种解析与执行联动的SDN可编程数据平面 现有问题和目标 在传统协议处理方式中,各层的协议类型和组合方式固定,使得添加或修改协议很困难(因为需要修改网络设备的解析模式) 基于解析和执行联动结构的可编程数据平面(CLIPE)的目标是使网络设备在报文的解析,查表和动作执行上支持用户自定义 整体架构 解析器:解析数据包包头信息并将包头组合交给匹配模块,包头域偏移信息RAM缓存: 匹配模块:根据解析器的包头组合查表,得到动作类型并交给动作执行器: 动作执行器:结合RAM中包头的偏移信息和接受到的动作类型…
数据平面可编程与SDN关系 狭义 广义 数据平面可编程的理解 狭义 广义…
一.实验目的 掌握V1Model框架下P4_16的程序结构和基本语法 能够运用 P4 进行简单数据平面编程 二.实验报告 在修改basic_tunnel.p4的内容之后输入make run 验证创建结构的连通性pingall 输入xterm h1 h2 打开终端 h2 输入./receive.py h1 输入./send.py 10.0.2.2 "Congratulations on success of Liella 1st livestage!" h2收到信息 h1 输入./sen…
15-05-29          http://p4.org/join-us/ 由两位SDN大师----来自普林斯顿的Jennifer Rexford和斯坦福的Nick McKeown---- 共同发起的P4联盟正式对外公布全新的项目主页, 详细阐述了P4的目标定位.如何使用P4进行开发.开源事项等相关细节, 并且为P4选取了一个非常可爱的北极熊LOGO. P4是一门主要用于数据平面的编程语言, 它的名字是根据一篇论文的标题“Programming Protocol-Independent P…
4.1 网络层概述  网络层主要功能为转发(将数据从路由器输入接口转移到合适的输出接口)和路由选择(端到端的路径选择),每台路由器都有一张转发表,用最长前缀匹配规则来转发. 4.1.1 转发和路由选择:数据平面和控制平面 转发(forwarding) 是指将分组从一个输入链路转移到适当的输出链路接口的路由器本地动作. 路由选择(routing) 是指确定分组从源到目的地所采取的端到端路径的网络范围处理过程. 4.1.2 网络服务模型 因特网的网络层IP协议提供单一服务,尽力而为服务,无带宽保证,…
https://mp.weixin.qq.com/s/DJ_IeDswGGFQiWqJ75pmig 开源 | Service Mesh 数据平面 SOFAMosn 深层揭秘 朵晓东 蚂蚁金服科技 2018-08-02…
C#高级编程9-第12章 动态语言扩展 dynamic t = new ExpandoObject(); t.Abc = "abc"; t.Value = ; Console.WriteLine(t.Abc); t.Abc = "; Console.WriteLine(t.Abc); dynamic动态类型的值是可读可写的,它是编译型语言,而Javascript是解释性语言.因此JavaScript定义后可以引用它.而dynamic定义后,无法引用它,无法获知它的类型是什么.…
本文内容 并行编程 数据并行 环境 计算 PI 矩阵相乘 把目录中的全部图片复制到另一个目录 列出指定目录中的所有文件,包括其子目录 最近,对多线程编程,并行编程,异步编程,这三个概念有点晕了,之前我研究了异步编程<VS 2013 C# 异步编程 async await>,现在猛然发觉,自己怎么有点不明白这三者之间有什么联系和区别了呢?有点说不清.道不明的感觉~ 因此,回顾了一下个人经历,屡屡思路~我刚接触计算机时,还是学校的 DOS 和 win 3.x,之后,学校换了 Windows 95,…
前言 PowerBuilder作为开发工具退出一线行列已经很久了,在2019年来谈这样一款老旧的编程工具是否有意义?诚然,PB有着太多硬伤,但还是有它的用武之地的.而且今天讲的这个“新思维”大部分内容是我在其它地方没有见过的,包含一些比较新的思想,但愿能够给各位读者带来耳目一新的感觉和有价值的参考. 由于内容比较多,打算合起来作为一个库,名字叫PowerPlume,中文为“孔雀翎”,古龙书中强大又美丽的武器. PowerBuilder编程新思维1:扩展(Lua) PB环境是封闭的,导致有些部分的…
JavaScript高级编程———数据存储(cookie.WebStorage) <script> /*Cookie 读写删 CookieUtil.get()方法根据cookie的名称获取相应的值,它会在documen.cookie字符串中查找cookie名加上等于号的位置, 如果找到了,那么使用indexof查找该位置之后的第一个分号(表示了该cookie的结束位置) 如果没有找到分号,则表示该cookie是字符串中的最后一个,则余下的字符串都是cookie的值, 该值使用decodeURI…
一.并行概念 1.并行编程 在.NET 4中的并行编程是依赖Task Parallel Library(后面简称为TPL) 实现的.在TPL中,最基本的执行单元是task(中文可以理解为"任务"),一个task就代表了你要执行的一个操作.你可以为你所要执行的每一个操作定义一个task,TPL就负责创建线程来执行你所定义的task,并且管理线程.TPL是面向task的,自动的:而传统的多线程是以人工为导向的. 现在已经进入了多核的时代,我们的程序如何更多的利用好硬件cpu,答案是并行处理…
DAOS 通过两个紧密集成的平面进行运转.数据平面处理繁重的运输操作,而控制平面负责进程编排和存储管理,简化数据平面的操作. 模块接口 I/O 引擎支持一个模块接口,该接口允许按需加载服务器端代码.每个模块实际上都是一个库,由 I/O 引擎通过 dlopen 动态加载.模块和 I/O 引擎之间的接口在 dss_module 数据结构中定义. 每个模块应指定: 模块名 daos_module_id 中的模块标识符 特征位掩码 一个模块初始化和销毁函数 此外,模块还可以选择配置: 在整个堆栈启动并运…
InnoDB行锁是通过索引上的索引项来实现的,这一点MySQL与Oracle不同,后者是通过在数据中对相应数据行加锁来实现的. InnoDB这种行锁实现特点意味者:只有通过索引条件检索数据,InnoDB才会使用行级锁,否则,InnoDB将使用表锁! 在实际应用中,要特别注意InnoDB行锁的这一特性,不然的话,可能导致大量的锁冲突,从而影响并发性能.…
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 简介:李海翔,网名"那海蓝蓝",腾讯金融云数据库技术专家.中国人民大学信息学院工程硕士企业导师.著有<数据库事务处理的艺术:事务管理和并发访问控制>.<数据库查询优化器的艺术:原理解析与SQL性能优化>,广受好评. 2018年5月11日,腾讯TDSQL团队为中国数据库技术大会DTCC带来了腾讯最新的数据库核心技术:TDSQL原创的全态数据的概念和基于历史态数据的可见性判断算法. 腾讯专家工程师李海翔在D…
一.文件数据读写 1.本地文件系统的数据读写 可以采用多种方式创建Pair RDD,其中一种主要方式是使用map()函数来实现 惰性机制,即使输入了错误的语句spark-shell也不会马上报错. (1)读 给出路径名称,TextFile会把路径下面的所有文件都读进来,生成一个RDD (2)写 当只有一个分区时,单线程才会出现part-0000 如果分了两个分区,写完之后会生成part-0000和part-0001 2.分布式文件系统HDFS的数据读写 (1)读 (2)写 3.JSON文件的数据…
本系列学习在.NET中的并发并行编程模式,实战技巧 内容目录 数据并行Fork/Join模式PLINQ 本小节开始学习数据并行的概念模式,以及在.NET中数据并行的实现方式.本系列保证最少代码呈现量,虽然talk is cheap, show me the code被奉为圭臬,我的学习习惯是,只学习知识点,代码不在当下立马要用的时候不会认真去读的,更何况在大多时候在手机阅读更不顺畅. 数据并行 数据并行是通过将数据集拆分为多个块并独立并行处理每个分区,将每块分配给单独的任务来实现.任务完成后,将…
学习C#语言的朋友们肯定或多或少地接触到了WinForm编程,在C#语言的可视化IDE中(如VS.NET中)使用设计器可以让我们轻松地完成窗体.按钮.标签.图片框等等控件的组合,我们可以轻易地做出界面友好的WinForm应用程序.我们还可以通过WinForm程序中强大的事件处理机制来使我们的应用程序更加丰满. 当然,我们这次不谈窗体.不谈按钮…… 我们谈谈DataGridView(数据网格视图). 作为真正与用户进行信息交互的界面,很大程度上需要向用户完整地展示数据,而在WinForm相关的强大…
1.使用php的MySQL扩展库操作MySQL数据库: php有3种方式操作MySQL数据库 (1)mysql扩展库 (2)mysqli扩展库 (3)pdo     mysql扩展库与mysql数据库区别 ? php设计者封装了一些方法去操作mysql数据库,这些方法集中起来形成了mysql扩展库.mysql数据库存放数据.     2.使用php的MySQL扩展库操作MySQL数据库案例: (1)环境搭建:启用MySQL数据库,在php.ini文件中配置使用MySQL数据库,        …
网络编程---将网络上的大文件下载到本地,并打印其进度. 点击"開始传输"button.将网络上的大文件先下载下来,下载完毕后,保存到本地. UI效果图例如以下: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMjczNjQ0MzE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" width="200" h…
准备导入一个数据库,大约为33G,开始创建的空库表空间为自增到20G,结果自然不够,然后就开始自动扩展表空间大小 使用的如下语句 --自动扩展表空间大小 ALTER DATABASE DATAFILE 'E:\app\oracle\oradata\ORCL\WORKFLOW01.ora' AUTOEXTEND ON NEXT 200M MAXSIZE 60000M; 然后就提示 ORA-03206,块大小超出范围云云 查了一下说是单个文件最大为32G,这里自增的有将近60G,所以就报错了 看了很…
MVC执行流程 路由的扩展 我理解的路由作用有以下几个 Seo优化,用“/”分开的url爬虫更爱吃 物理和逻辑文件分离,url不再按照文件路径映射 Controller,Action的选择 MVC路由的扩展 实话实说MVC的路由我很少去做扩展,在MVC4时代,还会去重写掉url的大小写,而在MVC5之后,MVC自带了配置去小写化url.不过有一个配置还是必须要提一下那就是Area,在你的系统达到一定规模之后,Controllers通过Area来管理将会变得更容易.这里给出我的Area扩展,很简单…
具体开发中遇到的问题如下, 数据表格的重新渲染或重新加载会导致当前操作的分页 或 配置被清空.我正在操作第5页,重新渲染后就回到了最原始第1页. 需要达到的效果是: 不调用接口,仅仅只是从table.cache["表ID"] 缓存里重新渲染, 步骤:1.将需要修改的列 和 值 使用table.cache["表ID"][“行索引”]["字段名"]=“xxxx” 2.调用自己写的扩展方法,将指定页 重新渲染到界面. Layui 官方提供的文档 提供的…
目录 1.前言 2.数据竞争 2.1 示例一 2.1.1 测试 2.1.2 data race 检测 2.1.3 data race 配置 2.2 循环中使用goroutine引用临时变量 2.3 引起变量共享 2.4 不受保护的全局变量 2.5 未受保护的成员变量 2.6 接口中存在的数据竞争 3. 总结 4 参考 1.前言 虽然在 go 中,并发编程十分简单, 只需要使用 go func() 就能启动一个 goroutine 去做一些事情,但是正是由于这种简单我们要十分当心,不然很容易出现一…
直接插入排序                                                       冒泡排序 简单选择排序 线性表: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 线性表 { interface IListDS<T> { /// <summary&…
C#中的扩展方法 有许多扩展类的方式.如果有类的源代码,继承就是给类添加功能的好方法.但是如果没有源代码,怎么办?吃屎可以使用扩展方法,它允许改变一个类,但不需要该类的源代码.扩展方法是静态方法,它是类的一部分,但实际上没有放在类的源代码中.例如我有一个Money类,不知道源代码,需要一个AddToAmount(decimal amountToAdd). 我们可以这么做: namespace Wrox { public static class MoneyExtension { public s…