一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于NewReno的吞吐率提升方法与流程

2022-02-20 01:58:50 来源:中国专利 TAG:

一种基于newreno的吞吐率提升方法
技术领域
1.本发明涉及一种基于newreno的吞吐率提升方法,属于无线网络传输中的网络拥塞控制技术领域。


背景技术:

2.传输控制协议(transmission control protocol,tcp)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由ietf的rfc 793定义。tcp的主要功能在于当应用层向tcp层发送用于网间传输的、用8位字节表示的数据流,tcp把数据流分割成适当长度的报文段,并把数据包传给ip层,由它来通过网络将包传送给接收端实体的tcp层。tcp为了保证报文传输的可靠,就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的字节发回一个相应的确认;如果发送端实体在合理的往返时延内未收到确认,那么对应的数据将会被重传。
3.newreno为一种经典的tcp拥塞控制方法,该方法主要包括四个主要阶段:慢开始、拥塞避免、快重传和快恢复;在慢开始阶段数据发送端每收到一个新的ack,将拥塞窗口加1,当拥塞窗口到达慢开始门限值时,进入拥塞避免阶段;在拥塞避免阶段,拥塞窗口增加速度变慢,每经过一个传输轮次拥塞窗口加1;快重传是对超时重传的改进,当数据发送端接收到对同一报文的三个重复确认时,直接重传该报文段,避免发生超时;快恢复是对丢失恢复机制的改进,在快重传之后,不经过慢启动过程而直接进入拥塞避免阶段。
4.在有线网络中,当网络拥塞时,会发生超时重传,即数据发送端在设置的超时重传时间内无法收到对某一已发送数据包的确认,从而重新发送该数据包,并将拥塞窗口初始化,从而使数据发送端下次发送少量的数据包,缓解网络拥塞。发生超时重传的原因是数据包在网络中某处长时间滞留或由于缓冲不足导致数据包被网络中某一结点丢弃。但是在无线网络中,造成数据包丢失的原因可能不仅仅是网络拥塞造成的,还有可能是通信链路质量不好造成的,例如通信设备和基站之间有障碍物阻挡;如果是因为后者造成的超时重传会导致发送端误认为网络拥塞,从而初始化拥塞窗口,数据包发送速率下降,使网络整体的吞吐率下降;这是newreno拥塞控制方法在无线网络下的不足之处,本发明即是对newreno方法的改进。
5.本发明的应用场景为在发生灾难后,无人机对受灾区域进行小范围摄像并借助5g毫米波网络高速实时传回基站,受灾区域内的障碍物会对无人机与基站之间的通信造成影响,在此基础上改进newreno。主要思想为在无线通信中,数据发送端和接收端首先建立tcp连接,在慢开始阶段仍采用newreno;在拥塞避免阶段,数据发送端根据网络状态包括往返时延、数据包发送时间间隔的移动指数加权平均、ack到达时间间隔的移动指数加权平均、拥塞窗口的大小、慢开始门限值,结合sarsa方法进行策略学习,从而根据学习到的q表进行动作选择,即每收到一个新的ack时,保持原有拥塞窗口增减量不变或重新选择新的拥塞窗口的增减量;在发生丢包时,根据数据发送端的位置、速度和接收的sinr通过训练好的svm模型来判断此时丢包是否是因为通信链路不好或障碍物阻挡造成的中断,从而保持拥塞窗
口不变或减小。避免非网络拥塞原因造成的拥塞窗口初始化,提高网络吞吐,并借助ns3网络仿真软件来验证方法效果。


技术实现要素:

6.本发明的目的在于针对现有tcp协议的newreno在面对无线通信网络中因通信链路质量不好造成丢包,导致拥塞窗口并非因为网络拥塞而初始化,从而使得链路利用不充分以及吞吐率不够高的技术缺陷,提出了一种基于newreno的吞吐率提升方法,该方法的慢开始阶段采用newreno;在拥塞避免阶段,发送端根据网络状态,结合sarsa方法进行策略学习,根据学习到的q表进行动作选择,即每收到一个新的ack时,保持原有拥塞窗口增减量不变或重新选择新的拥塞窗口的增减量;在发生丢包时,根据数据发送端的位置、速度和接收的sinr通过训练好的svm模型来判断此时丢包是否是因为通信链路不好或障碍物阻挡造成,从而保持拥塞窗口不变或减小。
7.为了实现上述目的,本发明采用的技术方案如下:
8.所述基于newreno的吞吐率提升方法依托的无线传输系统包括发送端、接收端以及基站;发送端的移动模型为随机航路点模型;
9.其中,发送端与基站无线连接;基站和接收端有线连接;发送端和接收端的传输层采用tcp协议;
10.所述基于newreno的吞吐率提升方法在拥塞控制阶段和发生超时重传时,对newreno进行修改,包括如下步骤:
11.步骤1、发送端向接收端发起tcp连接请求,建立tcp连接;
12.步骤2、进入拥塞避免阶段后,在t0~t0 rtt期间,发送端收集网络状态、初始化q表、应用sarsa方法学习并更新q表,再根据q表选择动作,从而增加或减小拥塞窗口;
13.其中,t0为进入拥塞避免阶段后发送端第一次收到新到达ack时的模拟运行时间,rtt为发送端和接收端之间数据传输的往返时延;
14.步骤2.1)发送端收集网络状态s,具体为:
15.其中,网络状态s包括:往返时延与最小时延的比值、数据包发送时间间隔的移动指数加权平均、ack到达时间间隔的移动指数加权平均、拥塞窗口的大小以及慢开始门限值;
16.步骤2.2)发送端初始化q表;
17.其中,q表包括状态-动作对《s,a》及每个状态-动作对《s,a》对应的q值;s为状态,a为动作;
18.步骤2.3)根据sarsa方法学习并更新q表,依据q表选择动作,更新拥塞窗口的大小,具体为:
19.步骤2.3.1)发送端采用sarsa方法进行学习得到奖励值,再依据奖励值更新q表中的q值;
20.其中,奖励值根据本次更新q表和上次更新q表时网络利用率差值和阈值∈大小关系决定,具体为:
21.1a)网络利用率差值大于等于阈值∈时,奖励值设为r1;
22.1b)网络利用率差值大于等于0且小于阈值∈时,奖励值设为r2;
23.1c)网络利用率差值小于0且大于-∈时,奖励值设为-r2;
24.1d)网络利用率差值小于-∈时,奖励值设为-r1;
25.其中,阈值∈》0;奖励值r1和r2满足r1》r2》0;
26.步骤2.3.2)依据q表选择动作,更新拥塞窗口,具体为:
27.根据q表选择动作a且在t0~t0 rtt期间到达的新ack时保持动作a不变,当新的ack到达时间小于或等于t0 rtt,发送端只更新拥塞窗口;否则,当新的ack到达时间大于t0 rtt,跳至步骤3;
28.其中,更新拥塞窗口,具体为:根据动作a更新拥塞窗口的大小;
29.其中,更新拥塞窗口的变化量为a与此刻拥塞窗口倒数的乘积;且当动作a取值为正数时,拥塞窗口增加;动作a取值为负数时,拥塞窗口减小;
30.步骤3、在拥塞避免阶段,当新的ack到达时间大于t0 rtt,发送端重新收集网络状态,再采用sarsa方法进行学习得到奖励值,再依据奖励值更新q表中的q值,依据q表选择动作,更新拥塞窗口;
31.步骤4、设置发送端的高度为固定值,发送端的移动模型为随机航路点模型;在固定区域内先随机选择一个航路点,节点以某一速度到达该航路点之后,再随机选择下一个航路点和到达该航路点的速度;
32.其中,每次节点选择到达航路点时的速度服从一定范围内的均匀分布;
33.步骤5、记录发送端的移动情况,结合添加标签的规则,获取训练集和测试集,将训练集输入svm中进行训练,保存训练好的svm模型,并用测试集进行测试已训练好svm模型的分类能力,具体包括如下步骤:
34.步骤5.1)记录发送端的移动情况,包括当前模拟运行时间、发送端的位置、速度、信号与干扰加噪声比sinr、超时重传时间t
rto

35.步骤5.2)获取训练集和测试集,具体包括:将记录的移动情况中的发送端的位置、速度和信号与干扰加噪声比sinr组成特征向量;并给每个特征向量添加三类标签hl、hs及hn,获取特征向量和对应的标签,并构建训练集和测试集;
36.其中,标签hl表示在丢包发生时tcp连接长时间中断;标签hs表示在丢包发生时tcp连接短时间中断;标签hn表示在丢包发生时网络拥塞;
37.其中,给每个特征向量添加三类标签,并构建训练集和测试集,具体包括如下子步骤:
38.步骤5.2.1)判断每条移动情况数据中的sinr是否大于某一门限值θ,若sinr》θ,则将对应特征向量的标签中hn设置为1,hs设置为0,hl设置为0,此时模拟运行时间为t,继续给下一个特征向量添加标签,否则跳至步骤5.2.2);
39.步骤5.2.2)判断记录的移动情况数据中,在t~t t
rto
期间,是否存在某条移动情况数据中的sinr大于某一门限值θ,若存在sinr》θ,则将对应特征向量的标签hs设置为1,标签hn设置为0,标签hl设置为0;否则将对应特征向量的标签hl设置为1,标签hs设置为0,标签hn设置为0;
40.步骤5.2.3)在获取的特征向量和对应的标签数据中随机选择m%作为训练集,余下的特征向量和标签作为测试集;
41.其中,m%的比例范围为大于等于60%小于等于90%;
42.步骤5.3)将训练集输入svm中进行训练;训练完毕后,保存训练好的模型;
43.步骤5.4)将测试集输入训练好的svm模型,测试该模型的分类能力;
44.步骤6、当发生丢包时,发送端将当前发送端的位置、速度、信号与干扰加噪声比sinr组成特征向量输入训练好的svm模型,获取对应的分类结果,并对拥塞窗口采取相应措施,具体如下:
45.步骤6.1)若分类结果为hl=1,则拥塞窗口保持不变;
46.步骤6.2)若分类结果为hs=1,则拥塞窗口保持不变;
47.步骤6.3)若分类结果为hn=1,则拥塞窗口减为原来k%;
48.其中,k%的比例范围为30%到80%;
49.至此,从步骤1到步骤5完成了一种基于newreno的吞吐率提升方法。
50.有益效果
51.本发明一种基于newreno的吞吐率提升方法,与现有newreno相比,具有如下有益效果:
52.1.所述基于newreno的吞吐率提升方法考虑了在无线通信情况下,由于障碍物阻挡而非拥塞造成tcp拥塞窗口初始化导致网络吞吐率较低、带宽不能充分利用的情况,并在发生丢包时采取相应措施,弥补了newreno在无线情况下的短板;
53.2.所述基于newreno的吞吐率提升方法通过及时收集网络状态,利用强化学习方法进行拥塞窗口的更新,实现了在拥塞避免阶段根据网络实时的拥塞状态来决定增加还是减小拥塞窗口的比例,提升了网络吞吐率;
54.3.所述基于newreno的吞吐率提升方法与newreno相比,吞吐率提升比例较大,时延虽有提升,但相比于吞吐率提升所带来的优势可以忽略。
附图说明
55.图1是本发明一种基于newreno的吞吐率提升方法中强化学习模块的流程图;
56.图2是本发明一种基于newreno的吞吐率提升方法中svm训练模块的流程图;
57.图3是本发明一种基于newreno的吞吐率提升方法的流程图;
58.图4是本发明一种基于newreno的吞吐率提升方法实施例1中基站、障碍物和无人机初始位置的拓扑分布图;
59.图5是本发明一种基于newreno的吞吐率提升方法实施例2中基站、障碍物和无人机初始位置的拓扑分布图。
具体实施方式
60.下面结合附图及实施例对本发明一种基于newreno的吞吐率提升方法进行详细说明。
61.实施例1
62.所述基于newreno的吞吐率提升方法的应用场景为在发生灾难后,无人机对受灾区域进行小范围摄像并借助5g毫米波网络高速实时传回基站,受灾区域内的障碍物会对无人机与基站之间的通信造成影响,采用传统tcp拥塞控制方法会由于障碍物阻挡导致丢包,从而拥塞窗口初始化,影响网络吞吐率和利用率,因此本发明在newreno的基础上提出了一
种提升吞吐率的拥塞控制方法,更适合作为无线网络下的拥塞控制方法;此外,在通信链路较好的情况下,本发明相比于newreno也能提升吞吐率和网络利用率,使带宽得到充分利用。
63.针对现有tcp的newreno在无线通信网络因通信链路质量不好造成丢包,导致拥塞窗口并非因为网络拥塞而初始化,从而使得链路利用不充分以及吞吐率不够高,提出了一种基于newreno的吞吐率提升方法,该方法在慢开始阶段仍采用newreno;在拥塞避免阶段,根据网络状态包括往返时延、数据包发送时间间隔的移动指数加权平均、ack到达时间间隔的移动指数加权平均、拥塞窗口的大小、慢开始门限值,结合sarsa方法进行策略学习,从而根据学习到的q表进行动作选择,即每收到一个新的ack时,选择拥塞窗口的增减量;在发生丢包时,根据无人机的位置、速度和接收的sinr通过训练好的svm模型来判断此时丢包是否是因为通信链路不好或障碍物阻挡造成的中断,从而保持拥塞窗口不变或减小。
64.本实施例基于network simulator 3仿真软件,即ns3软件,主要用到其中的tcp模块、随机航路点模块、建筑物模块及在此基础上扩展的5g毫米波模块。
65.现在考虑以下场景:拓扑区域为2000m2,长40m,宽50m,在这片区域中分布着16个0.5m宽3.5m高的障碍物和2个0.5m宽20m高的障碍物。与5g基站连接的无人机以恒定高度在该拓扑区域内飞行,并通过5g基站与远端一台服务器建立tcp连接,向其传输数据,如图4所示,其中,带有箭头的曲线表示飞行方向。
66.在本实施例中,用(x,y,z)来表示无人机及建筑物的位置,其中0≤x≤40,0≤y≤50,z≥0,单位为m;
67.基站和无人机的初始条件设置:基站10m高,无人机高度恒为10m,并且其初始位置为(0,0,10),无人机采用的模型为随机航路点模型,并且为了使得飞行轨迹更加合理,尽量覆盖整个拓扑区域,采取将整个拓扑划分为四个区域,如图4所示,然后无人机每次在其中一个区域内随机选一个航路点和飞向该点的速度,到达该点之后,再在该区域内随机选择下一个航路点和速度,两次随机选择后,换一个区域,并在新的区域内进行两次随机航路点和速度选择,以此类推,直到模拟实验结束;无人机的速度v~u(54,90),即54km/h~90km/h之间的均匀分布;
68.tcp的初始条件设置:在ns3中设置tcp的发送缓存和接收缓存均为131072*50字节,即修改sndbufsize和rcvbufsize两个参数;拥塞窗口初始门限值为20000,即修改slowstartthreshold参数;
69.应用层的应用为自定义应用,发送速率为1000mbps,每个数据包的大小为1400字节,采取持续发送数据包的策略;
70.远端服务器和5g基站之间的链路为点对点信道,传播时延为10ms,链路带宽为100gbps;
71.无人机在仿真实验的0.1s开始建立tcp向远端服务器建立连接,仿真实验每次持续的时间为ns3中的25s。
72.结合图3基于newreno的吞吐率提升方法的流程图,本发明采用的技术方案如下:
73.步骤1、无人机向远端主机发起tcp连接请求,建立tcp连接;其中,拥塞控制方法整体采用newreno:即在慢开始阶段、快重传阶段和快恢复阶段,tcp所采取的拥塞控制行为与newreno一致;在拥塞控制阶段和丢包即超时重传时,对newreno进行修改;
74.步骤2、结合图1基于newreno的吞吐率提升方法中强化学习模块的流程图,进入拥塞避免阶段后,无人机收集网络状态,并初始化q表,应用sarsa方法进行学习并更新q表,根据q表采取贪婪策略选择动作,从而对拥塞窗口增加或减小,具体为:
75.步骤1、发送端向接收端发起tcp连接请求,建立tcp连接;
76.步骤2、结合图1基于newreno的吞吐率提升方法中强化学习模块的流程图,进入拥塞避免阶段后,在t0~t0 rtt期间,无人机收集网络状态、初始化q表、应用sarsa方法学习并更新q表,再根据q表选择动作,从而增加或减小拥塞窗口;
77.其中,t0为进入拥塞避免阶段后发送端第一次收到新到达ack时的模拟运行时间,rtt为发送端和接收端之间数据传输的往返时延;
78.具体为:
79.步骤2.1)发送端即无人机收集网络状态s,具体为:
80.其中,网络状态s包括:往返时延与最小时延的比值、数据包发送时间间隔的移动指数加权平均、ack到达时间间隔的移动指数加权平均、拥塞窗口的大小以及慢开始门限值;
81.步骤2.2)发送端初始化q表;
82.其中,q表包括状态-动作对《s,a》及每个状态-动作对《s,a》对应的q值;s为状态,a为动作;
83.步骤2.3)根据sarsa方法学习并更新q表,依据q表选择动作,更新拥塞窗口的大小,具体为:
84.步骤2.3.1)无人机采用sarsa方法进行学习得到奖励值,再依据奖励值更新q表中的q值,q值更新公式如式(2.1)所示;
85.q(sn,an)=q(sn,an) α(r
n 2
γq(s
n 1
,a
n 1
)-q(sn,an))
ꢀꢀ
(2.1)
86.在式(2.1)中,sn和s
n 1
分别代表此刻的网络状态和下一次更新q表时的网络状态,an和a
n 1
分别代表此刻采取的动作和下一次更新q表时采取的动作,α为学习率,γ为折扣因子,r
n 2
为奖励值,如式(2.2)所示:
[0087][0088]
式(2.2)中δ
n 2
=u
n 2-u
n 1
表示网络利用率的变化值,un表示在n-1时刻,tcp发送端采取某一动作a之后,到n时刻的网络利用率,网络利用率采用如式(2.3)的定义方式:
[0089][0090]
式(2.3)中,tp为吞吐率,b表示远端主机和基站之间有线连接的带宽,d=rtt-rtt
min
为延迟差,p为丢包率,δ1、δ2为权重参数,δ1=0.05,δ2=0.01;
[0091]
根据q表选择动作a,并且在t0~t0 rtt期间到达的新ack时均不进行动作选择,即保持上次选择的动作a不变,其中动作a共有四种取值,分别为 3、 1、 0.5或-1;rtt为发送端和接收端之间数据传输的往返时延;
[0092]
步骤2.2.3)更新拥塞窗口,增加的拥塞窗口为a与拥塞窗口的倒数相乘,如式
(2.4)所示:
[0093][0094]
其中,cwnd为拥塞窗口;
[0095]
根据q表选择动作a且在t0~t0 rtt期间到达的新ack时保持动作a不变,当新的ack到达时间小于或等于t0 rtt,发送端只更新拥塞窗口;否则,当新的ack到达时间大于t0 rtt,跳至步骤3;
[0096]
步骤3、在拥塞避免阶段,当新的ack到达时间大于t0 rtt,发送端重新收集网络状态,再采用sarsa方法进行学习得到奖励值,再依据奖励值更新q表中的q值,依据q表选择动作,更新拥塞窗口;
[0097]
步骤4、在ns3中无人机高度恒为10m,并且其初始位置为(0,0,10),无人机采用的模型为随机航路点模型,并且为了使得飞行轨迹更加合理,尽量覆盖整个拓扑区域,采取将整个拓扑划分为四个区域,如图4所示,无人机每次在其中一个区域内随机选一个航路点和飞向该点的速度,到达该点之后,再在该区域内随机选择下一个航路点和速度,两次随机选择后,换一个区域,并在新的区域内进行两次随机航路点和速度选择,以此类推,直到模拟实验结束;无人机的速度v~u(54,90),即54km/h~90km/h之间的均匀分布;
[0098]
步骤5、记录无人机的移动情况,结合添加标签的规则,获取训练集和测试集,将训练集输入svm中进行训练,保存训练好的svm模型,如图2所示,并用测试集进行测试已训练好svm模型的分类能力;
[0099]
具体包括如下步骤:
[0100]
步骤5.1)模拟运行多次实验,每间隔0.1s记录无人机的移动情况,包括当前模拟运行时间t、发送端的位置(l
x
、ly、lz)、速度(v
x
、vy、vz)、信号与干扰加噪声比sinr、超时重传时间t
rto

[0101]
步骤5.2)获取训练集和测试集,具体包括:将记录的移动情况中的发送端的位置(l
x
、ly、lz)、速度(v
x
、vy、vz)和信号与干扰加噪声比sinr组成特征向量;并给每个特征向量添加三类标签hl、hs及hn,从而获取特征向量和对应的标签;
[0102]
其中,标签hl表示在丢包发生时tcp连接长时间中断;标签hs表示在丢包发生时tcp连接短时间中断;标签hn表示在丢包发生时网络拥塞;
[0103]
填加三类标签时,包括如下步骤:
[0104]
步骤5.2.1)判断每条移动情况数据中的sinr是否大于某一门限值θ,若sinr》θ,则将对应特征向量的标签中hn设置为1,hs设置为0,hl设置为0,此时模拟运行时间为t,继续给下一个特征向量添加标签;否则执行步骤5.2.2);
[0105]
步骤5.2.2)判断记录的移动情况数据中,在t~t t
rto
期间,是否存在某条移动情况数据中的sinr大于某一门限值θ,若存在sinr》θ,则将对应特征向量的标签hs设置为1,标签hn设置为0,标签hl设置为0;否则将对应特征向量的标签hl设置为1,标签hs设置为0,标签hn设置为0;
[0106]
在获取的特征向量和对应的标签数据中随机选择70%~80%作为训练集,余下的特征向量和标签作为测试集;
[0107]
步骤5.3)将训练集输入svm中进行训练;采用线性核函数;训练完毕后,保存训练
好的模型;
[0108]
步骤5.4)将测试集输入训练好的svm模型,测试该模型的分类能力;
[0109]
步骤6、当发生丢包时,发送端将当前发送端的位置(l
x
、ly、lz)、速度(v
x
、vy、vz)和信号与干扰加噪声比sinr组成特征向量输入训练好的svm模型,获取对应的分类结果,并对拥塞窗口采取相应措施,具体如下:
[0110]
步骤6.1)若分类结果为hl=1,则拥塞窗口保持不变;
[0111]
步骤6.2)若分类结果为hs=1,则拥塞窗口保持不变;
[0112]
步骤6.3)若分类结果为hn=1,则拥塞窗口减为原来一半;
[0113]
至此,从步骤1到步骤5完成了本发明一种基于newreno的吞吐率提升方法的实现。
[0114]
实验结果对比:
[0115]
在本实施例中,所述方法相比于newreno,吞吐率和延迟的对比如表1所示:
[0116]
表1吞吐率对比
[0117][0118]
根据表1可知,tcp拥塞控制方法采取本发明所述方法相比采取newreno在此拓扑下的吞吐率提升较大,比例约为136.83%,时延增加量不多;相比于吞吐率的提升,时延增加的代价可以忽略。
[0119]
实施例2
[0120]
本实施例与实施例类似,只是更改了拓扑中的障碍物分布,具体为:在长40m、宽50m的区域中分布着5个5m宽5m高的障碍物,如图5所示,其中,带有箭头的曲线表示飞行方向。
[0121]
在本实施例中,所述方法相比于newreno,吞吐率和延迟的对比如表2所示:
[0122]
表2吞吐率对比
[0123][0124]
根据表2可知,tcp拥塞控制方法采取本发明所述方法相比采取newreno在此拓扑下的吞吐率提升较大,时延增加量不多;相比于吞吐率的提升,时延增加的代价可以忽略;
[0125]
上述两个实施例的仿真结果,印证了所述基于newreno的吞吐率提升方法相比于newreno吞吐率有很大的提升,时延增加量可以忽略,本发明具有相当的优势。
[0126]
以上结合两个具体实施例对本发明进行了详细描述。所述为本发明的较佳实施例而已,本发明不应该局限于该实施例和附图所公开的内容。凡是不脱离本发明所公开的精神下完成的等效或修改,都落入本发明保护的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献