TSO和LRO技术都是为了提高网络传输的效率,降低CPU的负载,他们在不同的场景下发挥着重要的作用。随着网络技术的不断发展,这些技术也将得到更广泛的应用。
TSO是一种利用网卡的处理能力,对大数据包进行分段,降低CPU发送数据包负载的技术,需要网卡硬件及驱动的支持。TSO主要目的是提高大型数据包(如TCP数据包)的传输效率。在传统的网络传输中,大型数据包需要被分段,每段独立传输,接收端再重新组装。这个过程需要在网络层进行,消耗较多的计算资源。TSO技术则将这些任务卸载到网卡上,减少了CPU的负载,提高了传输效率。
TSO的整体分片原理如图1所示,协议栈下发大包给驱动,硬件根据协议栈协商的MSS(最大报文段长度)的大小,对报文进行切片操作,除最后一个报文外,前边切片报文的大小都是MSS。针对切片后的报文,硬件还要对小包添加报文头等信息,同时计算切片后报文的校验和信息。
TSO技术适用于需要大量传输大型数据包的场景,如高性能计算、大型数据库、云计算等。
LRO主要用于优化大型数据包的接收效率。LRO通过将接收到的多个TCP数据聚合成一个大的数据包,然后传递给网络协议栈处理,来减少上层协议栈处理的开销,提高系统接收TCP数据包的能力。
LRO技术通过硬件实现,如网络接口卡上的专用芯片,用于处理大型数据包的合并、内存分配等任务。
LRO技术实现原理如图2所示。
LRO技术适用于需要接收大量大型数据包的场景,如高性能计算、大型数据库、云计算等。