SDN架构技术报告:北向与南向协议

SDN架构技术报告:北向与南向协议
1、引⾔
软件定义⽹络之中,软件定义⽹络控制器既要与上层的各个应⽤进⾏通信,也要与底层的基础⽹元设备(⽐如:CMTS、CCAP等)进⾏通信,其中就分别涉及到北向接⼝协议与南向接⼝协议。⽬前,相关协议有众多类型,尚未实现统⼀的标准化。为了对软件定义⽹络控制器的相关⼯作流程进⾏简化,⽹络业界希望对⼀个或两个适⽤的通信机制进⾏标准化。
美国有线电视⽹络实验室的技术报告“ Architecture for Cable Access Networks Technical Report”[1]在这⼀章节中对每个相关协议(包括PCMM、NETCONF、XMPP、REST(RESTful API)、RESTCONF、WebSockets)在⽬前的可⽤性、优势与劣势进⾏了综合介绍,最后提出建议:考虑到运营商将要在双向有线电视宽带接⼊⽹络中部署软件定义⽹络技术与⽹络功能虚拟化技术,对于相关协议的选择,就需要兼顾到当下的使⽤与未来的扩展。
2、各相关协议及其在⽬前的优、劣势
(1)PCMM协议
美国有线电视⽹络实验室VNF项⽬组考虑将PCMM(Packet Cable Multimedia,双向有线电视宽带分组
多媒体)协议作为软件定义⽹络控制器⾯向底层各个⽹元设备或者CMA(CCAP平台管理抽象化)的南向接⼝协议。⽬前,PCMM协议被⼴泛地应⽤于所有的CMTS平台。因此,在将来,只需对现有PCMM协议进⾏简单的扩展,就可被⽤于软件定义⽹络控制器向底层各个⽹元设备或者CMA传输数据的承载协议。
虽然PCMM协议已经被⼴泛地应⽤于基于DOCSIS标准的双向有线电视宽带接⼊⽹络,但是其⽬前尚存在⼀些待解决的缺陷问题。如果要在将来把PCMM协议作为软件定义⽹络的南向接⼝协议,就亟需解决这个问题:⽬前,PCMM协议所采取的COPS(Common Open Policy Service,通⽤开放式策略服务)仅能应⽤于DOCSIS⽹络,⽽不能部署于其他⽹元设备(⽐如交换机、路由器等)。
因此,只有等到整个⽹络⾏业⼴泛地采取和部署PCMM协议之时,才能把PCMM协议作为软件定义⽹络的南向接⼝协议。
压力检测装置
(2)NETCONF协议
NETCONF协议由RFC 6241⽂档进⾏规范,为⽹络设备的安装、操作以及配置信息删除等提供了相关的⼯作机制。⽹络⾏业设计NETCONF协议的⽬的是减⼩对⽹络设备进⾏⾃动化配置的难度。NETCONF协议基于安全传输,并⾯向配置数据、状态数据与协议消息的⽣成与发布,使⽤基于数据编码的XML(Extensible Markup Language,可扩展型标记语⾔)。数据模型语⾔的选择是独⽴的。
由RFC 6020⽂档进⾏规范的YANG被⽹络⾏业推荐为NETCONF协议的建模语⾔,从⽽可引进诸多⾼级语⾔特征进⾏配置管理。
NETCONF协议还提供了multi-action交易管理机制以及双阶段提交机制。
NETCONF协议基于RPC(Remote Procedure Call,远程程序调⽤)协议。RPC协议确定了⼀套各客户端激活的⽤户操作配置数据库的RPCs,⽐如get-config(获取配置)、edit-config(编辑配置)与copy-config(复制配置)等。由管控设备特定的额外RPCs所实施的数据模块,可被各个客户端⽤于操作特定的设备配置数据以及状态数据。对每个数据模块可⽤的RPCs被确定为整个模块的YANG定义的⼀部分。
可见,NETCONF协议的优势在于,其⽀持强劲的配置更改⾏为(包括⼤量的设备)。⽽且,⽬前,⼀些主流的设备供应商已经把NETCONF协议应⽤到诸如交换机、路由器等⽹络设备之中。
(3)XMPP协议
XMPP(Extensible Messaging and Presence Protocol,可扩展消息处理与呈现协议)由RFC 6120⽂档进⾏规范,是⼀种⾯向实时通信的开源技术,其将XML语⾔作为信息交换的基本格式。本质上,XMPP协议为近乎实时地从⼀个实体向另⼀个实体发送⼩段XML语⾔提供了相关的⽅式。⽬前,XMP
P协议被⼴泛地应⽤于实时消息传输、聊以及众多的社交软件应⽤之中。但是,⽬前,双向有线电视宽带接⼊⽹络领域还没有XMPP协议的部署案例出现。
(4)REST(RESTful API)协议
REST(Representational State Transfer,表述性状态转移)协议由Fielding-2000⽂档进⾏规范,是⼀个基于“客户端-服务器”的协议,可以以具有统⼀接⼝的⽆状态、可⾼速缓存、冗余备份的系统直接地为各客户端提供所需的数据资源。符合上述所有条件的各类web服务均可被认为具有RESTful性质。
各REST接⼝是在CREATE(创建)、READ(读取)、UPDATE(更新)以及DELETE(删除)功能上建模⽽成,并采取POST(发布)、GET(获取)、PUT(输⼊)以及DELETE(删除)的HTTP传输协议的⽅式来实施。另外,也⽀持诸如OPTIONS(选
项)/PATCH(修补)/HEAD(头部)等其他的HTTP传输协议⽅式。REST是⼀套基于“拉”的接⼝准则,位于HTTP协议通信标准的层级之上。虽然REST继承了HTTP协议的需求与局限性,但是在“如何把HTTP协议应⽤到各类数据资源中”这⼀⽅⾯,REST协议则是松散的。REST协议并不具有原⽣的通知机制,因此,⼤多数的应⽤开发者都采取WebSockets(Web接⼝)、Server-Sent Events(服务器发信事件)或者Long-Polling(长轮询)的⽅式作为⾮同步的客户端通知⽀撑。
⼀般地,对于REST事务的授权所采⽤的是HTTP协议基本授权、OAuth或者⼀种共享型的预定义密钥⽅式。其中,由于授权信息是以⼀种⾮安全的⽅式传输的,美国有线电视⽹络实验室VNF项⽬组建议REST接⼝要通过具备安全特性的SSL(HTTPS)来连接。
程序调⽤⼀般采取主机、端⼝、资源与HTTP协议⽅式的典型的URL(⽹址/链接)模式,紧接着,如果有相关需求,可选的数据实体⼀般就会开始传输⼀个XML或JSON数据报。URL对于各相关参数的编码,也常被作为数据报的替代,⽽且⼀般以与GET(获取)及PUT(输⼊)相关的⽅式。
REST API的主要优势为“平台⽆关性”。由于所有的通讯都是通过HTTP运⽤web服务基础设施进⾏的,RPC(远程程序调⽤)呼叫就具有“机器⽆关性”,⽽且还具有成熟定义的数据格式——尤其是当使⽤XML或者JSON的时候。REST APIs也可以很容易被web浏览器中的AJAX调⽤模块使⽤,因此,也常被⽤于Internet单页APP的应⽤场景之中。
REST APIs也可以作为优秀的转换层APIs桥接系统、语⾔或者解决⽅案特定编程接⼝,并通过泛在的、具有可接⼊性的前端对这些接⼝开放接⼊权利。
REST(RESTful API)协议的最⼤缺陷在于,其缺乏实施的⼀致性/可持续性。由于没有相关的标准,每⼀种提供REST API服务的解决⽅案都具有其特定、独特的使⽤需求,这样⼀来,终端⽤户就必须不得不为每个REST API开发定制化/个性化的接⼝。这就造成了术语及应⽤的混淆。因此,⽬前亟需相
关权威组织发布⼀份有关REST API部署及精准分析⽅⾯的⽂档。
(5)RESTCONF协议
RESTCONF协议基于经典的HTTP协议开发,采取其中所定义的相关概念,⽤于接⼊YANG数据模型中所定义的数据。RESTCONF协议也采⽤并继承了RESTful接⼝协议的很多优秀成分,但是需要在实施部署中具有⾼度的⼀致性。RESTCONF协议提供了⼀个简单的NETCONF(⽹络配置协议)功能⼦集,并被设计为与NETCONF共存和兼容。
RESTCONF⽀持采取XML以及JSON这两种⽅式对数据类型进⾏编码。此外,RESTCONF协议还采取了TLS(Transport Layer Security,传输层安全)技术,以保证两个通信终端节点之间的隐私保护及数据完整性。⽬前,RESTCONF协议尚处于IETF(因特⽹⼯程任务组)的草案制定阶段。
与RESTful API相同的是,RESTCONF协议通过HTTP的OPTIONS(选项)、HEAD(头部)、GET(获取)、POST(发布)、
PUT(输⼊)以及DELETE(操作),在YANG数据模型中进⾏CRUD操作。此外,RESTCONF协议还集成了HTML 5Server-Sent Events(服务器发信事件),⽤以向各客户端发送⾮同步的通知。
以RESTCONF协议部署实施的RESTful接⼝与NETCONF协议基于RPC(远程程序调⽤)的⽅式具有
较⼤的对⽐性。RESTCONF协议运⾏于具有层次结构的资源之上,其中的每⼀层次代表着设备类的⼀个可管理的组件。RESTCONF资源可通过成熟的URIs及上⽂所⽰的HTTP协议⽅式来接⼊。
例如,⼀个NETCONF <get-config> RPC(远程程序调⽤)操作通过⼀个RESTCONF HTTP GET指令来实施,⽽且,通过⼀个RESTCONF HTTP POST指令来实施⼀个“NETCONF <edit-config> operation=create RPC operation”操作。为了与向NETCONF 输出应⽤特定型RPC(远程程序调⽤)⾏为的YANG管控数据模块兼容,RESTCONF协议⽀持使⽤HTTP POST指令来激发这些RPC调⽤。
花生油RESTCONF协议⼤⼤地降低了NETCONF协议事务的实现复杂度。运⾏于资源之上的每个⾏为被假定为在成功型应⽤商进⾏⾃动化的提交。⽽且,RESTCONF协议移除了NETCONF协议的双阶段提交机制。这些简化使得基于RESTCONF的接⼝更易于开发,⽽且常常导
致“feature velocity(特征速度)”的增加。此外,RESTCONF⼴泛地征询了熟悉RESTful web客户端开发模型及⽤于开发及修复HTTP 应⽤的丰富⼯具集的开发者的相关意见。
⽬前,RESTCONF协议被应⽤于ODL之中,但是尚未被⽹络⾏业作为南向插件/协议。
(6)WebSockets协议
WebSockets是⼀种基于TCP协议⽽开发的数据传输协议,从⽽,相关实施需要HTTP web服务基础设
施的⽀撑。WebSockets协议在RFC 6120⽂档中有专门的规范。其设计⽬的在于:通过HTTP协议代理,在两个远程系统之间,创建出⼀个双⼯型的数据流。
WebSockets的⼯作流程为:⾸先,由⼀⽅系统发起HTTP更新请求,其中对⼀种新的URL模式(ws://或者wss://)进⾏了明确,并最终建⽴起web套接字连接。数据的传输可以基于⽂本,也可基于⼆进制数据。虽然协议层⽀持⼤量的⼦协议,但是RFC 6120⽂档中并未明确定义WebSockets协议的消息格式。
此外,WebSockets协议也提供可扩展性。⽬前,已经正式得到的定义的扩展项有两个:“加密”与“复⽤”。
WebSockets协议的优势在于,其利⽤了互联⽹中现有的web服务基础设施,从⽽就⽆需产⽣太多的定制化开销。WebSockets协议通过把HTTP/HTML作为事务接⼝(⽆⼀致/持续接⼝)解决了长期存在的问题。⽬前,所有的主流浏览器均⽀持WebSockets接⼝。
WebSockets协议的缺陷包括:会增加服务器的负载负担(服务器需要维持其与各个客户端的开放式连接);数据路径固定于HTTP基础设施之上,⽽且尚未经优化;web代理⽼化,⽆法正确地对相关协议进⾏处理。如果web代理失效,就可以建⽴“隧道”,使其具有处理WebSockets数据流的⾜够的能⼒。⽽对于服务器负载过重的问题,可以通过负载均衡⽅式,并部署具有更强⼤能⼒的服务器来解决。
3、对选择软件定义型双向有线电视宽带接⼊⽹络南向接⼝协议的推荐
软件定义⽹络控制器可以⽀持通过多种南向接⼝协议来与底层基础⽹络中⽀持不同协议的各类⽹元设备进⾏通讯。这些南向接⼝协议的主要⽤途在于软件定义⽹络控制器进⾏业务编排与配置。
水性附着力促进剂
(1)是选择⼀种协议还是多种协议?
对于在双向有线电视宽带接⼊⽹络中部署软件定义⽹络技术,其南向接⼝协议,是选择⼀种还是多种?有线电视⽹络运营商将会⾯临着这样的抉择。其中的南向接⼝,⽤于软件定义⽹络控制器与双向有线电视宽带接⼊⽹络中的CMTS、CMA及其他⽹元设备进⾏通讯。⽬前看来,有线电视⽹络运营商倾向于选择单⼀的南向接⼝协议来进⾏跨域各主流⽹元设备之间的通讯。⽽且,各有线电视⽹络运营商对于“把基于HTTP的协议作为软件定义⽹络控制器南向接⼝协议”的普遍共识。
(2)是选择静态配置⽅式还是动态配置⽅式?
软件定义⽹络控制器与融合型双向有线电视宽带接⼊⽹络平台之间的交互通讯可以采取这两种⽅式:⼀致配置与事务配置。其中,“⼀致配置”(⽐如:对CMTS设备的配置)⽅式⽆需进⾏经常性的变更,⽽“事务配置”(⽐如:对⽹络游戏或语⾳通话QoS(服务质量)的配置)⽅式则“天然”地需要经常变更,并需要研发⼀种轻量级的协议。
由于可对事物集进⾏更⾼⽔平的控制,NETCONF(⽹络配置协议)被⽹络⾏业认为是最佳的⼀致配置或静态配置协议,也是⼀种著名的Day0配置协议。
由于移除了事物级别的相关考虑,简化了软件定义⽹络的编码库,RESTCONF就可被⽤于更为动态化的⽹络配置。
上述就是美国有线电视⽹络实验室VNF项⽬组所推荐的软件定义⽹络控制器南向接⼝协议,具体如表1所⽰。
电火花打点计时器表1
传输协议数据格式使⽤模式
大肠杆菌培养基NETCONF YANG Day0配置
RESTful API JSON、XML Day1配置
RESTCONF XML-YANG、JSON-YANG Day1配置
便民用品(3)数据的⼀致性/可持续性问题
在采取多种协议(均接⼊相同的配置项⽬)的模式之下,向⽹元设备写⼊数据时,可能会存在数据的⼀致性/可持续性问题。对此,主要有以下的三⼤考量:
①允许基于时间域及状态域区分的数据接⼊。例如,以NETCONF(⽹络配置协议)进⾏初始化设置,并以RESTCONF协议来完成其余的会话的运⾏。
②允许基于设备区分的数据接⼊。例如:对于传统的⽹元设备,可采取PCMM协议;⽽对于新兴的⽹元设备,则可采取
NETCONF/RESTCONF协议。
③允许基于功能区分的数据接⼊。在此种⽅式之下,对于每种南向接⼝协议,均把各数据模型及数据元素划分成多个数据接⼊组。由于⽹络设备供应商及双向有线电视⽹络运营商很多,该接⼊⽅式可以同步于现有的配置序曲,从⽽就成为⾸选。
最后,美国有线电视⽹络实验室的技术报告“SDN Architecture for Cable Access Networks Technical Report”[1]对这⼀章节的内容给出了结论性的总结:在初始化的创建阶段,推荐采⽤NETCONF协议进⾏批量配置;当⽹元设备进⼊到正常运⾏状态之时,推荐采⽤RESTCONF协议对各类业务进⾏动态配置。
可以预见的是,上述的选择并不能完全地消除多接⼊问题。但是,通过对time-wise隔离及功能隔离进⾏混合,⽹络⾏业就可以对此提出⼀个合理的解决⽅案。此外,在现有的实践案例之中,“对相同的数据元素进⾏多路接⼊”并⾮⼀个新的形势。因此,⽹络设备供应商们需要分别考虑特定的应⽤场景,并研发合适的解决⽅案。

本文发布于:2024-09-22 17:30:39,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/148211.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:协议   数据   配置   定义   软件   相关
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议