Microsoft Sued Over TCP/IP offload technology
soldack writes "Microsoft has been working on a technology for full offload of TCP/IP processing in windows to a smart NIC. It was due to arrive in an update to Windows Server 2003 but never made it. Now know why: it appears they have been sued by Alacritech for patent violation and Alacritech has won an injunction.
See
this article on Microsoft Watch for a story on it and here for Alacritech's view on it.
It is pretty interesting to see a little company trying to take on Microsoft for seemingly ripping them off and getting this far. It probably helps that they were founded by Larry Boucher, who "led the engineering team that developed the SCSI interface at Shugart Associates" and also founded Adaptec. See Alacritech's site for more. Lots of TOE/RNIC companies were effected by this since they were depending on Microsoft's software and do not have their own solution. This technology is becoming more important as the industry moves to multiple 1 gigabit interfaces and single or multiple 10 gigabit interfaces. It may be critical for technologies like iWarp (RDMA over TCP/IP) and iSCSI (SCSI over TCP/IP) to perform well."
I seem to recall hearing that the old HPUX machines had a sort of smart-NIC; the machine could be completely crashed and yet ping still worked.
Windows (and Linux for that matter) support offloading checksum calculations. Windows also support large sends where segmentation is offloaded. Finally windows supports ipsec offload.
All of the top NICs (3com, broadcom, intel) support this. Microft was working on offloading all of TCP/IP processing. In theory, the NICs have ASICs and/or network processors that can handle high speed (think > 1 gigabit) TCP/IP processing and the OS just gives it data to send and a place to receive.
Depending on what you are doing it can make a big difference. Segmentation/reassembly can cost a lot of CPU time. Its effect is less if both sides of the connection (and the switches in between) support jumbo frames (9KB frames instead of 1500 byte frames). If done properly TCP/IP offload can even lead to avoiding the user/kernel switch and the copying of network frames that waste memory bandwidth. Many folks have noted that checksum offload doesn't help much when the memory is still being copied. Also, in theory an ASIC could handle TCP/IP with lower latency and higher throughput than most server CPUs. Other network adapters targeted at high performance computing like InfiniBand have their form of TCP/IP embedded in the ASICs of the controllers and show > 10 gigabit bidirectional throughput and sub 5 microsecond end-to-end latency in PCI Express x8 slots.
-- soldack