CN101252425B - 一种自动适应网络的丢包纠错方法和系统 - Google Patents
一种自动适应网络的丢包纠错方法和系统 Download PDFInfo
- Publication number
- CN101252425B CN101252425B CN2008101036433A CN200810103643A CN101252425B CN 101252425 B CN101252425 B CN 101252425B CN 2008101036433 A CN2008101036433 A CN 2008101036433A CN 200810103643 A CN200810103643 A CN 200810103643A CN 101252425 B CN101252425 B CN 101252425B
- Authority
- CN
- China
- Prior art keywords
- packet loss
- buffering
- value
- equal
- packet
- 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.)
- Active
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
本发明公开了一种自动适应网络的丢包纠错方法和系统。所述方法包括:接收端确定丢包率;当丢包率大于0且小于等于阀值1时,接收端将重传次数设置为第一指定值,并将丢包缓冲的大小调整为第一时间长度;所述第一时间长度大于或等于所述第一指定值乘以RTT再加上系统固有延时的值;当丢包率大于阀值1且小于等于阀值2时,接收端将重传次数设置为第二指定值,并将丢包缓冲的大小调整为第二时间长度;所述第二时间长度大于或等于所述第二指定值乘以RTT再加上系统固有延时的值;其中,第一指定值和第二指定值均为自然数,且第二指定值大于第一指定值。本发明的技术方案不需要用户设置参数且参数能够根据实际情况自动变化。
Description
技术领域
本发明涉及丢包纠错技术领域,尤指一种自动适应网络的丢包纠错方法、系统以及一种接收端设备。
背景技术
当前,实时媒体流传输已经在视讯系统、监控系统、IPTV等各个领域得到了广泛的应用,并且实时媒体流传输都使用了实时传输协议(RTP,Real-time Transport Protocol)。RTP是一种不支持任何形式的可靠性保证、不支持任何定义拥塞控制的协议。因此,对于在实时媒体流传输过程中RTP协议本身无法对丢包进行恢复,也正因如此丢包纠错是所有相关厂商的技术攻关重点。
目前,实时媒体流传输过程中的丢包纠错技术一般是在接收端设置乱序缓冲和丢包缓冲。其中,乱序缓冲是接收端为了乱序重排而设置的缓冲,此缓冲内不判断丢包;丢包缓冲是接收端在乱序缓冲后设置的判断丢包并等待接收重传包的缓冲。在丢包缓冲中,根据用户设置的检测点或监视点判断接收包的序号是否连续,如果不连续,说明数据有丢包,就向发送端发送丢包重传请求。发送端接收到丢包重传请求后,从重传缓冲查找需要的包,然后重传。这里,重传缓冲是发送端发送数据包后,备份已经发送的数据包,等接收端要求重传时可以重新发送的缓冲。接收端接收到重传缓冲后,填充到接收缓冲(包括乱序缓冲和丢包缓冲)的相应位置,然后发送给解码器解码。
但是上述丢包纠错方案有如下的缺点:首先,检测点或者监视点需要由用户设置,或者需要用户设置网络的实际丢包率和网络延时等相关参数,这些参数对专业用户来说,需要反复测试才能得到,而对非专业用户来说,只能不断盲目地调整设置参数来观察音视频效果,且得到最好的效果很难,因此给用户带来很大的麻烦,易用性差;其次,即使用户设置好了参数,当网络环境发生变化时,所设置的参数不能根据实际情况自动变化,比如在丢包率降低的情况下,系统的延时没有缩短,当丢包率增加时,图像的质量就会变差。
发明内容
本发明提供了一种自动适应网络的丢包纠错方法,该方法中不需要用户设置参数且参数能够根据实际情况自动变化。
本发明还提供了一种自动适应网络的丢包纠错系统,该系统中不需要用户设置参数且参数能够根据实际情况自动变化。
本发明还提供了一种接收端设备。
为达到上述目的,本发明的技术方案具体是这样实现的:
本发明公开了一种自动适应网络的丢包纠错方法,发送端向接收端发送实时媒体流的数据包,且发送端和接收端均支持丢包重传,该方法包括:
接收端根据预定时间长度内的数据包接收状态确定丢包率;
当所述丢包率大于0且小于等于阀值1时,接收端将重传次数设置为第一指定值,并将丢包缓冲的大小调整为第一时间长度;所述第一时间长度大于或等于所述第一指定值乘以往返时间RTT再加上系统固有延时的值;
当所述丢包率大于阀值1且小于等于阀值2时,接收端将重传次数设置为第二指定值,并将丢包缓冲的大小调整为第二时间长度;所述第二时间长度大于或等于所述第二指定值乘以RTT再加上系统固有延时的值;
其中,所述第一指定值和第二指定值均为自然数,且第二指定值大于第一指定值。
本发明还公开了一种自动适应网络的丢包纠错系统,包括发送端设备和接收端设备,发送端设备向接收端设备发送实时媒体流的数据包,且发送端设备和接收端设备均支持丢包重传,
所述接收端设备,用于根据预定时间长度内的数据包接收状态确定丢包率;当所述丢包率大于0且小于等于阀值1时,将重传次数设置为第一指定值,并将丢包缓冲的大小调整为第一时间长度;所述第一时间长度大于或等于所述第一指定值乘以往返时间RTT再加上系统固有延时的值;当所述丢包率大于阀值1且小于等于阀值2时,将重传次数设置为第二指定值,并将丢包缓冲的大小调整为第二时间长度;所述第二时间长度大于或等于所述第二指定值乘以RTT再加上系统固有延时的值;其中,所述第一指定值和第二指定值均为自然数,且第二指定值大于第一指定值。
本发明还公开了一种接收端设备,接收实时媒体流的数据包并且支持丢包重传,该接收端设备包括:确定模块和调整模块,其中,
确定模块,根据预定时间长度内的数据包接收状态确定丢包率,并将所述丢包率发送给调整模块;
调整模块,用于在所接收的丢包率大于0且小于等于阀值1时,将重传次数设置为第一指定值,并将丢包缓冲的大小调整为第一时间长度;所述第一时间长度大于或等于所述第一指定值乘以往返时间RTT再加上系统固有延时的值;在所接收的丢包率大于阀值1且小于等于阀值2时,接收端将重传次数设置为第二指定值,并将丢包缓冲的大小调整为第二时间长度;所述第二时间长度大于或等于所述第二指定值乘以RTT再加上系统固有延时的值;其中,所述第一指定值和第二指定值均为自然数,且第二指定值大于第一指定值。
由上述技术方案可见,本发明这种由接收端设备根据预定时间长度内的数据包接收状态确定丢包率,根据不同的丢包率设置不同的重传次数,并相应调整丢包缓冲大小的方案,使得接收端设备无需用户设置参数就可以根据丢包率和RTT时间自动调整丢包缓冲和重传次数。
附图说明
图1为本发明实施例一种自动适应网络的丢包纠错方法的流程图;
图2是本发明实施例一种自动适应网络的丢包纠错系统的组成结构框图;
图3是本发明实施例一种接收端设备的组成结构框图。
具体实施方式
本发明的核心思想是,进行实时媒体流传输的接收端设备和发送端设备采用丢包重传技术对丢包进行纠错,接收端设备根据自身所计算出的丢包率动态调整重传次数,并相应调整丢包缓冲,以达到好的实时媒体流传输质量的同时减小延时。采用这种技术方案可以使得接收端设备无需用户设置参数就可以根据丢包率和RTT时间自动调整丢包缓冲和重传次数。
这里,丢包率是指在一段时间内,接收端统计丢失的数据包与发送端发送出来的数据包的比率。RTT时间是指,一个数据包从发送端到达接收端,再从接收端返回到发送端多需要的往返时间。
在介绍本发明的具体实施例之前,首先分析丢包重传技术的丢包纠错效果:
假设网络丢包率为n(t),接收端在发现丢包时需要发送重传请求,发送次数为N,发送端接收到重传请求后需要发送重传包,发送次数也为N,那么相对丢包率为:n(a)=(1+2×n(t)×N)×n(t)。举例来说,如果网络丢包率n(t)=3%,发送次数N=2,假设某段时间内要发送100个包,其中有3个包丢失,接收端发现丢包后,会发送3×2个重传请求包,发送端接收到请求后,重新发送3×2个包,在全双工通信方式下,这段时间内任何一端都发送了100+6+6个包,丢包数=112×3%=3.36,也就是说相对与要发送的100个包,相对丢包率为3.36%。对于多次重传,由于影响很小,可以忽略。表1给出了一次重传的发送次数、丢包率以及相对丢包率之间的关系。
表1
如果相对丢包率为n(a),那么相对成功率为s(a)=1-n(a);
一次重传的发送次数为N,那么重传请求丢包的概率为n(a)^N,也就是说成功概率m=1-n(a)^N,重传包的成功率也是m,那么,
重传请求和重传包都成功的概率为sr(a)=m×m;
则经过第一次重传后的成功率为s1(a)=s(a)+n(a)×m×m;
经过第二次重传后的成功率为s2(a)=s1(a)+(1-s1(a))×m×m,依此类推,其具体数值关系如表2所示。
表2
网络丢包一般都发生在网络带宽低的情况下,因此下面用视频的码率和包数的对应关系以及上述表2中的数据来说明重传技术的纠错效果。假设视频数据包的平均大小为1024字节(Byte),则有如表3所示的关系。
码率kbps/Sec | 字节数 | 1秒可能包数 | 1小时包数 |
384 | 49152 | 48 | 172800 |
512 | 65536 | 64 | 230400 |
768 | 98304 | 96 | 345600 |
码率kbps/Sec | 字节数 | 1秒可能包数 | 1小时包数 |
1024 | 131072 | 128 | 460800 |
表3
因此,在丢包率为10%的情况下,采用重传为3次,且每次发送3次的丢包重传纠错策略,对于码率为512k的视频会议,丢包发生的时间间隔=1/(1-0.99999998)/230400=310小时。也就是说,即使连续开12天的会议,用户也不会感觉到丢包。
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举具体实施例,对本发明进一步详细说明。
图1为本发明实施例一种自动适应网络的丢包纠错方法的流程图。如图1所示,包括以下步骤:
步骤101,发送端设备和接收端设备分别将重传缓冲和接收缓冲设置为初始值大小。
本步骤中,重传缓冲和接收缓冲的初始值大小可以取一个经验值,例如在视频会议中重传缓冲可以取1s,接收缓冲可以取100ms。并且重传缓冲可以采用覆盖方式将过期的数据删除。
步骤102,发送端设备开始发送数据包的同时,将已发送的数据包和相关的RTP参数暂时保存在重传缓冲中,以备重传之用。
本步骤中,所述相关的RTP参数至少包括数据包的序号。
步骤103,发送端和接收端获取RTT值,发送端将重传缓冲的大小调整为:2×RTT+系统固有延时。
本步骤中,发送端设备在开始发送数据后,如在发送完第一个数据包后,向接收端发送实时传输控制协议(RTCP,Real-time Transport ControlProtocol)包1;接收端设备收到RTCP包1后,向发送端设备返回RTCP包2;发送端设备接收到RTCP包2后,再向接收端发送RTCP包3。则发送端设备可以根据RTCP包1的发送时间和RTCP报2的接收时间计算RTT的值,而接收端设备可以根据RTCP包2的发送时间和RTCP包3的接收时间计算RTT的值。
本步骤中,发送端设备将重传缓冲的大小设置为“2×RTT+系统固有延时”,是因为,在本实施例的后续过程中最多采用两次重传,即重传次数最大为2,而两次重传所需的时间为“2×RTT+系统固有延时”,因此,此处将重传缓冲设置为“2×RTT+系统固有延时”,就足以满足重传的需要。当然本步骤中也可以将重传缓冲的大小设置得大于所述的“2×RTT+系统固有延时”,但这样做只会浪费缓冲资源。
本实施例中,系统固有延时为发送端设备和接收端设备的内部延时之和,即发送端设备在数据发送出去之前进行相应处理所需的时间以及接收端设备接收到数据至将数据送给解码器之间的延时。系统固有延时是一个系统固有的特性。
步骤104,接收端设备将所接收的数据包放入初始设置的接收缓冲中,并在所述接收缓冲满后,根据接收缓冲中的数据包判断网络情况,在没有乱序包且没有丢包时执行步骤105,只有乱序没有丢包时执行步骤106,有丢包时执行步骤107。
本步骤中,接收端设备在根据100ms的初始接收缓冲中,50ms内数据包序号不连续就认为包有乱序,超过50ms就认为丢包。
步骤105,接收端设备加快发送数据给解码器的速度,缩小接收缓冲,降低延时,将接收缓冲降低为0或一帧数据的大小;同时接收端设备发送RTCP包通知发送端设备将重传缓冲缩小到0。由于没有丢包结束本流程。
本步骤中,如果所传输的实时媒体流数据包不需要组帧,则可以将接收缓冲降低为0,反之如果需要组帧,如视频数据就需要组帧,则将接收缓冲缩小的一帧数据的大小。
步骤106,接收端设备将丢包缓冲缩小为0,即将接收缓冲缩小到乱序缓冲的大小;同时接收端设备发送RTCP包通知发送端设备将重传缓冲缩小到0。由于没有丢包结束本流程。
步骤107,接收端设备将丢包缓冲调整为“RTT+系统固有延时”,同时向发送端设备发送丢失包的重传请求。执行步骤108。
本步骤中,所述重传请求中携带需要重传的数据包的类型、序号以及连续重传的数量,发送次数为3。
步骤108,发送端设备接收到重传请求后,从重传缓冲中找到需要重传的包,通过RTP通道传输给接收端设备,发送次数也为3。
步骤109,接收端在收到重传来的数据包后,将数据包按照序列号插入到接收缓冲的相应位置中,完成一次重传。
步骤110,当接收端设备接收数据的时间大于预定时间长度时,接收端设备根据这预定时间长度内的数据包接收状态确定丢包率,并把所述确定的丢包率发送给发送端设备,则接收端设备和发送端设备根据丢包率进行相应的设置,如步骤111至步骤114所示。
本步骤中,接收端设备根据所述预定时间长度内丢失的数据包与发送端设备发送出来的总数据包确定丢包率。
步骤111,当丢包率大于0且小于等于阀值1时,接收端设备将重传次数设置为1,并保持丢包缓冲的大小不变,仍为:RTT+系统固有延时;发送端设备将重传缓冲从“2×RTT+系统固有延时”缩小到“RTT+系统固有延时”。结束本流程。
本步骤中,由于已将重传次数设置为1,而一次重传所需的时间为“RTT+系统固有延时”,因此将丢包缓冲和重传缓冲设置为“RTT+系统固有延时”,已经足以满足重传的需要。当然在本步骤中也可以将丢包缓冲和重传缓冲的大小设置为大于“RTT+系统固有延时”。
本实施例中,阀值1取3%。
步骤112,当丢包率大于阀值1小于等于阀值2时,接收端设备将丢包缓冲从“RTT+系统固有延时”增大为“2×RTT+系统固有延时”,也就是说一个增加二级缓冲;发送端设备保持重传缓冲大小不变,仍为“2×RTT+系统固有延时”。结束本流程。
在本实施例中阀值2取15%。
另外,在本实施例中,接收缓冲逻辑上被分为三个部分:乱序缓冲、一级缓冲和二级缓冲,一级缓冲和二级缓冲即为丢包缓冲;其中:乱序缓冲的作用是去除网络抖动和乱序,防止一定范围内的乱序包被误认为丢包;一级缓冲的作用是提供一次重传,大小为“RTT+系统固定延时”,本缓冲入口没有包就认为包丢失,需要发送重传请求,本缓冲出口为一次重传后的结果,如果不需要二次重传,则出口送到解码器;二级缓冲的作用是提供二次重传,本缓冲大小等于一级缓冲,机制也相同,用于经过一次重传后还没有收到的包的再次重传。
步骤113,当丢包率大于阀值2小于等于阀值3时,发送端设备降低发送码率,即降低向接收端设备发送数据包的速率,以降低丢包率。结束本流程。
本步骤中,待丢包率降下来后,发送端设备还可以尝试逐渐提高发送码率,这是因为网络传输条件是随时变化的,在传输条件变的较好时,即使提高发送码率,对丢包率的影响也不会太大。
本步骤中,当发送码率降低后,丢包率仍没有改善时,继续降低发送码率直至降到最低发送码率或者丢包率改善为止。
本实施例中,阀值3为25%。
步骤114,当丢包率大于阀值4且超过预设时间(如3s)时,发送端设备和接收端设备停止重传策略。因为此时重传已经不起作用,停止重传策略可以降低系统消耗。结束本流程。
在图1所示的上述实施例中,发送端设备和接收端设备之间的信令交互也可以不采用RTCP方式,而是通过RTP或者其它的任何UDP传输都可以达到同样的效果。
采用图1所述的丢包纠错方式,至少可以解决丢包率小于10%的网络环境中,由于丢包造成的视频图像花屏、停止、音频停顿等问题,提高实时流媒体传输的应用效果。而现有技术中的丢包纠错方案的纠错能力弱,一般只能在丢包率小于3%时才能得到的较好的音视频效果。
基于上述实施例,接下来给出本发明一种自动适应网络的丢包纠错系统和一种接收端设备的组成结构。
图2是本发明实施例一种自动适应网络的丢包纠错系统的组成结构框图。如图2所示,该系统包括:发送端设备201和接收端设备202,发送端设备201向接收端设备202发送实时媒体流的数据包,且发送端设备201和接收端设备202均支持丢包重传。
在图2中,接收端设备202,用于根据预定时间长度内的数据包接收状态确定丢包率;当所述丢包率大于0且小于等于阀值1时,将重传次数设置为第一指定值,并将丢包缓冲的大小调整为第一时间长度;所述第一时间长度大于或等于所述第一指定值乘以往返时间RTT再加上系统固有延时的值;当所述丢包率大于阀值1且小于等于阀值2时,将重传次数设置为第二指定值,并将丢包缓冲的大小调整为第二时间长度;所述第二时间长度大于或等于所述第二指定值乘以RTT再加上系统固有延时的值;其中,所述第一指定值和第二指定值均为自然数,且第二指定值大于第一指定值。
在图2中,接收端设备202,还用于将所确定的丢包率发送给发送端设备;发送端设备201,用于在所述丢包率大于0且小于等于阀值1时,将重传缓冲的大小调整为第三时间长度;所述第三时间长度大于或等于所述第一指定值乘以RTT再加上系统固有延时的值;用于在所述丢包率大于阀值1小于等于阀值2时,将重传缓冲的大小调整为第四时间长度;所述第四时间长度大于或等于所述第二指定值乘以RTT再加上系统固有延时的值。
在图2中,接收端设备202,在所述丢包率为0时,用于将重传次数设置为0,将丢包缓冲的大小设置为0;发送端设备201,在所述丢包率为0时,用于将重传缓冲的大小设置为0。
在图2中,接收端设备202,在所述丢包率为0且所接收的数据包无乱序时,用于将接收缓冲调整为0或一帧数据大小;在所述丢包率为0且所接收的数据包有乱序时,将接收缓冲调整为乱序缓冲大小;其中,接收缓冲等于乱序缓冲与丢包缓冲的和。
在图2中,发送端设备201,在开始发送数据包至接收到来自接收端的丢包率之间,进一步用于将重传缓冲的大小设置为第一初始时间长度,并在获取RTT值后,将重传缓冲的大小调整为第五时间长度,所述第五时间长度大于或等于所述第二指定值乘以RTT再加上系统固有延时的值;接收端设备202,在开始接收数据包至确定出丢包率之间,进一步用于将接收缓冲的大小设置为第二初始时间长度,并在获取RTT值后,将丢包缓冲的大小调整为第六时间长度,所述第六时间长度大于或等于所述第一指定值乘以RTT再加上系统固有延时的值;其中,接收缓冲等于乱序缓冲与丢包缓冲的和。
在图2中,发送端设备201,在所述丢包率大于阀值2且小于等于阀值3时,降低发送数据包的速率,以降低丢包率,并在通过降低发送数据包的速率而使得丢包率下降后,再次提高发送数据包的速率。
在图2中,发送端设备201和接收端设备202,用于在所述丢包率大于阀值4且持续时间超过预设值时,停止丢包重传;所述阀值4大于所述阀值2。
图3是本发明实施例一种接收端设备的组成结构框图,该接收端设备接收实时媒体流的数据包并且支持丢包重传,如图3所示,该接收端设备包括:确定模块301和调整模块302。其中:确定模块301,根据预定时间长度内的数据包接收状态确定丢包率,并将所述丢包率发送给调整模块302;调整模块302,用于在所接收的丢包率大于0且小于等于阀值1时,将重传次数设置为第一指定值,并将丢包缓冲的大小调整为第一时间长度;所述第一时间长度大于或等于所述第一指定值乘以往返时间RTT再加上系统固有延时的值;在所接收的丢包率大于阀值1且小于等于阀值2时,接收端将重传次数设置为第二指定值,并将丢包缓冲的大小调整为第二时间长度;所述第二时间长度大于或等于所述第二指定值乘以RTT再加上系统固有延时的值;其中,所述第一指定值和第二指定值均为自然数,且第二指定值大于第一指定值。
在图3中,调整模块302,在所述丢包率为0时,进一步用于将重传次数设置为0,将丢包缓冲的大小设置为0。
在图3中,调整模块302,在所述丢包率为0且所述接收端设备所接收的数据包无乱序时,进一步用于将接收缓冲调整为0或一帧数据大小;在所述丢包率为0但所述接收端设备所接收的数据包有乱序时,进一步将接收缓冲调整为乱序缓冲大小;其中,接收缓冲等于乱序缓冲加上丢包缓冲。
在图3中,调整模块302,在所述接收端设备开始接收数据包至所述确定模块端确定丢包率之间,进一步用于将丢包缓冲的大小调整为第六时间长度,所述第六时间长度大于或等于所述第一指定值乘以RTT再加上系统固有延时的值。
在图3中,调整模块302,在所述丢包率大于阀值4且持续时间超过预设值时,停止丢包重传;所述阀值4大于所述阀值2。
综上所述,本发明这种由接收端设备根据预定时间长度内的数据包接收状态确定丢包率,根据不同的丢包率设置不同的重传次数,并相应调整丢包缓冲大小的方案,使得接收端设备无需用户设置参数就可以根据丢包率和RTT时间自动调整丢包缓冲和重传次数。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (19)
1.一种自动适应网络的丢包纠错方法,发送端向接收端发送实时媒体流的数据包,且发送端和接收端均支持丢包重传,其特征在于,该方法包括:
接收端根据预定时间长度内的数据包接收状态确定丢包率;
当所述丢包率大于0且小于等于阀值1时,接收端将重传次数设置为第一指定值,并将丢包缓冲的大小调整为第一时间长度;所述第一时间长度大于或等于所述第一指定值乘以往返时间RTT再加上系统固有延时的值;
当所述丢包率大于阀值1且小于等于阀值2时,接收端将重传次数设置为第二指定值,并将丢包缓冲的大小调整为第二时间长度;所述第二时间长度大于或等于所述第二指定值乘以RTT再加上系统固有延时的值;
其中,所述第一指定值和第二指定值均为自然数,且第二指定值大于第一指定值。
2.如权利要求1所述的方法,其特征在于,该方法进一步包括:
接收端将所确定的丢包率发送给发送端;
当所述丢包率大于0且小于等于阀值1时,发送端将重传缓冲的大小调整为第三时间长度;所述第三时间长度大于或等于所述第一指定值乘以RTT再加上系统固有延时的值;
当所述丢包率大于阀值1且小于等于阀值2时,发送端将重传缓冲的大小调整为第四时间长度;所述第四时间长度大于或等于所述第二指定值乘以RTT再加上系统固有延时的值。
3.如权利要求2所述的方法,其特征在于,当所述丢包率为0时,该方法进一步包括:
接收端将重传次数设置为0,将丢包缓冲的大小设置为0;
发送端将重传缓冲的大小设置为0。
4.如权利要求3所述的方法,其特征在于,当所述丢包率为0时,该方法进一步包括:
如果接收端所接收的数据包无乱序,则接收端将接收缓冲调整为0或一帧数据大小;
如果接收端所接收的数据包有乱序,则接收端将接收缓冲调整为乱序缓冲大小;
其中,接收缓冲等于乱序缓冲与丢包缓冲的和。
5.如权利要求2所述的方法,其特征在于,该方法在发送端开始发送数据包至接收端确定丢包率之间进一步包括:
发送端将重传缓冲的大小设置为第一初始时间长度;接收端将接收缓冲的大小设置为第二初始时间长度;
发送端和接收端获取RTT值;
发送端将重传缓冲的大小调整为第五时间长度,所述第五时间长度大于或等于所述第二指定值乘以RTT再加上系统固有延时的值;
接收端将丢包缓冲的大小调整为第六时间长度,所述第六时间长度大于或等于所述第一指定值乘以RTT再加上系统固有延时的值;
其中,接收缓冲等于乱序缓冲与丢包缓冲的和。
6.如权利要求2所述的方法,其特征在于,当所述丢包率大于阀值2且小于等于阀值3时,该方法进一步包括:
发送端降低发送数据包的速率,以降低丢包率;
当通过降低发送数据包的速率而使得丢包率下降后,发送端提高发送数据包的速率。
7.如权利要求2所述的方法,其特征在于,当所述丢包率大于阀值4且持续时间超过预设值时,发送端和接收端停止丢包重传;所述阀值4大于所述阀值2。
8.一种自动适应网络的丢包纠错系统,包括发送端设备和接收端设备,发送端设备向接收端设备发送实时媒体流的数据包,且发送端设备和接收端设备均支持丢包重传,其特征在于,
所述接收端设备,用于根据预定时间长度内的数据包接收状态确定丢包率;当所述丢包率大于0且小于等于阀值1时,将重传次数设置为第一指定值,并将丢包缓冲的大小调整为第一时间长度;所述第一时间长度大于或等于所述第一指定值乘以往返时间RTT再加上系统固有延时的值;当所述丢包率大于阀值1且小于等于阀值2时,将重传次数设置为第二指定值,并将丢包缓冲的大小调整为第二时间长度;所述第二时间长度大于或等于所述第二指定值乘以RTT再加上系统固有延时的值;其中,所述第一指定值和第二指定值均为自然数,且第二指定值大于第一指定值。
9.如权利要求8所述的自动适应网络的丢包纠错系统,其特征在于,
所述接收端设备,用于将所确定的丢包率发送给发送端设备;
所述发送端设备,用于在所述丢包率大于0且小于等于阀值1时,将重传缓冲的大小调整为第三时间长度;所述第三时间长度大于或等于所述第一指定值乘以RTT再加上系统固有延时的值;用于在所述丢包率大于阀值1小于等于阀值2时,将重传缓冲的大小调整为第四时间长度;所述第四时间长度大于或等于所述第二指定值乘以RTT再加上系统固有延时的值。
10.如权利要求9所述的自动适应网络的丢包纠错系统,其特征在于,
所述接收端设备,在所述丢包率为0时,用于将重传次数设置为0,将丢包缓冲的大小设置为0;
所述发送端设备,在所述丢包率为0时,用于将重传缓冲的大小设置为0。
11.如权利要求10所述的自动适应网络的丢包纠错系统,其特征在于,
所述接收端设备,在所述丢包率为0且所接收的数据包无乱序时,用于将接收缓冲调整为0或一帧数据大小;在所述丢包率为0且所接收的数据包有乱序时,将接收缓冲调整为乱序缓冲大小;
其中,接收缓冲等于乱序缓冲与丢包缓冲的和。
12.如权利要求9所述的自动适应网络的丢包纠错系统,其特征在于,
所述发送端设备,在开始发送数据包至接收到来自接收端的丢包率之间,进一步用于将重传缓冲的大小设置为第一初始时间长度,并在获取RTT值后,将重传缓冲的大小调整为第五时间长度,所述第五时间长度大于或等于所述第二指定值乘以RTT再加上系统固有延时的值;
所述接收端设备,在开始接收数据包至确定出丢包率之间,进一步用于将接收缓冲的大小设置为第二初始时间长度,并在获取RTT值后,将丢包缓冲的大小调整为第六时间长度,所述第六时间长度大于或等于所述第一指定值乘以RTT再加上系统固有延时的值;其中,接收缓冲等于乱序缓冲与丢包缓冲的和。
13.如权利要求9所述的自动适应网络的丢包纠错系统,其特征在于,
所述发送端设备,在所述丢包率大于阀值2且小于等于阀值3时,降低发送数据包的速率,以降低丢包率,并在通过降低发送数据包的速率而使得丢包率下降后,再次提高发送数据包的速率。
14.如权利要求9所述的自动适应网络的丢包纠错系统,其特征在于,
所述发送端设备和所述接收端设备,用于在所述丢包率大于阀值4且持续时间超过预设值时,停止丢包重传;所述阀值4大于所述阀值2。
15.一种接收端设备,接收实时媒体流的数据包并且支持丢包重传,其特征在于,该接收端设备包括:确定模块和调整模块,其中,
确定模块,根据预定时间长度内的数据包接收状态确定丢包率,并将所述丢包率发送给调整模块;
调整模块,用于在所接收的丢包率大于0且小于等于阀值1时,将重传次数设置为第一指定值,并将丢包缓冲的大小调整为第一时间长度;所述第一时间长度大于或等于所述第一指定值乘以往返时间RTT再加上系统固有延时的值;在所接收的丢包率大于阀值1且小于等于阀值2时,接收端将重传次数设置为第二指定值,并将丢包缓冲的大小调整为第二时间长度;所述第二时间长度大于或等于所述第二指定值乘以RTT再加上系统固有延时的值;其中,所述第一指定值和第二指定值均为自然数,且第二指定值大于第一指定值。
16.如权利要求15所述的接收端设备,其特征在于,
所述调整模块,在所述丢包率为0时,进一步用于将重传次数设置为0,将丢包缓冲的大小设置为0。
17.如权利要求16所述的接收端设备,其特征在于,
所述调整模块,在所述丢包率为0且所述接收端设备所接收的数据包无乱序时,进一步用于将接收缓冲调整为0或一帧数据大小;在所述丢包率为0但所述接收端设备所接收的数据包有乱序时,进一步将接收缓冲调整为乱序缓冲大小;其中,接收缓冲等于乱序缓冲加上丢包缓冲。
18.如权利要求15所述的接收端设备,其特征在于,
所述调整模块,在所述接收端设备开始接收数据包至所述确定模块确定丢包率之间,进一步用于将丢包缓冲的大小调整为第六时间长度,所述第六时间长度大于或等于所述第一指定值乘以RTT再加上系统固有延时的值。
19.如权利要求15所述的接收端设备,其特征在于,
所述调整模块,在所述丢包率大于阀值4且持续时间超过预设值时,停止丢包重传;所述阀值4大于所述阀值2。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101036433A CN101252425B (zh) | 2008-04-09 | 2008-04-09 | 一种自动适应网络的丢包纠错方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101036433A CN101252425B (zh) | 2008-04-09 | 2008-04-09 | 一种自动适应网络的丢包纠错方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101252425A CN101252425A (zh) | 2008-08-27 |
CN101252425B true CN101252425B (zh) | 2010-10-27 |
Family
ID=39955623
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101036433A Active CN101252425B (zh) | 2008-04-09 | 2008-04-09 | 一种自动适应网络的丢包纠错方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101252425B (zh) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101656597B (zh) * | 2009-09-14 | 2013-09-11 | 中兴通讯股份有限公司 | 数据接收和发送方法、装置及数据传输系统 |
CN102036061B (zh) * | 2009-09-30 | 2012-11-21 | 华为技术有限公司 | 视频数据传输处理、发送处理方法、装置和网络系统 |
CN102348238B (zh) * | 2010-07-30 | 2013-01-30 | 杭州华三通信技术有限公司 | 一种发送无线报文的方法和设备 |
CN103312705B (zh) * | 2013-06-04 | 2017-03-15 | 腾讯科技(深圳)有限公司 | 一种数据传输方法、装置及系统 |
CN103763073B (zh) * | 2014-01-09 | 2018-08-07 | 深圳市迪威迅股份有限公司 | 一种丢包重传的方法及终端 |
CN104580985B (zh) * | 2015-01-30 | 2019-02-19 | 深圳市云之讯网络技术有限公司 | 视频码率自适应方法及系统 |
CN107548079B (zh) * | 2016-06-23 | 2020-10-27 | 联芯科技有限公司 | 定时器时长的动态调整方法、终端设备、无线通信系统 |
CN106330930A (zh) * | 2016-08-29 | 2017-01-11 | 烽火通信科技股份有限公司 | 基于流媒体丢包二次重传系统及其方法 |
CN106375145A (zh) * | 2016-08-29 | 2017-02-01 | 北京新能源汽车股份有限公司 | 一种局域网络通讯状态检测、故障处理方法及装置 |
CN108574563A (zh) * | 2017-03-14 | 2018-09-25 | 深圳壹秘科技有限公司 | 一种在wifi环境中传输文件的方法及其装置 |
CN107995036B (zh) * | 2017-11-30 | 2021-04-20 | 杭州电魂网络科技股份有限公司 | 数据传输方法、装置、服务器及可读存储介质 |
CN108401128B (zh) * | 2018-03-20 | 2020-09-15 | 宁波菊思网络科技有限公司 | 一种视频通话中的拥塞控制方法 |
CN110417669B (zh) * | 2018-07-09 | 2022-08-26 | 腾讯科技(深圳)有限公司 | 数据包重传控制、网络拥塞检测方法和装置 |
CN111327402B (zh) * | 2018-12-17 | 2021-12-31 | 杭州海康威视数字技术股份有限公司 | 重传数据的方法、装置和系统 |
CN109862038A (zh) * | 2019-03-22 | 2019-06-07 | 江苏睿鸿网络技术有限公司 | 一种流媒体协议中数据延时及丢包的处理方法 |
CN110602568B (zh) * | 2019-08-07 | 2021-06-25 | 武汉兴图新科电子股份有限公司 | 一种基于rtp的视频流传输丢包重传方法、设备及存储设备 |
CN111162877A (zh) * | 2020-01-19 | 2020-05-15 | 西安邮电大学 | 一种音视频服务质量控制的自适应前向纠错方法及应用 |
CN111314335B (zh) * | 2020-02-10 | 2021-10-08 | 腾讯科技(深圳)有限公司 | 数据传输方法、装置、终端、存储介质和系统 |
CN111628992B (zh) * | 2020-05-26 | 2021-04-13 | 腾讯科技(深圳)有限公司 | 一种多人通话控制方法、装置、电子设备及存储介质 |
CN112543296B (zh) * | 2020-11-26 | 2023-04-07 | 中移(杭州)信息技术有限公司 | 延时控制方法、装置和网络设备 |
CN112769526B (zh) * | 2020-12-11 | 2022-06-21 | 邦彦技术股份有限公司 | 数据包重传方法、系统和存储介质 |
CN113573159A (zh) * | 2021-06-11 | 2021-10-29 | 中国大恒(集团)有限公司北京图像视觉技术分公司 | 一种提高千兆网工业相机传输稳定性的方法及系统 |
CN113453114B (zh) * | 2021-06-30 | 2023-04-07 | Oppo广东移动通信有限公司 | 编码控制方法、装置、无线耳机及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1298865A2 (fr) * | 2001-09-28 | 2003-04-02 | Evolium S.A.S. | Procédé pour améliorer les performances d'un protocole de transmission utilisant un temporisateur de retransmission |
CN1412674A (zh) * | 2001-10-09 | 2003-04-23 | 皇家菲利浦电子有限公司 | 用于在-服务器和-移动终端之间传输分组序列的系统 |
CN101114982A (zh) * | 2006-07-24 | 2008-01-30 | 互联天下科技发展(深圳)有限公司 | 一种基于IP网络的音视频QoS算法 |
-
2008
- 2008-04-09 CN CN2008101036433A patent/CN101252425B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1298865A2 (fr) * | 2001-09-28 | 2003-04-02 | Evolium S.A.S. | Procédé pour améliorer les performances d'un protocole de transmission utilisant un temporisateur de retransmission |
CN1412674A (zh) * | 2001-10-09 | 2003-04-23 | 皇家菲利浦电子有限公司 | 用于在-服务器和-移动终端之间传输分组序列的系统 |
CN101114982A (zh) * | 2006-07-24 | 2008-01-30 | 互联天下科技发展(深圳)有限公司 | 一种基于IP网络的音视频QoS算法 |
Also Published As
Publication number | Publication date |
---|---|
CN101252425A (zh) | 2008-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101252425B (zh) | 一种自动适应网络的丢包纠错方法和系统 | |
CN101222311B (zh) | 实时报文丢包恢复方法、系统及接收端单元 | |
US10645448B2 (en) | Buffer-aware transmission rate control for real-time video streaming system | |
US6373842B1 (en) | Unidirectional streaming services in wireless systems | |
US7707303B2 (en) | Method and devices for controlling retransmissions in data streaming | |
CN103533450B (zh) | 一种媒体流可靠传输和接收的方法以及装置 | |
CN101242359B (zh) | 动态码率分配方法、分组域流媒体服务器 | |
US7693058B2 (en) | Method for enhancing transmission quality of streaming media | |
CN101030832B (zh) | 实现实时传输协议报文冗余机制的方法及其系统 | |
US9084177B2 (en) | Adaptive time allocation in a TDMA MAC layer | |
CN1980238A (zh) | 基于实时传输/控制协议的h.264流媒体传输控制方法 | |
EP3252979B1 (en) | Requesting retransmission of data in a multicast network | |
CN102742245A (zh) | 用于解析网络抽象层以实现可靠数据通信的方法和设备 | |
US20050036546A1 (en) | Video data transmission method and apparatus | |
CN113099310A (zh) | 基于安卓平台的实时媒体内视音频协调法 | |
EP2116001A2 (en) | Improving throughput in a lan by managing tcp acks | |
CN101179362A (zh) | 适宜移动流媒体应用的自动重传请求机制 | |
CN101552660A (zh) | 对流媒体数据进行重传、播放的方法、装置及通信系统 | |
US20180331880A1 (en) | Method and system for streaming low-delay high-definition video with partially reliable transmission | |
CN104486690A (zh) | 一种基于tcp协议的移动视频传输优化方法 | |
CN111163362B (zh) | 一种自适应重传等待时间的视频接收方法及系统 | |
CN101110818B (zh) | 一种面向非连接的用户数据协议的优化方法 | |
WO2011088899A1 (en) | Selective caching in a packet network and packet loss repair using selective caching | |
JP2013013093A (ja) | Tcpackの管理によるlanにおけるスループット改善 | |
Akester | A resilient multicast protocol for digital TV over 802.11 wireless networks |
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 | ||
CP03 | Change of name, title or address |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Patentee after: Xinhua three Technology Co., Ltd. Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base Patentee before: Huasan Communication Technology Co., Ltd. |
|
CP03 | Change of name, title or address |