Frequent pauses with Linux-based router
Sean C. Farley
scf at FreeBSD.org
Wed Mar 19 07:30:16 PDT 2008
On Tue, 18 Mar 2008, David DeSimone wrote:
> Sean C. Farley <scf at FreeBSD.org> wrote:
>>
>> An ICMP test showed that there were occasional pauses and packet
>> loss. The fix: use 100Mb instead of 10Mb. :) For some reason I do
>> not recall, I had forced the interface connected to the DSL router to
>> 10Mb. When I noticed XP did not have the same problem and that it
>> had a 100Mb connection to the router, I found and removed the "media
>> 10baseT/UTP mediaopt full-duplex" from /etc/rc.conf for the
>> interface. That appears to have fixed it.
>
> The fix here is not that you moved to 100 Mb, it's that you stopped
> forcing duplex, and allow auto-negotiation to take place.
>
> With the forced duplex in effect, your NIC does not auto-negotiate
> with the other end (the router), and it falls back to half duplex,
> which leads to large numbers of collision errors.
Ah! I tried it again at 10Mb without setting it to full-duplex, and it
worked. Out of curiosity, is it normal that 100Mb will default to
full-duplex yet 10Mb will not, or is it dependent on the hardware?
>> The pause always seemed to be for packets from the router to the
>> computer.
>
> Yep, whenever the router would try to send, if your end happened to be
> sending a frame, the router's NIC would stop to avoid the collision,
> leading to packet loss. This is a classic duplex-mismatch scenario.
My wife was getting tired of hearing the thump of my head on the wall.
Maybe one more to make sure I remember this next time. :) Thank you
for the explanation.
Sean
--
scf at FreeBSD.org
More information about the freebsd-net
mailing list