Let us say I have switch S, to which I have connected 4 hosts (A, B, C and D). Now let us say hosts A and B both want to send a series of data to the same host D at the same time. So here, A and B are transmitter nodes and D is the receiver node.

Let us say the frame sent from host A reaches the switch S and the switch looks up its MAC address table and finds that host D at some particular port, say X. and it forwards the frame to port X. If at the same time, host B also had sent a frame to switch, S and the switch looked up its MAC address table and found that host D was at port X and forwarded the frame to port X... wouldn't there be a collision?!

How is the Ethernet switch going to handle such situations?


A switch buffers frames - this is in contrast to a repeater hub that can't buffer anything.

As @jcbermu has pointed out, both frames from A and B are first stored in their respective ports' receive buffers.

The frame that is received in completeness first is then transferred to port D's transmit buffer and transmitted to D. The second finished frame is also transferred to port D's transmit buffer but since the port is currently transmitting it is just queued and sent out once A's frame is finished.

A switch normally uses a first-come-first-served principle. When priorities and QoS come into play the switch uses multiple transmit buffers for each port where higher priority frames are generally transferred first (depending on implementation).

When the total ingress flow for a certain destination port is faster than the port can transmit for more than a very short period (microburst) the queue buffers quickly overflow and the switch drops packets.

  • So if 'frame A - 1' is being transmitted from port D and 'frame B -2' is queued on the port D's output buffer. Now if another frame say 'frame A - 3' comes in and then 'frame A-4' and then 'frame B -5'. So frames reaching host D could be in the order - frame A -1, frame B-2, frame A-3, frame A-4, frame B-5. Correct right? So frames may get delivered at the destination host mixed up with different senders, but there wouldn't be any collision. Please correct me if i understood wrongly. – Darshan L Mar 16 '18 at 11:00
  • 1
    Yes, Without QoS, frames are forwarded out of the destination port in the order they were received, regardless of the source port. Switched, full-duplex Ethernet knows no collisions, whether on the link or inside a switch. The IP packets inside the frames have source IPs and ports, so the host stack will sort everything out very nicely for you. – Zac67 Mar 16 '18 at 18:33

Switches forward all packets it receives to the best of its ability. If is unable to send a packet immediately, the packet is queued in a buffer and if the queue is full, the packet is dropped.

Typically a switch has input and output buffers per port instead of a common buffer for each port, so an overload of incoming traffic port doesn't affect the outgoing of the same port.

This is a diagram of this buffer arrangement:

enter image description here

The size of the buffer determines the amount of queuing available on the port without dropping packets and causing performance degradation.


Collision is a must in Ethenet network. The ethernet use CSMA/CD to avoid collision. You may refer to the topic of CSMA/CD for detail.

  • 1
    Modern Ethernet is switched and full duplex - there are no collisions anywhere. – Zac67 Mar 16 '18 at 18:34

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.