IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> PISCES: A Programmable Protocol-Independent Software Switch(总结) -> 正文阅读

[网络协议]PISCES: A Programmable Protocol-Independent Software Switch(总结)

PISCES: A Programmable, Protocol-Independent Software Switch

重要性

虚拟机监视器使用软件交换机来引导数据包进出虚拟机。这些交换机经常需要升级和定制,以支持新的协议头或用于隧道和覆盖的封装,以改进测量和调试功能,甚至添加类似于中间设备的函数。软件交换机通常基于大量的代码,包括内核代码,改变交换机是一项艰巨的任务,需要精通网络协议的设计和开发、测试,以及维护一个庞大而复杂的代码库。改变软件交换机转发数据包的方式不需要对其实现有深入的了解。相反,应该可以指定如何用高级领域特定语言(DSL)(如P4)处理和转发数据包,并将其编译为在软件交换机上运行。评估表明,PISCES的性能与OVS相当,PISCES程序的长度约为OVS源代码的1/40。

挑战

如何实现和优化

方案

软件交换机的转发行为是使用特定领域的语言指定的。本例是基于Open vSwitch (OVS)软件交换机,使用P4领域专用语言进行配置。实现的协议无关的软件交换机。
该方案的好处有:

  • 添加新的标准或私有协议头:数据中心所有者可以更快地编译和部署新协议
  • 删除标准协议头:删除未使用的协议与删除协议规范中未使用的部分并重新编译交换机源代码一样简单
  • 更好的可视化:能够快速修改转发和监视逻辑,可以减少诊断和修复网络故障的时间。
  • 可以添加添加全新的功能:用户和网络所有者可以修改转发行为,将更快地改进他们的网络。
    本例对OVS进行了改进
  • 任意封装和解封装:OVS不支持P4程序可能需要的任意封装和解封装。所以添加了两个新的原语,封装和解封装。
  • 基于报头字段比较的条件:OpenFlow只直接支持对报头字段的按位相等测试。在OVS中添加了对不等关系的直接支持,以条件操作的形式。
  • 一般的校验和验证/更新:OVS只支持增量校验和,但为了支持以程序员希望的方式使用校验和,对增量校验进行了优化。
    并且本例对编译器后端进行了优化:
  • 内联编辑/流水线编辑:优化器分析中间表示,以确定在流水线中一个包可能需要修改多少次。如果值低于某个阈值,则优化器执行内联编辑;否则,它将执行流水线后编辑。
  • 动作优化:使用诸如死代码消除之类的优化来识别和消除设置操作中的冗余
  • 增量校验和:通过用高级程序描述(如P4)来表示校验和操作,程序员可以向编译器提供必要的上下文信息,以便更有效地实现校验和
  • 解析器优化:在高级语言中指定转发行为可以为编译器提供可以用来优化解析器的信息。
  • 动作合并:通过分析P4程序中的控制流和匹配操作处理,编译器可以发现哪些字段实际上被修改了,并可以生成一个有效的、单一的操作来直接更新这些字段。
  • 缓存字段修改:通过自动生成操作来实现P4程序所需的特定算术操作,在可能的情况下避免匹配和设置
  • 分阶段指派:增强了P4语言,使用户能够用阶段编号注释每个头文件

见解

设计和实现了第一个允许在高级DSL中定制协议规范而不需要直接修改交换机源代码的软件交换机。平均比等效的OVS源代码短约40倍,而转发性能(即吞吐量)开销仅为2%左右。证明在虚拟机监视器交换机中,可编程性的成本可以忽略不计,研究结果可以启发设计新的协议无关的软件交换机。

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-04-18 18:20:11  更:2022-04-18 18:21:54 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 4:25:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码