本文转载自:http://blog.csdn.net/freezgw1985/article/details/16873677

个人觉得对很适合对SDN的入门级的概念性理解,先暂时copy一下,等研究深入之后,再慢慢补充自己的东西。

1. 何为SDN

1) 为什么需要一个全新的网络架构,比如SDN?

在传统的架构中,交换机和路由器不得不在操作6000种分布式协议的控制下实施整个网络的智能。这就意味着,即使只有一个网元增加了一种新的协议,也需要所有其他网元做出相应的结构变更。事实上,在网络中增加一种新的协议往往需要数年时间,才能最终完成标准化到实际部署的过程。

SDN使得网络可编程化,这就使得网络在满足用户的需求方面更加灵活。

2)SDN的架构是怎么样的?

SDN将控制功能从网络交换设备中分离出来,将其移入到逻辑上独立的控制环境------网络控制系统中。该系统可以在通用的服务器上运行,任何用户可以随时,直接进行控制功能编程。控制功能不再局限于路由器中。控制系统提供一组API,用户可以通过API对控制系统进行监控、管理、维护。

补充基本概念:

(1) 控制平面:是数据网络中做出转发决定的元素,如路由协议,选路策略以及网络设备上运行这些协议的软硬件资源等。

其决定包括往那条路径上转发,是否要启用多条路径转发同一个数据流等。

(2) 数据平面是指定控制平面转发决定的部分,包括数据封装解封装技术,网络协议的告诉转发芯片等。

2. SDN的好处

1) SDN加快了新业务引入的速度。网络运营商可以通过可控的软件部署相关的功能,而不必像以前那样等待某个设备提供商在专有设备上添加相应的方案;

2)SDN降低了网络的运营费用。消除了应用和特定网络的细节----比如,端口和IP关联,使得无需花费时间和金钱配置网络设备;

3)SDN有助于实现网络虚拟化。长期以来通过命令行接口进行人工配置,一直在阻碍网络向虚拟化迈进。

4) SDN让网络乃至所有IT系统更好地以业务目标位导向。增加软件模块来增加SDN功能。

5) 简化网络部署。

3. openflow在SDN中扮演的角色是什么?

openflow是SDN的三大关键要素之一。

SDN的第一关键要素是转发和控制分离,这使得网络交换机转发变得更加简单,高效;同时,控制变成可网络操作系统中一个相对集中的逻辑功能。

第二大关键要是是openflow协议,它向交换机传送转发表,交换机依此转发报文。这种做法与传统网络完全不同。在传统网络中,交换机和路由器需要自己决定报文的转发路径,照成成本增加,性能降低。

第三个关键要素是具有一致性的,全系统范围的网络操作系统可编程接口,他能让网络实现真正意义上的可编程或者软件定义网络。

openflow协议不是必须的,可以通过其他途径,只需要将流量表信息传递给交换机。

4. 网络设备基于流的工作模式

为了保证转发数据的效率,大部分网络设备都是基于流转发的。以全新的FTP为例:

(1) FTP业务的第一个数据表抵达交换机时路由协议或二层选路协议计算出这个数据包的出端口,并将结果存入交换机的TCAM(三元内容可寻址内存,也就是记录着从哪里可以到哪里去)。

(2) 当交换机的数据平面收到数据包时,它将数据包的地址信息(也就是“从哪里来”信息)与TCAM比对,如果能查到一直的表项,交换机根据查询结果(也就是“去哪儿”信息)进行转发。

注意:在整个过程中,交换机控制控制平面只需对每个流的第一个数据包进行路由计算(交换机控制平面做的工作),并且将结果写入TCAM,后续的判定通过查找TCAM。好处是大大提高了转发效率。

5. SDN Controller的工作模式

SDN也就基于flow工作,SDN Controller的主要工作是建立和管理维护交换机上flow table。那么与传统的工作有何不同?SDN有两种工作模式:

(1)主动模式:

SDN Controller将Flow table信息一次性下发到数据平面所在的交换机,数据平面收到的包如果找不到对应Flow table就丢弃。当然SDN Controller主动更新数据平面的flow table内容。

这种模式的好处是数据平面在处理数据包时几乎没有等待控制器处理时间,大大缩短转发时延。坏处是对数据平面Flow table的容量有很高的要求。

(2) 被动模式:

在数据平面收到新的数据包时,控制平面才会将相关flowtable信息下发。

SDN基础理解的更多相关文章

  1. C#委托零基础理解

    C#委托零基础理解(转) 1,  为什么使用委托  2.什么是委托  3.委托如何使用 为什么使用委托? 委托是c#中非常重要的一个概念,使用委托使程序员可以将方法引用封装在委托对象内.然后可以将该委 ...

  2. Sdn - 基础题试水

    ## sdn - 初步分析基于OpenFlow的SDN网络控制功能 题目要求: 1.下发流表项实现 h1 和 h2,h2 和 h3 不能互通.h1 和 h3 可互通. 2.结合捕获的 SDN 相关协议 ...

  3. 机器学习:SVM(基础理解)

    一.基础理解 1)简介 SVM(Support Vector Machine):支撑向量机,既可以解决分类问题,又可以解决回归问题: SVM 算法可分为:Hard Margin SVM.Soft Ma ...

  4. Js函数function基础理解

    正文:我们知道,在js中,函数实际上是一个对象,每个函数都是Function类型的实例,并且都与其他引用类型一样具有属性和方法.因此,函数名实际上是指向函数对象的指针,不与某个函数绑定.在常见的两种定 ...

  5. 2017-2-17,c#基础,输入输出,定义变量,变量赋值,int.Parse的基础理解,在本的初学者也能看懂(未完待续)

    计算机是死板的固定的,人是活跃的开放的,初学c#第一天给我的感觉就是:用人活跃开放式的思维去与呆萌的计算机沟通,摸清脾气,有利于双方深入合作,这也是今晚的教训,细心,仔细,大胆 c#基础 1.Hell ...

  6. ansible基础-理解篇

    1. 介绍 要说现在的部署工具,ansible可以说家喻户晓了. ansible是一个开源软件,用于软件供应.配置管理.应用部署.ansible可以通过SSH.remote PowerShell.其他 ...

  7. SVM(支持向量机)简介与基础理解

    SVM(支持向量机)主要用于分类问题,主要的应用场景有字符识别.面部识别.行人检测.文本分类等领域.原文地址:https://zhuanlan.zhihu.com/p/21932911?refer=b ...

  8. 数据平面可编程与SDN关系理解,以及数据平面可编程的理解

    数据平面可编程与SDN关系 狭义 广义 数据平面可编程的理解 狭义 广义

  9. Deep Learning基础--理解LSTM/RNN中的Attention机制

    导读 目前采用编码器-解码器 (Encode-Decode) 结构的模型非常热门,是因为它在许多领域较其他的传统模型方法都取得了更好的结果.这种结构的模型通常将输入序列编码成一个固定长度的向量表示,对 ...

随机推荐

  1. HTML基础(2) 格式标签 文本标签

    格式标签: 1.<p></p>  用来显示段落 2.<br> 控制换行 3.<nobr> </nobr> 防止浏览器将过长内容自动换行显示 ...

  2. mac下安装配置nginx环境

    本文介绍 nginx 在mac上的安装. 我是通过brewhome 来安装的. brew install nginx 一路顺畅. 下面是安装信息. 复制代码 代码如下: hematoMacBook-P ...

  3. sql server获取当前日期

    SqlServer中得到当前日期(convert函数,getdate函数)函数GETDATE()的返回值在显示时只显示到秒.实际上,SQL Sever内部时间可以精确到毫秒级(确切地说,可以精确到3. ...

  4. angularjs服务常见用法

    服务可以再应用的整个生命周期内保持数据,不会在切换路由或者重新加载视图时被清楚掉(控制器只有在需要时才被实例化) 服务是一个单例对象,在每个应用中只会被实例化一次 服务在应用的生命周期内保存数据 an ...

  5. 如何在PSD中准确切出图片

    步骤如下: 1.Ctrl+alt+鼠标滚轮 放大图片,按住H键拖动图片选取位置: 2.选择“移动工具” (勾选“自动选择”,“图层”): 3.选中后,选择图层,右击,选择“转换为智能对象”: 4.使用 ...

  6. html》meta标签笔记

    meta是html语言head区的一个辅助性标签.也许你认为这些代码可有可无.其实如果你能够用好meta标签,会给你带来意想不到的效果,meta标签的作用有:搜索引擎优化(SEO),定义页面使用语言, ...

  7. Cocos2dx边学边总结——开篇(一)

    Cocos2dx是一个很好的开源跨平台2d游戏引擎,我们都知道他底层是基于OpenGl ES的,OpenGl 是跨平台的. 正是得益于这点 Cocos2dx的显示部分可以很好的跨平台运作,笔者认为 未 ...

  8. Windows phone 之XML序列化与反序列化

    为什么要做序列化和反序列化? 一个回答: 我们都知道对象是不能在网络中直接传输的,不过还有补救的办法.XML(Extensible Markup Language)可扩展标记语言,本身就被设计用来存储 ...

  9. 百度地图Api 根据两个坐标点计算距离

    百度地图Android Sdk的Api里面,没有现成的直接获取两个坐标点之间距离的方法,但是,在jsapi里面,有直接计算距离的方法. class Point: pass def max(a,b): ...

  10. NorFlash

    一.NorFlash概述 1.NorFlash Intel于1988年首先开发出NOR Flash 技术,彻底改变了原先由EPROM(Erasable Programmable Read-Only-M ...