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