公开/公告号CN101179362A
专利类型发明专利
公开/公告日2008-05-14
原文格式PDF
申请/专利权人 中兴通讯股份有限公司;
申请/专利号CN200610138330.2
申请日2006-11-07
分类号H04L1/18(20060101);
代理机构11274 北京中博世达专利商标代理有限公司;
代理人申健
地址 518057 广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦6层法律部
入库时间 2023-12-17 20:11:07
法律状态公告日
法律状态信息
法律状态
2012-07-11
授权
授权
2008-07-09
实质审查的生效
实质审查的生效
2008-05-14
公开
公开
技术领域
本发明涉及一种自动重传请求(ARQ:Automatic Repeat Request)机制,特别涉及一种应用在移动流媒体中的自动重传请求机制。
背景技术
随着移动通信的迅速发展,人们不再满足于获取单独的文本、声音或图像信息,而是希望得到同时包含文本、声音、图像和视频的流媒体信息。而第三代移动通信网络(3G)不仅继承了时分多址接入(TDMA)技术,还发展了一系列全新的码分多址接入(CDMA)技术,使得3G移动网络具备了高速数据传送能力,可以满足人们对流媒体信息日益增长的需求。据国际电信联盟(ITU)定义,3G网络应具备至少144kbit/s的数据传送能力,目前具体运用的传输技术可以实现从384kbit/s~2Mbit/s的速率甚至更高速率的数据传送。随着3G网络的不断延伸及最新无线通信协议的发展和先进3G通信设备的研制成功,无线网络运营商可以随时随地为移动用户提供宽带数据发送及接收应用业务,而其中的流媒体业务则是不同于2G和2.5G的占据重要地位的新业务。移动流媒体技术则是移动通信中流媒体系统的核心技术,但无线传输信道具有误码率高、传输时延大、传输速率不稳定等特点。
通过分组交换网发送实时流媒体数据包的显著特征就是有严格的时间要求和丢包率控制要求。因为网络延迟和视频流的实时性对终端播放质量有很大的影响,在播放所能容忍的时间延迟之前视频流就必须被播放。通常,为了节约带宽,视频数据是被压缩后再在分组网络上传输的,而压缩后的视频数据很少能容忍数据的丢包,因为这样解码器得到的数据中将减少大量的原始数据的信息。所以,除非采用同步码,否则大量的丢包将导致接收端无法正确解码。因为这些错误数据包对播放质量影响很大,所以实时视频流传输的差错控制策略面临的主要问题就是努力恢复丢失的数据包,从而降低对视频播放质量的影响,而传统的解决办法是采用ARQ机制。
ARQ(Automatic Repeat Request)机制又叫自动重传请求机制,其基本原理是发送端对每个要发送的数据包都进行顺序编号,接收端每接收到一个数据包,就向发送端发送ACK确认信息进行应答确认。如果发送端在规定的时间内没有接收到接收者的ACK确认信息,就认为该数据包传输过程中出现差错,就把该数据包重传一次,直到收到接收者ACK确认信息,确定该数据包已被接收端正确接收,才继续发送下一个数据包。但是这种传统的ARQ机制对数据包的确认延迟太长,并不符合移动流媒体对实时性的要求,而且无线信道本身由于误码率很高,如果该ACK应答包本身丢失了,传统的ARQ机制并没有采取一个很好的机制来应付这种情况,再者,传统的ARQ机制没有控制客户端的缓冲区中数据包容量,无法协调丢失包恢复可能性和传输速率的关系,不能维持较高的丢失包恢复可能性。
发明内容
为克服上述缺陷,本发明的目的在于提供一种时延小的适宜移动流媒体应用的自动重传请求机制。
为达到上述发明目的,本发明采用如下技术方案:该适宜移动流媒体应用的自动重传请求机制包括以下步骤:
(1)发送端按播放顺序在每一个数据包中添加序列号并将数据包发送到接收端;
(2)接收端根据其收到数据包的序列号之间的间隔控制重传。
其中,所述的步骤(2)具体为:
(21)接收端检测到其接收到的数据包的序列号有间隔时,请求发送端的重传缓冲区重传该间隔序列号的数据包;
(22)发送端接收到重传请求后,将所述间隔序列号的数据包打上重传标记,通过重传缓冲区向接收端发送该间隔序列号的数据包。
其中,当接收端向发送端发送的重传请求本身丢失时,接收端采用树形数据结构控制方法控制再次发送重传请求,所述的树形数据结构控制方法具体为:
(1)接收端在请求发送端重传该间隔序列号的数据包后,将该间隔序列号的数据包节点信息插入树形数据结构的叶节点;
(2)接收端每接收一个数据包就遍历一次该树形数据结构,并将该树形数据结构每个节点的计数器值减1,当计数器值为0时,接收端对该计数器值为0的间隔序列号的数据包再次向发送端发送重传请求;
(3)当接收端接收到重传数据包时,将接收到的重传该数据包在树形数据结构中对应的叶节点删除;当重传数据包超过网络往返时延时,将该超过网络往返时延的重传数据包在树形数据结构中对应的叶节点删除。
其中,所述间隔序列号的数据包节点信息包括计数器、序列号、左指针和右指针。
其中,接收端将接收缓冲区中的数据容量实时反馈给发送端,发送端根据该数据容量调整数据发送速率。
其中,当间隔序列号的数据包到达接收端之前,接收端已播放到该间隔序列号的数据包时,接收端将刚收到的数据包插入到该间隔中并播放。
从以上分析可以看出,该机制模型的特点就是检测丢包的时候采用一种基于间隔的方法来检测,当丢包发生时候,这种方法能很快的通知发送方重传,因此重传延迟非常小。而且客户端能实时的将缓冲区中的数据包容量反馈给发送端,从而使发送端根据接收端缓冲区中的数据包容量调整发送速率,使接收端的缓冲区中数据包容量维持在一个合适的水平不至于溢出,这样就增加了对丢失包恢复的可能性。另外,该机制采用树型的数据结构来控制重传,这种控制方法对可以省去嵌入式系统中稀缺定时器资源,用于重传请求本身丢失后再次发送重传请求,适合移动终端这种资源有限的嵌入式设备。并且当重传包在到达接收缓冲区之前,接收端的播放已经到达重传包的序列时,如图3中,在重传数据包在到达接收缓冲区之前,接收端已经播放到了播放序列号为3的数据包,本发明采用的弥补方式就是把刚刚收到的数据包直接插入到该间隔,这种方法虽然可能对一瞬间的视频质量产生可以察觉到的影响,但是连续视频流能帮助提高差错恢复效率,从而提高视频流的传输质量,保证视频流的连续性。
附图说明
图1为本发明适宜移动流媒体应用的自动重传请求机制的示意图;
图2为本发明适宜移动流媒体应用的自动重传请求机制的树型数据结构示意图;
图3为本发明适宜移动流媒体应用的自动重传请求机制的树型数据结构节点示意图;
图4为本发明适宜移动流媒体应用的自动重传请求机制的移动流媒体的QoS控制框图。
具体实施方式
对于该端到端的QoS控制策略,我们将发送端到接收端整个过程分为三个阶段来讨论。首先是媒体源数据的编码过程,在编码器端采用改进的PFGS(渐进精细可伸缩性)编码算法来适应无线信道带宽的波动情况,以最大限度的利用带宽,从而提高媒体流的传输质量。其次是服务器端,负责将媒体流数据通过混合IP网络发送给客户端。为了使媒体流数据增强抗误码能力,我们对编码后的媒体数据重要部分做FEC(前向纠错编码)重点保护,然后将编码后的媒体数据进行RTP(实时传输协议)打包,传给发送缓冲区,同时结合RTCP(RTP控制协议)实时将网络的变化情况反馈给QoS控制模块,QoS控制模块将收到的数据进行整理分析后发送给速率控制模块,通过给模块来调整输出的码流速率。最后在接收端,终端用户一边从接收缓冲区中取数据,解包,播放,一边从混合IP网上将数据包暂存于接收缓冲区中,并同时将接收情况反馈给发送端,如果数据包发生丢失,我们采用改进的ARQ机制来重传该包。
由于移动流媒体对实时性要求高,视频流对延迟很敏感,如果数据包在传输过程中丢失了,那接收端将反馈给发送端,从而通过重传缓冲区重传该数据包,本发明适宜移动流媒体应用的自动重传请求机制采用一种基于间隔的方法来检测数据包的丢失,以减少重传延迟。发送端发送的每个数据包包头都包含一个序列号以标明该数据包的播放序列,所以当到达的数据包的序列和希望得到的序列之间有间隔,那我们就立刻做出判断认为有数据包丢失了。当收到的两个连续的数据包的序列号之间有间隔时,接收端通知重传缓冲区重传该数据包,发送方接收到重传请求后,就把需要重传的数据包打上重传标记,并在网络RTD(round tripdelay:往返时延)允许范围内,通过重传缓冲区向接收端发送数据包,直到接收端收到为止。比如,如图1所示,在接收端,当我们已经收到序列号为2的数据包后,我们希望得到序列号为3的数据包,但实际收到的却是序列号为4的数据包,那就认序列号为3的数据包丢失了,那我们就立刻向重传缓冲区发送序列号3的数据包的重传请求(NAK3),通知发送方序列号为3的数据包已经丢失并请求重传,发送方收到NAK3后就把序列号为3的数据包打上重传标记,加到重传缓冲区中,然后向接收端发送该数据包,接收端接收到该重传包后就向发送端发送确认信息,发送端接收到该重传包确认信息后就把重传序列号为3的数据包从重传缓冲区中删除掉。如果整个过程超过了网络的RTD允许范围,那么该数据包也将丢失。由于采用基于间隔的检测数据包丢失的方法中检测过程简单,只需要检测序列号是否有间隔,实现快速检测数据包丢失,可以减小延迟,使得延迟时间能满足移动流媒体的要求,能够满足移动流媒体技术对时延的要求。
如果重传请求本身再丢失了,那这个时候一般需要设置定时器来检测,确定重新发送的时间,在重传请求发出后一定时间内没有收到确认信息就再次发出重传请求。但定时器是系统资源,在嵌入式系统中,这是稀缺资源,它不可能设置在接收端,所以我们提出一种树形数据结构来有效代替定时器,从而实现发送多次重传发送请求。树形数据结构多重传发送请求如图2所示。在图2的树形结构的中,如果客户端检测到有数据包丢失了,就往该结构中插入一个叶节点,从而将需要重传的节点就构成一颗二叉树。如图3所示,在这颗二叉树上的每个节点都包括如下几项,计数器(counter)、序列号、左指针、右指针,其中计数器是表示对该丢失的重传数据包重新发出重传请求的时间,序列号表示该数据包的播放序列号,左指针上指向二叉树的左孩子,右指针指向二叉树的右孩子。当每接收一个新数据包就遍历一次这个二叉树一次,每个节点的counter值就减1,当counter值为0的时,就对该丢失数据包再次发出重传请求。二叉树中节点的couter值选择要合理,不同的网络性能该值不同,但有个原则,该值从初值变为0的时间,必须要小于网络的RTD值,这样就可以防止在还没有进行二次重传时,就因为超过了网络的RTD而被删除。当接收端接收到重传请求包的时候就把该包在二叉树中的节点删除,或者当该包超过了网络的RTD值,那么该包在二叉树中的节点也将删除掉。这种控制多次重传发送请求的方法实现了丢重传数据包丢失后的再次重传,并且不需要用定时器,可以节约系统的定时器资源。
如果当重传数据包在到达接收端缓冲区之前,接收端的播放已经到达重传包的序列时,采取措施来填补该间隔,就是把刚刚收到的数据包直接插入到该间隔,如图4中,在重传数据包在到达接收缓冲区之前,接收端已经播放到了播放序列号为3的数据包,这时就把序列号为4的数据包填补到序列号3的位置,这种方法能进一步帮助提高差错恢复效率,从而提高视频流的传输质量,保证视频流的连续性。
已有的研究表明,当在进行丢包检测时,如果客户端缓存里数据包在保证数据包不溢出的情况下,容量越高,那么对丢失包的恢复可能性能就越大。在图1中,接收缓冲区中数据包的容量将可能由于数据包的丢失、延迟等而发生变化,并当接收端的接收速率b大于播放速率c的时候,接收缓冲区中数据包的容量也将增加,为了保证接收缓冲区数据包得容量较高且不会溢出,本发明将接收端的缓冲区中数据包容量实时反馈给发送方,发送方根据该接收端的缓冲区中数据包容量调整发送方的发送速率,从而保证接收方的接收缓冲区中数据包的容量维持在一定水平且不至于溢出且维持较高的丢失包恢复可能性。
本发明适宜移动流媒体应用的自动重传请求机制是作为移动流媒体QoS控制策略的一部分来实现的。在实际运用中,移动IP网络流媒体的端到端QoS控制系统架构如图4所示,在视频发送端包括视频编码器、UDP/RTP打包、QoS监控、FEC(前向纠错编码)和速率控制、发送缓冲区、重传缓冲区等几个模块。其中,QoS监控包括从RTCP反馈报告中检测出RTT(往返传输时间)和包丢失率等参数。速率控制模块根据RTT和丢失率等参数,估算可用带宽,用于调整编码器的输出码率。接收端的UDP(用户数据协议)/RTP解包模块同时生成接收端反馈信息,传回发送端。视频解码器具有一定的误码恢复能力,包括对时延抖动和丢包的缓冲处理,以及时间和空间域上的错误掩盖等。
机译: 发送和接收混合自动重传请求,混合自动重传请求,ack和nack的方法和系统
机译: 在使用免许可频段的通信系统中支持混合自动重传请求的混合自动重传请求方法及其装置
机译: 一种用于计算冗余的版本号的方法,该方法使用用于在通信系统,计算机程序和网元设备中传输的数据的多个版本的冗余来实现自动重传请求协议的自动重传请求协议。通信系统与许多连接表是已知的,并且通信系统。