一种实现流量控制的丢包重传方法技术

技术编号:22081911 阅读:28 留言:0更新日期:2019-09-12 16:21
本发明专利技术公开了一种实现流量控制的丢包重传方法,包括以下步骤:将要发送的媒体数据封装成媒体包,对媒体包进行编号,在发送端创建循环发送队列,按照顺序发送媒体包,并且将媒体包放到发送队列中。本发明专利技术所述的一种实现流量控制的丢包重传方法,通过调整放弃重传阈值的大小,可以支持0%到100%的丢包率,很好的满足了用户对时延的各种需求,可以最大程度的传输音视频资源,且可以将网络流量控制住,减少数据丢包率对声音和图像播放的影响,而且解决丢包的问题同时也考虑到了时延的问题,不会出现同一个媒体包连续1到N次的重传请求造成时延的加大的情况,可以更大程度的满足用户的各种需求,带来更好的使用前景。

A Packet Loss Retransmit Method for Flow Control

【技术实现步骤摘要】
一种实现流量控制的丢包重传方法
本专利技术涉及数据传输领域,特别涉及一种实现流量控制的丢包重传方法。
技术介绍
在视频会议、监控系统及网络直播中,用户对体验提出了更高的要求,即需要时延小同时还要流畅不花屏,当视频源处于偏远山区等网络建设不完善,网络信号状态不好的地区时,传输音视频资源容易发生数据包丢包现象。音视频源数据包丢失,接收方不能获取完整的音视频数据,导致播放的图像花屏声音卡顿,致使监控任务失败而发生重大经济损失或者用户体验极度不好而流失用户,为此,我们提出一种实现流量控制的丢包重传方法。
技术实现思路
本专利技术的主要目的在于提供一种实现流量控制的丢包重传方法,可以有效解决
技术介绍
中的问题。为实现上述目的,本专利技术采取的技术方案为:一种实现流量控制的丢包重传方法,包括以下步骤:(1)、将要发送的媒体数据封装成媒体包,对媒体包进行编号,在发送端创建循环发送队列,按照顺序发送媒体包,并且将媒体包放到发送队列中;(2)、在接收端创建对应的线性接收队列,将接收到的媒体包放置到对应的线性接收队列中;(3)、扫描接收队列,接收端将空缺序号对应的媒体包的信息发送给发送端,进行重传请求;(4)、发送端收到重传请求后,根据重传请求包里的序号从队列中找到相应的媒体包并发送出去,直到接收端接收队列中没有不连续的序号。优选的,所述步骤(1)中,媒体数据封装成媒体包后媒体包携带媒体数据、数据长度、序号和包间时长,序号是一个无符号短整形的值,其最大值是65536,初始值为0-65536的任意值,媒体包的序号为连续的。优选的,所述步骤(1)中,循环发送队列的每一项称为一个盒子,发送后,媒体包存储在一个盒子里,盒子均可重复利用。优选的,所述步骤(1)中,媒体包传输前开辟两个传输通道,一个基于UDP的媒体通道,一个基于TCP的信令通道,媒体通道负责发送和接收媒体数据,信令通道负责发送和接收信令数据。优选的,所述步骤(2)中,线性接收队列的每一项称为一个盒子,每个盒子都有一个索引信息,索引值从0开始,数量与媒体包数量相同,接收到的媒体包需要增加接收时间信息,根据媒体包中的序号对65536取模得到一个索引,取模后的索引就是该媒体包在线性接收队列中的存储位置。优选的,所述步骤(3)中,扫描接收队列后没有出现不连续的序号,则将队列前一个媒体包提交给上层应用并将该媒体包从队列中擦除掉,例如,当接收到第一媒体包时不立即返回,其后每接收到一个媒体包,只要该媒体包的序号是连续的则返回最前面的一个媒体包,将最前面的一个媒体包提交给上层应用并将该媒体包从队列中擦除掉。优选的,所述步骤(3)中,扫描队列时需要设置一个可以重传阈值和放弃重传阈值。优选的,所述步骤(3)中,扫描到出现不连续的序号时,判断已经接收到的媒体包得到该空缺包的序号以及上一个媒体包的接收时间到现在时间的时间差,判断时间差与可以重传阈值和放弃重传阈值的大小,时间差小于可以重传阈值时不做处理,时间差大于放弃重传阈值并且小于可以重传阈值时,构造一个包含序号的重传请求包通过信令通道发送到发送端请求重传该序号的媒体包,时间差大于放弃重传阈值时返回空缺序号前面的包媒体包。优选的,所述步骤(4)中,发送端开辟一个新线程用于循环处理重传请求,接收到一个重传请求包,根据重传请求包中的序号搜索发送队列,查看发送队列中是否存在该序号的媒体包,如果在发送队列中存在该媒体包,则取出该媒体包并发送出去,发送列队状态不变。与现有技术相比,本专利技术具有如下有益效果:该一种实现流量控制的丢包重传方法,通过调整放弃重传阈值的大小,可以支持0%到100%的丢包率,很好的满足了用户对时延的各种需求,通过调小放弃重传阈值,时延也相应变小,可以最大程度的传输音视频资源,且可以将网络流量控制住,使数据丢包率降低,减少数据丢包率对声音和图像播放的影响,而且解决丢包的问题同时也考虑到了时延的问题,不会出现同一个媒体包连续1到N次的重传请求造成时延的加大的情况,可以更大程度的满足用户的各种需求,使用效果相对于传统方式更好。附图说明图1为本专利技术一种实现流量控制的丢包重传方法的整体方法步骤图;图2为本专利技术一种实现流量控制的丢包重传方法中发送队列的流程图;图3为本专利技术一种实现流量控制的丢包重传方法中接收端处理的流程图;图4为本专利技术一种实现流量控制的丢包重传方法中发送请求重传的媒体包的流程图。具体实施方式为使本专利技术实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体实施方式,进一步阐述本专利技术。实施例(1)、将要发送的媒体数据封装成媒体包,对媒体包进行编号,在发送端创建循环发送队列,按照顺序发送媒体包,并且将媒体包放到发送队列中;媒体数据封装成媒体包后媒体包携带媒体数据、数据长度、序号和包间时长,序号是一个无符号短整形的值,其最大值是65536,初始值为0-65536的任意值,媒体包的序号为连续的;循环发送队列的每一项称为一个盒子,发送后,媒体包存储在一个盒子里,盒子均可重复利用;媒体包传输前开辟两个传输通道,一个基于UDP的媒体通道,一个基于TCP的信令通道,媒体通道负责发送和接收媒体数据,信令通道负责发送和接收信令数据。(2)、在接收端创建对应的线性接收队列,将接收到的媒体包放置到对应的线性接收队列中;线性接收队列的每一项称为一个盒子,每个盒子都有一个索引信息,索引值从0开始,数量与媒体包数量相同,接收到的媒体包需要增加接收时间信息,根据媒体包中的序号对65536取模得到一个索引,取模后的索引就是该媒体包在线性接收队列中的存储位置。(3)、扫描接收队列,接收端将空缺序号对应的媒体包的信息发送给发送端,进行重传请求;扫描接收队列后没有出现不连续的序号,则将队列前一个媒体包提交给上层应用并将该媒体包从队列中擦除掉,例如,当接收到第一媒体包时不立即返回,其后每接收到一个媒体包,只要该媒体包的序号是连续的则返回最前面的一个媒体包,将最前面的一个媒体包提交给上层应用并将该媒体包从队列中擦除掉;扫描到出现不连续的序号时,判断已经接收到的媒体包得到该空缺包的序号以及上一个媒体包的接收时间到现在时间的时间差,判断时间差与可以重传阈值和放弃重传阈值的大小,时间差小于可以重传阈值时不做处理,时间差大于放弃重传阈值并且小于可以重传阈值时,构造一个包含序号的重传请求包通过信令通道发送到发送端请求重传该序号的媒体包,时间差大于放弃重传阈值时返回空缺序号前面的媒体包。(4)、发送端收到重传请求后,根据重传请求包里的序号从队列中找到相应的媒体包并发送出去,直到接收端接收队列中没有不连续的序号;发送端开辟一个新线程用于循环处理重传请求,接收到一个重传请求包,根据重传请求包中的序号搜索发送队列,查看发送队列中是否存在该序号的媒体包,如果在发送队列中存在该媒体包,则取出该媒体包并发送出去,发送列队状态不变。需要说明的是,本专利技术为一种实现流量控制的丢包重传方法,发送端和接收端即可以是软件也可以是硬件产品;阈值的值根据媒体包携带的包间时长设置,可以重传阈值小于放弃重传阈值,由于路由的原因各个媒体包到达的顺序和发送顺序是不一致的,先发送的包有可能晚到达,可以重传阈值设置超过媒体包正常传输时间的1.2倍,具体值可以综合考虑包间时长和往返时延RTT值来设置;本专利技术基于音本文档来自技高网...

【技术保护点】
1.一种实现流量控制的丢包重传方法,包括以下步骤:(1)、将要发送的媒体数据封装成媒体包,对媒体包进行编号,在发送端创建循环发送队列,按照顺序发送媒体包,并且将媒体包放到发送队列中;(2)、在接收端创建对应的线性接收队列,将接收到的媒体包放置到对应的线性接收队列中;(3)、扫描接收队列,接收端将空缺序号对应的媒体包的信息发送给发送端,进行重传请求;(4)、发送端收到重传请求后,根据重传请求包里的序号从队列中找到相应的媒体包并发送出去,直到接收端接收队列中没有不连续的序号。

【技术特征摘要】
1.一种实现流量控制的丢包重传方法,包括以下步骤:(1)、将要发送的媒体数据封装成媒体包,对媒体包进行编号,在发送端创建循环发送队列,按照顺序发送媒体包,并且将媒体包放到发送队列中;(2)、在接收端创建对应的线性接收队列,将接收到的媒体包放置到对应的线性接收队列中;(3)、扫描接收队列,接收端将空缺序号对应的媒体包的信息发送给发送端,进行重传请求;(4)、发送端收到重传请求后,根据重传请求包里的序号从队列中找到相应的媒体包并发送出去,直到接收端接收队列中没有不连续的序号。2.根据权利要求1所述的一种实现流量控制的丢包重传方法,其特征在于:所述步骤(1)中,媒体数据封装成媒体包后媒体包携带媒体数据、数据长度、序号和包间时长,序号是一个无符号短整形的值,其最大值是65536,初始值为0-65536的任意值,媒体包的序号为连续的。3.根据权利要求1所述的一种实现流量控制的丢包重传方法,其特征在于:所述步骤(1)中,循环发送队列的每一项称为一个盒子,发送后,媒体包存储在一个盒子里,盒子均可重复利用。4.根据权利要求1所述的一种实现流量控制的丢包重传方法,其特征在于,所述步骤(1)中,媒体包传输前开辟两个传输通道,一个基于UDP的媒体通道,一个基于TCP的信令通道,媒体通道负责发送和接收媒体数据,信令通道负责发送和接收信令数据。5.根据权利要求1所述的一种实现流量控制的丢包重传方法,其特征在于:所述步骤(2)中,线性接收队列的每一项称为一个盒子,每个盒子都有一个索引信息,索引值从0开始,数量与媒体包数量相同,接收到的媒体包需要增加接收时间...

【专利技术属性】
技术研发人员:周志文梁智游奉诗斌张星
申请(专利权)人:深圳市麦谷科技有限公司
类型:发明
国别省市:广东,44

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

1