第一情报 ---信息产业

双向有线电视网络SDN架构技术报告(七):北向与南向协议

1、引言
 
在软件定义网络之中,软件定义网络控制器既要与上层的各个应用进行通信,也要与底层的基础网元设备(比如:CMTS、CCAP等)进行通信,其中就分别涉及到北向接口协议与南向接口协议。目前,相关协议有众多类型,尚未实现统一的标准化。为了对软件定义网络控制器的相关工作流程进行简化,网络业界希望对一个或两个适用的通信机制进行标准化。
 
美国有线电视网络实验室的技术报告“SDN Architecture for Cable Access Networks Technical Report”[1]在这一章节中对每个相关协议(包括PCMM、NETCONF、XMPP、REST(RESTful API)、RESTCONF、WebSockets)在目前的可用性、优势与劣势进行了综合介绍,最后提出建议:考虑到运营商将要在双向有线电视宽带接入网络中部署软件定义网络技术与网络功能虚拟化技术,对于相关协议的选择,就需要兼顾到当下的使用与未来的扩展。
 
2、各相关协议及其在目前的优、劣势
 
1PCMM协议
 
美国有线电视网络实验室VNF项目组考虑将PCMM(Packet Cable Multimedia,双向有线电视宽带分组多媒体)协议作为软件定义网络控制器面向底层各个网元设备或者CMA(CCAP平台管理抽象化)的南向接口协议。目前,PCMM协议被广泛地应用于所有的CMTS平台。因此,在将来,只需对现有PCMM协议进行简单的扩展,就可被用于软件定义网络控制器向底层各个网元设备或者CMA传输数据的承载协议。
 
虽然PCMM协议已经被广泛地应用于基于DOCSIS标准的双向有线电视宽带接入网络,但是其目前尚存在一些待解决的缺陷问题。如果要在将来把PCMM协议作为软件定义网络的南向接口协议,就亟需解决这个问题:目前,PCMM协议所采取的COPS(Common Open Policy Service,通用开放式策略服务)仅能应用于DOCSIS网络,而不能部署于其他网元设备(比如交换机、路由器等)。
 
因此,只有等到整个网络行业广泛地采取和部署PCMM协议之时,才能把PCMM协议作为软件定义网络的南向接口协议。
 
2NETCONF协议
 
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协议应用到诸如交换机、路由器等网络设备之中。
 
3XMPP协议
 
XMPP(Extensible Messaging and Presence Protocol,可扩展消息处理与呈现协议)由RFC 6120文档进行规范,是一种面向实时通信的开源技术,其将XML语言作为信息交换的基本格式。本质上,XMPP协议为近乎实时地从一个实体向另一个实体发送小段XML语言提供了相关的方式。目前,XMPP协议被广泛地应用于实时消息传输、群聊以及众多的社交软件应用之中。但是,目前,双向有线电视宽带接入网络领域还没有XMPP协议的部署案例出现。
 
4RESTRESTful 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部署及精准分析方面的文档。
 
5RESTCONF协议
 
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之中,但是尚未被网络行业作为南向插件/协议。
 
6WebSockets协议
 
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隔离及功能隔离进行混合,网络行业就可以对此提出一个合理的解决方案。此外,在现有的实践案例之中,“对相同的数据元素进行多路接入”并非一个新的形势。因此,网络设备供应商们需要分别考虑特定的应用场景,并研发合适的解决方案。
 
 
参考文献:
 
[1] CableLabs. SDN Architecture for Cable Access Networks Technical Report [EB/OL].
http://www.cablelabs.com/wp-content/uploads/specdocs/VNE-TR-SDN-ARCH-V01-150625.pdf, 2015-06-25.
 
本文作者为上海情报服务平台兼职情报分析员

注册成为正式用户,登陆后,获得更多阅读功能与服务!
转载本文需经本平台书面授权,并注明出处:上海情报服务平台www.istis.sh.cn
了解更多信息,请联系我们

§ 请为这篇文章打分(5分为最好)