关于网卡特性TSO、UFO、GSO、LRO、GRO
我們來(lái)看下關(guān)于網(wǎng)卡特性的解釋,不過(guò)記住GSO和GRO兩個(gè)特性就好。
TSO(TCP Segmentation Offload),是利用網(wǎng)卡對(duì)TCP數(shù)據(jù)包分片,減輕CPU負(fù)荷的一種技術(shù),也有人叫 LSO (Large segment offload) ,TSO是針對(duì)TCP的,UFO是針對(duì)UDP的。如果硬件支持 TSO功能,同時(shí)也需要硬件支持的TCP校驗(yàn)計(jì)算和分散/聚集 (Scatter Gather) 功能。如果網(wǎng)卡支持TSO/GSO,可以把最多64K大小的TCP payload直接往下傳給協(xié)議棧,此時(shí)IP層也不會(huì)進(jìn)行segmentation,網(wǎng)卡會(huì)生成TCP/IP包頭和幀頭,這樣可以offload很多協(xié)議棧上的內(nèi)存操作,節(jié)省CPU資源,當(dāng)然如果都是小包,那么功能基本就沒(méi)啥用了。
GSO(Generic Segmentation Offload),GSO是TSO的增強(qiáng),GSO不只針對(duì)TCP,對(duì)任意協(xié)議。比TSO更通用,推遲數(shù)據(jù)分片直至發(fā)送到網(wǎng)卡驅(qū)動(dòng)之前,此時(shí)會(huì)檢查網(wǎng)卡是否支持分片功能(如TSO、UFO),如果支持直接發(fā)送到網(wǎng)卡,如果不支持就進(jìn)行分片后再發(fā)往網(wǎng)卡。
LRO(Large Receive Offload),通過(guò)將接收到的多個(gè)TCP數(shù)據(jù)聚合成一個(gè)大的數(shù)據(jù)包,然后傳遞給網(wǎng)絡(luò)協(xié)議棧處理,以減少上層協(xié)議棧處理 開(kāi)銷,提高系統(tǒng)接收TCP數(shù)據(jù)包的能力。
GRO(Generic Receive Offload),跟LRO類似,克服了LRO的一些缺點(diǎn),更通用。后續(xù)的驅(qū)動(dòng)都使用GRO的接口,而不是LRO。
在系統(tǒng)中可以通過(guò)ethtool命令來(lái)進(jìn)行查看,如下:
#ethtool -k eth0
generic-segmentation-offload: on
generic-receive-offload: on
TSO、UFO、GSO是對(duì)應(yīng)網(wǎng)絡(luò)發(fā)送, LRO、GRO是在接收方向上。
我們只需要記住GSO/GRO兩個(gè)關(guān)鍵字就好了,因?yàn)镚SO是TSO/UFO的升級(jí),GRO是LRO的升級(jí)。
總結(jié)
以上是生活随笔為你收集整理的关于网卡特性TSO、UFO、GSO、LRO、GRO的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: RotatedRect 类的用法
- 下一篇: 远程办公兴起后,更多美国公司把高技能岗位