The invention provides a data transmission method, device and server, in which the data transmission method first receives the data packet sent by the sender and puts it into the first data input pipeline; inputs the ordinary data packet from the first data input pipeline to the first level queue of the multi-level queue; judges whether the ordinary data packet in the first level queue is continuous or not according to the packet sequence number; and if it is not continuous. To send a retransmit instruction to the sender and receive the retransmitted data packet sent by the sender, insert the retransmitted data packet into the position corresponding to the missing packet serial number in the multi-level queue, output the data packet before the position corresponding to the retransmitted data packet to the next level queue of the queue in which it belongs, and if the output data packet is discontinuous in the process of the output of the data packet to the next level queue, Send the retransmit instruction to the sender again, and continue to output the packet to the next level queue. The invention reduces the waiting time for sending the retransmit instruction when the retransmit fails, and improves the retransmit efficiency of the data package.
【技术实现步骤摘要】
数据传输方法、装置和服务器
本专利技术涉及数据传输
,尤其是涉及一种数据传输方法、装置和服务器。
技术介绍
将本地采集到的视频信息经过编码压缩,通过网路传输到远端,远端对视频信息进行解码解压缩的过程就是视频通讯;但是在实际的环境中,网络情况千差万别,传输过程中不可避免的会出现数据包丢失,这会给视频通讯的质量带来影响,视频质量会下降,因此,如何在各种各样的网络环境中,实现快速可靠的数据包传输成为一个重要的研究方向。现有技术中丢包重传方法的重传判断通常是基于统计超时的判断,即等待重传包超时后才会发送重传请求,导致重传效率低。
技术实现思路
有鉴于此,本专利技术的目的在于提供数据传输方法、装置和服务器,以提高数据包的重传效率。第一方面,本专利技术实施例提供了一种数据传输方法,该方法应用于接收端,该接收端设置有第一数据输入管道和多级队列;该方法包括:接收发送端发送的数据包,将数据包放入第一数据输入管道;该数据包包括普通数据包和重传数据包;该数据包携带有包序号;将普通数据包从第一数据输入管道输入至多级队列的第一级队列中;根据包序号,判断第一级队列中的普通数据包是否连续;如果普通数据包不连续,向发送端发送重传指令,并接收发送端发送的重传指令对应的重传数据包,将接收到的重传数据包插入至多级队列中缺失的包序号对应的位置;该重传指令中携带有重传数据包的包序号;该重传数据包的包序号包括多级队列中缺失的包序号;将该重传数据包对应的位置之前的数据包,输出至多级队列中重传数据包对应的位置所在队列的下一级队列;在重传数据包对应的位置之前的数据包输出至下一级队列的过程中,如果输出的数 ...
【技术保护点】
1.一种数据传输方法,其特征在于,所述方法应用于接收端,所述接收端设置有第一数据输入管道和多级队列;所述方法包括:接收发送端发送的数据包,将所述数据包放入所述第一数据输入管道;所述数据包包括普通数据包和重传数据包;所述数据包携带有包序号;将所述普通数据包从所述第一数据输入管道输入至所述多级队列的第一级队列中;根据所述包序号,判断所述第一级队列中的所述普通数据包是否连续;如果所述普通数据包不连续,向所述发送端发送重传指令,并接收所述发送端发送的所述重传指令对应的重传数据包,将接收到的所述重传数据包插入至所述多级队列中缺失的包序号对应的位置;所述重传指令中携带有重传数据包的包序号;所述重传数据包的包序号包括所述多级队列中缺失的包序号;将所述重传数据包对应的位置之前的数据包,输出至所述多级队列中所述重传数据包对应的位置所在队列的下一级队列;在所述重传数据包对应的位置之前的数据包输出至所述下一级队列的过程中,如果输出的所述数据包不连续,再次向所述发送端发送重传指令,并继续将所述重传数据包对应的位置之前的数据包输出至所述下一级队列。
【技术特征摘要】
1.一种数据传输方法,其特征在于,所述方法应用于接收端,所述接收端设置有第一数据输入管道和多级队列;所述方法包括:接收发送端发送的数据包,将所述数据包放入所述第一数据输入管道;所述数据包包括普通数据包和重传数据包;所述数据包携带有包序号;将所述普通数据包从所述第一数据输入管道输入至所述多级队列的第一级队列中;根据所述包序号,判断所述第一级队列中的所述普通数据包是否连续;如果所述普通数据包不连续,向所述发送端发送重传指令,并接收所述发送端发送的所述重传指令对应的重传数据包,将接收到的所述重传数据包插入至所述多级队列中缺失的包序号对应的位置;所述重传指令中携带有重传数据包的包序号;所述重传数据包的包序号包括所述多级队列中缺失的包序号;将所述重传数据包对应的位置之前的数据包,输出至所述多级队列中所述重传数据包对应的位置所在队列的下一级队列;在所述重传数据包对应的位置之前的数据包输出至所述下一级队列的过程中,如果输出的所述数据包不连续,再次向所述发送端发送重传指令,并继续将所述重传数据包对应的位置之前的数据包输出至所述下一级队列。2.根据权利要求1所述的方法,其特征在于,所述接收发送端发送的数据包,将所述数据包放入所述第一数据输入管道的步骤之后,包括:根据所述包序号,判断所述第一数据输入管道中的数据包是否连续;如果不连续,向所述发送端发送重传指令,并记录发送所述重传指令的时刻。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:所述第一数据输入管道中的所有数据包输入至所述多级队列的第一级队列后,所述数据包依次从所述第一级队列输出至所述第一级队列的下一级队列;在所述数据包从所述第一级队列输出至所述第一级队列的下一级队列的过程中,判断所述数据包是否连续;如果不连续,将计算当前时刻与在所述第一数据输入管道中所述不连续的数据包发送重传指令的时刻的时间差,如果所述时间差超过预设的时间阈值,则再次发送重传指令,并继续依次将所述第一级队列的数据包输入至所述下一级队列;如果所述时间差没有超过预设的时间阈值,则所述第一级队列停止输出,所述第一级队列的下一级队列中的数据包依次从所述下一级队列依次输出至所述下一级队列的下一级队列;在从所述下一级队列依次输出至所述下一级队列的下一级队列的过程中,判断所述下一级队列中的数据包是否连续,如果不连续,将计算当前时刻与所述不连续的数据包上一次发送重传指令的时间差,如果所述时间差没有超过预设的时间阈值,则所述下一级队列停止输出;如果所述时间差超过预设的时间阈值,则再次发送重传指令,并继续依次将所述下一级队列的数据包输入至所述下一级队列的下一级队列,直到所述数据包输出至所述多级队列的最后一级队列中。4.根据权利要求1所述的方法,其特征在于,所述将接收到的所述重传数据包插入至所述多级队列中缺失的包序号对应的位置的步骤,包括:判断在所述多级队列的第一级队列中是否搜索到所述重传指令对应的重传数据包的包序号对应的位置;如果在所述第一级队列中搜索到对应的位置,将所述重传指令对应的重传数据包插入至所述第一级队列中搜索到的位置;如果在所述第一级队列中搜索不到对应的位置,判断在所述第一级队列的下一级队列是否搜索到所述重传指令对应的重传数据包的包序号对应的位置;如果在所述第一级队列的下一级队列搜索到对应的位置,将所述重传数据包插入至所述下一级队列中搜索到的位置;如果在所述第一级队列的下一级队列搜索不到,判断在所述下一级队列的下一级队列是否搜索到所述重传指令对应的重传数据包的包序号对应的位置,直到搜索到所述包序号对应的位置。5.根据权利要求1所述的方法,其特征在于,所述在所述重传数据包对应的位置之前的数据包输出至所述下一级队列的过程中,如果输出的所述数据包不连续,再次向所述发送...
【专利技术属性】
技术研发人员:马辉辉,董家炜,李树超,
申请(专利权)人:北京数码视讯技术有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。