一种用于处理网络数据传输的方法和装置转让专利

申请号 : CN201510059547.3

文献号 : CN104581422B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 苏宗田刘宇波

申请人 : 成都金本华科技股份有限公司

摘要 :

本发明提供了一种用于处理网络数据传输的方法和装置,该方法包括:服务器端从缓冲区中获取待发送的视频数据,添加时间戳和序号后发送给客户端,接收来自客户端的反馈,并在获得了新的速率调整参数时修改发送延迟;客户端接收来自服务器端的视频数据,然后获取其视频内容数据、序号和时间戳,根据预定义的拥塞控制策略进行信道拥塞状态判断,计算发送延迟,计算新的速率调整参数,并发送至服务器端。本发明提供了一种针对硬件条件有限的视频数据服务器的传输控制方法,提高了视频传输的实时性和有效性,传输速率得到有效调整,显著提高了QoS。

权利要求 :

1.一种用于处理网络数据传输的方法,其特征在于,包括:

视频数据服务器端和客户端分别开启两个线程,建立对应两个不同的端口的两个套接字,分别进行视频数据和控制信号的传输;

服务器端的发送线程从缓冲区中获取待发送的视频数据,添加时间戳和序号后发送给客户端,检查是否获得了新的速率调整参数;并在获得了新的速率调整参数时修改发送延迟;

服务器端的接收线程接收来自客户端的速率调整数据,当接收到新的速率调整参数时,立即通知服务器端的发送线程修改发送延迟;

客户端的接收线程接收来自服务器端的视频数据,然后获取其视频内容数据、序号和时间戳,根据预定义的拥塞控制策略进行信道拥塞状态判断,根据当前信道拥塞状态,计算下一时刻数据包的发送延迟,基于所述发送延迟计算新的速率调整参数,并将新的速率调整参数推送至客户端的发送线程,客户端的发送线程一旦取得新的速率调整参数就发送至服务器端;所述根据预定义的拥塞控制策略进行信道拥塞状态判断,根据当前信道拥塞状态,计算下一时刻数据包的发送延迟,基于所述发送延迟计算新的速率调整参数,进一步包括:在客户端对丢包率和数据传输成功率参数进行统计,采用加权平滑处理,获取视频传输过程中第i个时间间隔内的数据传输成功率Ri和丢包率Pi分别为:Ri=ΣN-1j=0(μjDi-j/Ti-j),其中ΣN-1j=0(μj)=1;

Pi=ΣN-1j=0(αjLPi-j/SPi-j),其中ΣN-1j=0(αj)=1;

其中N表示计算上述参数所需的时间间隔个数,αj和μj表示权重系数;LPi-j为第(i-j)时间间隔内丢包率,SPi-j为第(i-j)时间间隔内发送端发送的数据包数,Di-j表示第(i-j)时间间隔内统计的接收视频数据量,Ti-j表示第(i-j)时间间隔的准确值;

设定常量参数,包括设置视频传输过程中所能容忍的丢包率最高阈值Plmax以及视频流畅传输的最低丢包率阈值Plmin;最大视频数据发送速率Rmax以及最小视频数据发送速率Rmin;

当Pi>Plmax时,降低视频数据速率来保障视频客户端的QoS,确定网络连续超载次数k,初始化参数β0;

然后计算速率降低因子:βk=βk-1(1-0.6m)2

其中丢包率差值因子m为:m=Pi-Plmax

最后,合适的视频数据传输速率为:Rnew=MAX{βkRi-50,Rmin};

当Pi

δ=0.2emR0+60

式中:R0为预设的速率增长因子,此时预测发送速率为:

Rnew=MIN{δ+Ri,Rmax}

当Plmin

通过设定速率切换阈值Rth来降低系统速率切换开销,在预测新传输速率后,需要比较新速率Rnew与前一次速率调整值Rlast,只有当|Rnew-Rlast|>Rth时,新的速率调整才有效;

所述视频数据服务器端和客户端分别开启两个线程,建立对应两个不同的端口的两个套接字,分别进行视频数据和控制信号的传输。

说明书 :

一种用于处理网络数据传输的方法和装置

技术领域

[0001] 本发明涉及网络传输和通信,特别涉及一种视频传输方法和装置。

背景技术

[0002] 近年来,随着互联网和信息技术的高速发展,以及服务器与互联网的结合,如何对网络协议进行优化,在有限的网络带宽下高效地传输视频数据,并且避免造成网络拥塞,成为了媒体服务器的发展方向之一。视频数据在互联网上的传输依赖网络传输协议,包括TCP和UDP传输协议,如果用不具备任何排序、重传和拥塞控制的协议来传输视频数据,网络带宽会被迅速耗尽,而且随着信道拥塞状态的恶化,丢包数的增加也会影响传输质量。现有的拥塞控制不适合硬件条件有限的嵌入式设备,没有根据嵌入式设备的特点进行相应调整,无法满足嵌入式设备中视频数据的实时性和准确性。因此,针对相关技术中所存在的上述问题,目前尚未提出有效的解决方案。

发明内容

[0003] 为解决上述现有技术所存在的问题,本发明提出了一种用于处理网络数据传输的方法,包括:
[0004] 视频数据服务器端和客户端分别开启两个线程,建立对应两个不同的端口的两个套接字,分别进行视频数据和控制信号的传输;
[0005] 服务器端的发送线程从缓冲区中获取待发送的视频数据,添加时间戳和序号后发送给客户端,检查是否获得了新的速率调整参数;并在获得了新的速率调整参数时修改发送延迟;
[0006] 服务器端的接收线程接收来自客户端的速率调整数据,当接收到新的速率调整参数时,立即通知服务器端的发送线程修改发送延迟;
[0007] 客户端的接收线程接收来自服务器端的视频数据,然后获取其视频内容数据、序号和时间戳,根据预定义的拥塞控制策略进行信道拥塞状态判断,根据当前信道拥塞状态,计算下一时刻数据包的发送延迟,基于所述发送延迟计算新的速率调整参数,并将新的速率调整参数推送至客户端的发送线程,客户端的发送线程一旦取得新的速率调整参数就发送至服务器端。
[0008] 优选地,所述根据预定义的拥塞控制策略进行信道拥塞状态判断,根据当前信道拥塞状态,计算下一时刻数据包的发送延迟,基于所述发送延迟计算新的速率调整参数,进一步包括:
[0009] 在客户端对丢包率和数据传输成功率参数进行统计,采用加权平滑处理,获取视频传输过程中第i个时间间隔内的数据传输成功率Ri和丢包率Pi分别为:
[0010] Ri=ΣN-1j=0(μjDi-j/Ti-j),其中ΣN-1j=0(μj)=1;
[0011] Pi=ΣN-1j=0(αjLPi-j/SPi-j),其中ΣN-1j=0(αj)=1;
[0012] 其中N表示计算上述参数所需的时间间隔个数,αj和μj表示权重系数;LPi-j为第(i-j)时间间隔内丢包率,SPi-j为第(i-j)时间间隔内发送端发送的数据包数,Di-j表示第(i-j)时间间隔内统计的接收视频数据量,Ti-j表示第(i-j)时间间隔的准确值;
[0013] 设定常量参数,包括设置视频传输过程中所能容忍的丢包率最高阈值Plmax以及视频流畅传输的最低丢包率阈值Plmin;最大视频数据发送速率Rmax以及最小视频数据发送速率Rmin;
[0014] 当Pi>Plmax时,降低视频数据速率来保障视频客户端的QoS,确定网络连续超载次数k,初始化参数β0;然后计算速率降低因子:βk=βk-1(1-0.6m)2
[0015] 其中丢包率差值因子m为:m=Pi-Plmax
[0016] 最后,合适的视频数据传输速率为:Rnew=MAX{βkRi-50,Rmin};
[0017] 当Pi
[0018] 式中:t表示放大倍数;然后计算速率增加因子δ:
[0019] δ=0.2emR0+60
[0020] 式中:R0为预设的速率增长因子,此时预测发送速率为:
[0021] Rnew=MIN{δ+Ri,Rmax}
[0022] 当Plmin
[0023] 通过设定速率切换阈值Rth来降低系统速率切换开销,在预测新传输速率后,需要比较新速率Rnew与前一次速率调整值Rlast,只有当|Rnew-Rlast|>Rth时,新的速率调整才有效。
[0024] 根据本发明的另一方面,提供了一种用于处理网络数据传输的装置,包括视频数据服务器端和客户端,所述服务器端从缓冲区中获取待发送的视频数据,添加时间戳和序号后发送给客户端,接收来自客户端的反馈,检查是否获得了新的速率调整参数,并在获得了新的速率调整参数时修改发送延迟;
[0025] 所述客户端接收来自服务器端的视频数据,然后获取其视频内容数据、序号和时间戳,根据预定义的拥塞控制策略进行信道拥塞状态判断,根据当前信道拥塞状态,计算下一时刻数据包的发送延迟,基于所述发送延迟计算新的速率调整参数,并将新的速率调整参数发送至服务器端;
[0026] 所述数据服务器端和客户端分别开启两个线程,建立对应两个不同的端口的两个套接字,分别进行视频数据和控制信号的传输。
[0027] 本发明相比现有技术,具有以下优点:
[0028] 本发明提供了一种针对硬件条件有限的视频数据服务器的传输控制方法,提高了视频传输的实时性和有效性,传输速率得到有效调整,显著提高了QoS。

附图说明

[0029] 图1是根据本发明实施例的用于处理网络数据传输的方法的流程图。

具体实施方式

[0030] 下文与图示本发明原理的附图一起提供对本发明一个或者多个实施例的详细描述。结合这样的实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求书限定,并且本发明涵盖诸多替代、修改和等同物。在下文描述中阐述诸多具体细节以便提供对本发明的透彻理解。出于示例的目的而提供这些细节,并且无这些具体细节中的一些或者所有细节也可以根据权利要求书实现本发明。
[0031] 拥塞控制的目的就是控制网络吞吐量,从而实现低丢包率、低网络延迟和低抖动。对于视频数据服务器来说,远距离的广域网通信是它的一大特点,拥塞控制中应考虑到网络延迟的问题,同时为了减轻网络负担,用单程延迟代替往返延迟。在发送方包头添加时间戳,在接收方根据发送方的时间戳和接收时间就可计算出网络延迟,从而计算延迟。本发明所改进的拥塞控制算法是在数据包头添加序号和时间戳,通过测定丢包率、网络延迟来对信道拥塞状态进行估计与判断。
[0032] 本发明的一方面提供了一种用于处理网络数据传输的方法。图1是根据本发明实施例的用于处理网络数据传输的方法流程图。
[0033] 嵌入式媒体服务器数据速率调整的机制是,在每两个数据包或者每两组数据包的发送之间经历一段时间的发送延迟,通过发送延迟的长短控制网络吞吐量。速率调整机制都是基于数据传输速率的,即通过公式计算下一时刻单位时间应发送的数据量,然后进行调整。这样速率调整的机制对于CPU处理性能较高、系统时钟精度较高的计算机来说是准确且有效的,但是对于系统资源有限的视频数据服务器来说是不合适的。综上所述,对于基于嵌入式设备的视频数据服务器来说,不应采取基于传输速率的调整机制,而应采取基于发送延迟的速率调整机制,既可以简化代码复杂程度,又可以有效控制吞吐量。
[0034] 本发明采用双阈值,并且改进了信道拥塞状态的判定方法。针对丢包率和网络延迟这两个拥塞指标,分别采用基于丢包率的拥塞控制方法和基于网络延迟的拥塞控制方法。
[0035] 下面介绍基于丢包率的拥塞控制算法流程。
[0036] (1)根据丢包率公式计算第1时刻的丢包率ρ(1),以此作为第1时刻的丢包率估计值P(1)。然后计算第2时刻的丢包率ρ(2),通过平滑公式计算第2时刻的丢包率估计值。所述平滑公式如下:
[0037] P(t)=(1-α)·P(t-1)+α·ρ(t)
[0038] 式中α为平滑系数,是0-1之间的常数。当α接近1的时候,丢包率估计值P(t)接近丢包率ρ(t),平滑效果不明显;当α接近0的时候,丢包率估计值P(t)接近上一时刻的丢包率估计值P(t-1),过于平稳,无法及时跟踪当前丢包率。所以,应根据不同的需要,选择不同的α。在本实施例中,为了兼顾实时性与稳定性,平滑系数取0.5。
[0039] (2)为了简化计算,将丢包率估计值P(t)进行正则化,使计算出的丢包率等级L(t)为0-1之间的数值。公式如下:
[0040] L(t)=P(t)/β
[0041] 式中β为可容忍的最大丢包率,此值根据不同需求预先选择。在本发明中选3%作为可容忍的最大丢包率。
[0042] (3)采用基于发送延迟的方法对传输速率进行调整:在每两个数据包之间间隔一个发送延迟,或两组数据包(每组有若干个数据包)之间间隔一个发送延迟。发送延迟的参数D(t)的范围是[Dl,Dh],其中Dl和Dh需要根据芯片性能、操作系统精度以及具体任务要求而选择。Dl和Dh计算公式如下:
[0043] Dl=Mave/Mh
[0044] Dh=Mave/Ml
[0045] 式中Mh和Ml分别为单位时间内系统所允许的最大和最小数据传输量,Mave为每个或每组数据包大小。
[0046] (4)拥塞情况的判断:设定两个拥塞阈值Lh和Ll,且0
[0047] 情况1:L(t)≥Lh且L(t-1)
[0048] d=(Dh-Dl)·(L(t)-Lh)/(1-Lh)
[0049] D(t)=min{D(t)+d,Dh}
[0050] 情况2:L(t)≥L(t-1)≥Lh,即t-1时刻已进入拥塞状态,t时刻拥塞程度比t-1时刻更严重,应通过增加发送延迟来降低传输速率。
[0051] d=(Dh-Dl)·(L(t)-L(t-1))/(1-Lh)
[0052] D(t)=min{D(t)+d,Dh}
[0053] 情况3:L(t)
[0054] d=(Dh-Dl)·(Ll-L(t))/Ll
[0055] D(t)=max{D(t)-d,Dl}
[0056] 情况4:除了以上3种情况的其他情况,不需要作任何速率调整。即D(t)=D(t)[0057] 基于网络延迟的拥塞控制算法和基于丢包率的拥塞控制算法基本相同,仅需要用相应的网络延迟代替丢包率,然后代入以上公式计算即可。
[0058] (1)根据网络延迟值公式计算第1时刻的网络延迟γ(1),以此作为第1时刻的网络延迟估计值R(1)。然后计算第2时刻的网络延迟γ(2),通过平滑公式计算第2时刻的网络延迟估计值。所述平滑公式如下:
[0059] R(t)=(1-θ)·R(t-1)+θ·γ(t)
[0060] 式中θ为平滑系数,是0-1之间的常数。当θ接近1的时候,网络延迟估计值R(t)接近网络延迟γ(t),平滑效果不明显;当θ接近0的时候,网络延迟估计值R(t)接近上一时刻的网络延迟估计值R(t-1),过于平稳,无法及时跟踪当前网络延迟。所以,应根据不同的需要,选择不同的θ。在本实施例中,为了兼顾实时性与稳定性,平滑系数取0.5。
[0061] (2)为了简化计算,将网络延迟估计值R(t)进行正则化,使计算出的网络延迟等级M(t)为0-1之间的数值。公式如下:
[0062] M(t)=R(t)/τ
[0063] 式中τ为可容忍的最大网络延迟,此值根据不同需求预先选择。在本发明中选3%作为可容忍的最大网络延迟。
[0064] (3)采用基于发送延迟的方法对传输速率进行调整:在每两个数据包之间间隔一个发送延迟,或两组数据包(每组有若干个数据包)之间间隔一个发送延迟。发送延迟的参数D(t)的范围是[Dl,Dh],其中Dl和Dh需要根据芯片性能、操作系统精度以及具体任务要求而选择。Dl和Dh计算公式如下:
[0065] Dl=Mave/Mh
[0066] Dh=Mave/Ml
[0067] 式中Mh和Ml分别为单位时间内系统所允许的最大和最小数据传输量,Mave为每个或每组数据包大小。
[0068] (4)拥塞情况的判断:设定两个拥塞阈值Lh和Ll,且0
[0069] 情况1:M(t)≥Lh且M(t-1)
[0070] d=(Dh-Dl)·(M(t)-Lh)/(1-Lh)
[0071] D(t)=min{D(t)+d,Dh}
[0072] 情况2:M(t)≥M(t-1)≥Lh,即t-1时刻已进入拥塞状态,t时刻拥塞程度比t-1时刻更严重,应通过增加发送延迟来降低传输速率。
[0073] d=(Dh-Dl)·(M(t)-M(t-1))/(1-Lh)
[0074] D(t)=min{D(t)+d,Dh}
[0075] 情况3:M(t)
[0076] d=(Dh-Dl)·(Ll-M(t))/Ll
[0077] D(t)=max{D(t)-d,Dl}
[0078] 情况4:除了以上3种情况的其他情况,不需要作任何速率调整。即D(t)=D(t)[0079] 针对局域网和广域网的不同网络环境,将以上两种拥塞控制算法以“或”的关系整合起来,就可实现对网络拥塞程度的判断和控制。
[0080] 具有拥塞控制的网络传输是一个闭环,网络连接涉及两个端口的不同类型数据的收发。视频数据服务器端和客户端都需要开启两个线程,建立两个套接字,对应两个不同的端口,分别进行视频数据和控制信号的传输。
[0081] 在服务器端,服务器端的发送线程从缓冲区中获取待发送的视频数据,添加时间戳和序号后发送,然后检查是否获得了新的速率调整参数。如果获得,则修改发送延迟;否则,按照之前的参数进行发送延迟。接收线程接收来自客户端的速率调整数据,一旦接收到新的速率调整参数,立即通知发送线程修改发送延迟。
[0082] 在客户端,客户端的接收线程接收来自服务器端的视频数据,然后取其视频内容数据、序号和时间戳,按照上文提到的拥塞控制算法进行信道拥塞状态判断,并且计算处新的速率调整参数,推送至发送线程,发送线程一旦取得新的速率调整参数就发送至服务器端。
[0083] 根据本发明另一实施例,传输速率控制方法所需的网络预测量包括丢包率和数据传输成功率,在客户端对上述参数进行统计。为了防止由于参数获取周期较短而导致的抖动,采用加权平滑处理。
[0084] 设Ri和Pi分别表示视频传输过程中第i个时间间隔内的数据传输成功率和丢包率。Ri和Pi计算方法如下:
[0085] Ri=ΣN-1j=0(μjDi-j/Ti-j),其中ΣN-1j=0(μj)=1;
[0086] Pi=ΣN-1j=0(αjLPi-j/SPi-j),其中ΣN-1j=0(αj)=1;
[0087] 以上公式中N表示计算上述两参数所需的时间间隔个数,αj和μj表示权重系数;LPi-j为第(i-j)时间间隔内丢包率,SPi-j为第(i-j)时间间隔内发送端发送的数据包数。Di-j表示第(i-j)时间间隔内统计的接收视频数据量,Ti-j表示第(i-j)时间间隔的准确值。
[0088] 根据本实施例的速率控制机制为:在网络轻载时,由丢包率决定的变常数加性因子和常量加性因子决定速率增长幅度,在网络超载时,由丢包率决定的变常数乘性因子和常量减性因子决定速率降低幅度。
[0089] 自适应速率调整的步骤如下:
[0090] 1)设定常量参数。视频传输过程中所能容忍的丢包率最高阈值Plmax以及视频流畅传输的最低丢包率阈值Plmin;最大视频数据发送速率Rmax以及最小视频数据发送速率Rmin;
[0091] 2)判断信道拥塞状态。信道拥塞状态能够通过比较实测丢包率和丢包率阈值来确定。当Pi>Plmax,无线网络被判定为超载;当Pi
[0092] 3)网络超载处理。系统应当降低视频数据速率来保障视频客户端的QoS。首先确定2
网络连续超载次数k,初始化参数β0;然后计算速率降低因子:βk=βk-1(1-0.6m)[0093] 其中丢包率差值因子为:m=Pi-Plmax
[0094] 最后,合适的视频数据传输速率为:Rnew=MAX{βkRi-50,Rmin}
[0095] 4)网络轻载处理。当网络轻载时,需要增加发送端发送速率以提高网络利用率。首先计算丢包率差值因子:m=t(Plmin-Pi)
[0096] 式中:t表示放大倍数;然后计算速率增加因子:
[0097] δ=0.2emR0+60
[0098] 式中:R0为预设的速率增长因子。此时预测发送速率为:
[0099] Rnew=MIN{δ+Ri,Rmax}
[0100] 为了防止网络的微小抖动导致系统传输速率频繁切换,从而造成不必要的系统开销。通过设定速率切换阈值Rth来降低系统速率切换开销。在预测新传输速率后,需要比较新速率Rnew与前一次速率调整值Rlast,只有当|Rnew-Rlast|>Rth时,新的速率调整才被认为是有效的。
[0101] 综上所述,本发明提供了一种针对硬件条件有限的视频数据服务器的传输控制方法,提高了视频传输的实时性和有效性,传输速率得到有效调整,显著提高了QoS。
[0102] 显然,本领域的技术人员应该理解,上述的本发明的各模块或各步骤可以用通用的计算系统来实现,它们可以集中在单个的计算系统上,或者分布在多个计算系统所组成的网络上,可选地,它们可以用计算系统可执行的程序代码来实现,从而,可以将它们存储在存储系统中由计算系统来执行。这样,本发明不限制于任何特定的硬件和软件结合。
[0103] 应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。