[發明專利]一種基于隊列的數據傳輸方法、裝置及通信系統在審
| 申請號: | 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.szxzyx.cn/pat/books/201410256758.1/2.html,轉載請聲明來源鉆瓜專利網。





