I'm trying to flow data via UDP on two ports of a Netgear GS110TP switch, running the latest available firmware (5.4.2.9). However, I'm experiencing a small amount of packet loss, something like 0.2%. This is impacting my application, which needs high reliability UDP data transfer.
I have two Linux machines connected directly to the switch. These two machines are completely different from a hardware and software perspective. If I remove the Netgear switch and replace it with a dumb 100Mbit hub, I see no packet loss between the two machines. Sadly, I need to use the Netgear switch, so I need to figure out what is going wrong with it.
I'm using iperf in the following manner to check for packet loss:
Machine #1 is running iperf -u -s
Machine #2 is running iperf -c [machine #1 ip] -u -r -b 20M -t 10
I would expect that, given the tiny amount of data compared to the available bandwidth that all the packets would flow successfully. Even at 5Mbit, I still see a small amount of loss. I've also tried forcing the port speeds to 100Mbit to see if that helps, which it does not.
Checking the switch logs, I see the counts for
- Total Packets Received with MAC Errors
- Rx FCS Errors
- Alignment Errors
… are all non-zero. The "MAC Errors" in particular seems to correlate relatively well with the results of iperf.
I'm a bit unfamiliar with this switch's configuration (and "high-end" switching in general) so I imagine I have something misconfigured somewhere.
Best Answer
Rx FCS errors are checksum errors for the frames received. They tend to occur due to faulty cabling, electro-magnetic interference or faulty interfaces. Alignment errors are basically in the same failure class indicating incomplete bytes received. You might want to change cabling runs, swap switch ports and / or replace the interfaces on your hosts to rule out the possible causes.
Re: "high-end" switching: The GS110 is the "smart managed" line of a cheapo network equipment re-labeler. It is as low-end as it gets in a professional environment. Personally, I would swap it out with no questions asked. Especially since in your case the inherent need to connect two Linux machines via a PoE switch is not apparent.