技术谈 | SDN 和 NFV 之间的爱与恨
部分开发者经常混淆 SDN 和 NFV,无法看清他们的关系。今天,小编搬出华为技术专家的一篇大稿,给大家掰扯掰扯:SDN 和 NFV 究竟是什么关系。
----文/闫长江
什么是 SDN
回到基本的概念层面,SDN 是软件定义网络,把网络进行软件化,网络本来由很多很多的设备组成,现在要把网络看成一个软件系统,这个软件系统的核心部分是 SDN 控制器。未来的趋势是,大部分对网络的控制工作都可以在 SDN 控制器这个软件系统上实现,而不用去修改网络设备(转发器)来实现。
用这张图说,SDN 控制器就是一个网络操作系统+上面的各种控制程序构成的一个软件系统,整个网络系统的硬件是网络的设备和链路,网络系统的软件包括控制器上的网络操作系统+控制程序,另外一部分软件是嵌入在网络设备上软件程序,可以认为是 SDN 控制器的设备侧本地驱动程序构成。
当然在 SDN 提供虚拟网络服务中,可能需要快速为客户提供增值业务服务和虚拟网络设备服务,这样也需要 NFV 提供软件设备来支持 SDN 快速满足客户需求的能力。
所以 SDN 的核心概念是把一个网络变成一个软件系统,而 SDN 控制器的网络不区分下面是软件设备(VNF)还是硬件设备(一体机设备)。SDN 通过增加 SDN 控制器重构原来的网络系统。
什么是 NFV
NFV,网络功能虚拟化,是面向单个网络设备的,是把单个网络设备软件化。这里的虚拟化就是软件化。原来的各种网络设备中有一些本来就是一个纯服务器软件,比如网管 EMS/NMS、计费服务器、认证服务器、DHCP、RADIUS 等等,而另外大部分设备各个厂家实现的都是嵌入式系统,提供软件和硬件一体设备,比如传送设备、交换机、路由器、无线设备、甚至无线核心网设备等等。也包括各种流量处理的增值业务设备比如防火墙、负载均衡器等。原来各个厂家都提供专用设备含软件和硬件的原因是,综合考虑性能、可靠性、成本等因素,专用设备整体最优。
随着服务器计算能力的提升,大部分网络设备,尤其是计算密集型的网络设备,比如 4 到 7 层的各种流量处理设备,都可以用服务器来替代,只要在服务器上运行一个软件,就几乎可以达到原来专用设备水平。另外随着数据中心、云计算的兴起,大量网络设备软件化成为了必然趋势,其核心价值包括业务的部署和创新速度的提升、硬件的通用化、软件的可替代性、运维成本的降低、软件系统的扩展性等方面。所以 NFV 实际涉及的领域包括了无线网络设备(各种核心网设备)、用户数据增值处理(防火墙、负载均衡、视频处理等),甚至还包括各种软件的 IP 网络设备(软件路由器和软件交换机、软件的接入网关 BRAS)。但是共同的特点是要把原来的一个专用网络设备,做成一个纯软件系统。
NFV 的本质是提供一种软件形态的网络设备替代原来的专用硬件设备。
SDN 和 NFV 关系
SDN 是面向网络的,把一张网络变成一个软件系统。NFV 是面向单个网络设备的,把传统专用网络设备变成一个软件系统;
在 NFV 的实际部署过程中,需要支持网络功能的快速部署能力,需要网络实现自动化,这一点需要 SDN 支持。相反 SDN 对 NFV 没有任何依赖关系;
SDN 在实现网络软件化过程中,其控制的设备包括软件设备和硬件设备。而 SDN 在为客户提供网络服务的时候,通常需要快速在网络中部署软件网络设备包括软件路由器、软件交换机、软件 VAS(FW,CACHE 等),因为这样做才能做到网络自动化,快速满足客户的网络服务需求。而这些软件设备是否可以快速在网络中增加启用,则是 NFV 的业务范围了;
SDN 要实现的网络的软件化、业务自动化、简化网络、简化运维、降低 CAPEX\OPEX 等,NFV 是要实现单个网络设备的软件化并利用通用计算能力来替代专用设备,从而带来快速业务创新、快速业务部署、降低网络设备的 CAPEX/OPEX 等价值。
总结
NFV 为了达到其解决方案快速部署的价值,需要依赖 SDN 的网络自动化能力。SDN 为了快速提供网络业务,也需要 NFV 提供软件设备。
SDN 是面向网络的,SDN 没有改变网络的功能,而是重构了网络的架构。NFV 是面向设备的,NFV 没有改变设备的功能,而是改变设备的形态。
作者:泡芙小超人
技术谈 | SDN 和 NFV 之间的爱与恨的更多相关文章
- 浅谈SDN和NFV之间的关系
一个行业固定设备的折旧周期很长,任何变革的发生都绝非易事,但是网络却一次性面临两项革新--软件定义网络(SDN)和网络功能虚拟化(NFV),在变革网络的过程中,二者若想取得成功可能会依赖彼此的技术,或 ...
- SDN与NFV技术在云数据中心的规模应用探讨
Neo 2016-1-29 | 发表评论 编者按:以云数据中心为切入点,首先对SDN领域中的叠加网络.SDN控制器.VxLAN 3种重要技术特点进行了研究,接下来对NFV领域中的通用服务器性能.服务链 ...
- 谈数据中心SDN与NFV
看到一篇谈论SDN与NFV的文章,分析的还不错,贴过来方便自己后续查阅: http://network.chinabyte.com/175/13095675.shtml 论数据中心SDN与NFV技术关 ...
- 浅谈SDN架构下的运维工作
导读 目前国内的网络运维还处于初级阶段,工作人员每天就像救火一样,天天疲于奔命.运维人员只能埋头查找系统运行的日志,耗时耗力,老眼昏花不说,有时候忙了半天还一无所获,作为运维工程师的你,有木有遇到过类 ...
- 【ASP.NET MVC系列】浅谈ASP.NET 页面之间传值的几种方式
ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...
- 蓝的成长记——追逐DBA(5):不谈技术谈业务,恼人的应用系统
***************************************声明*************************************** 个人在oracle路上的成长记录,当中 ...
- 谈谈Nancy中让人又爱又恨的Diagnostics【上篇】
前言 在Nancy中有个十分不错的功能-Diagnostics,可以说这个功能让人又爱又恨. 或许我们都做过下面这样的一些尝试: 记录某一个功能用到的相关技术信息 记录下网站的访问记录 全局配置某些框 ...
- Lambda-让人又爱又恨的“->"
写在前边 聊到Java8新特性,我们第一反应想到的肯定是Lambda表达式和函数式接口的出现.要说ta到底有没有在一定程度上"优化"了代码的简洁性呢?抑或是ta在一定程度上给程序员 ...
- 又爱又恨系列之枚举enum
其实枚举挺简单的,只不过以前没好好学,所以不知道这个东西,恩,现在梳理一下 整体而言,首先枚举是一个数据类型,这个数据类型和结构体有点像 可以分为三个层次 1.枚举数据类型定义 第一种:enum 枚举 ...
随机推荐
- iOS开发高级分享 - iOS的可折叠表视图
导言 我曾经开发过一个iphone应用程序,它显示了大量的输入,这些输入分为不同的类别,在`UITableView`...若要更改其中一个输入的值,用户按下表视图中的对应行,并在出现的单独屏幕中更改该 ...
- 工具类 ,无需再存localstorage
/** * 工具类 */var Utils = { /** * 获得查询参数 */ getQueryString: function(name) { var search = location.sea ...
- Python 定义动态变量
问题描述 在做数据处理时,对一些分组得来的数据,所做的操作大同小异,变量的命名也都拥有相同的结构,比如对每个月份的数据求均值.方差等统计量,变量的命名可取为“n月的均值”,“n月的方差”,抽象出来就是 ...
- jQuery源码分析--为什么在参数列表中传入undefined
(function(window, undefined){ //jQuery code; })(window); 为什么要传入undefined? 1.没有传入undefined: <!DOCT ...
- 利用Python获取统计自己的qq群成员信息
利用python获取自己的qq群成员信息! 首先说明一下需要使用的工具以及技术:python3 + selenium selenium安装方法:pip install selenium 前提:获取自己 ...
- H5+app,自动更新后自动删除安装包
H5+app 自动删除安装包 一.前言 之前做好的app自动更新,遗留下了一个问题,就是自动更新后安装包没有自行删除掉. 好像现在的手机的系统是有安装完自动清理安装包的.想我这个H5+的app安装完后 ...
- Uber Go 语言编码规范
Uber Go 语言编码规范 Uber 是一家美国硅谷的科技公司,也是 Go 语言的早期 adopter.其开源了很多 golang 项目,诸如被 Gopher 圈熟知的 zap.jaeger 等.2 ...
- Ansible之常用模块(二)
1.hostname:此模块的主要作用是管理远端节点主机名 模块帮助: root@localhost ~]# ansible-doc -s hostname - name: Manage hostna ...
- 推荐Java五大微服务器及其代码示例教程
来源素文宅博客:http://blog.yoodb.com/yoodb/article/detail/1339 微服务越来越多地用于开发领域,因为开发人员致力于创建更大,更复杂的应用程序,这些应用程序 ...
- java多线程与线程并发五:多个线程访问共享对象和数据的方式
本节的内容主要是对前面几节提到的线程间共享数据的方式做一个总结. 线程之间共享数据有以下几种方式: 1.如果每个线程执行的代码相同,可以使用同一个Runnable对象. 2.如果每个线程执行的代码不同 ...