¿Cuáles son las ventajas de usar FPGA para la descarga / análisis TCP?

Una vez que se consideró que la sobrecarga del procesamiento TCP valía la pena procesarla en hardware.
http://en.wikipedia.org/wiki/TCP…

Hay muchas sumas de comprobación, almacenamiento en búfer y reensamblado en TCP que ocupa recursos de procesamiento. La antigua regla general era que se necesitaba 1Hz para procesar 1 bit de datos. Por lo tanto, un núcleo de CPU de 2Ghz podría manejar 2Gbps de procesamiento TCP. Personalmente he encontrado que esto no está a escala en el paso.

A menudo también vería TOE en NIC especiales diseñados para iSCSI.
(El almacenamiento siempre ha recibido una prima).

Siento que las CPU de propósito general y los sistemas de múltiples núcleos se han puesto al día en gran medida con las necesidades de procesamiento para manejar TCP.

También hay una escasez de soporte para TCP Offload Engines en Linux. La comunidad Linux no ha estado muy entusiasmada con la interacción con las pilas de proveedores propietarios para descargar TCP.

Me imagino que TOE reaparecerá a medida que las NIC 10G se vuelvan más convencionales, pero eso aún no ha sucedido. (posiblemente debido a la falta de un 10GE ampliamente implementado sobre el estándar Cat5 / 6)

La razón principal es una menor latencia. Junto con el controlador de dispositivo que omitió el núcleo, puede entregar datos directamente a la CPU con DDIO en menos de unos pocos usos. El cuello de botella se basa en el subsistema PCIe y cuánto puede manejar. En el lado TOE, puede trabajar con velocidad de cable sin procesar, por lo tanto, utiliza una línea completa de 10 Gbit.