As Ethernet adopted Carrier Sense Multiple Access with Collision Detect (CSMA/CD), it detects if
there is any carrier signal from another network device running over the physical medium when a frame is
ready for transmission. This is referred to as sensing carrier, also “Listen”. If there is signal on the medium,
the MAC defers the traffic to avoid a transmission collision and waits for a random period of time, called
backoff time, then sends the traffic again.
After the frame is assembled, when transmitting the frame, the preamble (PRE) bytes are inserted
and sent first, then the next, Start of frame Delimiter (SFD), DA, SA and through the data field and FCS
field in turn. The followings summarize what a MAC does before transmitting a frame.
1. MAC will assemble the frame. First, the preamble and Start-of-Frame delimiter will be put in
the fields of PRE and SFD, followed DA, SA, tag ID if tagged VLAN is applied, Ethertype or
the value of the data length, and payload data field, and finally put the FCS data in order into
the responded fields.
2. Listen if there is any traffic running over the medium. If yes, wait.
3. If the medium is quiet, and no longer senses any carrier, the MAC waits for a period of time,
i.e. inter-frame gap time to have the MAC ready with enough time and then start transmitting
the frame.
4. During the transmission, MAC keeps monitoring the status of the medium. If no collision
happens until the end of the frame, it transmits successfully. If there is a collision happened,
the MAC will send the patterned jamming bit to guarantee the collision event propagated to
all involved network devices, then wait for a random period of time, i.e. back off time. When
backoff time expires, the MAC goes back to the beginning state and attempts to transmit
again. After a collision happens, MAC increases the transmission attempts. If the count of
the transmission attempt reaches 16 times, the frame in MAC’s queue will be discarded.