Net::Ping, Time::HiRes and virus scanners

ddick on 2009-07-16T23:41:11

at $work, we've been timing tcp connections with Time::HiRes and we hit an interesting problem. Time::HiRes was returning ridiculously small times for the tcp ping, approx 1-2 milliseconds, when we knew the time should be approx 30 milliseconds.

After firing up that beautiful piece of software known as (?:ethereal|wireshark), we verified that the traffic actually took approx 30 milliseconds as expected.

turns out that the Web Shield portion of the AVG anti virus product filters among other things, tcp port 80, and this filtering process stuffs the Time::HiRes timings up.