• 用P4对数据平面进行编程


    引言


    • SDN架构强调了对控制平面的可编程,数据平面只负责转发,导致数据平面很大程度上受制于功能固定的包处理硬件。
    • P4语言的特性:
      • 目标无关性:P4语言不受制于具体设备,所有可编程芯片都可以使用P4编程。
      • 协议无关性:P4可以表达任何转发行为。
    • P4可以生成南向API,帮助控制器与数据平面交互。
    • 交换机通过P4,也可以变成防火墙、负载均衡器等等网络设备。

    可编程数据平面的目标



    不同领域 目标
    网络服务厂商 快速迭代,易修复漏洞
    网络拥有着 自定义网络功能,百家争鸣
    芯片制造商 不用考虑过多的协议细节(协议无关),只考虑提升芯片的转发速度。
    科研人员 容易实现研发的新功能。
    • P4的总体好处
      • 新功能:频繁的推出新的网络功能。
      • 降低复杂性:交换机中不用事先设定好那么多复杂的协议(其实有些协议已经不经常使用了),通过P4定义转发规则。省去或者去掉那些不使用且复杂的协议。
      • 提高资源利用率:去掉一些不必要的协议,网络资源利用率自然提高。
      • 可视化:传统硬件只负责转发,忽视了流量的监控、分析、诊断功能。加入可编程后,可以通过自定义模块来增加这些功能。
      • 模块化:别人写的P4代码库可以被调用。
      • 可移植性:一个P4代码可以配置到多台交换机上。

    协议无关交换机架构


    • 中端包处理硬件:CPU,FPGA。
    • 中端包处理硬件的速度还不够,而且可编程高速包处理硬件是可行的,额外开销也可以做到足够低。

    PISA架构

    • PISA包括:可编程解析器,可编程匹配单元。
    • 必须通过编程来告诉解析器和匹配-动作单元:
      • 怎么解析包。
      • 解析之后根据什么匹配。
      • 每个匹配之后要执行什么动作。
    • 没有配置的PISA芯片不会实现任何功能,这也是协议无关的一个体现。
    • PISA内部有多个匹配-动作单元,多个包处理阶段以流水线方式工作(循序安排)。
    • 每个阶段有多个匹配-动作单元并行。好像超标量流水线
    • PISA中其它的基本模块
    名称 功能
    逆解析模块 逆解析:经过修改过的数据包头在输出之前需要重新组合,PISA的逆解析操作也是可编程的。
    回流路径 某些数据包需要重新反馈到流水线进行重新处理。
    可编程数据包生成器 CPU(控制平面)可以将周期生成数据包的工作交给这个模块。有些特殊情况是要生成数据包的
    连接数据平面与控制平面的高带宽通道 顾名思义

    P4语言简介


    • P4程序构成
    模块 功能
    包头 定义一系列数据包头部字段的长度,顺序。
    解析器 如何识别出包头
    匹配动作表。定义匹配字段(包括:完全匹配,三元匹配,最长前缀匹配,范围匹配。)和相应的操作。
    动作 表中的动作。自定义执行序列。
    控制顺序 定义以什么顺序用表来处理包。一个表到下一个表的控制流(由条件语句和表的引用组成的命令程序)
    • P4编译器的功能:P4语言-转换成交换机的硬件语言。
  • 相关阅读:
    程序性能优化之布局检测与优化(二)下篇
    程序性能优化之布局检测与优化(二)上篇
    程序性能优化之启动速度与执行效率优化(一)下篇
    程序性能优化之启动速度与执行效率优化(一)上篇
    【前端图表】echarts散点图鼠标划过散点显示信息
    【干货】前端开发者最常用的六款IDE
    全网最全的小程序学习资料和文章,看这篇就够了
    Jquery+Ajax+Bootstrap Paginator实现分页的拼接
    推荐一款在线工具-程序员的工具箱
    推荐一款稳定快速免费的前端开源项目 CDN 加速服务
  • 原文地址:https://www.cnblogs.com/031602523liu/p/9333615.html
Copyright © 2020-2023  润新知