The background: We are running a custom .NET Framework market-data messaging application. The application receives 500,000 messages per second by UDP multicast, transforms them into a different messaging protocol, and then forwards the messages to connected TCP clients.
The question: How can I reduce the amount of time spent by the Windows kernel (2008 or 2003) to receive a UDP datagram?
The answer, I think, will involve Microsoft Network Driver Interface Specification 6.0, Receive-Side Scaling, the Common Language Runtime, and Intel PRO TOE UDP Checksum Offload. Do you have anyone who I could consult on these topics?