软件定义网络基础---REST API概述

一:什么是REST API

REST API是北向接口的主流设计方式
API是应用程序编程接口,是预先定义好的函数,可以供应用程序或开发人员访问调用
REST (Representational State Transfer,表述化状态转移)首次出现在2000 年 Roy Thomas Fielding 的博士论文中,指的是一组架构约束条件和原则

(一)REST和API关系

而满足REST约束条件和原则的设计规范或者架构风格,我们称之为RESTful,遵循RESTful设计的API就是REST API

(二)RESTful

RESTful并不是专门为SDN提出的,而是专门针对Web应用中HTTP使用中出现的一些问题提出的,由于HTTP协议的使用很不规范、随意、混乱

URL的设计缺乏规范性
HTTP的动词使用不当
HTTP的返回状态码使用不规范等
Restful正是针对HTTP中上述问题而提出的

Restful设计上例:

显得更加规范和简洁

(三)REST中的几个重要概念

资源:REST是面向资源的设计

比如在普通的博客应用中,资源可能是包括了用户、博文或者评论等
在SDN中,资源可能是链路、交换机、流表等

资源标识符:

URI是统一资源标示符,URL是统一资源定位符。URL是URI的子集,或者说是一种具体实现
对于REST API来说一个资源对应唯一的一个URI,REST通过URI来暴露资源,URI的设计的合理性和规范性十分重要

(四)REST的约束条件与原则

客户-服务器(Client-Server)约束---实现解耦

用户接口和数据存储的分离;---通过客户端用户接口和服务器数据存储的分离,提高了客户端的便捷性,也提高了服务端的可伸缩性

由于实现了解耦,就能够允许客户端和服务端分组优化,彼此之间不受影响

无状态(Stateless):

要求来自客户端的每一个请求必须包含服务器处理该请求所需的所有信息; --- 提高了可见性和可靠性,由于服务器是无状态的,能够很方便的实现水平扩展,提高了可扩展性
无状态:相对有状态而言,大多数访问网站都是有状态的

在该流程中后面的每一个状态都依赖于前面的状态,没有一个URL可以直接查询到成绩
而在RESTful的架构中

可以直接定位到服务器的资源,不依赖于服务器的会话状态,因此是无状态 

缓存(Cache):

要求一个请求的响应中的数据标记为是否可缓存;如果可以,客户端可以重用相同请求的响应数据---减少了CS交互次数,提高了效率

统一接口(Uniform Interface):

核心特征,强调组件之间要有一个统一的接口; --- CS之间通信的方法必须是统一化的,例如标准的HTTP动作

分层系统(Layered System):

限制组件的行为,将架构分为若干等级的层;允许服务器和客户端之间的中间层,例如反向代理、API网关,可以代替服务器对客户端的请求进行回应,而对客户端而言是透明的,提高了系统的可扩展性,也增加了系统的复杂性

按需代码(Code-On-Demand,可选):

服务器可以提供一些代码或者脚本并在客户的运行环境中执行。

原文地址:https://www.cnblogs.com/liujunjun/p/12230669.html

时间: 2024-10-09 05:47:10

软件定义网络基础---REST API概述的相关文章

软件定义网络基础---REST API的设计规范

一:REST API的设计 REST API是基于HTTP协议进行设计的,由HTTP动词+URI组成 (一)HTTP动词 (二)资源的原型 文档(Document): 文档是资源的单一表现形式: 集合(Collection): 集合是资源的一个容器(目录),可以向里面添加 资源(文档): 仓库(Store): 客户端管理的一个资源库,可以向仓库中新增资源 或者删除资源,或者从仓库中获取资源: 控制器(Controller): 可以执行一个方法,支持参数输入,结果返 回. (三)RESTful设计

软件定义网络基础---Openflow概述

一:OpenFlow概述 二:交换机模型架构 (一)OpenFlow构架三个组成成分 三:OpenFlow 1.0版本 自OpenFlow1.0发布以来,目前已经有多个版本的OF规范版本被发布 四:OpenFlow主要版本及特性 (一)OpenFlow 1.0 1.0版本中,只支持单流表.每个OpenFlow交换机中,都只有一张流表,用于数据包的查找.处理.转发. 并且只能同一台控制器进行通信 流表由多个流表项组成,每个流表项就是一个转发规则. 流表项有匹配字段.计数器和动作组成 (二)Open

软件定义网络基础---南向接口协议概述

一:什么是南向接口协议 南向接口就是控制器与交换机之间的通信协议 二:南向接口协议的主要任务 不同的南向接口协议有不同的实现目标 三:已实现的南向接口协议 (一)OpenFlow协议 OpenFlow是伴随着SDN一起出现的,所以说是最早的南向接口协议 (二)OF-Config协议 用于OpenFlow交换机的配置与管理,是OpenFlow的伴侣协议,赋值OpenFlow交换机的管理配置 (三)NETCONF 最早作为一种网管协议被提出来的,用于网络设备的配置与管理. 在SDN兴起后,被用作SD

软件定义网络基础---SDN控制平面

一:SDN控制平面 一个或多个SDN控制器组成,是网络的大脑. ? 对底层网络交换设备进行集中管理,状态监测.转发决策以及处理和调 度数据平面的流量: ? 通过北向接口向上层应用开放多个层次的可编程能力. (一)典型的SDN控制器体系架构 SDN控制平面分为6层 南向接口层主要对各种南向接口协议的支持,如Open Flow,Netconf,OVSDB等,控制器通过接口层的通道实现对底层网络的管理 抽象逻辑层主要是将服务抽象出来,实现各种通信协议的适配,为各模块和应用提供一致的服务 基础网络层在任

软件定义网络基础---SDN的主流构架

一:基于不同标准的主流构架 二: ONF定义的SDN基本构架 (一) 四个平面.两大接口 三:四个平面 (一)数据平面 数据平面是由若干网元(Netword Element)构成,每个网元包括一个或多个SDN数据路径(DataPath) SDN DataPath是一个逻辑上的网络设备,负责转发和处理数据.没有控制能力 ONF标准化了OpenFlow协议.在该协议中数据平面被抽象为一个由多级流表驱动的转发模型  (二)控制平面 第二个任务是:收集网络的实时状态,为SDN应用... SDN控制器是整

软件定义网络基础---SDN的发展

一:发展初期阶段--提出 架构.设计思想和实现技术的提出 二:发展中期阶段--企业加入,推动发展 三:SDN的发展趋势 (一)SD-DC SDN被大规模应用数据中心的服务器和设备部署运维,产生了软件定义的数据中心 (一)SD-WAN 软件定义网路被用于广域网,产生了SD-WAN.不仅可以用来部署全新的广域网连接,还可以对现有的广域网进行升级和改造 例:对广域网进行升级 (三)SD-Security 软件定义的安全 (四)SD-Access 软件定义的接入 四:SDN的技术融合 原文地址:http

软件定义网络基础---SDN的核心思想

一:SDN包含的核心思想:解耦,抽象,可编程 二:解耦 (一)SDN网络解耦思想 解耦是指将控制平面和数据平面进行分离,主要为了解决传统网络中控制平面和数据平面在物理上紧耦合导致的问题 控制平面和数据平面之间不需要相互依赖,只需要遵循一定的开放接口即可进行通信 (二)传统网络比较 传统网络 在传统网络中数据平面和控制平面没有分离. 在同一个网络设备中,设备的转发行为基于控制协议生成的转发表. 比如:二层交换机基于MAC地址表进行转发.路由器基于路由表结合性转发. 而各种转发表是由设备的控制平面,

软件定义网络基础---SDN数据平面

主要介绍SDN架构和转发模型 一:传统网络设备 (一)传统设备控制平面和数据平面 (二)数据平面的任务 数据平面对数据包的处理,主要通过查询由控制平面所生成的转发信息表来完成 (三)传统网络数据平面数据包的处理流程 (四)传统网络数据转发处理特点 比如某一设备的数据平面,只能对某几种特定协议的数据包进行解析 功能模块固定,在网络生产时就已经固定.例如: 二:SDN数据平面架构 (一)主要变化 第一:在该SDN数据平面中,包处理流程中的所有模块,包括解析.转发和调度,都是可编程.协议无关的 第二:

软件定义网络基础---OpenFlow流表

一:流表 (一)流的概念 我们把同一时间经过同一网络中,具有某种共同特征或属性的数据,抽象为一个流 比如:我们将访问同一个地址的数据视为一个流 流一般是由网络管理员定义的,可以根据不同的流执行不同的策略,在OpenFlow中,数据都是作为流进行处理的.所以流表就是针对特定流的策略表项的集合,负责数据包的查找和转发 一张流表包含了一系列的流表项flow entries (二)流表项组成 (包头域.计数器.动作表3个) (三)包头域 (四)计数器 (五)动作表 动作表用于指示交换机,在收到匹配的数据