[发明专利]一种数据包序列接收的方法及设备有效
申请号: | 200710301380.2 | 申请日: | 2007-12-25 |
公开(公告)号: | CN101188477A | 公开(公告)日: | 2008-05-28 |
发明(设计)人: | 余凡 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | H04L1/00 | 分类号: | H04L1/00;H04L29/06 |
代理公司: | 北京德琦知识产权代理有限公司 | 代理人: | 宋志强;麻海明 |
地址: | 518129广东省*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据包 序列 接收 方法 设备 | ||
技术领域
本发明涉及数据包接收技术,特别涉及一种数据包序列接收的方法及设备。
背景技术
在网络中,发送端将需要发送的数据封装在各种协议的数据包里进行传输。虽然不同协议的数据包报文头部格式不同,但在数据包报文头部中都包含有两个常见的信息字段:序号(Sequence Number)和时戳(Timestamp)。接收端接收到发送端发送的数据包后,根据数据包报文头部中包含的序号或时戳信息作为重排序的依据,恢复发送端发出的原始数据包序列。
以播放音视频为例,服务器每次从节目中获取一帧数据,分成几个实时传输协议(RTP,Real Time Protocol)数据包,将编码数据封装成RTP数据包,然后将时戳和序号添加到RTP包头,属于同一帧的数据包具有相同的时戳。当到达数据包所应播放的时间后,服务器便将这一帧的音视频数据包发送出去,然后再读取下一帧数据。
音视频RTP数据包经互联网络传输到客户接收端后,先进入一个缓冲队列等待,这个缓冲队列中的所有数据包按照包头中包含的序号重新排序,如果有迟到的数据包,则根据迟到的数据包中包含的序号重新将迟到的数据包插入到正确的位置上,以避免乱序的问题。
客户接收端每次从缓冲队列头部读取一帧的数据,从包头中包含的时戳信息解出该帧的播放时间,然后进行音视频同步处理。同步后的数据将送入解码器进行解码,解码后的数据被送入一个循环读取的缓存中等待。一旦该帧的播放时间到达,解码数据就被从缓存中取出,送入播放模块驱动底层硬件设备进行显示或播放。客户接收端还可根据序列号对丢失、损坏和重复的数据包进行检测。
在现有技术中,例如上述播放音视频中,客户接收端根据数据包包头包含的序号对发送端发送的原始数据包重新排序,恢复原始数据包序列。在实际应用中,如果发送的数据包间隔发生变化,也就是数据包包头序号信息所表示的时间长度发生变化时,基于序号排序不能体现出这种数据包发包的间隔变化,因此,在现有技术中,对于发包时间间隔变化的数据包,采用其它控制处理技术,需要额外的处理开销。
此外,发送端发送的数据包时间间隔正常,而序号可能因为某种原因清零或发生大的跳变的情况下,客户接收端接收数据包,根据包含的序号(序号清零或发生大的跳变)不能确定发送端的情况,增加了进行统计和处理的复杂度。
进一步地,如果客户接收端单纯根据接收的数据包包含的序号来恢复发送端的原始数据包序列,在某些应用场合下会受限于序号的位宽。举例来说,如果序号位宽为16bit,则序号的最大值为65535,传输过程中,可能很快就将出现序号溢出的现象,如果序号位宽更小,序号溢出的频率也就越频繁,需要系统增加额外的开销来处理序号溢出回转归零问题,降低了系统资源的利用率。
现有技术中另外一种恢复发送端的原始数据包序列的方法是通过数据包中包含的时戳信息,客户接收端根据时戳对原始数据包序列重新排序。发送端在采样数据包分组中的第一个字节设置时戳,时戳值随着发送分组的时间推迟而递增,客户接收端接收到数据包后,利用时戳信息重建数据包原始时间,同步数据包,并以正确的速率播放信息。
但上述基于时戳恢复原始数据包序列的方法,时戳精度要求较高,相对于序号,相同位宽的时戳,其溢出的频率比序号快很多,这也需要增加系统额外的开销来处理溢出回转归零问题。
发明内容
本发明实施例提供一种数据包序列接收的方法,可以适应不同的数据包时间间隔,提高资源利用率。
本发明实施例还提供一种数据包序列接收的设备,可以适应不同的数据包时间间隔,提高资源利用率。
为达到上述目的,本发明实施例的技术方案具体是这样实现的:
一种数据包序列接收的方法,该方法包含:
接收数据包序列,为接收的数据包分配虚拟序号;
当接收的当前数据包是第一个分配虚拟序号的数据包以后的数据包时,根据上一个数据包虚拟序号及时戳信息、当前数据包时戳信息以及最小数据打包间隔获取当前数据包的虚拟序号;
根据虚拟序号对所述接收的数据包序列重新排序。
一种数据包序列接收的设备,该设备包含:
数据包接收单元,用于接收数据包序列;
虚拟序号生成单元,用于给数据包接收单元接收到的数据包分配虚拟序号,并在接收单元接收到的当前数据包是第一个分配虚拟序号的数据包以后的数据包时,根据上一个数据包虚拟序号及时戳信息、当前数据包时戳信息,以及最小数据打包间隔获取当前数据包的虚拟序号;
数据包处理单元,用于根据数据包包含的虚拟序号对接收的数据包序列重新排序。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200710301380.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种装饰无纺布的生产方法
- 下一篇:一种二代身份证验证阅读器