大段卸载
在计算机网络中,大段卸载(Large Segment Offload,简称LSO)是一种在高带宽网络中用于减少CPU使用率和增加发送吞吐量的技术,该技术通过网卡对过大的数据分段,而无需协议栈参与。该技术还有一些别称,当应用于TCP时被称为TCP段卸载(TSO),也有些时候被称为通用段卸载(GSO)。
与之对应,大接收卸载是用于接收大段卸载的数据的一种技术。
介绍
编辑当一个系统需要通过网络发送一大段数据时,计算机需要将这段数据拆分为多个长度较短的数据,以便这些数据能够通过网络中所有的网络设备(例如路由器、交换机),这个过程被称作分段。通常,这个过程由计算机系统中的协议栈完成,而大段卸载技术将这一过程交给网卡处理,从而减少了CPU使用率。
例如,一个64KB的数据在发送前通常会被分为46个小段,每一段1448字节(这个值与MTU有关)。如果网卡支持大段卸载技术,计算机既可以将这64KB数据直接交给网卡,网卡会将其拆分为不大于1448的小段,并根据TCP/IP协议栈提供的模板为每个小段增加传输层、网络层以及数据链路层头部。许多2014年后新推出的网卡都具备了这种技术。
一些网卡在处理TCP数据时使用TSO技术,即每个小段都包含完整的TCP头部。而对于其他传输层协议(例如UDP)则使用IP分片。