零拷贝概念 -- linux内核
生活随笔
收集整理的這篇文章主要介紹了
零拷贝概念 -- linux内核
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
零拷貝(zero-copy)
備快速網絡接口的主要技術。
零拷貝技術通過降低或消除關鍵通信路徑影響速率的操作,降低傳輸數據的操作系統開銷和協議處理開銷,從而有效提高通信性能,實現快速傳輸數據。
零拷貝技術能夠降低數據拷貝和共享總線操作的次數,消除通信數據在存儲器之間不必要的中間拷貝過程,有效地提高通信效率,是設計快速接口通道、實現快速server和路由器的關鍵技術之中的一個。
數據拷貝受制于傳統的操作系統或通信協議,限制了通信性能。採用零拷貝技術,通過降低數據拷貝次數,簡化協議處理的層次,在應用和網絡間提供更快的數據通路。能夠有效地降低通信延遲,添加網絡吞吐率。
零拷貝技術的研究主要針對下面兩個方面:
(1) 創建有效的用戶級通信接口,即應用程序直接將數據從通信接口發送出去或接收進來,消除系統內核中不必要的拷貝過程。
(2) 路由器的入端到出端的直接傳輸數據,即接收的報文僅僅經過一次存儲器緩沖。而緩沖隊列中的報文經過必要的控制信息處理后,直接傳送到輸出port發送出去,實現報文高速轉發。
一般來說, 覺得從網卡到用戶空間的系統調用會經歷兩次或者兩次半的copy過程.
zero copy就是要消除這些copy過程.
從網卡的ring-buffer到software packets的copy能夠通過直接DMA數據到software packet完畢.
所謂半次copy能夠有hardware checksum offload來解決.
最后的內核空間到用戶空間的copy還存在問題, 近期提出的比較好的方案是IOAT2技術, 能夠直接做Host memeory對Host memroy的DMA.
也看到有人使用把DMA的buffer直接map到用戶空間的解決方式, 但這個對用戶空間的程序不是透明的, 不具備普遍意義.
版權聲明:本文博主原創文章。博客,未經同意不得轉載。
轉載于:https://www.cnblogs.com/hrhguanli/p/4851993.html
總結
以上是生活随笔為你收集整理的零拷贝概念 -- linux内核的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: #CSS# 初识CSS
- 下一篇: [C/C++]重读《The C Prog