首页 > 科技 >

常见网络加速技术浅谈(一)(6)

2018-09-16 01:28:23 网络整理 阅读:130 评论:0

另一个好处在DMA。虽然说每次DMA操作,不需要CPU太多的介入,但是仍然需要CPU配置DMA控制器。DMA的特点在于,无论传输数据的长短,配置工作量是一样的。如果系统内核自己完成TCP Segmentation,那么就有若干个TCP Segments需要通过DMA传给网卡。而采用TSO,因为传输的是一大段数据,只需要配置一次DMA,就可以将数据拷贝到网卡。这也一定程度减轻了CPU的负担。

支持TSO的网卡,仍然会按照TCP/IP协议将网络数据包生成好并发送出去。对于外界系统来说,感受不到TSO的存在。下图是TSO和非TSO下,TCP/IP协议栈对网络数据的处理过程对比。

常见网络加速技术浅谈(一)(6)

TSO带来的提升是明显的,一方面,更多的CPU被释放出来完成别的工作,另一方面,网络吞吐量(throughput)不受CPU负荷的影响,如果没有TSO,当CPU性能不好或者CPU本身负荷已经较大时,CPU将来不及处理足够的网络数据,会导致网络吞吐量下降,延时上升。

TSO需要SG和Checksum offload的支持。因为TCP/IP协议栈并不知道最终的网络数据包是什么样,自然也没办法完成校验和计算。 小结

以上是Linux系统和周边硬件针对网络加速的一些方案,主要思想还是减少CPU处理网络数据包的时间,最开始我们说过,网络传输的核心问题是CPU可以用来处理每个网络包的时间变短了,所以减少CPU处理网络数据包所需的时间是最直观的解决方法。下一篇我们再看看另一种思路的几个相应技术方案,参考的一些链接也一起放到下一篇。

相关文章