May 07, 2001, 10:59 AM —
Q: Why do I have so many collisions on my Ethernet?
A: Collision levels are no longer a good way to decide whether an Ethernet is overloaded.
I'll start by explaining what a collision is, then look at how they are
measured and reported, and how that causes problems. I'll end by
pointing out alternative measurements that give a better indication
of when a network is busy.
Ethernet was developed as a shared bus-like network. When the network
is idle, any connected system can start to transmit. If two systems
try to transmit at the same time they collide, back off for a randomly
generated short delay, then try again. When a shared-bus Ethernet
with many systems on it gets busy, contention increases to the point where
activity is dominated by collisions, and overall throughput drops off
significantly. In contrast, a small number of active systems can work
quite efficiently, achieving high throughput over the network without
causing too many collisions.
More recently, Ethernet switches have been used to form star-like
networks in which each system connects to a port on a central switch.
The switch takes data from one port and passes it onto a second port
without causing collisions on all the other ports. Each port can
have multiple systems on it, so some collisions still occur on each
port -- but it is less of a problem for the network overall.
The latest optimization is to connect only one
system per port. In this scenario, data can be sent in both directions
at once without colliding. Both the system and the switch need to
correctly recognize this "full-duplex" mode, however; there can be
problems when one end thinks it can transmit any time it likes and the
other is only expecting to receive when it isn't transmitting. This
tends to cause Ethernet errors, which will be reported in addition
How are collisions measured?
Collisions are only detected by the systems which are trying to transmit.
The total number of collisions on a network could be measured using
special monitoring hardware or data from a central switch, but the usual number
reported is the view from a single system. Each system on the network
will see different throughput and collision rates for the same network.
Collisions are counted by the Ethernet interface hardware. The hardware
is quite intelligent -- it is given a pointer to a list of packets to
transmit and counts how many collisions occur while the packets are
being sent. Different interfaces use different counting methods.
The older le interface based on the AMD LANCE design uses a two-bit
counter: There are none, one, two, or "lots" of collisions.