主要介绍SDN架构和转发模型

一:传统网络设备

(一)传统设备控制平面和数据平面

(二)数据平面的任务

数据平面对数据包的处理,主要通过查询由控制平面所生成的转发信息表来完成

(三)传统网络数据平面数据包的处理流程

(四)传统网络数据转发处理特点

比如某一设备的数据平面,只能对某几种特定协议的数据包进行解析

功能模块固定,在网络生产时就已经固定。例如:

二:SDN数据平面架构

(一)主要变化

第一:在该SDN数据平面中,包处理流程中的所有模块,包括解析、转发和调度,都是可编程、协议无关的

第二:传统网络设备中的二层或三层转发表被抽象成流表

三:OpenFlow转发模型

(一)SDN数据平面实现的一次尝试

(二)OpenFlow交换机转发模型

在该转发模型中,OpenFlow交换机将传统网络数据平面中的各种查找表抽象成一种通用的流表结构。
同时将数据转发处理,抽象成通用的匹配-动作过程(Match-Action过程)

每个流表可以实现:

(三)OpenFlow交换机通用转发模型---代表性和缺点

代表性

OpenFlow交换机转发模型是现有通用可编程数据平面中的代表。目前主流SDN物理交换机和虚拟交换机都实现了对OpenFlow的支持

缺点

无法达到理想的通用可编程转发模型的要求

四:可编程协议无关交换机架构(PISA架构)

(一)与OpenFlow相比

改进了OpenFlow交换机在支持新网络协议方面的不足(可编程可以实现对新网络协议的支持--动态)

注:解析器和匹配-动作单元只有在被编程后,才能做具体的数据包处理工作。PISA芯片在没有配置前,不会实现任何的数据平面协议,所以说PISA是协议无关的架构

软件定义网络基础---SDN数据平面的更多相关文章

  1. 软件定义网络基础---SDN控制平面

    一:SDN控制平面 一个或多个SDN控制器组成,是网络的大脑.  对底层网络交换设备进行集中管理,状态监测.转发决策以及处理和调 度数据平面的流量:  通过北向接口向上层应用开放多个层次的可编程能 ...

  2. 软件定义网络基础---SDN的核心思想

    一:SDN包含的核心思想:解耦,抽象,可编程 二:解耦 (一)SDN网络解耦思想 解耦是指将控制平面和数据平面进行分离,主要为了解决传统网络中控制平面和数据平面在物理上紧耦合导致的问题 控制平面和数据 ...

  3. 软件定义网络基础---SDN的主流构架

    一:基于不同标准的主流构架 二: ONF定义的SDN基本构架 (一) 四个平面.两大接口 三:四个平面 (一)数据平面 数据平面是由若干网元(Netword Element)构成,每个网元包括一个或多 ...

  4. 软件定义网络基础---SDN的发展

    一:发展初期阶段--提出 架构.设计思想和实现技术的提出 二:发展中期阶段--企业加入,推动发展 三:SDN的发展趋势 (一)SD-DC SDN被大规模应用数据中心的服务器和设备部署运维,产生了软件定 ...

  5. 软件定义网络基础---SDN的产生

  6. 《软件定义网络:SDN与OpenFlow解析》

    <软件定义网络:SDN与OpenFlow解析> 基本信息 原书名:SDN: Software Defined Networks 原出版社: O'Reilly Media 作者: (美)Th ...

  7. 解析与动作联动得SDN数据平面

    一种解析与执行联动的SDN可编程数据平面 现有问题和目标 在传统协议处理方式中,各层的协议类型和组合方式固定,使得添加或修改协议很困难(因为需要修改网络设备的解析模式) 基于解析和执行联动结构的可编程 ...

  8. 软件定义网络基础---REST API的设计规范

    一:REST API的设计 REST API是基于HTTP协议进行设计的,由HTTP动词+URI组成 (一)HTTP动词 (二)资源的原型 文档(Document): 文档是资源的单一表现形式: 集合 ...

  9. 软件定义网络基础---NETCONF协议

    netconf协议最早被作为网管协议被提出来的,与SNMP网管协议相比较:SNMP的优势在于网络设备的监测,在大规模网管应用中有很大不足,正是针对这种不足之处,提出了NETCONF协议 一:NETCO ...

随机推荐

  1. Oracle 查询结果去重保留一项

    首先因为需要查询很多字段,也就排除了使用distinct的可能性. 1.1 原始sql select finalSql.* from (select '' SMS_CONTENT, ' as 短信发出 ...

  2. 结构型模式(七) 代理模式(Proxy)

    一.动机(Motivate) 在面向对象系统中,有些对象由于某种原因(比如对象创建的开销很大,或者某些操作需要安全控制,或者需要进程外的访问等),直接访问会给使用者.或者系统结构带来很多麻烦.如何在不 ...

  3. CentOS7添加/删除用户和用户组

    1.新建用户 adduser testuser //新建testuser 用户 passwd testuser //给testuser 用户设置密码 2.建工作组 groupadd testgroup ...

  4. 文件操作-with和上下文管理器

    代码: # -*- coding:utf-8 -*- # 普通版 如果写入的过程中出错 则不会释放资源 def m1(): f = open("test.txt","w& ...

  5. CSS hack整理

    浏览器的兼容性一直是个头疼的问题,使用“欺骗”技术可使各个浏览器效果一致,花了些时间整理了各个浏览器的HACK,主要包括IE系列和最新版本的Chrome.Safari.Firefox. Opera,比 ...

  6. httpclient: 设置连接池及超时配置,请求数据:PoolingHttpClientConnectionManager

    public static void main(String[] args) throws Exception{ //httpclient连接池 //创建连接池 PoolingHttpClientCo ...

  7. Spark 的两种核心 Shuffle (HashShuffle 与 与 SortShuffle) 的 的工作流程

    1. 参考博客:https://blog.csdn.net/qichangjian/article/details/88039576

  8. Python中对列表排序实例

    Python中对列表排序实例 发布时间:2015-01-04 09:01:50 投稿:junjie 这篇文章主要介绍了Python中对列表排序实例,本文给出了9个List的排序实例,需要的朋友可以参考 ...

  9. es 启动问题

    max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536] vim / ...

  10. 【洛谷P4245】 【模板】任意模数NTT

    三模数 NTT,感觉不是很难写 $?$ 代码借鉴的 https://www.cnblogs.com/Mychael/p/9297652.html code: #include <bits/std ...