[發明專利]基于Rsockets協議的零拷貝數據傳輸方法在審
| 申請號: | 202110399487.5 | 申請日: | 2021-04-14 |
| 公開(公告)號: | CN113064846A | 公開(公告)日: | 2021-07-02 |
| 發明(設計)人: | 黃旺;劉亞萍;張碩 | 申請(專利權)人: | 中南大學;鵬城實驗室 |
| 主分類號: | G06F13/28 | 分類號: | G06F13/28;H04L29/06 |
| 代理公司: | 湖南企企衛知識產權代理有限公司 43257 | 代理人: | 任合明 |
| 地址: | 410083 *** | 國省代碼: | 湖南;43 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 rsockets 協議 拷貝 數據傳輸 方法 | ||
本發明公開了一種基于Rsockets協議的零拷貝數據傳輸方法,目的是消除拷貝開銷。技術方案是先構建由基于Rsockets協議的RDMA傳輸系統,內存管理模塊,內存處理模塊,工作請求模塊組成的零拷貝數據傳輸系統。發送端和接收端套接字應用創建RDMA資源,內存管理模塊和內存處理模塊配合創建緩存池,建立對緩存池的內存映射,發送端套接字應用從發送緩存發送數據,內存管理模塊和內存處理模塊處理后得到物理地址和頁個數,工作請求模塊構造對應工作請求,RDMA網卡執行工作請求將數據發送到接收端緩存池,接收端內存管理模塊將接收緩存與緩存池中數據物理地址建立內存映射,數據成功到達。本發明實現了零拷貝數據傳輸。
技術領域
本發明涉及網絡傳輸領域,特別涉及以RDMA(Remote Direct Memory Access,遠程直接內存訪問)為核心的高速數據傳輸方法。
背景技術
RDMA能夠將數據從發送方的內存中直接傳送到接收方的內存中,無需操作系統的參與,消耗的CPU資源也非常低。RDMA技術最早是出現在InfiniBand網絡上,后面為了能夠在以太網上使用RDMA技術,InfiniBand行業協會又提出了RoCE(RDMA over ConvergedEthernet,基于融合以太網的RDMA)技術。但與TCP/IP網絡不同的是RoCE并不使用TCP/IP協議棧,而是主要繼承了InfiniBand的通信協議,這導致RoCE無法直接在以TCP/IP網絡為基礎的數據中心部署,大部分的數據中心仍然以套接字(Socket)為核心的應用在運行,如果讓套接字應用都改為RDMA應用,這將是一個龐大且復雜的工程。RoCE網絡協議有類似OSI網絡模型的物理層,鏈路層,網絡層和傳輸層。物理層,鏈路層,網絡層,傳輸層的協議都實現到網卡硬件上,避免操作系統的參與。而上層的軟件部分,由OFA(Open Fabric Alliance)組織負責提供的統一的軟件棧OFED(OpenFabrics Enterprise Distribution),該軟件棧包括驅動,RDMA內核模塊,RDMA庫等功能。OFED提供的RDMA庫稱為Verbs。通過Verbs可以實現RDMA網絡傳輸。下面介紹通過Verbs實現RDMA傳輸的主要方法。
RDMA網絡傳輸方法則具體包括如下步驟:
第一步,獲取RDMA設備鏈表,并選擇其中一個RDMA設備,獲取驅動傳遞上來的設備句柄。
第二步,通過Verbs創建相應的RDMA資源,具體為創建保護域(ProtectionDomain),保護域用于限制其他QP(Queue Pair)訪問保護域內的內存和數據。創建完成隊列(Completion Queue),完成隊列用于通知每次RDMA傳輸的結果。創建隊列對QP(QueuePair),隊列對分為發送隊列(Send Queue,SQ)和接收隊列(Receive Queue,RQ),通過將傳輸任務發布到相關隊列中,讓網卡進行RDMA傳輸工作,發送數據例如SEND,WRITE,READ的工作請求發布到QP的發送隊列中,接收發送方通過SEND操作發送的數據,需要提前將RECEVIE操作的工作請求發布到QP的接收隊列中。注冊內存區域(Memory Region),將需要發送或接收數據的內存信息及對應的物理地址信息注冊到網卡中,并設置訪問權限,由網卡計算并返回對應的key值,此后網卡在訪問相關內存區域時,先獲取到對應的key值,才會進行正確訪問。
第三步,設置QP的狀態為準備發送狀態(即RTS(即Ready To Send))或準備接收狀態(RTR(即Ready To Receive)),設置QP的相關屬性包括發送隊列長度,接收隊列長度。如果是發送方,則將QP的狀態設置為RTS,網卡才可以發送數據,而接收方則需要QP的狀態為RTR,網卡就可以接收數據。在設置QP的狀態過程中,發送方和接收方需要交換隊列對序號(即QPN(Queue Pair Number))和包序號(即PSN(Packet Sequence Number))。
第四步,設置工作請求,并將工作請求發布到QP中,具體根據工作請求類型來決定發布到發送隊列還是接收隊列。并通知網卡有請求發送到QP中,請求網卡處理數據。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中南大學;鵬城實驗室,未經中南大學;鵬城實驗室許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110399487.5/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種具備防振功能的繼電器
- 下一篇:基于情景構建的應急預案生成方法及系統





