CN100373890C - 一种解决网络抖动的方法 - Google Patents
一种解决网络抖动的方法 Download PDFInfo
- Publication number
- CN100373890C CN100373890C CNB2004100338936A CN200410033893A CN100373890C CN 100373890 C CN100373890 C CN 100373890C CN B2004100338936 A CNB2004100338936 A CN B2004100338936A CN 200410033893 A CN200410033893 A CN 200410033893A CN 100373890 C CN100373890 C CN 100373890C
- Authority
- CN
- China
- Prior art keywords
- packet
- depth
- dithering cache
- thread
- degree
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 title claims abstract description 61
- 230000005540 biological transmission Effects 0.000 claims abstract description 20
- 238000004904 shortening Methods 0.000 claims abstract description 10
- 230000015572 biosynthetic process Effects 0.000 claims description 57
- 230000008859 change Effects 0.000 abstract description 10
- 230000000694 effects Effects 0.000 abstract description 3
- 230000002349 favourable effect Effects 0.000 abstract 1
- 230000008569 process Effects 0.000 description 5
- 230000003068 static effect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000035800 maturation Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种解决网络抖动的方法,在数据包接收端利用抖动缓存队列对接收到的数据包进行缓存,以解决网络抖动,该方法包括以下步骤:步骤A.判断当前是否需要增长或缩短抖动缓存深度;步骤B.在数据包的网络传输过程中,根据步骤A的判断结果,通过调整抖动缓存队列出队线程的定时器定时间隔实现动态增长或缩短抖动缓存深度,数据包的接收端按照增长或缩短后的抖动缓存深度对接收到的数据包进行缓存,以解决网络抖动,然后返回步骤A直至数据包传输完毕。该方法能够根据网络质量状况的变化动态调整抖动缓存深度来解决网络抖动,适应网络质量状况不断变化的情况,具有良好的应用效果。
Description
技术领域
本发明属于网络传输技术领域,尤其涉及一种解决网络抖动的方法。
背景技术
当前,随着互联网(INTERNET)的普遍使用及其自身技术的不断成熟,在网络上进行音视频交流已经成为可能。然而,当前网络的质量状况并不能达到充分满足音视频交流的需要,网络中固有的延时、网络抖动、丢包、乱序等问题会对网络上所进行的音视频交流造成不可避免的影响,从而直接影响到音视频交流的服务质量(Qos)。
在以上所述对音视频交流造成影响的各个因素中,网络抖动是较常见的一个。网络抖动指的是网络中相邻数据包的延时变化,以实现音视频交流的即时通讯(IM)为例,IM软件的发送端以相同的时间间隔,如10毫秒(ms),将语音包和视频包发送到INTERNET上,通过INTERNET再将这些数据包发送到IM软件的接收端,如果INTERNET的网络质量状况能够达到充分满足音视频交流的需要,则这些数据包在到达IM软件接收端时,仍会保持发送时的时间间隔,从而使得接收端所播放的语音和视频与发送端发送的语音和视频相一致。但是,由于现有网络质量状况大多难于满足音视频交流的需要,因此,发送端所发送的数据包会在网络传输的过程中,在网络上分别经历不同的路由和网络拥塞,从而造成各个数据包在网络中经历的延时各不相同,在此情况下,数据包到达IM软件接收端的顺序和时间间隔不再与发送时的顺序和时间间隔完全一致,从而造成接收端所播放的语音和视频发生很大的变化,直接影响到音视频交流的服务质量。
在现有技术中,为了解决如上所述网络抖动所造成的影响,提出了一种利用抖动缓存(JB)解决网络抖动的方法。参见图1,该方法在数据包的接收端增加一个以JB队列实现的抗抖动机制,该JB队列由若干个单元格组成,利用实时传输协议(RTP)数据包的时戳域标志JB队列的每个单元格,每个单元格用于缓存一个接收到的数据包,数据包到达接收端后通过JB队列的入队线程入队,在缓存一段时间的延时后,通过JB队列的出队线程出队,从而播放该数据包。接收端通过该JB队列将接收到的数据包进行一定时间的缓存,从而达到延时这些数据包的目的,使得接收端能够以与发送端相同的时间间隔播放语音和视频,消除网络抖动对音视频交流的Qos所造成的影响。在该种利用JB解决网络抖动的方法中,涉及到两个概念:JB深度和JB长度。JB深度的定义为:第一个数据包到达JB队列的时间与该包被播放的时间之差,其中,该包被播放的时间也就是该包离开JB队列的时间,图1所示JB队列的JB深度为20ms;JB长度的定义为:JB队列的物理长度,该JB长度用于表示JB队列容纳提早到达的语音包的能力,为了能够实现对于数据包的延时,JB长度应设置为大于或者等于JB深度。在该现有技术所采用的解决网络抖动的方法中,JB深度始终不变,因此,该方法也称为利用静态JB解决网络抖动的方法。下面参见附图对该方法的具体实现加以描述。
参见图2,在以时间为横坐标、数据包序号为纵坐标的坐标系中,以阶梯曲线t0表示发送端发送数据包的情况,该等间距的阶梯曲线t0表示发送端以相同的时间间隔发送数据包,由于网络抖动的影响,会造成数据包到达接收端后不再是相同的时间间隔,表现在图2所示的坐标系中,用于表示接收端接收数据包情况的曲线为一条不等间距的阶梯曲线t1,该阶梯曲线t1表示各个数据包到达接收端的时间间隔各不相同。利用静态JB解决网络抖动的方法根据第一个包到达的时间t1和事先设定的JB深度确定第一个包的播放时间,在第一个包播放时间确定之后,根据发送端发送数据包时的时间间隔,其后续包的播放时间也随之确定,由此确定得到了图2中的虚线t2,后续包就按照虚线t2所示时间进行播放。同理,根据预先设定的JB深度的不同,还会得到虚线t3,在此情况下,后续包按照虚线t3所示的时间进行播放。
该方法虽然能够解决网络抖动问题,但该方法仍然存在缺陷。参见图2,当一个数据包到达接收端的时间早于根据JB深度所确定的播放时间时,也就是表示该数据包到达接收端情况的坐标点在根据JB深度所确定的虚线左侧时,则表示该数据包提早到达,而当表示数据包到达接收端情况的坐标点在根据JB深度所确定的虚线右侧时,则表示该数据包迟到,错过了该数据包应该播放的时间,该数据包被视为丢包而不再播放;如果采用图2中虚线t2所示的JB深度t2-t1来解决网络抖动,则在接收端接收数据包的过程中,由于该JB深度不变,会导致了图中第6、7、8个数据包成为丢包,造成数据包的丢失;而如果采用虚线t3所示的JB深度t3-t1来解决网络抖动,虽然不会造成数据包的丢失,但对前5个数据包会造成不必要的较大延时。
由此可见,采用现有技术中利用静态JB解决网络抖动的方法,虽然能够解决网络抖动的问题,但是具有如下缺点:
1、当前网络状况时不断发生变化的,数据包在网络传输过程中的延时也会根据这些变化而改变,而网络状况的变化以及由此而产生的数据传输的延时改变又是难于事先预知的,因此,现有技术采用固定JB深度解决网络抖动的方法难以适应网络状况不断变化的情况,并且固定的JB深度也不可能完全满足各种网络状况下解决网络抖动的需要;如图2所示,如果JB深度设定过小,如虚线t2所示,则会导致数据包丢失率增加,而如果JB深度设定过大,如虚线t3所示,则会导致数据包不必要的延时,而丢包率和延时正是衡量数据包传输的两个重要参数,这两个参数的增大都会降低数据包传输的质量,进而影响到音视频交流的Qos;
2、由于该方法采用不变的JB深度,并用该JB深度结合第一个数据包的到达时间确定后续包的播放时间,因此,后续包的播放时间会受到第一个数据包到达时间的影响;参见图2,该图中的虚线是由第一个数据包到达时间和固定的JB深度所确定的,后续包按照该虚线确定的播放时间进行播放,而第一个数据包的到达时间是随机的,因此而由于该第一个数据包的提早到达或迟到都会影响到后续数据包的播放。
发明内容
有鉴于此,本发明的主要目的在于提供一种解决网络抖动的方法,该方法能够根据网络状况的变化而采用不同的JB深度来解决网络抖动,从而减少网络中各种状况对数据包传输的影响,提高音视频交流的Qos。
本发明为一种解决网络抖动的方法,在数据包接收端利用抖动缓存队列对接收到的数据包进行缓存,以解决网络抖动,其特征在于,该方法包括以下步骤:
步骤A:判断当前是否需要增长或缩短抖动缓存深度;
步骤B:在数据包的网络传输过程中,根据步骤A的判断结果,通过微调量调整抖动缓存队列出队线程的定时器定时间隔实现动态增长或缩短抖动缓存深度,数据包的接收端按照增长或缩短后的抖动缓存深度对接收到的数据包进行缓存,以解决网络抖动,然后返回步骤A直至数据包传输完毕。
其中,步骤A包括:
抖动缓存队列的入队线程判断每个到达的数据包是否为迟到包,如果是,则判断得到需要增长抖动缓存深度。
其中,步骤A包括:
抖动缓存队列的出队线程判断每个出队的数据包在抖动缓存队列中缓存的时间是否超过了数据包在抖动缓存队列中缓存的最大延时值,如果是,则判断得到需要缩短抖动缓存深度。
其中,所述抖动缓存队列的出队线程判断每个出队的数据包在抖动缓存队列中缓存的时间是否超过了数据包在抖动缓存队列中缓存的最大延时值包括:
在抖动缓存队列的入队线程中,记录各个数据包的入队时间,在抖动缓存队列的出队线程中,记录当前出队的数据包的出队时间,计算该出队数据包的出队时间和入队时间的差值,得到该出队数据包在抖动缓存队列中的缓存时间,判断该缓存时间是否超过数据包在抖动缓存队列中缓存的最大延时值。
其中,该方法进一步包括:预先定义一个标志变量,并为该标志变量设置初始值;
步骤A进一步包括:步骤A判断得到需要增长抖动缓存深度时,用第一常数为该标志变量赋值,步骤A判断得到需要缩短抖动缓存深度时,用第二常数为该标志变量赋值;
步骤B根据步骤A的判断结果动态增长或缩短抖动缓存深度包括:判断标志变量的值,如果该值为第一常数,则执行所述增长抖动缓存深度,然后进一步将标志变量恢复为初始值,如果该值为第二常数,则执行所述缩短抖动缓存深度,然后进一步将标志变量恢复为初始值。
其中,步骤B包括:
步骤B1:数据包接收端的出队线程使出队线程指针当前所指向的数据包出队,然后,如果步骤A的判断结果为需要增长抖动缓存深度,则执行步骤B2,如果步骤A的判断结果为需要缩短抖动缓存深度,则执行步骤B4;
步骤B2:出队线程定时器的定时间隔增大一个微调量;
步骤B3:在经过步骤B2中进行微调后的定时间隔之后,出队线程定时器调用出队线程,使出队线程指针当前所指向的数据包出队,然后执行步骤B6;
步骤B4:出队线程定时器的定时间隔减小一个微调量;
步骤B5:在经过步骤B4中进行微调后的定时间隔后,出队线程定时器调用出队线程,使出队线程指针当前所指向的数据包出队,然后执行步骤B6;
步骤B6:出队线程定时器的定时间隔恢复为原定时间隔,然后返回步骤A直至数据包传输完毕。
其中,以系统最小时钟精度作为所述微调量。
其中,以基于系统最小时钟精度的任意值作为所述微调量。
其中,该方法进一步包括:预先设定所述微调量的值。
其中,该方法进一步包括:改变所述微调量的值。
其中,所述数据包接收端为即时通讯软件的接收端。
其中,所述数据包为语音包和/或视频包。
可见,本发明具有如下有益效果:
1、由于本发明所提供的方法能够根据网络的当前质量状况动态调整JB深度,再利用调整后的JB深度解决网络抖动,因此,使得该方法能够适应网络质量状况不断变化的情况,减少丢包或数据包不必要的延时,从而提高音视频交流的Qos;
2、本发明所提供的方法在进行动态JB调整的过程中,通过增加或减小出队线程定时器的定时间隔,从而实现JB深度的调整,采用此种方式,能够提高调整JB深度的精度,进而使得所调整的JB深度能够达到系统的最小时钟精度,大大提高了该方法消除网络抖动的效果;
3、该方法在判断网络质量状况时,通过简单判断是否有迟到包或者数据包在JB缓存中的延时是否超过了数据包在JB队列中缓存的最大延时来确定是否需要增长或缩短JB深度,以此方式进行判断,不但能够真实反映出网络的当前质量状况,而且减少了大量的统计计算,有利于该方法的实际应用;
4、由于该方法仅通过调整数据包接收端的出队线程定时器的定时间隔来在进行JB深度调整,因此,可消除由于数据包接收端和发送端时钟不同步而带来的对消除网络抖动所造成的负面影响。
附图说明
图1为JB队列的示意图。
图2为显示现有技术中利用静态JB解决网络抖动的方法中,发送数据包和接收数据包情况的示意图。
图3为实现本发明的流程图。
图4为本发明实施例中,实现JB深度调整的流程图。
图5为本发明实施例中,进行JB增长时出队线程数据包出队的时序图。
图6为本发明实施例中,进行JB缩短时出队线程数据包出队的时序图。
具体实施方式
本发明为一种解决网络抖动的方法,该方法根据网络质量状况的变化动态调整JB深度,从而利用不同的JB深度解决不同网络质量状况下的网络抖动。
下面结合附图对本发明进行详细描述。
参见图3,实现本发明需要以下步骤:
步骤301:根据网络质量状况的变化,判断当前是否需要调整JB深度,如果是,则执行步骤302及其后续步骤,否则,返回步骤301,直至数据包传输完毕;
步骤302:在数据包的网络传输过程中,根据步骤301中的判断结果,通过调整JB队列入对线程的定时器定时间隔动态调整JB深度,按照调整后的JB深度对接收到的数据包进行缓存,以解决网络抖动,然后返回步骤301,直至数据包传输完毕。
下面对以上各步骤的具体实现进行详细描述。
一、步骤301的具体实现:
在本发明实施例中,通过如下方法判断网络的当前质量状况,其中,预先设置有标志变量AdjustFlag,用于表示网络的当前质量状况,该AdjustFlag的初始值为0;
判断1:
在JB队列的入队线程中判断每个到达的数据包是否为迟到包,如果是,则将预先定义的标志变量AdjustFlag设置为1,用以表示网络的当前质量状况需要增长JB深度;其中,得到如上所述判断结果的依据为:一旦入队线程中出现了迟到的数据包,则表明出现了网络抖动,该迟到的数据包的延时增大,对应的入队速度减缓,从而使得数据包进入JB队列的入队速度慢于该数据包离开JB队列的出队速度,此时,则需要增长JB深度,以相应的减缓数据包出队的速度,以解决网络抖动所带来的影响;
判断2:
在JB队列的出队线程中,判断当前出队的数据包在JB队列中缓存的时间是否超过了数据包在JB队列中缓存的最大延时值,如果是,表明该数据包在JB队列中的缓存时间过长,造成不必要的延时,需要通过缩短JB深度以调整延时,则将预先定义的标志变量AdjustFlag设置为-1,用以表示网络的当前质量状况需要缩短JB深度;该判断利用JB队列的入队线程和出队线程配合完成,其具体实现为:
在JB队列的入队线程中,分别记录各个数据包到达接收端的当前时间,也就是入队时间Ai,在JB队列的出队线程中,记录当前出队的数据包的出队时间Pi,其中,i表示数据包的序号,为自然数,出队线程计算当前出队的数据包在JB队列中缓存的时间Delayi=Pi-Ai,然后用预先设定的数据包在JB队列中缓存的最大延时值JB DELAY UP LIMIT与当前出队的数据包的Delayi值进行比较,判断当前出队的数据包的Delayi值是否大于JB DELAY UP LIMIT,如果是,则将预先定义的标志变量AdjustFlag设置为-1;其中,JB DELAY UP LIMIT可以根据实际的网上测试结果进行预先设置,其取值大小并不影响本发明的实现;
其中,以上的判断1由于以入队线程中是否出现了迟到的数据包来判断是否出现了网络抖动,因此,该判断只适用于对基于时戳的数据包进行判断,而对于基于序号的数据包,则无法实现该判断;而判断2由于以数据包在JB队列中缓存的时间是否超过了数据包在JB队列中缓存的最大延时值来进行判断,因此,适用于基于序号和时戳的数据包;
以上判断1和判断2可以先后执行,也可同时执行,其执行顺序并不影响本发明的实现,如果以上判断1和判断2所述的判断成立的情况均没有发生,则标志变量AdjustFlag仍然保持其初始值0不变;其中,在本发明其它实施例中,也可采用其它常数作为标志变量AdjustFlag的初始值、以及表示判断结果的值,并不影响本发明的实现。
二、步骤302的具体实现:
在本发明中,通过调整JB队列的入队速度和出队速度之间的相对速度来进行JB深度的调整,由于入队速度是由发送端和网络的当前质量状况决定的,对于接收端的JB缓存来说难于控制,因此,本发明中通过调整JB队列的出队速度来实现对JB深度的调整,在具体实现过程中,通过调整JB队列的出队线程定时器的定时间隔来实现对出队速度的调整,参见图4,其具体实现为:
步骤401:出队线程将出队线程指针当前指向的数据包出队播放,然后,检测标志变量AdjustFlag的值,如果该值为1,则执行步骤402,如果该值为-1,则执行步骤404;
步骤402:由于在步骤401中判断得到标志变量AdjustFlag为1,表明应当增长JB深度,因此,在本步骤中,将出队线程的定时器定时间隔增大一个微调量,从而实现JB深度的增长;其中,在本发明实施例中,定时器定时间隔为180ms,该微调量为一个预先设定的定值20ms,增大该微调量之后,出队线程的定时器定时间隔为200ms;在本发明其它实施例中,还可采用系统最小时钟精度作为微调量,也可采用其它基于系统最小时钟精度的任意时间作为该微调量,也可以将该微调量定义为一个可以改变的变量随时进行调整,微调量的设置方式并不影响本发明的实现;
步骤403:在经过步骤402中进行微调后的定时间隔之后,出队线程的定时器调用出队线程,将出队线程指针指向的数据包出队播放,然后执行步骤406;在本发明实施例中,出队线程的定时器经过200ms后将出队线程指针指向的数据包出队播放,然后执行步骤406;
步骤404:由于在步骤401中判断得到标志变量AdjustFlag为-1,表明应当缩短JB深度,因此,在本步骤中,将出队线程的定时器定时间隔减小一个微调量,从而实现JB深度的缩短;其中,在本发明实施例中,定时器定时间隔为180ms,该微调量为一个预先设定的定值20ms,减小该微调量之后,出队线程的定时器定时间隔为160ms;在本发明其它实施例中,还可采用系统最小时钟精度作为微调量,也可采用其它基于系统最小时钟精度的任意时间作为该微调量,也可以将该微调量定义为一个可以改变的变量随时进行调整,微调量的设置方式并不影响本发明的实现;
步骤405:在经过步骤404中进行微调后的定时间隔之后,出队线程的定时器调用出队线程,将出队线程指针指向的数据包出队播放;在本发明实施例中,出队线程的定时器经过160ms后将出队线程指针指向的数据包出队播放;
步骤406:出队线程定时器的定时间隔恢复为原定时间隔,标志变量AdjustFlag的值恢复为初始值,然后返回步骤301,直至数据包传输完毕;在本发明实施例中,出队线程定时器的定时间隔恢复为180ms,标志变量AdjustFlag的值恢复为0,然后返回步骤301,直至数据包传输完毕;
在本发明实施例中,利用如上步骤401~步骤406所述的流程进行JB深度调整,当需要通过增大或者减小定时器定时间隔来调整JB深度时,此种时间间隔的增大或减小只进行一次,执行完毕之后,时间间隔恢复原时间间隔,并且标志变量AdjustFlag的值恢复为0,以为下一次JB深度的调整做准备;图5和图6分别为本发明实施例中,进行JB增长和缩短时出队线程数据包出队的时序图,参见图5,在标志变量AdjustFlag为0时,ΔT不变仍为180ms,当标志变量AdjustFlag为1时,ΔT增加20ms,时间间隔成为200ms,定时器在经过200ms后再调用出队线程,并将时间间隔恢复为ΔT,标志变量AdjustFlag恢复为0,随后的数据包仍然按照原时间间隔ΔT出队;参见图6,在标志变量AdjustFlag为0时,ΔT不变仍为180ms,当标志变量AdjustFlag为-1时,ΔT减小20ms,时间间隔成为1600ms,定时器在经过160ms后再调用出队线程,并将时间间隔恢复为ΔT,标志变量AdjustFlag恢复为0,随后的数据包仍然按照原时间间隔ΔT出队;采用如上所述的方式,能够通过增加或减小定时器的定时间隔来改变一个数据包的延时时间,而该数据包的后续包仍然保持原时间间隔在接收端播放,由此,能够通过对一个数据包延时时间的改变而改变后续包的延时时间,同时不改变数据包之间的出队间隔,以达到解决网络抖动的目的,提高音视频交流的Qos;
其中,以上步骤302的具体实现所描述的方法,既适用于基于时戳的数据包也适用于基于序号的数据包。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种解决网络抖动的方法,在数据包接收端利用抖动缓存队列对接收到的数据包进行缓存,以解决网络抖动,其特征在于,该方法包括以下步骤:
步骤A:判断当前是否需要增长或缩短抖动缓存深度;
步骤B:在数据包的网络传输过程中,根据步骤A的判断结果,通过微调量调整抖动缓存队列出队线程的定时器定时间隔实现动态增长或缩短抖动缓存深度,数据包的接收端按照增长或缩短后的抖动缓存深度对接收到的数据包进行缓存,以解决网络抖动,然后返回步骤A直至数据包传输完毕。
2.根据权利要求1所述的方法,其特征在于,步骤A包括:
抖动缓存队列的入队线程判断每个到达的数据包是否为迟到包,如果是,则判断得到需要增长抖动缓存深度。
3.根据权利要求1所述的方法,其特征在于,步骤A包括:
抖动缓存队列的出队线程判断每个出队的数据包在抖动缓存队列中缓存的时间是否超过了数据包在抖动缓存队列中缓存的最大延时值,如果是,则判断得到需要缩短抖动缓存深度。
4.根据权利要求3所述的方法,其特征在于,所述抖动缓存队列的出队线程判断每个出队的数据包在抖动缓存队列中缓存的时间是否超过了数据包在抖动缓存队列中缓存的最大延时值包括:
在抖动缓存队列的入队线程中,记录各个数据包的入队时间,在抖动缓存队列的出队线程中,记录当前出队的数据包的出队时间,计算该出队数据包的出队时间和入队时间的差值,得到该出队数据包在抖动缓存队列中的缓存时间,判断该缓存时间是否超过数据包在抖动缓存队列中缓存的最大延时值。
5.根据权利要求1所述的方法,其特征在于,该方法进一步包括:预先定义一个标志变量,并为该标志变量设置初始值;
步骤A进一步包括:步骤A判断得到需要增长抖动缓存深度时,用第一常数为该标志变量赋值,步骤A判断得到需要缩短抖动缓存深度时,用第二常数为该标志变量赋值;
步骤B根据步骤A的判断结果动态增长或缩短抖动缓存深度包括:判断标志变量的值,如果该值为第一常数,则执行所述增长抖动缓存深度,然后进一步将标志变量恢复为初始值,如果该值为第二常数,则执行所述缩短抖动缓存深度,然后进一步将标志变量恢复为初始值。
6.根据权利要求1所述的方法,其特征在于步骤B包括:
步骤B1:数据包接收端的出队线程使出队线程指针当前所指向的数据包出队,然后,如果步骤A的判断结果为需要增长抖动缓存深度,则执行步骤B2,如果步骤A的判断结果为需要缩短抖动缓存深度,则执行步骤B4;
步骤B2:出队线程定时器的定时间隔增大一个微调量;
步骤B3:在经过步骤B2中进行微调后的定时间隔之后,出队线程定时器调用出队线程,使出队线程指针当前所指向的数据包出队,然后执行步骤B6;
步骤B4:出队线程定时器的定时间隔减小一个微调量;
步骤B5:在经过步骤B4中进行微调后的定时间隔后,出队线程定时器调用出队线程,使出队线程指针当前所指向的数据包出队,然后执行步骤B6;
步骤B6:出队线程定时器的定时间隔恢复为原定时间隔,然后返回步骤A直至数据包传输完毕。
7.根据权利要求6所述的方法,其特征在于,以系统最小时钟精度作为所述微调量。
8.根据权利要求6所述的方法,其特征在于,以基于系统最小时钟精度的任意值作为所述微调量。
9.根据权利要求6所述的方法,其特征在于,该方法进一步包括:预先设定所述微调量的值。
10.根据权利要求6所述的方法,其特征在于,该方法进一步包括:改变所述微调量的值。
11.根据权利要求1所述的方法,其特征在于,所述数据包接收端为即时通讯软件的接收端。
12.根据权利要求1所述的方法,其特征在于,所述数据包为语音包和/或视频包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100338936A CN100373890C (zh) | 2004-04-19 | 2004-04-19 | 一种解决网络抖动的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100338936A CN100373890C (zh) | 2004-04-19 | 2004-04-19 | 一种解决网络抖动的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1691634A CN1691634A (zh) | 2005-11-02 |
CN100373890C true CN100373890C (zh) | 2008-03-05 |
Family
ID=35346770
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100338936A Expired - Lifetime CN100373890C (zh) | 2004-04-19 | 2004-04-19 | 一种解决网络抖动的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100373890C (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5229042B2 (ja) * | 2009-03-25 | 2013-07-03 | 沖電気工業株式会社 | ジッタバッファ制御装置、方法及びプログラム、並びに情報処理装置 |
CN101924683B (zh) * | 2009-06-09 | 2013-04-24 | 华为技术有限公司 | 一种动态调整抖动缓存的方法、装置和电子设备 |
CN103036808B (zh) * | 2012-12-13 | 2015-04-29 | 四川九洲电器集团有限责任公司 | 一种去除网络抖动的方法及系统 |
CN104410587A (zh) * | 2014-11-13 | 2015-03-11 | 京信通信系统(中国)有限公司 | 一种接收缓冲区容量控制方法及装置 |
CN104506455B (zh) * | 2014-12-26 | 2017-11-14 | 深圳市兰丁科技有限公司 | 数据包排序去抖方法及装置 |
CN109118854A (zh) * | 2017-06-22 | 2019-01-01 | 格局商学教育科技(深圳)有限公司 | 一种全景沉浸式直播互动教学系统 |
CN109118855A (zh) * | 2017-06-22 | 2019-01-01 | 格局商学教育科技(深圳)有限公司 | 一种巨屏全息还原真实场景的网络教学系统 |
CN108696447A (zh) * | 2018-08-03 | 2018-10-23 | 中国航空工业集团公司雷华电子技术研究所 | 一种自适应调节dsp间数据流负载的方法 |
CN110113270B (zh) * | 2019-04-11 | 2021-04-23 | 北京达佳互联信息技术有限公司 | 网络通信的抖动控制方法、装置、终端及存储介质 |
CN110875860B (zh) * | 2020-01-20 | 2020-07-10 | 翱捷科技(上海)有限公司 | 一种处理网络抖动的方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1104958A2 (en) * | 1999-11-15 | 2001-06-06 | Siemens Information and Communication Networks Inc. | Jitter buffer adjustment algorithm |
CN1346198A (zh) * | 2000-09-30 | 2002-04-24 | 华为技术有限公司 | 一种ip语音数据包的抗丢包处理方法 |
US6683889B1 (en) * | 1999-11-15 | 2004-01-27 | Siemens Information & Communication Networks, Inc. | Apparatus and method for adaptive jitter buffers |
-
2004
- 2004-04-19 CN CNB2004100338936A patent/CN100373890C/zh not_active Expired - Lifetime
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1104958A2 (en) * | 1999-11-15 | 2001-06-06 | Siemens Information and Communication Networks Inc. | Jitter buffer adjustment algorithm |
US6683889B1 (en) * | 1999-11-15 | 2004-01-27 | Siemens Information & Communication Networks, Inc. | Apparatus and method for adaptive jitter buffers |
CN1346198A (zh) * | 2000-09-30 | 2002-04-24 | 华为技术有限公司 | 一种ip语音数据包的抗丢包处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1691634A (zh) | 2005-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6985501B2 (en) | Device and method for reducing delay jitter in data transmission | |
CN100373890C (zh) | 一种解决网络抖动的方法 | |
KR101590972B1 (ko) | 통신 네트워크에서의 전송 스케줄링 방법, 해당 통신 노드 및 컴퓨터 프로그램 생성물 | |
CN102014431B (zh) | 防抖动的数据传输方法、设备及系统 | |
CN100525281C (zh) | 语音传输过程中实现动态调整抖动缓存的方法 | |
CA2148601C (en) | Method and apparatus for constant bit rate traffic in fast packet networks | |
CN1996935B (zh) | 一种流媒体接收端缓冲区内数据包的动态调整方法 | |
CN101674486A (zh) | 一种流媒体音视频同步方法及系统 | |
CN101924683B (zh) | 一种动态调整抖动缓存的方法、装置和电子设备 | |
CN101175104B (zh) | 一种抖动缓存装置和抖动缓存管理方法 | |
CN107948103A (zh) | 一种基于预测的交换机pfc控制方法及控制系统 | |
GB2400521A (en) | An apparatus and a method for processing RTCP | |
US8243721B2 (en) | Jitter buffer and jitter buffer controlling method | |
CN101599905A (zh) | 一种实现流量整形令牌添加的方法、装置及系统 | |
CN102882809B (zh) | 一种基于报文缓存的网络限速方法及装置 | |
CN106851587A (zh) | 同频组网基站同步发送数据的方法及系统 | |
CN100426784C (zh) | 一种解决网络抖动的方法 | |
JP5768289B2 (ja) | ネットワークノード及びパケット管理方法 | |
US20020027923A1 (en) | IP gateway apparatus | |
CN101310462A (zh) | 根据接收到的分组流产生时钟信号 | |
CN101335796B (zh) | 解码调度方法和装置 | |
CN100484081C (zh) | 用于网络的等待时间管理 | |
JPH0515091B2 (zh) | ||
JP2000286851A (ja) | 通信制御装置 | |
JPS632439A (ja) | バ−スト通信方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CX01 | Expiry of patent term | ||
CX01 | Expiry of patent term |
Granted publication date: 20080305 |