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

article/2025/9/25 22:37:26

一、SDN体系结构简介

在传统IP网络中,网络设备内部同时集成了控制逻辑和数据逻辑,控制平面需要实现各种类型的网络协议和功能,为数据平面构造和配置路由转发表,而数据平面则根据路由转发表实现数据包的转发。一般来说,网络设备内部控制平面和数据平面的接口是设备生产厂商已经封装好的,网管人员只能使用生产厂商特定的低级指令所提供的有限的功能来实现网络的管理和配置。同时,由于设备提供商之间的低级指令并不是相通的,所以当网络中存在来自许多不同提供商的设备时,网管人员需要花费大量时间和精力对这些设备逐一进行管理和配置。总结来说,传统IP网络具有以下几个缺点:
(1) 控制平面和数据平面紧密耦合。
在传统网络设备设计中,决定数据包如何被处理的控制平面和实现快速报文转发的数据面是集成在一起的,这就意味着控制面和数据面不能独立进化。一旦网管需要在控制面实现新的网络协议或者网络功能,必须要先得到设备提供商的同意,并等待他们在硬件上实现相应的功能。传统网络中控制面和数据面的紧密耦合导致新协议的实现、测试和部署的周期很长,不利于网络基础设施的创新和演进。
(2) 封闭且不一致的网络设备配置接口。
由于网络设备中控制面和数据面的接口是由设备提供商实现并封装的,网管人员需要使用这些有限的配置接口命令对设备进行管理,并且来自不同提供商的配置接口并不相同,而目前缺乏针对不同厂商的统一的配置接口,这就导致人工配置和管理网络的开销非常大。
软件定义网络与传统IP网络的区别
图1.软件定义网络与传统IP网络的区别
SDN的出现能够很好地解决传统IP网络面临的上述问题。如图1.所示,与传统IP网络相比,SDN将控制面的功能从数据面分离,并将其在逻辑上集中的控制器上实现。通过将控制面从硬件中分离,SDN中的网络设备变成了只具备简单转发功能的“傻瓜式”设备,而网管人员也不再需要逐个设备进行配置和管理,而是可以在统一的控制器上进行新协议的实现和部署,这大大减小了网络管理的开销,并加速了网络基础设施的创新和演进。

二、SDN中数据包处理

在SDN中,控制平面和数据平面通过一系列定义好的编程接口,即南向接口,进行通信,目前已被标准化且应用最为广泛的南向接口为OpenFlow协议。在传统IP网络中,路由器或者交换机是通过路由表或者MAC地址表对数据包进行转发的,而路由表存储的只是网络层的信息,MAC地址表存储的仅仅是链路层的信息。但是在SDN中,数据平面的转发设备不再根据路由表或者MAC地址表来处理数据包,而是统一根据流表(flow table)中的规则来对数据包进行处理。流表中的每条规则由匹配域、动作域和统计信息组成,匹配域包含第二层到第四层的部分信息(如IP地址、端口号、MAC地址等),动作域则是包括转发或者丢包等操作在内的对数据包的处理方式,统计信息可以用来统计某条流已经发送的字节数、交换机某个端口已经发送的字节数等信息。
当转发设备收到数据包时,它首先查找流表,寻找该数据包能够匹配上的规则。当数据包的部分包头信息匹配上某条规则对应的匹配域时,转发设备将按照这条规则对应的动作域处理该数据包,同时更新统计信息。若数据包可以同时匹配上多条规则,那么交换机将按照最高优先级的规则处理该数据包;若数据包在流表中无法找到匹配的规则,那么交换机需要使用OpenFlow协议的Packet-in消息,将包头的部分信息上报给控制器,由控制器决定该类型的数据包应该如何处理。当控制器收到Packet-in消息之后,它会根据全局网络状况决定如何转发该数据包,并向位于转发路径上的交换机下发Flow-mod消息,安装流表项。
SDN中完整的数据包处理过程示意图
图2.SDN中完整的数据包处理过程示意图
图2.给出了SDN中一个完整的数据包处理过程。当交换机S_1第一次收到某类型的数据包时,由于流表中并没有与之匹配的规则,因此S_1会使用Packet-in消息询问控制器该如何处理这个数据包。当控制器收到Packet-in消息后,会根据全局的网络状态信息决策该数据包应该按照S_1→S_2→S_3→S_4的路径进行转发。接着,控制器将会使用Flow-mod信息向这四个交换机安装对应的流表项。当流表项安装完成之后,数据包能够匹配上这四个交换机中新下发的规则并完成整个传输过程。
为了保证控制器能够及时感知到最新的网络状态,交换机需要定时上报网络状态信息(如链路连接、带宽资源等)给控制器,便于控制器根据全局信息作出决策。

三、OpenFlow协议消息类型

OpenFlow协议支持三种类型的消息:控制器-交换机(controller-to-switch)消息类型, 异步(asynchronous)消息类型以及对称(symmetric)消息类型,在这三种消息类型下还细分了许多其他子类型的消息。控制器-交换机消息是由控制器发给交换机用于管理交换机状态的消息,而异步消息则是由交换机发给控制器用于通知控制器交换机状态的改变以及网络事件状态更新的消息。对称消息既可以由交换机发出也可以由控制器发出,这种类型的消息主要用于维护控制器和交换机之间的连接。接下来,本小节将简单介绍一下这三种消息类型下面常见的子类型消息。
1) 控制器-交换机(controller-to-switch)消息类型。该类型的消息指的是那些由控制器发给交换机但并不一定要求交换机回复的消息,它有以下常见的子类型消息。
Features消息:控制器可以通过Features消息请求交换机的id标识以及交换机基本的功能;交换机必须使用Features回复消息对该请求进行响应并明确交换机的id标识和基本的功能。该消息一般是在OpenFlow信道刚建立好的时候使用。
Configuration消息:用于控制器设置和查询交换机的配置参数;交换机可以只回复控制器的查询而不必回复设置。
Modify-state消息:该类型的消息是由控制器发出用于管理交换机状态的消息,主要目的是增加、删除和修改流表中的条目以及设置交换机端口的状态。2.1.2小节中提到的Flow-mod消息就是Modify-state消息中的一种。
Packet-out消息:控制器使用Packet-out消息将数据包从交换机指定的端口发送出去,同时将通过Packet-in消息收到的数据包转发出去。
Barrier消息:Barrier请求/回复是控制器用于确保交换机已经完成某些指定动作的消息。
2) 异步(asynchronous)消息类型。异步消息是由交换机主动发送给控制器用于表示数据包到达或者交换机状态改变的情况,它有以下几种常见的子类型消息。
Packet-in:Packet-in消息将数据包的控制权转移给控制器。特别的,当交换机收到无法匹配上流表中任何一条规则的数据包时,可以向控制器询问如何处理这个数据包并使用该消息将数据包的控制权转移给控制器,2.1.2小节中提到的例子就使用了Packet-in消息的这种典型用法。
Flow-removed:用于通知控制器流表中某个流表条目已经被移除。
Port-status:用于通知控制器端口状态的改变。当端口配置(比如,被用户设置为down)或者状态改变(比如链路失效)时,交换机应当发送Port-status消息通知控制器。
3) 对称(symmetric)消息类型。对称消息既可以由交换机发出也可以由控制器发出,主要用于维护控制器和交换机之间的连接,它主要包含以下几种常见的子类型消息。
Hello:刚建立连接时,交换机和控制器之间使用Hello消息进行交互。
Echo:Echo请求/回复消息可以由控制器或者交换机发出,Echo请求必须要用Echo响应进行回复。Echo消息主要用来验证控制器和交换机之间的连接的存活性,也可以用来测量控制器和交换机之间的连接的延时或者带宽。
Error:Error消息是交换机或者控制器用来通知OpenFlow连接的另一端,本地发生了一些问题。该消息经常被交换机用于说明控制器发出的请求失败的情况。
Experimenter:交换机可以使用Experimenter消息来提供OpenFlow消息类型空间中额外的功能,该消息主要用于OpenFlow未来的修改和发展。


http://chatgpt.dhexx.cn/article/sHp5uoRb.shtml

相关文章

SDN(Software Defined Network) 软件定义网络学习

SDN(Software Defined Network) 软件定义网络学习 SDN是啥? 简单来说就是软件定义网络!其旨在对现有的网络架构进行重构,使得我们能够像安装软件一样对网络进行修改,加快部署,提高网络可编程能…

软件定义网络 Software Defined Network (一)概述

软件定义网络 Software Defined Network 本文将从以下3个问题对SDN进行阐述 1、为什么要有SDN? 伴随云计算、移动互联网和物联网的蓬勃兴起,应用与业务日益多元,而且快速且多变。网络系统的亚健康问题逐渐明显起来。传统网络工程的弊端日益…

浅谈软件定义网络(SDN)技术研究现状和发展趋势

浅谈软件定义网络(SDN)技术研究现状和发展趋势 友情全文PDF链接:浅谈软件定义网络(SDN)技术研究现状和发展趋势.pdf-网络基础文档类资源-CSDN下载 长久以来,硬件在网络世界中保持着至高无上的地位。直到2008年斯坦福大学的学者提出 OpenFlow[1]&#xf…

软件定义的网络(中)

SDN的出现打破了传统网络设备制造商独立而封闭的控制面结构体系,将改变网络设备形态和网络运营商的工作模式,对网络的应用和发展将产生直接影响。 从技术层面和应用层面来看,SDN的特点主要体现在以下几个方面: 数据平面与控制平…

软件定义网络(PART 3)

软件定义网络PART 3 数据平面SDN数据平面传统网络数据平面传统网络数据平面的特点SDN数据平面SDN数据平面的特点OpenFlow Switch通用转发模型通用可编程转发模型 OpenFlow 概述OpenFlow架构三个组成部分OpenFlow主要版本及特性单流表到多级流表的架构 Open Flow 流表什么是流表…

软件定义网络SDN----新型网络体系结构

1.传统路由器 传统路由器的功能: 为主机间的通信提供转发服务路由选择 路由器之间的传送信息: 主机间的分组路由信息 SDN这种新型网络体系结构的核心思想:把网络的控制层面和数据层面分离,而让控制层面利用软件来控制数据层面…

软件定义网络SDN(计算机网络-网络层)

目录 软件定义网络SDN 数据平面和控制平面 SDN 最重要的三个特征 控制平面与数据平面分离 SDN 的数据平面 软件定义网络SDN SDN的本质特点是控制平面和数据平面的分离以及网络的可编程性,从而实现了网络流量的灵活控制,方便用户管理和配置网络以及部…

软件定义的网络(下)

我们在这里对这两种SDN实现方案分别做个简单描述。 (1)以网络为中心的SDN 以网络为中心的SDN的技术核心是OpenFlow协议,OpenFlow技术最早由斯坦福大学于2008年提出,它是一种通信协议,用来提供对网络设备诸如交换机和…

【计算机网络详解】——软件定义网络SDN(学习笔记)

目录 🕒 1. 概念🕒 2. OpenFlow 协议 🕒 1. 概念 软件定义网络(Software Defined Network,SDN)的概念最早由斯坦福大学的Nick McKeown教授于2009年提出。SDN最初只是学术界讨论的一种新型网络体系结构。SD…

软件定义的网络(上)

数据中心作为IT资源的集中地,是数据计算、网络传输、存储的中心,为企业和用户的业务需求提供IT支持。 网络作为提供数据交换的模块,是数据中心中最为核心的基础设施之一,并直接关系到数据中心的性能、规模、可扩展性和管理性。随着…

SDN(软件定义网络)数据平面

数据平面 传统网络数据平面 数据平面主要执行网络控制逻辑,数据包的处理主要通过查询由控制平面所生成的FIB表来完成 FIB表是转发信息表(Forwarding Information Base的缩写,它是网络设备根据路由表生成的转发表,用来指导数据包的…

浅谈软件定义网络SDN

浅谈软件定义网络SDN 前言学习主要内容一、SDN简介二、SDN的三个主要特征转控分离集中控制开放接口 三、SDN的工作原理SDN网络架构的三层模型SDN网络架构下的三个接口SDN基本工作原理 四、SDN的使用场景场景1:SDN在数据中心网络的应用场景2:SDN在数据中心…

软件定义网络(Software Defined Network, SDN)

软件定义网络(Software Defined Network, SDN)在InfoWorld于2011年11月公布的将影响未来10年的十项新技术中排名第二。2012年7月,SDN代表厂商Nicira被VMware以12.6亿美元收购,随后Google宣布成功在其全球10个IDC网络中部署SDN,这促使SDN引起业…

软件定义网络基础(SDN①)

1.SDN的产生: SDN(软件定义网络)的产生源于传统网络无法满足现代网络环境对网络灵活性、可扩展性和安全性等方面的要求。传统网络架构中,网络设备(如交换机和路由器)负责控制和转发数据流量,网络…

什么是软件定义网络 (SDN)

什么是软件定义网络? 软件定义网络 (SDN) 是一种架构,它抽象了网络的不同、可区分的层,使网络变得敏捷和灵活,SDN 的目标是通过使企业和服务提供商能够快速响应不断变化的业务需求来改进网络控制。 在软件定义的网络中&#xff…

秋天来了

秋风清,秋月明, 落叶聚还散,寒鸦栖复惊, 相思相见知何日,此时此夜难为情。 李白《三五七言》 中秋月东海陈光剑 开窗一望中秋月,皎如飞镜临丹阙。东坡望月叹悲欢,舞弄清影在人间。太白举杯邀明月…

足坛最火红人VS三国神将,谁会胜?

张飞武艺高强,勇猛过人,作战能力强,是刘备手下的一把利器,但是他性格过于暴躁,自控能力较差。与张飞有着相似之处的足球明星是科斯塔,因为他是切尔西足球俱乐部的一把利剑。科斯塔球风稳健有力,…

火烧火燎

通电后,如果电路板中出现电源线短路会出现什么情况?那就会出现火烧火燎的情况。 首先是一些电路板中脆弱的器件遭殃。0603封装的0欧姆电阻在施加3V短路电压的时候,瞬间就烧坏了。瞬间电流估计超过了10A。 如果短路器件个头再大一些&#xff0…

新年快乐,大展宏图

祝程序员们,写代码快如闪电,挣钞票日进斗金

新年新气象。

今天每层Pantry里都多了个小玩具。上pp吧:)