全分布式软件定义网络架构在无人集群系统中的应用
2022-01-13李艾静于卫波米志超
王 海, 秦 蓁, 熊 飞, 朱 毅, 李艾静, 于卫波, 米志超
(陆军工程大学 通信工程学院,江苏 南京 210007)
无人集群是现代社会最重要的发展趋势之一。预计在不久的将来,无人集群将应用于各种工业场景中,包括军事、应急事务、农业和野生动物保护等。软件定义网络(Software defined network,SDN)[1]是网络的发展趋势之一,并在5G网络、数据中心等得到了广泛应用。将软件定义网络扩展应用到无人集群组网也成为发展的必然。软件定义网络的具体实现有多种类型,如集中式软件定义网络、分布式软件定义网络和混合式软件定义网络。
无人集群在向分布式、大规模、智能自治的方向发展,重点需要5种能力:集群自治、人-机组队、集群感知、集群组网和集群智能[2-3]。此外,为了有效应对军事任务需求,无人集群还要能够克服固定架构网络的不足,适应战场未知多变环境,因而需要一个开放、可动态调整的网络架构。
在战场环境中,无人集群对载荷业务数据和控制数据的传输有很高的要求[4]。由于无人集群是一种由具有移动性的无线设备组成的网络,始终处于频繁变化的状态(比如节点的离开或加入,集群队形的变化等),所以无人机集群需要一个软件架构,该架构使集群能够自主根据感知情况、计算和行动资源,动态完成感知、决策、实施等一系列任务。
集群的架构需要有整合全体成员的能力,以及与集群外部的战场网络其他要素交互的能力。如图1所示,为了适应不同的通信交互场景(无人集群之间、集群与其他战斗单元、集群与指挥所),需要采用多种通信手段如无线通信、卫星通信、延迟容忍网络(Delay tolerant network,DTN)等。不同的场景下采用不同的通信手段,这对于传统的固定架构网络已经很难实现,更何况无人集群还需要将这些通信协议进行整合,满足不同业务的不同服务质量(Quality of service,QoS)要求。为了实现以上功能,适应变化多样的军事需求,亟需为无人集群设计一种灵活鲁棒的网络架构。
图1 无人集群战场要素交互示意图
本文论证了分布式软件定义网络(Distributed software defined network,DSDN)特别符合无人集群组网的需求,可用于增强无人集群的整体组网能力,并与现有信息系统互联形成有机整体,使这些网络成为动态可调、自组织、自形成和开放结构化的网络。
论文的创新点如下:(1)论证了DSDN更适合无人集群无中心、自组织的组网特点;(2)论证了DSDN应用于无人集群组网的多个优势;(3)构建了DSDN架构实例,验证了DSDN应用于无人集群组网的有效性。
1 相关研究
软件定义网络近年来已成为“开放、可定义”网络的代名词,并在5G、数据中心等网络中得到了广泛的应用。将软件定义网络应用于新型的无人集群系统中也是比较直观的。近年来,不少研究提出了将SDN与无人集群相结合,以及融入软件定义网络大系统的思路。Secinti等[5]基于SDN提出了一个空中网络管理协议,无人机可以在控制器的指导下,使用SDN交换器,便于无人机快速有效选择最优的可用路由。但是,该架构属于集中模式,存在单点故障的风险,无法应用于战场环境。Zacarias等[6]针对最后一英里战术边缘网络的不同QoS应用需求,采用SDN与DTN结合的方案进行解决。但该方案需要保持网络拓扑稳定,在高动态性下表现不佳。Nobre等[7]使用SDN技术提出了一个网络架构,可以适应战场网络的动态性和异构性,但其与Secinti等[5]架构存在同样的缺陷。Zhao等[8]为无人机辅助的应急网络提出了一个统一架构,可以在灾难环境下建立网络,但不支持无人机的移动性。
文献[9]为软件化无人机网络的数据分发设计了一种基于区块链的安全数据分发方案,其可以检测窃听者,分析恶意数据,缓解对SDN控制器的各种安全攻击。文献[10]提出了一个两层SDN体系结构来分离无人机控制。上层SDN控制器负责无人机配置的调度,下层SDN控制器负责无人机的区域协调。文献[11]提出了一个超大规模的人群监控系统,旨在收集和处理与人群管理相关的多模式、多视角和实时拥挤数据。它采用SDN和边缘云技术,从基础设施的角度优化网络和数据分析性能。文献[12]采用了集中式的SDN架构,并且允许控制器对数据流量进行追踪检查。文献[13]提出了一种基于SDN架构和区块链技术的新型无人机网络。通过使用区块链技术,该架构实现了逻辑集中但物理分离的控制平面,其主要负责无人机网络的路由计算和配置管理。上述研究分别从不同角度探讨了SDN与无人机网络的结合策略,但基本是基于集中式SDN控制架构。文献[14]提出了一种分布式SDN控制架构,将整个区域划分为多个子区域,在每个子区域内都布设一个SDN控制器,每个控制器负责控制其本区域的所有节点。控制器持续监视网络状态信息,并主动调整拓扑的近期更改。但没有对分布式SDN控制器的其他应用进行更深入探讨。
综合现有研究,将SDN应用于无人集群大体上有3类架构,第一类是遵循传统的集中式SDN控制架构,全网有一个逻辑的SDN控制器,该控制器可以位于无人节点之上,抑或位于无人节点之外的基础设施之上,网内所有节点均受该控制器控制;第二类是分布式SDN控制架构,即每个节点上都有一个本地SDN控制器,相互之间通过控制器之间的协调机制加以协调;第三类是混合SDN架构,在无人集群中,部分节点拥有SDN控制器,管理一部分节点,而管理者之间通过控制器之间的协调机制加以交互。目前绝大多数研究都是采用第一类架构,少部分采用第三类混合架构,而采用第二类纯分布式SDN控制架构的研究很少。
2 分布式SDN架构设计及其优点
本文提出一种适用于无人集群的全分布式SDN网络架构。与传统的集中式SDN架构不同的是,分布式SDN架构可以有效避免集中式结构导致的开销和可用性/安全问题。在无人机网络中,所有连接都是快速变化的无线信道,在整个任务过程中缺乏稳定的数据连接通道。因此,如果在无人集群中设置一个集中式控制器,控制器本身就成了单一故障点,而控制器和转发平面之间的连接将成为瓶颈。单点故障将大大降低网络的鲁棒性。换言之,传统SDN的集中控制优势被集中结构带来的各种不便所掩盖。因此,在动态环境中,分布式SDN更适合在复杂的无人集群环境中生存。集中式SDN与全分布式SDN的区别如表1所示。
表1 集中式SDN与DSDN对比
当前对纯分布式SDN研究很少的原因是,直观上看,SDN的优势就是其控制器的集中调配能力,当一个架构放弃SDN的集中式属性时,似乎就没有采用SDN的必要了。一般认为,SDN网络具有5个基本特征:平面分离、设备简化、集中控制、网络自动化、虚拟化和开放性[1]。当无人集群放弃“集中控制”这一特征时,其他4个特征仍然可以有效保留在无人系统网络中发挥重要作用。
与某些混合式SDN解决方案不同,DSDN是在所有无人节点上都部署本地控制器,而控制器之间的协调仍然采用传统的组网协议(如路由协议)完成,因而不会增加额外的控制器交互开销,同时也不涉及控制器的选择、选举和协调过程。DSDN的每个节点都有自己的SDN控制器,每个节点之间的协调完全基于传统的分布式协议,如传统路由协议OLSR(优化链路状态路由协议)或其他可用的无人系统路由协议等。每个节点上的控制器将分布式交互协议视为控制器之上的应用程序,并根据从这些协议中提取的逻辑做出本地控制器决策。DSDN的优点是不会在网络中引入新协议或开销。采用DSDN架构及与现有自组织网络协议相结合的策略能够很好地应对分布式环境,并且每个节点只需要很少的更改。具体而言,对于每个节点,控制器和本地交换机取代了传统的内核转发引擎,分布式网络协议如资源预约协议和路由协议只需要修改接口以向本地SDN控制器交互信息,除此之外无须进行其他更改,如图2所示。
图2 基于DSDN的协议栈结构与传统协议栈比较
本文认为DSDN架构特别适合无人集群网络,其优点如下:
(1)DSDN可以在无人节点中引入最小节点处理延迟
众所周知,无人集群对端到端数据包传输的时间要求比传统网络严格得多,节点间交换的信息可能是位置和运动信息,这些信息对时间至关重要,其规模为毫秒级或者更小。较大的端到端延迟可能会导致节点间的冲突和网络变形。如果目标区域固定且无线链路带宽固定,则分组传输延迟和传播延迟将是固定的,并且只有节点处理延迟和排队延迟可以微调。幸运的是,DSDN结构可以减小这两种延迟。
在节点处理过程中,移动自组织网络中中继节点的传统数据包处理过程是从传入接口接收数据包,通过协议栈进行数据包处理,然后将数据包发送到传出接口。整个过程将持续几毫秒到几十毫秒,甚至数百毫秒,这取决于中继节点的处理能力。不幸的是,任务规划、传感器数据处理等繁重的处理负担往往会使无人系统的中央处理器(Central processing unit,CPU)不堪重负,协议栈的资源很少,这反过来会降低整个网络的性能。然而,在DSDN结构的帮助下,分组转发可以借助纯硬件(DSDN交换机的硬件交换)来简化节点处理,加速分组转发速度,同时减轻节点CPU处理负担,如图3所示。
图3 DSDN结构中无控制器干预的数据包中继
在新的结构中,从任何一个输入接口来的数据包都将被直接交付到DSDN交换机,DSDN控制器已经通过OpenFlow对其进行编码。数据包将直接被硬件交换到输出接口,节点处理延迟将固定且最小。这样,多跳端到端数据包传送将成为一条快速交换路径,整体节点处理延迟将最小。
(2)DSDN通过流量卸载,可以减少中继无人节点的排队延迟
排队延迟会给网络带来很大的延迟,特别是对于数据量大、网络瓶颈严重的网络。不幸的是,这两种情况在无人集群网络中并不少见。传统路由协议的最小代价路径偏好会使情况进一步恶化。借助DSDN结构,数据流将更容易卸载,多QoS支持路由协议可以与控制器的应用程序在同一平台上运行,并且可以根据数据包的不同服务类型(Type of service,ToS)字段作出不同的数据包交换决策。
如果没有集中式控制器,似乎很难实现全局优化卸载解决方案,但是,数据卸载仍然可以通过一些本地有效的技巧来实现。例如,链路状态路由协议可能会首先为最高优先级的ToS数据包计算最短路径,然后修剪已选择的路径,并为优先级第二高的ToS数据包计算新路径,直到该数据包没有剩余路径。很明显,只要所有节点运行相同的路由逻辑,当网络处于稳定状态时,就不会有网络环路。因为在大多数情况下,无人集群网络节点相对密集(这意味着发送方和接收方之间可能存在许多路径),此类解决方案以及其他技术可用于卸载数据流量,并反过来大大减少排队延迟。
(3)DSDN可以轻松实现服务分离和模块重用
在无人集群网络中,每个节点可能有多个无线模块,每个模块具有不同的用途。例如,无人机可能有一个特定的远程低速无线模块,用于飞行控制;它也可能有一个高速无线模块,用于为机载传感器(如照相机和三维扫描设备)传输大容量数据。具有不同传输能力的不同无线模块加载在同一个平台上,以满足不同的需求。在传统形式中,所有这些模块都在“互不通气”的模式下进行工作,它们彼此独立开发、控制和工作。换句话说,它们从不“交谈”,也不知道另一方的存在,但是它们却在竞争和共享同一个频谱资源。这种结构大大增加了平台的复杂性,降低了整个系统的整体性能。
在DSDN结构的帮助下,所有无线设备都以统一的方式进行管理,如图4所示,而不会丧失服务分离的能力。也就是说,通常DSDN控制器可以在特定模块上限制某些服务,此时无人系统各通信模块提供的功能与传统方式类似,但在必要时,也可以借助SDN控制器调整服务限制。例如当某个无人机飞行控制无线模块出现故障时,传统的解决方案将放弃该无人机,但在新的结构中,飞行控制模块也可以启用其他接口来传输飞行控制信息,从而提高了整个系统的可靠性。同时,通过DSDN的开放式结构,只要平台能够支持,任何数量的无线模块和任何应用程序都可以安装在同一平台上。在某些特殊环境中,可以加载冗余无线模块,以提高系统的可靠性,也可以使用它传输更多的数据回地面控制站。
图4 用于服务分离和模块重用的DSDN开放结构
(4)多子网互联可以通过多级流表轻松实现
子网互联是实用的无人集群系统面临的主要技术挑战之一。在一个网络化的世界中,没有一个网络可以与其他现有网络完全分离。对于无人集群系统来说,如何融入更大的信息网络体系是必须解决的问题。首先,无人机网络应与主干网等其他网络相结合,向总部传送端到端信息,或执行来自总部的命令。其次,为了提高整体网络可用性,大型无人机可以加入多个通信子网,以实现数据传输的多样化。例如,当地面控制站与无人机在视距范围内(Line of sight,LoS)或距离不超过10 km时,它可以采用L波段高频段无线电以传输大容量数据;而当无人机远离视线时,它则可能通过搭载的卫星调制解调器加入卫星网络来传输数据。由于卫星资源有限,且延迟相对较大,因此当两个网络都可用时,L波段网络将优于卫星网络。而当L波段不可用时,系统应自动切换到卫星信道。但是这一能力在现有IP协议栈架构中实现较为麻烦。IP协议栈只有一个转发表项,切换信道涉及转发表项动态更新问题,同时系统协议栈还有缓存和延迟,因而往往会导致信道切换出错,这使得无人集群的跨网动态互联一直以来都是一个复杂的负担。
在DSDN结构中,来自OpenFlowV1.3的一个新特性为跨网互连提供了新手段:多级流表。可以使用多级流表来更好地实现动态子网互连。在图5中,本文展示了一个具有3个子网的示例,该子网通过DSDN的三级流表标签结构实现互连,可以实现3个子网的动态切换。
图5 3个子网互联的三级流表设置
如图5所示,每个子网都运行一个特定的路由协议,所有这些协议都作为DSDN控制器上的应用程序运行。如果存在到某个目的地(例如目的地B)的路由,DSDN将通过OpenFlow对流表进行编码,并发送到DSDN交换机。如果该路由是通过L波段无线电子网计算出的,则该路由将被写入到DSDN交换机的一级流表中,因为L波段无线电网络是最首选的。由其他子网路由算法计算的路由将分别写入到二、三级流表中,它们使用的级别由管理员决定。例如,假设卫星子网也有到目的地B的路由,该路由将被编码到二级流表中。事实上,大多数首选路由都会被写入到一级流表中,第二个首选路由将被写入到二级流表中,等等。
当从任何无线接口接收到数据包时,它将首先检查第一级流表,如果存在路由匹配,则数据包将切换转发到最首选的子网。在图4的情况下,目的地为B的数据包将传输到L波段子网。过了一段时间后,如果网络中断,L波段子网可能会丢失到目的地B的路由,因此L波段子网的路由协议会发现这种情况,然后由DSDN控制器使用OpenFlow命令依次删除到目的地B的一级流表中的路由。后续数据包将不会在一级流表中找到匹配项,此时它会去寻找二级流表,并找到与目的地B的匹配项,此后数据包将转发到卫星子网。通过这种方式,任意数量的子网都可以无缝互联。
综上所述,笔者认为DSDN架构在摒弃“集中控制”带给无人集群的单点故障隐患,并没有额外增加开销的同时,其平面分离、设备简化和网络交换自动化、结构开放化的特征仍然给无人集群组网带来了巨大的便利,是一种非常适合无人集群的开放式网络架构。
3 DSDN网络架构应用实例
前面介绍了DSDN架构及其优势,正因为DSDN具有传统SDN的开放式可扩充架构,从而使该结构很容易增加其他新的模块和功能。本节作为DSDN架构的应用实例,介绍课题组依托该架构实现的延迟容忍网络与常规路由融合的功能模块。从而给DSDN架构的扩展应用提供参考。
在无人机网络中,众所周知,由于无人机机身的拓扑结构和运动快速变化(无人机机身将屏蔽无线连接),因此要保持网络始终连通是不可能的,在某些情况下,可能需要采用机会路由或DTN技术来确保重要的数据传输。然而,普通的DTN协议栈不同于普通的路由协议栈,因此在传统的无人系统平台上集成这两个协议栈,从而实现有端到端路由时走路由,没有端到端路由时走DTN成为一项困难的工作。在DSDN结构的帮助下,可以很方便地实现两套协议的动态集成,如图6所示。
图6 DTN与DSDN结构的路由协议栈集成
如图6所示,DTN协议模块和路由协议模块都作为DSDN控制器的应用程序运行,转发决策将由DSDN控制器编码到DSDN交换机中。例如,当存在到目的地B的路由(由路由协议模块计算)时,该路由将通过OpenFlow在DSDN交换机中编码。目的地为B的所有数据包将通过DSDN交换机直接交换。这些数据包将根本不上传DSDN控制器。一段时间后,假设到目的地B的路由被破坏,路由协议将发现该路由在一定时间后过时。然后,此路由将从DSDN交换机中删除。在此之后,目标为B的数据包将不再在DSDN交换机中找到匹配项,也不再由DSDN进行交换。对于目的地为B的普通数据包,应直接丢弃。然而,一些目的地为B的数据包上会有一个特定的ToS字段(在本例中,特殊地,将需要延迟容忍网络处理的数据包设置为ToS=222)。这意味着这些数据包足够重要,它们应该被延迟容忍网络机会式传输,而不应被丢弃。DTN协议模块已经将这样的ToS字段编码到DSDN交换机中,此时就是目的地为B,ToS=222的数据包。当从任意一个无线接口收到目的地为B且ToS等于222的数据包时,通过查询DSDN交换机找不到匹配的交换表项,但是却在交换机中指示将这些数据包上交控制器。这些数据包随后将通过控制器传送到DTN协议模块。在那里,这些数据包将在DTN协议逻辑的控制下被检查、中继到其他节点。通过这种方式,两个协议模块就有机集成在了同一个无人平台中。
4 结论
本文提出了一种分布式软件定义网络架构DSDN,论证了该架构存在的优点,并将延迟容忍网络作为一个应用案例,介绍了该架构在无人集群系统中的应用。该架构已在课题组所构建的实际无人集群网络中得到了应用,在应用过程中,课题组越来越深刻地感受到了该架构的开放性与易用性。
当然,分布式结构很容易引起人们对网络陷入局部最优,甚至形成网络环路的担忧。通过实际应用发现,SDN的路由策略也像普通路由器一样具有查找网络环路的机制,当网络发生振荡时,在大多数情况下,这些网络环路的查找机制也足够应付。而在网络刚刚启动,尚不收敛的暂态情况下,即便是集中式控制器也无法做出正确的决策,并且会引入巨大的开销以使情况恶化。考虑到所有这些因素,可以得出结论,DSDN结构比普通集中式SDN结构更适合无人集群系统的组网。本文列出的优点和应用案例在无人集群组网时非常有用,除此之外,其他一些解决方案中广泛使用的策略同样也可以用于DSDN架构中,例如访问控制、网络保护、网络流重定向等。有关这些领域的应用和探讨将在未来的工作中继续加以深入研究。