一种高并发数据包缓冲方法技术

技术编号:24103265 阅读:34 留言:0更新日期:2020-05-09 14:09
本发明专利技术提供了一种高并发数据包缓冲方法,应用于多路媒体流传输过程中,其方法包括:接收端接收发送端发送的数据包,并对接收的数据包进行入队准备操作;然后对所述数据包进行入队操作,以将所述数据包缓存至设置好的环形缓冲区;最后进行入队后检查操作,以检查当前环形缓冲区中是否有需要抛出的完整帧或者需要丢弃的过期帧。本发明专利技术的有益效果是:本发明专利技术所提出的技术方案能有效应对网络丢包和网络抖动同时存在的情形,减小不必要的重传,对于每路媒体流,可以做到独立处理,不相互影响,提升了高并发媒体流数据在恶劣网络环境下传输的接收效率,减小了对系统资源的消耗,提高了视频传输的质量。

A high concurrent packet buffering method

【技术实现步骤摘要】
一种高并发数据包缓冲方法
本专利技术涉及视频通信领域,尤其涉及一种高并发数据包缓冲方法。
技术介绍
在网络传输的数据类型里,视频数据是一类数据量比较大的数据,对于以音视频数据收发作为主要功能的视频转发服务器而言,其对数据的中转效率显得至关重要。在存在接收多路视频的情况下,如何及时高效地接收收到的数据包,同时减小对服务资源的消耗,保证服务的稳定性,是需要重点考虑的内容。在传统的数据接收机制里面,一般使用一个线性的队列缓冲,缓冲的目的在于等待缺失的数据包,当有完整的音视频帧形成后,将组成此完整帧的所有RTP包取出,并对外转发。在这个过程中,会涉及内存的反复申请和释放,并且在缺失包到达后,存在频繁地寻址插值,影响效率。另外,在有缺失包存在时,往往会进行重传请求,但并非所有的缺失包都是丢失包,也会存在乱序的情况,频繁过快地重传请求还会消耗网络带宽。
技术实现思路
为了解决上述问题,本专利技术提供了一种高并发数据包缓冲方法,应用于多路媒体流传输过程中,针对每路媒体流,接收端均设置有一个环形缓冲区;针对每路媒体流,接收端本文档来自技高网...

【技术保护点】
1.一种高并发数据包缓冲方法,应用于多路媒体流传输过程中,其特征在于:针对每路媒体流,接收端均设置有一个环形缓冲区;/n针对每路媒体流,接收端的具体缓存方法包括如下步骤:/nS101:接收端接收发送端发送的数据包,并对接收的数据包进行入队准备操作,以判断所述数据包是否达到入队要求?若是,则到步骤S102;否则,将所述数据包直接丢弃,并到步骤S104;/nS102:对所述数据包进行入队操作,以将所述数据包缓存至设置好的环形缓冲区;/nS103:进行入队后检查操作,以检查当前环形缓冲区中是否有需要抛出的完整帧或者需要丢弃的过期帧;/nS104:进入下一次传输,接收端接收发送端下一次发送的数据包。/...

【技术特征摘要】
1.一种高并发数据包缓冲方法,应用于多路媒体流传输过程中,其特征在于:针对每路媒体流,接收端均设置有一个环形缓冲区;
针对每路媒体流,接收端的具体缓存方法包括如下步骤:
S101:接收端接收发送端发送的数据包,并对接收的数据包进行入队准备操作,以判断所述数据包是否达到入队要求?若是,则到步骤S102;否则,将所述数据包直接丢弃,并到步骤S104;
S102:对所述数据包进行入队操作,以将所述数据包缓存至设置好的环形缓冲区;
S103:进行入队后检查操作,以检查当前环形缓冲区中是否有需要抛出的完整帧或者需要丢弃的过期帧;
S104:进入下一次传输,接收端接收发送端下一次发送的数据包。


2.如权利要求1所述的一种高并发数据包缓冲方法,其特征在于:所述环形缓冲区,被初始化为具有n个相同大小存储单元且首尾相连的环形缓存空间,每个存储单元的存储空间大小为x字节,且每个存储单元均有一个单元序号,存储于单元序号为0的存储单元的数据包为队首包;其中,n和x均为预设值,且n的取值范围为[1024,2048],x大于0。


3.如权利要求2所述的一种高并发数据包缓冲方法,其特征在于:所述媒体流包括音频流和视频流,所述数据包包括与所述音频流和所述视频流分别对应的音频数据包和视频数据包;对于每路媒体流,发送端从0开始对每个数据包依次进行标号,以作为各数据包的序号,每个数据包的所述帧位置信息为各数据包在其所属的帧数据中的位置信息。


4.如权利要求3所述的一种高并发数据包缓冲方法,其特征在于:步骤S101中,发送端使用标准RTP数据包格式将数据包发送给接收端;并将该数据包的序号及其所在帧位置信息一起发送至接收端。


5.如权利要求4所述的一种高并发数据包缓冲方法,其特征在于:步骤S101中,对接收的数据包进行入队准备操作,以判断所述数据包是否达到入队要求,具体包括:
S201:判断所述数据包是否为重复包?若是,则为不符合入队要求的数据包,直接丢弃;否则,到步骤S202;其中,所述数据包应放入的位置处已经存在与其序号相同的数据包,则认为所述数据包为重复包;
S202:判断是否到来太迟?若是,则为不符合入队要求的数据包,直接丢弃;否则,为符合入队要求的数据包,并到步骤S203;其中,若所述数据包的序号小于环形缓冲区的队首包的序号,则认为所述数据包到来太迟;
S203:判断所述数据包在环形缓冲区的待插入位置处是否存在其它不同序号的数据包?若是,则说明当前环形缓冲区已经满了,则对当前环形缓冲区进行扩充或者删除首帧数据;否则,为正常数据包,进行正常缓存;其中,若对当前环形缓冲区进行扩充,则在当前环形缓冲区的队首包和队尾包之间,扩充S个单位的缓存区间;S大于0,为预设值;所述首帧数据,为队首包所在的帧的所有数据包。


6.如权利要求5所述的一种高并发数据包缓冲方法,其特征在于:步骤S102中,对所述数据包进行入队操作,具体包括:
根据所述数据包的序号对其在环形缓冲区的待插入位置的单元序号进行索引,具体为:将所述数据包的序号对缓存区单元总数进行取余,并将取...

【专利技术属性】
技术研发人员:程家明孔繁东饶佳程钰
申请(专利权)人:武汉兴图新科电子股份有限公司
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1