一种高动态拓扑卫星网络中时延区分的传输控制方法

文档序号:25596167发布日期:2021-06-22 17:14阅读:121来源:国知局
一种高动态拓扑卫星网络中时延区分的传输控制方法

本申请涉及通讯技术领域,特别是涉及一种高动态拓扑卫星网络中时延区分的传输控制方法。



背景技术:

目前,卫星通信系统由于有着易于快速部署、大容量、低延时、全球覆盖等优势,已经越来越被人们所关注。

然而,目前的卫星网络传输控制协议主要沿用类似于地面传输控制协议的设计,例如,基于时延的传输控制协议,如vegas,将时延增加作为出现拥塞的标志,当时延增加时减小拥塞窗口,当时延减小时增加拥塞窗口。然而,在卫星网络中,由于延迟的增大可能是路径变化造成的,而当路径的改变导致延迟的增加时,减小拥塞窗口,则会浪费网络带宽资源,影响卫星网络的传输效率。



技术实现要素:

本申请实施例的目的在于提供一种高动态拓扑卫星网络中时延区分的传输控制方法,用以解决网络带宽资源浪费的问题。具体技术方案如下:

本申请实施的第一方面,首先提供了一种高动态拓扑卫星网络中时延区分的传输控制方法,所述方法包括:

获取卫星网络当前的时延信息;

根据所述当前的时延信息和预先获取的历史时延信息获取时延变化,并判断所述时延变化是否为卫星切换导致的;

若是,则对所述卫星网络进行时延探测,得到所述时延探测过程中最小时延数值;

根据所述最小时延数值,利用预设时延探测算法计算并更新拥塞窗口;

根据计算得到的拥塞窗口进行信息发送。

可选的,所述根据所述当前的时延信息和预先获取的历史时延信息获取时延变化,并判断所述时延变化是否为卫星切换导致的,包括:

根据所述当前的时延信息和预先获取的历史时延信息获取时延变化率;

当所述时延变化率大于预设变化率阈值时,则判定当前的时延为卫星切换导致的时延。

可选的,所述方法还包括:

根据所述当前的时延信息设置定时器;

检查所述定时器是否超时;

若超时,则将未确认的数据包添加到发送队列尾部,并在获取到新的时延信息后重传发送所述发送队列。

可选的,所述根据当前的时延信息和预先获取的历史时延信息获取时延变化,并判断时延变化是否为卫星切换导致的之后,所述方法还包括:

若否,则根据所述当前的时延信息,利用预设时延探测算法计算并更新拥塞窗口。

可选的,所述方法还包括:

获取所述卫星网络的丢包率;

当所述丢包率大于预设阈值时,减小当前拥塞窗口;

当所述丢包率小于预设阈值时,增大当前拥塞窗口。

本申请实施的第二方面,提供了一种高动态拓扑卫星网络中时延区分的传输控制装置,所述装置包括:

信息获取模块,用于获取卫星网络当前的时延信息;

信息判断模块,用于根据所述当前的时延信息和预先获取的历史时延信息获取时延变化,并判断所述时延变化是否为卫星切换导致的;

最小时延获取模块,用于若是,则对所述卫星网络进行时延探测,得到所述时延探测过程中最小时延数值;

拥塞窗口计算模块,用于根据所述最小时延数值,利用预设时延探测算法计算并更新拥塞窗口;

信息发送模块,用于根据计算得到的拥塞窗口进行信息发送。

可选的,所述信息判断模块,包括:

时延变化率获取子模块,用于根据所述当前的时延信息和预先获取的历史时延信息获取时延变化率;

时延判定模块,用于当所述时延变化率大于预设变化率阈值时,则判定当前的时延为卫星切换导致的时延。

可选的,所述装置还包括:

定时器设置模块,用于根据所述当前的时延信息设置定时器;

定时器检查模块,用于检查所述定时器是否超时;

重新发送模块,用于若超时,则将未确认的数据包添加到发送队列尾部,并在获取到新的时延信息后重传发送所述发送队列。

可选的,所述装置还包括:

拥塞窗口更新模块,用于若否,则根据所述当前的时延信息,利用预设时延探测算法计算并更新拥塞窗口。

可选的,所述装置还包括:

丢包率获取模块,用于获取所述卫星网络的丢包率;

拥塞窗口减小模块,用于当所述丢包率大于预设阈值时,减小当前拥塞窗口;

拥塞窗口增大模块,用于当所述丢包率小于预设阈值时,增大当前拥塞窗口。

本申请实施还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现上述任一高动态拓扑卫星网络中时延区分的传输控制方法。

本申请实施还提供了一种计算机可读存储介质,计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现上述任一高动态拓扑卫星网络中时延区分的传输控制方法。

本申请实施还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一高动态拓扑卫星网络中时延区分的传输控制方法。

本申请实施例有益效果:

本申请实施例提供的高动态拓扑卫星网络中时延区分的传输控制方法,可以获取卫星网络当前的时延信息;根据所述当前的时延信息和预先获取的历史时延信息获取时延变化,并判断所述时延变化是否为卫星切换导致的;若是,则对所述卫星网络进行时延探测,得到所述时延探测过程中最小时延数值;根据所述最小时延数值,利用预设时延探测算法计算并更新拥塞窗口;根据计算得到的拥塞窗口进行信息发送。通过本申请实施例的方法,可以判断当前时延是否为卫星切换导致的时延,若是,则可以获取时延探测过程中最小时延数值,并利用预设时延探测算法计算并更新拥塞窗口,从而可以避免网络带宽资源浪费的问题,提高卫星网络的传输效率。

当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。

图1为本申请实施例提供的高动态拓扑卫星网络中时延区分的传输控制方法的一种流程示意图;

图2为本申请实施例提供的快速重传机制的一种流程示意图;

图3为本申请实施例提供的动态拥塞窗口上界的一种流程示意图;

图4为本申请实施例提供的高动态拓扑卫星网络中时延区分的传输控制装置的一种结构示意图;

图5为本申请实施例提供的电子设备的一种结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员基于本申请所获得的所有其他实施例,都属于本申请保护的范围。

本申请实施例的第一方面,首先提供了一种高动态拓扑卫星网络中时延区分的传输控制方法,上述方法包括:

获取卫星网络当前的时延信息;

根据所述当前的时延信息和预先获取的历史时延信息获取时延变化,并判断所述时延变化是否为卫星切换导致的;

若是,则对卫星网络进行时延探测,得到时延探测过程中最小时延数值;

根据最小时延数值,利用预设时延探测算法计算并更新拥塞窗口;

根据计算得到的拥塞窗口进行信息发送。

可见,通过本申请实施例的方法,可以判断当前时延是否为卫星切换导致的时延,若是,则可以获取时延探测过程中最小时延数值,并利用预设时延探测算法计算并更新拥塞窗口,从而可以避免网络带宽资源浪费的问题,提高卫星网络的传输效率。

具体的,参见图1,图1为本申请实施例提供的高动态拓扑卫星网络中时延区分的传输控制方法的一种流程示意图,包括:

步骤s11,获取卫星网络当前的时延信息。

本申请实施例中的卫星网络可以为低轨卫星星座网络。本申请实施例提供的高动态拓扑卫星网络中时延区分的传输控制方法应用于智能终端,具体的,该智能终端可以是用于对模型进行训练的电脑或服务器等。

步骤s12,根据当前的时延信息和预先获取的历史时延信息获取时延变化,并判断时延变化是否为卫星切换导致的。

可选的,根据当前的时延信息和预先获取的历史时延信息获取时延变化,并判断时延变化是否为卫星切换导致的,包括:根据所述当前的时延信息和预先获取的历史时延信息获取时延变化率;当时延变化率大于预设变化率阈值时,则判定当前的时延为卫星切换导致的时延。

在实际使用过程中,时延变化可能由卫星运动引起,也可能由于卫星切换而导致的链路变化引起。其中,卫星和地面的相对运动会造成链路时延缓慢、接近线性的增加,而卫星切换可能会造成十几到上百毫秒的时延突变。因此,可以利用这个现象区分卫星网络的变化状态。

例如,在拥塞控制状态机进入时延探测阶段前,通过保存的rtt(round-triptime,往返时延)信息和当前rtt,判断当前时延是否处于缓慢线性增加,如果是的话,则说明时延变化是由于卫星运动的引起的,就会跳过这次时延探测;否则,就进入时延探测阶段。如,利用公式:计算最近n个rtt周期内的时延变化率,其中,rtti为当前探测阶段的时延,rtti-1为前一探测阶段的时延。如果连续n个周期rtt都处于增加状态,并且变化率不超过预设阈值δ,那么认为时延变化是卫星运动引起的,否则是网络中缓存队列增加引起的。

步骤s13,若是,则对卫星网络进行时延探测,得到时延探测过程中最小时延数值。

其中,若时延变化率大于预设变化率阈值时,则判定当前的时延为卫星切换导致的时延,则对卫星网络进行时延探测,可以进行一个完整的带宽时延探测过程。

可选的,根据当前的时延信息和预先获取的历史时延信息获取时延变化,并判断时延变化是否为卫星切换导致的之后,上述方法还包括:若否,则根据当前的时延信息,利用预设时延探测算法计算并更新拥塞窗口。

步骤s14,根据最小时延数值,利用预设时延探测算法计算并更新拥塞窗口。

由于,如果链路时延从较小值突然增大,按照之前探测到的最小rtt计算,会造成链路带宽时延积估计偏小,无法充分利用带宽资源。如,之前rtt=10ms,路径变化后rtt=100ms,利用bbr(拥塞控制算法)按照rtt=10ms计算拥塞窗口,那么带宽利用率会下降为原来的十分之一。因此本申请在源端监测到时延发生较大突变后,会立即进入时延探测阶段,并将基础rtt更新为时延探测阶段中的最小值,然后按照新的基础rtt计算拥塞窗口。

例如,新的时延探测算法可以为如下:

输入:当前以及历史往返时延rtti

如果当前时延相比上一周期变化差值大于一定阈值、或者过去一段时间内的时延变化率大于一定阈值,就直接进入时延探测阶段,重新测量链路的真实时延;否则,跳过本次时延探测,继续使用之前的测量值。

步骤s15,根据计算得到的拥塞窗口进行信息发送。

可见,通过本申请实施例的方法,可以判断当前时延是否为卫星切换导致的时延,若是,则可以获取时延探测过程中最小时延数值,并利用预设时延探测算法计算并更新拥塞窗口,从而可以避免网络带宽资源浪费的问题,提高卫星网络的传输效率。

可选的,参见图2,图2为本申请实施例提供的快速重传机制的一种流程示意图,上述方法还包括:

步骤s21,根据当前的时延信息设置定时器。

根据当前的时延信息设置定时器,可以通过对卫星网络进行时延探测,得到链路时延信息,根据链路时延信息,在发送端设置定时器。

步骤s22,检查定时器是否超时。

检查定时器是否超时,可以根据预设时长与当前时长进行对比判断,是否超时,具体的时长可以根据实际情况设定,本申请对此不进行限定。

步骤s23,若超时,则将未确认的数据包添加到发送队列尾部,并在获取到新的时延信息后重传发送发送队列。

在实际使用过程中,若超时,可以进入快速重传状态,在快速重传状态中,发送端将未确认的数据包添加到发送队列尾部;然后通过发送端进行时延探测,当获取到新的链路时延信息后,开始重传发送队列中的数据包。

由于随着卫星运动引起拓扑关系发生变化,卫星网络的路由也需要随之更新,在更新路由规则这段时间内,为了避免路由环路产生,旧路由不能被使用,因此,卫星网络会将收到的所有数据包和确认包进行丢弃处理。如果丢弃的数据包和确认包是数据流的中间部分,那么在路由更新完成后,可以通过后续数据包到达接收端后产生重复确认包,然后利用快速重传机制重新发送路由更新过程中丢失的数据包;而如果丢弃的数据包是数据流的尾部,那么发送端只能等待超时重传计时器超时后利用超时重传机制重新发送丢失的数据包。但是如果路由更新需要较长时间,那么前几次的超时重传会由于链路不可用而失败,导致定时器以指数形式退让到比较大的值,降低了卫星网络的传输效率,增加了流完成时间。

本申请在发送端可以增加一个计时器,通过每收到一个确认包就将计时器重置一次。如果计时器超时,说明可能发生了路由更新导致有大量数据包被丢弃,因此将当前已发送未确认的数据包全部插入到发送队列。在完成时延探测阶段,即探测到链路恢复正常后,就开始发送这部分数据包。从而通过发送冗余包的机制解决路由更新导致的超时重传等问题,减小流完成时间。

例如,本申请的快速重传算法为如下:

输入:往返时延rtti,重传计时器timer

发送端首先根据当前时延设定一个定时器,收到ack包后对定时器进行重置。定时器超时后,将发送端已发送但是还未被确认的数据包插入到当前发送队列的尾部,进行快速重传。

可见,通过本申请实施例的方法,可以对卫星网络进行时延探测,得到时延探测过程中发送的信息,对时延探测过程中发送的信息重新进行发送,通过发送冗余包的机制解决路由更新导致的超时重传等问题,减小流完成时间。

可选的,参见图3,图3为本申请实施例提供的动态拥塞窗口上界的一种流程示意图,上述方法还包括:

步骤s31,获取卫星网络的丢包率;

步骤s32,当丢包率大于预设阈值时,减小当前拥塞窗口;

步骤s33,当丢包率小于预设阈值时,增大当前拥塞窗口。

其中,当丢包率大于预设阈值时,减小当前拥塞窗口,可以减小当前拥塞窗口的上限,当丢包率小于预设阈值时,增大当前拥塞窗口,可以减小当前拥塞窗口的上限。

如果网络中交换机的缓存很大,当前基于丢包驱动的拥塞控制算法竞争时,固定的上限设置也会限制数据流可以占用的缓存比例,导致带宽估计偏小,无法与其他拥塞控制算法公平占用带宽。因此,本申请使用动态拥塞窗口上限调整算法来根据网络状况实时调整已发送未确认数据包的数量上限。具体算法如下:

输入:丢包率loss,吞吐throughput,往返时延rtt,带宽估计值btlbw,rtt估计值rtprop

输出:拥塞窗口上限cwnd

其中,当发送端监测到上一个rtt周期内丢包率大于一定阈值或者实际rtt测量值大于rtt估计值,这表明当前的拥塞窗口上界偏大,导致网络中缓存队列过大甚至溢出,可以减小拥塞窗口上限。而如果上一个rtt周期内的实际吞吐量小于带宽估计值,表明当前的拥塞窗口上限不足以完全利用链路可用带宽,可以增加拥塞窗口上限。在其他情况下,发送端保持拥塞窗口上限不变。在实际使用过程中,为了维持数据传输的稳定性,拥塞窗口上界的变化范围可以限制在1.2倍bdp(带宽)到2倍bdp之间。

可见,通过本申请实施例的方法,可以获取卫星网络的丢包率,并对当前拥塞窗口进行动态调整。

本申请实施例的第二方面,提供了一种高动态拓扑卫星网络中时延区分的传输控制装置,参见图4,图4为本申请实施例提供的高动态拓扑卫星网络中时延区分的传输控制装置的一种结构示意图,上述装置包括:

信息获取模块401,用于获取卫星网络当前的时延信息;

信息判断模块402,用于根据当前的时延信息和预先获取的历史时延信息获取时延变化,并判断时延变化是否为卫星切换导致的;

最小时延获取模块403,用于若是,则对卫星网络进行时延探测,得到时延探测过程中最小时延数值;

拥塞窗口计算模块404,用于根据最小时延数值,利用预设时延探测算法计算并更新拥塞窗口;

信息发送模块405,用于根据计算得到的拥塞窗口进行信息发送。

可选的,信息判断模块,包括:

时延变化率获取子模块,用于根据所述当前的时延信息和预先获取的历史时延信息获取时延变化率;

时延判定模块,用于当时延变化率大于预设变化率阈值时,则判定当前的时延为卫星切换导致的时延。

可选的,上述装置还包括:

定时器设置模块,用于根据当前的时延信息设置定时器;

定时器检查模块,用于检查定时器是否超时;

重新发送模块,用于若超时,则将未确认的数据包添加到发送队列尾部,并在获取到新的时延信息后重传发送发送队列。

可选的,上述装置还包括:

拥塞窗口更新模块,用于若否,则根据当前的时延信息,利用预设时延探测算法计算并更新拥塞窗口。

可选的,上述装置还包括:

丢包率获取模块,用于获取卫星网络的丢包率;

拥塞窗口减小模块,用于当丢包率大于预设阈值时,减小当前拥塞窗口;

拥塞窗口增大模块,用于当丢包率小于预设阈值时,增大当前拥塞窗口。

可见,通过本申请实施例的装置,可以判断当前时延是否为卫星切换导致的时延,若是,则可以获取时延探测过程中最小时延数值,并利用预设时延探测算法计算并更新拥塞窗口,从而可以避免网络带宽资源浪费的问题,提高卫星网络的传输效率。

本申请实施例还提供了一种电子设备,如图5所示,包括处理器501、通信接口502、存储器503和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线504完成相互间的通信,

存储器503,用于存放计算机程序;

处理器501,用于执行存储器503上所存放的程序时,实现如下步骤:

获取卫星网络当前的时延信息;

根据当前的时延信息和预先获取的历史时延信息获取时延变化,并判断时延变化是否为卫星切换导致的;

若是,则对卫星网络进行时延探测,得到时延探测过程中最小时延数值;

根据最小时延数值,利用预设时延探测算法计算并更新拥塞窗口;

根据计算得到的拥塞窗口进行信息发送。

上述电子设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述电子设备与其他设备之间的通信。

存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一高动态拓扑卫星网络中时延区分的传输控制方法的步骤。

在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一高动态拓扑卫星网络中时延区分的传输控制方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、存储介质、计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本申请的较佳实施例,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1