發表文章

目前顯示的是 十一月 7, 2013的文章

TCP offload engine (TOE)

圖片
from:http://www.kernelchina.org/node/611
延伸閱讀:Competitive Comparison Intel® I/O Acceleration Technology vs. TCP Offload Engine

TCP減壓引擎,第一次聽說這個名詞,但是並不是一個新的概念了,若干年前聽說過設備廠商在研究在FPGA之中實現TCP Stack,但是後來沒有聽到任何的產品出來,應該是路由設備to host的traffic不多,而對於FW設備,中間的TCP Proxy實現過於復雜,工程上不可能實現。 現在的所謂TOE實現我理解主要用於host的interface之中,用於為Gbits以及10Gbits接口場景中為CPU減壓,例如部署在數據中心內部的服務器,CPU雖然越來越快,但是對於洶湧澎湃的Traffic來說,還是有些力不從心。 上面是TOE應用前後協議棧的差別,我覺得畫的有點絕對,TCP Stack不太可能完全實現在interface之中,其實TOE主要實現如下的offload: 1.TCP/IP Checksum offload CPU可以不用計算checksum而由網卡計算 2.CPU不用考慮數據的分段了,估計是直接將socket送過來的buf交給網卡。 如果是僅僅實現上述功能TOE是很可能工程化實現的。 在另一篇文檔中提到了TOE的一些優勢,但是我的分析,這個可能是要實現TOP替代整個TCP之後的優勢。 1.減少中斷:不用每個報文都產生中斷,如果10G接口這個對於CPU是很大的開銷。 2.減少memory拷貝次數,很多時候網卡的buffer和app的可以直接共享。 3.協議處理的節約,這個是當然的了。
http://en.wikipedia.org/wiki/TCP_offload_engine