我有什麼替代方法可以在最快的時間內讀取數據包?最快的方式來讀取網絡數據?
在用戶空間中寫驅動程序?
我從來沒有寫過網卡的驅動程序(雖然如果不像編寫整個操作系統那麼困難,我會感興趣?)。我可以獲得已存在的驅動程序代碼,它必須存在於Linux的某個地方,並將其「移植」到用戶空間中嗎? Linux內核驅動程序和我的驅動程序都試圖競爭相同的數據包嗎?
不寫驅動程序,而是從C/C++應用程序堆棧之後立即訪問網絡數據?
我對這種方法不太瞭解 - 所以如果有人可以幫忙,我會很感興趣。
我有興趣實現我自己的零拷貝技術來儘可能快地獲取數據包數據。這臺計算機不需要使用普通的互聯網 - 它可能是兩臺計算機之間的專有網絡連接(對於TCP和UDP)。
編輯:
我的意思是延遲,不吞吐量
你對「快」的目標是什麼?如果是用於吞吐量的話,那是優化的一個分支。如果是迴應時間,那是一個完全不同的學科。 – wallyk
老實說,使用UDP--網絡的最佳效果總是會比協議選擇更大的瓶頸 – bobbybee
除了wallyk說的,它必須是TCP還是UDP?它是否必須基於IP?它是否必須基於以太網? – Joni