一种数据流发送控制方法、装置、智能终端及存储介质与流程

文档序号:26238664发布日期:2021-08-10 16:41阅读:89来源:国知局
一种数据流发送控制方法、装置、智能终端及存储介质与流程

本发明涉及网络通信技术领域,尤其涉及的是一种数据流发送控制方法、装置、智能终端及存储介质。



背景技术:

随着科学技术的发展,尤其是互联网技术的快速发展,数据在网络上进行传输已经是必不可少的环节。目前,所有的数据网络传输低层都是基于传输控制协议(tcp,transmissioncontrolprotocol)和/或用户数据报协议(udp,userdatagramprotocol)的基础上实现的。在一些需要数据包快速到达目标端的场景下,通常采用udp作为底层传输协议。

现有技术的问题在于,udp不能对网络链路进行拥塞控制。因此使用udp作为底层传输协议时,容易因网络拥塞而导致网络性能急剧下降,使得网络带宽利用不合理,且影响数据传输效率。

因此,现有技术还有待改进和发展。



技术实现要素:

本发明的主要目的在于提供一种数据流发送控制方法、装置、智能终端及存储介质,旨在解决现有技术中使用udp作为底层传输协议时,容易因网络拥塞而导致网络性能急剧下降,使得网络带宽利用不合理,且影响数据传输效率的问题。

为了实现上述目的,本发明第一方面提供一种数据流发送控制方法,其中,上述方法包括:

获取网络状况信息,其中,上述网络状况信息包括网络的当前资源功率;

根据上述网络状况信息控制数据流的发送速度。

可选的,上述获取网络状况信息,其中,上述网络状况信息包括网络的当前资源功率,包括:

获取上述网络的当前吞吐量;

获取上述网络的当前往返时间;

根据上述当前吞吐量和上述当前往返时间获取上述当前资源功率。

可选的,上述根据上述网络状况信息控制数据流的发送速度,包括:

获取往返时间阈值和资源功率阈值;

当上述当前资源功率小于上述资源功率阈值,且上述当前往返时间大于上述往返时间阈值时,降低上述数据流的发送速度。

可选的,上述降低上述数据流的发送速度,包括:增大上述数据流对应的发送时间间隔。

可选的,上述网络状况信息还包括往返时间信息,上述根据上述网络状况信息控制上述数据流的发送速度,包括:

基于上述往返时间信息获取往返时间变化趋势,其中,上述往返时间信息包括记录的多个历史往返时间和上述当前往返时间;

基于上述往返时间变化趋势和上述资源功率控制上述数据流的发送速度。

可选的,上述获取上述网络的当前往返时间,包括:

根据窗口同步确认机制获取上述网络的当前往返时间,其中,上述窗口同步确认机制包括包到达确认机制和包丢失机制。

可选的,上述网络的服务端和客户端分别设置有窗口和丢包队列,上述方法还包括:

控制上述服务端和上述客户端的窗口和队列通过上述窗口同步确认机制进行同步;

其中,上述服务端向上述客户端发送上述数据流;

上述服务端设置有发送窗口和丢包队列,上述服务端的发送窗口维持一个最小可发送包序号,上述服务端的丢包队列里包括上述数据流中没有被上述客户端确认接收的数据包;

上述客户端设置有接收窗口和丢包队列,上述客户端的接收窗口维持一个最小可接收包序号,上述客户端的丢包队列里包括上述数据流中没有被上述客户端接收到的数据包。

本发明第二方面提供一种数据流发送控制装置,其中,上述装置包括:

网络状况获取模块,用于获取网络状况信息,其中,上述网络状况信息包括网络的当前资源功率;

控制模块,用于根据上述网络状况信息控制数据流的发送速度。

本发明第三方面提供一种智能终端,上述智能终端包括存储器、处理器以及存储在上述存储器上并可在上述处理器上运行的数据流发送控制程序,上述数据流发送控制程序被上述处理器执行时实现任意一项上述数据流发送控制方法的步骤。

本发明第四方面提供一种计算机可读存储介质,上述计算机可读存储介质上存储有数据流发送控制程序,上述数据流发送控制程序被处理器执行时实现任意一项上述数据流发送控制方法的步骤。

由上可见,本发明方案获取网络状况信息,其中,上述网络状况信息包括网络的当前资源功率;根据上述网络状况信息控制数据流的发送速度。本发明方案中,网络状况信息可以体现网络的数据传输效率。与现有技术相比,本发明方案可以在采用udp作为底层传输协议时实时获取网络状况信息,且根据网络状况信息控制数据流的发送速度,从而避免网络拥塞或者在网络发生拥塞时对网络进行动态调整,使得网络尽快恢复正常,有利于提高网络性能,提高网络带宽利用的合理性,提高数据传输效率。

附图说明

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

图1是本发明实施例提供的一种网络拥塞现象示意图;

图2是本发明实施例提供的一种数据流发送控制方法的流程示意图;

图3是本发明实施例图1中步骤s100的具体流程示意图;

图4是本发明实施例图1中步骤s200的具体流程示意图;

图5是本发明实施例图1中步骤s200的具体流程示意图;

图6是本发明实施例提供的一种rtt链表示意图;

图7是本发明实施例提供的一种rtt链表存满后更新数据的示意图;

图8是本发明实施例提供的一种窗口同步确认框架示意图;

图9是本发明实施例提供的一种启动阶段对数据包进行sak响应的示意图;

图10是本发明实施例提供的一种运行阶段发送sak控制信息进行同步的示意图;

图11是本发明实施例提供的一种数据流发送控制装置的结构示意图;

图12是本发明实施例提供的一种智能终端的内部结构原理框图。

具体实施方式

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况下,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。

应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。

还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当…时”或“一旦”或“响应于确定”或“响应于检测到”。类似的,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述的条件或事件]”或“响应于检测到[所描述条件或事件]”。

下面结合本发明实施例的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其它不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。

在当代社会,随着科学技术的发展,尤其是互联网技术的快速发展,数据在网络上进行传输已经是必不可少的环节。目前,所有的数据网络传输低层都是基于tcp和/或udp的基础上实现的。tcp本身是一项可靠的传输协议,其本身有一套完善的确认包到达确认(ack)应答机制,所以被广泛应用。但是在某些应用场景下,由于需要数据包快速到达目标端,通常采用udp作为底层传输协议。

和tcp相比,udp不对数据的发送速率进行管理,不保证发送的数据包能顺利到达接收端,也没有对网络链路负责任地进行拥塞控制,没有基于当前网络状况进行调整,既无法保证最大的发送速率,也不能在网络拥塞时进行动态调整。一旦网络出现拥塞,可能出现丢包,且丢包重传会使拥塞更严重,从而导致网络的性能急剧下降。因此,现有技术的问题在于,使用udp作为底层传输协议时,容易因网络拥塞而导致网络性能急剧下降,使得网络带宽利用不合理,且影响数据传输效率。

具体的,所谓拥塞,是指网络中存在过多的数据包导致网络的性能急剧下降的现象。在网络发生拥塞时,网络的吞吐量会下降,严重时会发生“拥塞崩溃”现象,是网络彻底处于瘫痪状态。一般来说,在网络负载的增加导致网络效率降低的时候,如果发送方仍然无节制的发送数据,就会发生拥塞崩溃。其中,上述网络负载即网络承载的流量,本实施例中,上述网络负载可以为网络中存在的数据包,且上述数据包是数据流中对应的数据包。

图1是本发明实施例提供的一种网络拥塞现象示意图,如图1所示,网络的性能随负载数目的变化可以分为3个阶段。阶段1:当网络负载较小时,吞吐量基本上随着负载的增长而增长,呈线性关系,而资源功率(资源功率=吞吐量/响应时间)随着负载的增长以指数增长,往返时间(rtt,round-triptime)随负载的增长略有上升;阶段2,当负载达到膝点时,吞吐量增长缓慢,资源功率达到最大值,在此之后吞吐量的增长远远慢于负载的增长,rtt急剧上升,资源功率快速下降,如果负载继续增加,路由器开始丢包,当负载超过一定量时,吞吐量开始急剧下降,这一点称为崖点;阶段3:当负载达到崖点时,吞吐量达到最大值,资源功率达到最小值,rtt以指数增长,系统处于拥塞状态。其中,上述往返时间又称回环时间或往返时延,表示从发送端发送数据开始,到发送端接收到来自接收端的确认总共经历的时间;上述膝点附近称为拥塞避免区间;膝点与崖点之间称为拥塞恢复区间:崖点之外(超过崖点)是拥塞崩溃区间。由图1可知,对于网络数据传输,膝点是最为理想的工作点。

网络拥塞产生的根本原因在于用户提供给网络的负载大于网络资源容量和处理能力,表现为数据包延时增加、丢包概率增大、上层应用系统性能下降等。拥塞产生的直接原因可能包括以下几点:第一,存储空间不足,几个输入数据流共同需要同一个输入端口,在这个端口就会建立排队,如果这个端口没有足够大的缓冲区来存放队列,缓冲区就会溢出从而导致数据包的丢弃,这点在突发大流量数据上表现明显。第二,带宽容量不足,低速链路对高速数据流的输入也会产生拥塞,所有信源发送的速率必须小于或等于信道容量。第三,处理器能力弱、速度慢,也能引起拥塞。如果路由器的cpu在执行排队缓存,更新路由表等功能时,处理速度跟不上高速链路,也会产生拥塞。此外,网络拓扑结构或传输路径选择的不合理,网络协议中的控制算法在在发送拥塞时不能有效的控制发送速率,中间节点对拥塞控制算法的不支持,都会造成不同程度的网络拥塞。而存储空间不足、带宽容量不足、路由处理器能力弱等问题都难以预知和控制,因此,本实施例中,控制发送速率尽量符合当前的网络状况,从而避免拥塞的发生或在拥塞发生时使其尽快恢复正常。

为了解决现有技术的问题,本发明方案在udp的基础上引入网络自适应的功能,能获取当前的网络的拥塞情况,控制数据流的发送速度,尽量合理地利用网络带宽传输数据流中的数据包。在网络拥塞和/或网络顺畅时,动态调节发送端的发送速率,以达到更理想的网络数据传输效率。具体的,本发明实施例提供一种数据流发送控制方法,在本发明实施例中,获取网络状况信息,其中,上述网络状况信息包括网络的当前资源功率;根据上述网络状况信息控制数据流的发送速度。本发明方案中,网络状况信息可以体现网络的数据传输效率。与现有技术相比,本发明方案可以在采用udp作为底层传输协议时实时获取网络状况信息,且根据网络状况信息控制数据流的发送速度,从而避免网络拥塞或者在网络发生拥塞时对网络进行动态调整,使得网络尽快恢复正常,有利于提高网络性能,提高网络带宽利用的合理性,提高数据传输效率。

示例性方法

如图2所示,本发明实施例提供一种数据流发送控制方法,具体的,上述方法包括如下步骤:

步骤s100,获取网络状况信息,其中,上述网络状况信息包括网络的当前资源功率。

其中,上述网络使用udp作为底层传输协议。具体的,上述网络状况信息可以体现网络的性能和数据传输状况。本实施例中,上述网络状况信息包括网络的当前资源功率,上述当前资源功率可以体现网络中实时的数据传输效率。具体的,当网络中负载(即数据包)处于膝点时,资源功率最大,因此根据资源功率也可以判断网络带宽是否得到最优利用,从而进行合理地调整。在实际使用过程中,上述网络状况信息还可以包括其它用于体现网络状况的信息,在此不做具体限定。

步骤s200,根据上述网络状况信息控制数据流的发送速度。

其中,上述数据流是需要通过上述网络进行传输的数据包的集合。具体的,可以通过控制数据流的发送速度来控制网络中的负载(即数据包),从而控制网络的性能。因此,本实施例中,可以根据网络状况信息控制数据流的发送速度,从而控制网络性能,尽量合理地利用网络带宽传输数据流中的数据包。

由上可见,本发明实施例提供的数据流发送控制方法获取网络状况信息,其中,上述网络状况信息包括网络的当前资源功率;根据上述网络状况信息控制数据流的发送速度。本发明方案中,网络状况信息可以体现网络的数据传输效率。与现有技术相比,本发明方案可以在采用udp作为底层传输协议时实时获取网络状况信息,且根据网络状况信息控制数据流的发送速度,从而避免网络拥塞或者在网络发生拥塞时对网络进行动态调整,使得网络尽快恢复正常,有利于提高网络性能,提高网络带宽利用的合理性,提高数据传输效率。

具体的,本实施例中,如图3所示,上述步骤s100包括:

步骤s101,获取上述网络的当前吞吐量。

步骤s102,获取上述网络的当前往返时间。

步骤s103,根据上述当前吞吐量和上述当前往返时间获取上述当前资源功率。

具体的,上述当前资源功率的值等于上述当前吞吐量的值除以上述当前往返时间。本实施例中,当前往返时间(rtt)是当前网络中,发送端发送数据包到发送端接收到来自接收端的确认总共经历的时间,即响应时间。

本实施例中,需要进行拥塞控制,拥塞控制就是根据网络状况控制数据流的发送速度,以避免拥塞或者在拥塞时能尽快恢复。对于网络状况,目前tcp和udt的做法都是通过包到达确认(ack)机制(即包到达应答机制)来对当前的网络状况进行反馈,且具有超时机制,而udt还具有包丢失(nak)机制(即否定应答机制)。因此本实施例中可以基于ack机制和nak机制来获取网络状况信息,例如,通过ack机制和nak机制获取当前网络的rtt,从而计算当前资源功率,判断当前网络是否达到膝点,进而达到拥塞控制的目的。

具体的,本实施例中,如图4所示,上述步骤s200包括:

步骤s201,获取往返时间阈值和资源功率阈值。

其中,上述往返时间阈值和资源功率阈值可以预先设置,也可以根据实际需求进行设置和调整,在此不做具体限定。

步骤s202,当上述当前资源功率小于上述资源功率阈值,且上述当前往返时间大于上述往返时间阈值时,降低上述数据流的发送速度。

具体的,可以根据上述当前资源功率和上述资源功率阈值、上述当前往返时间和上述往返时间阈值之间的大小关系确定网络状况处于图1中所示的哪一个阶段。

本实施例中,可以设置上述往返时间阈值为膝点对应的往返时间的值,设置上述资源功率阈值为膝点对应的资源功率的值。从而,当上述当前资源功率小于上述资源功率阈值,且上述当前往返时间大于上述往返时间阈值时,可知网络进入(或即将进入)拥塞状态,此时可以通过降低数据流的发送速度来使得网络中负载减少,从而使得网络拥塞快速恢复。

进一步的,当上述当前资源功率小于上述资源功率阈值,且上述当前往返时间小于上述往返时间阈值时,可知网络还未达到膝点,此时可以通过提高数据流的发送速度来使得网络中负载增多,从而更充分合理地利用网络带宽。

在一种应用场景中,可以设置上述往返时间阈值为小于膝点对应的往返时间的一个值,设置上述资源功率阈值为小于膝点对应的资源功率的一个值。当上述当前资源功率大于上述资源功率阈值,且上述当前往返时间大于上述往返时间阈值时,降低上述数据流的发送速度,从而避免网络进入拥塞状态。

其中,上述发送速度通过控制数据流的发送时间间隔控制。具体的,本实施例中,上述降低上述数据流的发送速度,包括:增大上述数据流对应的发送时间间隔。上述数据流的发送时间间隔是上述数据流中各数据包对应的发送时间间隔。实际使用过程中,还可以根据需要的目标发送速度和数据流的大小具体计算发送时间间隔,在此不作具体限定。

具体的,还可以根据往返时间变化趋势进行发送速度控制。本实施例中,上述网络状况信息还包括往返时间信息,如图5所示,上述步骤s200包括:

步骤a201,基于上述往返时间信息获取往返时间变化趋势,其中,上述往返时间信息包括记录的多个历史往返时间和上述当前往返时间。

步骤a202,基于上述往返时间变化趋势和上述资源功率控制上述数据流的发送速度。

由于往返时间(rtt)会随着网络不断地变化,为了便于计算发送间隔,同时为了根据rtt进行丢包重传等操作,需要对rtt的变化趋势进行判断。在此基础上,需要保存一段时间内的rtt,即往返时间信息,且上述往返时间信息需要进行更新。本实施例中,根据预设的时间间隔获取往返时间且进行保存,采用链表的结构来保存上述往返时间信息。

图6是本发明实施例提供的一种rtt链表示意图,具体的,如图6所示,定义一个rtt链表,预设其容量为n,n可以根据实际需求进行设置和调整(例如,n=30),初始表头指针指向链表的起始位(即第0位)。在rtt链表没有满的时候,每收到一个rtt,就将其按顺序插入rtt链表中。图7是本发明实施例提供的一种rtt链表存满后更新数据的示意图,如图7所示,在rtt链表满的时候,将新收到的一个rtt插入rtt链表的尾部,并将表头指针后移一位。如此,可通过链表更新上述往返时间信息为最新的时间段内的时间,从而计算实时的往返时间变化趋势。

其中,上述往返时间变化趋势包括往返时间的变化率,根据往返时间变化率可以判断网络是否达到膝点。例如,当上述往返时间先以较低的(例如低于预设的变化率阈值)变化率增加,在某点之后变化率突然增高时,可以判断该点为膝点。如当前往返时间对应的变化率较低(例如低于预设的变化率阈值),可以提高数据流的发送速度,反之则降低数据流的发送速度。在一种应用场景中,可以根据上述往返时间变化信息计算记录时间段内的平均rtt、最大rtt和最小rtt,结合上述平均rtt、最大rtt和最小rtt进行判断和发送速度控制,例如,预设平均往返时间阈值,当上述平均rtt大于平均往返时间阈值时,降低数据流的发送速度。在另一种应用场景中,还可以根据上述往返时间变化信息进行曲线模拟,从而更准确的计算需要达到的目标发送速度,在此不做具体限定。

具体的,本实施例中,上述步骤s102包括:根据窗口同步确认机制获取上述网络的当前往返时间,其中,上述窗口同步确认机制包括包到达确认机制和包丢失机制。

具体的,本实施例中,通过窗口同步确认(sak)机制来获取上述网络的当前往返时间,具体的,可以通过sak机制中包括的包到达确认(ack)机制和包丢失(nak)机制来统计网络的rtt。

ack机制和nak机制的作用除了统计网络的rtt外,还有一个比较大的作用就是替换丢包重传,考虑到stae模块的丢包重传的不及时性,因此本发明方案也将涉及到丢包重传的问题。由于往返时延(rtt)的存在,正常包的发送和丢包的重发都不会立刻得到响应,因此丢包重传需要一定的等待ack的时间。本实施例中,传输的上述发送流数据是实时视频流数据,因此app-ipc两端必须进行一个发送窗口的同步,以避免过期的丢包重发。

图8是本发明实施例提供的一种窗口同步确认框架示意图。如图8所示,本实施例中,上述网络服务端和客户端分别设置有窗口和丢包队列,上述数据流发送控制方法还包括:控制上述服务端和上述客户端的窗口和队列通过上述窗口同步确认机制进行同步;其中,上述服务端向上述客户端发送上述数据流;上述服务端设置有发送窗口和丢包队列,上述服务端的发送窗口维持一个最小可发送包序号,上述服务端的丢包队列里包括上述数据流中没有被上述客户端确认接收的数据包;上述客户端设置有接收窗口和丢包队列,上述客户端的接收窗口维持一个最小可接收包序号,上述客户端的丢包队列里包括上述数据流中没有被上述客户端接收到的数据包。

如此,对数据流进行合理的丢包控制,有利于提高数据流的传输效率,提高网络性能,合理利用网络带宽进行数据包传输。

具体的,本实施例中,上述窗口同步确认(sak)机制可以包括ack机制、nak机制、发送窗口、接收窗口等多种信息。上述sak机制中通过sak控制信息进行控制,上述sak控制信息携带窗口边界信息、收到的包信息、丢失的包信息等。具体的,如图8所示,server和client两端都有一个窗口和丢包队列;server端发送窗口维持一个最小可发送包序号,默认-1,丢包队列里面是没有被client端确认接收的数据包;client端接收窗口维持一个最小可接收包序号,默认-1,丢包队列里面是没有收到的包序号;两端的窗口和队列可以通过sak进行同步

图9是本发明实施例提供的一种启动阶段对数据包进行sak响应的示意图,如图9所示,在启动阶段,client端对每个实时传输协议(rtp,real-timetransportprotocol)数据包进行sak响应。其中,sak控制信息sak(x,y,z…)中:x代表窗口边界,默认为-1;y代表收到的数据包的确认序号;z为当前窗口下丢包序号列表,没有丢包时该值可无,z大于x。图10是本发明实施例提供的一种运行阶段发送sak控制信息进行同步的示意图,如图10所示,在运行阶段,client端按照预设的发送间隔(如定时10毫秒)发送sak控制信息进行同步,或者发现丢包时也会发送sak控制信息。本实施例中,将计时器放在server端,如果计时到期后,server端只需要在下一个要发送的数据包上打上一个需要sak回复的标记即可同时记录发送时间。client端收到带有tag标记的rtp包时进行sak回复;client端发现丢包时也进行回复。在一种应用场景中,也可以在client端实现定时器,但此时只有在收到定时到期后的下一个包才能回复sak,server端在每个包发送时都要获取下一个发送时间。

示例性设备

如图11中所示,对应于上述数据流发送控制方法,本发明实施例还提供一种数据流发送控制装置,上述数据流发送控制装置包括:

网络状况获取模块310,用于获取网络状况信息,其中,上述网络状况信息包括网络的当前资源功率。

其中,上述网络使用udp作为底层传输协议。具体的,上述网络状况信息可以体现网络的性能和数据传输状况。本实施例中,上述网络状况信息包括网络的当前资源功率,上述当前资源功率可以体现网络中实时的数据传输效率。具体的,当网络中负载(即数据包)处于膝点时,资源功率最大,因此根据资源功率也可以判断网络带宽是否得到最优利用,从而进行合理地调整。在实际使用过程中,上述网络状况信息还可以包括其它用于体现网络状况的信息,在此不做具体限定。

控制模块320,用于根据上述网络状况信息控制数据流的发送速度。

其中,上述数据流是需要通过上述网络进行传输的数据包的集合。具体的,可以通过控制数据流的发送速度来控制网络中的负载(即数据包),从而控制网络的性能。因此,本实施例中,可以根据网络状况信息控制数据流的发送速度,从而控制网络性能,尽量合理地利用网络带宽传输数据流中的数据包。

由上可见,本发明实施例提供的数据流发送控制装置通过网络状况获取模块310获取网络状况信息,其中,上述网络状况信息包括网络的当前资源功率;通过控制模块320根据上述网络状况信息控制数据流的发送速度。本发明方案中,网络状况信息可以体现网络的数据传输效率。与现有技术相比,本发明方案可以在采用udp作为底层传输协议时实时获取网络状况信息,且根据网络状况信息控制数据流的发送速度,从而避免网络拥塞或者在网络发生拥塞时对网络进行动态调整,使得网络尽快恢复正常,有利于提高网络性能,提高网络带宽利用的合理性,提高数据传输效率。

具体的,本实施例中,上述网络状况获取模块310具体用于:获取上述网络的当前吞吐量;获取上述网络的当前往返时间;根据上述当前吞吐量和上述当前往返时间获取上述当前资源功率。

具体的,上述当前资源功率的值等于上述当前吞吐量的值除以上述当前往返时间。本实施例中,当前往返时间(rtt)是当前网络中,发送端发送数据包到发送端接收到来自接收端的确认总共经历的时间,即响应时间。

本实施例中,需要进行拥塞控制,拥塞控制就是根据网络状况控制数据流的发送速度,以避免拥塞或者在拥塞时能尽快恢复。对于网络状况,目前tcp和udt的做法都是通过包到达确认(ack)机制(即包到达应答机制)来对当前的网络状况进行反馈,且具有超时机制,而udt还具有包丢失(nak)机制(即否定应答机制)。因此本实施例中可以基于ack机制和nak机制来获取网络状况信息,例如,通过ack机制和nak机制获取当前网络的rtt,从而计算当前资源功率,判断当前网络是否达到膝点,进而达到拥塞控制的目的。

具体的,本实施例中,上述控制模块320具体用于:获取往返时间阈值和资源功率阈值;当上述当前资源功率小于上述资源功率阈值,且上述当前往返时间大于上述往返时间阈值时,降低上述数据流的发送速度。

其中,上述往返时间阈值和资源功率阈值可以预先设置,也可以根据实际需求进行设置和调整,在此不做具体限定。

具体的,可以根据上述当前资源功率和上述资源功率阈值、上述当前往返时间和上述往返时间阈值之间的大小关系确定网络状况处于图1中所示的哪一个阶段。

本实施例中,可以设置上述往返时间阈值为膝点对应的往返时间的值,设置上述资源功率阈值为膝点对应的资源功率的值。从而,当上述当前资源功率小于上述资源功率阈值,且上述当前往返时间大于上述往返时间阈值时,可知网络进入(或即将进入)拥塞状态,此时可以通过降低数据流的发送速度来使得网络中负载减少,从而使得网络拥塞快速恢复。

进一步的,当上述当前资源功率小于上述资源功率阈值,且上述当前往返时间小于上述往返时间阈值时,可知网络还未达到膝点,此时可以通过提高数据流的发送速度来使得网络中负载增多,从而更充分合理地利用网络带宽。

在一种应用场景中,可以设置上述往返时间阈值为小于膝点对应的往返时间的一个值,设置上述资源功率阈值为小于膝点对应的资源功率的一个值。当上述当前资源功率大于上述资源功率阈值,且上述当前往返时间大于上述往返时间阈值时,降低上述数据流的发送速度,从而避免网络进入拥塞状态。

其中,上述发送速度通过控制数据流的发送时间间隔控制。具体的,本实施例中,上述降低上述数据流的发送速度,包括:增大上述数据流对应的发送时间间隔。上述数据流的发送时间间隔是上述数据流中各数据包对应的发送时间间隔。实际使用过程中,还可以根据需要的目标发送速度和数据流的大小具体计算发送时间间隔,在此不作具体限定。

具体的,还可以根据往返时间变化趋势进行发送速度控制。本实施例中,上述网络状况信息还包括往返时间信息,上述控制模块320还可具体用于:基于上述往返时间信息获取往返时间变化趋势,其中,上述往返时间信息包括记录的多个历史往返时间和上述当前往返时间;基于上述往返时间变化趋势和上述资源功率控制上述数据流的发送速度。

由于往返时间(rtt)会随着网络不断地变化,为了便于计算发送间隔,同时为了根据rtt进行丢包重传等操作,需要对rtt的变化趋势进行判断。在此基础上,需要保存一段时间内的rtt,即往返时间信息,且上述往返时间信息需要进行更新。本实施例中,根据预设的时间间隔获取往返时间且进行保存,采用链表的结构来保存上述往返时间信息。往返信息的具体获取方式以及基于上述往返时间变化趋势和上述资源功率控制上述数据流的发送速度的具体方式可以参照方法实施例,在此不再赘述。

本实施例中,上述网络状况获取模块310具体根据窗口同步确认机制获取上述网络的当前往返时间,其中,上述窗口同步确认机制包括包到达确认机制和包丢失机制。

具体的,本实施例中,通过窗口同步确认(sak)机制来获取上述网络的当前往返时间,具体的,可以通过sak机制中包括的包到达确认(ack)机制和包丢失(nak)机制来统计网络的rtt。

ack机制和nak机制的作用除了统计网络的rtt外,还有一个比较大的作用就是替换丢包重传,考虑到stae模块的丢包重传的不及时性,因此本发明方案也将涉及到丢包重传的问题。由于往返时延(rtt)的存在,正常包的发送和丢包的重发都不会立刻得到响应,因此丢包重传需要一定的等待ack的时间。本实施例中,传输的上述发送流数据是实时视频流数据,因此app-ipc两端必须进行一个发送窗口的同步,以避免过期的丢包重发。

具体的,本实施例中,上述网络的服务端和客户端分别设置有窗口和丢包队列,上述控制模块320还用于:控制上述服务端和上述客户端的窗口和队列通过上述窗口同步确认机制进行同步;其中,上述服务端向上述客户端发送上述数据流;上述服务端设置有发送窗口和丢包队列,上述服务端的发送窗口维持一个最小可发送包序号,上述服务端的丢包队列里包括上述数据流中没有被上述客户端确认接收的数据包;上述客户端设置有接收窗口和丢包队列,上述客户端的接收窗口维持一个最小可接收包序号,上述客户端的丢包队列里包括上述数据流中没有被上述客户端接收到的数据包。

如此,对数据流进行合理的丢包控制,有利于提高数据流的传输效率,提高网络性能,合理利用网络带宽进行数据包传输。具体的基于sak机制进行同步的方式可以参照方法实施例,在此不再赘述。

基于上述实施例,本发明还提供了一种智能终端,其原理框图可以如图12所示。上述智能终端包括通过系统总线连接的处理器、存储器、网络接口以及显示屏。其中,该智能终端的处理器用于提供计算和控制能力。该智能终端的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和数据流发送控制程序。该内存储器为非易失性存储介质中的操作系统和数据流发送控制程序的运行提供环境。该智能终端的网络接口用于与外部的终端通过网络连接通信。该数据流发送控制程序被处理器执行时实现上述任意一种数据流发送控制方法的步骤。该智能终端的显示屏可以是液晶显示屏或者电子墨水显示屏。

本领域技术人员可以理解,图12中示出的原理框图,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的智能终端的限定,具体的智能终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种智能终端,上述智能终端包括存储器、处理器以及存储在上述存储器上并可在上述处理器上运行的数据流发送控制程序,上述数据流发送控制程序被上述处理器执行时进行以下操作指令:

获取网络状况信息,其中,上述网络状况信息包括网络的当前资源功率;

根据上述网络状况信息控制数据流的发送速度。

本发明实施例还提供一种计算机可读存储介质,上述计算机可读存储介质上存储有数据流发送控制程序,上述数据流发送控制程序被处理器执行时实现本发明实施例提供的任意一种数据流发送控制方法的步骤。

应理解,上述实施例中各步骤的序号大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将上述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各实例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟是以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,上述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以由另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。

上述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,上述计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,上述计算机程序包括计算机程序代码,上述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。上述计算机可读介质可以包括:能够携带上述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,上述计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不是相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

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