Intel X520-DA2 on sender -> "BNT 10-Port 10Gb Ethernet Switch Module for IBM® BladeCenter" -> Intel X520-DA2 on receiver. Info on PC NIC's can be found here: http://ark.intel.com/Product.aspx?id=39776
I've not seen fluctuation at all in this setup. Just the constant degradation over time and it never comes back up to speed. The Windows 7 Resource Monitor doesn't show that there are any other network services running which would disrupt things. Also, CPU utilization is only around 5% (of 8 physical cores).
I'm currently working with another engineer on changing my application into using TCP while he develops a C based UDP to TCP "proxy" server running on a Linux blade that I know can keep up with the UDP. That may be the thing which finally resolves my issues since I can connect to the TCP and "grab" data only when the DSP is ready to update the spectrum/waterfall displays in my app.
Your hardware is definitely fast enough to receive the UDP packets without a problem. Do you happen to have a 100 base NIC on that machine that Windows may try to read from? I have had issues where the machine will start using a 100 base card instead of the 1000 base card.
Also, since the transmission is base on UDP, the packets may be failing the check sum calculation and being discarded. Are you using CAT6 (under 100 meters) cabling or at least CAT5E rated cable. I just wanted to confirm.
Yes, there are two 1 GbE ports on the PC in addition to the 10 GbE port that I'm using. Windows may be trying to read from them but I am specifying a net address in the UDP read in order to tell which NIC to use. The cables used are SFP+ Direct Attach copper cables under 10 meters which are capable of handling the data rates I have.
It is possible that the checksum is failing on the 10GbE NIC since that takes care of the check with its TOE (Offloading). Not really sure how/where to check that though.