动态应用带宽的方法及系统与流程

文档序号:17429652发布日期:2019-04-17 03:19阅读:270来源:国知局
动态应用带宽的方法及系统与流程

本发明涉及网络传输技术领域,具体涉及动态应用带宽的方法及系统。



背景技术:

传统的rtmp协议使用tcp协议传输amf格式的数据,但在复杂的网络条件下,限于tcp特性,使得一个rtmp会话只能运行在一个网络信道上,同时也不能占满这个网络信道的带宽。



技术实现要素:

本发明实施例提供了一种动态应用带宽的方法,其特征在于,所述方法包括:数据发送端与一个或一个以上的数据接收端建立基于一个或一个以上信道的tcp连接;在会话层将应用层的数据拆成多个固定大小的数据包;按照发送算法通过所述tcp连接发送所述数据包到所述数据接收端;接收所述数据接收端发送来的数据调度策略;基于所述数据调度策略调整所述发送算法。

进一步地,所述在会话层将应用层的数据拆成多个固定大小的数据包中,所述数据包的大小为1kb。

进一步地,所述按照发送算法通过所述tcp连接发送所述数据包中,所述发送算法包括:计算所述tcp连接的加权值;以加权轮询方式决定所述tcp连接发送数据的频率;所述tcp连接在预设时间内出现一次大于预定值的延时,则停止一次数据发送;所述tcp的加权值超过阈值并且大于所有连接的加权值均值的5倍,并且此时所有连接数据大于最小连接数,则关闭该tcp连接。

进一步地,所述发送算法还包括:判断是否添加新tcp连接时,开始一段预定时间后如果连接数小于最大连接数,则添加一个连接;再过一段预定时间后比较带宽是否增加了一定的量,如果增加了,则继续添加连接,直到带宽不再增加或者到了连接数最大值。

进一步地,所述接收所述数据接收端发送来的数据调度策略中,所述数据接收端制定所述数据调度策略的方法包括:所述数据接收端接收所述数据包;对所述数据包进行解包得到各条所述tcp连接的数据;排序重组各信道的所述tcp连接的数据;估算每条所述tcp连接的单向延时或往返延时、丢包率、带宽及其加权值;基于所述tcp连接的单向延时或往返延时、丢包率、带宽及其加权值制定数据调度策略。

进一步地,所述排序重组各信道的所述tcp连接的数据,包括通过在添加全局包序号来排序重组各信道的所述tcp连接的数据。

进一步地,所述tcp连接包括wifi连接或4g连接或卫星网卡连接。

本发明实施例还提供一种动态应用带宽的系统,其特征在于,所述系统包括数据发送端、数据接收端,数据发送端与一个或一个以上的数据接收端建立基于一个或一个以上信道的tcp连接;在会话层将应用层的数据拆成多个固定大小的数据包;按照发送算法通过所述tcp连接发送所述数据包到所述数据接收端;接收所述数据接收端发送来的数据调度策略;基于所述数据调度策略调整所述发送算法;所述数据接收端接收来自所述数据发送端的数据包,并据此制定数据调度策略,并发送所述数据调度策略到所述数据发送端。

进一步地,所述数据发送端包括第一应用层、第一tcp会话层、第一私有协议表示层,第一应用层定义了运行在所述数据发送端和数据接收端的应用程序进程如何相互传递报文;第一tcp会话层与一个或一个以上的数据接收端建立基于一个或一个以上信道的tcp连接;将所述第一应用层的数据拆成多个固定大小的数据包;按照发送算法通过所述tcp连接发送所述数据包到所述数据接收端,接收数据接收端发送来的数据调度策略;第一私有协议表示层基于所述数据调度策略调整所述发送算法。

进一步地,所述数据接收端包括第二应用层、第二tcp会话层、第二私有协议表示层,第二应用层定义了运行在所述数据发送端和数据接收端的应用程序进程如何相互传递报文;第二tcp会话层与数据发送端建立基于一个或一个以上信道的tcp连接;接收来自所述数据发送端的数据包;发送所述数据调度策略到所述数据发送端;第二私有协议表示层对所述数据包进行解包分析,排序重组各信道的所述tcp连接的数据,并据此制定数据调度策略。

本发明实施例提供的技术方案,通过改变rtmp协议底层的tcp传输实现,可以同时基于不同信道传输数据,且能充分利用各个信道的带宽能力,提高了网络数据发送端与数据接收端的数据吞吐效率。

附图说明

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

图1是本发明一实施例提供的一种动态应用带宽的方法流程示意图;

图2是本发明一实施例提供的一种动态应用带宽的系统组成示意图;

图3是本发明一实施例提供的一种数据发送端组成示意图;

图4是本发明一实施例提供的一种数据接收端组成示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,以下将结合附图和实施例,对本发明技术方案的具体实施方式进行更加详细、清楚的说明。然而,以下描述的具体实施方式和实施例仅是说明的目的,而不是对本发明的限制。其只是包含了本发明一部分实施例,而不是全部的实施例,本领域技术人员对于本发明的各种变化获得的其他实施例,都属于本发明保护的范围。

应该理解的是,虽然第一、第二、第三等用语可使用于本文中用来描述各种元件或组件,但这些元件或组件不应被这些用语所限制。这些用语仅用以区分一个元件或组件与另一元件或组件。因此,下述讨论之第一元件或组件,在不脱离本发明之内容下,可被称为第二元件或第二组件。

图1是本发明一实施例提供的一种动态应用带宽的方法流程示意图,包括以下步骤。

在步骤s110中,数据发送端与一个或一个以上的数据接收端建立基于一个或一个以上信道的tcp连接。

在本实施例中,数据发送端可以是rtmp客户端,数据接收端可以是rtmp服务器,并不以此为限。数据发送端与2~3台数据接收端建立连接,而数据发送端可以与每台数据接收端建立2~3条tcp连接,根据需要进行,并不以此为限。tcp连接包括wifi连接或4g连接或卫星网卡连接。

在步骤s120中,在会话层将应用层的数据拆成多个固定大小的数据包。数据包的大小可以为1kb,并不以此为限。

在步骤s130中,按照发送算法通过tcp连接发送数据包到数据接收端。

发送算法包括:计算tcp连接的加权值;以加权轮询方式决定tcp连接发送数据的频率。tcp连接在预设时间内出现一次大于预定值的延时,则停止一次数据发送。tcp的加权值超过阈值并且大于所有连接的加权值均值的5倍,并且此时所有连接数据大于最小连接数,则关闭该tcp连接。判断是否添加新tcp连接时,开始一段预定时间后如果连接数小于最大连接数,则添加一个连接。再过一段预定时间后比较带宽是否增加了一定的量,如果增加了,则继续添加连接,直到带宽不再增加或者到了连接数最大值。

在步骤s140中,接收数据接收端发送来的数据调度策略。

数据接收端制定数据调度策略的方法包括以下步骤。

首先,数据接收端接收数据包,对数据包进行解包得到各条tcp连接的数据,排序重组各信道的tcp连接的数据。

数据接收端可以根据带宽优先级,添加全局包序号来排序重组各信道的tcp连接的数据包。也可以根据别的指标作为优先级来进行排序重组数据,并不以此为限。

然后,数据接收端估算每条tcp连接的单向延时或往返延时、丢包率、带宽及其加权值,再基于tcp连接的单向延时或往返延时、丢包率、带宽及其加权值制定数据调度策略。

数据调度策略解决的问题是计算每条tcp连接的数据延迟,决定以什么频率发送,在哪条链路发送,什么时候新建tcp连接,什么时候关闭链路等。整个会话的数据传输延迟取决于最差的一条tcp连接。

在本实施例中,以一条tcp连接的数据延迟计算为例,是在所有数据包中找到一段时间内recvtime-sendtime的最小值。一段时间可以根据需要设置,例如设置成10分钟。其中,recvtime-sendtime=clock_diff_time+process_time+transport_time。

clock_diff_time指时钟差异时间,可能是负值。process_time指数据在tcpbuffer(包括发送和接收buffer)中的时间。transport_time指数据在网络中传输的时间。

clock_diff_time和process_time是常量,因此,recvtime-sendtime的最小值就是transport_time的最小值,反映在网路中的最小时间,理想状态时是0。因此,认为recvtime-sendtime的最小值就是clock_diff_time+process_time。

假如recvtime-sendtime的最小值recvtime1–sendtime1=othertime,则所有包的数据延迟计算如下。

owd1=(recvtime1-sendtime1)-othertime=0。

owd2=(recvtime2-sendtime2)-othertime。

owd3=(recvtime3-sendtime3)-othertime。

owd4=(recvtime4-sendtime4)-othertime。

对多个数据延迟的结果进行一种加权平均,可以按照序列号加权,也可以按照接收时间加权,并不以此为限,得到最后的数据延迟,作为数据调度策略的一部分,返回给数据发送端。

在步骤s150中,基于数据调度策略调整发送算法。

数据发送端基于数据调度策略动态调整发送算法,在下一次发送数据包时使用该调整后的发送算法。

本发明实施例通过改变rtmp协议底层的tcp传输实现,可以同时基于不同信道传输数据,且能充分利用各个信道的带宽能力,提高了网络数据发送端与数据接收端的数据吞吐效率。

图2是本发明一实施例提供的一种动态应用带宽的系统组成示意图,系统包括数据发送端、数据接收端。

数据发送端与一个或一个以上的数据接收端建立基于一个或一个以上信道的tcp连接;在会话层将应用层的数据拆成多个固定大小的数据包;按照发送算法通过tcp连接发送数据包到数据接收端;接收数据接收端发送来的数据调度策略;基于数据调度策略调整发送算法。数据接收端接收来自数据发送端的数据包,并据此制定数据调度策略,并发送数据调度策略到数据发送端。

在本实施例中,数据发送端是rtmp客户端,数据接收端是rtmp服务器,并不以此为限。数据发送端与2~3台数据接收端建立连接,而数据发送端可以与每台数据接收端建立2~3条tcp连接,如图所示,接入点1、接入点2、接入点3各为一条tcp连接,根据需要进行,并不以此为限。tcp连接包括wifi连接或4g连接或卫星网卡连接。

图3是本发明一实施例提供的一种数据发送端组成示意图,数据发送端包括第一应用层、第一tcp会话层、第一私有协议表示层。

第一应用层定义了运行在数据发送端和数据接收端的应用程序进程如何相互传递报文。第一tcp会话层与一个或一个以上的数据接收端建立基于一个或一个以上信道的tcp连接;将第一应用层的数据拆成多个固定大小的数据包;按照发送算法通过tcp连接发送数据包到数据接收端。第一私有协议表示层排序重组各信道的tcp连接的数据包;接收数据接收端发送来的数据调度策略;基于数据调度策略调整发送算法。

第一应用层等同于osi协议中的应用层,基本内容没有变更。第一tcp会话层等同于osi协议中的会话层,使用标准的tcp传输。第一私有协议表示层,是本系统的核心,按照私有的数据发送端与接收端的策略,将多个tcp会话的传输能力整合,并通过标注的应用层协议对外展现。

图4是本发明一实施例提供的一种数据接收端组成示意图,数据接收端包括第二应用层、第二tcp会话层、第二私有协议表示层。

第二应用层定义了运行在数据发送端和数据接收端的应用程序进程如何相互传递报文。第二tcp会话层与数据发送端建立基于一个或一个以上信道的tcp连接,接收来自数据发送端的数据包,发送数据调度策略到数据发送端。第二私有协议表示层对数据包进行解包分析,排序重组各信道的tcp连接的数据,并据此制定数据调度策略。

第二应用层等同于osi协议中的应用层,基本内容没有变更。第二tcp会话层等同于osi协议中的会话层,使用标准的tcp传输。第二私有协议表示层,是本系统的核心,按照私有的数据发送端与接收端的策略,将多个tcp会话的传输能力整合,并通过标注的应用层协议对外展现。

需要说明的是,以上参照附图所描述的各个实施例仅用以说明本发明而非限制本发明的范围,本领域的普通技术人员应当理解,在不脱离本发明的精神和范围的前提下对本发明进行的修改或者等同替换,均应涵盖在本发明的范围之内。此外,除上下文另有所指外,以单数形式出现的词包括复数形式,反之亦然。另外,除非特别说明,那么任何实施例的全部或一部分可结合任何其它实施例的全部或一部分来使用。

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