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