1.SDN的产生:

SDN(软件定义网络)的产生源于传统网络无法满足现代网络环境对网络灵活性、可扩展性和安全性等方面的要求。传统网络架构中,网络设备(如交换机和路由器)负责控制和转发数据流量,网络管理员需要手动配置和管理这些设备,使其在网络中传输数据。这种方式存在以下几个问题:

  1. 网络设备的控制逻辑和数据转发逻辑紧密耦合,导致网络管理复杂,难以扩展和自动化。
  2. 传统网络架构缺乏对网络流量的全面可见性和实时控制,难以应对网络安全威胁。
  3. 难以支持新型应用(如云计算和大数据),对网络架构提出了更高的要求。

为了解决这些问题,SDN应运而生。SDN是一种新型的网络架构,其主要思想是将网络控制平面和数据转发平面分离。网络管理员通过控制器来管理和配置网络设备,控制器可以根据网络状态和策略动态地调整网络拓扑和流量转发路径,从而实现网络的可编程性、可扩展性和安全性等方面的要求。SDN架构使得网络管理员可以通过编程方式来控制网络设备,而不是手动配置每个设备。这种方式不仅使得网络管理更加灵活和可扩展,而且也提高了网络的安全性和可靠性。

---------------------------------------------------------------------------------------------------------------------------------

1 什么是SDN网络

软件定义网络(Software-Defined Networking,SDN)由 Stanford 大学的 Nick McKeown 教授提出的一种可软件编程的新型的网络架构,其最大的特点在于控制平面与数据平面分离、支持集中化的网络状态控制、实现底层网络设施对上层应用的透明。

ONF是一家非盈利的组织机构,是当前业界最活跃、规模最大的SDN标准组织,致力于SDN的发展和标准化,根据ONF的定义,SDN是一种新型的网络架构,具有动态性、可控性、高性价比和高适应性等特性。这种架构抽象了底层的基础实施,对网络控制进行直接编程,从而解耦了功能控制和数据转发。从广义上讲,只要是控制层和数据转发层相分离,数据转发层能够接受控制层的集中控制,并且应用层能够通过开发接口灵活地控制网络,都可以成为一种SDN。

---------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------

2 SDN不是什么
1、SDN不是一个网络协议,不是一个网管工具,他仅仅是一个网络架构的理念。
2、 SDN不等于OpenFlow,SDN不等于网络虚拟化,不等于网络功能虚拟化(NFV network function Virtualization)。OpenFlow已经不再可能成为标准,思科提出的SR将成为数据平面的主流协议
3、SDN不意味着一定要用OpenFlow,OpenFlow只是用的最多的一种南向接口协议。
SDN不能适用于所有网络。
---------------------------------------------------------------------------------------------------------------------------------

2.SDN的发展过程

SDN(软件定义网络)的发展可以分为以下几个部分:

  1. 发展初级阶段:在2011年左右,SDN的概念开始出现并得到了广泛的关注。当时,SDN的研究和实验主要集中在学术界和一些网络厂商,如斯坦福大学、Open Networking Foundation(ONF)和诺基亚等公司。这个阶段的主要工作是提出SDN的理论和技术架构,并进行一些实验验证。

  2. 发展中期阶段:在2012年左右,SDN开始进入实际应用阶段。一些企业开始尝试使用SDN来优化其数据中心网络和校园网络,如谷歌、亚马逊和微软等。同时,SDN的标准化工作也逐渐加速,ONF成立了多个工作组来推进SDN标准的制定和推广。此外,SDN也开始向周边技术扩展,如网络功能虚拟化(NFV)和云计算等。

  3. 发展趋势:在目前的阶段,SDN已经成为网络领域的一个重要研究和发展方向。SDN的发展趋势主要包括以下几个方面:

    • SDN与云计算和虚拟化的深度融合,为数据中心网络提供更好的灵活性和可扩展性;
    • SDN的应用场景不断扩大,如边缘计算、5G网络和物联网等;
    • SDN的安全性和可靠性不断提升,如通过网络智能化、人工智能等技术来实现网络安全防御;
    • SDN与其他技术的融合,如与区块链、人工智能等技术的结合,为网络架构和服务提供更加全面和深入的支持。
  4. SDN与其他技术的融合:SDN与其他技术的融合是当前SDN发展的一个重要趋势。例如,SDN和网络功能虚拟化(NFV)的结合,可以实现网络功能的快速部署和调整,提高网络的灵活性和可扩展性;SDN和人工智能的结合,可以实现网络的智能化管理和安全防御;SDN和区块链的结合,可以提高网络的可信度和安全性,保证网络数据的不可篡改性和可追溯性等。

3.SDN主流框架

ONF定义的SDN基本构架:

ONF提出的SDN架构有包含基础设施层、控制层和应用层三层。

(1)底层是基础设施层,包括各种硬件的交换设备或虚拟的交换设备,主要任务是处理和转发数据,并向控制层提供状态信息。

(2)中间层是控制层,是整个SDN最为核心的部分,主要任务是收集交换机信息、管理网络拓扑、下发指令控制交换机的行为。

(3)顶层是应用层,用户可以根据自己的业务和需求来制定相应的应用。

如果将这跟计算机相比,基础设施层可以看成是计算机的硬件,控制层可以看成是计算机的操作系统,应用层可以看成是计算机的各种应用软件。除了这三层,ONF定义的SDN架构中还有两个重要的接口:南向接口和北向接口。

四大平面+两大接口:

SDN中的四大平面是:

  1. 控制平面(Control Plane):负责定义网络的拓扑结构,制定网络策略和规则,为数据转发平面提供指令和配置。控制平面通常由控制器(Controller)承担,控制器可以根据网络的实时需求动态调整网络的路由和转发规则,从而实现网络的智能化管理。

  2. 数据转发平面(Data Plane):负责实际的数据包转发和路由决策。数据转发平面通常由交换机(Switch)和路由器(Router)等设备承担,这些设备根据控制器的指令和配置,将数据包转发到目的地。

  3. 管理平面(Management Plane):负责网络设备的管理和配置,包括设备的监测、诊断、更新和维护等。管理平面通常由网络管理系统(Network Management System,NMS)和设备管理协议(如SNMP)承担。

  4. 应用平面(Application Plane):是SDN的应用层,提供各种面向业务的网络应用,如负载均衡、安全防护、带宽控制、服务质量保障等。应用平面通常由各种SDN应用程序、控制器应用程序和网络服务承担。

这四个平面各自有不同的任务,但也有一定的交叉和关联。例如,控制平面和数据转发平面紧密配合,实现网络的智能化管理;管理平面则与控制平面和数据转发平面协同工作,实现网络的自动化管理和运维;应用平面则依赖于控制平面和数据转发平面提供的基础服务,实现面向业务的网络应用和服务。

---------------------------------------------------------------------------------------------------------------------------------

交换机和路由器都是网络设备,但是它们的功能和工作原理有所不同,因此处于OSI模型的不同层次。

交换机通常工作在OSI模型的第二层,即数据链路层。它通过MAC地址来转发数据包,并且能够根据网络拓扑结构动态地学习和更新MAC地址表,以实现更高效的数据转发。

路由器则工作在OSI模型的第三层,即网络层。它通过IP地址来转发数据包,并且能够根据路由表中的信息选择最优路径进行数据转发,从而实现跨网络的通信。路由器还能够实现网络地址转换(NAT)等功能,增强网络的安全性和灵活性。

---------------------------------------------------------------------------------------------------------------------------------

SDN中的两大接口是:

南向接口:南向接口是SDN控制器与网络设备之间的接口,主要负责控制平面与数据平面之间的交互,实现网络设备的编程和管理。南向接口主要有两种类型:设备本地接口和网络设备通用接口。设备本地接口由不同厂商自行实现,而网络设备通用接口是由ONF制定的开放接口。南向接口的主要任务包括:

  • 数据流控制:对数据包进行流量控制和限制
  • 网络拓扑控制:控制网络设备之间的通信拓扑结构
  • 网络状态控制:监控网络设备的运行状态和网络流量情况

ONF在南向接口中采用OpenFlow技术,通过OpenFlow协议来实现对网络设备的编程和管理。

北向接口:北向接口是SDN控制器与上层应用程序之间的接口,主要负责将上层应用程序的需求转换为控制器的指令,进而控制底层网络设备。北向接口主要有两种类型:原生API和Web服务API。北向接口的主要任务包括:

  • 提供应用程序接口:提供给上层应用程序使用的API
  • 接收应用程序需求:接收上层应用程序的需求,并将其转换为底层控制器指令
  • 控制底层网络设备:通过向南向接口发送指令,控制底层网络设备的运行状态和流量情况

ONF在北向接口中采用REST API和Java API等技术,为上层应用程序提供开放的编程接口。

---------------------------------------------------------------------------------------------------------------------------------

那平面属于接口吗?

平面(plane)不属于接口(interface),它们是SDN体系结构中的不同组件。在SDN中,平面通常指控制平面、数据平面和管理平面,而接口则是用于连接各个组件的标准或协议。控制平面、数据平面和管理平面各自有自己的接口,例如控制平面使用南向接口与数据平面通信,管理平面使用北向接口与上层管理应用程序通信。

---------------------------------------------------------------------------------------------------------------------------------

OpenFlow协议

它被广泛使用于SDN中的数据平面和控制平面之间的通信。OpenFlow协议定义了数据平面中交换机和控制平面中控制器之间的通信方式,这种通信方式是基于一个定义良好的协议格式的,可以进行可编程控制的网络。

OpenFlow协议允许控制器控制数据平面中的交换机,以实现对网络流量的控制和管理。具体来说,OpenFlow协议包括一组指令和数据结构,用于定义如何转发和处理网络数据包,以及如何向控制器发送通知和状态更新。

OpenFlow协议通常与SDN中的OpenFlow交换机一起使用,这些交换机可以使用OpenFlow协议来与控制器通信,并实现在数据平面上进行实时流量控制和路由决策的能力。

---------------------------------------------------------------------------------------------------------------------------------

在SDN中,RESTful API通常被用作北向接口,提供了控制器与应用程序之间的交互方式。SDN控制器通过RESTful API向上提供了一组API接口,应用程序可以通过这些接口向控制器发送命令和请求,获取网络拓扑、流表、统计信息等数据,并对网络进行编程和控制。

具体来说,SDN中的RESTful API主要包括以下三类接口:

  1. Topology API:提供了获取网络拓扑信息的接口,包括交换机、端口、链路等元素的信息。

  2. Flow API:提供了操作流表的接口,包括添加、删除、修改流表等操作。

  3. Statistics API:提供了获取交换机、端口、流表等统计信息的接口,包括数据包、字节数、丢包数等。

---------------------------------------------------------------------------------------------------------------------------------

4.SDN和传统网络的对比

控制层面

前面提到传统的路由器根据路由算法,和相邻的路由器周期性交换路由信息才能得出路由表,由路由表得到转发表。

在SDN中,远程控制器掌握各主机和整个网络的状态,能够为每一个数据分组计算出最佳的路由并为每一个路由器生成正确的转发表(实际上是流表)。因此不需要再进行路由信息分组的转发。

数据层面
传统路由器的分组转发:

1.进行“匹配”:查找转发表中的网络前缀,并进行最长前缀匹配2.执行“动作”:把分组从匹配结果指明的接口转发出去

SDN的广义转发:

1.进行“匹配”:能够对网络体系中各层(数据链路层,网络层,运输层)首部中的字段进行匹配2.执行“动作”:不仅转发分组,还可以负载均衡,重写IP首部(类似NAT路由器中的地址转发),人为阻挡或丢弃一些分组(类似防火墙)

在SDN的广义转发中,完成“匹配+动作”的设备并不局限在网络层工作,因此不再称为路由器,而称为“OpenFlow交换机”或“分组交换机”。在交换机中,既可以处理数据链路层的帧,也可以处理网际层的IP数据报,还可以处理运输层的TCP或UDP报文。

相应的路由器中的转发表变为流表。SDN远程控制器通过一个安全信道使用OpenFlow协议来管理OpenFlow交换机中的流表。
---------------------------------------------------------------------------------------------------------------------------------

SDN(软件定义网络)和传统网络的对比如下:

网络控制方式:

传统网络的控制方式是分布式的,每个设备都独立做出决策;而SDN中控制方式是集中的,由控制器负责整个网络的决策和控制。

网络管理:

传统网络的网络管理需要人工干预,通过CLI(命令行界面)或Web界面等手动配置设备;而SDN中网络管理可以通过控制器的中央化控制,通过API调用进行程序化管理。

网络安全:

传统网络中,网络安全是通过在每个设备上配置ACL(访问控制列表)和防火墙等安全设备实现;而SDN中,网络安全可以通过控制器对流量进行集中的策略控制和监控,从而更加高效和精确地保护网络安全。

网络可扩展性:

传统网络中,网络可扩展性受到网络设备的限制,需要不断增加设备才能扩展网络;而SDN中,网络可扩展性可以通过在控制器中增加逻辑控制实现,从而更加灵活和高效地扩展网络。

网络应用创新:

传统网络中,网络应用创新受到网络设备和传输层协议的限制,需要复杂的开发和测试过程;而SDN中,网络应用创新可以通过在控制器中开发应用程序来实现,从而更加高效和灵活地满足网络需求。

---------------------------------------------------------------------------------------------------------------------------------

SDN包含以下核心思想:

  1. 分离控制平面和数据平面:SDN将网络设备的控制功能与数据转发功能分离开来,将控制平面集中到SDN控制器中,而将数据平面留给交换机或路由器。这样可以使网络管理人员能够更加方便地控制和管理网络。

  2. 集中控制:在SDN中,SDN控制器集中管理网络设备,可以动态地下发转发策略,控制网络流量的转发和路由。这样可以使网络管理人员更容易地监控和优化网络性能。

  3. 程序化网络:SDN中的网络设备和控制器都可以通过编程进行控制和管理,使网络管理员能够自动化和自定义网络管理任务。这样可以大大减少手动管理网络设备的工作量,提高网络管理的效率。

  4. 开放标准:SDN使用开放标准的协议和API,如OpenFlow等,使各种网络设备和控制器之间可以更加容易地交互和协作。这样可以使不同厂商的设备能够互相兼容,提高网络的灵活性和可扩展性。

软件定义网络基础(SDN①)相关推荐

  1. sdn体系的三个平面_软件定义网络基础---SDN控制平面

    一:SDN控制平面 一个或多个SDN控制器组成,是网络的大脑.  对底层网络交换设备进行集中管理,状态监测.转发决策以及处理和调 度数据平面的流量:  通过北向接口向上层应用开放多个层次的可编程能 ...

  2. JAVA的sdn控制器,软件定义网络基础---SDN控制平面

    一:SDN控制平面 一个或多个SDN控制器组成,是网络的大脑.  对底层网络交换设备进行集中管理,状态监测.转发决策以及处理和调 度数据平面的流量:  通过北向接口向上层应用开放多个层次的可编程能 ...

  3. 《软件定义网络:SDN与OpenFlow解析》

    <软件定义网络:SDN与OpenFlow解析> 基本信息 原书名:SDN: Software Defined Networks 原出版社: O'Reilly Media 作者: (美)Th ...

  4. 【研究方向是SDN该怎么做?】软件定义网络(SDN)的安全挑战和机遇

    软件定义网络(SDN)的安全挑战和机遇 目录 软件定义网络(SDN)的安全挑战和机遇 写在前面的话 SDN是什么? 有必要研究SDN的安全问题吗? SDN的优点与缺点 SDN中的集中化 对于攻击者和防 ...

  5. 5 个需要知道的开源的软件定义网络(SDN)项目

    SDN 开始重新定义企业网络.这里有五个应该知道的开源项目. 纵观整个 2016 年,软件定义网络(SDN)持续快速发展并变得成熟.我们现在已经超出了开源网络的概念阶段,两年前评估这些项目潜力的公司已 ...

  6. SDN软件定义网络之SDN交换机物理设备

    文章目录 SDN软件定义网络之SDN交换机 交换芯片 芯片详解 主流芯片 交换机产品 物理交换机 虚拟交换机 设备选型主要考虑的参数 背板带宽 端口密度 端口速率 支持模块类型 带宽类型 其他 时延 ...

  7. 软件定义网络(SDN)

    SDN基本概述 参考文章:SDN基本概述.解读SDN的东西.南北向接口 传统网络数据控制与转发 传统网络是分布式控制的架构,每台设备都包含独立的控制平面,数据平面. 传统网络是分布式控制的架构: 这里 ...

  8. 软件定义网络(SDN)发展历程及应用分析

    软件定义网络的发展历史 2008年,Nick McKeown 教授等人提出了OpenFlow 的概念,并于当年在ACM SIGCOMM 发表了题为<OpenFlow: Enabling Inno ...

  9. 认识软件定义网络(SDN)(一)

    一.SDN体系结构简介 在传统IP网络中,网络设备内部同时集成了控制逻辑和数据逻辑,控制平面需要实现各种类型的网络协议和功能,为数据平面构造和配置路由转发表,而数据平面则根据路由转发表实现数据包的转发 ...

最新文章

  1. Java IO流学习总结三:缓冲流-BufferedInputStream、BufferedOutputStream
  2. 1.Spring Security 详细简绍与入门
  3. 使用VMwork Station Pro 14 安装CentOS7.6详细教程
  4. LNMP之 nginx 启动脚本和配置文件
  5. Scott Hanselman's 推荐的的实用工具集合(2011版)
  6. professor xi‘s story
  7. MySQL复习资料(三)——MySQL-DML语句
  8. Mac 下隐藏显示隐藏文件
  9. php移动端url,什么是PC和移动端URL路径规范化
  10. mysql msdtc 不支持_IIS5.1安装后,不支持IIS的问题。(转)
  11. 岑崟:手把手教你走好从技术转管理的第一步
  12. 四面楚歌的Android工程师该何去何从
  13. iOS 使用UILocalizedIndexedCollation实现区域索引标题(Section Indexed Title)即拼音排序...
  14. MySQL备份---lvm snapshot
  15. java equals方法可变_java中equals方法和“==”的区别
  16. Nacos 2.0原理解析(一):Distro协议
  17. 创建套接字socket函数的详解(sock_stream和sock_dgram的分析)
  18. Linux 校准时间命令及其方法
  19. 音频编码之aac编码原理
  20. 怎么开通企业邮箱客户端授权密码功能?

热门文章

  1. drm单个framebuffer显示
  2. 【正点原子FPGA连载】第六章Petalinux设计流程实战摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Linux开发指南
  3. 整型与指针的相互转换(int-int*,long-long*)
  4. C++快慢指针理解与应用
  5. 9.png图片的处理
  6. 国科大抢课避坑+选课指南+教务系统操作
  7. mbedtls rsa使用pem文件
  8. http409 415报错原因
  9. 巴菲特在University of Florida商学院的一次演讲
  10. Hibernate新官网下载源码及支持jar