1.北向接口
北向接口是SDN应用平面与控制平面之间的接口,通过控制器向上层业务应用开放的接口,为上层业务应用和资源管理系统提供灵活的网络资源抽象。
2.北向接口的分类
功能型北向接口:自下而上看网络,重点在网络资源抽象及控制能力的开放,包括拓扑、L2VPN、L3VPN、Tunnel等
基于意图的北向接口:自上而下看网络,关注应用或者服务的需求,同网络的具体技术无关。
2.1 功能性北向接口
功能型北向接口对应了功能型网络模型和网管模型,关注的是我能做什么,面向具体的网络功能,接口与网络技术方案相关。基于意图的北向接口对应了网络业务模型,关注的是我要什么,主要用于描述SDN网络使用者的需求,主要包括连接服务、资源需求、访问控制、流处理和策略逻辑等内容。
2.2 基于意图的业务模型描述
意图是用户在某一个上下文环境中,基于意图的表达,意图可以由对象和操作或对象和结果组成。其中,对象主要包括面向用户的节点、连接和流信息;操作用于描述用户期望的行为,可以用某个条件下做某个动作,同时遵守某种约束的模式来表达,比如在满足带宽、时延等网络条件下,在匹配哪些节点不可互通等限制下,执行标记优先级,实现转发的操作;结果描述的是用户希望达到的状态,包括期待结果和避免结果两类,可以用期望达到某一状态或避免达到某一状态的子句来进行表述,比如预期保证带宽利用率大于80%,或者避免端到端时延大于100ms等。
3.北向接口的实现
REST API:SDN北向接口的主流实现方式。实现REST API的控制器有RYU、Floodlight、Opendaylight。
其他方案有:RPC、JAVA API、CORBA、SOAP等。
4. REST API
REST API是主流的北向接口实现方式。
REST,表述化状态转移,指的是一组架构约束条件和原则,而满足REST设计规范或者架构风格就称之为RESTful,遵循RESTful设计的API就是REST API。
4.1 REST的几个重要概念
- 资源
资源是信息(包含所有数据或功能)的抽象,在WEB中的实例是一个超文本引用指向的目标。比如在普通的博客应用中,资源可能是包括了用户、博文或评论等;而在SDN中,这里的资源可能是链路、交换机、流表等。
- 资源标识符
资源标识符标识组件之间交互涉及的特定资源,在WEB中的实例是URI(URL包括URL和URN两种形式&#