«上一篇 下一篇»
  计算机工程  2022, Vol. 48 Issue (3): 38-45  DOI: 10.19678/j.issn.1000-3428.0060768
0

引用本文  

唐鑫, 徐彦彦, 潘少明. 基于图卷积神经网络的智能路由算法[J]. 计算机工程, 2022, 48(3), 38-45. DOI: 10.19678/j.issn.1000-3428.0060768.
TANG Xin, XU Yanyan, PAN Shaoming. Intelligent Routing Algorithm Based on the Graph Convolutional Neural Network Framework[J]. Computer Engineering, 2022, 48(3), 38-45. DOI: 10.19678/j.issn.1000-3428.0060768.

基金项目

国家重点研发计划(2017YFB0504202);国家自然科学基金(91738302,41571426)

通信作者

徐彦彦(通信作者), 教授、博士

作者简介

唐鑫(1996-), 女, 硕士研究生, 主研方向为异构通信网络;
潘少明, 副教授、博士

文章历史

收稿日期:2021-02-01
修回日期:2021-03-16
基于图卷积神经网络的智能路由算法
唐鑫 , 徐彦彦 , 潘少明     
武汉大学 测绘遥感信息工程国家重点实验室, 武汉 430079
摘要:使用特定数学模型的路由转发算法难以满足用户多样化的服务质量需求,基于深度学习的智能路由方案因具有准确性、高效性、通用性等优势,成为路由决策的发展方向。然而,目前多数智能路由算法在网络拓扑动态变化时需要重新训练,造成路由更新不及时,难以应对网络拓扑动态变化。提出一种基于图卷积神经网络(GCN)的智能路由算法。线下利用提前采集的网络信息,根据路由开销标签训练GCN智能路由模型,通过该模型输出单跳路由开销。线上采集实时信息并根据模型输出的路由开销结果对网络层路由协议进行调整,计算最小路由开销的路由路径,实现自适应网络更新。算法利用GCN的图数据结构处理不规则的网络拓扑,通过图卷积算子自动提取特征解决路由网络多属性参数提取的问题,同时引入模糊C均值算法进行网络状态离散化分析,为数据集生成标签,从而有效监督GCN模型训练。实验结果表明,该算法较ECMP、DRL-TE和SmartRoute算法路由性能更好,其平均丢包率、时延和吞吐量指标均为最优,且相较于单一的流量模式具有更强的泛化能力。
关键词深度学习    图卷积神经网络    智能路由    模糊C均值聚类    网络拓扑    
Intelligent Routing Algorithm Based on the Graph Convolutional Neural Network Framework
TANG Xin , XU Yanyan , PAN Shaoming     
State Key Laboratory of Information Engineering for Surveying, Mapping and Remote Sensing, Wuhan University, Wuhan 430079, China
Abstract: The routing and forwarding algorithm using a specific mathematical model struggles to meet the diversified quality of service required by users. The intelligent routing scheme based on deep learning has become the development direction of routing decision-making because of its advantages of accuracy, efficiency, and universality. However, currently, most intelligent routing algorithms need to be retrained when the network topology changes dynamically, resulting in untimely route updates and difficult-to-handle dynamic changes of network topology. In this study, an intelligent routing algorithm based on the Graph Convolutional Neural Network(GCN) framework is proposed. When offline, it uses the network information collected in advance to train the GCN intelligent routing model according to the routing overhead label. Then, the single hop routing overhead is output through the model. When online, it collects real-time information, adjusts the network layer routing protocol according to the routing overhead results output by the model, calculates the network routing path with the minimum routing overhead, and realizes automatic adaptation to network updates. The algorithm uses the graph data structure of GCN to deal with irregular network topologies and automatically extracts the features through the graph convolution operator to solve the problem of multi-attribute parameter extraction of the routing network. Meanwhile, the Fuzzy C-Means(FCM) algorithm is introduced to discretize the network state and generate labels for the data set to effectively supervise the training of GCN model. Experimental results demonstrate that the algorithm attains better routing performance than those of ECMP, DRL-TE, and SmartRoute algorithms. Furthermore, its average packet loss rate, delay, and throughput are the best among the compared algorithms, and it has stronger generalization ability compared to a single traffic mode.
Key words: Deep Learning(DL)    Graph Convolutional Neural Network(GCN)    intelligent routing    Fuzzy C-Means(FCM) clustering    network topology    

开放科学(资源服务)标志码(OSID):

0 概述

随着互联网高速发展,网络用户迅速增加,各种新兴应用不断涌现,这给通信网络带来了巨大挑战,传统的路由算法已经难以满足用户高度差异化的服务质量需求。传统的路由协议如最短路径优先协议OSPF,考虑拓扑结构计算出最短路径,而非网络实时状态,可能会造成某些链路承担过度的网络负载而降低网络性能,造成网络拥塞和空余资源浪费。在真实的网络环境中,链路状态会随时间变化而变化,而目前传统路由算法难以感知用户多样化的服务质量需求并根据当前链路状态对路由策略进行调整。为解决此类问题,很多基于数学模型优化的路由协议设计方案被提出[1-2],这类方法通常会针对应用场景进行假设来简化问题,并使用现有数学方法建模求解,但真实应用场景往往难以完全符合这些理想化假设。

近年来,基于深度学习(Deep Learning,DL)的人工智能技术飞速发展,广泛应用于图像识别[3]和语言处理[2]等领域。网络设备的计算能力和容量的提升,使得DL模型用于解决路由优化问题成为可能。相比采用模型驱动的传统路由算法,基于深度学习的智能路由算法采用数据驱动来代替原本的数学模型进行求解,将网络拓扑和网络特征作为输入,路由决策或链路状态作为输出[4]。这类方法能够利用真实数据对算法模型进行训练,而不需要对网络环境进行建模。根据输入数据和训练好的深度学习模型能够快速准确地计算出路由决策结果,路由收敛速度更快。同一算法模型在不同的训练数据和标签中可以解决不同网络优化需求问题,因此具有准确性、高效性和通用性等优势,代表了路由决策未来的发展方向。

文献[5]提出一种基于深度置信网络的路由决策方案,将路由器分为边缘和域内路由器,根据部分网络状态特征进行路由决策。文献[6]提出一种基于块的深度学习智能路由策略,利用递归分区方法将网络分为多个子块实现网络流量控制。文献[7]提出一种基于张量使用深度信念网络结构的智能分组路由策略,考虑网络流量的多个参数建立相关N维张量求解路径。文献[8]利用深度强化学习技术和集中控制结构来平衡流量,为可移动和部署的骨干网络节点单元设计一种自适应路由方法。文献[9]提出一种在无线传感器网络中实现基于深度强化学习低能耗的流量控制方法。文献[10]通过卷积神经网络(Convolutional Neural Network,CNN)得到链路实时阻塞集合,经重新筛选和匹配后得到新的路径。文献[11]采用深度强化学习方法为每项数据传输任务选择路径,在避免拥塞的前提下尽可能缩短数据传输路径长度。文献[12]提出一种利用深度卷积神经网络来判断当前所选择的路由路径是否阻塞的方法,如果阻塞则重新计算路径。现有研究表明,相比于传统路由算法,基于深度学习的智能路由算法能够快速准确地计算出决策结果,路由收敛速度更快。但以上算法均以网络拓扑和网络状态信息作为输入,以路由决策作为输出,而当网络拓扑变化时,需要重新调整训练标签才能继续监督深度学习模型是否输出恰当的路径,无法保证输出路径的正确性。同时,上述算法采用的均为传统深度学习模型,不具备扩展性,当输入的网络拓扑变化时,需要重新调整输入来训练模型,这会造成较大的处理时延,且无法及时更新路由路径。

图神经网络(Graph Neural Network,GNN),是一种能够有效处理不规则拓扑信息的神经网络结构,其可将网络的节点特征向量根据拓扑关系变化进行更新,最终收敛到确定值。文献[13]采用GNN模型,增加路由器接口作为额外节点来标识链路的特征,根据网络拓扑变化关系来更新网络节点和链路的特征,但其主要对网络结构信息进行建模,没有考虑节点的多种特征参数,难以适用于复杂网络。此后提出的图卷积神经网络(Graph CNN,GCN),在GNN的基础上增加了图卷积算子,能够自动提取图中隐含且复杂的信息模式,对网络结构和特征具有更好的表征能力[14]。因此,面对复杂的节点特征,通常采用GCN模型,其特征提取性能较好,能够获得良好聚类效果。此外,相较于GNN而言,GCN具有局部特性,考虑图中的各节点为中心对邻居进行处理,应用在路由算法中时能够满足路由问题中应考虑到下一跳路由开销的需求。

针对现有智能路由方案在网络拓扑动态变化时需要重新训练,造成路由更新不及时的问题,本文提出一种基于图卷积神经网络(GCN)的自适应智能路由算法。利用GCN模型的可扩展性输入动态变化的网络拓扑,在进行多属性特征提取后输出单跳路由开销,最终迭代出全局最小开销的路由路径,实现路由策略随网络动态变化而自适应更新。此外,算法采用模糊C均值(Fuzzy C-Means,FCM)聚类算法对链路状态进行离散化分析获取数据集标签,有监督地训练GCN模型。

1 模型框架

本文所提智能路由算法的实现,借鉴SDN架构[15]的集中控制器思想,将深度学习模型部署于集中控制器中,以解决深度学习模型对运算能力的需求,并统一管理路由网络。同时,线下训练GCN模型以便线上使用,防止因线上数据采集不够丰富而导致模型训练不足,得到的路由结果无法满足用户需求的问题。

在线下训练时,采集仿真网络中不同拓扑结构下的链路带宽、传输时延、流量、丢包率等网络参数,通过FCM聚类算法对链路状况进行离散化处理,得到聚类结果生成训练数据集的标签,以有监督地训练GCN模型。线上路由策略的方案架构如图 1所示,基于GCN的智能路由生成过程包括采集信息、输入网络状态、输出节点开销、更新路由路径这4个步骤。

Download:
图 1 智能路由方案架构 Fig. 1 Architecture of intelligent routing scheme

步骤1  采集信息。集中控制器周期性获取拓扑图中所有节点的连接信息和网络状态信息,根据链路和节点的实时特征信息以及网络拓扑关系的变化,更新节点特征向量和网络邻接矩阵。

步骤2  向GCN模型输入网络状态。集中控制器将步骤1得到的特征向量和邻接矩阵输入训练好的GCN模型,以便输出路由决策依据。

步骤3  GCN模型输出单跳路由开销。控制器更新单跳路由开销,根据邻接矩阵迭代出路由开销最小的路径,若所得到的路径若相较于上一时刻有所更改,则更新路径。

步骤4  更新路由路径。网络将源节点到目的节点的路由路径更新为集中控制器指定的路径。

2 智能路由算法设计 2.1 网络模型

本文算法目的在于解决端到端的路由路径动态选择问题,选择源节Src到目的节点Dst的一条最优路径,以避免链路阻塞情况,最大化利用网络资源为用户提供更优质的体验。设定网络拓扑包含M个节点、N条边。对于路由节点而言,能支持的最大流量远大于链路带宽,因此,无法使用路由节点来代替链路表示。而GCN模型只能处理节点的特征信息、链路的连接关系以及链路的单一权重信息,无法对路由网络中链路的多属性参数进行分析[14]。为了具体描述链路信息,本文根据节点间的关系增加“虚”节点来表示链路特征,“虚”节点与连接关系一一对应,如图 2所示。

Download:
图 2 “虚”节点表示链路 Fig. 2 Virtual nodes represent links

对于包含M个节点、N条边的网络拓扑而言,增加了“虚”节点来表示网络链路特征,则节点数为M+N,链路数为2N。路由策略问题关注源节Src、目的节点Dst、转发节点和网络链路(“虚”节点),为具体描述网络拓扑,引入无向图$\mathit{\boldsymbol{G}}= < V, E > $来表示。其中,集合$ V=\{{N}_{\mathrm{s}}, {N}_{\mathrm{s}}^{*}\} $表示网络节点,集合$ E=\{{e}_{1}, {e}_{2}, \cdots , {e}_{2N}\} $表示插入“虚”节点后的链路。集合$ V $$ {N}_{\mathrm{s}}=\{{v}_{1}, {v}_{2}, \cdots , {v}_{M}\} $表示路由节点,集合$ {N}_{\mathrm{s}}^{*}=\{ $vM+1vM+2,…,vM+N$ \} $表示“虚”节点。

用2N阶方阵$ \mathit{\boldsymbol{A}}=\left({a}_{ij}\right) $来表示节点之间的连接关系,如式(1)所示,其中,$ i, j=\mathrm{1, 2}, \cdots , 2N $

$ {a}_{ij}=\left\{\begin{array}{l}1, {v}_{i}\mathrm{与}{v}_{j}\mathrm{相}\mathrm{连}\\ 0, {v}_{i}\mathrm{与}{v}_{j}\mathrm{不}\mathrm{相}\mathrm{连}\mathrm{或}\mathrm{相}\mathrm{同}\end{array}\right. $ (1)

用对角矩阵$ \mathit{\boldsymbol{D}} $来表示节点的度,如式(2)所示,其中,$ d\left({v}_{i}\right) $表示与该节点相连接的链路数量,$ i=\mathrm{1, 2}, \cdots , M+N $

$ \mathit{\boldsymbol{D}} = \left( {\begin{array}{*{20}{c}} {d\left( {{v_1}} \right)}&0&{...}&0\\ 0&{d\left( {{v_2}} \right)}&{...}&0\\ \vdots & \vdots &{}& \vdots \\ 0&0&{...}&{d\left( {{v_{M + N}}} \right)} \end{array}} \right) $ (2)

对于每个节点(包括“虚”节点),定义特征向量$ {\mathit{\boldsymbol{x}}_\mathit{\boldsymbol{i}}}(i=\mathrm{1, 2}, \cdots , M+N) $来表示节点$ {v}_{i} $的特征,如式(3)所示,其中,$ {{B}_{\mathrm{w}}}_{i} $为链路带宽,$ {{T}_{\mathrm{h}}}_{i} $为流量,$ {D}_{\mathrm{r}i} $为丢包率,$ {{D}_{\mathrm{e}}}_{i} $为传输时延。

$ {\mathit{\boldsymbol{x}}_\mathit{\boldsymbol{i}}} = \left[ {\begin{array}{*{20}{c}} {{B_{{\rm{w}}{\kern 1pt} }}_i}&{{T_{{\rm{h}}{\kern 1pt} }}_i}&{{D_{\rm{r}}}_{{\kern 1pt} i}}&{{D_{{\rm{e}}{\kern 1pt} }}_i} \end{array}} \right] $ (3)

则网络拓扑图的特征矩阵$ \mathit{\boldsymbol{X}} $为:

$ \mathit{\boldsymbol{X}} = \left[ {\begin{array}{*{20}{c}} {{\mathit{\boldsymbol{x}}_1}}\\ {{\mathit{\boldsymbol{x}}_2}}\\ \vdots \\ {{\mathit{\boldsymbol{x}}_{M + N}}} \end{array}} \right] $ (4)

定义$ R=\{{S}_{\mathrm{r}\mathrm{c}}, {D}_{\mathrm{s}\mathrm{t}}, B(v\left)\right\} $表示路由路径,其中,$ {S}_{\mathrm{r}\mathrm{c}} $为源节点,Dst为目的节点,$ B\left(v\right) $为转发节点的集合。定义表示转发节点$ {v}_{i} $到邻居节点的开销$ B({v}_{i}, {C}_{\mathrm{c}\mathrm{o}\mathrm{s}\mathrm{t}})=\left\{\right({v}_{i}, {{C}_{\mathrm{c}\mathrm{o}\mathrm{s}\mathrm{t}}}_{ij}), \cdots , ({v}_{i}, {{C}_{\mathrm{c}\mathrm{o}\mathrm{s}\mathrm{t}}}_{ik}\left)\right\} $,其中,$ {{C}_{\mathrm{c}\mathrm{o}\mathrm{s}\mathrm{t}}}_{ij} $表示节点$ {v}_{i} $到节点$ {v}_{j} $的路由开销。路由$ R $的迭代示例过程如图 3所示,其中,$ {v}_{1} $作为源节点Src$ {v}_{5} $作为目的节点Dst

Download:
图 3 全局最小开销路径的迭代过程 Fig. 3 Iteration process of global minimum cost path

假设$ {v}_{1} $-$ {v}_{2} $-$ {v}_{5} $路径的路由开销最小,则从$ {v}_{1} $出发,不断迭代出到目的节点的下一跳开销,最终得到开销最小的转发节点集合$ B\left(v\right)=\left\{B\right({v}_{1}, {C}_{\mathrm{c}\mathrm{o}\mathrm{s}\mathrm{t}}), B({v}_{2}, {C}_{\mathrm{c}\mathrm{o}\mathrm{s}\mathrm{t}}\left)\right\} $,则路由路径$ R=\{{v}_{1}, $ $ {v}_{5}, B\left(v\right)\} $。路由路径由集中控制器根据邻居矩阵统一迭代,避免了路由器节点逐一迭代出现回环。

2.2 模型标签

目前已有的网络数据集没有合适的链路状态标签数据,难以训练GCN模型。对于链路状态而言,数据集中的对象不能生硬地划分成明显分离的簇,被直接归类到某一个特定状态。为对链路状态离散化分析,生成网络数据集的链路标签,以便有监督地训练GCN模型,本文引入FCM算法[16]。模糊理论的概念应用于神经网络的计算和学习,可通过模糊技术提高神经网络的学习性能。而FCM算法融合了模糊理论,实现了一种非概率特性的聚类。

设已有的链路状态为$ n $个向量$ \mathit{\boldsymbol{x}}_{\mathit{i}} $,将这些数据划分成$ c $类,即将链路状态定量分析为$ c $个模糊组。为使得FCM算法的目标函数达到最小,需要求出每组的聚类中心。FCM算法的第$ i $个聚类中心为:

$ {c_i} = \frac{{\sum\limits_{j = 1}^n {u_{ij}^m} {\mathit{\boldsymbol{x}}_\mathit{\boldsymbol{j}}}}}{{\sum\limits_{j = 1}^n {u_{ij}^m} }} $ (5)

其中,$ {u}_{ij} $为第$ j $个数据点的隶属度,用来确定每个给定数据点属于各个模糊组的程度,$ m\in [1, \mathrm{\infty }) $是加权指数。FCM算法分析参数对网络数据集的标签过程如图 4所示。

Download:
图 4 路由开销生成过程 Fig. 4 Routing cost generation process

具体过程如下:

1)线下通过网络仿真器采集各种网络拓扑和网络状态的信息,得到集合$ B $,从中随机选出特征向量$ \mathit{\boldsymbol{x}}_{\mathit{i}} $,得到$ n $个集合$ \{{H}_{1}, {H}_{2}, \cdots , {H}_{n}\} $。随机初始化隶属度$ {u}_{ij} $后,通过FCM算法分别对集合$ \{{H}_{1}, {H}_{2}, \cdots , {H}_{n}\} $进行参数迭代,获得聚类中心集合$ \{{c}_{i, 1}, {c}_{i, 2}, \cdots , {c}_{i, n}\} $,则链路状况被分为$ c $类,分别对应为$ \{{K}_{i, 1}, {K}_{i, 2}, \cdots , {K}_{i, n}\} $

2)从集合$ B $中随机抽取出部分向量$ {\mathit{\boldsymbol{x}}}_{\mathit{i}} $得到集合$ H\text{'} $,利用聚类中心集合$ \{{c}_{i, 1}, {c}_{i, 2}, \cdots , {c}_{i, n}\} $$ H\text{'} $中的链路信息分别归类到$ \{{K}_{i, 1}, {K}_{i, 2}, \cdots , {K}_{i, n}\} $中,人工筛选出符合链路状态划分等级的链路状态$ {K}_{i} $和聚类中心$ {c}_{i} $。至此得到的聚类中心$ {c}_{i} $取决于$ n $个数据集合而非完全手工划分,能够合理地离散化分析链路的特征。此外,将$ H\text{'} $中各分类数据的时延、丢包率、流量和带宽取平均值计算,再根据平均值对链路状况进行排序,链路状况越好,路由开销越低。将得到的c类链路状态$ {K}_{i}(i=\mathrm{1, 2}, \cdots , c) $从无负载到阻塞的排序结果与路由开销$ {{C}_{\mathrm{c}\mathrm{o}\mathrm{s}\mathrm{t}}}_{i}(i=\mathrm{1, 2}, \cdots , c) $从低到高一一对应。

3)根据聚类中心$ {c}_{i}(i=\mathrm{1, 2}, \cdots , c) $将数据集合$ B $中的所有数据标记到路由开销$ {{C}_{\mathrm{c}\mathrm{o}\mathrm{s}\mathrm{t}}}_{i}(i=\mathrm{1, 2}, \cdots , c) $中,以便监督训练GCN模型。

2.3 GCN模型

GCN网络在隐藏层中对节点特征$ \mathit{\boldsymbol{X}} $进行特征变换,则其第$ l+1 $层的特征为:

${\mathit{\boldsymbol{X}}^{(l + 1)}} = \sigma \left( {\mathit{\boldsymbol{A}}{\mathit{\boldsymbol{X}}^{\left( l \right)}}{\mathit{\boldsymbol{W}}^{\left( l \right)}} + {b^{\left( l \right)}}} \right) $ (6)

其中:$ \mathit{\boldsymbol{X}}_{}^{\left(l\right)} $为第$ l $层节点的特征;$ \sigma $为激活函数;$ \mathit{\boldsymbol{W}}_{}^{\left(l\right)} $为第$ l $层的权重矩阵;$ {b}_{}^{\left(l\right)} $为第$ l $层的截距。通过度矩阵$ \mathit{\boldsymbol{D}} $对邻居节点进行归一化处理:

$ {\mathit{\boldsymbol{X}}^{(l + 1)}} = \sigma ({\mathit{\boldsymbol{D}}^{ - \frac{1}{2}}}A{\mathit{\boldsymbol{D}}^{ - \frac{1}{2}}}{\mathit{\boldsymbol{X}}^{(l + 1)}}{\mathit{\boldsymbol{W}}^{\left( l \right)}} + {b^{\left( l \right)}}) $ (7)

$ \mathit{\boldsymbol{\hat A}}=\mathit{\boldsymbol{A}}+{\bf{I}}$$ {\bf{I}} $为单位矩阵,即在原来的连接上加入自循环,使每个节点从自身出发能够再指向自己,则$ \mathit{\boldsymbol{\hat D}}$$ \mathit{\boldsymbol{\hat A}} $对应的度矩阵。同时简化公式,令$ b=0 $,则第$ l+1 $层的节点特征为:

$ {\mathit{\boldsymbol{X}}^{(l + 1)}} = \sigma \left( {{{\mathit{\boldsymbol{\hat D}}}^{ - \frac{1}{2}}}\mathit{\boldsymbol{\hat A}}{{\mathit{\boldsymbol{\hat D}}}^{ - \frac{1}{2}}}{\mathit{\boldsymbol{X}}^{(l)}}{\mathit{\boldsymbol{W}}^{\left( l \right)}}} \right) $ (8)

图卷积算子[14]为:

$\mathit{\boldsymbol{x}}_\mathit{\boldsymbol{i}}^{(l + 1)} = \sigma \left( {\sum\limits_{j \in {V_i}} {{{\mathit{\boldsymbol{\hat D}}}^{ - \frac{1}{2}}}} \mathit{\boldsymbol{\hat A}}{{\mathit{\boldsymbol{\hat D}}}^{ - \frac{1}{2}}}\mathit{\boldsymbol{x}}_\mathit{\boldsymbol{j}}^{\left( l \right)}{\mathit{\boldsymbol{W}}^{\left( l \right)}}} \right) $ (9)

其中:$ {V}_{i} $为节点$ {v}_{i} $的所有邻居节点;$ \mathit{\boldsymbol{x}}_\mathit{\boldsymbol{i}}^{(l+1)} $为节点$ {v}_{i} $在第$ l+1 $层的特征;$ \mathit{\boldsymbol{x}}_\mathit{\boldsymbol{j}}^{\left(l\right)} $$ {v}_{j} $在第$ l $层的特征。由式(9)可知,GCN模型是一个一阶模型,可以被用于处理图中以某节点为中心的一阶邻居上的特征信息。对于路由而言,每个节点只关心邻居节点的可达性,但当前链路状态也会被邻居链路所影响,因此,采用两层GCN来提高模型处理能力。为缓解过拟合的问题,增加网络的稀疏性,第1层GCN网络的激活函数选择$ \mathrm{R}\mathrm{e}\mathrm{L}\mathrm{U} $,第2层GCN网络的激活函数选择$ \mathrm{s}\mathrm{o}\mathrm{f}\mathrm{t}\mathrm{m}\mathrm{a}\mathrm{x} $,则节点的预测结果$ Z $为:

$ Z = {\rm{softmax}}\left( {{{\mathit{\boldsymbol{\hat D}}}^{ - \frac{1}{2}}}\mathit{\boldsymbol{\hat A}}{{\mathit{\boldsymbol{\hat D}}}^{ - \frac{1}{2}}}{\rm{ReLU}}\left( {{{\mathit{\boldsymbol{\hat D}}}^{ - \frac{1}{2}}}\mathit{\boldsymbol{\hat A}}{{\mathit{\boldsymbol{\hat D}}}^{ - \frac{1}{2}}}{\mathit{\boldsymbol{X}}^{\left( 0 \right)}}{\mathit{\boldsymbol{W}}^{\left( 0 \right)}}} \right){\mathit{\boldsymbol{W}}^{\left( 1 \right)}}} \right) $ (10)

综上,两层GCN模型的感受域为二阶邻居节点。以图 5示例,GCN模型通过聚合感受目标节点$ {v}_{i} $的二阶邻居节点特征,得到目标节点$ {v}_{i} $的对应的路由开销$ {z}_{i}({z}_{i}\in \mathbb{Z}) $

Download:
图 5 两层GCN模型感知二阶邻居示意图 Fig. 5 Schematic diagram of the process that two-layer GCN model perceives second-order neighbors

评估模型的损失函数采用交叉熵函数,如式(11)所示,其中,$ p\left(j\right) $代表真实值;$ q\left(j\right) $代表GCN模型输出值,$ c $为标签总类别,$ j=\mathrm{1, 2}, \cdots , c $

$ {L_{{\rm{loss}}}} = - \sum\limits_{j = 1}^c p \left( j \right){\rm{lb}}{\kern 1pt} {\kern 1pt} {\kern 1pt} q\left( j \right) $ (11)

GCN模型无法一步到位直接逼近链路的路由开销最优值,如图 6所示,其需要将预测推理得到的路由开销与网络拓扑数据中真实路由标签值一一对应,利用损失函数式(11)计算损失值,更新模型中的权重参数。在训练过程中,重复上述过程不断迭代直到损失值不发生变化使得模型达到收敛,从而GCN模型输出能够逼近真实的路由开销。

Download:
图 6 GCN模型训练迭代过程 Fig. 6 GCN model training iteration process
2.4 路由策略

线上使用时,控制器将采集到的实时网络信息输入训练好的GCN模型中。控制器以周期$ T $来采集实时网络信息,获得实时网络的无向图$ \mathit{\boldsymbol{G}}= < V, E > $、邻接矩阵$ \mathit{\boldsymbol{A}} $和节点特征矩阵$ \mathit{\boldsymbol{X}} $,其中,$ V\mathrm{、}E $是在原有的网络拓扑上增加了链路对应的“虚”节点后的集合。控制器将$ \mathit{\boldsymbol{A}} $$ \mathit{\boldsymbol{X}} $输入已训练好的GCN模型,GCN模型输出各节点和“虚”节点即链路的路由开销$ {{C}_{\mathrm{c}\mathrm{o}\mathrm{s}\mathrm{t}}}_{i}(i=\mathrm{1, 2}, \cdots , c) $,再通过邻接矩阵$ \mathit{\boldsymbol{A}} $自适应迭代出总开销最小的转发节点集合$ B\left(v\right) $,得到路由路径$ R $。最后,控制器将更新后的路由路径$ R $加载至网络中,并继续周期性地采集数据。自适应智能路由策略的具体算法描述如算法1所示。

算法1  自适应智能路由策略

输入  网络数据集B,实时网络图$ \mathit{\boldsymbol{G}} $

输出  路由路径$ R $

1.初始化:路由开销c类,权值m,周期T

2.FCM算法迭代筛选出聚类中心ci

3.根据ci得到离散状态Ki,将链路离散状态Ki与路由开销$ {{\mathrm{C}}_{\mathrm{c}\mathrm{o}\mathrm{s}\mathrm{t}}}_{\mathrm{i}} $一一对应,同时生成网络数据集标签后训练GCN模型

4.控制器加载训练后的GCN模型

5.while t

6.采集网络信息更新G,并增加“虚”节点

7.G中A和X输入GCN模型,输出链路实时$ {{\mathrm{C}}_{\mathrm{c}\mathrm{o}\mathrm{s}\mathrm{t}}}_{\mathrm{i}} $

8.根据$ {{\mathrm{C}}_{\mathrm{c}\mathrm{o}\mathrm{s}\mathrm{t}}}_{\mathrm{i}} $和A迭代出转发节点集合B(v),自适应更新路径R

9.t←t+T

10.end while

3 算法实现与性能分析

本文算法实现采用的计算平台为英特尔至强E-2124处理器,处理内存为16 GB,操作系统为Ubuntu16.04。智能路由使用的GCN模型采用深度学习框架Pytorch实现,以Python3.5编写,网络仿真在网络模拟器NS3.30中实现。集中控制器以共享内存的方式[17]由C++实现,实现NS3.30的仿真网络拓扑信息与GCN模型输出的链路状态互联互通,实现路由路径的智能更新。在本文实验中,流量生成基于泊松分布模型计算生成,并假设流量传输不受路由器节点影响,只受链路状况影响。设置控制器的采集周期T=1 s,路由器节点缓冲区为1 GB。实验将链路带宽设置最大为20 Mb/s,链路时延固定为1 ms。为训练GCN模型,首先从NS3.30采集10 000条数据,并对链路状态离散化分析生成路由开销数据集标签。

首先验证本文算法采用“虚”节点表示链路状态的可行性,统计了增加“虚”节点前后的运算时间、运算内存和存储内存的变化差值。如图 7所示:运算时间、运算内存和存储内存均未随着“虚”节点数量的增加而线性变化,这是因为线上加载的是已训练完成的GCN模型,运算量较小;此外,两层GCN模型只考虑当前节点及其二阶邻居节点的状态进行运算,增加的“虚”节点数不会导致运算时间和内存占用的大幅增长。

Download:
图 7 计算成本与“虚”节点数量的关系 Fig. 7 The relationship between the calculation cost and the number of virtual nodes

上文2.3节阐述了两层GCN模型的理论原理,下文实验验证了模型层数设置为2的必要性。如图 8所示,随着GCN模型的层数增加,模型对节点状态判断的精确度不再显著提升,而层数越多,算法复杂度就越高[14],算法性能反而下降。经过多次训练调参,最终设置两层GCN模型的第1层和第2层卷积核个数均为16,权重矩阵$ \mathit{W} $随机初始化。权重衰减参数[14]设置为0.000 001,使得权重衰减到更小,减少过拟合。

Download:
图 8 GCN模型层数与精确度的关系 Fig. 8 Relationship between the number of layers of GCN model and accuracy

算法所采用FCM聚类算法的加权指数$ m $取值已有广泛研究,$ m=2 $能获得一个较好的聚类结果[16],如图 9所示,两层GCN模型的精确度随着类数$ c $的增加不断降低。为了保证所划分的类数$ c $能表征更细致的链路状态,在划分更准确路由开销的同时具有较高的模型精确度,本文设置FCM聚类算法的类数$ c=5 $

Download:
图 9 FCN聚类类数c与精确度的关系 Fig. 9 Relationship between the number of classes of FCM clustering and accuracy

为验证本文算法的实际性能,出于一般性,选用智能路由场景下经典的GEANT2基本拓扑结构[18],如图 10所示。为进一步验证该算法能够应对网络拓扑的变化,实验时,随机选择时刻在GEANT2拓扑结构上添加路由器并将其连接到拓扑上的任一路由器上,或者随机删除拓扑结构中的路由器。

Download:
图 10 GEANT2网络拓扑 Fig. 10 GEANT2 network topology

实验采用的对比算法有:智能路由中典型的等价多路径传输转发算法ECMP[19];当前机器学习利用流量分布计算路由的经典算法DRL-TE[20];基于GNN实时感知流量的动态调整路由策略SmartRoute[21]。首先,从传输时延、丢包率、吞吐量等性能指标出发对本文算法与对比算法进行比较。在相同速率下,传输时延越低、链路丢包率越低,吞吐量越高表明所选路径越好。然后,比较本文算法与对比算法应对拓扑变化时的泛化能力。

图 11~图 13显示,不同算法的平均丢包率、传输时延和吞吐量随着网络负载强度的增加均呈上升趋势,其中,本文算法的平均丢包率、时延最低,吞吐量最高,这是因为ECMP的路由策略固定,DRL-TE只依赖于神经网络对流量分布关联性分析,SmartRoute只对流量特征进行提取。3种对比算法只针对网络中单一的流量因素作为判断依据,所选择的路径不会根据网络负载和链路情况进行适配,而本文算法通过GCN模型对链路多属性参数的离散化分析,能够实现根据负载情况自适应适配路径,得到的全局路由开销更为精确,能够得到更优的路径。

Download:
图 11 不同负载下平均丢包率对比 Fig. 11 Comparison of average packet loss rate under different loads
Download:
图 12 不同负载下传输时延对比 Fig. 12 Comparison of transmission delay under different loads
Download:
图 13 不同负载下吞吐量对比 Fig. 13 Comparison of throughput under different loads

图 14显示了随着网络拓扑节点变化的数量增加不同算法的时延优化结果,为正值表示时延性能相较于拓扑变化前的时延减少,为负值表示拓扑变化后时延增加,因此时延优化的结果越大越好。DRL-TE算法采用循环神经网络计算路由策略,存在过拟合的缺点,训练完成后难以适应与训练网络不相同的拓扑,因此无法完全正确选择策略,时延优化结果最差,而ECMP和采用GNN模型的SmartRoute可应对网络拓扑变化时根据流量模式选择路径,但时延优化结果相较于本文算法较差,时延波动性也更大。这是因为本文算法对拓扑中链路带宽、流量、丢包率和传输时延等多属性参数分析后得到路由开销,再计算路由路径,因此相较于单一的流量模式具有更强的泛化能力。

Download:
图 14 不同路由算法的泛化能力 Fig. 14 Generalization ability of different routing algorithms
4 结束语

针对现有基于深度学习的智能路由算法在网络拓扑变化时无法自适应更新路由,需要重新训练深度学习模型的问题,本文提出一种基于GCN的智能路由算法。借助图卷积神经网络的可扩展性和多属性网络参数提取能力,根据当前网络的状态获得单跳路由开销,并自适应网络拓扑结构的变化动态选择更优的路由路径,从而降低网络拥塞,增加网络吞吐量,解决智能路由更新不及时的问题。实验结果表明,本文算法采用GCN进行网络参数提取,应对拓扑变化时性能优于ECMP、DRL-TE和SmartRoute算法。后续将优化神经网络的设计结构,使算法能够直接从整体准确分析全局路由开销,进一步提升智能路由的自适应更新效果。

参考文献
[1]
GHORBANI S, YANG Z, GODFREY P B, et al. DRILL: micro load balancing for low-latency data center networks[C]//Proceedings of Conference of 2017 ACM Special Interest Group on Data Communication. New York, USA: ACM Press, 2017: 225-238.
[2]
生龙, 马建飞, 杨瑞欣, 等. 基于特征交换的CNN图像分类算法研究[J]. 计算机工程, 2020, 46(9): 268-273.
SHENG L, MA J F, YANG R X, et al. Research on CNN image classification algorithm based on feature exchange[J]. Computer Engineering, 2020, 46(9): 268-273. (in Chinese)
[3]
潘少明, 王玉杰, 种衍文. 基于图卷积神经网络的跨域行人再识别[J]. 华中科技大学学报(自然科学版), 2020, 48(9): 44-49.
PAN S M, WANG Y J, CHONG Y W. Cross-domain person re-identification using graph convolutional networks[J]. Journal of Huazhong University of Science and Technology (Natural Science Edition), 2020, 48(9): 44-49. (in Chinese)
[4]
刘辰屹, 徐明伟, 耿男, 等. 基于机器学习的智能路由算法综述[J]. 计算机研究与发展, 2020, 57(4): 671-687.
LIU C Y, XU M W, GENG N, et al. A survey on machine learning based routing alorithms[J]. Journal of Computer Research and Development, 2020, 57(4): 671-687. (in Chinese)
[5]
MAO B, FADLULLAH Z M, TANG F, et al. Routing or computing?The paradigm shift towards intelligent computer network packet transmission based on deep learning[J]. IEEE Transactions on Computers, 2017, 66(11): 1946-1960. DOI:10.1109/TC.2017.2709742
[6]
RAO Z, XU Y, PAN S. An intelligent routing method based on network partition[J]. Computer Communications, 2020, 160(5): 25-33.
[7]
MAO B, FADLULLAH Z M, TANG F, et al. A tensor based deep learning technique for intelligent packet routing[C]//Proceedings of 2017 IEEE Global Communications Conference. Washington D.C., USA: IEEE Press, 2017: 1-6.
[8]
MAO B, TANG F, FADLULLAH Z M, et al. An intelligent packet forwarding approach for disaster recovery networks[C]//Proceedings of 2019 IEEE International Conference on Communications. Washington D.C., USA: IEEE Press, 2019: 1-6.
[9]
LU J, FENG L, YANG J, et al. Artificial agent: the fusion of artificial intelligence and a mobile agent for energy-efficient traffic control in wireless sensor networks[J]. Future Generation Computer Systems, 2019, 95(12): 45-51.
[10]
肖凯翔. 基于机器学习的路由增强技术研究[D]. 成都: 电子科技大学, 2019.
XIAO K X. Routing enhancement technology research based on machine learning[D]. Chengdu: University of Electronic Science and Technology, 2019. (in Chinese)
[11]
丁瑞金, 高飞飞, 邢玲. 基于深度强化学习的物联网智能路由策略[J]. 物联网学报, 2019, 3(2): 56-63.
DING R J, GAO F F, XING L. Intelligent routing strategy in the Internet of things based on deep reinforcement learning[J]. Chinese Journal on Internet of Things, 2019, 3(2): 56-63. (in Chinese)
[12]
TANG F, MAO B, FADLULLAH Z M, et al. On removing routing protocol from future wireless networks: a real-time deep learning approach for intelligent traffic control[J]. IEEE Wireless Communications, 2018, 25(1): 154-160. DOI:10.1109/MWC.2017.1700244
[13]
FABIEN G, GEORG C. Learning and generating distributed routing protocols using graph-based deep learning[C]//Proceedings of 2018 Workshop on Big Data Analytics and Machine Learning for Data Communication Networks. New York, USA: ACM Press, 2018: 40-45.
[14]
KIPF T N, WELLING M. Semi-supervised classification with graph convolutional networks[C]//Proceedings of the 5th International Conference on Learning Representations. Toulon, France: ICLR, 2017: 1-10.
[15]
MUSA N, GERHARD H, ADNAN A M. Software defined networking for improved wireless sensor network management: a survey[J]. Sensors, 2017, 17(5): 1031. DOI:10.3390/s17051031
[16]
肖宇鹏, 何云斌, 万静, 等. 基于模糊C-均值的空间不确定数据聚类[J]. 计算机工程, 2015, 41(10): 47-52.
XIAO Y P, HE Y B, WAN J, et al. Clustering of space uncertain data based on fuzzy C-means[J]. Computer Engineering, 2015, 41(10): 47-52. (in Chinese)
[17]
HAO Y, LIU P Y, ZHANG L, et al. NS3-AI: enable applying artificial intelligence to network simulation in ns-3[C]//Proceedings of 2020 Workshop on ns-3. New York, USA: ACM Press, 2020: 57-64.
[18]
KRZYSZTOF R, JOSÉ S V, ALBERT M, et al. Unveiling the potential of graph neural networks for network modeling and optimization in SDN[C]//Proceedings of 2019 ACM Symposium on SDN Research. New York, USA: ACM Press, 2019: 140-151.
[19]
RHAMDANI F, SUWASTIKA N A, NUGROHO M A. Equal-cost multipath routing in data center network based on software defined network[C]//Proceedings of the 6th International Conference on Information and Communication Technology. Washington D.C., USA: IEEE Press, 2018: 222-226.
[20]
XU Z Y, TANG J, MENG J S, et al. Experience-driven networking: a deep reinforcement learning based approach[C]//Proceedings of 2018 IEEE Conference on Computer Communications. Washington D.C., USA: IEEE Press, 2018: 1871-1879.
[21]
张鹏, 陈博. 基于图神经网络的智能路由机制[J]. 计算机工程, 2021, 47(12): 171-176, 184.
ZHANG P, CHEN B. Intelligent routing mechanism based on graph neural networks[J]. Computer Engineering, 2021, 47(12): 171-176, 184. (in Chinese)