SDN基础理解

本文转载自: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信息下发。

时间: 2024-10-10 19:04:20

SDN基础理解的相关文章

伪元素、伪类基础理解

前几天同事问我css中单冒号和双冒号是什么意思,我也模糊得很,只有个笼统的概念就是:伪元素和伪类.一直以为,页面布局中很少使用到伪类,结果细细研究发现我们经常使用的hover就是一个最简单的伪类,顿时觉得自己太OUT了,紧跟着这两天都在看这些东西,其实伪类最简单的理解就是用于向某些选择器添加特殊的效果. 具体伪类.伪元素有哪些我就不一一列举,在w3c中列举的很清楚.我主要写写应用的实例. 1.来个简单的,咱们最常用到的向超链接添加不同的颜色: <html> <head> <m

jvm基础理解

一.jvm运行时内存区域 包含堆,虚拟机栈,本地栈(调用native方法时用到),方法区(perm区),程序计数器. 假设32位操作系统,这时系统限制每个进程大小为2G.这样上述这些区域(对于本地栈及程序计数器来讲,是无法设置的,hotspot有提供-Xoss参数用于设置本地方法栈.但实际是无效的)可以用相应参数设置,共同划分全部2G内存. 注意还有一块直接内存,不属于JAVA运行时区域.但是它的空间用得太多的话,还是受限于物理内存和虚拟内存总大小,因此也会抛出OutOfMemory.典型的re

C#委托零基础理解

C#委托零基础理解(转) 1,  为什么使用委托  2.什么是委托  3.委托如何使用 为什么使用委托? 委托是c#中非常重要的一个概念,使用委托使程序员可以将方法引用封装在委托对象内.然后可以将该委托对象传递给可调用所引用方法的代码,而不必在编译时知道将调用哪个方法.与C或C++中的函数指针不同,委托是面向对象,而且是类型安全的. 什么是委托? 委托是一种引用方法的类型,一旦为委托分配了方法,委托将与该方法具有相同的行为,委托方法的使用和其他方法一样,具有参数和返回值. 如何使用委托 下面咱们

初涉网络,自己对服务器的一些基础理解

首先感谢bangumi.tv技术宅真可怕小组的各位提供的指点与帮助 万能的bangumi,请务必不要嫌弃我的无知 因为自己对网络了解较少,所以可能自己的理解有偏差或者因为便于自己理解而不严谨,所以请看到的各位理解(会有人看到吗),希望也不太懂的各位谨慎相信,希望很懂的各位指点. 以下是自己的理解与疑问,摘自bangumi连接. 最近自己学习建立网站,接触了很多云/vps/虚拟主机/服务器 等等很多东西,因为以前对网络方面基本没有了解,所以乱的现在快要爆炸了. 按照我以前的理解,所谓服务器或者云,

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

计算机是死板的固定的,人是活跃的开放的,初学c#第一天给我的感觉就是:用人活跃开放式的思维去与呆萌的计算机沟通,摸清脾气,有利于双方深入合作,这也是今晚的教训,细心,仔细,大胆 c#基础 1.Hello!World!!! 1 { //输出Hello!World!!; 2 Console.WriteLine("Hello!World!!!"); 3 //防止闪退; 4 Console.ReadLine(); 5 6 } 踏入IT世界的第一步,向世界问好 2.string定义变量 套用向老

零基础理解Binder

写在前面的 当一个Android App存在某个不需要UI的后台运行需求时,或者是因为内存占用需要采用多进程方案时,我们免不了与多进程打交道.必不可少的,需要考虑Binder在其中如何实现. 最常见的Binder实现当然是AIDL,然而Binder的实现绝不仅仅只有AIDL一种方式,如果止步于写.aidl,那么对于Binder,对于Android整体的跨进程传输过程的理解都只能流于形式. 但是想理解Binder不是一件容易的事情,Binder的概念涉及太多知识点,遍观各大论坛上关于Binder的

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

导读 目前采用编码器-解码器 (Encode-Decode) 结构的模型非常热门,是因为它在许多领域较其他的传统模型方法都取得了更好的结果.这种结构的模型通常将输入序列编码成一个固定长度的向量表示,对于长度较短的输入序列而言,该模型能够学习出对应合理的向量表示.然而,这种模型存在的问题在于:当输入序列非常长时,模型难以学到合理的向量表示. 在这篇博文中,我们将探索加入LSTM/RNN模型中的attention机制是如何克服传统编码器-解码器结构存在的问题的. 通过阅读这篇博文,你将会学习到: 传

Js函数function基础理解

正文:我们知道,在js中,函数实际上是一个对象,每个函数都是Function类型的实例,并且都与其他引用类型一样具有属性和方法.因此,函数名实际上是指向函数对象的指针,不与某个函数绑定.在常见的两种定义方式(见下文)之外,还有一种定义的方式能更直观的体现出这个概念: var sum = new Function("num1", "num2", "return num1 + num2"); //不推荐 Function的构造函数可以接收任意数量的参

Deep Learning基础--理解LSTM网络

循环神经网络(RNN) 人们的每次思考并不都是从零开始的.比如说你在阅读这篇文章时,你基于对前面的文字的理解来理解你目前阅读到的文字,而不是每读到一个文字时,都抛弃掉前面的思考,从头开始.你的记忆是有持久性的. 传统的神经网络并不能如此,这似乎是一个主要的缺点.例如,假设你在看一场电影,你想对电影里的每一个场景进行分类.传统的神经网络不能够基于前面的已分类场景来推断接下来的场景分类. 循环神经网络(Recurrent Neural Networks)解决了这个问题.这种神经网络带有环,可以将信息