[发明专利]一种基于队列的数据传输方法、装置及通信系统在审
申请号: | 201410256758.1 | 申请日: | 2014-06-11 |
公开(公告)号: | CN104052831A | 公开(公告)日: | 2014-09-17 |
发明(设计)人: | 刘全喜;谢彬 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | H04L29/12 | 分类号: | H04L29/12;H04L29/08;H04L12/58;G06F17/30 |
代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 罗振安 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 队列 数据传输 方法 装置 通信 系统 | ||
技术领域
本发明涉及通信技术领域,特别涉及一种基于队列的数据传输方法、装置及通信系统。
背景技术
基于队列的数据传输是在两个设备之间实现异步传输的一种常用方法。
以数据从第一设备传输到第二设备为例,现有的基于队列的数据传输方法包括:第一设备将待传输数据构造为数据报文,并将数据报文写入第一设备和第二设备的共享存储区中;第一设备构造数据报文的PD(Packet Descriptor,报文描述符),将数据报文的PD构造为描述符报文,并将描述符报文写入共享存储区的队列中,数据报文的PD包括数据报文的存储地址和长度等报文信息;第一设备将队列的写指针加1,将加1后的写指针构造为写指针报文,并将写指针报文写入共享存储区中;第二设备根据写指针报文,获知有数据报文写入共享存储区中;第二设备根据队列的读指针,从共享存储区的队列中读取描述符报文;第二设备根据描述符报文,从共享存储区中读取数据报文。至此,待传输数据从第一设备传输到第二设备。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
第一设备向第二设备传输数据时,第一设备需要依次在共享存储区中写入数据报文、描述符报文和写指针报文三个报文,其中只有数据报文包含的是待传输数据,若需要保证报文的有效传输速率(即传输包含待传输数据的报文的速率)为N pps(packet per second,报文数/秒),在需要传输描述符报文和写指针报文的情况下,所需的传输带宽至少为3*N pps,也就是说,传输带宽至少是有效传输速率的3倍,带宽利用率较低。而且,在传输带宽受限的情况下,有可能造成数据的丢弃,传输可靠性较低。
发明内容
为了解决现有技术带宽利用率低,而且在传输带宽受限的情况下,传输可靠性较低的问题,本发明实施例提供了一种基于队列的数据传输方法、装置及通信系统。所述技术方案如下:
第一方面,本发明实施例提供了一种基于队列的数据传输方法,适用于第一设备通过共享存储区向第二设备传输数据,所述共享存储区中设有一个或多个队列、以及与所述队列一一对应的写指针和读指针的缓存区,所述方法包括:
当第一队列未满时,所述第一设备将N个数据报文写入所述共享存储区中,N为正整数且N≥2,所述N个数据报文基于所述第一队列传输,所述第一队列为所述一个或多个队列中的一个;
更新所述共享存储区中的所述第一队列的写指针,所述写指针更新后的值等于所述写指针更新前的值加N。
在本发明的第一种可能的实现方式中,所述方法还包括:
在所述更新所述共享存储区中的所述第一队列的写指针之前,将所述N个数据报文的存储地址和长度构造为一个描述符报文,并将所述描述符报文写入所述第一队列。
在本发明的第二种可能的实现方式中,所述方法还包括:
在每将一个所述数据报文写入所述共享存储区中之后,将所述一个数据报文的存储地址和长度构造为一个描述符报文,并将所述描述符报文写入所述第一队列。
在本发明的第三种可能的实现方式中,所述第一设备将N个数据报文写入所述共享存储区中,包括:
所述第一设备将所述N个数据报文连续写入所述第一队列。
在本发明的第四种可能的实现方式中,所述更新所述共享存储区中的所述第一队列的写指针,包括:
当所述将N个数据报文写入所述共享存储区后的预定时间内没有待发送的数据报文时,或者,当所述N个数据报文后的数据报文基于非第一队列传输时,更新所述共享存储区中的所述第一队列的写指针。
在本发明的第五种可能的实现方式中,所述更新所述共享存储区中的所述第一队列的写指针,包括:
当N达到设定值时,或者,当所述N个数据报文写入所述共享存储区的时间达到设定时间时,更新所述共享存储区中的所述第一队列的写指针。
第二方面,本发明实施例提供了一种基于队列的数据传输方法,适用于第二设备通过共享存储区接收第一设备传输的数据,所述共享存储区中设有一个或多个队列、以及与所述队列一一对应的写指针和读指针的缓存区,所述方法包括:
所述第二设备从所述共享存储区中获取更新后的第一队列的写指针,所述第一队列为所述一个或多个队列中的一个,所述写指针更新后的值等于所述写指针更新前的值加N,N为正整数且N≥2;
根据更新后的所述写指针和所述第一队列的读指针,依次从所述共享存储区中读取N个数据报文,N个所述数据报文基于所述第一队列传输;
更新所述共享存储区中的所述读指针,所述读指针更新后的值等于所述读指针更新前的值加N。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410256758.1/2.html,转载请声明来源钻瓜专利网。