Early Collisions

Introduction

We are going to have a look at a step-by-step early collision example to help everyone (including myself !) understand what it's all about.

Early Collisions

In this example, we will refer to an imaginary Ethernet network consisting of Stations A and B and any number of other stations. The status of the network is such that the wire is idle (nobody is talking) and 9.6 microseconds have passed since anybody last talked on the wire.

An early collision is any collision that occurs before 512 bits of the frame have been put onto the wire. The rationale behind this is discussed in the next essay.

The following is an outline of a normal or "early" collision event:

Station A, detecting that the wire has been idle for 9.6 microseconds, begins to transmit its data frame, beginning with the 64 bit preamble. While Station A is transmitting, it is also listening for abnormal voltage on the wire -- a signal that a collision has occurred. (Stage 1)

Some period of time later, but before the signal from Station A has had time to propagate down the wire to Station B, Station B also detects that the wire has been idle for 9.6 microseconds and begins to transmit its data frame beginning with the 64 bit preamble. Station B is also listening for a collision on the wire. (Stage 2)

 

At some point on the wire in between Station A and Station B the electrical signals overlap, creating a point of abnormal voltage. As the signals continue to propagate, this abnormal voltage travels down the wire towards both Station A and Station B. (Stage 3)

 

Whichever station is closest to the physical point on the wire where the two signals overlapped will detect the collision first. For the sake of this discussion, we will say that Station A detects the collision first. (Stage 4)

 

Station A, detecting the abnormal voltage on the wire and realizing that a collision has occurred, immediately stops transmitting data and transmits a 32 bit "jam" onto the wire. (Stage 5)

The 32 bit jam consists of any combination of values that is not a valid CRC for the frame that was just interrupted by the collision. Most Ethernet cards today just send 32 ones and know that there is only a 1/(2^32) chance that that will be the checksum -- pretty good odds. The purpose of the 32 bit jam is to fully propagate the wire with voltage, preventing anybody else from talking.

Station A will then implement an algorithm known as the Truncated Binary Exponential Backoff Algorithm, which determines how long it will wait before it attempts to retransmit the frame that was just interrupted. The interrupted frame is referred to as a Runt.

Next, Station B will detect the collision. Station B will also send a 32 bit jam and implement the Truncated Binary Exponential Backoff Algorithm. (Stage 6)

Early collisions occur regularly in a normally operating Ethernet network. There is no hardware malfunction or misbehaving station -- it just so happens that two NICs start to talk at the same time. Generally, after the talkers implement the backoff algorithm which is specially designed to not have both NICs attempt to talk at the same time again, both talkers will successfully put their frame onto the wire. It typically takes no longer than 2-3 milliseconds for a station to recover from a collision and successfully retransmit its frame.

Back

Top

Next - Late Collission