基于SDN的水声通信网络框架研究

2021-01-13 07:14张阳高翔张宏滔
声学与电子工程 2020年4期
关键词:表项流表水声

张阳 高翔 张宏滔

(1.东南大学信息科学与工程学院,南京,210096;2.第七一五研究所,杭州,310023)

SDN核心思想就是将网络的控制管理功能与数据转发功能解耦合,通过集中化的逻辑控制器掌管全网的拓扑结构与数据流向,并根据应用层的需求合理分配网络资源,底层标准化的交换设备按照控制器的指示进行单纯的数据中继转发。鉴于SDN技术在计算机和无线通信网络领域当中的成功应用,越来越多的人尝试将其扩展到水声通信网络领域,并做一些适应性的细节调整。文献[1]最先提出了SDN技术应用于水声领域名为SoftWater的框架。在数据转发平面中,综合运用声学、光学和磁感应通信手段来实现不同速率、不同距离的数据传输。对于网络的控制层面,开放标准接口满足各种应用程序对资源的调度和使用,使得上层业务对网络的变更需求直接体现在逻辑网络上。

在此基础上,研究人员从多个角度对 SDN在水声通信网络中的应用进行初步的探索和尝试,主要是以下两方面:(1)底层硬件自定义。如今水声通信网络已经由单一型水下通信节点集合发展为水下节点、无人潜航器和水面操作平台组成的混合模型,要把它们有效组织起来可能会涉及多种协议、多种通信体制的使用和配置。文献[2,3]中介绍的SDR(Software-Defined Radio)采用软件定义的方式动态改变物理层和链路层中关键内容,从而适应不同通信质量、端到端时延和吞吐量等方面的性能要求。(2)负载均衡。在集中式的 SDN水声网络当中,可以设置多个辅助节点管理局部网络,分担网络流量。文献[4,5]涉及到一种三维立体的SDN网络架构:水面浮标作为主控制节点掌握全网视图,水下节点负责信息的采集并定时报告,自主水下潜航器(Autonomous Underwater Vehicle,AUV)作为中间移动节点负责水面上下的数据交换,以此提升网络的智能化水平。文献[6]为了增强大范围应用场景下对网络的控制,在海底额外放置了多个静态的辅助控制节点,弥补AUV的不足。

本文将从网络整体的角度出发,基于控制转发分离的思路对网络中的节点进行分层处理,讨论控制节点和数据节点的内部逻辑和功能模块等关键内容,重点是对南向接口协议流表和消息的设计,从而提出了一种适用于水声通信网络的 SDN网络框架。

1 水声SDN网络架构模型

如图1所示,水声通信网络最重要的任务就是将探测得到的数据上传给海面平台,由网关经过融合预处理后通过无线链路汇总给控制中心,或者是由水面控制平台经过逻辑判决后再回传相应的控制指令,这种集中化的管理需求正契合 SDN网络架构的设计初衷。节点布放下去之后,网络管理人员可以根据自主组网得到的全局拓扑视图,实时监控网络中节点的状态和数据流向,并通过指令直接实现配套协议的热切换。利用 SDN技术能够让网络的自动化管理和控制能力获得空前的提升,有效解决水声通信网络所面临的资源规模扩展受到限制、组网灵活性差等问题。

SDN思想具体映射到水声网络当中时,可以得到如图2所示的分层结构:数据转发面由分布在中下层的移动AUV和传感数据节点组成,借助SDR技术保障数据传输的可靠性;控制平面由海面的网关节点构成,从南向接口收集到足够多转发节点状态信息之后,控制节点可以搭建起完整的控制网络,并向上层提供流量配置、拓扑管理等多样化的网络服务调用接口;应用层配置在水面舰艇控制平台和岸基控制中心,直接面向开发人员和使用人员,通过北向接口发送指令编排数据转发平面资源,从而完成环境监测、水下侦查等多项任务。本文的水声通信网络南向接口协议借鉴了OpenFlow标准协议,设计了用于数据转发的流表规范和网络控制的消息类型。

图1 水声通信网络应用场景

图2 水声通信网络SDN架构

2 数据转发平面

数据节点既是网络数据的直接源头,也是数据传递的中转方,作为网络的主体被大量布放在工作区域内。简单来说,其工作原理就是在准备发送或者接收到数据包时,将数据包的某些特征与节点自身存储的一些表项进行比对,发现匹配时则按照表项的要求进行相应的处理。为了实现 SDN网络中的数据通信,以下将会在节点逻辑模型的基础上对原有 SDN数据流表进行本地化改造,并在匹配规则、动作执行逻辑等配套内容上进一步细化。

2.1 数据节点逻辑模型

对于水声通信网络来说,由于其特殊且恶劣的使用环境和信道条件,布放下去的通信节点必须具备基本的自我调节和管理功能,并保证一定的可靠性和独立性,所以底层普通数据节点之间的通信都应该是一种对等且多跳的形式。另外,为了响应控制节点的消息,每个水下传感节点当中都需要嵌入一定的控制逻辑,配合控制节点对网络拓扑进行管理,逻辑模型如图3所示。

图3 数据节点逻辑模型图

(1)网络节点使用SDR技术进行长远距离的水声多跳数据通信。为了满足网络不同条件下的技术指标,共享物理层兼容多种信号调制解调以及信道编解码方式,通用链路层可以选择不同的 MAC层协议。

(2)传感数据节点的大部分控制功能被集中到网关节点,方便以模块化的方式进行批量设计制造。图3中Inner_Control模块除了一般意义上的逻辑判决功能之外,还需要额外按照南向接口协议承担一定的组网和维护功能,从而在已构建形成的控制网络基础上,按需叠加数据通信网络;Flow_Table流表模块则记录本节点负责的数据转发路径,处理与相邻节点之间的信息交互关系。

2.2 数据网络流表设计

流表作为 SDN通信网络当中数据转发的核心部件,必须具备对数据包的精准匹配和操作功能[7]。但这并不意味着流表项越详细越好,一方面是在网元设备内部放置流表项的TCAM(Ternary Content Addressable Memory)空间有限;另一方面是结构上的复杂和臃肿反而会降低数据匹配和处理效率。

2.2.1 流表项格式

参照 OpenFlow1.0协议的数据流管理方式,SDN水声通信网络中的流表项可以分为图4所示的控制域、匹配项、动作集和统计项四部分。

图4 SDN水声通信网络数据平面流表项格式

● 控制域

1)Priority表示该流表项的优先级,代表多任务下的匹配执行顺序和重要程度;

2)Timeout是该流表项发挥有效作用的时间终点,自插入流表之后开始计时。一旦计时结束,节点会自动删除该流表项。

● Header匹配项

该部分包含 SDN网络架构各层的配置信息,既可以是 SDR中所使用的源地址、目的地址和协议组合,也可以是应用层中对应的任务类型。每一项中的内容并不限制唯一,允许以通配项“ANY”(-1或空指针)的形式出现以支持任意值的匹配。

● Action集合

在一般的使用场景中,必备动作应该包括Forward、Drop、Store三种基础类型。Forward表示节点将来自内部或外部的有效数据重新封装之后,发送到水声信道当中;Drop主要是作为节点自身的应变动作,在节点内部缓存队列空间已满的情况下,直接将传送到来的数据包丢弃;Store表示不论传输路径上的节点是否是数据包的目标节点,只要对其内容有兴趣,都可以设置该动作标志,将其提交给上层。在实际的流表项使用当中会进行动作的组合。

● 统计项

Counter是针对特定单条数据流或者局部网络数据流进行数据统计,方便进一步的QoS数据流量服务。统计对象包括匹配成功数据包个数、每次匹配时间间隔等,用户可以结合实际需要自定义统计内容。

2.2.2 数据匹配流程

节点 MAC层接收到数据帧之后,剥离 MAC层控制字段并提取数据包上传到 Flow_Table数据模块,然后开始图 5所示的数据包流表匹配过程。首先提取数据包头部中的匹配字段,在本地存储的流表中按照优先级的高低与每条表项进行对比。节点会以最先匹配成功的表项作为匹配结果,根据相应的动作集合Action_Set对数据包进行操作,同时在该匹配过程中符合统计要求的Counter也会同步更新。当然,如果没有找到匹配项则会进入优先级最低的默认表项,可以选择立即将该数据包丢弃,也可以将该数据包信息放入控制消息当中,通过水声信道多跳转发给控制节点。

2.2.3 流表动作执行

在动作执行过程当中,Drop和Store均为即时性动作,确认之后立刻操作,而Forward需要根据对应表项的优先级再决定操作细节。数据节点先根据流表项内容设置数据包头部的控制字段,之后再与数据负载一起封装生成数据包。如果其所属流表项优先级最高,则直接交给MAC层传输;否则按照优先级越高、接收时间越早入队越靠前的准则暂存在优先队列中。只有当下一次流表更新或者流表失效触发状态检查时,节点才会重新整理队列当中的数据包。结合上述情况的讨论,数据传输过程中节点各个角色所有可能的动作组合如表1所示。

图5 传感数据节点中数据包匹配流程

表1 数据传输中节点角色与动作组合

3 控制平面

控制平面对底层数据转发资源的调配和编排是提升SDN网络效率的关键所在。SDN技术将节点的控制能力集中到独立的水面网关节点,借助控制消息感知网络状态,进行组网发现、拓扑管理、流量设置,并增加了可编程的北向接口供上层使用。由于水声网络自身的属性,SDN当中的数据平面和控制平面重叠在一起,即数据通路和控制通路使用同一物理信道进行多跳的数据和消息传输。

3.1 控制节点逻辑模型

海面网关负责网络的逻辑控制功能,是全局意义上的数据和控制消息汇聚点。图6中网络管理模块作为控制平面中枢,动态收集节点的状态和拓扑信息,并根据任务合理调用传感节点资源;数据中转模块监控全网的数据流向,进行上报数据的融合和远程通信的中转。在该过程中,节点可以实时通过外部接口将网络关键信息以无线或有线的方式向岸基或舰船控制中心传输,也可以从这些平台接收控制指令及时对网络进行调整。

图6 控制节点逻辑模型

3.2 控制网络消息类型

水声控制网络消息的交互主要是为了实现以下三个目标:(1)网关节点与水下传感数据节点之间控制通道和数据通道的建立;(2)网关节点与水下传感数据节点之间流表的下发和查询,授权允许数据传输;(3)移动 AUV节点的短暂接入和数据传输。据此对OpenFlow1.0协议中的控制消息进行筛选,重新设计了消息类型和工作方式。

3.2.1 组网类消息

在网络的初始化阶段,网关控制节点一般是通过广播Hello_Request与接收Hello_Reply的方式建立与各个固定传感节点之间的消息通路以及数据通路,根据 Hello_Reply反馈的路由信息形成中心式的控制网络[8]。此后若有其他新的固定传感节点加入到网络当中,可以周期性发送 Hello_Request寻找可能的邻居节点,尝试主动加入到原有网络当中。

Hello_Request/Reply的消息结构如图7所示。所有节点只在第一次收到来自网关节点的Hello_Request之后才会继续转发,并在路由地址字段内加入自己的MAC地址,之后如果再收到同样的消息将直接丢弃。为了防止形成广播风暴,可以在路由控制信息内限制该类型的消息在网络中的最大允许路由跳数。Hello_Reply消息由传感节点在接收到 Hello_Request之后主动创建,向其源地址汇报自己当前建立的路由信息,同时也通告周围邻居节点自身的存在。

图7 Hello_Request/Reply包结构

3.2.2 流表类消息

(1)Packet_In消息

如果节点发现上层或者MAC层有数据包到来,但是与高优先级的流表项匹配均失败,此时会进入Table-Miss默认的最低优先级流表项,按照网络配置选择产生 Packet_In消息向中心控制节点询问。因此,该消息除图8所示一般的控制域之外还应该有字段表明节点收到的陌生数据流关键信息,例如该数据流的起始和终点、数据传输模式。

图8 Packet_In包结构

(2)Flow_Mod消息

当网络完成组网之后,中心网关节点可能会暂时调整各项任务事件的优先级、有效期或者执行动作,也可能会因为 Packet_In流表请求消息的到来而直接下发新的流表项,网关节点将这些需要改动的流表内容打包生成Flow_Mod消息指令并向传感节点发送。目的节点接收到之后通过内部接口直接作用于Flow_Table模块。如图9所示,传感数据节点在收到Flow_Mod消息之后,如果流表控制信息中的处理类型是修改流表,则内部流表逐一与消息中的 Header匹配,匹配成功之后将其调整为Flow_Mod后附的流表内容;如果处理类型是添加和删除流表,则直接对整条流表项进行增加或删减操作。

图9 Flow_Mod包结构

3.2.3 移动接入类消息

在网络初始化完成之后,如果有移动AUV节点需要接入网络,则会使用该类消息。移动节点会通过不断广播Echo_Request确定周围是否有SDN网络节点,并指明所需的数据内容,邻居有效节点接收到之后将其上传至网关控制节点。当网关控制节点收到并判明是此类消息之后,将该移动 AUV所需的数据打包生成Echo_Reply消息并原路返回。

4 应用层

应用层位于SDN架构的最上层,分布在水面舰船或岸基监控中心处,主要是基于控制平面提供的服务接口实现和网络业务相关的监控、管理等基本应用,同时还可以按照用户的需求定制网络功能[9]。如图 10所示,底层网络资源经过控制节点的抽象之后,基础应用对外通过北向接口既可以感知水声网络的工作状态,也可以按需调配网络资源,发送控制指令改变网络拓扑或数据流向,使得网络各个部分并发执行不同的任务,提高系统利用率;对内作为实时或非实时的技术支撑为用户自定义功能所调用,满足不同粒度的服务指标,让上层的应用开发更加简洁。

图10 SDN应用分类与控制平面关系

其中,SDN的北向接口是面向网络业务的,需要为应用层提供足够的能力快速进行网络的调整或定制,其设计的合理性和开放性密切联系实际应用场景。但从软件工程的角度来说,它应该具有以下特征:(1)独立性。约束各层之间的工作关联性,降低某一层更新进化时对网络架构的影响;(2)接口统一。通过对网络资源统一、精确的描述,保证多平台的移植接入;(3)响应缓存。网络中的信息交互通常具有一定的规律性,在本地缓存高重复率的响应数据可以有效改善网络效率。

5 远程通信场景仿真与分析

本文使用OPNET Modeler 14.5软件,构建以SDN技术为核心的水声通信网络,并在远程通信场景中与传统的水声网络进行性能对比。如图 11所示,设置多跳的SDN集中式网络拓扑结构,在60 km×60 km的范围内均匀分布16和30个节点,节点间距为10 km,最大通信距离为12 km,网络中任意节点最多只能与相邻的四个节点直接通信。其中,Sink节点是全网的中心控制节点,其余节点为数据转发节点,均使用流表进行数据交互且 MAC层使用ALOHA协议。

在同样拓扑配置下的传统分布式水声网络中,每个节点的身份对等,内部各层分别使用经典的MACA协议和AODV路由协议。

为了便于观察和比较试验结果,挑选处于对角线上两节点A和B执行远程单向通信。在SDN网络中,源节点A在t1时刻通过Packet_In消息向Sink节点查询数据通路,Sink节点收到之后从全网角度安排流表,放入Flow_Mod消息分别发往此次数据传输的起始和目标节点,授权数据转发动作,从A发出的第一个数据包在t2时刻到达B。在传统网络中,相同位置的节点A在t'1时刻按照AODV协议原理先以泛洪的方式寻找目的节点B,建立完整的路由后再进入数据传输阶段,节点B在t'2时刻收到第一个数据包。

图11 SDN仿真的网络拓扑

假定 SDN网络已完成了控制组网过程,传统分布式网络也经历了初始化调试阶段。仿真时间设定为 1 h,两种网络的水声物理层均采用扩频通信技术,数据率为500 bps。收集试验过程中上述时间统计量,定义如下的 SDN数据网络通信时间tSDN和传统网络数据通信时间ttrad,得到如表 2所示的对比结果。

表2 不同规模下SDN和传统网络的数据通信时间对比

随着网络规模的增加,对角线上节点通信所经历的节点数也越多,二者路由建立和中继传输的时间也会随之增加。另外,与传统分布式网络泛洪寻找路由方式相比,SDN网络可以在已有的完整控制网络基础上搭建所需的数据通路,减少了因为无序和盲目的路由搜索造成的时间浪费,通信时间性能的优化在 38%左右。仿真结果表明,本文设计的SDN水声通信网络在远程通信场景下可以更快地完成数据传输任务。

6 结语

针对目前水声通信网络硬件兼容性差、网络部署面积受限和控制困难等问题,本文设计了一种转发控制分离、集中控制管理的 SDN水声通信网络架构。转发平面功能简化,只需要按照流表进行数据传递;控制平面利用各种消息感知和控制网络状态,从全局最优的角度提升网络性能;应用层通过开放的控制接口动态调整网络资源的分配。各层之间通过本地化的南向接口协议对网络节点内外的通信进行规范,保障数据流的可靠传输。

基于SDN的水声通信网络抽象数据节点集合,利用统一的控制中心优化数据通路,可以提高组网效率。同时还支持自定义网络功能,以软件编程的形式继续扩展水声网络的可应用场景。另外,考虑到水声网络的性能与物理环境紧密关联,未来在流表的匹配项设计中增加底层感知到的物理层信道状态参数,从而选择条件较好的数据通路完成转发任务,进一步提升网络的运行效率和灵活性。

猜你喜欢
表项流表水声
水声单载波扩频均衡技术研究
一种适用于水声通信的信号水印认证技术
基于匹配动作表模型的可编程数据平面流表归并
一种改进的TCAM路由表项管理算法及实现
基于Holt 双参数指数平滑法的SDN 交换机流表超时优化策略*
基于时序与集合的SDN流表更新策略
软件定义网络中一种两步式多级流表构建算法
一种高效的OpenFlow流表拆分压缩算法
SDN数据中心网络基于流表项转换的流表调度优化
认知水声通信系统中OFDM技术的应用