SDN(软件定义网络)数据平面

article/2025/9/26 0:28:46

数据平面

传统网络数据平面

数据平面主要执行网络控制逻辑,数据包的处理主要通过查询由控制平面所生成的FIB表来完成

  • FIB表是转发信息表(Forwarding Information Base的缩写,它是网络设备根据路由表生成的转发表,用来指导数据包的转发123。FIB表中每条转发项都指明到达某网段或某主机的报文应通过路由器的哪个物理接口或逻辑接口发送4。

  • 流表主要用于SDN网络体系架构中。流表是SDN网络中控制平面下发给数据平面的转发规则,用来指导数据包按照匹配和动作进行处理123。流表是针对特定流的策略表项的集合,相当于传统网络中的MAC地址表和路由表34。流表中每个流表项都包含了一个匹配域、一个计数器、一个优先级和一组动作1。

FIB表通常只支持有限的协议和用户配置,而流表可以支持多种协议和用户自定义 。

特点

  • 数据转发处理都是协议相关的。

  • 只支持有限的用户配置,不支持编程自定义。

SDN数据平面

SDN中数据平面是指网络设备中负责转发数据包的部分,它与控制平面相分离,不需要实现复杂的网络协议,而只需要根据控制平面的指令执行匹配和动作。SDN数据平面通常使用一种通用的流表结构来表示转发规则,这种结构可以支持多种协议和用户自定义。

特点

  • 处理流程中的:解析(Parser)、转发(Forwarding)和调度 (Scheduling)都是可编程、协议无关的;

  • 传统网络设备的二层或三层转发表抽象成流表

SDN中数据平面的解析、转发、调度是指数据包在SDN交换机中的处理流程。

  1. 解析是指对数据包的头部进行拆封和分析,提取出匹配域的信息。

  1. 转发是指根据流表中的匹配和动作规则,对数据包进行相应的处理,如修改、丢弃或转发。

  1. 调度是指根据流表中的优先级和计数器,对数据包进行排队和缓存,以实现负载均衡和拥塞控制。

OpenFlow Switch通用转发模型

OpenFlow Switch是一种数据平面的抽象,它是SDN数据平面的一种实现方式。它可以通过OpenFlow协议进行通信,实现转、控分离,它是OpenFlow协议的基础。它将数据转发处理抽象成通用的匹配(Match)—动作( Action )过程,将各种查找表抽象成一种通用的流表结构。OpenFlow Switch通用转发模型可以实现协议无关和可编程的数据平面,为SDN提供了灵活和高效的网络控制能力。

除了OpenFlow Switch之外,还有其他的SDN数据平面的实现方式,例如PISA架构(可编程协议无关交换机架构)。PISA相对于OpenFlow有更高的灵活性和可扩展性,可以支持更多的网络功能和应用。

还有一些其他的SDN数据平面的实现方式,例如基于虚拟化技术的NFV(Network Function Virtualization),它可以将网络功能从硬件设备中解耦出来,以软件形式运行在通用服务器上。

OpenFlow架构概述

OpenFlow是一种南向接口协议,用于控制器与交换机之间的通信,定义了一种通用转发模型,将交换机的流表、安全通道和OpenFlow协议组合在一起。OpenFlow是ONF主推的SDN南向接口协议之一,目前已有多个版本的规范被发布。

三个组成部分

  1. 流表(Flow Table):每个动作(Action)关联一个流表项(Flow Entry),指示交换机如何进行流(Flow)的处理。

  • 流表是OpenFlow交换机的关键组成成分,由控制器下发来实现控制平面对转发平面的控制,每一个流表项关联一个动作指示交换机如何进行流的处理

  • 简单说就是:控制器告诉交换机如何处理不同类型的数据包,这些规则储存在一个或多个流表中,而每一个流表则有多个流表项,每一个流表项对应一种数据包类型和一种处理方式。数据包从第一个流表开始匹配,然后根据匹配结果可能被转发到下一个流表中,知道匹配到最后一个流表。

  1. 安全通道(Secure Channel):OpenFlow交换机通过安全通道与远端控制器连接,负责控制器与交换机之间的交互。

  • 控制器和OpenFlow交换机之间建立的一种通信路径。通过这个通道,控制器可以控制和管理交换机,也可以接收交换机的反馈。安全通道上交换的消息必须遵循OpenFlow协议规定的格式。安全通道通常使用TLS加密,但在OpenFlow 1.1及以后的版本中,也可以直接使用TCP明文传输。

  1. OpenFlow协议(Protocol):定义了一种南向接口标准,为控制 器与交换机之间的通信提供了一种开放标准的方式。

主要版本及特性

ONF将1.0和1.3作为长期支持的版本。

OpenFlow是ONF主推的南向接口协议,目前最为流行。

单流表到多级流表的架构

流表(FlowTable)

流(Flow):是指同一时间,经过同一网络中具有某种共同特征(属性)的数据。比如,可以将访问同一目的地址的数据视为一个流。流一般由网络管理员定义,根据不同的流执行不同的策略。OpenFlow体系中,数据以“流”为单位进行处理。

在OpenFlow网络中,控制器和交换机之间通过OpenFlow协议进行通信。控制器可以向交换机发送一些指令,这些指令叫做“流”。每个流包含了一些匹配字段、优先级、计数器、处理动作、超时时间和一个标识符。这些流按照顺序排列在一个或多个表中,形成了流表。
当交换机收到一个数据包时,它会根据包头信息和流表中的匹配字段进行比较,找到最合适的流表项,并执行相应的处理动作。如果没有找到匹配的流表项,交换机会把数据包转发给控制器。

流表及其组成

流表项

流表项包含三个域:包头域、计数器、动作表。

  1. 包头域:包含了数据包的一些特征信息,比如源地址、目的地址、端口号等,用于和流表中的匹配字段进行比较;

  1. 计数器:用于统计数据流量的相关信息,比如数据包数、字节数、持续时间等;

  1. 动作表:用于指示交换机在收到匹配的数据包后应该执行的操作,比如转发、丢弃、修改等。

包头域

第一层:入端口,消息在哪个端口进入交换机。

第二层:源MAC地址(Ether source),目的MAC地址(Ether dst),以太网类型(Ether Type), VLAN标签(VLAN id),VLAN优先级(VLAN priority);

第三层:源IP(IP src),目的IP(IP dst),IP协议字段(IP Proto),IP服务类型(IP ToSbits); 第四层:TCP/UDP源端口号(TCP/UCP src port),TCP/UDP目的端口号(TCP/UDP dst port)。

计数器

针对交换机中的每张流表、每个数据流、每个设备端口、每个转发队 列进行维护,用于统计数据流量的相关信息:

  • 每张流表,统计当前活动的表项数、数据包查询次数、数据包匹配 次数等;

  • 每个数据流,统计接收到的数据包数、字节数、数据流持续时间等;

  • 每个设备端口,除统计接收到的数据包数、发送数据包数、接收字 节数、发送字节数等指标乊外,还可以对各种错误发生的次数进行统计;

  • 每个队列,统计发送的数据包数和字节数,还有发送时的溢出错误次数等。

动作表

用于指示交换机在收到匹配的数据包后应该如何对其进行处理

  • 每一个流表项可以对应零至多个动作,如果没有定义转发动作,则默认丢弃

  • 同一个流表项种的多个动作的执行可以有不同优先级,但是在数据包发送上并不保证其顺序

  • 如果流表项中出现有OpenFlow交换机不支持的参数值,交换机将向控制器返回相应的出错信息

动作表中含有必备动作可选动作

必备动作:需要所有OpenFlow交换机默认支持。

可选动作:需要交换机告知控制器它所能支持的动作种类。

OpenFlow端口

包括物理端口逻辑端口保留端口

保留端口

流表动作表

数据包处理流程

每个包按照优先级依次去匹配流表中表项,匹配包的优先级最高的表项即为 匹配结果。匹配成功,对应的计数器将更新,同时实施转发动作;如果没能 找到匹配的表项,则转发给控制器。

包头解析匹配流程

组表

组表(group table)是OpenFlow1.3版本新增加的一种表,它可以实现数据包的复制、负载均衡和故障转移等功能。组表中有多个组表项(group entry),每个组表项有一个唯一的标识符(group identifier)和一个或多个动作桶(action bucket)。动作桶中包含了对数据包执行的一系列动作,比如转发、修改、丢弃等。

组表和流表(flow table)的区别是:

  • 流表是用来匹配和处理数据流(flow)的,每个流表项(flow entry)有一个匹配域(match field),用来区分不同的数据流。

  • 组表是用来实现数据包的复制或选择性转发的,每个组表项(group entry)有一个类型域(type field),用来指定不同的转发策略。

  • 流表中可以引用组表,即在流表项中指定一个动作为转发给某个组标识符,这样就可以将数据包交给组表处理。

四种类型的组表

OpenFlow支持四种类型的组表:

  1. Indirect:执行该group中一个已定义的bucket,该组仅支持一个bucket。允许多个流表项或组表项指向一个公共的组(例如IP转发的下一跳)。这是最简单的group类型,交换机通常比较支持这种类型的group。

  1. All:执行该group中所有的bucket。可以用于实现广播、多播或并行处理等功能。

  1. Select:根据一定的算法从该group中选择一个bucket来执行。可以用于实现负载均衡等功能。

  1. Fast failover:按照优先级顺序从该group中选择第一个可用(live)的bucket来执行。可以用于实现故障恢复等功能。

计量表

SDN交换机

交换芯片

  • 通用CPU

  • 专用集成电路芯片(Application-Specific Integrated Circuit,ASIC);

  • 现场可编程门阵列(Field Programmable Gate Array,FPGA)芯片

  • 网络处理器(Network Processor,NP)

关于交换芯片

  • ONF成立了转发抽象组(Forwarding Abstraction WG),负责数据平面 新的转发抽象技术,并在现有交换芯片架构基础上提出了支持 OpenFlow接口的折中方案(Table Typing Pattern,TTP),后更名为可 协商的数据平面模型(Negotiable Data-plane Model,NDM);

  • 这种折中方案基于现有的交换芯片,在传统交换芯片基础上增加对 OpenFlow的支持,因此,该方案被芯片厂商普遍接受,加快了交换芯 片在产业界的落地

主流交换芯片

  • Broadcom StrataXGS系列交换芯片:三叉戟(Trident)和战斧(Tomahawk), 两种系列的芯片应用于不同的用户场景;

  • Barefoot Tofino系列交换芯片:基于通用可编程数据平面PISA架构,并 支持数据平面编程语言P4,提供高达12.8 Tb/s的交换处理能力;

  • 盛科系列芯片:CTC5160、CTC7148、CTC8096

交换机

交换机分为:SDN物理(硬件)交换机、SDN虚拟(软件)交换机。

物理交换机

  • 基于ASIC芯片的SDN品牌交换机;

  • Cisco 、NEC、Juniper、IBM、HPE、Arista、DCN等 

  • 基于ASIC芯片的SDN白盒交换机;

  • BigSwitch、盛科、Pica8

  • 基于NP的SDN交换机;

  • 基于FPGA的SDN交换机:NetFPGA

虚拟交换机

  • Open vSwitch(OVS)

  • Cisco Nexus 1000V

  • H3C S1020V

SDN交换机选型考虑参数

  • 背板带宽:交换机接口处理器和数据总线间所能吞吐的最大数据量, 背板带宽越高,所能处理数据的能力就越强,背板带宽是机架式交换 机的技术参数,对于盒式交换机一般没有背板带宽的概念。

  • 背板带宽从几个Gbps到几百Gbps不等,背板带宽也不是越高越好,只 要满足端口线速转发就可以。

  • 对于线速转发的交换机,背板的带宽计算方法:端口数*相应端口速率 *2(全双工模式

SDN交换机参数

  • 端口密度:代表着交换机的转发能力。端口密度:密度越大,设备的转发能 力越强;

  • 端口速率:速率越高,设备的处理性能越强;

  • 支持模块类型:类型越多,实用性越强,可以应用于不同的网络环境,比如: LAN接口、WAN接口、ATM接口。

  • 端口带宽类型:越丰富越好,即支持40G、100G高速端口,又支持百兆、千 兆低速端口,即支持XFP又支持SFP、SFP+、CFP等等多种光接口类型。

考虑参数

  • 时延(延迟)

  • 功耗

  • 支持OpenFlow版本

  • 机架单元

  • 网管功


http://chatgpt.dhexx.cn/article/IdwL2eW8.shtml

相关文章

浅谈软件定义网络SDN

浅谈软件定义网络SDN 前言学习主要内容一、SDN简介二、SDN的三个主要特征转控分离集中控制开放接口 三、SDN的工作原理SDN网络架构的三层模型SDN网络架构下的三个接口SDN基本工作原理 四、SDN的使用场景场景1:SDN在数据中心网络的应用场景2:SDN在数据中心…

软件定义网络(Software Defined Network, SDN)

软件定义网络(Software Defined Network, SDN)在InfoWorld于2011年11月公布的将影响未来10年的十项新技术中排名第二。2012年7月,SDN代表厂商Nicira被VMware以12.6亿美元收购,随后Google宣布成功在其全球10个IDC网络中部署SDN,这促使SDN引起业…

软件定义网络基础(SDN①)

1.SDN的产生: SDN(软件定义网络)的产生源于传统网络无法满足现代网络环境对网络灵活性、可扩展性和安全性等方面的要求。传统网络架构中,网络设备(如交换机和路由器)负责控制和转发数据流量,网络…

什么是软件定义网络 (SDN)

什么是软件定义网络? 软件定义网络 (SDN) 是一种架构,它抽象了网络的不同、可区分的层,使网络变得敏捷和灵活,SDN 的目标是通过使企业和服务提供商能够快速响应不断变化的业务需求来改进网络控制。 在软件定义的网络中&#xff…

秋天来了

秋风清,秋月明, 落叶聚还散,寒鸦栖复惊, 相思相见知何日,此时此夜难为情。 李白《三五七言》 中秋月东海陈光剑 开窗一望中秋月,皎如飞镜临丹阙。东坡望月叹悲欢,舞弄清影在人间。太白举杯邀明月…

足坛最火红人VS三国神将,谁会胜?

张飞武艺高强,勇猛过人,作战能力强,是刘备手下的一把利器,但是他性格过于暴躁,自控能力较差。与张飞有着相似之处的足球明星是科斯塔,因为他是切尔西足球俱乐部的一把利剑。科斯塔球风稳健有力,…

火烧火燎

通电后,如果电路板中出现电源线短路会出现什么情况?那就会出现火烧火燎的情况。 首先是一些电路板中脆弱的器件遭殃。0603封装的0欧姆电阻在施加3V短路电压的时候,瞬间就烧坏了。瞬间电流估计超过了10A。 如果短路器件个头再大一些&#xff0…

新年快乐,大展宏图

祝程序员们,写代码快如闪电,挣钞票日进斗金

新年新气象。

今天每层Pantry里都多了个小玩具。上pp吧:)

在那薪火点燃的地方

年终总结,从去年的今天说起——作品展 时间大约:2013-3-1~2014-5-20 去年的现在,刚开学,提高班便如火如荼地投入到了作品展的准备当中,各自都忙得不亦乐乎。从结组到定主题,从查资料到写代码,从…

农村的新年烟花

英文关键词: Photograph of Colorful fireworks, rural children holding fairy sticks, cold fireworks,,8Khyper quality, --v 4 --upbeta 中文关键词:五颜六色的烟花照片,拿着仙女棒的农村孩子,冷烟花,8 Kh yp er质量,-v 4-up…

和cesuim类似的三维GIS平台_绿城南宁,火红的三维GIS

十月,绿城南宁,三角梅、朱槿和红鸡蛋花满城开放,花香、果香弥漫,一片姹紫嫣红的景象。10月24日,2020中国地理信息产业大会14个分论坛在南宁召开,100多场报告涵盖新一代三维GIS软件技术、自然资源空间信息化…

春天来了

春天了了 带尺寸的图片: 居中的图片: 居中并且带尺寸的图片: 当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。 如何插入一段漂亮的代码片 去博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码…

宝可梦火红存档修改器

花了好久的功夫,终于把宝可梦火红的存档修改器编完了。实现了包括训练师姓名、ID、金钱、宝可梦种族、技能、物品等属性的修改。我把宝可梦火红的GBA文件、模拟器,还有我编写的修改器都打包上传到百度网盘了。下载地址:链接:https…

ARM9协处理器CP15

在基于ARM的嵌入式应用系统中,存储系统通常是通过系统控制协处理器CP15完成的。CP15包含16个32位的寄存器,其编号为0~15。 访问CP15寄存器的指令 MCR ARM寄存器到协处理器寄存器的数据传送 MRC 协处理器寄存器到ARM寄存器的数据传送 MCR指令和M…

CP15协处理器访问指令MCR/MRC解析

ARM11协处理器从CP0到CP15, 其中CP15位系统控制协处理器。功能如下: • overall system control and configuration • cache configuration and management • Tightly-Coupled Memory (TCM) configuration and management • Memory Management Unit (MMU) con…

ARM协处理器CP15(设置MMU,cache等)学习

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴! 作者:wogoyixikexie@gliet 一直对协处理器CP15很恐惧,因为在网上基本上找不到中文的…

ARM存储器之:协处理器CP15

链接:http://www.eefocus.com/embedded/323216/r0 ARM存储器之:协处理器CP15 ARM存储系统有非常灵活的体系结构,可以适应不同的嵌入式应用系统的需要。ARM存储器系统可以使用简单的平板式地址映射机制(就像一些简单的单片机一样…

协处理器CP15

在基于ARM的嵌入式应用系统中,存储系统通常是通过系统控制协处理器CP15完成的。ARM处理器使用协处理器15(CP15)的寄存器来控制cache、TCM和存储器管理。CP15包含16个32位的寄存器,其编号为0~15。 CP15访问CP15寄存器的指令 MCR ARM寄存器到协处理器寄存…

ARM协处理器(CP15)指令介绍

什么是协处理器 协处理器是一种芯片,用于减轻系统微处理器的特定处理任务。例如,数学协处理器可以控制数字处理;图形协处理器可以处理视频绘制。例如,intel pentium微处理器就包括内置的数学协处理器。   协处理器可以附属于AR…