问题是高速以太网和吉比特以太网以高速率传输1,518-byte 标准以太网数据包。吉比特以太网每秒钟可以收发50,000个包。即使是该速率中的一个小片断,同样需要以太网控制器的中断开销,网络协议开销,而且原始传输速率远大于处理器的能力。
如何使能力不够强大的处理器和软件与这些新的接口匹配呢?答案很简单:很困难。但幸运的事,最新的PCI以太网控制其提供了硬件支持,从而分担了CPU的负荷。
让我们来看一下该控制器的一些特性,对嵌入式系统的网络支持和TCP/IP驱动程序的开发是有益的。
不是每个数据包都产生一个中断,而是让控制器每一组数据包才产生一个中断。这样可以减少中断频率,从而减少CPU的开销并提高其吞吐量。
增加以太网数据包的大小相当于减少了每个包的开销。当以太网的误码率高的时候,才采用标准的1,518-byte 数据包。现在,物理层组件和电缆提供了更好的性能,允许大型数据包。
尽管需要特别的驱动程序和路由器的支持,现在通常使用9,000 bytes 的大型数据包。9,000-byte 的限制主要有以下几个原因: 它在12,000-byte 门限一下, 再高的话,32-bit 以太网数据包的CRC 就不那么有效了,另外,他还要与UNIX 网络文件系统(NFS) 的8,192-byte 块加上包头相适应。.
以太网数据包需要CRC 效验,而且大多数以太网控制器将自动产生和验证CRC 效验。
现代的控制器更进一步:你能够只是它们产生和验证IP, UDP, and TCP的头效验,以及包的数据净荷。这就分担了CPU的大量工作,极大的改善了性能。
TCP的分割使进一步处理数据包的内容。它允许CPU 给控制器一大块数据,并告诉它自动分割成多个TCP/IP 数据包来传输。
现在使用10-, 100-, or 1,000-Mbps PCI 以太网芯片组来支持全部和部分特性的设备有Broadcom, Intel, 和 National Semiconductors。
对于高速以太网和吉比特以太网的更高级特性,就需要你来改善与10-Mbps以太网的连接了。
即使你不需要使用这些设备,当你需要针对高速网络接口设计网络驱动和TCP/IP协议栈的时候,了解他们还是很有价值的。