SDN:软件定义网络

SDN:软件定义网络

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

近期高级网络课的小组任务是在老师给定的范围内自选方向主题研究并做展示报告。我们组选了sdn。原以为这东西会是工业界无人问津的概念化产品,Google了一下却发现事实上sdn挺火的,因为它可能带来的可扩展性,一些大互联网企业也在開始涉足相关的研发,比方Google呵Facebook。这里简要的梳理下我对SDN概念性的认识。

背景

虚拟化的大趋势

近年来,大数据、云计算兴起,虚拟化技术的重要性越发突出。提到虚拟化,不得不提的是计算机行业里的一句老话:

计算机世界的绝大部分问题都能够通过分层的方法来解决

事实上虚拟化也能够理解成一种分层的思想。就拿云计算这个应用场景来说,虚拟化的技术就是在原有的硬件-操作系统-用户层次中,增添了虚拟机这么一层,变成了硬件-虚拟机-操作系统-用户,用虚拟机来管理硬件资源,添加�了动态调整硬件资源的语义。

纵观计算机的发展历程,各方面都能够看到通过添加�类似的虚拟化层次来提高生产效率的案例。比方高级语言之于汇编,比方图形界面之于命令行。这样的加入�层次的解决方式,总是能让问题得到更清晰的解决。

网络虚拟化

网络经历了数十年的发展,现在在人们的生产、生活中发挥着巨大的作用。全球的网络拓扑结构结构错综复杂,有很多的自制系统组成。数据包从中国的一台PC机发出,訪问到美国的主机,需经过一系列的路由、转发,而经由的网络拓扑节点由层层网关、路由器支配,难于控制。一些组织,在架设自身的可扩展、大规模网络环境时,也相同遇到了拓扑结构复杂、难于维护的问题。

假设能剥离开网络的物理拓扑结构,将网络资源虚拟化,隐藏物理结构的复杂性,统一的进行逻辑层的管理控制,就能满足多变的网络需求了。

SDN和OpenFlow就是一个这种解决方式。

OpenFlow和SDN

OpenFlow起源于斯坦福的Ethane项目。该项目试图通过一个集中式的控制器,让网络管理员能够方便地定义基于网络流的安全控制策略,并将这些安全策略应用到各种网络设备中,从而实现对整个网络通讯的安全控制。受到此项目的启示,斯坦福的老师和学生将Ethane的设计更一般化,将传统网络设备的数据转发(data plane)和路由控制(control plane)两个功能模块相分离,通过集中式的控制器(Controller)以标准化的接口对各种网络设备进行管理和配置。2008年,他们提出了OpenFlow的概念。

这样的分布式的实现方式,让控制平面能够和转发平面物理的分离开,控制平面全然能够执行在运算能力更强的server上,而不是路由器。OpenFlow协议则是分离的两者之间的通信协议。关于OpenFlow的技术细节,《虚拟化的逆袭:OpenFlow和SDN》一文中有简明介绍。

基于OpenFlow为网络带来的可编程的特性,有研究人员提出了SDN即Software Defined Network(2009年)。在这个概念中,网络中全部的网络设备被视为被管理的资源,以此抽象出一个网络操作系统(Network OS)的概念,这个网络操作系统一方面抽象了底层网络设备的详细细节,同一时候还为上层应用提供了统一的管理视图和编程接口。SDN的架构细节,參见《SDN是生意 OpenFlow是技术》

SDN和OpenFlow的关系,就像互联网之于TCP/IP协议栈。OpenFlow是SDN的核心协议,用于控制转发面设备的控制转发。而SDN是上层的变成界面。

有观点觉得,『OpenFlow是技术,SDN是生意』。近期对SDN唱衰的报道也证明了这桩『生意』的前途未仆。

SDN的发展

在云计算飞速发展的同一时候,SDN也喧嚣尘上。Google,Facebook等大公司也结成了产业联盟,来推动其发展。

但其现状也并不是一片明朗:

依据IDC的研究结果显示,在2013年,整个企业网络行业的市场价值为420亿美元,当中将近一半来自2-3层网络交换机市场。SDN仅仅能产生约37亿美元的价值(8.8%),并且要到2016年才干达到这个数字。与早前的预測相比,IDC的预測数字有所添加�,但从整个网络行业来看,SDN仍然相去甚远。

一方面,SDN的性能还有待改善,还有一方面,因为SDN的统一平台的思想,会带来硬件设备的同质化,威胁到厂商的利益,将会面临来自厂商锁定的阻力。《理性看待SDN》一文中有较具体的解释。

尽管虚拟化能解放生产力,是大势所趋,但就像功耗更大的复杂指令集在市场上战胜了精简指令集一样,市场是残酷的。仅仅能期待开源和开放的脚步不要停下。

參考


PS:欢迎訪问博客新家 http://biaobiaoqi.me
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/118386.html原文链接:https://javaforall.net

(0)
上一篇 2021年12月6日 下午10:00
下一篇 2021年12月6日 下午11:00


相关推荐

  • PXE网络

    PXE网络PXE原理和概念PXE严格来说并不是一种安装方式,而是一种引导的方式。进行PXE安装的必要条件是要安装的计算机中包含一个PXE支持的网卡(NIC),即网卡中必须要有PXEClient。PXE(Pre-bootExecutionEnvironment)协议使计算机可以通过网络启动。协议分为client和server端,PXEclient在网卡的ROM中,当计算机引导时,BIOS把PXEclient调入内存执行,由PXEclient将放置在远端的文件通过.

    2022年6月16日
    30
  • YUV420转RGB

    YUV420转RGB一 YUV420 数据存储 nbsp nbsp YUV 格式有两大类 planar 和 packed 对于 planar 的 YUV 格式 先连续存储所有像素点的 Y 紧接着存储所有像素点的 U 随后是所有像素点的 V 对于 packed 的 YUV 格式 每个像素点的 Y U V 是连续交 存储的 以 dm642 的 H263loopback 例子程序为例 发送线程中 视频捕获后我们得到 YUV422planar 数据 然后转化成 YUV420planar

    2026年3月16日
    2
  • 银行家算法(c语言实现)

    银行家算法(c语言实现)银行家算法是资源和死锁避免的算法,由艾兹格·迪杰斯特拉(EdsgerDijkstra)设计的算法用于测已确定总数量的资源分配的安全性,在决定是否该分配应该被允许并进行下去之前,通过“s-state”校验码测试资源分配活动期间产生死锁条件的可能性。     该算法是为为THE操作系统设计并且最在在EWD108描述。当一个新的进程进入系统时,进程必须声明所需每个资源实例最大的数量和类型。显然,资…

    2022年6月11日
    33
  • 共勉:作为一名程序员你应该怎么提一个高质量的问题?

    做一个积极的人编码、改bug、提升自己我有一个乐园,面向编程,春暖花开!又是一个周五,今天依旧不分享技术,这几天不知道怎么,感觉有点累,昨天十点就睡觉了,很久没有这么早睡觉了。现在已经是晚上10点了,我还在码字中,今天争取早点睡觉。今天整理一点关于如何提问的内容,因为最近一段时间有一些技术朋友加我好友,一起探讨一些技术问题。但是一些伙伴加我之后,提问的姿势可能有点不太正确,导致聊了很一会…

    2022年2月28日
    49
  • Android短信验证码控件,Android中实现短信验证码自动填入

    Android短信验证码控件,Android中实现短信验证码自动填入Android中实现短信验证码自动填入由于目前的好多应用都有短信验证,短信验证码收到后,用户手动输入已经显得有麻烦,于是我写了这篇博文,希望能对大家有所帮助。实现步骤:1.写一个SmsBroadcastReceiver,在AndroidMainifirst.xml文件中注册:/***配置广播接收者:**表示:*设置此广播接收者的级别为最高*/类代码:publiccl…

    2022年7月25日
    12
  • android一键换机功能实现,不同品牌手机一键换机教程「建议收藏」

    android一键换机功能实现,不同品牌手机一键换机教程「建议收藏」我们正处于一个数码产品更新换代非常快速的时代,很多消费者会紧跟时代潮流,经常更换新手机,但是更换手机之后我们通常需要将旧手机里的数据进行转移,不同品牌之间的手机怎么进行一键换机呢?以安卓手机更换苹果手机转移数据为例:1、首先我们需要在安卓手机上安装“转移到iOS”APP,通过该应用我们可以将安卓手机的数据转移到新的苹果手机上2、确保安卓设备处于WiFi状态3、将安卓设备以及苹果设备连接电源4、设置…

    2022年5月9日
    241

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号