CN1713613A - 一种解决网络抖动的方法 - Google Patents

一种解决网络抖动的方法 Download PDF

Info

Publication number
CN1713613A
CN1713613A CNA2004100498776A CN200410049877A CN1713613A CN 1713613 A CN1713613 A CN 1713613A CN A2004100498776 A CNA2004100498776 A CN A2004100498776A CN 200410049877 A CN200410049877 A CN 200410049877A CN 1713613 A CN1713613 A CN 1713613A
Authority
CN
China
Prior art keywords
packet
dithering cache
current
team
depth
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.)
Granted
Application number
CNA2004100498776A
Other languages
English (en)
Other versions
CN100426784C (zh
Inventor
吴波
王麒
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CNB2004100498776A priority Critical patent/CN100426784C/zh
Publication of CN1713613A publication Critical patent/CN1713613A/zh
Application granted granted Critical
Publication of CN100426784C publication Critical patent/CN100426784C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种解决网络抖动的方法,该方法包括:数据包接收端的抖动缓存指针队列的入队线程接收数据包,对接收到的数据包进行排序后将接收到的数据包插入抖动缓存指针队列的相应位置;抖动缓存指针队列的出队线程定时器以一定时间间隔触发出队线程,出队线程判断抖动缓存指针队列队头的数据包是否应该在当前触发时刻出队,如果是,则将该数据包出队;和,根据抖动缓存指针队列中的队尾数据包和队头数据包时戳值之差与当前抖动缓存深度的大小关系,以及根据数据包在抖动缓存指针队列中的缓存时间与该抖动缓存指针队列缓存数据包的最小延时量之间的关系,增大或缩小当前抖动缓存深度的操作。

Description

一种解决网络抖动的方法
技术领域
本发明属于网络传输技术领域,尤其涉及一种解决网络抖动的方法。
背景技术
当前,随着互联网(INTERNET)的普遍使用及其自身技术的不断成熟,在网络上进行音视频交流已经成为可能。然而,当前网络的质量状况并不能达到充分满足音视频交流的需要,网络中固有的延时、网络抖动、丢包、乱序等问题会对网络上所进行的音视频交流造成不可避免的影响,从而直接影响到音视频交流的服务质量(Qos)。
在以上所述对音视频交流造成影响的各个因素中,网络抖动是较常见的一个。网络抖动指的是网络中相邻数据包的延时变化,以实现音视频交流的即时通讯(IM)为例,IM软件的发送端以相同的时间间隔,如10毫秒(ms),将语音包和视频包发送到INTERNET上,通过INTERNET再将这些数据包发送到IM软件的接收端,如果INTERNET的网络质量状况能够达到充分满足音视频交流的需要,则这些数据包在到达IM软件接收端时,仍会保持发送时的时间间隔,从而使得接收端所播放的语音和视频与发送端发送的语音和视频相一致。但是,由于现有网络质量状况大多难于满足音视频交流的需要,因此,发送端所发送的数据包会在网络传输的过程中,在网络上分别经历不同的路由和网络拥塞,从而造成各个数据包在网络中经历的延时各不相同,在此情况下,数据包到达IM软件接收端的顺序和时间间隔不再与发送时的顺序和时间间隔完全一致,从而造成接收端所播放的语音和视频发生很大的变化,直接影响到音视频交流的服务质量。
在现有技术中,为了解决如上所述网络抖动所造成的影响,提出了一种利用抖动缓存(JB)解决网络抖动的方法。参见图1,该方法在数据包的接收端增加一个以JB队列实现的抗抖动机制,该JB队列由若干个单元格组成,利用实时传输协议(RTP)数据包的时戳域标志JB队列的每个单元格,每个单元格用于缓存一个接收到的数据包,数据包到达接收端后通过JB队列的入队线程入队,在相应的单元格中缓存一段时间,通过JB队列的出队线程出队,其中,JB队列的出队线程在定时器的控制之下执行出队操作,该定时器的定时间隔被设置为数据包在发送端的打包时长,定时器每隔该定时间隔触发一次出队线程,使相应单元格的数据包离开JB队列。在该方法中,将一个数据包到达JB队列的时间与该包离开JB队列的时间之差定义为JB深度,该包离开JB队列的时间也可称为该包被播放的时间。
在该现有技术的方法中,接收端通过JB队列将接收到的数据包进行一定时间的缓存,从而达到延时这些数据包的目的,使得接收端能够以与发送端相同的时间间隔播放语音和视频,消除网络抖动对音视频交流的Qos所造成的影响,但是,由于该方法利用RTP数据包的时戳域标志JB队列的每个单元格,JB队列中的每个单元格所代表的时间单位为每个数据包的打包时长,并且,控制JB队列出队线程执行出队操作的定时器的定时间隔也为打包时长,因此,要实现该现有技术的方法,发送端在与接收端进行通话之前必须将发送端的数据包打包时长发送给接收端,接收端需要根据打包时长确定JB队列中的单元格的时间长度以及定时器的定时间隔,而现有的即时通讯软件在通话建立之前并没有发送打包时长参数的功能,从而造成实现该现有技术较为困难。另外,在发送端打包时长发生变化时,发送端也需要将变化后的打包时长通知给接收端,接收端需要根据变化后的打包时长重新确定单元格时间长度以及定时器定时间隔,这些都造成了该现有技术实现起来比较困难和复杂。
发明内容
有鉴于此,本发明的主要目的在于提供一种解决网络抖动的方法,在该方法中,数据包接收端无需根据发送端的打包时长就可以实现利用JB队列对接收到的数据包进行缓存,从而消除网络抖动的影响;另外,在通讯过程中,发送端的打包时长发生变化时,接收端也无需根据打包时长的变化进行相应的调整。
为实现上述目的,本发明提供了一种解决网络抖动的方法,该方法包括:
数据包接收端的入队线程对接收到的数据包进行排序,并根据排序结果将接收到的数据包升序缓存,形成采用指针方式的抖动缓存指针队列;
抖动缓存指针队列的出队线程的定时器以一定时间间隔触发出队线程,每次触发出队线程,出队线程均判断抖动缓存指针队列队头的数据包是否应该在当前触发时刻出队,如果是,则将该数据包出队;
和,根据抖动缓存指针队列中的队尾数据包和队头数据包时戳值之差与当前抖动缓存深度的大小关系,以及根据数据包在抖动缓存指针队列中的缓存时间与该抖动缓存指针队列缓存数据包的最小延时量之间的关系,确定是否应该调整当前抖动缓存深度,并执行相应的调整当前抖动缓存深度的操作。
其中,抖动缓存指针队列的出队线程的定时器以发送端打包时长的一个公约数作为时间间隔触发出队线程。
其中,所述抖动缓存指针队列的入队线程对接收到的数据包进行排序为:
入队线程根据数据包的时戳值或序号值对数据包进行大小排序。
其中,所述数据包接收端的入队线程接收数据包之前,该方法进一步包括:
数据包接收端抖动缓存指针队列的入队线程判断接收到的数据包是否小于该抖动缓存指针队列当前播放的数据包,如果是,丢弃该数据包。
其中,如果抖动缓存指针队列的入队线程判断接收到的数据包小于该抖动缓存指针队列当前播放的数据包这一判断结果连续发生了预先设定的次数,则将抖动缓存指针队列中包括抖动缓存深度在内的各个参数恢复为初始值。
其中,所述抖动缓存指针队列的出队线程的定时器一定时间间隔触发出队线程,出队线程判断抖动缓存指针队列队头的数据包是否应该在当前触发时刻出队包括:
步骤A1:出队线程定时器在经过一个定时间隔后触发出队线程,和,为一个当前播放时戳值变量赋值,所赋的值为:该当前播放时戳值变量的当前值加上与所述定时间隔相对应的时戳值所得到的新值;
步骤A2:出队线程利用步骤A1中所述的当前播放时戳值变量,判断在当前触发时刻抖动缓存指针队列中队头的数据包是否应该出队,如果是,则执行步骤A3,否则,返回步骤A1;
步骤A3:出队线程将队头的数据包出队,并且,将队头的数据包的时戳值赋值给当前播放时戳值变量,然后再返回步骤A1,直至数据包传输过程结束。
其中,步骤A2包括:
判断当前播放时戳值变量是否等于队头的数据包的时戳值,如果是,则执行步骤A3;否则,则返回步骤A1。
其中,所述判断当前播放时戳值变量是否等于队头的数据包的时戳值进一步包括:判断当前播放时戳值变量是否大于队头的数据包的时戳值,如果是,则执行步骤A3;否则,则返回步骤A1。
其中,该方法进一步包括:
判断当前播放时戳值变量是否小于或等于队尾数据包的时戳值减去当前抖动缓存深度所得到的值,如果是,则执行步骤A3。
其中,所述根据抖动缓存指针队列中的队尾数据包和队头数据包时戳值之差与当前抖动缓存深度的大小关系,确定是否应该调整当前抖动缓存深度包括:
判断抖动缓存指针队列中的队尾和队头的数据包的时戳值之差是否大于当前抖动缓存深度,如果是,则确定得到应该增大当前抖动缓存深度,所述调整当前抖动缓存深度为增大当前抖动缓存深度。
其中,所述根据数据包在抖动缓存指针队列中的缓存时间与该抖动缓存指针队列缓存数据包的最小延时量之间的关系,确定是否应该调整当前抖动缓存深度包括:
判断每个数据包在抖动缓存指针队列中的缓存时间是否在一个时间段内均小于等于预先设置的抖动缓存队列缓存数据包的最小延时常量,如果是,则确定得到应该减小当前抖动缓存深度,所述调整当前抖动缓存深度为减小当前抖动缓存深度。
其中,所述增大当前抖动缓存深度进一步包括:丢弃队头的数据包。
其中,确定应该增大当前抖动缓存深度后,进一步判断当前抖动缓存是否小于预先设定的最大抖动缓存深度,如果是,则执行所述增大当前抖动缓存深度的操作。
其中,确定应该减小当前抖动缓存深度后,进一步判断当前抖动缓存是否大于预先设定的最小抖动缓存深度,如果是,则执行所述减小当前抖动缓存深度的操作。
可见,在本发明中,JB队列采用指针的方式缓存接收到的数据包,JB指针队列出队线程的定时器以发送端打包时长的一个公约数作为定时间隔触发出队线程,出队线程判断每个触发时刻是否应该将JB队列的队尾数据包出队,如果是,则将该数据包执行出队,以实现通过JB指针队列缓存数据包来消除网络抖动的目的。由于本发明采用以指针方式缓存数据包以及采用打包时长的一个公约数作为定时间隔触发出队线程,因此,数据包接收端能够在不知道发送端打包时长的情况下实现通过JB队列来消除网络抖动,并且,在数据包发送端打包时长发生变化时,也不会对接收端采用JB队列进行数据包缓存以消除网络抖动造成任何影响。
附图说明
图1为现有技术中的JB队列示意图。
图2为本发明中的JB队列示意图。
图3为本发明中实现JB队列中的数据包出队的流程图。
具体实施方式
本发明为一种解决网络抖动的方法,在该方法中,数据包接收端的JB队列采用指针的方式缓存接收到的数据包,定时器以打包时长的一个公约数作为定时间隔控制出队线程将数据包出队,从而实现数据包在JB队列中的缓存,以消除网络抖动的影响。
下面结合附图对本发明进行详细描述。
在本发明中,数据包接收端JB队列采用指针的方式缓存接收到的数据包,在JB队列中,采用队头指针和队尾指针分别指向JB指针队列中的队头和队尾;并且,JB指针队列的出队线程的定时器以打包时长的一个公约数作为定时间隔触发出队线程;实现本发明需要以下步骤:
步骤A:数据包接收端JB指针队列的入队线程接收数据包,对接收到的数据包进行大小排序,并根据排序结果将接收到的数据包插入JB指针队列的相应位置,使得从JB指针队列的队头开始至队尾为止按照数据包从小到大的顺序缓存各个数据包;
步骤B:JB指针队列的出队线程的定时器以发送端打包时长的一个公约数作为时间间隔触发出队线程,每次触发出队线程,出队线程均判断JB指针队列队头的数据包是否应该在当前触发时刻出队,如果是,则将该数据包出队,然后返回本步骤,直至数据包传输过程结束;否则,直接返回本步骤,直至数据包传输过程结束;
步骤C:根据JB指针队列中的队尾数据包和队头数据包之差与JB深度的大小关系,以及根据数据包在JB指针队列中的延时时间与最小JB深度之间的关系,确定是否应该增大或缩小当前JB深度,并执行相应的增大或缩小JB深度的操作;
其中,上述步骤A通过JB队列的入队线程得以实现,上述步骤B通过JB队列的出队线程得以实现,上述步骤C通过JB队列中的JB调整模块实现,且步骤A、步骤B和步骤C各自分别进行,其执行的先后顺序并不影响本发明的实现。
下面结合具体实施例,对上述步骤A、步骤B和步骤C的具体实现进行详细描述,其中,在以下所述的本发明实施例中,均预先设置有一个当前播放时戳变量CurrentOutTS,利用该变量记录JB队列出队线程当前播放的数据包的时戳值,JB队列的出队线程每次播放数据包时,均将该数据包的时戳值赋值给CurrentOutTS,以更新该变量;
一、步骤A的具体实现:
在本发明实施例中,JB指针队列的入队线程判断接收到的数据包的时戳值是否小于当前播放时戳变量CurrentOutTS,如果是,则表明该接收到的数据包为迟到包,丢弃该包,否则,将该接收到的数据包与JB指针队列中的其它各个数据包进行大小比较,根据比较结果将该数据包插入JB指针队列的相应位置,从而使得JB指针队列中的各个数据包按照从小到大呈升序排列;参见图2,在本发明实施例中,以LateTS指向该JB指针队列的队头,以EarlyTS指向该JB指针队列的队尾,数据包按照从小到大的顺序从LateTS开始至EarlyTS为止在JB指针队列中升序缓存;
其中,在本发明实施例中,通过比较数据包的时戳值来实现比较数据包的大小,在本发明其它实施例中,也可通过比较数据包的序号值来实现比较数据包的大小;
其中,在本发明实施例中,为了避免JB队列出现紊乱,JB指针队列具备自恢复功能功能,其具体实现为JB指针队列的入队线程进一步执行以下步骤:入队线程判断所接收到的数据包为迟到包这一事件是否连续发生了预定的次数,如果是,则重新启动JB指针队列,JB指针队列中包括JB深度在内的各个参数恢复为初始值;
二、步骤B的具体实现:
参见图2,通过定时器触发出队线程,该定时器每隔T毫秒触发一次出队线程,出队线程在判断得到JB队列中存在当前触发时刻应该出队的数据包之后,将队头的数据包出队;其中,作为定时器的定时间隔的T毫秒为发送端打包时长的一个公约数,可以根据实际情况取10毫秒、20毫秒作为定时器的定时间隔,在本发明实施例中,预先设定作为定时器定时间隔的T为10毫秒;在本发明其它实施例中,定时间隔T也可为其它的时间段,并不影响本发明的实现;
在进行了定时器定时间隔的设定之后,参见图3并结合图2,实现步骤B包括以下步骤:
步骤301:定时器在经过T毫秒的定时间隔后触发出队线程,同时,当前播放时戳变量CurrentOutTS增加与T毫秒相对应的时戳值,由于时戳的单位为1/8毫秒,因此,定时器每次触发时均按照公式(1)对CurrentOutTS赋值:
公式(1):CurrentOutTS=CurrentOutTS+T×8;
通过在定时器每次触发时按照公式(1)对CurrentOutTS赋值,能够使得CurrentOutTS与定时器始终保持同步,从而能够利用该CurrentOutTS判断在当前触发时刻JB队列队头的数据包是否应该出队;
步骤302:出队线程利用CurrentOutTS判断在当前触发时刻JB指针队列中队头的数据包是否应该出队,如果是,则执行步骤303,否则,返回步骤301;其中,在本发明实施例中,利用CurrentOutTS判断在当前触发时刻JB指针队列队头数据包是否应该出队的具体实现为:
判断1:判断CurrentOutTS是否等于LateTS指向的数据包的时戳值,如果是,则执行步骤303,以将队头的数据包出队;否则,则返回步骤301,以在下一个触发时刻继续判断队头数据包是否应该出队;由于CurrentOutTS始终与定时器保持同步,因此,如果CurrentOutTS等于LateTS指向的数据包的时戳值,则表明当前触发时刻相对于上次数据包出队的时刻已经经过了一个打包时长,该时刻应该将队头的数据包出队,如果CurrentOutTS不等于LateTS指向的数据包的时戳值,则表明当前触发时刻相对于上次数据包出队的时刻还没有经过一个打包时长,此时队头的数据包不应该出队;
在进行如上判断1的基础上,为了避免JB指针队列中缓存过多的数据包,从而导致后续的数据包延时过大,在判断得到CurrentOutTS不等于LateTS指向的数据包的时戳值后,还执行如下的判断2:
判断CurrentOutTS是否小于LateTS指向的数据包的时戳值;如果不是,则返回执行步骤301;如果是,则再判断CurrentOutTS是否小于或等于EarlyTS减去当前JB深度CurrentJBDelay所得到的值,如果是,表明该JB队列队尾的数据包在经过当前JB深度后都无法出队,从而会导致JB指针队列中缓存过多的数据包,从而造成数据包延时过大,则执行步骤303,以将队头的数据包强行出队,从而减少数据包延时对通讯质量的影响;
在本发明另一实施例中,考虑到定时器的定时间隔设置可能不够准确,有可能导致CurrentOutTS与LateTS指向数据包的时戳值并不一致,因此,为了本发明的实现范围更加广泛,也为了降低本发明的应用条件,将判断1中的判断CurrentOutTS是否等于LateTS指向的数据包的时戳值扩展为判断3:
判断CurrentOutTS是否大于等于LateTS指向的数据包的时戳值;
在此情况下,即使定时器定时间隔设置不够准确,也能够利用该判断1准确地将应该出队的数据包执行出队;为实现方便,结合判断3和判断2,得到如下判断4:
判断CurrentOutTS是否大于等于LateTS指向的数据包的时戳值,或者,CurrentOutTS是否小于或等于EarlyTS减去当前JB深度CurrentJBDelay所得到的值,如果该判断4判断结果为“是”,则执行步骤303,否则,返回步骤301;
步骤303:出队线程将队头的数据包出队,并且,将队头的数据包的时戳值赋值给变量CurrentOutTS,以更新该当前播放时戳变量,然后再返回步骤301,直至数据包传输过程结束;
通过以如上所述步骤B的具体实现方式实现出队调度,只要发送端的打包时长是定时器间隔T毫秒的整数倍就可以在接收端预先不知道打包时长的情况下准确地执行动态JB方案。例如,当打包时长为60毫秒时,在20毫秒的定时器控制下,每隔20毫秒执行一次出队线程,但每三次执行出队线程中,只有一次能取到一个语音包进行播放。这样就类似于定时器每隔60毫秒调度一次。
三、步骤C的具体实现:
步骤C通过以下判断5和判断6进行实现,其中,判断5和判断6的实现顺序并不影响本发明的实现:
判断5:
判断JB指针队列中的队尾和队头的数据包的时戳值之差是否大于当前的JB深度,如果是,由于JB深度所表示的是数据包在JB指针队列中的缓存时间,因此,表明当前JB队列中缓存了过多的数据包,即当前网络存在较大的抖动,则增大当前JB深度,并丢弃JB队列中的部分数据包;在本发明实施例中,如果JB指针队列中的队尾和队头的数据包的时戳值之差大于当前的JB深度,为了使得端到端的整体延时不至于过大,则将LateTS指向的数据包丢弃,并且,在当前JB深度不大于预先设定的最大JB深度的前提下,增大当前JB深度,该当前JB深度增大的步长可以预先设置,在本发明实施例中,该增大步长设置为5毫秒;
判断6:
判断每个数据包在JB指针队列中的缓存时间delay是否在一个时间段内均小于等于预先设置的JB队列缓存数据包的最小延时常量MIN_JB_DELAY,如果是,则在当前JB深度大于预先设置的最小JB深度的前提下,减小当前JB深度CurrentJBDelay;其中,该判断6中所述的一个时间段以及减小JB深度的步长均可以预先设置,在本发明实施例中,该时间段设置为2秒,减小JB深度的步长为5毫秒;另外,最小JB深度和最大JB深度在初始化时被预先设定,本发明实施例中分别取60ms和300ms;当前JB深度的初始值则设置为(MinJBDelay+MaxJBDelay)/2,在本发明其它实施例中,也可根据其它数学运算关系确定当前JB深度的初始值。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (14)

1、一种解决网络抖动的方法,其特征在于,该方法包括:
数据包接收端的入队线程对接收到的数据包进行排序,并根据排序结果将接收到的数据包升序缓存,形成采用指针方式的抖动缓存指针队列;
抖动缓存指针队列的出队线程的定时器以一定时间间隔触发出队线程,每次触发出队线程,出队线程均判断抖动缓存指针队列队头的数据包是否应该在当前触发时刻出队,如果是,则将该数据包出队;
和,根据抖动缓存指针队列中的队尾数据包和队头数据包时戳值之差与当前抖动缓存深度的大小关系,以及根据数据包在抖动缓存指针队列中的缓存时间与该抖动缓存指针队列缓存数据包的最小延时量之间的关系,确定是否应该调整当前抖动缓存深度,并执行相应的调整当前抖动缓存深度的操作。
2、根据权利要求1所述的方法,其特征在于,抖动缓存指针队列的出队线程的定时器以发送端打包时长的一个公约数作为时间间隔触发出队线程。
3、根据权利要求1所述的方法,其特征在于,所述抖动缓存指针队列的入队线程对接收到的数据包进行排序为:
入队线程根据数据包的时戳值或序号值对数据包进行大小排序。
4、根据权利要求1所述的方法,其特征在于,所述数据包接收端的入队线程接收数据包之前,该方法进一步包括:
数据包接收端抖动缓存指针队列的入队线程判断接收到的数据包是否小于该抖动缓存指针队列当前播放的数据包,如果是,丢弃该数据包。
5、根据权利要求4所述的方法,其特征在于,如果抖动缓存指针队列的入队线程判断接收到的数据包小于该抖动缓存指针队列当前播放的数据包这一判断结果连续发生了预先设定的次数,则将抖动缓存指针队列中包括抖动缓存深度在内的各个参数恢复为初始值。
6、根据权利要求1所述的方法,其特征在于,所述抖动缓存指针队列的出队线程的定时器一定时间间隔触发出队线程,出队线程判断抖动缓存指针队列队头的数据包是否应该在当前触发时刻出队包括:
步骤A1:出队线程定时器在经过一个定时间隔后触发出队线程,和,为一个当前播放时戳值变量赋值,所赋的值为:该当前播放时戳值变量的当前值加上与所述定时间隔相对应的时戳值所得到的新值;
步骤A2:出队线程利用步骤A1中所述的当前播放时戳值变量,判断在当前触发时刻抖动缓存指针队列中队头的数据包是否应该出队,如果是,则执行步骤A3,否则,返回步骤A1;
步骤A3:出队线程将队头的数据包出队,并且,将队头的数据包的时戳值赋值给当前播放时戳值变量,然后再返回步骤A1,直至数据包传输过程结束。
7、根据权利要求6所述的方法,其特征在于,步骤A2包括:
判断当前播放时戳值变量是否等于队头的数据包的时戳值,如果是,则执行步骤A3;否则,则返回步骤A1。
8、根据权利要求7所述的方法,其特征在于,所述判断当前播放时戳值变量是否等于队头的数据包的时戳值进一步包括:判断当前播放时戳值变量是否大于队头的数据包的时戳值,如果是,则执行步骤A3;否则,则返回步骤A1。
9、根据权利要求7或8所述的方法,其特征在于,该方法进一步包括:
判断当前播放时戳值变量是否小于或等于队尾数据包的时戳值减去当前抖动缓存深度所得到的值,如果是,则执行步骤A3。
10、根据权利要求1所述的方法,其特征在于,所述根据抖动缓存指针队列中的队尾数据包和队头数据包时戳值之差与当前抖动缓存深度的大小关系,确定是否应该调整当前抖动缓存深度包括:
判断抖动缓存指针队列中的队尾和队头的数据包的时戳值之差是否大于当前抖动缓存深度,如果是,则确定得到应该增大当前抖动缓存深度,所述调整当前抖动缓存深度为增大当前抖动缓存深度。
11、根据权利要求1所述的方法,其特征在于,所述根据数据包在抖动缓存指针队列中的缓存时间与该抖动缓存指针队列缓存数据包的最小延时量之间的关系,确定是否应该调整当前抖动缓存深度包括:
判断每个数据包在抖动缓存指针队列中的缓存时间是否在一个时间段内均小于等于预先设置的抖动缓存队列缓存数据包的最小延时常量,如果是,则确定得到应该减小当前抖动缓存深度,所述调整当前抖动缓存深度为减小当前抖动缓存深度。
12、根据权利要求10所述的方法,其特征在于,所述增大当前抖动缓存深度进一步包括:丢弃队头的数据包。
13、根据权利要求10所述的方法,其特征在于,确定应该增大当前抖动缓存深度后,进一步判断当前抖动缓存是否小于预先设定的最大抖动缓存深度,如果是,则执行所述增大当前抖动缓存深度的操作。
14、根据权利要求11所述的方法,其特征在于,确定应该减小当前抖动缓存深度后,进一步判断当前抖动缓存是否大于预先设定的最小抖动缓存深度,如果是,则执行所述减小当前抖动缓存深度的操作。
CNB2004100498776A 2004-06-25 2004-06-25 一种解决网络抖动的方法 Active CN100426784C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2004100498776A CN100426784C (zh) 2004-06-25 2004-06-25 一种解决网络抖动的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2004100498776A CN100426784C (zh) 2004-06-25 2004-06-25 一种解决网络抖动的方法

Publications (2)

Publication Number Publication Date
CN1713613A true CN1713613A (zh) 2005-12-28
CN100426784C CN100426784C (zh) 2008-10-15

Family

ID=35719053

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004100498776A Active CN100426784C (zh) 2004-06-25 2004-06-25 一种解决网络抖动的方法

Country Status (1)

Country Link
CN (1) CN100426784C (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008148271A1 (fr) * 2007-06-06 2008-12-11 Zte Corporation Procédé d'insertion d'événement
CN101175104B (zh) * 2006-10-31 2010-04-21 华为技术有限公司 一种抖动缓存装置和抖动缓存管理方法
CN101136772B (zh) * 2007-09-28 2010-10-27 华为技术有限公司 定时发送报文的方法及报文发送模块
CN102057596A (zh) * 2008-08-11 2011-05-11 高通股份有限公司 用于在通信系统中提供修改的时戳的方法和设备
CN102118307A (zh) * 2010-01-04 2011-07-06 大唐移动通信设备有限公司 用于控制消息抖动的方法和装置
CN103152134A (zh) * 2013-02-26 2013-06-12 汉柏科技有限公司 基于rtp协议的接收端重排语音包的方法和系统
CN103744801A (zh) * 2014-01-24 2014-04-23 深圳市华宝电子科技有限公司 一种实时数据缓存方法及装置
CN104375620A (zh) * 2014-11-25 2015-02-25 珠海全志科技股份有限公司 一种降低ucos-ii系统功耗的方法
CN106060007A (zh) * 2016-05-10 2016-10-26 上海斐讯数据通信技术有限公司 一种用户登录信息防抖动处理方法和系统
CN110113270A (zh) * 2019-04-11 2019-08-09 北京达佳互联信息技术有限公司 网络通信的抖动控制方法、装置、终端及存储介质
CN113112782A (zh) * 2021-04-07 2021-07-13 深圳市丹芽科技有限公司 一种低功耗无线控制方法、发射器及接收器

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6452950B1 (en) * 1999-01-14 2002-09-17 Telefonaktiebolaget Lm Ericsson (Publ) Adaptive jitter buffering
US6683889B1 (en) * 1999-11-15 2004-01-27 Siemens Information & Communication Networks, Inc. Apparatus and method for adaptive jitter buffers
US6747999B1 (en) * 1999-11-15 2004-06-08 Siemens Information And Communication Networks, Inc. Jitter buffer adjustment algorithm
CN100341303C (zh) * 2001-08-24 2007-10-03 中兴通讯股份有限公司 时分多通道脉冲编码调制信号在以太网中传输的实现方法

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101175104B (zh) * 2006-10-31 2010-04-21 华为技术有限公司 一种抖动缓存装置和抖动缓存管理方法
WO2008148271A1 (fr) * 2007-06-06 2008-12-11 Zte Corporation Procédé d'insertion d'événement
CN101136772B (zh) * 2007-09-28 2010-10-27 华为技术有限公司 定时发送报文的方法及报文发送模块
CN102057596A (zh) * 2008-08-11 2011-05-11 高通股份有限公司 用于在通信系统中提供修改的时戳的方法和设备
CN102057596B (zh) * 2008-08-11 2015-11-25 高通股份有限公司 用于在通信系统中提供修改的时戳的方法和设备
CN102118307A (zh) * 2010-01-04 2011-07-06 大唐移动通信设备有限公司 用于控制消息抖动的方法和装置
CN102118307B (zh) * 2010-01-04 2014-06-25 大唐移动通信设备有限公司 用于控制消息抖动的方法和装置
CN103152134B (zh) * 2013-02-26 2015-12-02 汉柏科技有限公司 基于rtp协议的接收端重排语音包的方法和系统
CN103152134A (zh) * 2013-02-26 2013-06-12 汉柏科技有限公司 基于rtp协议的接收端重排语音包的方法和系统
CN103744801A (zh) * 2014-01-24 2014-04-23 深圳市华宝电子科技有限公司 一种实时数据缓存方法及装置
CN104375620A (zh) * 2014-11-25 2015-02-25 珠海全志科技股份有限公司 一种降低ucos-ii系统功耗的方法
CN106060007A (zh) * 2016-05-10 2016-10-26 上海斐讯数据通信技术有限公司 一种用户登录信息防抖动处理方法和系统
CN106060007B (zh) * 2016-05-10 2019-10-11 上海斐讯数据通信技术有限公司 一种用户登录信息防抖动处理方法和系统
CN110113270A (zh) * 2019-04-11 2019-08-09 北京达佳互联信息技术有限公司 网络通信的抖动控制方法、装置、终端及存储介质
US11431643B2 (en) 2019-04-11 2022-08-30 Beijing Dajia Internet Information Technology Co., Ltd Method, device, and terminal for controlling jitter in network communication
CN113112782A (zh) * 2021-04-07 2021-07-13 深圳市丹芽科技有限公司 一种低功耗无线控制方法、发射器及接收器
CN113112782B (zh) * 2021-04-07 2022-09-16 深圳市艾斯龙科技有限公司 一种低功耗无线控制方法、发射器及接收器

Also Published As

Publication number Publication date
CN100426784C (zh) 2008-10-15

Similar Documents

Publication Publication Date Title
US10270696B2 (en) Transmission of data packets of different priority levels using pre-emption
US6633540B1 (en) Real-time traffic shaper with keep-alive property for best-effort traffic
US7911963B2 (en) Empirical scheduling of network packets
US8045563B2 (en) Dynamically adjusted credit based round robin scheduler
CN1297118C (zh) 带宽监控设备
CN1320805C (zh) 一种分组交换网络自适应抖动缓冲区调整方法
CN1713613A (zh) 一种解决网络抖动的方法
CN103533451A (zh) 抖动缓存调节方法及其系统
CN1716914A (zh) 用于业务混合的公平加权随机早期检测
CN1379602A (zh) 用于把两个数据流复用在无线通信信道上的方法和相应的发射机
CN101047640A (zh) 无线接入承载数据传输方法
JPH05502776A (ja) 異なるトラフィックタイプの高速パケットを優先順位付け、選択的に放棄し、かつ多重化するための方法
CN101267443A (zh) 一种数据处理方法及通信设备
CN101816153A (zh) 增强的数据链路利用
CN1921450A (zh) 数据流量控制装置与流量控制方法
CN1913483A (zh) 一种低时延抖动小突发的亏空轮询方法
CN101183917A (zh) 一种多媒体数据编码速率调节方法和装置
US20090198845A1 (en) System for processing routing according to priorities of logical interfaces and method for controlling the same
CN1353367A (zh) 一种基于随机早期检测的逐节拥塞控制方法
CN1602475A (zh) 异步串行数据接口
US20030099240A1 (en) Apparatus and method for voice multiplexing in an asynchronous transfer mode network supporting voice and data service
CN1787481B (zh) 一种减小数据包播放延时的方法
CN1889526A (zh) 语音数据帧的接收方法及终端、无线分组网网关和系统
CN1956563A (zh) 一种流业务的调度方法及系统
US7039011B1 (en) Method and apparatus for flow control in a packet switch

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