舰船科学技术  2023, Vol. 45 Issue (3): 165-168    DOI: 10.3404/j.issn.1672-7649.2023.03.032   PDF    
基于强化学习的船舶网络数据传输拥塞控制方法
董洁     
赤峰学院 数学与计算机科学学院,内蒙古 赤峰 024000
摘要: 针对船舶网络数据量大、缓冲队列过长导致的拥塞问题,提出一种强化学习的船舶网络数据传输拥塞控制方法。针对链路拥塞节点的时延和数据流分散特点,建立拥塞问题模型,运用非线性微分法,计算拥塞前后可控和非可控数据流在预设节点处队列长度和数据传输滞留的变化,设定参考阈值,当滞留数值和队列长度超过该值时表明源端发送窗口与接收窗口间链路存在拥塞,按照数据传输平均往返时间确定具体出现拥塞的节点位置。利用强化学习算法,求得经过和未经过拥塞点的数据队列长度变化,根据数据的反馈回报,计算拥塞概率较高链路与正常链路间的窗口差值;根据数据队列长度、流量以及速率值,调节窗口大小补偿值,完成拥塞控制。实验结果表明,实施控制后船舶网络吞吐量增大,节点受限次数下降,控制效果较好。
关键词: 强化学习     船舶网络     数据传输拥塞     队列长度    
A congestion control method for ship network data transmission based on reinforcement learning
DONG Jie     
School of Mathematics and Computer Science, Chifeng University, Chifeng 024000, China
Abstract: Aiming at the problem of congestion caused by large amount of data and long buffer queue in ship network, a congestion control method for data transmission in ship network based on reinforcement learning is proposed. According to the characteristics of delay and data flow dispersion of link congestion nodes, a congestion problem model is established. The nonlinear differential method is used to calculate the change of queue length and data transmission detention of controllable and uncontrollable data flows at preset nodes before and after congestion, and set a reference threshold. When the number of detention and queue length exceed this value, it indicates that the link between the source sending window and the receiving window is congested, determine the specific node location with congestion according to the average round-trip time of data transmission. The reinforcement learning algorithm is used to obtain the change of data queue length passing through and not passing through the congestion point. According to the data feedback, the window difference between the link with high congestion probability and the normal link is calculated. According to the data queue length, flow and rate value, the window size compensation value is adjusted to complete congestion control. The experimental results show that the throughput of the ship network increases, the number of nodes restricted decreases, and the control effect is good.
Key words: reinforcement learning     ship network     data transmission congestion     queue length    
0 引 言

为满足用户需求以及提高船舶网络运行效率和稳定性,进行数据传输拥塞控制是很有必要的。查找发生拥塞的节点,运用控制方法根据每个传输数据的大小来调节排列顺序,依次进行传输,不仅不会造成拥塞,还会在原有的基础上提高传输效率,并有效克服因拥塞导致的被动式丢尾、死锁、泄漏以及网络瘫痪等一系列问题。

任智等[1]提出一种基于CoAP协议的物联网数据传输拥塞控制算法,根据计算得到信号强、弱数据包传输往返时间,来判定其传输信道的拥塞状态。按照CoAP协议计算得到正常数据传输的时效标准,对超出该标准数据的信道设置拥塞控制器。该方法没有考虑到数据传输失败导致的时延问题,对拥塞数据的判定误差过大,控制精准度不高。杨华等[2]则采用一种基于博弈论的数据网络拥塞控制方法,建立数据博弈模型,提取路由器和互联网链路的数据流效用函数,根据博弈理论获取其中流量数据的带宽需求量,将其反馈给下路进行控制。该方法整体所需运算量过大,进行拥塞控制需要迭代计算的次数过多,实用价值不高。

基于上述问题,本文提出一种强化学习的船舶网络数据传输拥塞控制方法。

1 船舶网络数据传输拥塞问题描述

通常情况下,船舶网络源端发送的数据包会沿着某条路径进行传输,路径中包含中间交换和储存节点。数据流则包括2种:一种是可控数据流,另一种则为不可控数据流,可控数据流是根据上一路径的反馈信息来确定具体传输速率,不可控数据流则是按照预先给定的速率进行传输[3]。出现传输拥塞主要是因为:当源端发送数据的传输速率判定错误时,由于节点缓冲就会造成拥塞问题,也称为瓶颈现象。Si(i=1,2,···,n)表示网络源端,Di(i=1,2,···,n)代表数据传输接收端。假设出现拥塞的区域设定值为x0,其发送可控数据包时的传输速率为u(t);不可控数据包的传输速率为w(t);初始速率为qi(t);网络拥塞导致的前向延伸为 $ {\tau _{ti}} $ ;拥塞缓冲队列长度x(t)可根据接收到数据u(t),w(t),qi(t)时的反馈信息来确定。由此,采用随机非线性微分方程来建立船舶网络数据传输的拥塞动态模型,忽略船舶网络自身带来的超时机制,得到一组数据传输拥塞的非线性微分方程:

$ x\left( t \right) = Sa{t_x}\left\{ {\sum\limits_{i = 1}^N {{q_i}\left( {t - {\tau _{ti}}} \right) + w\left( t \right) - \mu \left( t \right)} } \right\} ,$ (1)

其中:

$ Sa{t}_{x}\left\{z\right\}=\left\{\begin{array}{l}z\prec 0\\ z\succ K\\ {\rm{others}}\end{array}\right\} 。$ (2)

式中: $ Sa{t_x}\left\{ z \right\} $ 表示拥塞时滞;当 $ z{\kern 1pt} {\kern 1pt} < 0 $ 时,代表数据传输速率的时延量小于0,拥塞情况不严重;当 $ z{\kern 1pt} {\kern 1pt} > K $ 时,代表传输时延大于标准量 $ K $ ,说明拥塞现象较为严重。

上述过程根据可控数据流和不可控数据流的传输时延判定拥塞的具体程度,为提高后续拥塞控制的精准性[4]。设定一组判定窗口,根据数据包在不同大小窗口中传输的队列长度和速率,来判定窗口对其数据拥塞程度的影响,表达公式为:

$ \frac{{{\rm{d}}W\left( t \right)}}{{{\rm{d}}t}} = \frac{1}{{R\left( t \right)}} - \frac{{W\left( t \right)}}{2} \cdot \frac{{W\left( {t - R\left( t \right)} \right)}}{{R\left( {t - R\left( t \right)} \right)}}p\left( {t - R\left( t \right)} \right),$ (3)
$ \frac{{{\rm{d}}q\left( t \right)}}{{{\rm{d}}t}} = \frac{{W\left( t \right)}}{{R\left( t \right)}}N\left( t \right) - C 。$ (4)

式中:w为窗口大小;q为数据包传输的队列长度;R(t)为数据包往返时间;C为网络信道容量;N(t)为接口连接数量;d为源端数量。假设R(t)=0为常量,源端窗口数值均具有相同变化,根据该特点确定出现拥塞和正常情况窗口的数据传输率:

$ \begin{gathered} x''\left( t \right) = \frac{N}{{{R^2}}} - \frac{{x\left( t \right)x\left( {t - {R_0}} \right)}}{{2N}}p\left( {t - {R_0}} \right),\\ {q_{ref}} = x\left( t \right) - C。\\ \end{gathered} $ (5)

通常上述公式可以发现,当出现传输拥塞时,数据包传输的往返时间R(t)过长,数值会增大,判定此时数据队列长度为qref。标记该队列长度的网络数据,将其作为下一步拥塞控制的对比阈值,控制后的数据传输队列长度需小于qref,由此可大大提高控制的精准度和效率。

2 网络拥塞控制实现

本文采用强化学习算法建立船舶网络数据传输拥塞控制器,强化学习算法具有一定自学习能力,可在多次迭代中捕捉目标数据并给出决策行为,将其应用到拥塞控制中,其基本思想是选择一个动态环境作为对象,当环境中出现拥塞时,给出一个强化信号反馈接收点,接收点进行判断后给出决策控制行为。控制思路框架如图1所示。

图 1 船舶网络数据传输拥塞控制思路 Fig. 1 Congestion control of ship network data transmission

根据图1给出的强化学习控制思路,结合学习算法计算船舶网络中拥塞动作和状态所对应的值函数Q(s,a),该值函数代表算法在某个状态 $ s $ 下采取决策动作 $ a $ 而产生的反馈回报Rt,表达公式为:

$ \begin{gathered} Q\left( {s,a} \right) = E\left[ {{R_t}\left| {{S_t} = s,{A_t} = a} \right|} \right] = \\ {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} E\left[ {{r_i} + \gamma Q\left( {{S_{t + 1}},{A_{t + 1}}} \right)\left| {{S_t} = s,{A_{t + 1}} = a} \right|} \right] 。\\ \end{gathered} $ (6)

式中:St为在 $ t $ 时刻下系统的状态值;At+1为系统采取的决策动作。

为了能获取拥塞控制最优动作值 $ {Q^*}\left( {s,a} \right) $ ,当学习算法在状态St+1下采取动作时,需要考虑在该状态下对应动作值at+1的实时变化。采用贝尔曼方程,更新控制目标向最优目标 $ {Q^*}\left( {{s_t},{a_t}} \right) $ 进行迭代靠拢:

$ {Q^*}\left( {{s_t},{a_t}} \right) = Q\left( {{s_t},{a_t}} \right) + \left[ {{r_t} + r\mathop {\max \left( {Q\left( {{S_{t + 1}},{a_{t + 1}}} \right) - Q\left( {{s_t},{a_t}} \right)} \right)}\limits_{{a_{t + 1}} \in A} } \right]。$ (7)

式中,rt为在 $ t $ 时刻下数据传输的最优目标。

要想提高控制方法与船舶网络之间的贴合度,需要对源端进行标记,建立控制窗口,当数据包经过窗口时,通过调节窗口大小来更改数据的传输速率,进而达到传输稳定的效果。当所有数据均能遵循当下链路最佳的速率进行传输时,也就不会出现拥塞现象,实现了高效控制。

为保证控制的有效性,减少链路的丢包率,用P1表示数据传输的丢包概率[5],当每经过一个链路节点(n+1)2时,用以下公式计算实时更新:

$ {P_1}\left( {n + 1} \right) = \left[ {{P_1}\left( n \right)} \right] + \xi {\left[ {\left( {EC{S_1}\left( n \right) - EC{S_{th}}} \right)} \right]^*}。$ (8)

式中: $ \xi $ 为控制增益,范围在 $ 0 < \xi < 1 $ 之间;ECS1为数据正常状态阈值;ECSth为数据竞争状态阈值。当节点出现拥塞时,此时控制算法需要立即做出控制决策行为,根据实际参数调节窗口大小进行有效控制。

w(n)为正常数据的控制窗口大小,由于每个数据包的拥塞概率标识会因为数据流变化而发生改变,当网络检测到拥塞标识时,设置平均控制窗口w(n+1)2的大小为:

$ w{\left( {n + 1} \right)^2} = \frac{{\left( {w\left( n \right) + 1\left( {1 - m\left( n \right)w\left( n \right)} \right) + m\left( n \right)w{{\left( n \right)}^2}} \right)}}{2}。$ (9)

式中:m(n)为根据数据流量大小而变化的实时数值,用于调整控制窗口的大小,当检测到链路中存在拥塞节点时,根据数据经过窗口的流量大小数值,迅速根据竞争状态调整窗口进行增减,由此约束数据的传输速率和队列长度,实现拥塞精准控制。

3 控制方法性能实验 3.1 实验设置

为验证本文提出控制方法的有效性,建立船舶网络数据传输仿真平台,该平台包含单源端和多源端,每个服务器与用户之间存在3种传输方式,包含3个数据子流,每个子流为一个通信信道,作为数据传输环境。为保证实验数据的可参考性,在其中2条传输子流中添加共享瓶颈,并在子流中加入1~5个共享竞争用户,在资源传输受限的环境中减少子支流、增加动态数据数量,用于模拟真实的数据传输拥塞环境。

3.2 控制前后船舶网络吞吐量变化对比分析

在上述实验环境对网络归一化吞吐量的变化情况进行测试,由此判定控制方法的优异。网络吞吐量值是指在没有失帧的情况下,系统流入、处理以及流出数据包的速率,吞吐量越高代表系统处理信息的效率越高,反之,则越差,实验结果如图2图3所示。可以看出,未控制时船舶网络链路吞吐量整体变动较大,整体分布较低,不同链路的吞吐量之间存在较大差异。说明由于传输拥塞的影响,网络处理数据的效率下降,随着拥塞时间的增加对线路影响越来越大;反观经过本文方法控制后的吞吐量变化情况,数值明显上升且趋势走向平稳,能够稳定高效地传输数据,证明本文控制方法能够疏通拥塞链路,实现高效传输。

图 2 未控制时吞吐量变化 Fig. 2 Throughput change when uncontrolled

图 3 控制后吞吐量变化 Fig. 3 Throughput change after control
3.3 基于节点受限次数的拥塞控制结果对比分析

为了精准测试本文方法的有效性,根据节点运行的受限次数来验证方法的有效性,并与基于CoAP协议的物联网拥塞控制算法、基于博弈论的命名数据网络拥塞控制方法进行对比分析,实验结果如图4图5所示。可以看出,经过本文方法控制后的节点受限制次数较少,在同等的传输环境下,本文方法能帮助节点实现更好更快速地数据传输,对拥塞情况控制效果较佳,使得船舶网络环境更稳定,数据运行更高效安全。

图 4 节点运动速度为2 m/s时受限制情况 Fig. 4 Restrictions when the node movement speed is 2 m/s

图 5 节点运动速度为20 m/s时受限制情况 Fig. 5 Restrictions when the node movement speed is 20 m/s
4 结 语

本文提出一种强化学习的船舶网络数据传输拥塞控制方法,建立网络拥塞模型,计算正常情况和拥塞情况下,数据节点的队列长度,在此基础上,再进行控制可提高控制精准度。本文考虑到拥塞节点在网络中的动态因素,采用强化学习算法学习拥塞节点的关键参数,如数据包流量、变化率以及数据竞争概率,根据这些参数与待测试拥塞点进行对比,给出最为适用的传输窗口,实现船舶网络数据传输拥塞有效控制。

参考文献
[1]
任智, 吴本源, 周舟, 等. 基于CoAP协议的泛在电力物联网拥塞控制算法[J]. 计算机工程, 2021, 47(10): 166-173.
REN Zhi, WU Benyuan, ZHOU Zhou, et al. Congestion control algorithm for ubiquitous electric IoT based on CoAP protocol[J]. Computer Engineering, 2021, 47(10): 166-173.
[2]
杨华, 孙欣伊, 贾宗星, 等. 基于博弈论的命名数据网络拥塞控制策略[J]. 东华大学学报(自然科学版), 2021, 47(4): 49-54+61.
YANG Hua, SUN Xinyi, JIA Zongxing, et al. Congestion control strategy in named data networking based on game theory[J]. Journal of Donghua University(Natural Science), 2021, 47(4): 49-54+61.
[3]
赵夙, 王伟, 朱晓荣, 等. 基于自适应网络编码的异构无线链路并发传输控制方法研究[J]. 电子与信息学报, 2022, 44(8): 2777-2784.
ZHAO Su, WANG Wei, ZHU Xiaorong, et al. Research on concurrent transmission control of heterogeneous wireless links based on adaptive network coding[J]. Journal of Electronics & Information Technology, 2022, 44(8): 2777-2784.
[4]
焦贤龙, 郭松涛, 黎勇, 等. 基于相继干扰消除和跨层并发传输的物联网数据聚合调度[J]. 电子学报, 2021, 49(10): 1982-1992.
JIAO Xianlong, GUO Songtao, LI Yong, et al. SIC-Based data aggregation scheduling with cross-layer concurrent transmission for internet of things[J]. Acta Electronica Sinica, 2021, 49(10): 1982-1992.
[5]
侯睿, 刘俊康, 张成俊, 等. 基于ZigBee的医疗监测系统自适应拥塞控制方法[J]. 中南民族大学学报(自然科学版), 2020, 39(6): 632-636.
HOU Rui, LIU Junkang, ZHANG Chengjun, et al. Adaptive congestion control method for medical monitoring system based on ZigBee[J]. Journal of South-central Minzu University (Natural Science Edition), 2020, 39(6): 632-636.